为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

汪汪一只猫 2018-11-13 13:15:07
我搜了搜资料,发现大多数是不同语言的js文件分开做,然后根据用户语言环境去加载对应的js文件。但是我现在因为使用场景限制,最好是在一个js文件里完成。我现在打算支持3种语言(中文、日文、英文),而且输出文字的地方也比较多,可能有上百条,中间也经常要拼接变量。更新:我现在用的办法是参考“上大人”的回答,根据自己需要修改的结果:这样满足了我的需求。仅供参考~
查看完整描述

1 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

你的意思大概是想把所有文字都翻译,但由于语法结构问题变量的位置是未知的不知道怎么解决是吧?
思路的话其实你可以参考模板渲染的思路.
我打个比方

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}!');


查看完整回答
反对 回复 2018-12-18
  • 1 回答
  • 0 关注
  • 455 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信