sábado, 5 de agosto de 2017

Cómo crear una traducción de un tema nuevo de Wordpress

Cuando creamos un tema nuevo desde cero, es conveniente tener en cuenta que sea multilenguaje, tanto para uso propio como si queremos compartirlo con la comunidad de desarrollo y ubicado en la carpeta wp-content/themes/nombre_del_tema/.

Lo primero que tenemos que tener en cuenta es que todas las referencias de texto tienen que estar realizadas con estas funciones:
  • __()
  • _e()
  • esc_html_e()
  • esc_html__()
Puedes encontrar más información sobre su uso en https://codex.wordpress.org/I18n_for_WordPress_Developers

Es conveniente al usar estas funciones tener bien declarado en el tema un text domain único. Para esto necesitamos en el archivo CSS style.css tener declarado en los comentarios de la cabecera lo siguiente:

/*
 Theme Name:   Nombre del Tema
 Description: Descripción del tema
 Author:       Alejandro Garcia Palomo
 Author URI:   https://alejandrogarciapalomo.es
 Version:      0.0.1
 License:      GNU General Public License version 2
 License URI:  license.txt
Text Domain:  nombre_del_tema
Tags:         multilanguage-theme, custom-background
*/

Y también necesitamos tener en el arhivo functions.php del tema declarado lo siguiente:

add_action( 'after_setup_theme', 'nombre_del_tema_setup' );
function nombre_del_tema_setup() {
    load_child_theme_textdomain( 'nombre_del_tema', get_stylesheet_directory() . '/languages' );
}

IMPORTANTE saber que con esta función estamos declarando que nuestro tema va a tener unos archivos de traducciones que estarán ubicados en: wp-content/languages/themes/ y los archivos se nombrarán como nombre_del_tema-es_ES.mo y nombre_del_tema-es_ES.po.

Una vez tenemos configurado el tema para que sea multilenguaje nos hace falta generar el archivo .mo y .po.

Para esto tendremos que descargar el extractor y editor Poedit.

Una vez instalado, hacemos los siguientes pasos:
  1. Archivo / Nuevo para crear una nueva traducción
  2. Indicamos el idioma que queremos traducir, español por ejemplo y pulsamos en Aceptar
  3. Catálogo / Propiedades
  4. En la primera pestaña (Propiedades de traducción) podemos ver el idioma y cambiarlo si nos equivocamos anteriormente
  5. En la primera pestaña también podemos seleccionar el Conjunto de caracteres en caso de que no sea UTF-8 que es el valor que se señala por defecto. Esto no se debería de cambiar y nuestro tema debería de estar codificado en UTF-8.
  6. En la segunda pestaña tenemos las Rutas de fuentes. Puede que nos salga un mensaje de que debemos guardar antes el fichero, en tal caso le daremos a Aceptar, Archivo / Guardar y guardaremos el fichero.
  7. En la segunda pestaña (Rutas de fuentes) tendremos que señalar la carpeta o ficheros PHP de nuestro tema dónde están ubicados en nuestro ordenador para poderlos leer y extraer la información. Para ello en Rutas pulsamos sobre el símbolo + y agregamos la carpeta o ficheros.
  8. En la tercera pestaña (Palabras clave originales) tendremos que agregar pulsando el símbolo + las palabras clave de las funciones para traducir. En nuestro caso insertaremos las vistas anteriormente:
    • _e
    • __
    • esc_html_e
    • esc_html__
  9. Le damos a Aceptar
  10. Catálogo / Actualizar desde fuentes
  11. Nos saldrá un mensaje de que se ha modificado el catálogo, si lo queremos guardar. Pulsamos en Guardar
  12. Nos saldrán los textos que podremos traducir seleccionando e insertando la traducción en la parte inferior de la ventana.
  13. Una vez terminemos la traducción le daremos a guardar.
  14. Si no nos creó el archivo .mo podemos generarlo en Archivo / Compilar en MO...
Cuando terminamos con este proceso ya tendremos los archivos generados. No olvidéis el apunte importante que dijimos antes de cómo nombrar el los archivos y dónde ubicarlos en el Wordpress.