ruby-on-rails - 在 Rails I18n 语言环境中使用 NULL 键
问题描述
我使用 rails-i18n (5.1.3) gem,我想知道如何从文件中的 NULL 键中获取值yml
:
---
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.~"
有任何想法吗?提前致谢。
解决方案
null
您在这里使用钥匙是否有充分的理由?你能用别的东西吗,比如other
or default
?
我以前从未在翻译文件中看到过这个 - 经过一些研究,它似乎被图书馆明确禁用。事实上,默认I18n
后端通过返回显式处理nil
键nil
。
如果您认为这是一个有效的用例,您可以尝试编写自己的后端来nil
根据需要进行处理(可能使用I18n.t('block.~')
or I18n.t('block.null')
)——如果成功,请打开库的 PR。
或者作为一种快速解决方法,您可以使用:I18n.t('block').fetch(nil)
.
...或者,正如我最初所说,您可以使用不同的密钥;喜欢other
。
推荐阅读
- spring - 通过对象属性搜索
- python - 更复杂循环的 Python 列表理解
- azure - 无法通过 Databricks 笔记本从 Azure 存储容器中删除目录
- windows-subsystem-for-linux - WSL2 网络不可达
- powershell - 将用户导入 Active Directory
- python - 有没有办法在 tkinter 中刷新/更新顶级窗口?
- python - 在 python 中的“石头剪刀布”游戏中的所有输入之后,代码打印“无效输入”
- netlogo - 如何随着时间的推移创建具有泊松分布的数字的海龟
- java - 如何将文档传递给 DocuSign Java SDK 的 updateDocument 方法
- php - 用于返回响应的 Web 服务变量