Fork me on GitHub
Fork me on GitHub
Donar Ahora!
Seleccione una cantidad para donar


¿Quiere que su nombre de usuario sea revelado con su donación?
Si - Listeme como un geneoso donante
No - Liste mi donación como un donante anónimo


Usuario
Bienvenido
Haz click para registrarte. Es gratuito y podrás utilizar todos los recursos de la web

Login

Recuerdame

¿Perdió su contraseña?


Online
Conectados: 33
Miembros: 0
Invitados: 31
Buscadores: 2

Estadísticas
Nuevos miembros: [BillyStilw-25/10/2017] [Teacher194-24/10/2017] [TimmyAngel-18/10/2017] [Leblanc-18/10/2017] [HealthyNut-17/10/2017] [HalliePerk-12/10/2017] [ShadBlais-8/10/2017] [WilburCruc-1/10/2017] [Ulanowski7-25/9/2017] [KaleyKlem-23/9/2017]
Registrados: 30176
Hoy: 0
Ayer: 0

Conectados:
chInvitadoPerfiles extendidos
phInvitadoPerfiles extendidos
onlineInvitado
usInvitadoPerfiles extendidos
onlineInvitado
alInvitado
usInvitadoForos
onlineInvitadoForos
usInvitadoNoticias
usInvitadoPerfiles extendidos
usInvitadoForos
onlineInvitadoForos
onlineInvitadoForos
onlineInvitado
onlineInvitado
onlineInvitado
jpInvitado
onlineInvitadoForos
usInvitadoForos
onlineInvitadoForos
onlineInvitado
onlineInvitadoForos
usInvitadoForos
onlineInvitadoNoticias
usInvitadoNoticias
cnInvitadoPerfiles extendidos
onlineInvitadoForos
deInvitadoPerfiles extendidos
onlineInvitadoForos
usInvitado
usInvitadoForos
Documentación : Traducción de idiomas en Xoops
Enviado por joninzar el 26/11/2007 16:20:00 (55164 Lecturas)

Os presentamos un trabajo que contiene indicaciones útiles con relación a la traducción en XOOPS. También puede ser de mucha utilidad en caso de tener problemas con alguna cadena de lenguaje en un módulo.
Lectura recomendada



Xoops trabaja con variables, prescindiendo en principio de los idiomas.

Así, Cuando vemos en español en el menú:
"Inicio" o "Home" en inglés
en realidad Xoops no ve ni Inicio ni Home, lo que está leyendo es una variable que se llama _MB_SYSTEM_HOME

Y luego, echa mano de unos archivos, en los que se traduce esa variable para el idioma correspondiente. Y según sea el idioma que se haya elegido, a la hora de presentar al usuario el concepto _MB_SYSTEM_HOME, Xoops irá a esos archivos para "traducirlo".

¿Dónde se guardan esas traducciones?

Xoops es muy ordenado. Y con los idiomas no es una excepción.

Los idiomas siempre estarán incluidos en un directorio, con el nombre del idioma. Normalmente en inglés, así la carpeta donde se recogen los archivos del idioma español, se llama spanish.

Y todos los idiomas que estén presentes se guardan en una carpeta de nombre language.

No hay una sola carpeta language dentro de Xoops. Veamos la estructura del Xoops 2.0.17, tal y como quedaría subido al servidor y antes de cargar módulos, mostrando sólo carpetas y expandiendo aquellas carpetas que contengan idiomas (en este caso ya contiene español):

cache
class
extras
images
include
kernel
language
.......................english
.......................spanish
modules
.......................system
................................languages
.......................................english
.......................................spanish
templates_c
themes
uploads

En este caso, sólo tenemos el módulo system, el único que viene con la distribució original de Xoops.

Vamos a ver dónde guarda lenguajes un módulo como el news (versión 1.56). Igual, sólo veremos carpetas y expandidas las que tienen lenguajes:

news
........admin
........blocks
........class
........fpdf
................language
........................english.php (1)
........................french.php (1)
........images
........include
........js
........language
................english
................french
........pdf
........seo
........sql
........templates

(1) este es un caso un poco excepcional. Este módulo para esa función, hacer pdf, utiliza no carpetas sino archivos english.php, etc. También se pueden crear y traducir archivos spanish.php


Traduciendo

Herramientas

