Например: 2 темы, 1 тема, 11 тем
Форма существительного в русском языке зависит от числительного:
- После числительного 1 и составных числительных, заканчивающихся на 1 (21,31,…) существительное ставится в именительном падеже. 1 тема, 21 тема
- После числительных 2,3,4 и составных, оканчивающихся на 2,3,4 (22,53,74) сущ. ставится в р.п. ед.ч. 2 темы, 24 темы
- После других числительных — (например: 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).
Например:
1 |
printf( _n( '%s theme','%s themes', $themes, 'mydomain' ), $themes ); |
Функция _n($single, $plural, $number, $domain) …
- вернёт перевод $single, если $number==1
- вернёт перевод $plural, если $number — множественное число (2,3,4)
Правильно настроены формы множественного числа
Чтобы в русском переводе было 3 формы существительного — должны быть правильно настроены формы множественного числа в настройках .po файла:
1 |
"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 будут даны три варианта перевода.
