Sco*_*pey 12 .net c# string.format localization internationalization
我一直在开发一个.NET字符串格式库来协助应用程序的本地化.它被称为SmartFormat,在GitHub上是开源的.
它试图解决的一个问题是语法数字.这也被称为"单数和复数形式"或"条件格式",这里有一个英文版的片段:
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);
Run Code Online (Sandbox Code Playgroud)
我相信英国的规则是,有2种形式(单数和复数)可以应用于名词,动词和形容词.如果数量是1单数,则使用,否则使用复数.
我现在正试图通过实施其他语言的正确规则来"开阔视野"!我已经明白,某些语言最多可以包含4种复数形式,并且需要一些逻辑来确定正确的形式.我想扩展我的代码以适应多种语言.例如,我听说俄语,波兰语和土耳其语的规则与英语完全不同,所以这可能是一个很好的起点.
但是,我只会说英语和西班牙语,那么如何确定许多常用语言的正确语法规则呢?
编辑:我也想知道我的单元测试的一些好的非英语"测试短语":什么是一些非常好的非英语短语,有单数和复数形式可用于测试国际化和本地化库?
Paw*_*yda 10
当然,不同的语言有不同的复数规则.特别有趣的可能是阿拉伯语和波兰语,两者都包含相当多的复数形式.
如果您想了解有关这些规则的更多信息,请访问Unicode Common Locale Data Repository,即语言复数规则.
那里有很多有趣的信息,不幸的是其中有些信息是错误的.我希望复数形式是正确的(至少对波兰人来说,就我所知,:)).
| 归档时间: |
|
| 查看次数: |
3651 次 |
| 最近记录: |