2009-11-16 2 views
1

Je suis en train de faire mon titre de l'article bien formaté, je suis actuellement en utilisant TextInfo.ToTitleCase pour le formage. Il fait bien sur la plupart des emplois, mais ce n'est pas parfait.TextInfo.ToTitleCase ne fonctionne pas correctement, de meilleures solutions?

Par exemple:

  • Chaîne d'origine: guerre et paix
  • Résultat attendu: Guerre et Paix
  • Résultat réel: Guerre et Paix

Microsoft also use above as the example , c'est évidemment un problème connu. Ce que je vais faire est d'écrire une liste à la main pour les mots comme "a", "et", "ou" etc (je ne suis pas sûr que je peux obtenir une liste complète ou non), serait-ce le meilleure solution pour ce problème?

Répondre

1

Voici une implémentation JavaScript à partir d'une source que je fais confiance et moi-même avons utilisé: http://ejohn.org/blog/title-capitalization-in-javascript/

Dans le source code, il a une liste des exceptions en minuscules seulement que vous (je crois bien) suppose que vous auriez besoin. Le travail consisterait à le convertir en quelque chose que ASP.NET pourrait utiliser sur le serveur, bien sûr, mais la logique a déjà beaucoup réfléchi, ce qui devrait vous aider avec tout ce que vous finissez par rouler.

Bonne chance!

+0

J'ai oublié de mentionner qu'il a basé son hors de quelque chose en Perl, et il y a plusieurs autres ports dans différentes langues que vous pourriez trouver dans les commentaires sur cette page ... – Funka

0

Je n'ai pas vu une solution à ce problème dans une bibliothèque fournie ... Il semble un bon candidat pour un extension method. Fait intéressant, il est légèrement plus complexe que juste une liste de mots et a quelques variations.

Le Chicago Manual of Style suggère ceci:

  1. capitalise toujours le premier et le dernier mot .

  2. tous les noms, Capitaliser pronoms, adjectifs, verbes, adverbes et conjonctions subordonnés ("comme", "parce que", "bien").

  3. Minuscules tous les articles, coordonner conjonctions (« et », « ou », « ni »), et prépositions quelle que soit la longueur , quand ils sont autre que le premier ou le dernier mot.

  4. Minuscules le "à" dans un infinitif.

Le dernier cas semble particulièrement difficile car vous devez analyser pour déterminer si "to" est utilisé dans un infinitif.