在.js模块中包含.json文件

时间:2016-03-28 17:08:42

标签: ember-cli

我的翻译文件位于:

frontend/locales/en/translations.js

看起来像:

export default {
  back: "Back",
  or: "Or",
  cancel: "Cancel",
};

我想将翻译哈希移动到.json文件中:

frontend/locales/en/translations.json

并以某种方式将其包含在.js文件中。

最好的方法是什么?

2 个答案:

答案 0 :(得分:1)

我找到了一个非常灵活的解决方案:ember-cli-json-module

安装此附加组件后,我可以这样做:

// master.json:
{
  "back": "Back",
  "or": "Or",
  "cancel": "Cancel"
}

// translations.js:
import masterFile from './master';

export default masterFile;

我还删除了EcmaScript6标签,因为这是一个特别的ember-cli解决方案。

答案 1 :(得分:0)

EcmaScript 6 modules不允许导入.json(或其他内容),它们只关注javascript。

这是一个参考:How to import a json file in ecmascript 6?

您可以使用webpack之类的具有特定json-loader的捆绑包来实现此目的。

如果您不使用任何捆绑器,请考虑使用javascript而不是JSON,因为JSON是Javascript Object Notation,唯一的区别是JSON是简单的字符串(您可以解析)。

因此,在没有任何JSON.parse的情况下直接使用javascript。

如果您需要使用json formats,可以通过Javascript加载...

看看https://blog.gospodarets.com/fetch_in_action fetch('/path/to/locale/en.json).then(res => res.json()).then(translations => console.log('translations', translations));