在(新)Rails Ivy中有一件事:国际化支持(Django也有一个,但我更喜欢Rails的风格)。在Django中提供Rails-way i18n支持的好方法
Rails的与Django的方法之间的主要区别是什么样的字符串的行为就像在键值转换映射按键,即
Django的版本(键 - 字符串中的‘主’的语言,例如英语):
msgid "Save and quit"
msgstr "Zapisz i wyjdź"
的Rails版本当量(钥匙 - 抽象字符串;独立不可用 - 一个需要提供 “翻译” 至少1) - 实际上,Rails使用YAML格式,但下面的例子中介绍的思路:
// english translation file
msgid "SAVE_QUIT_MESSAGE"
msgstr "Save and quit"
和
// polish translation file
msgid "SAVE_QUIT_MESSAGE"
msgstr "Zapisz i wyjdź"
Rails的支持i18n的方式是恕我直言好多了(想关键不变性 - 文法/拼写更正性;语言不可知论等)。
在Django中使用这个模式的一种方法是使用一些抽象语言来进行翻译(该语言中的字符串会生成不可变的键),但Django仅支持固定的语言集。另一种解决方案 - 牺牲其中一种支持(未使用)的语言来扮演这个角色 - 但这很糟糕:P
解决此问题的任何想法/第三方应用程序/技术?
旁注:延长artibrary语言的国际化支持将使有趣的机会:
// slang translation file
msgid "SAVE_QUIT_MESSAGE"
msgstr "Save shit 'n' quit, bro"
...或者你可以生成一个英文的.po文件... – 2011-03-08 22:24:29
@Ignacio Vazquez-Abrams:我不确定我是否理解。你能更详细一点吗?生成.po文件解决了哪个问题?也许在我的问题中有些事情不清楚 - 如果是的话,引导我,我会编辑它。 – gorsky 2011-03-08 22:34:24
英文语言的.po文件,与法文,德文等相同 – 2011-03-08 22:43:55