Como traducir add-ons - Artículo detallado

Andrés Durán Seguir

Xi
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
23 Abr 2009
Mensajes
4.371
Como traducir add-ons - Artículo detallado
how-to-translate.png
Hola a todos (ignoren la portada, es pura estética). :D

El presente artículo pretende explicar y facilitar algunos consejos a la hora de traducir add-ons para vBulletin. Después de la muy resumida introducción, comencemos.


Sumario



  • ¿Qué es un add-on?
  • ¿Cómo trabaja el sistema de frases en los add-ons?
  • ¿Cómo puedo traducir directamente desde vBulletin?
  • Método alternativo
  • ¿Cómo puedo traducir directamente desde el *.xml del producto?
  • Tipos de Archivos de Idioma
  • Frases "Hardcoded"
  • Comentarios Adicionales



¿Qué es un add-on?

Bueno, para muchos resultará una pregunta bastante básica y sencilla de responder, acá el breve concepto que tengo yo en lo personal de lo que son add-ons.

Un add-on, hack, producto o modificación es un añadido que se instala en vBulletin completamente aparte del script principal (el foro). Estos add-ons son escritos en PHP (código), XHTML (diseño en plantillas), CSS (diseño en plantillas) y XML (código) generalmente. Su utilidad es añadir funciones adicionales no incluidas con el script principal mediante el uso de plugins y "lugares de enganche", llamadas a código PHP nativo desde las plantillas, consultas a la base de datos y/o uso de scripts externos. En la mayoría de los casos (posiblemente en todos, no he visto un add-on que no lo haga) dichos add-ons se instalan en vBulletin con la importación de un archivo *.xml construido manualmente, o en el mismo vBulletin. La composición de estos archivos *.xml es la siguiente:

  1. Id del producto
  2. Título (o nombre)
  3. Dependencias
  4. Descripción del producto
  5. Versión
  6. URL de comprobación (donde se informa si existen actualizaciones)
  7. Códigos
    -> Código de instalación
    -> Código de desinstalación
  8. Plantillas
  9. Plugins
  10. Frases
  11. Opciones
  12. Temas de ayuda (que se insertan en la ayuda del Panel de Administración)
  13. Entradas Cron
  14. FAQs


En este momento nos interesan las frases existentes en el archivo *.xml.


¿Cómo trabaja el sistema de frases en los add-ons?

Las frases que se insertarán en el lenguaje maestro se muestran en el archivo *.xml del producto después de las líneas:

Insertar CODE, HTML o PHP:
[COLOR=Navy]    </plugins>
    <phrases>[/COLOR]
Y en el *.xml del producto conforman la siguiente estructura:

Insertar CODE, HTML o PHP:
[COLOR=DarkRed]<phrasetype[/COLOR] name="[COLOR=DarkOrange]Control Panel Global[/COLOR]" fieldname="[COLOR=DimGray]cpglobal[/COLOR]"[COLOR=DarkRed]>[/COLOR]
            [COLOR=SeaGreen]<phrase[/COLOR] name="[COLOR=Red]are_you_sure_you_want_to_cleanup_linkbacks[/COLOR]" date="0" username="Crawlability" version=""[COLOR=DarkRed]>[/COLOR][COLOR=Blue]<=!=[=C=D=A=T=A=[[/COLOR][U][B]Are you sure you want to cleanup selected linkback types?[/B][/U][COLOR=Blue]]][/COLOR][COLOR=SeaGreen]></phrase>[/COLOR]
            [COLOR=SeaGreen]<phrase[/COLOR] name="[COLOR=Red]confirm_linkbacks_cleanup[/COLOR]" date="0" username="Crawlability" version=""[COLOR=SeaGreen]>[/COLOR][COLOR=Blue]<=!=[=C=D=A=T=A=[[/COLOR][U][B]Confirm Linkbacks Cleanup[/B][/U][COLOR=Blue]]][/COLOR][COLOR=SeaGreen]></phrase>[/COLOR]
            [COLOR=SeaGreen]<phrase[/COLOR] name="[COLOR=Red]vbseo[/COLOR]" date="0" username="Crawlability" version=""[COLOR=SeaGreen]>[/COLOR][COLOR=Blue]<=!=[=C=D=A=T=A=[[/COLOR][U][B]vBSEO[/B][/U][COLOR=Blue]]][/COLOR][COLOR=SeaGreen]></phrase>[/COLOR]
