.NET Framework具有各种类来处理特定于文化的问题,例如数字或日期格式。我想知道标点符号是否有这样的东西。
例如,在英语中,:
就位于
示例:
然而,在法语中,它将是
例如:
大多数欧洲语言使用.
来标记句子的结尾。但在中文中,它是。
。对于可能因语言而异的引用字符也是如此。我很希望在TextInfo
类或System.Globalization
命名空间中找到一些东西,但没有运气。
所以我想知道.NET Framework中是否存在这样的东西,或者是否有某个第三方库隐藏在处理这类问题的地方。我找不到任何东西。我正在使用C#4.0,但我想.NET中支持的所有语言的问题都是一样的。
仅供参考,当我想显示一些与文化无关的字符串,然后显示一些数字信息时,我遇到了这个问题,如下所示:
string.Format("{0}: {1}", this.nameOfAGuy, this.quantityAssociatedWithTheGuy);
英语不错,但不是法语。
答案 0 :(得分:3)
System.Globalization
命名空间不包含标点符号规则。标点符号确实是语言规则的一部分(与语法一起),而全球化命名空间更多地是关于国家标准。
我不知道它是否有多大帮助,但您展示的示例可以通过定期本地化来解决。您可以 - 并且应该 - 在资源中包含格式字符串(显然只是用于构造显示文本的字符串),这样本地化程序不仅可以对标点符号进行更改,还可以对必要的其他任何内容进行更改(另一个示例是子串的排序,在某些语言中可能需要颠倒。)
string.Format(MyResources.FormatNameAndAssociatedQuantity, this.nameOfAGuy, this.quantityAssociatedWithTheGuy);
此字符串的英文版本为"{0}: {1}"
及其法语本地化"{0} : {1}"
(冒号前有空格)。