0

有許多程序定製的級別。模塊化定製語言環境消息的方法?

首先當然是讓它通過創建i18n消息來說你的語言,其中像gettext和xgettext這樣的工具做得很好。

另一個來的時候,你需要修改一些消息的含義適合你的項目的目的。

問題是:除了樣板翻譯之外,是否可以將自定義消息保存在單獨的文件中,並讓標準工具知道定製消息優先?

這將有助於防止這些消息被提交到公共存儲庫並在升級時被樣板文本覆蓋。

編輯:因爲沒有太多的人關心本地化我認爲它適合於收集任何平臺的答案,但是我現在有興趣實現這個python/django。

回答

1

在Java中,這些本地化字符串由ResourceBundles處理。 ResourceBundles有變體的概念。例如,您可以擁有一個名爲messages_en.propertie s的基礎英語資源。然後你可以用message_en_US.propertiesmessage_en_UK.properties來定製一個特定的英文版本。

美國和英國是ISO國家/地區代碼,但您也可以設置自己的自定義變體,只包含要自定義的字符串。例如:

#messages_en.properties 
button.click=Click 
label.go=Go 

#messages_en_ZZ.properties 
button.click=Click Me 

區域設置設置爲en_ZZ,您的應用程序將先在messages_en_ZZ.properties,看看自定義的字符串存在,然後回落到messages_en.properties您樣板的翻譯。 [上裝載的ResourceBundle優先更多信息] [1]

[1]:http://java.sun.com/javase/6/docs/api/java/util/ResourceBundle.html#getBundle(java.lang.String,java.util.Locale中,java.lang.ClassLoader的)

1

我認爲Qt的強大國際化設施(見here)可能滿足您的需求 - 當然,它們也可以通過Python獲得,這要歸功於通常的祝福PyQt! - )