[COLOR=DarkRed]</phrasetype>[/COLOR]
Que funciona de la siguiente manera:

* <phrasetype name="Control Panel Global" es el conjunto de frases donde se insertará la frase confirm_linkbacks_cleanup.
* fieldname="cpglobal" es el identificador de ese conjunto de frases.
* <phrase name="are_you_sure_you_want_to_cleanup_linkbacks" es el nombre de la variable que será llamada en las plantillas, plugins o archivos *.php.
* <=!=[=C=D=A=T=A=[Confirm Linkbacks Cleanup]] es lo que se insertará en el idioma maestro, lo que hay que traducir. (En esa línea, habría que traducir Confirm Linkbacks Cleanup).


¿Cómo puedo traducir directamente desde vBulletin?

Existen 2 formas (según mi experiencia) de traducir frases en vBulletin, las cuales explicaré a continuación:

1) A través del sistema de frases en vBulletin:

vBulletin incluye un sistema de edición de frases que te permite traducir cualquier frase en cualquier momento que desees. Este sistema se halla en:

AdminCP -> Idiomas y Frases -> Administrar Frases

Puedes ver allí lo siguiente:

Ver el archivo adjunto 3434


Tipos de frase: Acá se agrupan los distintos tipos de frases en vBulletin. Esas "categorías" -por decirlo así- facilitan la búsqueda y administración de frases, puesto que la mayoría generalmente enfocan su título en el área en que trabajarán esas frases, es decir:

El grupo de frases 'Permissions' incluye todas las frases utilizadas en el sistema de administración de permisos del foro.

Nombres de las variables: Son los identificadores de las frases, a través de éstos se puede hallar una frase específica si sabemos el nombre de la variable. Dichas variables hacen que las frases puedan ser llamadas en las plantillas, sería algo como:

En vB 3.x.x: $vbphrase[name]
En vB 4.x.x: {vb:rawphrase name}

En los ejemplos anteriores, la variable sería name.

Navegación: Con esos comandos navegas a través de las páginas de los grupos de frases.

Comandos de acción: Te permiten realizar acciones específicas con cada una de las frases:

Editar: Simple, para editar cualquier frase. Allí veremos lo siguiente:

Ver el archivo adjunto 3438

Allí se listarán tantos recuadros como idiomas tengas instalado, y en el recuadro Español (ES) es donde colocamos la traducción de la frase que se visualiza en la parte "Texto". Lo que vemos al lado de "Texto" es lo que tenemos que traducir al español (este texto es el contenido en el idioma maestro de vBulletin).

Borrar: Muy obvio, para eliminar la frase del idioma maestro. :D

Buscar en Frases: Pulsando ese botón llegaremos a una página como esta:

Ver el archivo adjunto 3439

Allí podremos definir los criterios de búsqueda para hallar una determinada frase en un determinado idioma y/o producto.

Crear Nueva Frase: Si deseas añadir una nueva frase al idioma maestro, podrás hacerlo allí.

Encontrar Frases Huérfanas: Cuando pulsamos ese botón, llegaremos a una pantalla donde se listan frases traducidas en un idioma personalizado, pero que NO contienen texto en el idioma maestro. También se listan las frases que han sido eliminadas de una versión a otra de vBulletin.

Si deseamos traducir las frases de un determinado add-on, podremos hacerlo de dos maneras:

* Buscar allí frase por frase (es la forma más tediosa) pulsando el botón 'Buscar en Frases', editar la frase una vez que la encontremos y especificar nuestra traducción sin mayores problemas.

