所以我知道如果我在读取 yaml 文件时遇到“翻译缺失:”如何返回默认值。
some = I18n.t("something.something_else", default: "value")
但是如果我希望默认值为 nil,我该如何以 Ruby 的方式做到这一点呢?我知道我可以正则表达式并匹配变量 some 中的“translation missing:”,如果它匹配,我会将它分配给 nil。但我想做的是拥有
some = I18n.t("something.something_else", default: nil)
但它只是返回了我缺少的翻译。有谁知道好的方法吗?
最佳答案
:default
不能为 nil。将值设置为 nil
相当于根本不设置该选项。
但是,由于gem似乎only check whether the key is nil or not ,您可以尝试传递一个空字符串作为默认值。如果缺少翻译,translate
方法可能会返回一个空字符串。
some = I18n.t("something.something_else", default: "")
我相信这是您可以获得的更接近的解决方案,除非您定义自定义 translate
方法,该方法在内部查找 key 的存在并在 key 不存在时返回 nil。
关于ruby - I18n.t 翻译缺少默认值 Nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34536692/