web页面国际化
web页面国际化
个人尝试使用了2种方法。
方法一:使用thymeleaf模板
-
在pom.xml配置文件下加入依赖<dependency>;
-
修改相关的yaml配置,由于springboot已经自动配置好了,所以使用默认的就可以了,不用做过多的修改。
其中prefix为默认加载页面的地址,如果页面不在templates文件下,则需要修改此处。
Cache修改为false。这些修改在application.yml或application.properties文件内修改。 -
在需要使用到国际化显示的页面上加入模板标识。
-
创建一个i18n文件夹,在文件夹内选择创建
命名为messages(此为默认语言显示文件)、messages_en(此为浏览器语言为en时显示文件)、messages_zh(此为浏览器语言为zh时显示文件)。
在messages.properties文件下输入test=\u6d4b\u8bd5(测试的ascII码值),
在messages_en.properties下输入test=test
在messages_zh.properties下输入test=\u6d4b\u8bd5
获取ascII码值可以通过控制台输入native2ascII进入获取。 -
在application.yml或application.properties文件内配置messages,主要是把basename改为自己存放上述三个语言文件资源的位置。默认为basename: messages但是由于创建了i18n文件夹,所以改为basename:i18n/messages
-
在页面需要进行国际化显示的地方加入th:text=”#{key}”标签
会自动把book info覆盖。 -
在控制器中使用如下方法访问页面,
方法二:使用jQuery.i18n.properties()插件的方法。参考了https://www.ibm.com/developerworks/cn/web/1305_hezj_jqueryi18n/
-
下载并引入jQuery.min,js和jQuery.i18n.properties.js。
-
在需要使用国际化显示的页面添加id=“key”使用
-
然后创建i18n文件夹,创建名为strings开头的文件,strings(默认)、strings_en(英文状态下)、strings_zh(中文状态下)三个文件。然后在文件中填写需要国际化显示的词。
-
在html上直接编写js或在外部创建js文件再引入html内,js内容如下:
其中path的位置一定要写对,不然会出现寻值错误。#后边的是id,prop后边的是在i18n的strings文件下自己定义的国际化显示的词。
其他:想要在placeholder里面显示国际化内容,也要配置id,然后在js中使用$(’#holder_name’).attr(“placeholder”,$.i18n.prop(‘name’));
想要在button显示国际化内容,则
$(’#submitBtn’).attr(“value”,$.i18n.prop(‘submit’));
注意:当初把i18n文件夹放在static文件夹外部,打开网页访问的时候显示404错误。