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