* Navegar a través de los grupos de frases hasta hallar el conjunto de frases de nuestro add-on. Vamos a tomar como ejemplo vBadvanced. Este producto tiene 546 frases distintas, las cuales se agrupan en 2 conjuntos de frases creados por el add-on (vBadvanced CMPS y vBadvanced CMPS CP) y en otros grupos por defecto de vBulletin. Podremos aprovechar de que este add-on añade una especie de "identificador" por delante de cada variable, para hallar más fácilmente las frases que añade a un determinado grupo.

Por ejemplo:

vBulletin Settings: En este grupo de frases se agrupan un conjunto de frases de vBadvanced, las cuales podemos identificar fácilmente por el prefijo setting_portal_ delante de cada frase. Afortunadamente vBulletin ordena alfabéticamente las frases en cada grupo, lo que hace que podamos hallar rápidamente las frases de vBadvanced.


Ver el archivo adjunto 3437

Allí mismo, a la derecha, podremos identificar rápidamente si X frase no ha sido traducida en X idioma.



2) A través del sistema de idiomas en vBulletin:

Es para mí la forma más sencilla de traducir tanto vBulletin, como productos o add-ons del mismo. Podemos hallar esa sección en:

AdminCP -> Idiomas y Frases -> Administrar Idiomas -> Editar / Traducir Frases del Idioma X

Cuando hagamos clic sobre Editar / Traducir Frases del Idioma X llegaremos a una pantalla como esta:


Ver el archivo adjunto 3436

La ventaja de esa sección es que podremos traducir varias frases sin necesidad de ir guardando una por una. Traducimos todas las frases que se muestran en esa página y las guardamos una sola vez pulsando el botón 'Guardar' situado al final de la página.

El mecanismo para hallar frases en esta sección es semejante al mencionado anteriormente:

Andrés Durán dijo:
* Navegar a través de los grupos de frases hasta hallar el conjunto de frases de nuestro add-on. Vamos a tomar como ejemplo vBadvanced. Este producto tiene 546 frases distintas, las cuales se agrupan en 2 conjuntos de frases creados por el add-on (vBadvanced CMPS y vBadvanced CMPS CP) y en otros grupos por defecto de vBulletin. Podremos aprovechar de que este add-on añade una especie de "identificador" por delante de cada variable, para hallar más fácilmente las frases que añade a un determinado grupo.

Por ejemplo:

vBulletin Settings: En este grupo de frases se agrupan un conjunto de frases de vBadvanced, las cuales podemos identificar fácilmente por el prefijo setting_portal_ delante de cada frase. Afortunadamente vBulletin ordena alfabéticamente las frases en cada grupo, lo que hace que podamos hallar rápidamente las frases de vBadvanced.


Método Alternativo

Hay otra manera de traducir productos, y es utilizando un add-on que permite la edición avanzada de hacks. Éste add-on resulta útil porque agrupa todas las frases de un hack en una sola página, sin necesidad de andar buscando grupo por grupo de frases.

Para vBulletin 3.x.x:

[APM] Advanced Product Management 3.7.004 - vBulletin.org Forum

Para vBulletin 4.x.x:

[APM] Advanced Product Management 4.0.001 - vBulletin.org Forum

Una vez que tengamos instalado el add-on, debemos dirigirnos a:

AdminCP -> Plugins y Productos -> Advanced Product Management

En esa página se listarán todos los hacks que tengas instalados, con enlaces a opciones avanzadas de edición. El enlace que nos interesa en este artículo es el enlace de la derecha, que se despliega en fila por debajo de la columna phrases (osea, el segundo enlace, después de la columna Release Date / Install date)

Pulsando ese enlace llegaremos a una página como esta:

Ver el archivo adjunto 3435

Allí tocará editar una por una las frases del producto que vayamos a traducir. Es bastante útil cuando se trata de traducir add-ons con pocas frases, puesto que si son muchas, conforme vayamos avanzando se listará también la traducción que vayamos haciendo, lo que provoca que la navegación sea cada vez más larga.



¿Cómo puedo traducir directamente desde el *.xml del producto?

