![](/img/trans.png)
[英]JSP Spring internationalization using OSGi as service changing locale not working properly
[英]internationalization in JSP/Spring with nested keys
尋找一種允許嵌套鍵的干凈的國際化方法。
例如Message =請檢查您的啟動工具。
現在,單詞引導在s / w中使用了100多個字符串,當我去客戶端X時,他說用主干更改引導。 所以想創建語言文件,其密鑰嵌入值中
message =請檢查您的{boot}工具。
引導=樹干
這將是一個SaaS應用程序,我們將允許用戶通過Web界面更改字符串。
您想要做的是串聯 -第二種最常見的國際化缺陷。 換句話說,不要那樣做。 最好復制這100個字符串-使用有效的工具(例如支持正則表達式的文本編輯器)相當容易,而不是串聯字符串。
許多(如果不是最多的話)語言都有Inflection的概念,即您想要連接的詞可能需要翻譯成幾種不同的形式。
翻譯通常取決於上下文。 如果必須完全按原樣翻譯單詞(僅更改形式),那么上下文本身就沒有必要。 這不是一個理論,請考慮以下示例。
我們在資源中有一個字符串,例如“ {0}已切換為{1}”,該字符串已解析為“ [某些程序] | [某些功能]已切換為[開] | [關]”。 問題是,當我們想將其正確翻譯為波蘭語時(僅舉一個例子,它以多種其他語言出現),根據它是程序還是函數,它應該有所不同。 僅僅因為程序是男性化的(“ Program [jakiśprogram]został[włączony] | [wyłączony]”)並且功能是女性化的(“ Funkcja [jakaśfunkcja]został* a * [włączon* a * ] | [wyłączon* a * ]“)。
不僅需要更改單詞的形式,還需要更改整個上下文(請參閱添加的單詞)!
串聯是不可行的。 你們中有些人可能會說“磁盤占用量如何?”。 好吧,如今空間很便宜,對與錯的情況就是如此。 僅將單詞串聯以節省幾千字節是錯誤的,並且會導致嚴重的可本地化性問題。
有時,拐彎不是問題,但您需要根據具體情況將語氣從指示性更改為命令性。 這帶來了不同的翻譯。
如果您確實需要使用消息格式,建議您僅將其用於數字,貨幣和日期(記住有效的區域格式!)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.