Перевести плагин, используя файлы .po .mo
5 ответ
- голосов
-
- 2012-07-02
Редактор
Есть и другие,но наиболее часто используемые: Poedit ,кроссплатформенные каталогиgettext. (.po файлы) редактор.
Форматы
-
.mo
означает машинный объект
- скомпилированный экспорт файла.po
,который используется WordPress -
.po
означает переносимый объект
- редактируемый текстовый файл со строками переводов
- на основе главного файла.pot
с использованием функции Обновить из файла POT PoEdit
- некоторые распространяют его как мастер-файл,но его следует использовать только для переводов. -
.pot
означает переносимый шаблон объекта
- редактируемый текстовый файл,используемый для получения всех переводимых строк из самого WordPress,а также тем и плагинов с помощью функции Обновление из источников PoEdit
Процедура
- Скопируйте файл .pot и переименуйте его в
plugin-basename-lang_COUNTRY.po
- Пример для указанного случая плагина: < sizes
subscribe-reloaded-pt_BR.po
- pt_BR означает португальский Бразилия,но для многих языков нет варианта страны ...
- вам нужно будет ввести свой язык. -
WPLANG
вwp-config.php
файл должен быть установлен на ваш язык,например,pt_BR
- Каждый раз,когда вы сохраняете файл
.po
,PoEdit автоматически генерирует файл.mo
,который использует WordPress и,по сути,единственный,который вам нужно загрузить
Наблюдения
- Если вы делаете полный или приличный частичный перевод,отправьте его автору плагина,чтобы он мог включить его в репозиторий,а вы получить кредит за это
- Не забудьте сделать резервную копию вашего перевода,потому что если вы обновите плагин,ваш файл будет утерян.
- @ user17078 плагин предлагает неплохой вариант,но я никогда им не пользовался.
The Editor
There are others, but this is most used: Poedit, a cross-platform gettext catalogs (.po files) editor.
The Formats
.mo
stands for Machine Object
-- compiled export of the.po
file which is used by WordPress.po
stands for Portable Object
-- editable text file with the translations strings
-- based on the master.pot
file, using Update from POT file PoEdit function
-- some folks distribute this as a master file, but it should be used only for translations.pot
stands for Portable Object Template
-- editable text file used to grab all the translatable strings from WordPress itself and Themes and Plugins, using Update from Sources PoEdit function
The Procedure
- Duplicate the .pot file and rename it to
plugin-basename-lang_COUNTRY.po
- Example for the referenced plugin case:
subscribe-reloaded-pt_BR.po
-- pt_BR means Portuguese Brazil, but many languages don't have a country variation...
-- you'll have to fill in with your own language WPLANG
inwp-config.php
file must be set to your language, e.g.,pt_BR
- Every time you save the
.po
file, PoEdit automatically generates a.mo
file, which is the one WordPress uses and basically the only one you need to upload
Observations
- If you do a full or a decent partial translation, submit it to the plugin author so he can include it in the Repository and you get credited for it
- Don't forget to make a backup of your translation, because if you upgrade the plugin your file will be lost
- @user17078 plugin suggestion is quite nice, but I never used it much
-
Как долго должен действовать новый файлmo/po?How long is the new mo/po file supposed to take to have effect?
- 2
- 2015-12-14
- Nemo
-
- 2012-07-02
Вы можете попробовать этот плагин локализации кода: .С его помощью вы можете переводить плагины и темы.
You can try this codestyling-localization plugin:. You can translate you plugins and themes using this.
-
Это лучший плагин для перевода,который я когда-либо видел.Этот плагин может владетьpoedit в любое время,и самое приятное то,что он бесплатный и удобный.По крайней мере,за этот ответ нужно проголосовать.This is the best translation plugin I have ever seen. This plugin can own poedit anyday and the best part is that it is free and user-friendly. This answer should be voted up atleast.
- 1
- 2014-10-02
- Gogol
-
Более не существует.No longer exists.
- 1
- 2015-06-03
- Chris Cox
-
Похоже,это хорошая альтернатива: https://wordpress.org/plugins/say-what/This looks like a good alternative: https://wordpress.org/plugins/say-what/
- 1
- 2015-06-10
- jetlej
-
@jetlej интересно,похоже,не работает для моего файлаpo:/@jetlej interesting, doesn't seem to work for my po file though :/
- 0
- 2015-12-14
- Nemo
-
- 2013-10-24
(Вот ПРИМЕР перевода на DEUTSCH. ИЗМЕНИТЕ обычаи на ВАШИ ЖЕЛАННЫЕ.)
в заголовке каждого плагина есть уникальное имя. (например:
/* Plugin Name: my-pluginname ....... */
затем в папке этого плагина создайте папку "languages";
затем в файл вашего плагина .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 при сохранении»),
затем поместите эти два файла в папку "languages".
после этого откройте wp-config.php и найдите этот код:
define ('WPLANG, '');
и измените на
define ('WPLANG, 'de_DE');
Вот и все. Когда WordPress загружен,он будет читать языковой файл вашего плагина с префиксом -de_DE.
Итак,в файле плагина .php вместо:
echo "Something string";
следует использовать:
echo __("mymessage1", 'my-pluginname');
Законченный. Теперь вам следует протестировать свой плагин.p.s. использованные ссылки:
(Here is an EXAMPLE of translation to DEUTSCH. CHANGE the customs to YOUR DESIRED ones.)
in every plugins head, there is an unique name. (for example:
/* Plugin Name: my-pluginname ....... */
then, in that plugin's folder, create a folder "languages";
then, into your plugin .php file (somewhere in the top), insert the initialization code:
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;
then open any text editor, then insert like this code (NOTE, THAT we are only adding two sample messages, "hello" and "bye", so , you can ADD AS MANY messages AS YOU WANT with the similar lines).
# 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"
then save this file as "my-pluginname-en_US.po" (note, that .po is an extension of file, so check that your text editor program has not saved to "my-pluginname-en_US.po.TXT").
then download POEDIT software, and open this file. then edit the "translation" field, and then save as "my-pluginname-de_DE" there will be generated two files ( If poEdit does not generate the second .mo file automatically, just go to File -> Preferences -> Editor and check the box that says "Automatically compile .mo file on save"),
then put those two file into "languages" folder.
after this, open wp-config.php and find this code:
define ('WPLANG, '');
and change to
define ('WPLANG, 'de_DE');
That's all. When WordPress is loaded, it will read your plugins language file, with prefix -de_DE.
So, in the plugin's .php file, instead of:
echo "Something string";
you should use:
echo __("mymessage1", 'my-pluginname');
Finished. Now you should test your plugin.p.s. used links:
-
Я пробовал это со своей темой.В header.php у меня есть `echo __ (" спасибо за посещение ",'прозрачный');`.В теме \ languages \transparent-en_US.po у меня естьmsgid "спасибо за посещение". `msgstr" Здравствуйте! Спасибо,что посетили. Посмотрите вокруг и подпишитесь на "`.Это выводит "благодарность за посещение" во внешнем интерфейсе.I tried this with my theme. In header.php, I have `echo __("thanks-for-visiting", 'transparent');`. In theme\languages\transparent-en_US.po, I have `msgid "thanks-for-visiting"` `msgstr "Hello! Thank you for visiting. Take a look around and subscribe to the "`. This outputs "thanks-for-visiting" on the front end.
- 0
- 2014-03-10
- Steve
-
- 2012-07-02
Вы захотите использовать POEdit .Это бесплатное приложение для создания файлов .po/.mo.
Я написал довольно подробное руководство по всей теме здесь .Вы можете перейти к шагу 3 - Создание файла перевода для текстового домена.
-
- 2013-01-29
Я предлагаю также h ttp://poeditor.com/.Это веб-инструмент для перевода,который отлично работает с файлами .po,.mo,.pot и другими типами файлов.
I suggest also http://poeditor.com/. It is a web-based translation tool that works great with .po, .mo, .pot and other types of files.
-
Посетитель предложил правку,указывающую на новый плагин для этой службы: http://wordpress.org/extend/plugins/poeditor/A visitor proposed an edit pointing to a new plugin for this service: http://wordpress.org/extend/plugins/poeditor/
- 0
- 2013-05-17
- brasofilo
-
poeditor.com больше не существует ...poeditor.com not longer exists...
- 0
- 2020-04-27
- Cypher
Я хочу перевести этот плагин.
Плагин уже переведен на другие языки и в нем есть файлы
.pot
для добавления новых языков (насколько я понял из описания).Как мне создать файлы
.po
и.mo
для моего нового языка и сделать их доступными для использования плагином?Я попытался определить русский язык в моем файлеwp-config.php
,вставив определение ниже: