• Никакой политики на форуме. Иначе - бан!
  • Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

Использование редактора Poedit для локализации WC

Статус
В этой теме нельзя размещать новые ответы.

D&B

Администратор
Команда форума
Местный
Так как у пользователей WC часто возникают вопросы по изменению файла локализации для этого плагина, решил тут отписать свое решение этой проблемы. В чем собственно проблема?

1. Файл с локализацией от WC по умолчанию, не видит популярный плагин для переводов – CodeStyling Localization к которому все привыкли. Вернее видит, но не все (возможно сам файлик просто нужно перенести в другое место, но я не пробовал). Отсюда вывод – изменяем перевод WC в программе – poedit. Скачать poedit можно вот тут с официальной страницы.

2. При открытии файла woocommerce-ru_RU.po в редакторе возникает ошибка с множественным числом. Как ее обойти, я опишу чуть ниже.

3. Имейте ввиду, что попытки быстренько перевести файл woocommerce-ru_RU.po в текстовом редакторе, ни к чему не приведут. Не знаю почему пока, не разбирался, но используйте для перевода именно poedit.

Как избежать ошибки при переводе и собственно, что либо перевести или изменить перевод.
Разберем пример от читателя. Допустим, нам нужно перевести надпись на кнопке "Перейти к оплате" на "Оформить заказ".

Woocommerce-1.jpg Woocommerce - 2.jpg Woocommerce - 3.jpg Woocommerce - 4.jpg Woocommerce - 5.jpg Woocommerce - 6.jpg
  1. Скачиваем редактор poedit по ссылке выше.
  2. Скачиваем плагин WooCommerce и разархивируем на рабочий стол.
  3. Запускам poedit и открываем файл локализации плагина – woocommerce/i18n/languages/woocommerce-ru_RU.po
  4. Высветится ошибка синтаксиса:
  5. Переходим в Каталог – Свойства и заменяем (взято с оф. сайта) последнюю строку на -
    Код:
    Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;
    Правда, в этом случае у нас остаются только единственное и множественное варианты, но это лучше чем ничего.
  6. И кликаем на ОК.
  7. Затем кликаем на Проверить. Уведомление об ошибке просто скрываем, если оно еще висит. Теперь можно приступать к переводу.
  8. Находим через поиск (CTRL+F) – "Перейти к оплате" и в нижнем поле меняем на то что нам надо. В нашем случае – "Оформить заказ" и сохраняем.
  9. Копируем файл woocommerce-ru_RU.po на сервер в директорию /wp-content/plugins/woocommerce/i18n/languages/ с заменой разумеется.
  10. Наблюдаем измененную надпись в корзине
    sf-laugh.gif
 
Последнее редактирование:

Валерий

Специалист
Переходим в Каталог – Свойства и заменяем (взято с оф. сайта) последнюю строку на -
Код:
Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;

Вот тут-то у меня и возникли проблемы с PoEdit при попытке перевода одного из плагинов, и не только его. Дело в том, что многие плагины, как и языковые файлы ядра WooCommerce имеют различное число множественных форм для разных случаев: где - одну, где - две, а где - сразу три. И тут PoEdit начинает тупить, и перевод частенько не срабатывает, а уведомление об ошибке исчезает лишь на время, до следующего открытия редактируемого файла. Строка, расположенная в PoEdit в Каталог – Свойства - одна, и туда можно занести какой-то определенный вид множественной формы, для двух видов множественного числа, как у Вас в примере, для трех (находил где-то нужный код), или для одного. Но фигня в том, что формы множественного числа не приведены к единому виду (для русского языка - три значения). Плагин (там где видит) CodeStyling Localization понимает это и все корректно переводит, а PoEdit почему-то понимать отказывается. Если вводим какую-то одну форму, например для двух значений, как у Вас в примере, и кликаем на Проверить, то сообщение об ошибке закрывается и файл можно корректно сохранить. Но при повторном открытии файла сообщение выскакивает вновь, только для другой формы. Пишет что-то типа этого: "Ошибка. Некоторые значения имеют 3 формы множественного числа...", или "Ошибка. Некоторые значения имеют 1 форму множественного числа..."
Может я что-то недопонимаю, но делал как написано у Вас (да и на других сайтах находил примерно похожие описания) а не вышел "каменный цветок"...:confused:
 
Последнее редактирование:

delitant

Опытный
Кроме файло .po, не забываем еще и про файл .mo, который poedit создаёт автоматом, его тоже нужно переносить в папку локализации.
 

delitant

Опытный
Мне советовали вот такую строку:
nplurals=3; plural=(n%10==1 && n%100!=11) ? 0 : ((n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20)) ? 1 : 2);
но проблему она тоже не решает. Хорошо бы докопаться до правды.
 
Последнее редактирование:

KoloS

Форумчанин
Местный
мне бы тоже не помешало изменить слово items на корзине
 

Валерий

Специалист
мне бы тоже не помешало изменить слово items на корзине

Я тут в одном из плагинов корзин не мог корректно перевести слово "items", точнее перевести-то его я мог, но плагин имел только две формы множественного числа (что весьма характерно для англоязычных плагинов), а мне нужно было, что по-русски это слово переводилось в 3-х формах, в зависимости от количества. Пробовал в исходном .php файле прописать 3-ю форму, но что-то у меня не получилось. В итоге удалил нах... это слово "items", а вместо него повесил сперва иконку корзины, а затем написал и само слово КОРЗИНА. Вполне нормально смотрится, если описать словами, то примерно так: "<иконка> КОРЗИНА - ... руб."
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу