纯js国际化(使用技术:i18n)
转自:https://www.cnblogs.com/kunyashaw/p/10868746.html
i18n,是internationalization单词的简写,中间18个字符略去,简称i18n,意图就是实现国际化,方便产品在不同的场景下使用
目标:可以点击切换语言或者ChangeLanguage的按钮 来完成英语和中文的切换
效果图如下:
实现方案:https://github.com/jquery-i18n-properties/jquery-i18n-properties
实现过程:
步骤一:代码结构
步骤2:实现html文件
1 <html lang="en"> 2 3 <head> 4 <meta charset="UTF-8"> 5 <title>国际化</title> 6 <script src="js/jquery.min.js"></script> 7 <script src="js/jquery.i18n.properties.min.js"></script> 8 </head> 9 10 <body> 11 12 <label data-locale="User Name">用户名:</label><input type="text"> 13 <label data-locale="Password">密码:</label><input type="password"> 14 <button id='btn' data-locale="Btn Change">切换语言</button> 15 16 <script type="text/javascript"> 17 isEng = true 18 btn.onclick=function(){ 19 if(!isEng){ 20 loadProperties('en'); 21 }else{ 22 loadProperties('zh'); 23 } 24 isEng = !isEng 25 26 } 27 function loadProperties(lang) { 28 $.i18n.properties({ 29 name: 'strings', //属性文件名 命名格式: 文件名_国家代号.properties 30 path: 'i18n/', //注意这里路径是你属性文件的所在文件夹 31 mode: 'map', 32 language: lang, //这就是国家代号 name+language刚好组成属性文件名:strings+zh -> strings_zh.properties 33 callback: function () { 34 $("[data-locale]").each(function () { 35 console.log($(this).data("locale")); 36 $(this).html($.i18n.prop($(this).data("locale"))); 37 38 }); 39 } 40 }); 41 } 42 loadProperties('en'); 43 44 45 </script> 46 </body> 47 48 </html>
核心思路:
既然要做国际化,我们得准备在不同语言情况下的词汇
将中英文的一些词汇和描述消息 放在i18n的文件夹中的strings_en.properties和strings_zh.properties
那么如果是中文环境,就按照strings_zh.properties这个文件中的词汇描述来;否则按照英文的来
这样一来,不同语言环境就可以加载不同的词汇了,国际化完毕
代码打包放在百度云了,希望能帮到更多的人:
https://pan.baidu.com/s/1Dl6jup_Igw9QHj9N2EQsSg
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?