Rails plugin: i18n
An update from mod-i18n module. My first Ruby on Rails plugin. It is modified from Localization module. It do translation using YML based translation file, and choose language based on URL parameter.
Installation
script/plugin install source http://mod-i18n.googlecode.com/svn/trunk
1. Create Language File
Create a directory config/lang, under the directory, create yml files using the langugae name, e.g. config/lang/zh-HK.yml. In the file, it should contains string mapping, for example:
config/lang/zh-HK.yml:
Listing contacts: 聯絡人列表
Show: 顯示
Edit: 修改
Delete: 移除
2. Edit Application String
In the application, replace content String to following format:
Source Code: 'blah' => ('blah') 'testing 5' => ('testing %d', 5)
rhtml: <%= 'blah' %> => <%= 'blah' %> <%= 'testing 5' %> => <%= 'testing %d', 5 %>
3. Test the Applciation
Restart application. mod-i18n use post/get parameter 'lang' to determine the language (configurable through the constant PARAMETER_LANG in lib/i18n.rb).
Original URL: http://127.0.0.1/main/index URL for en-US: http://127.0.0.1/main/index?lang=en-US URL for zh-HK: http://127.0.0.1/main/index?lang=zh-HK
4. [OPTIONAL] Using Rails route
You may specify the language in URL. To do so, in config/route.rb, change the route to containing paramter 'lang'.
from:
map.connect ':controller/:action/:id.:format'
map.connect ':controller/:action/:id'
to:
map.connect ':lang/:controller/:action/:id.:format'
map.connect ':lang/:controller/:action/:id'
Original URL: http://127.0.0.1/main/index
URL for en-US: http://127.0.0.1/en-US/main/index
URL for zh-HK: http://127.0.0.1/zh-HK/main/index
评论
使用过程中发现一个小问题,yml文件分组会出错
error_message:
text_required:必填项目
date_invalid: 无效的日期
这种会显示不出来
我把i18n.rb第33行替换成了
while (translated.is_a?(Hash) && args.length > 0)
translated = translated[args[0]]
args.delete_at(0)
end
begin
sprintf translated, *args
rescue StandardError => e
return translated
end 用<%=_ "error_message", "text_required" %>就能够显示了
(我英文也写了一个yml文件)







评论排行榜