ActiveAdmin汉化
第一步:局部汉化
ActiveAdmin.register AdminUser do
menu :label => "用户管理"
index do
column "邮箱",:email
column "最近登录",:current_sign_in_at
column "上次登录",:last_sign_in_at
column "登录次数",:sign_in_count
default_actions
end
filter :email, :label=>"邮箱"
form do |f|
f.inputs "用户资料" do
f.input :email ,:label=>"邮箱"
f.input :password ,:label=>"密码"
f.input :password_confirmation ,:label=>"重复密码"
end
f.actions
end
# 右侧帮助
sidebar :help,:only => :index do
"如果您在使用后台管理时遇到问题,请联系robot.zhu@icitymobile.com"
end
end
按上述设置后,页面部分内容将变成中文。
menu 菜单栏文字
index column 列表中某列
filter label 筛选器标签
form inputs 表单的标题
form input label 单个文本输入框前的标签
这个时候看,整个框架还是英文的。
第二步:框架汉化
导入ActiveAdmin提供的语言文件。根据需要选择。简体中文就选择zh-CN.yml。
地址:https://github.com/activeadmin/activeadmin/tree/master/config/locales
中文:https://github.com/activeadmin/activeadmin/blob/master/config/locales/zh-CN.yml
将zh-CN.yml复制到自己的 config/locales/目录下。
第三步:修改配置
修改config/application.rb文件,添加下面两行。
config.i18n.available_locales = [:"zh-CN", :en]
config.i18n.default_locale = :"zh-CN"
重启Rails Server。
整个框架就变成中文了。
Model国际化
实际上面这么做之后,还有少量地方仍然是英文。
比如:导航栏上的模块名称(Posts),右侧的“新建Post”按钮。
我们肯定希望“Posts”显示为“博文”,“新建Post”显示为“新建博文”。
这个时候需要在语言文件zh-CN.yml里加上models的国际化。
activerecord:
models:
user: '用户'
post: '博文'
organization: '机构'
Device国际化
下载汉化包 devise.zh-CN.yml ,并复制到自己的 config/locales/目录下。
下载地址:https://github.com/plataformatec/devise/wiki/I18n
错误列表
错误信息:
ActionView::Template::Error (translation missing: zh-CN.time.formats.long):
1: insert_tag renderer_for(:index)
app/admin/admin_user.rb:6:in `block (2 levels) in <top (required)>'
解决办法
引入Rails的语言文件。复制内容至zh-CN.yml文件中。
地址:https://github.com/tsechingho/rails-i18n/tree/master/rails/locale
中文:https://github.com/tsechingho/rails-i18n/blob/master/rails/locale/zh-CN.yml