Поддержка Плагины Poedit ломает файлы при сохранении

  • Решил Я перевести плагин HTML Emails.
    Скачал, открыл файл «html-emails.pot», начал переводить.
    Сохранил, получились «html-emails.po», «html-emails.mo», «html-emails.pot».
    Переименовываю в «html-emails-ru_RU.po», «html-emails-ru_RU.mo», «html-emails-ru_RU.pot» по аналогии с уже лежавшими там файлами перевода («html-emails-be_BY.po» например).
    Заливаю на свой сайт в «wp-content/plugins/html-emails/languages». Смотрю страницу «grawl.ru/wp-admin/plugins.php» — описание плагина в списке не переведено, хотя Я переводил. Далее делаю логаут, пишу от анонимного лица, указывая свой e-mail (чтобы проверить, как придёт письмо оповещения). Приходит по-английски.
    Далее пытаюсь открыть «html-emails-ru_RU.po» с помощью Poedit, но он показывает странную ошибку в две строки, вот она.
    Потом попробовал снова перевести, заново.
    Перевёл несколько строк (меньше 10ти), сохранил — открылось заново. Перевёл почти всё — ломается.
    Потом открыл «html-emails-ru_RU.po» с помощью TextEdit (текстовый редактор) — нормальный файл, ничего в нём особого нет, никаких ошибок или кракозябр.
    Вот, посмотрите на него: html-emails-ru_RU.po
    А Я бы переводил плагины пачками, мне это нравится, понимаете?

Просмотр 15 ответов — с 1 по 15 (всего 21)
  • Atrax

    (@atrax)

    Ethical engineer

    Перед переводом разберитесь с настройками.
    У вас не заполнено по крайней мере одно значение:

    «Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n»

    А вообще — для русского языка идеально, чтобы в 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"
    "X-Poedit-Language: Russian\n"
    "X-Poedit-Country: RUSSIAN FEDERATION\n"
    "X-Poedit-SourceCharset: utf-8\n"
    "X-Poedit-KeywordsList: __;_e;_c;_x;__ngettext_noop:1,2;__ngettext:1,2\n"

    И еще — удалите 161 строку и все откроется.

    Я, кстати, первый раз в жизни использую Poedit. Можете, как последнему нубяре, рассказать тонкости? И подключать к плагинам переводы тоже не знаю как. Просто назвать правильно файлы перевода (.po, .mo) и положить в правильное место? А зачем .pot-файлы?

    Atrax

    (@atrax)

    Ethical engineer

    Что-то мне это ничего нового не сказало, и на заданные вопросы не ответило. Вы уж простите меня за наглость, но очень уж хочется поперевести всё, что могу, пока не надоест нафиг.

    Atrax

    (@atrax)

    Ethical engineer

    1. Надо в точности заполнить все свойства po-файла. Пример возьмите из ru_RU.po самого WordPress. Вообще, сначала посмотрите, как устроены работающие переводы.
    2. pot- это заготовка для перевода, в которой только оригинальный текст. А при сохранении создается po- и mo- файлы.
    3. Ошибка произошла из-за некорректности исходного текста. Нельзя одновременно использовать и единичное и множественное число. Удалите или 160 строку или 161.
    4. Подключение зависит от того, каким образом подключаются файлы в коде плагина. Они могут быть в той же директории или в отдельной. Их может и не быть, если плагин или тема на это не рассчитаны.

    Еще вопросы?

    Пока нет, благодарю.

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Нельзя одновременно использовать и единичное и множественное число. Удалите или 160 строку или 161.

    Множественные числа именно так и объявляются. Пример из wordpress.pot:

    msgid "%s comment approved"
    msgid_plural "%s comments approved"
    msgstr[0] ""
    msgstr[1] ""

    Нужно не удалить, а наоборот — добавить под ними msgstr:

    msgid "Currently <strong>%s</strong> comment is waiting for approval."
    msgid_plural "Currently <strong>%s</strong> comments are waiting for approval."
    msgstr[0] ""
    msgstr[1] ""

    То есть, Poedit глюканул? В чём причина? Что в будущем делать?

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    1. Взял исходный файл html-emails.pot из плагина.
    2. Открыл в текстовом редакторе, удалил шаблон строки с Plural-Forms и добавил фрагмент, который привёл Atrax:
      "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"
      "X-Poedit-Language: Russian\n"
      "X-Poedit-Country: RUSSIAN FEDERATION\n"
      "X-Poedit-SourceCharset: utf-8\n"
      "X-Poedit-KeywordsList: __;_e;_c;_x;__ngettext_noop:1,2;__ngettext:1,2\n"
    3. Заполнил поле Language-Team (там можно указать имя и e-mail).
    4. Сохранил под именем html-emails-ru_RU.po.
    5. Убедился, что файл успешно открывается и сохраняется в Poedit.

    Чтобы исправить ваш файл, достаточно добавить две строки (см. выше; они были в исходном html-emails.pot), затем выполнить пункты 2—4.

    Atrax

    (@atrax)

    Ethical engineer

    Множественные числа именно так и объявляются.

    Спасибо, учту.

    А можно заниматься переводом, не вникая в такие тонкости? Честно… Так лень лезть и править что-то…

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Можно открыть файл через пункт «File» > «New catalog from POT file…» — Poedit предложит заполнить те же параметры в удобном окне. Единственное сложное значение — Plural Forms. Его я копирую из предыдущих переводов.

    Говорит, что «html-emails-ru_RU.pot» не является допустимым POT-файлом.

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Исходный html-emails.pot, который шёл с плагином, открывается корректно.

    Ну… Да. Я ж с него и начал.

Просмотр 15 ответов — с 1 по 15 (всего 21)
  • Тема «Poedit ломает файлы при сохранении» закрыта для новых ответов.