Traducir un complemento utilizando archivos .po .mo


34

Quiero traducir este complemento.

El complemento ya se ha traducido a otros idiomas y tiene .potarchivos para agregar nuevos idiomas (por lo que he entendido de la descripción).

¿Cómo creo .poy .moarchivos para mi nuevo idioma y los hago accesibles para que el plugin los use? Intenté definir el idioma ruso en mi wp-config.phparchivo insertando la siguiente definición:

define ('WPLANG', 'ru_RU');

Respuestas:


44

El editor

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

Los formatos

  • .mosignifica Machine Object
    : exportación compilada del .poarchivo que utiliza WordPress
  • .posignifica Portable Object
    - archivo de texto editable con las cadenas de traducción
    - basado en el .potarchivo maestro , usando la función Actualizar desde el archivo POT PoEdit
    - algunas personas distribuyen esto como un archivo maestro, pero debe usarse solo para traducciones
  • .potsignifica Plantilla de objeto portátil
    : archivo de texto editable que se utiliza para capturar todas las cadenas traducibles de WordPress y Temas y complementos, utilizando la función Actualizar desde fuentes PoEdit

El procedimiento

  • Duplique el archivo .pot y cámbiele el nombre a plugin-basename-lang_COUNTRY.po
  • Ejemplo para el caso del complemento al que se hace referencia: - pt_BR significa portugués de Brasil, pero muchos idiomas no tienen una variación de país ... - tendrá que completar su propio idiomasubscribe-reloaded-pt_BR.po

  • WPLANGen el wp-config.phparchivo debe establecerse en su idioma, por ejemplo,pt_BR
  • Cada vez que guarda el .poarchivo, PoEdit genera automáticamente un .moarchivo, 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 se le acredite por 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

1
¿Cuánto tiempo se supone que tarda el nuevo archivo mo / po en tener efecto?
Nemo

8

Puede probar este plugin de codestyling-localización: . Puede traducir sus complementos y temas con esto.


1
Este es el mejor complemento de traducción que he visto. Este complemento puede tener poedit en cualquier momento y la mejor parte es que es gratuito y fácil de usar. Esta respuesta debería ser votada al menos.
Gogol

1
Ya no existe.
Chris Cox

1
Esto parece una buena alternativa: wordpress.org/plugins/say-what
jetlej

@jetlej interesante, aunque no parece funcionar para mi archivo po: /
Nemo

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, cree una carpeta "idiomas";

luego, en su archivo plugin .php (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 como este código (NOTA, que solo estamos agregando dos mensajes de muestra, "hola" y "adiós", para que pueda AGREGAR CUANTOS MENSAJES COMO QUIERA 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 de archivo, por lo tanto, compruebe que su programa editor 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 el segundo archivo .mo automáticamente, simplemente vaya a Archivo -> Preferencias -> Editor y verifique el cuadro que dice "Compilar automáticamente el archivo .mo al guardar"),

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

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

define ('WPLANG, '');

y cambiar a

define ('WPLANG, 'de_DE');

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

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

echo "Something string";

Deberías usar:

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



Terminado. Ahora deberías probar tu plugin.

ps enlaces utilizados:


Intenté esto con mi tema. En header.php, tengo echo __("thanks-for-visiting", 'transparent');. En theme \ languages ​​\ transparent-en_US.po, tengo msgid "thanks-for-visiting" msgstr "Hello! Thank you for visiting. Take a look around and subscribe to the ". Esto genera "gracias por visitar" en la parte frontal.
Steve

5

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

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


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.