Перевод между языками с разными числами множественного числа - PullRequest
0 голосов
/ 24 июня 2019

Я пытаюсь создать файл перевода на упрощенном китайском из английского источника.Все это происходит в проекте Flask, и я использовал Flask-Babel (до сих пор успешно) для перевода на испанский и французский языки.Я добавил файл перевода на китайский язык, но столкнулся со следующей проблемой.

Рассмотрим следующие строки на английском языке:

msgid "One message"
msgid_plural "%(num)d messages"

Когда есть только одно сообщение, я не хочучтобы отобразить число 1, я хочу прописанную версию.

По-видимому, в китайском языке нет грамматической разницы между единственным и множественным числом, поэтому наши переводчики включили только один перевод для обеих версий:

msgstr[0] "%(num)d [something in Chinese]"

Когда я пытался скомпилировать этот файл, я получил следующее сообщение об ошибке:

неизвестное имя-заполнитель 'num'

Поэтому я попытался продублироватьстрока, подобная этой ( - 1 на китайском):

msgstr[0] "一 [something in Chinese]"
msgstr[1] "%(num)d [something in Chinese]"

Но тогда я получил эту ошибку:

msg имеет больше переводов, чем num_plurals каталога

, что имеет смысл: у китайцев есть nplurals из 1, поэтому не должно быть более одного msgstr.

На этом этапе я вижу два варианта:

  1. Обманите мой китайский .po файл и объявите, что nplurals = 2 остроумиеh то же правило, что и на английском: "Plural-Forms: nplurals=2; plural=(n > 1)".
  2. Обновите все мои исходные строки, чтобы я всегда использовал %(num)d в единственном числе, если мне это нужно во множественной версии.

Меня не устраивает ни один из вариантов.Есть ли альтернатива?

...