Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Plugins
Code

Como Internacionalizar Temas y Plugins de WordPress

by
Length:MediumLanguages:

Spanish (Español) translation by Eva Collados Pascual (you can also view the original English article)

En los 5 Pecados Cardinales del Desarrollo de Temas para WordPress, hablamos brevemente sobre el significado de la internacionalización de temas y plugins, pero realmente no debatimos sobre cómo hacerlo.

Si te encuentras dentro del sector de comercio de temas y plugins, es seguro que se espera que tu trabajo soporte múltiples idiomas. En este artículo, vamos a intentar entender qué significa realmente la internacionalización, porqué es importante, y qué pasos son necesarios para internacionalizar tu proyecto.


Comprender la Internacionalización

Cuando se trata de internacionalizar proyectos WordPress, quizá el aspecto más complicado sea de hecho entender cómo hacerla - internacionalizar un proyecto WordPress es realmente fácil de llevar a cabo.

Pero antes de ver cómo hacerlo, es importante revisar las implicaciones de la internacionalización y el porqué, a nosotros como desarrolladores, debería importarnos. 

Definiendo Internacionalización

Dicho en pocas palabras, la internacionalización es el proceso mediante el cual preparamos nuestro tema para su traducción. Esto quiere decir que no importa qué idioma [hablado] se usó para desarrollar nuestro trabajo, los futuros usuarios (e incluso desarrolladores) podrán fácilmente traducir el proyecto a cualquier idioma requerido.  La internacionalización en efecto, no requiere que nosotros proporcionemos las traducciones (aunque los multilingües entre nosotros lo harían fácilmente), simplemente que tomemos los pasos necesarios para posibilitar a futuros traductores la tarea.

¿Por qué Debería Importarte?

Hace años, hubiese dicho que la internacionalización solo debería hacerse si el mercado al que iba dirigido tu trabajo era diferente al de tu lengua nativa, pero ese ya no es el caso. Gracias a internet, somos capaces de hablar, colaborar y comunicarnos con gente de todo el mundo. La audiencia potencial de un proyecto concreto es más amplia de lo que ha sido nunca.

Incluso más aun, ya que un número muy significativo de las webs actuales están generadas con WordPress. Llegados aquí, deberíamos pensar de una forma global en lo que respecta a nuestro trabajo. Argumentaría que la internacionalización de temas o plugins comerciales ya no es negociable. Si la plataforma sobre la que está construido tu trabajo es utilizada por una variedad de idiomas - y WordPress lo es - y dicha plataforma proporciona un método simple y claro de internacionalizar un tema - y WordPress lo hace - entonces la pregunta correcta más bien sería porqué no estoy internacionalizando mi trabajo.

Cómo Internacionalizar

Como acabamos de mencionar, realmente la internaionalización de un tema conlleva más un esfuerzo por entender las funciones clave en la API de WordPress que el proceso en sí de la preparación del texto. Así que antes de revisar un ejemplo concreto, vamos a definir algunos términos y funciones importantes: - Claves en la Internacionalización Puedes imaginártelo como un contexto, dominio o identificador único para tus cadenas.

Aunque, este es un solo y único valor usado por WordPress para internacionalizar el texto a través de tu tema.- __($text, $key) es una función que devuelve una cadena traducida. Esta función no repite, imprime, o muestra la cadena. Se usa habitualmente cuando es necesario ejecutar otra operación en la cadena traducida (como pasarla a otra función). Acepta dos argumentos - la cadena a traducir y la clave de internacionalización.- _e($text, $key) es una función que de hecho repite la cadena traducida.

Su mejor uso se da cuando necesitas recoger un valor traducido y mostrarlo en algún sitio de tu tema o plugin.- load_theme_textdomain($domain, $translation_directory)load_plugin_textdomain($domain, $translation_directory) son dos funciones que le indican a WordPress dónde ubicar tus traducciones. Echaremos un vistazo a estas funciones con un poco más de detalle en su momento.

Por ahora, vasta con que sepas que cada una sirve para el mismo propósito aunque una es para los temas, y la otra para los plugins. Esto es prácticamente todo lo necesario para entender la internacionalización de tu tema. A partir de aquí, vamos a ver qué implica poner estas funciones en práctica.


Internacionalizar Tu Trabajo

Mostrar Texto Traducido

Antes de internacionalizar un tema, veamos la apariencia de un lenguaje de marcado estándar.

