基于i18nnext的前端国际化

1、下载i18next.min.js,并导入

2、在WebContent文件夹下创建locales文件夹,在locales下创建zh.json(中文)、en.json(英文)文件

格式如下:

英文

{
   "app":{
         "name":"Test"
          },
    "index":{
           "username":"username...",
           "password":"password...",
           "loginBtn":"login"
             }
}

中文

{
   "app":{
         "name":"测试"
          },
    "index":{
           "username":"用户名称...",
           "password":"登录密码...",
           "loginBtn":"登录"
             }
}


3、i18next初始化

         

 $.i18n.init(
        {resGetPath:'${base}/locales/__lng__.json',
	 load : 'unspecific',
	 fallbackLng : false,
	 lng : window.navigator.userLanguage|| window.navigator.language || 'en-US',
	 fallbackLang : 'en',
	}, 
	function(t) {
             //需要国际化部分的最外层id
             $('#标签id').i18n();
        }
 );


4、初始化参数说明

  • lng : 'zh-CN' 设置当前翻译的语言(如果没有设置具体的lng,会查看querrustringparameter中是否有?setLng=zh-CN的设置、会检查cookie中是否有i18n曾设置的语言、或检查浏览器语言)
  • detectLngQS : 'lang' 设置查询参数的名称,对应上一条的话变成?lang=zh-CN;同理,还可以更改cookieName, 如cookieName:'lang'
  • useCookie:false设置是否使用cookie,若不使用,当未设置lng参数时,也不会从cookie中查找。
  • preload:['zh-CN','en-US'] 预加载某个语言包
  • lngWhitelist:['zh-CN','en-US']只能加载特定的几种语言
  • fallbackLng:false|['en']设置缺失备用语言,若要加载的语言存在某个键值缺失,则用fallbackLng来代替;false为不使用该缺省补全机制。
  • useLocalStorage:true|false,localStorageExpirationTime:86400000 // in ms,default 1 week默认情况下是不开启caching的,可根据实际需要开启,直到localStorage中曾缓存的语言过期,新的语言才会被加载。改设置localStorage中缓存的是整个语言包,也就是language.json文件中的内容,对应每一个加载的语言包,都会产生一个localStorage存储项。 
  • resGetPath:'locales/__lng__/__ns__.json,resGetPath:'locales/__ns__-__lng__.json设置加载语言包的路径,对应上述两种模式,路径示例如下:locales/en_US/translation.json|locales/translation-en-US.json
  • getAsync:false设置是否异步加载,false为同步。

5、例子

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>测试</title>
</head>
<body>
     <div class="col-lg-12">
         <div class="ibox float-e-margins"> 
             <div class="ibox-content">
             	<table class="table table-stripped ">
                      <thead>
                       <tr>
                               <th data-i18n="index.username">用户名 </th>
                               <th data-i18n="index.password">密码</th>
                               <th data-i18n="index.loginBtn">登录</th> 
                       </tr>
                      </thead> 
            	</table>
         	</div>
         </div>
	</div>	  
</body>

</html>


6、js中alert等部分文字的国际化

  $.t("index.username");

7、当使用Bootstrap Multiselect需要国际化其中option时,例如修改下图中的 --请选择-- 


此时,在html中设置是不起作用的。如下:

<option value="" data-i18n="select.selectplease">--请选择--</option>

 原因:Bootstrap Multiselect插件是获取select标签的option的值然后重新布局。但是经过i18next国际化后的option值

在获取的时候,获取到的依然是默认值,所以国际化失败。

 解决方法:在js中动态设置select的option值,并且代码在Bootstrap Multiselect初始化前执行。jquery代码如下                       

 $("select").children("option[value='']").html($.t("select.selectplease"));

8、设置input的placeholder或者value,如下:

<input id="test" name="test"  data-i18n="[placeholder]index.holdertest" placeholder="this is a test"/>

<input id="test" name="test"  data-i18n="[value]index.test" value="test"/>

回答: 在Vue3中进行前端国际化(i18n)的配置可以使用vue-i18n@next这个工具。首先,你需要安装这个工具,可以使用命令npm install vue-i18n@next或者yarn add vue-i18n@next进行安装。\[2\]\[3\]然后,在你的main.js文件中,你需要进行以下修改:引入VueI18n并通过Vue.use()安装vue-i18n,创建一个i18n实例对象,并配置需要翻译的语言环境和对应的配置文件路径。最后,将i18n注入到Vue实例中。\[1\]\[3\]这样就完成了i18n的配置。在Vue组件中,你可以使用t("你的属性名")来进行翻译。 #### 引用[.reference_title] - *1* [vue-i18n国际化](https://blog.csdn.net/lovebosom/article/details/130320347)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [vue3和ts使用i18n实现国际化与动态切换语言](https://blog.csdn.net/weixin_44786530/article/details/131112750)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Vue3+ts 配置i18n国际化,解决i18n警告](https://blog.csdn.net/qq_43331318/article/details/125363838)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值