0
我必须用webapp实现国际化(德语,英语)。 我看到的最常见的方法是构建每种语言在不同的文件翻译:json i18n:lang:{string}与string:{lang}
de.json fr.json
以及刚刚切换数据存储编程。
这相当于这样的数据结构:
i18n:
{
de: {
hello: "Hallo",
save: "Speichern,
...
},
en: {
hello: "hello",
save: "save",
...
}
}
这种方法可以轻松地伸手,翻译文件,以不同的翻译,然后只需将新的翻译文件添加到应用程序。 但是,我不喜欢钥匙需要保持同步。即如果我添加一个新的关键字(例如“删除”),并且当时我没有全部翻译,我仍然需要确保我更新了所有的json文件,所以我不会忘记在稍后的时间获得翻译。
因此,我认为下面的结构可能避免此问题:
i18n:{
hello: {
de: "Hallo",
en: "hello"
},
save: {
de: "Speichern",
en: "Save"
}
}
什么是这种方法的弊端?为什么每个人都使用第一种方法?
我的第一个假设是,你只会遍历1个对象,基于当前的语言环境,而不是(字数)对象。 在大多数情况下,单独的语言实际上存储在不同的JSON文件中以减少有效负载。当你知道语言环境时,不需要在一个JSON中引入每种语言,只需要引入一个语言。 – user3821538