Я пытаюсь создать файл перевода на упрощенном китайском из английского источника.Все это происходит в проекте 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
.
На этом этапе я вижу два варианта:
- Обманите мой китайский .po файл и объявите, что
nplurals = 2
остроумиеh то же правило, что и на английском: "Plural-Forms: nplurals=2; plural=(n > 1)"
. - Обновите все мои исходные строки, чтобы я всегда использовал
%(num)d
в единственном числе, если мне это нужно во множественной версии.
Меня не устраивает ни один из вариантов.Есть ли альтернатива?