• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    浅谈Ruby on Rails的国际化

    视图、模型与控制器里不应使用语言相关设置与字串。这些文字应搬到在 config/locales 下的语言文件里。

    当 ActiveRecord 模型的标签需要被翻译时,使用activerecord 作用域:

    en:
     activerecord:
      models:
       user: Member
      attributes:
       user:
        name: "Full name"
    
    

    然后 User.model_name.human 会返回 "Member" ,而 User.human_attribute_name("name") 会返回 "Full name"。这些属性的翻译会被视图作为标签使用。

    把在视图使用的文字与 ActiveRecord 的属性翻译分开。 把给模型使用的语言文件放在名为 models 的文件夹,给视图使用的文字放在名为 views 的文件夹。

        当使用额外目录的语言文件组织完成时,为了要载入这些目录,要在 application.rb 文件里描述这些目录。

      # config/application.rb
      config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')]
    
    

    把共享的本土化选项,像是日期或货币格式,放在 locales 的根目录下。

    使用精简形式的 I18n 方法: I18n.t 来取代 I18n.translate 以及使用 I18n.l 取代 I18n.localize。

    使用 "懒惰" 查询视图中使用的文字。假设我们有以下结构:

    en:
     users:
      show:
       title: "User details page"
    
    

    users.show.title 的数值能这样被 app/views/users/show.html.haml 查询:

    = t '.title'
    
    

    在控制器与模型使用点分隔的键,来取代指定 :scope 选项。点分隔的调用更容易阅读及追踪层级。

    # 这样子调用
    I18n.t 'activerecord.errors.messages.record_invalid'
    
    # 而不是这样
    I18n.t :record_invalid, :scope => [:activerecord, :errors, :messages]
    
    


    您可能感兴趣的文章:
    • 关于Ruby on Rails路由配置的一些建议
    • 快速安装Ruby on Rails的简明指南
    • 在Ruby on Rails中使用Markdown的方法
    上一篇:关于Ruby on Rails视图编写的一些建议
    下一篇:详解Ruby on Rails中的mailer相关使用
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    浅谈Ruby on Rails的国际化 浅谈,Ruby,Rails,的,国际化,