Какие хорошие неанглийские фразы с формами единственного и множественного числа можно использовать для проверки библиотеки интернационализации и локализации? - PullRequest
8 голосов
/ 25 августа 2011

Я работал над библиотекой .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);

Я хотел бы написать единицутесты для многих из поддерживаемых языков.Тем не менее, я говорю только на английском и испанском языках (оба имеют одинаковые правила грамматических чисел).

Какие хорошие тестовые фразы не на английском языке можно использовать для этих модульных тестов? Я ищу фразы, подобные "There {0:is:are} {0} {0:item:items} remaining.".Обратите внимание, что в этом примере требуется конкретный глагол и существительное в зависимости от количества.

Примечание о синтаксисе :

Эта библиотека ищет слова : с разделителями и выбираетправильное слово на основе правил, определенных для локали.Например, на польском языке есть 3 формы множественного числа для слова «Файл»: 1 «plik», 2-4 «pliki», 5-21 «plików».Таким образом, вы должны указать все 3 формы в строке формата: "{0} {0:plik:pliki:plików}".

Слова обычно упорядочены от наименьшего возможного значения к наибольшему, например "{0:zero:one:two:few:many:other}", как определено в множественных правилах языка Unicode .

Дополнительная информация об этом кодездесь обсуждалось: Локализация единственного / множественного числа слов - каковы различные языковые правила для грамматических чисел?

1 Ответ

2 голосов
/ 26 августа 2011

Я хотел бы внести примерный перевод вашей примерной фразы на турецкий язык, чтобы вы могли проверить на случай, когда количество возможных форм равно 1.;)

{0} nesne kaldı. = ({0} items remaining.)

Хотя турецкие слова регулярно используются во множественном числе с суффиксами, формы множественного числа никогда не используются, если указано количество элементов. Таким образом, вышеприведенное должно быть одинаковым в каждом случае:

1 nesne kaldı.

2 nesne kaldı.

42 nesne kaldı.

Однако, если счет не указан явно, может оказаться грамматически важным указать, говорим ли мы об одном или нескольких элементах. Таким образом, сообщение «Do you want to delete the selected item(s)?» должно быть оформлено так:

Seçili nesneyi silmek istiyor musunuz? (когда количество элементов = 1)

Seçili nesneleri silmek istiyor musunuz? (когда количество элементов> 1)

Так что я думаю, что формат этого будет:

Seçili {0:nesneyi:nesneleri} silmek istiyor musunuz?

...