我有一个配置文件:
real 0m51.037s
user 0m5.297s
sys 0m8.094s
它具有一个对应的初始化程序:
# config/meta.yml
base_meta:
title: 'Top 10 Cats'
我可以这样访问标题:
# config/initializers/meta.rb
META = YAML.load_file("#{Rails.root.to_s}/config/meta.yml")
但是,我想将元数据国际化。我认为这应该由现有的META['base_meta']['title'] #=> "Top 10 Cats"
yaml文件来处理。
如何引用现有翻译?
locales/
我已经尝试过使用erb,但是它不起作用:
# config/locales/en.yml
en:
title: 'Top 10 Cats'
将文件重命名为# config/meta.yml
base_meta:
title: t(:title)
也不起作用。
是否可以从我的配置文件中引用I18n密钥?
答案 0 :(得分:3)
您可以在YAML文件中为现有翻译添加 key 而不是其值:
# config/locales/en.yml
en:
cats:
title: 'Top 10 Cats'
# config/locales/de.yml
de:
cats:
title: 'Top 10 Katzen'
# config/meta.yml
base_meta:
title: 'cats.title'
因此它只返回该键:
META['base_meta']['title'] #=> "cats.title"
然后可以将其传递给I18n.t
:
I18n.locale = :en
t(META['base_meta']['title']) #=> "Top 10 Cats"
I18n.locale = :de
t(META['base_meta']['title']) #=> "Top 10 Katzen"
答案 1 :(得分:-1)
尝试用以下命令替换 config.i18n.load_path 参数的application.rb默认值:
$pod
对我有用。