微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

错误:Vapor 中 Lingo 的“缺少复数规则”

如何解决错误:Vapor 中 Lingo 的“缺少复数规则”

我正在将 Lingo 包用于我的 Vapor 解决方案,请参阅: https://github.com/vapor-community/Lingo-Vapor 并且这对于 3 种语言来说非常完美

现在我需要为正在创建的弹出窗口使用复数形式:

for i in stride(from: 1,to: 12,by: 1) {
            if let description = lingo?.localize("lbl_hour_s",locale: language,interpolations: ["count" : i]) {
                option = FormFieldStringOption(key:String(i),label: description)
            } else {
                option = FormFieldStringOption(key:String(i),label: String(i))
            }
            duration.options.append(option)
        }

我的 Json 文件是这样配置的:

for en_US
"lbl_hour_s" : {"one" : "1 hour","other" : "%{count} hours"},for nl_BE
"lbl_hour_s" : {"one" : "%{count} uur","many" : "%{count} uren","other" : "%{count} uren"},

(我尝试在 nl 中使用额外的“许多”,但在两种情况下仍然出现相同的错误

缺少语言环境的复数规则:en_US。将认为 other 规则。

这有什么问题吗?它看起来与文档中的示例相同:

"unread.messages": {
        "one": "You have one unread message.","other": "You have %{count} unread messages."

或者我需要对 Lingo 进行一些额外的配置吗? (在文档中没有找到它)

解决方法

问题在于,Lingo 不会自动回退到裸语言代码复数规则(例如,从 en_US -> en 当 en_US 不存在时)。

此问题已在版本 3.1.0 中修复。

,

我发现了我的问题。我使用“en_US”是因为我想在未来提供更多翻译。显然,对于美国英语,我应该使用“en”。

比利时的荷兰语(荷兰)口语“nl_BE”也有同样的问题。我想要这个,因为我还添加了“nl_NL”,这是荷兰的荷兰口语。两者 95% 相同,但有些词或句子不同。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?