Para traducir, podemos usar cualquier editor de texto o de código.

En Linux: gedit, kate, cualquiera de los editores de html o php, como Quanta, Bluefish, etc, etc.
En Windows: bloc de notas de Windows, Wordpad, Notepad, editores de html (como el HTML-Kit)

Lo que no conviene usar son: Ni procesadores de texto (tipo Word, OpenOffice Word procesor) ni en general editores HTML tipo WYSYG.

Qué vamos a traducir

Vamos a traducir al español, incluyendo una carpeta spanish a la carpeta language de news.
No la creamos nueva, sino que seleccionamos y copiamos la carpeta english, y la pegamos dentro de la carpeta language, poniéndole como nombre spanish.

Ya está. Ahora la expandimos y vemos qué contiene (en burdeos carpetas y en negro archivos)

spanish
........admin.php
........blocks.php
........index.html
........mail_template
................category_newstory_notify.tpl
................global_newcategory_notify.tpl
................global_newstory_notify.tpl
................global_storysubmit_notify.tpl
................index.html
................story_approve_notify.tpl
................topic_newstory_notify.tpl
........main.php
........modinfo.php
........newsletter.php

Vale, vemos que entre los archivos, hay dos tipos diferentes: .php y .tpl

Los .php

La estructura típica de estos archivos .php, por ejemplo el incio del admin.php, va a ser:


<?php 
 
// $Id: admin.php,v 1.18 2004/07/26 17:51:25 hthouzard Exp $ 
 //%%%%%%    Admin Module Name  Articles     %%%%% 
 
define("_AM_DBUPDATED","Database Updated Successfully!"); 
 
define("_AM_CONFIG","News Configuration"); 
 
define("_AM_AUTOARTICLES","Automated Articles"); 
 
define("_AM_STORYID","Story ID"); 
 
define("_AM_TITLE","Title"); 
 
define("_AM_TOPIC","Topic"); 
 
define("_AM_POSTER","Poster"); 
 
define("_AM_PROGRAMMED","Programmed Date/Time"); 
 
define("_AM_ACTION","Action"); 
 
define("_AM_EDIT","Edit"); 
 
define("_AM_DELETE","Delete"); 
 
define("_AM_LAST10ARTS","Last %d Articles");


// etc etc //


Lo que vamos a traducir son las líneas tipo define. Cojo una línea y voy a poner en color azul lo que NO tenemos que tocar y en verde, lo que sí vamos a modificar. Lo pongo también en negrita para verlo mejor.


define("_AM_DBUPDATED","Database Updated Successfully!");

Hay algunas cosas que siempre debemos respetar:

1.- No tocar lo que he puesto en azul, incluyendo " y () y ;

2.- La expresión siempre debe acabar con ");

3.- Nuestra frase en español una vez traducida, siempre debe quedar entre " "

4.- Si por una razón, una frase no podemos traducirla, bien porque no sabemos lo que quiere decir o bien porque no sabemos a qué se refiere, no lo borres, déjalo en inglés como estaba. Siempre dará más información al usuario que no ver nada.

5.- Si alguna vez debemos poner comillas dentro de la frase que se deben ver, delante de las comillas se debe poner una barra invertida \. Por ejemplo:
Supongamos este define:

define("_TIP_EXAMPLE","This is a tipycal example");

Queremos poner y que se vea: Este es un "típico" ejemplo.
Si hacemos esta traducción:

define("_AM_DBUPDATED","Este es un "típico" ejemplo.");

Como mínimo, nuestro texto no se verá, si es que no nos da un error. Vale, ¿cómo se hace? así:

define("_AM_DBUPDATED","Este es un \"típico\" ejemplo.");

6.- Hay ·defines" que contienen etiquetas html (en burdeos). Las respetaremos:


