内置的 .Net 方法TextInfo.ToTitleCase可以处理法语句子,但是有一些导致问题的示例,请参见备注(复制如下):
通常,标题大小写将单词的第一个字符转换为大写,其余字符转换为小写。但是,此方法当前不提供适当的大小写来转换完全大写的单词,例如首字母缩写词。下表显示了该方法呈现多个字符串的方式。
输入 语 预期结果 实际结果 战争与和平 英语 战争与和平 战争与和平 Per anhalter duch die Galaxis 德语 Per Anhalter duch die Galaxis Per Anhalter Durch Die Galaxis les naufragés d'ythaq 法语 Les Naufragés d'Ythaq Les Naufragés D'ythaq 如上所示,TextInfo.ToTitleCase方法提供了在语言上不一定正确的任意大小写行为。语言正确的解决方案需要额外的规则,而当前的算法更简单、更快。我们保留在未来使这个 API 变慢的权利。
TextInfo.ToTitleCase方法的当前实现产生与输入字符串长度相同的输出字符串。但是,这种行为并不能保证,并且可能会在未来的实施中发生变化。
Humanizer 库中是否有一个选项可以使用给定的文化进行标题化?