在节点中动态导入区域设置文件

时间:2018-07-09 19:50:04

标签: node.js typescript

我的项目中具有以下结构:

locale
|_ nl
|   |_ country.ts
|_ en
|   |_ country.ts
|_ de
    |_ country.ts

每个country.ts都包含翻译的查找对象:

export default {
  'AFG': 'Afghanistan',
  'ALA': 'Åland',
  'ALB': 'Albanië',
  'DZA': 'Algerije',

目前,我正在使用NL文件,例如:

import CountryNL from 'locale/nl/country';
let locale = CountryNL['ALB'];

但是要使用其他语言环境,我需要动态导入模块。如Importing modules using ES6 syntax and dynamic path中所述,这是不可能的。

动态获取正确语言文件的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

首先创建一个语言对象{}。递归列出目录的内容以获取所有内容。按.json扩展名过滤。读入文件并解析json。使用文件名作为密钥,将json添加到您的主要语言对象中。