define("_MB_NEWS_WHAT_PUBLISH","What do you want to publish
in the spotlight ?");


Traduciremos así:
define("_MB_NEWS_WHAT_PUBLISH", "¿Qué quieres publicar
en el spotlight ?");


7.- En ocasiones aparece una expresión como ésta %s


define("_NW_THEREAREINTOTAL","There are %s article(s) in total");

Traduciremos la frase, pero respetando %s y teniendo en cuenta que ese símbolo quiere decir que ahí va a ir algo variable, el resultado de una consulta, etc. En este caso el número de artículos que nos encontraŕa.

8.- Cuidado con la codificación (si utilizáis sobre todo editores Linux). Generalmente, guardaremos los archivos con codificación ISO (ISO-8859-1 oISO-8859-15). Con editores Windows, se guardarán seguramente con codificación ISO.


Los comentarios en php

Puede que te apetezca dejar notas dentro del php que has traducido.

- por ejemplo para señalar que más adelante se debe revisar,
- o bien para dejar constancia de que lo has traducido tú,
- o bien para explicar porqué has traducido no sé qué...

Para eso, dejaríamos un comentario, esto es, una parte de código que cuando se ejecute el php no se leerá, sin embargo, cuando un "humano" vea físicamente el contenido del archivo, los podrá leer.

Hay dos formas:

Usando // Escribiríamos:
// este howto lo ha escrito Joni
Las limitaciones de este comentario es que no puede partirse la línea, sino, intentará leer la parte de abajo. Por ejemplo, escribirlo así sería ilegal:
// este howto lo ha escrito
Joni

Usando /* */ Ponemos nuestro comentario entre /* y */ Se puede partir la línea. Por eso, serían legales:
/* este howto lo ha escrito Joni */
/* este howto lo ha escrito
Joni */

Los TPL

Los archivos TPL son un poco diferentes. Vamos a ver la estructura de category_newstory_notify.tpl:


Hello {X_UNAME},
 
 
new story "{STORY_NAME}" has been added at {X_SITENAME}.
 
 
You can view this story here:
 {
STORY_URL}
 
 -----------
 
 
You are receiving this message because you selected to be notified when new stories are added to our site.
 
 If 
this is an error or you wish not to receive further such notificationsplease update your subscriptions by visiting the link below:
 {
X_UNSUBSCRIBE_URL}
 
 
Please do not reply to this message.
 
 -----------
 
 {
X_SITENAME} ({X_SITEURL}) 
 
webmaster
 
{X_ADMINMAIL}


Estos archivos son más amigables para traducir. Los traduciremos tal cual, respetando saltos de línea.
Lo único, que esas etiquetas smarty ({X_UNAME}) no se deben tocar. Esas etiquetas son huecos que Xoops reserva para rellenar con determinadas variables.
Su contenido nos da una pista de qué irá ahí: {X_UNAME} hace referencia al nombre del usuario (user name) al que se mandará. Estas etiquetas son para definir envíos por mail.


Y ahora ¿qué?

Pues puedes hacer dos cosas:

a) Participar del espíritu "privativo" y quedártelo para tí solito, que lo tuyo te ha costado.
b) o bien, participar del espíritu Open Source, y compartir tu trabajo con otros usuarios, y así corresponder a otros, que seguro que tú te has instalado gratis el fruto del trabajo de otra gente. Por ejemplo el mismo Xoops.

Está claro cuál es mi opinión, ¿verdad?

Pues adelante.

Lo que haremos será meter en un zip, gzip, tar.gz, etc nuestro trabajo y subirlo, por ejemplo a XoopsAddons.

Mi costumbre es repetir la misma estructura del módulo, pero eliminando los archivos o carpetas que no se han tocado o no son de traducción. Eso permite subirlo más fácilmente al servidor, sin tener que "hurgar" tanto.

El paquete del news por ejemplo quedaría así (compáralo con el anterior). Carpetas en burdeos y archivos en negro:

news
.......fpdf
..............language
.....................spanish.php
.......language
..............spanish
.....................mail_template
............................category_newstory_notify.tpl
............................global_newcategory_notify.tpl
............................global_newstory_notify.tpl
............................global_storysubmit_notify.tpl
............................story_approve_notify.tpl
............................topic_newstory_notify.tpl
.....................admin.php
.....................blocks.php
.....................main.php
.....................modinfo.php
.....................newsletter.php

Pero, no obstante, tú hazlo como quieras, pero compártelo con los demás, por favor.

