我正在尝试将一个应用程序翻译成日语,在我将其投入生产之前一切都很顺利。
由于 cache_classes 现在为真,模型中的任何翻译都会恢复为默认语言环境。
我知道我可能应该直接在 yml 文件中定位翻译,但我不确定如何针对以下简化代码执行此操作:
class TimeseriesForecast < ActiveRecord::Base
@@field_names = {
:location_name => I18n.t('forecast_timeseries.location_name'),
:local_date_time => I18n.t('forecast_timeseries.local_date_time'),
:zulu_date_time => I18n.t('forecast_timeseries.zulu_date_time'),
:temp_mean => I18n.t('forecast_timeseries.temp_mean')
}
end
非常感谢
最佳答案
您的 I18n.t()
调用是在编译时评估的,因为您定义的是类变量,而不是实例变量。您需要调用 I18n.t,它们将在运行时进行评估。
但如果您想翻译 ActiveRecord 字段名称,请使用 human_attribute_name
并通过 YML 提供您的翻译。您无需手动提供翻译,Rails 会自动为您处理这一切。
相应的文档位于 http://guides.rubyonrails.org/i18n.html第5.1章。
关于ruby-on-rails - 生产模型中的 Rails 3 翻译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7924326/