我正在使用redux + deku建立我的第一个单页网站,我需要将其国际化。我想要一个包含所有文本的json文件,如下所示:
# http://mysite.me/assets/i18n.json
{
"en": {
"greeting": "Hello"
},
"es": {
"greeting": "Hola"
}
}
理想情况下,我可以在启动文件中要求它:
const T = require('/assets/i18n.json')
setTranslation(T)
但它不能捆绑在同一个文件中,它应该仍然是外部依赖项,它应该在运行时加载,这样我就可以编辑它而无需重新编译整个应用程序!
webpack可以吗?我唯一的选择是直接将其包含在HTML中吗?
<script type="text/javascript" src="i18n.js"></script>
<script type="text/javascript" src="app.js"></script>
目前最后一个解决方案还可以,但我正在考虑拆分每个主要组件的翻译,因此直接通过js包含它的能力会很好。
感谢任何有帮助的人:)
答案 0 :(得分:3)
一个选项是不require
文件而是fetch(或其他一些请求方法),然后从webpack中排除JSON。
另一种方法是使用webpack的公共块插件拆分代码。你的webpack配置看起来像这样:
entry: {
app: './index.jsx',
i18n: [
'en',
'fr',
'...others'
]
},
output: {
path: '/path/to/dist/',
filename: '[name].js'
}
有关详细信息,请参阅official docs