Traducir un complemento usando archivos .po .mo

33

Quiero traducir este complemento.

El complemento ya se ha traducido a otros idiomas y tiene archivos .pot para agregar nuevos idiomas (según entiendo de la descripción).

¿Cómo creo los archivos .po y .mo para mi nuevo idioma y los hago accesibles para que sean utilizados por el complemento? He intentado definir el idioma ruso en mi archivo wp-config.php insertando la siguiente definición:

define ('WPLANG', 'ru_RU');
    
pregunta s976 02.07.2012 - 21:20

5 respuestas

41

El editor

Hay otros, pero este es el más utilizado: Poedit , un catálogo de gettext multiplataforma (archivos .po) editor.

Los formatos

  • .mo significa Machine Object
    - Exportación compilada del archivo .po que usa WordPress
  • .po significa Portable Object
    - archivo de texto editable con las cadenas de traducción
    - basado en el archivo master .pot , usando la función Actualizar desde archivo POT PoEdit
    - algunas personas distribuyen esto como un archivo maestro, pero deben usarse solo para traducciones
  • .pot significa Plantilla de objeto portátil
    - archivo de texto editable que se utiliza para capturar todas las cadenas traducibles de WordPress y los Temas y Complementos, utilizando Actualizar desde Fuentes función PoEdit

El procedimiento

  • Duplique el archivo .pot y cambie su nombre a plugin-basename-lang_COUNTRY.po
  • Ejemplo para el caso del complemento al que se hace referencia: subscribe-reloaded-pt_BR.po
    - pt_BR significa portugués de Brasil, pero muchos idiomas no tienen una variación de país ...
    - tendrás que rellenar con tu propio idioma
  • WPLANG en el archivo wp-config.php debe configurarse en su idioma, por ejemplo, pt_BR
  • Cada vez que guarde el archivo .po , PoEdit genera automáticamente un archivo .mo , que es el que usa WordPress y básicamente el único que necesita cargar

Observaciones

  • Si realiza una traducción parcial completa o decente, envíela al autor del complemento para que pueda incluirla en el Repositorio y usted obtener crédito para ello
  • No olvide hacer una copia de seguridad de su traducción, porque si actualiza el complemento, su archivo se perderá
  • La sugerencia del complemento @ user17078 es bastante buena, pero nunca la usé mucho
respondido por el brasofilo 03.07.2012 - 00:02
8

Puede probar este complemento de localización de codestyling: . Puedes traducir tus plugins y temas usando esto.

    
respondido por el Aristeides 02.07.2012 - 22:20
8

(Aquí hay un EJEMPLO de traducción a DEUTSCH. CAMBIE las costumbres a SUS DESEADAS)

en cada cabeza de plugins, hay un nombre único. (por ejemplo:

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

luego, en la carpeta de ese complemento, crea una carpeta "idiomas";

luego, en su archivo .php de complemento (en algún lugar en la parte superior), inserte el código de inicialización:

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;

luego abra cualquier editor de texto, luego inserte este código (NOTA, QUE solo estamos agregando dos mensajes de muestra, "hola" y "bye", por lo que puede AGREGAR MUCHOS mensajes COMO DESEA con las líneas similares) .

# 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"

luego guarde este archivo como "my-pluginname-en_US.po" (tenga en cuenta que .po es una extensión del archivo, así que verifique que su programa de edición de texto no se haya guardado en "my-pluginname-en_US.po.TXT ").

luego descargue el software POEDIT y abra este archivo. luego edite el campo "traducción", y luego guárdelo como "my-pluginname-de_DE" se generarán dos archivos (si poEdit no genera automáticamente el segundo archivo .mo, simplemente vaya a Archivo - > Preferencias - > Editor y marque la casilla que dice "Compilar automáticamente el archivo .mo al guardar"),

luego ponga esos dos archivos en la carpeta de "idiomas".

después de esto, abre wp-config.php y encuentra este código:

define ('WPLANG, '');

y cambiar a

define ('WPLANG, 'de_DE');

Eso es todo. Cuando se carga WordPress, leerá el archivo de idioma de sus complementos, con el prefijo -de_DE.

Entonces, en el archivo .php del complemento, en lugar de:

echo "Something string";

debes usar:

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



Terminado. Ahora debes probar tu plugin.

p.s. enlaces utilizados:

respondido por el T.Todua 25.10.2013 - 01:37
5

Querrá usar POEdit . Es una aplicación gratuita para crear archivos .po / .mo.

Escribí un tutorial bastante detallado sobre todo el tema aquí . Puede pasar al Paso 3: crear el archivo de traducción para el dominio de texto.

    
respondido por el Pippin 02.07.2012 - 23:29
5

También sugiero h ttp: //poeditor.com/ . Es una herramienta de traducción basada en la web que funciona muy bien con .po, .mo, .pot y otros tipos de archivos.

    
respondido por el Taji M. 29.01.2013 - 12:56

Lea otras preguntas en las etiquetas