Я работал над библиотекой .NET, чтобы помочь с интернационализацией приложения. Он написан на C #, называется SmartFormat , и является открытым исходным кодом на GitHub.
Он содержит правила грамматических чисел для нескольких языков, которые определяют правильную форму единственного / множественного числа на основе шаблон и языковой стандарт. Правила были получены из правил множественного числа языка Unicode .
При переводе фразы, в которой есть слова, зависящие от количества (например, существительные, глаголы и прилагательные), вы указываете несколько форм и средство форматирования. выбирает правильную форму на основе этих правил.
Пример на английском языке: (обратите внимание, что синтаксис почти идентичен String.Format
)
var message = "There {0:is:are} {0} {0:item:items} remaining.";
var output = Smart.Format(culture, message, items.Count);
Я хотел бы написать модульные тесты для многих поддерживаемых языков. Однако я говорю только по-английски и по-испански (у них одинаковые правила грамматических чисел).
Какие хорошие тестовые фразы не на английском языке можно использовать в этих модульных тестах?
Я ищу фразы, похожие на "Осталось {0: is: are} {0} {0: item: items}".
. Обратите внимание, что в этом примере требуются определенные глагол и существительное в зависимости от количества.
Примечание о синтаксисе :
Эта библиотека ищет :
разделяет слова и выбирает правильное слово на основе правил, определенных для локали. Например, в польском языке слово «File» имеет 3 формы множественного числа: 1 «plik», 2–4 «pliki», 5–21 «plików». Итак, вы должны указать все 3 формы в строке формата: "{0} {0: plik: pliki: plików}"
.
Слова обычно упорядочиваются от наименьшего возможного значения к наибольшему, например "{0: zero: one: two: some: many: other}"
, как определено в языке Unicode. Правила множественного числа .
Дополнительная информация об этом коде обсуждалась здесь: Локализация слов в единственном / множественном числе - какие существуют языковые правила для грамматических чисел?