记一次前端多语言配置
Dataset
首先介绍一下向标签中添加自定义数据的方法。
可以通过添加data-foo属性在HTML的标签上,如:
| 1 | <div id="id" data-foo="bar"></div> | 
然后就可以在JS里通过DOM.dataset.foo获取到属性的内容了:
| 1 | const dom = document.getElementById('id') | 
输出:
特别地,如果在HTML中添加如data-foo-bar的属性,在JS中需要通过camelCase的形式访问到值:
| 1 | dom.dataset.fooBar | 
JSON资源文件
我的想法是把所有的文本都写到json文件里,之后进行文本填充操作。
- 
assets/zh.json1 
 2
 3{ 
 "msg": "你好"
 }
- 
assets/en.json1 
 2
 3{ 
 "msg": "Hello"
 }
JS逻辑
首先要获取到我们配置好的json,这里为了方便直接把navigator.language截取了。
而实际应用中可能需要配置简体zh-CN和繁体zh-TW,至于文件名怎么取就不是本文重点了。
| 1 | async function getI18N() { | 
再接下来就只需要在标签里添加data-i18n属性并且把键对应配置完毕即可。
示例数据的键为msg,那么这里需要这么写:
| 1 | <h1 data-i18n="msg"></h1> | 
完工!
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 喵喵小窝!