(Lo podéis ver en formato html aquí.




Otras noticias
10/6/2016 4:21:05 - XOOPS 2.5.8 Final Español
14/10/2014 16:50:00 - Tutorial 1: Adaptando Plantillas HTML y CSS a XOOPS
23/6/2014 5:30:00 - Lanzamiento de XOOPS 2.5.7 Final
8/7/2013 3:40:00 - Diseño Web Adaptativo (Responsive Web Design)
21/6/2013 7:16:21 - Cambio de servidor

Los usuarios son responsables de sus propios comentarios.

Autor Hilo
josespi
Enviado: 29/11/2007 20:25  Actualizado: 29/11/2007 20:25
Equipo de esXOOPS
Conectado: 21/10/2004
Desde: Lima - Perú
Envíos: 656
 Re: Traducción de idiomas en Xoops
Hola:

He agregado algunas modificaciones en el xoopswiki. para ordenar el diseño y otras sobre el uso de las comillas, además de otras correcciones menores.

José Espinoza

Autor Hilo
debianus
Enviado: 28/11/2007 11:43  Actualizado: 28/11/2007 11:43
Supremo
Conectado: 21/12/2006
Desde:
Envíos: 496
 Re: Traducción de idiomas en Xoops
He hecho algunos cambios en el wiki fundamentalmente con la idea de que el trabajo pueda servir no solo como una guía para la traducción al castellano sino como un documento de referencia general para la labor de traducción en XOOPS.(por eso veréis referencias al francés por ejemplo).
Creo además que sobre esta materia no hay documentación previa en el proyecto y podremos cubrir una importante laguna y hacer algo de utililidad para cualquier sitio local de soporte.
Cualquier de vosotros puede contribuir mejorando y corrigiendo el texto. Si tenéis algunda duda o sugerencia sobre el contenido (algo que falte, que se pueda mejorar), usad los foros.

Autor Hilo
joninzar
Enviado: 28/11/2007 0:40  Actualizado: 28/11/2007 0:40
Administrador
Conectado: 20/9/2006
Desde: Bilbao (Euskadi - España)
Envíos: 437
 Re: Traducción de idiomas en Xoops
Gracias, pero tampoco os paséis, que no es para tanto...

Y por favor, editar todo lo que os parezca bien en el wiki, a ver si entre tod@s...

Gracias

Autor Hilo
DonCurioso
Enviado: 27/11/2007 22:20  Actualizado: 27/11/2007 22:20
Supremo
Conectado: 24/9/2007
Desde:
Envíos: 752
 Re: Traducción de idiomas en Xoops
Caballero, esta explicación ha sido, sencillamente, espectacular....

Y pensar que todo éso lo tuve que adivinar traduciendo weblinks... anda que no me rompí el coco... suerte que un crío de 12 años ( el Kirby de los créditos ) sabe algo de todo ésto que uno, ya mayor para ésto, no tenía ni idea.

Felicidades, éste es el espíritu del que un grupo reducido de amigos hablamos con asiduidad.

Autor Hilo
debianus
Enviado: 27/11/2007 11:23  Actualizado: 27/11/2007 11:23
Supremo
Conectado: 21/12/2006
Desde:
Envíos: 496
 Re: Traducción de idiomas en Xoops
Estimo que este artículo puede ser de utilidad general por lo que lo puesto en el wiki
http://www.xoopswiki.org/wiki/index.p ... XOOPS_Core_and_Modules/es

Os invito a todos a revisar y mejorar el texto del mismo de cara a realizar un documento que pueda servir a todas las comunidades locales como una introducción a la labor de traducción.
Cuando acabemos la versión en español se haría la traducción al inglés.

Autor Hilo
joninzar
Enviado: 27/11/2007 7:37  Actualizado: 27/11/2007 7:37
Administrador
Conectado: 20/9/2006
Desde: Bilbao (Euskadi - España)
Envíos: 437
 Re: Traducción de idiomas en Xoops
Hola a tod@s.

Hay una pequeña errata.
Donde pone:

Acotación:
Lo que vamos a traducir son las líneas tipo define. Cojo una línea y voy a poner en color azul lo que NO tenemos que tocar y en verde, lo que sí vamos a modificar. Lo pongo también en negrita para verlo mejor.

define("_AM_DBUPDATED","Database Updated Successfully!");



Es más importante de lo que parece.
Si faltan las " etc, no funcionará.
Y lo que suele pasar, sobre todo con algunos editores es que al seleccionar para pegar lo nuevo, arrastra las comillas, las dos o una. Ya tenemos un error en el futuro.
Simplemente hay que tener un poco de cuidado con ello.

Un saludo