Как: Перевести множественные формы для тем / плагинов с помощью PoEdit

8

Как видно из названия: Как бы вы перевели ...

  • _n()
  • _n_noop()
  • _nc()
  • _nx()
  • _nx_noop()

... в ваших .mo файлах?

кайзер
источник

Ответы:

17

Шаг 1

Откройте ваш файл в PoEdit .

Шаг 2

Перейти в « Каталог » »« Настройки »

Шаг 3

Заполните « Язык » и « Страна » 1) .

Шаг 4

Заполните « Pluralform » (последнее поле).

// For 2 plural forms
nplurals=2; plural=n != 1;

// For 3 plural forms (for e.g. russian), use:
nplurals=3; plural=(n%10==1 && n%100!=11) ? 0 : ((n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20)) ? 1 : 2);

// For 4 plural forms (for e.g. slovenian), use:
nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;

Шаг 4

Перейдите на 3-ю вкладку « Ключевые слова ».

Добавьте следующий список. 2) Конечно, вы должны распространяться 1,2,3на языки с тремя различными формами множественного числа и так далее.

_n:1,2
_n_noop:1,2
_nx:1,2
_nx_noop:1,2

связи

  • Эта статья от Mark Jaquith может быть интересной.
  • Хайко Рабе очень хорошо объясняет, как работать с файлами переводов (немецкий язык). Он также предлагает интересный PDF.

Плагины

Этот плагин (снова) Хейко Рабе довольно хорошо помогает переводить ваш плагин.


Сноски

1) Например, в Великобритании и США разные формы «цвет / цвет»

2) Каждая строка входит в одну (новую) запись.

кайзер
источник
1
_nc устарела в WP, это то же самое, что _n
onetrickpony
1
«Например, в Великобритании и США разные формы« цвет / цвет »» - и многие, многие другие. Американцы любят произносить много слов с помощью Z, а не S;) Поэтому почему местные жители en_GB и en_US.
Скотт
@OneTrickPony Saw _cdereacaced и другие вещи, но присматривал за этим. Спасибо.
Кайзер
1
«Конечно, вы должны расширить до 1,2,3 для языков с тремя различными формами множественного числа и так далее». Это совсем не так, API gettext остается неизменным независимо от языка перевода. Прочитайте документы.
Вацлав Славик
0

Вам просто нужно определить форму множественного числа языка вашего перевода в вашем PO-файле (который компилируется в MO).

Например, в английском есть две формы, поэтому ваш PO-файл должен иметь два определения «msgstr» для каждой строки с msgid_plural.

Если вы используете PoEdit, это проще, просто вставьте определение формы множественного числа в настройках каталога, и вы получите дополнительные поля для множественных строк ...

onetrickpony
источник
2
Это было не так просто. Вы должны знать, как настроить файл po ...
kaiser