Hay usuarios que prefieren traducir las frases directamente del archivo *.xml del producto. La desventaja de esto es que se insertará en el idioma maestro nuestra traducción, y no el texto original del archivo *.xml.

Para traducir productos directamente desde el archivo *.xml, es necesario mirar la estructura del mismo:

Andrés Durán dijo:
Las frases que se insertarán en el lenguaje maestro se muestran en el archivo *.xml del producto después de las líneas:

Insertar CODE, HTML o PHP:
[COLOR=Navy]    </plugins>
    <phrases>[/COLOR]
Y en el *.xml del producto conforman la siguiente estructura:

Insertar CODE, HTML o PHP:
[COLOR=DarkRed]<phrasetype[/COLOR] name="[COLOR=DarkOrange]Control Panel Global[/COLOR]" fieldname="[COLOR=DimGray]cpglobal[/COLOR]"[COLOR=DarkRed]>[/COLOR]
            [COLOR=SeaGreen]<phrase[/COLOR] name="[COLOR=Red]are_you_sure_you_want_to_cleanup_linkbacks[/COLOR]" date="0" username="Crawlability" version=""[COLOR=DarkRed]>[/COLOR][COLOR=Blue]<=!=[=C=D=A=T=A=[[/COLOR][U][B]Are you sure you want to cleanup selected linkback types?[/B][/U][COLOR=Blue]]][/COLOR][COLOR=SeaGreen]></phrase>[/COLOR]
            [COLOR=SeaGreen]<phrase[/COLOR] name="[COLOR=Red]confirm_linkbacks_cleanup[/COLOR]" date="0" username="Crawlability" version=""[COLOR=SeaGreen]>[/COLOR][COLOR=Blue]<=!=[=C=D=A=T=A=[[/COLOR][U][B]Confirm Linkbacks Cleanup[/B][/U][COLOR=Blue]]][/COLOR][COLOR=SeaGreen]></phrase>[/COLOR]
            [COLOR=SeaGreen]<phrase[/COLOR] name="[COLOR=Red]vbseo[/COLOR]" date="0" username="Crawlability" version=""[COLOR=SeaGreen]>[/COLOR][COLOR=Blue]<=!=[=C=D=A=T=A=[[/COLOR][U][B]vBSEO[/B][/U][COLOR=Blue]]][/COLOR][COLOR=SeaGreen]></phrase>[/COLOR]
[COLOR=DarkRed]</phrasetype>[/COLOR]
Que funciona de la siguiente manera:

* <phrasetype name="Control Panel Global" es el conjunto de frases donde se insertará la frase confirm_linkbacks_cleanup.
* fieldname="cpglobal" es el identificador de ese conjunto de frases.
* <phrase name="are_you_sure_you_want_to_cleanup_linkbacks" es el nombre de la variable que será llamada en las plantillas, plugins o archivos *.php.
* <=!=[=C=D=A=T=A=[Confirm Linkbacks Cleanup]] es lo que se insertará en el idioma maestro, lo que hay que traducir. (En esa línea, habría que traducir Confirm Linkbacks Cleanup).



Tipos de Archivos de Idioma

Existen productos (generalmente productos "premium" que utilizan scripts independientes a vBulletin) que utilizan un sistema distinto para almacenar la documentación textual (frases :D) de su producto. Esto se da generalmente porque dicho producto maneja una cantidad considerable de frases, como por ejemplo vBSEO.

Este producto utiliza más de 2000 frases en su Panel de Control, las cuales fue más sencillo almacenar en archivos *.xml independientes de vBulletin. Esto facilita su traducción, puesto que no será necesario editar y traducir una por una las 2000 frases (o más) desde el Panel de Administración.

Pueden revisar el *.xml de idioma de vBSEO (para que se den una idea) descargando la traducción en esta página:

http://www.vbhispano.com/foros/f95/traduccion_espanol_vbseo_3_3_0_3_3_1_a-14372/


Frases Hardcoded

