組み込みの .Net メソッドTextInfo.ToTitleCaseはフランス語の文を正常に処理しますが、問題を引き起こすサンプルがいくつかあります。コメントを参照してください(以下にコピー):
通常、タイトル ケーシングは、単語の最初の文字を大文字に変換し、残りの文字を小文字に変換します。ただし、このメソッドは現在、頭字語など、完全に大文字の単語を変換するための適切な大文字と小文字の区別を提供していません。次の表は、メソッドが複数の文字列をレンダリングする方法を示しています。
入力 言語 期待される結果 実結果 戦争と平和 英語 戦争と平和 戦争と平和 アンホルター ダーチ ダイ ギャラクシーあたり ドイツ人 Anhalter durch die Galaxis あたり Per Anhalter Durch Die Galaxis レ ノフラージュ ディタック フランス語 レ ノフラジェ ディタック レ ノフラジェ ディタック 上に示したように、TextInfo.ToTitleCaseメソッドは、必ずしも言語的に正しいとは限らない任意の大文字と小文字の動作を提供します。言語的に正しい解決策には追加の規則が必要ですが、現在のアルゴリズムはやや単純で高速です。将来、この API を遅くする権利を留保します。
TextInfo.ToTitleCaseメソッドの現在の実装では、入力文字列と同じ長さの出力文字列が生成されます。ただし、この動作は保証されておらず、将来の実装で変更される可能性があります。
Humanizer ライブラリ内に、特定のカルチャでタイトル化するオプションはありますか?