- Desde
- 23 Abr 2009
- Mensajes
- 4.371
Como traducir add-ons - Artículo detallado
Hola a todos (ignoren la portada, es pura estética). 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:
- Id del producto
- Título (o nombre)
- Dependencias
- Descripción del producto
- Versión
- URL de comprobación (donde se informa si existen actualizaciones)
- Códigos
-> Código de instalación
-> Código de desinstalación - Plantillas
- Plugins
- Frases
- Opciones
- Temas de ayuda (que se insertan en la ayuda del Panel de Administración)
- Entradas Cron
- 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]
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]
* <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.
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:
Y en el *.xml del producto conforman la siguiente estructura:Insertar CODE, HTML o PHP:[COLOR=Navy] </plugins> <phrases>[/COLOR]
Que funciona de la siguiente manera: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]
* <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 ) 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.
Comentarios Adicionales
Bueno, después de escribir tanto me ha dado flojera hacer un comentario . 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.
Saludos cordiales.
P.d: No se duerman leyendo haha.