Nada espectacular, ¿cierto? Es como un fragmento estándar de HTML (que realmente es lo que es). Garantizado, es un ejemplo simple pero es todo lo que se requiere para demostrar como internacionalizar un tema.

Para internacionalizar el texto de arriba, necesitamos determinar el identificador único que usaremos para intenacionalizar nuestro texto - yo voy a usar 'tutsplus'. En segundo lugar, debido a que todo el texto anterior se muestra en la pantalla, usaremos la función __e() function. El código internacionalizado debería ser:

Pero, ¿qué pasa con el texto que necesita ser traducido antes de mostrarse en la pantalla? No hay mucha diferencia, pero echemos un vistazo a como internacionalizaríamos las columnas laterales. 

Procesar Texto Traducido

Primero, configuremos la columna lateral:

Como referencia, estoy usando la función register_sidebar disponible a través de la API de WordPress. Advierte que el nombre de la columna se muestra en la pantalla de los Widgets. Como tal, tenemos que internacionalizarlo; aunque, un array no acepta una cadena repetida - sí acepta una cadena de valores.

En este caso, sacaremos ventaja de la función __():

Muy fácil, ¿no?

Recuerda, la internacionalización solo debería aplicarse a texto estático. No es responsabilidad de los desarrolladores proporcionar la internacionalización del contenido de las páginas, entradas, etc.


Preparar el Tema y/o Plugin Para la Internacionalización

Después de haber abordado adecuadamente el texto que debe ser internacionalizado en tu tema, tienes que indicar al tema o plugin dónde encontrar los archivos internacionalizados.  Veremos esto con mayor profundidad en unos momentos, pero primero siempre recomiendo crear un directorio 'lang' en directorio raíz del tema o plugin para guardar los archivos internacionalizados.

¿Recuerdas las funciones load_theme_text_domain y load_plugin_text_domain anteriores? Así es como las usaremos. Si estás trabajando con un tema, necesitaremos definir una función personalizada que será llamada por el hook after_setup_theme:

Luego, le indicaremos a la función dónde encontrar las traducciones. Para hacerlo, añade las siguientes línea a tu tema (toma nota de los comentarios que explican lo que hace cada línea):

Relativamente simple, ¿no? No es muy diferente para los plugins. Al igual que con los temas, siempre ubico los archivos de internacionalización del plugin en un subdirectorio 'lang'. Primero, tenemos que decirle a WordPress dónde están los archivos internacionalizados. Asumiendo que los tuyos también están ubicados en un directorio 'lang':

El segundo parámetro - en donde hemos especificado 'false' - es necesario aunque corresponde a una función obsoleta en WordPress.

Finalmente, tenemos que determinar dónde llamar la función load_plugin_textdomain. Si estuviésemos escribiendo un Widget, colocaríamos esta llamada a la función en el constructor:

Si estás escribiendo un plugin, existen una variedad de formas en las que le puedes indicar a WordPress dónde están ubicados los archivos traducidos, pero tienes la flexibilidad de insertarlo en la función after_setup_theme. De forma parecida al código para el tema anterior, puedes colocar esto en tu plugin:

En este punto, tu tema o plugin están preparados para la internacionalización.


Dos Consideraciones Más

Si has llegado hasta aquí, ya has lo has conseguido, pero merece siempre la pena llevar tu trabajo un poco más allá Aquí tienes dos tareas increíbles que los traductores normalmente ejecutan para traducir un tema.

  • Traducir El Texto. Los traductores procesarán tu tema a través de una aplicación de traducción (como POEdit) que generará  Los traductores procesarán tu tema a través de una aplicación de traducción (como POEdit) que generará los archivos que se guardan en tu directorio 'lang' desde donde WordPress los rescatará.
  • Actualizaciones en WP-Config.php En este momento, los traductores tendrán que indicarle a WorPress que habilite la internacionalización y especificar qué lenguaje están usando. Esto queda fuera del ámbito de este artículo, pero puedes leer más sobre ello en el Codex.

En contraste con otros entornos de desarrollo disponibles, WordPress facilita enormemente la internacionalización de tu trabajo. En consecuencia, la parte más complicada es entender las funciones clave necesarias para preparar tus cadenas para la internacionalización.

Adicionalmente, modificar trabajo existente puede ser un proceso que consuma mucho tiempo. Dentro del contexto de WordPress, puede ser tedioso pero es relativamente fácil de llevar a cabo. Si tienes alguna sugerencias o dudas respecto a la internacionalización, ¡siéntete libre y cuéntalas en los comentarios!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.