plugin-development – ¿Cómo preparar la traducción de un complemento de WordPress?

Pregunta:

¿Cuál es la mejor manera de crear un complemento que esté listo para traducir?

No es necesario traducirlo desde el principio, pero debe ser fácilmente traducible para que otros desarrolladores de diferentes culturas puedan participar en el proceso de localización del complemento.

Respuesta:

1. Escribe teniendo en cuenta la localización

No use echo o print() para producir una salida de texto, en su lugar use las funciones de WordPress __() y _e() :

/** Not localization friendly */
echo "Welcome to my plugin";    
// OR
print("Welcome to my plugin");

/** Localization friendly */
_e('Welcome to my plugin', 'my-plugin');
// OR
$my_text = __('Welcome to my plugin', 'my-plugin');
echo $my_text;

_e() y __() proporcionarán la traducción, en el idioma actual, del texto proporcionado como primer parámetro. _e() generará el texto mientras que __() lo devolverá.

El segundo parámetro es el dominio de texto , lo usará para decirle a WordPress que el texto proporcionado como primer parámetro pertenece a este complemento, puede usar el nombre que desee, pero prefiero usar el mismo nombre que usé para el complemento. archivo de directorio, lo encuentro más intuitivo.

¿Cómo generar texto dinámico como: "Hola <nombre de usuario>"?

Con __() y sprintf() :

/** Get the username */
$username = 'Magictrick';

/** Not localization friendly */
echo "Hello $username";     

/** Localization friendly */
printf(__('Hello %s', 'my-plugin'), $username);
// OR 
$my_text = sprintf(__('Hello %s', 'my-plugin'), $username);
echo $my_text;

2. Prepare los archivos .pot / .po / .mo

Definiciones

  • El archivo .pot : es puesto a su disposición por el desarrollador del complemento y se usa como punto de partida para crear nuevas traducciones, WordPress no lo usa.
  • Un archivo .po : es un archivo de traducción que usted u otra persona comenzaron, y tal vez terminaron, WordPress no lo usa.
  • Archivo A.mo : Poedit crea automáticamente cada vez que guarda un archivo .po, todo lo que puede hacer con estos archivos es cargarlos o volver a cargarlos cada vez que crea o actualiza un archivo .po. WordPress obtiene traducciones de archivos .mo .

Abra Poedit y cree un nuevo catálogo (Archivo ›Nuevo catálogo …) con estas configuraciones:

  • Información del proyecto: use su información (o la de su equipo), el idioma y el país deben coincidir con el idioma predeterminado del complemento
  • Caminos:
    • Ruta de la base: .
    • Rutas: eliminar todo y agregar .. , (almacenaremos el archivo de idioma en un subdirectorio de complementos llamado idiomas)
  • Palabras clave: eliminar todo y agregar __ y _e

Guarde el catálogo como /my_wordpress_blog/wp-content/plugins/my-plugin/languages/ my-plugin.pot y escanee los archivos de su complemento en busca de texto traducible presionando el botón de actualización. Cuando finalice la actualización, cierre ese catálogo, no necesitará actualizar ese archivo a menos que agregue nuevas cadenas traducibles (es decir, incluidas en __() o _e() ) a su complemento.

Ahora creemos la primera traducción (usaré fr_FR):

Con Podeit , cree un catálogo a partir de un archivo POT (Archivo ›Nuevo catálogo desde un archivo POT …) :

  • Información del proyecto: use su información (o la de su equipo), cambie el idioma y el país , usaré francés y Francia
  • Caminos: no cambies
  • Palabras clave: Don't chage

Guarde el catálogo como /my_wordpress_blog/wp-content/plugins/my-plugin/languages/ my-plugin-fr_FR.po . Traduzca algunas o todas las cadenas, guarde el archivo .po nuevamente, cargue los archivos .po y .mo.

Tenga en cuenta que cada vez que guarda un archivo .po, se genera un archivo .mo con el mismo nombre, el nombre del archivo .po es crucial , se compone de la concatenación del dominio de texto del complemento (my-plugin) y la configuración regional del idioma ( fr_FR), siempre asigne un nombre a sus archivos .po para complementos como este: [dominio de texto] – [configuración regional] .po , aquí hay algunos ejemplos:

  • Italiano / Italia: wpcf7-it_IT.po
  • Portugués / Brasil: wpcf7-pt_BR.po
  • Árabe: wpcf7-ar.po … ¡Sí!

Siempre que el complemento se actualice con texto nuevo, actualice el archivo po, traduzca nuevas cadenas y vuelva a cargar los archivos .po y .mo

3. Indique al complemento que cargue el texto traducido para el idioma actual.

En algún lugar de su complemento, debe decirle a WordPress que use su archivo .mo, puede hacerlo usando este código al principio de su archivo de complemento:

function my_plugin_init() {
  load_plugin_textdomain( 'my-plugin', false, 'my-plugin/languages' );
}
add_action('init', 'my_plugin_init');

Reemplace my-plugin con el nombre de su complemento en el primer y tercer parámetro de la función load_plugin_textdomain .

4. Probar y solucionar problemas

Algunas razones por las que puede no funcionar:

  • Las cadenas no se importan al archivo .pot o .po
    • → Configuración de catálogo incorrecta (ruta o palabras clave o ambas)
  • El texto no se traduce en el sitio de WordPress
    • → Falta el archivo .mo para ese idioma o tiene un nombre de archivo incorrecto
    • → Dominio de texto no utilizado (reemplace _e('my text') con _e('my text', 'my-plugin') )
    • → Dominio de texto no cargado (use el ejemplo anterior con los parámetros correctos, WP no le advertirá sobre errores)

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım