如何解决错误: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 举报,一经查实,本站将立刻删除。