Поддержка французского названия Humanizer
Встроенный метод.Net TextInfo.ToTitleCase хорошо обрабатывает французские предложения, но есть некоторые примеры, которые вызывают проблемы (см. Примечания: https://msdn.microsoft.com/en-us/library/system.globalization.textinfo.totitlecase%28v=vs.110%29.aspx)
Есть ли возможность в библиотеке Humanizer присвоить звание определенной культуре?
1 ответ
Это могло бы показаться хорошим дополнением к библиотеке Humanizer, но в настоящее время оно не поддерживается.
Если бы мне пришлось реализовать регистр заголовков для французского языка, я бы посмотрел на библиотеку titlecase-french javascript и переписал ее на C#, следуя хорошему набору правил, которые она определяет:
Есть 5 основных правил:
- Заголовок всегда начинается со слова в верхнем регистре
- Конкретный список слов в нижнем регистре
- Слова после цитаты могут быть в нижнем или верхнем регистре в зависимости от слова перед цитатой.
- Акронимы в верхнем регистре
- Специальные прописные буквы (например, с ударением) заменяются их простой версией
Образец в
TextInfo.ToTitleCase
примечания (les naufragés d'ythaq) работает должным образом с
titlecase-french
:
console.log(require('titlecase-french').convert("les naufragés d'ythaq"));
// Les Naufragés d'Ythaq