ruby基础功能-国际化

概念 及 相关GEM

把应用翻译成英语之外的其他语言,或提供多语言支持

rails 2.2以上版本,自带的ruby I18n gem, 提供了易用易扩展的框架

  1. “国际化”(internationalization)过程通常是指,把所有字符串及本地化相关信息(例如日期或货币格式)从应用中抽取出来
  2. “本地化”(localization)过程通常是指,翻译这些字符串并提供相关信息的本地格式
I18n 公开 API

rails中的每一个静态字符串都已经国际化

公开API中最重要的两个方法

  • translate # 查找文本翻译
  • localize # 把日期和时间对象转换为本地格式(本地化)

这两个的别名分别为#t 和 #l

  • I18n.t 'store.title'
  • I18n.l Time.now

其他方法

  • load_path # 自定义翻译文件的路径
  • locale # 获取或设置当前区域
  • default_locale # 获取或设置默认区域
  • available_locales # 应用可用的区域设置白名单
  • enforce_available_locales # 强制使用白名单(true 或 false)
  • exception_handler # 使用其他异常处理程序
  • backend # 使用其他后端

国际化设置

Rails 会把 config/locales 文件夹中的 .rb 和 .yml 文件自动添加到翻译文件加载路径中。

#config/locales/em.yml
en:
  hello: "Hello world"  # 注意:两个空格缩进,不要使用tab

Rails 会自动加载翻译文件加载路径(I18n.load_path),这是一个保存有翻译文件路径的数组。通过配置翻译文件加载路径,我们可以自定义翻译文件的目录结构和文件命名规则

I18n 库的后端采用了延迟加载技术,相关翻译信息仅在第一次查找时加载

默认的区域设置和翻译的加载路径可以在 config/application.rb 文件中配置

 config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
config.i18n.default_locale = 'zh-CN'

项目中使用

到 application.rb 中添加

config.i18n.default_locale = 'zh-CN'

添加config/locals/zh-CN.yml文件

zh-CN:
  navbar:
    about: 关于
  activerecord:
    errors:
      models:
        user:
          attributes:
            name:
              blank: 用户名不能为空
              taken: 用户已经存在
            email:
              blank: 请填写邮箱地址
              taken: 邮箱已经被占用
            password:
              blank: 密码不能为空
            password_confirmation:
              confirmation: 两次输入密码不相同

在erb页面中对应修改

- <li><%= link_to "About", "/about" %></li>
+ <li><%= link_to t("navbar.about"), "/about" %></li>  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值