文章内容

2022/10/14 16:55:18,作 者: 黄兵

JavaScript 多语言示例

最近项目是一个中英文网站,前端的一些表单判断以及显示使用的是 JavaScript,在多语言环境中处理起来很麻烦,要不是一个语言版本的页面使用一个不同语言版本的 js 文件,但是 webpack 配置起来也很麻烦。

所以就需要多语言环境,下面是一个多语言的 JavaScript 经过项目实战,比较不错:

let lang_type = 2; // 获取语言类型,可以是 0,1,2

// 储存多语种文本
let xz_lang = { 
    // 属性名写成方便理解的文字。我用的中文,如果考虑和外国人协作,可以写成英文。
    // 在属性名前面加上下划线,和文本内容做出区别。
    // 按照固定顺序排列(如:中日英)
    // {}表示需要进行替换的部分
    '_过滤作品类型的按钮': [
        '排除指定类型的作品',
        'タイプでフィルタリングする',
        'Filter by works type'
    ],
    '_tag搜索任务开始': [
        '收藏数不低于{},向下抓取{}页',
        'ブックマークの数は{}ページ以上で、{}ページがクロールされます。',
        'The number of bookmarks is not less than {}, {} pages down to crawl.'
    ]
};

// 翻译程序
function translate(name) {
    let content = xz_lang[name][lang_type];
    if (arguments.length > 1) {        // 把占位符 {} 替换成传递的参数
        for (let i = 1; i < arguments.length; i++) {
            content = content.replace('{}', arguments[i]);
        }
    }
    return content;
}

// 测试
console.log(translate('_过滤作品类型的按钮'));
console.log(translate('_tag搜索任务开始',1000,1000));

注释已经写的很明白了,无需多言。


参考资料:

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


黄兵个人博客原创。

转载请注明出处:黄兵个人博客 - JavaScript 多语言示例

分享到:

发表评论

评论列表