JavaScript 使用 reduce 方法实现简单的 i18n 功能

发布时间 2023-04-14 15:45:02作者: 飞仔FeiZai

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");

输出:

img

参考:
编写一个插件