Поддержка Проблемы и решения Формы множественного числа

  • Добрый день!

    У меня вопрос по поводу перевода Вордпресс сайта на русский язык. Как вы знаете, в русском несколько форм множественного числа. Вот я и добавила их в свой PO файл, сгенерировался MO, все подгружено, а сайт все равно отображает тексты в стиле «Найдено 11 результата» вместо «результатов». Т.е. по сути локализованный перевод виден, но формы множественного отображаются неверно. Мой сайт: http://blog.anaitsagoyan.com/

    Могли бы вы мне помочь разобраться в проблеме?

    Спасибо!
    Анаит

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Могли бы вы мне помочь разобраться в проблеме?

    Не совсем про вашу проблему, но похоже. Быть может это поможет

    Автор anaitsagoyan

    (@anaitsagoyan)

    Немного больше деталей:
    — Я работаю в Child теме
    — Сама функция переключения на русский язык заработала (в functions.php добавлено пару строк)
    — Перевожу тексты в POEDIT, сами переводы отображатся корректно и там, где надо, а вот формы множественного страдают. Вордпресс как будто продолжает воспринимать наличие только двух форм, как в стандартном английском, — единственное и множественно, а не так, как нужно — единственное, множественное 1-ой вариант, множественное 2-ой вариант. Хотя я переключилась в опциях на «русский» и он мне уставил строчку nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);

    • Все языковые файлы, которые ты делаешь, должны лежать в папке languages в папке с темой (ну, дочерней темой в данном случае). Т. е. wp-content/themes/my-child-theme/languages/*.mo
    • Языковые файлы .mo должны иметь названия вида ru_RU.mo для русского языка.
    • Чтобы переводы заработали надо подключить их. Делается примерно так:
      function selena_setup () {
      	load_theme_textdomain ('selena', get_stylesheet_directory () . '/languages');
      	// обычно используется get_template_directory, но тут дочерняя тема, значит, по идее, get_stylesheet_directory, я не тестировал сам
      }
      add_action ('after_setup_theme', 'selena_setup');
    • Я не очень разбираюсь в строчках вида nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);, но, судя по всему, она не совсем правильная, потому что у меня стоит последний Poedit и он предлагает другой вариант для русского. Там по умолчанию в новой версии предлагается сразу корректный вариант.
    • В местах, где нужны корректные переводы надо убедиться, что в шаблонах стоит текстовый домен дочерней темы, а не родительской. Т. е. надо переписать все шаблоны — это не очень хороший вариант, поэтому лучше будет подумать как удалить из родительской темы что-то вроде add_action ('after_setup_theme', 'selena_setup'); и написать свою функцию, которая будет подключать свои файлы перевода.

    Пишите еще, если надо более точно что-то донести 🙂

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Тема «Формы множественного числа» закрыта для новых ответов.