Suele pasar que algunos "coders" olviden (o les de flojera) introducir ciertas frases de su producto en el *.xml junto con el resto del idioma, y en su lugar, las introducen dentro de los archivos *.php del hack, o dentro de las plantillas del mismo.

Podemos darnos una idea visualizando este mensaje:

http://www.vbhispano.com/foros/f37/como_traducir_inferno_vbshout_e_hide-14646/#post76882

En ese caso no fue difícil hallar las frases. Es más tedioso editar los archivos *.php de los hacks que del todo hacer eso.

¿Y cómo hallarlas?, pues nos tocará adivinar donde han sido introducidas las frases de ese tipo. :p



Comentarios Adicionales

Bueno, después de escribir tanto me ha dado flojera hacer un comentario :p. Es necesario tener un conocimiento básico o intermedio en el idioma nativo del que deseemos traducir si vamos a compartir nuestro trabajo. Cabe aclarar también que en el inglés una frase de dos palabras puede significar algo de diez en el idioma español, o viceversa; también se da muy frecuentemente que ciertos vocablos tengan más de dos significados distintos. Para dar con el correcto en nuestra traducción será necesario entender y lograr interpretar el contexto alrededor de dicho vocablo.

Creo que eso es todo por ahora compañeros. Si hay alguna duda o sugerencia respecto a lo que es traducción de productos y/o este tema, no duden en hacerlo saber de mi conocimiento. :D


Saludos cordiales.

P.d: No se duerman leyendo haha.
 

Andrés Durán

Xi
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
23 Abr 2009
Mensajes
4.371
Exportando traducciones

Ahora, una vez que estemos 100% seguros de haber traducido nuestro add-on, tocará exportarlo como un archivo *.xml que pueda ser instalado por otros en sus foros.

Para hacer esto, debemos dirigirnos a:

AdminCP -> Idiomas y Frases -> Descargar / Subir Idiomas

Estando allí veremos una página como esta:

Ver el archivo adjunto 4030

Podemos distinguir en el recuadro verde 5 opciones:

Idioma: En esta opción seleccionamos el idioma en que estarán las frases que queremos exportar. Si por ejemplo yo traduje un add-on desde el inglés al español, obviamente debo seleccionar español en esa opción.
Producto: Allí seleccionaré el add-on que he traducido.
Nombre de Archivo: Este será el nombre que tendrá el archivo *.xml que voy a exportar.
Incluir Frases Personalizadas: Con este ajuste especificaremos si nuestro idioma incluirá frases personalizadas que hayamos creado y agregado a nuestro producto traducido, a pesar de que no se utilicen en ninguna parte.
Solo Buscar Frases: Siempre que se vaya a exportar la traducción de un add-on, esta opción debe estar marcada en "Sí", ya que de hacer lo contrario, se incluirá la configuración del idioma, y al momento de instalar la traducción en otro foro, la configuración de idioma de éste será sobrescrita. Solamente cuando vayamos a exportar una traducción de vBulletin (el script en sí), esta opción debe estar marcada en "No".

Para los que no saben que es la Configuración de Idioma, dirigirse a:

AdminCP -> Idiomas y Frases -> Administrar Idiomas

A la derecha del título de cualquier idioma se hallan una serie de enlaces, pulsar sobre el enlace "[Editar Configuración]" para hallar la configuración del idioma.

Se llegará a una pantalla similar a esta:

Ver el archivo adjunto 4031

Allí se puede personalizar la configuración del idioma a gusto propio, o dependiendo de las especificaciones del servidor.
 

imported_raulin

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
18 Dic 2009
Mensajes
227
Hola, excelente tutorial, aprendi a traducir un poco con otro sistema de CSM, asi que he traducido algunas palabras de los add-ons que uso en vbulletin, esto me ayudara mucho para aprender hacerlo correctamente.

Saludos.
 

Andrés Durán

Xi
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
23 Abr 2009
Mensajes
4.371
Mensaje #2 actualizado. Cuando redacté el artículo, olvidé esa información; es vital a la hora de traducir add-ons :).

Saludos.
 
Arriba