Как в wordpress сделать правильный перевод на русский существительных после количественных числительных?

Например: 2 темы, 1 тема, 11 тем

Форма существительного в русском языке зависит от числительного:

  1. После числительного 1 и составных числительных, заканчивающихся на 1 (21,31,…) существительное ставится в именительном падеже. 1 тема, 21 тема
  2. После числительных 2,3,4 и составных, оканчивающихся на 2,3,4 (22,53,74) сущ. ставится в р.п. ед.ч. 2 темы, 24 темы
  3. После других числительных — (например: 0, 5, 6, 7, 8, 9, 10, 11, … 20, 30, … 100 и составных 25,46,39) существительное ставится в. р.п. мн. ч 5 тем, 25 тем, 100 тем

В теме или плагине WordPress, который мы переводим, должны быть:

Использованы функции _n() или _nx()

В нужном месте кода должна использоваться функция _n($single, $plural, $number, $domain ) или _nx($single, $plural, $number, $content, $domain).

Например:

printf( _n( '%s theme','%s themes', $themes, 'mydomain' ), $themes ); 

Функция _n($single, $plural, $number, $domain)

  • вернёт перевод $single, если $number==1
  • вернёт перевод $plural, если $number — множественное число (2,3,4)

Правильно настроены формы множественного числа

Чтобы в русском переводе было 3 формы существительного — должны быть правильно настроены формы множественного числа в настройках .po файла:

"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"

и нужно правильно указать ключевые слова (имена функций) исходных файлов

_n:1,2

_nx:1,2,4c

Подробнее: https://wp-kama.ru/handbook/codex/translations#plural_forms

Если всё сделано правильно, то при переводе на русский в программе PoEdit или в плагине Loco Translate будут даны три варианта перевода.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

20 − одиннадцать =