Blog信息 |
blog名称: 日志总数:1304 评论数量:2242 留言数量:5 访问次数:7578590 建立时间:2006年5月29日 |

| |
[Ruby on Rails]使用ruby gettext实现RoR应用的多语言化——Step by Step 软件技术
lhwork 发表于 2007/2/7 17:30:01 |
0. 写本文时使用的环境: OS: MacOS X 10.4.7 Ruby 1.8.5 Rails 1.1.6 gettext 1.8.0
1. 安装ruby gettext 使用gem安装:
代码
gem install gettext
这表明gettext在merget的过程中遇到某种冲突,需要翻译po文件的人来解决。不过究竟什么样的冲突会导致fuzzy,我现在也不是很清楚。好在这种情况并不多见。发生的使用可能会出现msgid和msgstr之间张冠李戴的情况。 解决冲突以后,一定要把“#: fuzze”这行删除,否则makemo的时候会出现警告。
另一种情况是原来的某个字符串不再被用到,这种情况下gettext并不会删除这个字符串,而是在msgid前加入一行“#: deprecated”。如果这个字符串确实不再被用到了,则可以将这一行连同msgid和msgstr全部删除。否则只删除“#: deprecated”这行,而保留msgid, msgstr。
12. 多人开发时的协作。 gettext可以支持不同的模块使用不用的po文件,不过我还没试过。一般的应用,所有的文本放在一个po文件(一种语言一个)中也可以了。这时如果多个开发人员都去维护po文件的话,在版本管理上可能比较麻烦。所以最好是由一个人统一负责“updatepo, 翻译,makemo”这三个步骤。在某种语言的po文件中找不到某个字符串的时候,gettext会直接显示msgid,这在开发时也够用了。
13. 参考资料: gettext home page: http://www.yotabanana.com/hiki/ruby-gettext.html
Ruby-GetText-Package HOWTO for Ruby on Rails: http://www.yotabanana.com/hiki/ruby-gettext-howto-rails.html
Using Gettext To Translate Your Rails Application: http://manuals.rubyonrails.com/read/chapter/105
*: 本文中的部分例子代码来自上述参考资料。 |
|
|