Rails i18n多国语言

1.下载本地化文件
    下载地址: https://github.com/svenfuchs/rails-i18n
    将en-US.yml,zh-CN.yml文件拷到config/locals目录下,同时创建en.yml,zh.yml文件(项目本地化数据文件)
   
2.设置加载路径和默认语言
    a.设置加载路径
      默认情况下rails会加载lcoals目录下的所有.rb,.yml文件,你也可以设置自己的加载路径,rails默认不会load层级目录中的文件
     
config.i18n.load_path += Dir[Rails.root.join('my', 'locales','*.{rb,yml}')]
      I18n.load_path << locale_path

    b.默认语言
     
config.i18n.default_locale = :en

3.基本的使用方法
配置:
   zh:
     controller:
        defaults:         # 所有页面公用的值
           success: 成功
           warn:  警告
        i18n:
           text:
              tip: %{num} 你想制作一本自己写的Java书籍

输出:
     <%= t(:tip, :scope => "controller.i18n.text",:num => '1') %></li>
     <%= t(:tip, :scope => "controller.#{controller_name}.text",:num => '2')%>
     <%= t("controller.i18n.text.tip",:num => '3') %>
     <%= t(:text,:default => '默认值',:num => '4') %>
     # 1 你想制作一本自己写的Java书籍
     # 2 你想制作一本自己写的Java书籍
     # 3 你想制作一本自己写的Java书籍
     # I am default value

更多参看:http://guides.rubyonrails.org/i18n.html
4.切换多语言
   before_filter :set_locale
  			
   def set_locale
    session[:locale] = params[:locale] if params[:locale]
    I18n.locale = session[:locale] || I18n.default_locale
    ....
   end

5.i18n特性
   a.传入的keys即可以是符号也可以是字符串
     
 
       I18n.t :message
       I18n.t 'message'

   b. scope
      
I18n.t :record_invalid, :scope => [:activerecord, :errors, :messages]
       I18n.translate "activerecord.errors.messages.record_invalid"
       I18n.t 'activerecord.errors.messages.record_invalid'
       I18n.t 'errors.messages.record_invalid', :scope => :active_record
       I18n.t :record_invalid, :scope => 'activerecord.errors.messages'
       I18n.t :record_invalid, :scope => [:activerecord, :errors, :messages]


   3.defaults
    
I18n.t :missing, :default => 'Not here'# => 'Not here'



更多参考:http://www.cnblogs.com/orez88/articles/1537780.html
          http://ihower.tw/rails2/rails-i18n.html
   
   

你可能感兴趣的:(java,html,Rails)