Перекладіть плагін за допомогою .po .mo файлів


34

Я хочу перекласти цей плагін.

Плагін вже перекладений на інші мови, і він має .potфайли для додавання нових мов (наскільки я зрозумів з опису).

Як я можу створити .poта .moфайли для своєї нової мови та зробити їх доступними, щоб використовувати плагін? Я намагався визначити російську мову у своєму wp-config.phpфайлі, вставивши визначення нижче:

define ('WPLANG', 'ru_RU');

Відповіді:


44

Редактор

Є й інші, але це найчастіше використовується: Poedit , редактор каталогів міжплатформенних gettext (.po файлів).

Формати

  • .moрозшифровується як Machine Object
    - компільований експорт .poфайлу, який використовується WordPress
  • .poрозшифровується як портативний об'єкт
    - редагований текстовий файл із рядками перекладу
    - заснований на головному .potфайлі, використовуючи функцію оновлення з файлу POT PoEdit
    - деякі люди поширюють це як головний файл, але його слід використовувати лише для перекладів
  • .potрозшифровується як «Портативний шаблон об’єкта»
    - редагований текстовий файл, який використовується для захоплення всіх перекладаються рядків із самого WordPress та «Теми та плагіни», використовуючи функцію « Оновлення з джерел PoEdit».

Порядок

  • Скопіюйте файл .pot та перейменуйте його на plugin-basename-lang_COUNTRY.po
  • Приклад для згаданого випадку плагінів: - pt_BR означає португальську Бразилію, але багато мов не мають варіації країни ... - вам доведеться заповнити власною мовоюsubscribe-reloaded-pt_BR.po

  • WPLANGу wp-config.phpфайлі має бути встановлено вашу мову, наприклад,pt_BR
  • Кожен раз, коли ви зберігаєте .poфайл, PoEdit автоматично генерує .moфайл, який використовує WordPress і в основному єдиний, який вам потрібно завантажити

Спостереження

  • Якщо ви робите повний або пристойний частковий переклад, подайте його автору плагіна, щоб він міг включити його до сховища, і ви отримаєте за нього рахунок
  • Не забудьте зробити резервну копію вашого перекладу, адже якщо ви оновите плагін, ваш файл буде втрачений
  • @ user17078 Пропозиція про плагіни дуже приємна, але я ніколи її не використовував дуже багато

1
Скільки часу має тривати новий файл mo / po?
Немо

8

Ви можете спробувати це codestyling-локалізації плагіна: . Ви можете перекласти додатки та теми за допомогою цього.


1
Це найкращий плагін для перекладу, який я коли-небудь бачив. Цей плагін може мати poedit у будь-який день, і найкраще, що він безкоштовний і зручний. За цю відповідь слід проголосувати якнайшвидше.
Гоголь

1
Більше не існує.
Кріс Кокс

1
Це виглядає як добра альтернатива: wordpress.org/plugins/say-what
jetlej

@jetlej цікаво, але, здається, не працює для мого файлу po:
Немо,

8

(Ось ПРИКЛАД перекладу на DEUTSCH. ЗМІНІТЬ митницю на ВАШІ ВІДПОВІДІ)

в кожній головці плагінів є унікальна назва. (наприклад:

/*
Plugin Name: my-pluginname
.......
*/

потім у папці цього плагіна створіть папку "мови";

потім у свій плагін .php-файл (десь вгорі) вставити код ініціалізації:

class load_language 
{
    public function __construct()
    {
    add_action('init', array($this, 'load_my_transl'));
    }

     public function load_my_transl()
    {
        load_plugin_textdomain('my-pluginname', FALSE, dirname(plugin_basename(__FILE__)).'/languages/');
    }
}

$zzzz = new load_language;

потім відкрийте будь-який текстовий редактор, а потім вставте такий код (ПРИМІТКА. ТО, що ми додаємо лише два зразкових повідомлення, "привіт" та "до побачення", тож ви можете додавати як багато повідомлень, як ви хочете, за допомогою подібних рядків).

# English translations for PACKAGE package.
# Copyright (C) 2012 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: my-pluginname 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-08-06 13:46-0400\n"
"PO-Revision-Date: 2013-03-21 11:20+0400\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"X-Poedit-SourceCharset: iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 1.5.4\n"


#: mypluginindex.php:87 (it is just a line of a note, to remind where our code appears)
msgid "mymessage1"
msgstr "Hello"

#: mypluginindex.php:88
msgid "mymessage2"
msgstr "Bye"

потім збережіть цей файл як "my-pluginname-en_US.po" (зауважте, що .po - це розширення файлу, тому переконайтеся, що програма редактора тексту не збереглась до "my-pluginname-en_US.po.TXT").

потім завантажте програмне забезпечення POEDIT і відкрийте цей файл. потім відредагуйте поле "переклад", а потім збережіть як "my-pluginname-de_DE", будуть створені два файли (якщо poEdit не генерує другий файл .mo автоматично, просто перейдіть у меню Файл -> Налаштування -> Редактор та перевірте поле з написом "Автоматично компілювати .mo файл при збереженні"),

потім помістіть ці два файли в папку "мови".

після цього відкрийте wp-config.php і знайдіть цей код:

define ('WPLANG, '');

і змінити на

define ('WPLANG, 'de_DE');

Це все. Коли WordPress завантажується, він зчитує ваш файл мови плагінів з префіксом -de_DE.

Отже, у .php-плагіні замість:

echo "Something string";

ви повинні використовувати:

echo __("mymessage1", 'my-pluginname');



Готово. Тепер слід перевірити свій плагін.

ps використовуються посилання:


Я спробував це зі своєю темою. У header.php у мене є echo __("thanks-for-visiting", 'transparent');. У темі \ languages ​​\ transparent-en_US.po у мене є msgid "thanks-for-visiting" msgstr "Hello! Thank you for visiting. Take a look around and subscribe to the ". Це дає "подяку за відвідування" на передньому кінці.
Стів

5

Ви хочете використовувати POEdit . Це безкоштовний додаток для створення .po / .mo файлів.

Я написав досить детальний підручник по всій темі тут . Ви можете перейти до кроку 3 - Створіть файл перекладу для текстового домену.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.