JavaScript 使用 reduce 方法实现简单的 i18n 功能
i18n: 国际化 (Internationalization) 的缩写
使用 Array.prototype.reduce() 方法实现简单的 i18n 功能
实现代码:
function $translate(key) {
// 翻译字典配置选项
const options = {
greetings: {
hello: "Bonjour!",
},
};
// 使用 `key` 作为索引获取 `options` 对象的深层属性
return key.split(".").reduce((o, i) => {
console.log("o", o);
console.log("i", i);
if (o) return o[i];
}, options);
// 简写
// return key.split(".").reduce((o, i) => o && o[i], options);
}
$translate("greetings.hello");
输出:
参考:
编写一个插件