gettext — перевод с русского

Пробую локализовать тексты с русского на английский с помощью gettext.
Возник вопрос: как указать все формы (3 штуки) множественных чисел ngettext(), которая принимает только 2 формы.

Есть: ngettext('%d окно', '%d окон', 22) — выведет %d окон
Надо '%d окна'.
  • Вопрос задан
  • 4288 просмотров
Решения вопроса 1
kolpeex
@kolpeex Автор вопроса
Наверно, придется использовать синтаксис с двумя формами, но создавать файл перевода с русского на русский, где переводить только множественные формы:

msgid "%d день назад"
msgid_plural "%d дней назад"
msgstr[0] "%d день назад"
msgstr[1] "%d дня назад"
msgstr[1] "%d дней назад"
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Infra_HDC
@Infra_HDC
R2AMO
Внесу ясность в терминологию. Сейчас такую форму множественного числа относят — по версии Википедии — к пережиткам двойственного числа в современном русском языке. Согласно философии именования строк в файле .po, в Вашем случае, его содержимое должно было бы выглядеть как-то так:
msgid "%d день назад"
msgid_dual "%d дня назад"
msgid_plural "%d дней назад"
msgstr[0] "%d day ago"
msgstr[1] "%d days ago"

Если бы, конечно, такой вариант использования библиотеки gettext был в природе.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы