Искал, уже решил накатать патч в ядро (и накатал...), но тов. Ilya_1st подсказал, что этот вопрос решается через трансляции в .po файле.
В начале .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));"
"(0):(((((n%10)>=2)&&((n%10)<=4))&&(((n%100)<10)||((n%100)>=20)))?(1):2));"
Далее
msgid "Bulk generation of index aliases completed, one alias generated."
msgid_plural ""
"Bulk generation of index aliases completed, count aliases generated."
msgstr[0] ""
"Массовое обновление индекса синонимов завершено, count синоним сгенерирован."
msgstr[1] ""
"Массовое обновление индекса синонимов завершено, count синонима "
"сгенерировано."
msgstr[2] ""
"Массовое обновление индекса синонимов завершено, count[2] синонимов "
"сгенерировано."
msgid_plural ""
"Bulk generation of index aliases completed, count aliases generated."
msgstr[0] ""
"Массовое обновление индекса синонимов завершено, count синоним сгенерирован."
msgstr[1] ""
"Массовое обновление индекса синонимов завершено, count синонима "
"сгенерировано."
msgstr[2] ""
"Массовое обновление индекса синонимов завершено, count[2] синонимов "
"сгенерировано."
Пример из pathauto/translations/ru.po
Вложение | Размер |
---|---|
format_plural.patch | 1011 байт |
Комментарии
Ну вообще-то да, поддержка множественных чисел имеется в библиотеке gettext, принципы которой взяты за основу локализации в Drupal. Для понимания локализации рекомендуется ознакомиться с http://www.gnu.org/software/gettext/manual/gettext.html (поможет с локализацией и других программ, т.к. gettext - стандарт де факто в юниксе).
В api format_plural, t об этом ничего не сказано, хотя, на мой взгляд, стоило бы.