当前位置:  开发笔记 > 后端 > 正文

I18n.t翻译缺少默认值无

如何解决《I18n.t翻译缺少默认值无》经验,为你挑选了1个好方法。

所以我知道如果在阅读yaml文件时"翻译缺失:",如何返回默认值.

some = I18n.t("something.something_else", default: "value")

但是,如果我希望默认值为nil,我该如何以Ruby方式执行此操作?我知道我可以正则表达式匹配变量中的"翻译缺失:",如果匹配,我会将它分配给nil.但我想做的就是拥有

some = I18n.t("something.something_else", default: nil)

但它只是让我失去了翻译.有谁知道一个好方法?



1> Simone Carle..:

:default不能为零.将值设置nil为等于根本不设置选项.

但是,由于gem似乎只检查密钥是否为nil,因此您可以尝试将空字符串作为默认值传递.如果translate缺少翻译,该方法可能会返回一个空字符串.

some = I18n.t("something.something_else", default: "")

我相信这是您可以获得的更接近的解决方案,除非您定义translate内部查找密钥存在的自定义方法,如果密钥不存在则返回nil.


您可以添加一个状态检查,以确保获得翻译后的字符串或零返回:`some = I18n.t(“ something.something_else”,默认值:“”)。presence`
推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有