Локализация единственного / множественного числа - что такое различные языковые правила для грамматических чисел?

Я занимаюсь разработкой библиотеки форматирования строк .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);

Правило английского языка, как я уверен, вы знаете, состоит в том, что существует 2 формы (единственное и множественное число), которые могут применяться к существительным, глаголам и прилагательным. Если количество равно 1 , то используется единственное число, иначе используется множественное число.

Сейчас я пытаюсь «расширить свой кругозор», применяя правильные правила для других языков! Я пришел к выводу, что некоторые языки могут иметь до 4 форм множественного числа, и для определения правильной формы требуется некоторая логика. Я хотел бы расширить свой код для поддержки нескольких языков. Например, я слышал, что в русском, польском и турецком языках правила довольно сильно отличаются от правил в английском, так что это может быть отличной отправной точкой.

Однако я говорю только на английском и испанском языках,Итак, как я могу определить правильные грамматические правила для многих распространенных языков?

Изменить : Я также хотел бы знать несколько хороших неанглийских «тестовых фраз» для моих модульных тестов здесь: Какие хорошие неанглийские фразы в единственном и множественном числе, которые можно использовать для тестирования библиотеки интернационализации и локализации?

12
задан Community 23 May 2017 в 12:16
поделиться