Я разрабатываю библиотеку форматирования строки .NET, чтобы помочь с локализацией приложения. Он называется SmartFormat и является открытым исходным кодом на GitHub.
Одной из проблем, которые он пытается решить, является Грамматические числа. Это также известно как "сингулярные и множественные формы" или "условное форматирование", а здесь фрагмент того, как он выглядит на английском языке:
var message = "There {0:is|are} {0} {0:item|items} remaining";
// You can use the Smart.Format method just like using String.Format:
var output = Smart.Format(CultureInfo.CurrentUICulture, message, items.Count);
Английское правило, как я уверен, вы знаете, состоит в том, что существуют две формы (единственные и множественные), которые могут применяться к существительным, глаголам и прилагательным. Если величина 1
, то используется сингулярное значение, в противном случае используется множественное число.
Теперь я пытаюсь "расширить свои горизонты", внедряя правильные правила для других языков! Я понял, что некоторые языки могут иметь до 4 множественных форм, и для определения правильной формы требуется определенная логика. Я хотел бы расширить свой код, чтобы разместить несколько языков. Например, я слышал, что русский, польский и турецкий языки имеют довольно разные правила, чем английский, поэтому это может быть отличной отправной точкой.
Однако я говорю только по-английски и по-испански, так как я могу определить правильные грамматические правила для многих общих языков?
Изменить. Мне также хотелось бы узнать некоторые хорошие "английские" фразы без английского для моих модульных тестов здесь: Какие хорошие не-английские фразы с единственными и множественными формами, которые могут быть использованы для тестирования библиотеки интернационализации и локализации?