gpt4 book ai didi

c# - 单数/复数词的本地化 - 语法数字的不同语言规则是什么?

转载 作者:可可西里 更新时间:2023-11-01 08:25:10 26 4
gpt4 key购买 nike

我一直在开发一个 .NET 字符串格式化库来协助应用程序的本地化。它称为 SmartFormat 并在 GitHub 上开源.

它试图解决的问题之一是 Grammatical Numbers .这也称为“单数和复数形式”或“条件格式”,这是它在英语中的样子的片段:

var message = "There {0:is|are} {0} {0:item|items} remaining";

// You can use the Smart.Format method just like using String.Format:
var output = Smart.Format(CultureInfo.CurrentUICulture, message, items.Count);

我相信您知道,英语规则是有 2 种形式(单数和复数)可以应用于名词、动词和形容词。如果数量为 1,则使用单数,否则使用复数。

我现在正尝试通过为其他语言实现正确的规则来“开阔我的视野”!我开始明白有些语言最多可以有 4 种复数形式,并且需要一些逻辑来确定正确的形式。我想扩展我的代码以适应多种语言。例如,我听说俄语、波兰语和土耳其语的规则与英语截然不同,因此这可能是一个很好的起点。

但是,我只会说英语和西类牙语,那么如何确定许多常见语言的正确语法规则呢?

编辑:我还想知道一些适合我的单元测试的非英语“测试短语”:What are some good non-English phrases with singular and plural forms that can be used to test an internationalization and localization library?

最佳答案

当然,不同的语言有不同的复数规则。特别有趣的可能是阿拉伯语和波兰语,它们都包含相当多的复数形式。

如果您想详细了解这些规则,请访问Unicode Common Locale Data Repository , 即 Language Plural Rules .

那里有很多有趣的信息,不幸的是其中一些是错误的。我希望复数形式是正确的(至少对于波兰语来说是正确的,据我所知:))。

关于c# - 单数/复数词的本地化 - 语法数字的不同语言规则是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7136627/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com