我使用rails-i18n(5.1.3)gem,不知道如何从yml
文件的NULL键中获取值:
---
en:
block:
~: 'Block' # `~` and `null` keys work the same way
user: 'Block user'
admin: 'Block admin'
我尝试过:
pry(main)> I18n.t('block')
=> {nil=>"Block", :user=>"Block user", :admin=> "Block admin"}
pry(main)> I18n.t('block.')
=> {nil=>"Block", :user=>"Block user", :admin=> "Block admin"}
pry(main)> I18n.t('block.null')
=> "translation missing: en.block.null"
pry(main)> I18n.t('block.nil')
=> "translation missing: en.block.nil"
pry(main)> I18n.t('block.~')
=> "translation missing: en.block.~"
有什么想法吗?预先感谢。
答案 0 :(得分:1)
您在这里使用null
作为密钥有充分的理由吗?您可以使用其他诸如other
或default
之类的东西吗?
之前,我从未在翻译文件中看到过-经过一些研究,图书馆似乎explicitly disabled。实际上,默认的I18n
后端explicitly handles nil
keys by returning nil
。
如果您认为这是一个有效的用例,则可以尝试编写自己的后端来处理nil
(可能是I18n.t('block.~')
或I18n.t('block.null')
),如果成功,打开库的PR。
或者作为一种快速的解决方法,您可以使用:I18n.t('block').fetch(nil)
。
...或者,就像我最初说的那样,您可以使用其他密钥;像other
。