Chr*_*fer 8 rubygems ruby-on-rails rails-i18n
我正在使用i18n-active_record 0.1.0在Rails 4中开发一个应用程序来保存我的翻译而不是.yml文件.它工作正常.
然而,我正在努力的一件事是,每个翻译记录是每个语言环境的一个记录,即
#1. { locale: "en", key: "hello", value: "hello")
#2. { locale: "se", key: "hello", value: "hej")
Run Code Online (Sandbox Code Playgroud)
这使得更新它们是一项繁琐的工作.我希望将它作为一个,即:
{ key: "hello", value_en: "hello", value_se: "hej" }
Run Code Online (Sandbox Code Playgroud)
或类似的,以便以一种形式更新一个密钥的所有实例.我似乎找不到任何关于那个的东西,这让我很困惑.
有没有办法轻松做到这一点?任何类型的黑客也都可以.
我最终使用 Globalize 创建了自己的翻译功能。它没有明确依赖 I18n,因此它是一个并行系统,但它可以工作,虽然不太漂亮,也不是 I18n 的替代品,但它具有能够轻松添加语言环境并以一种形式处理所有翻译的重要功能。
在翻译模型中:
翻译 :value globalize_accessors :locales => I18n.available_locales, :attributes => [:value]
在应用程序助手中:
def t2(key_str)
key_stringified = key_str.to_s.gsub(":", "")
t = Transl8er.find_by_key(key_stringified)
if t.blank?
# Translation missing
if t.is_a? String
return_string = "Translation missing for #{key_str}"
else
return_string = key_str
end
else
begin
return_string = t.value.strip
rescue
return_string = t.value
end
end
return_string
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
204 次 |
| 最近记录: |