程序的自定义有很多层次。
首先当然是通过创建i18n消息来使说你的语言,其中像gettext和xgettext这样的工具做得很好。
当您需要修改某些消息的含义以满足项目目的时,会出现另一个消息。
问题是:除了样板翻译之外,是否可以将自定义消息保存在单独的文件中,并让标准工具了解自定义消息优先?
这有助于防止这些消息被提交到公共存储库,并在升级时被样板文本覆盖。
编辑,因为没有太多人关心本地化我觉得收集任何平台的答案是合适的,但我现在有兴趣实现这个python / django。
答案 0 :(得分:1)
在Java中,这些本地化字符串由ResourceBundles处理。 ResourceBundles有一个变体的概念。例如,您可以拥有一个名为messages_en.propertie
的基础英语资源。然后,您可以使用message_en_US.properties
或message_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 :(得分:1)