猿问

如何优雅的在一个js文件里配置多语言(i18n),求探讨思路

我搜了搜资料,发现大多数是不同语言的js文件分开做,然后根据用户语言环境去加载对应的js文件。

但是我现在因为使用场景限制,最好是在一个js文件里完成。我现在打算支持3种语言(中文、日文、英文),而且输出文字的地方也比较多,可能有上百条,中间也经常要拼接变量。

更新:

我现在用的办法是参考“上大人”的回答,根据自己需要修改的结果:

这样满足了我的需求。仅供参考~

汪汪一只猫
浏览 456回答 1
1回答

手掌心

你的意思大概是想把所有文字都翻译,但由于语法结构问题变量的位置是未知的不知道怎么解决是吧?思路的话其实你可以参考模板渲染的思路.我打个比方var language = {    'hello': [        'hello,{val}!',        '{val},コン!'    ]};var lang = 0; // 当前英文function translate (msgVariable, data, msg) {    if (msg !== undefined) language[msgVariable].push(msg);    return language[msgVariable][lang].replace('{val}', data);}var data = '张三';var msg = translate('hello', data, '你好,{val}!');
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答