mod-i18n ======= Simplistic(one page of code only) i18n plugin for Ruby on Rails, setup i18n in minutes! FEATURES ======= - Lightweight design, minimal configuration - Use simple YAML file to store translation - Select output language automatically based on user browser's HTTP_ACCEPT_LANGUAGE INSTALL ======= script/plugin install http://mod-i18n.googlecode.com/svn/trunk/plugins/i18n CONFIG ======= == 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 HTTP request parameter HTTP_ACCEPT_LANGUAGE to determine the language. This can be overridden by POST/GET parameter 'lang' (the parameter name is configurable through the constant PARAMETER_LANG in lib/i18n.rb) Original URL: http://127.0.0.1/main/index To force en-us, use: http://127.0.0.1/main/index?lang=en-us To force for zh-HK, use: 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 THANKS ======= - This plugin is modified from Localization module at mir.aculo.us http://mir.aculo.us/2005/10/03/ruby-on-rails-i18n-revisited - Thanks Takol for idea to use HTTP_ACCEPT_LANGUAGE to select language http://takol.tw/data/326894672446572cc5.html