User:Suruena/i18n (es)

i18nIиtεŕйâçíøńåłîžaćïòñ



Otros idiomas: English (inglés) | español (español) | +/-

La abreviatura i18n significa internationalization (inglés: internacionalización), adaptar un producto a otros idiomas. Los proyectos de la fundación Wikimedia, para que de verdad puedan "aportar a cada persona la suma de todo el conocimiento humano", es necesario que sean completamente internacionales y plurilungües, un objetivo por el que se ha apostado y al que me gustaría ayudar en lo que pudiera.

Si quiere opinar o proponer alguna alternativa, por favor deje su comentario en la página de discusión.

Internacionalizando plantillas

edit

Plantillas, ¡me encantan las plantillas! Las plantillas no son más que páginas situadas en el dominio de nombres Template: y que tienen la característica de que en cualquier lugar que escriba el nombre de dicha página entre llaves dobles ({{ejemplo}}) el servidor lo reemplazará con el texto escrito en dicha página. Las plantillas sirven para un montón de cosas diferentes. Por ejemplo:

  • Unificar contenidos
  • Compartir contenidos, lo que significa ahorrar esfuerzos
  • Facilitan el cambio, por ejemplo para cambiar la presentación o corregir un error
  • Sirven para escribir menos (p.e. en vez de escribir <span lang=en>Shakespeare</span>, escribir {{lang|en|Shakespeare}})

Plantillas de nombres de idiomas

edit

Otras plantillas comunes muy importantes son las utilizadas en la portada de Meta-Wiki para decir en qué idiomas está un proyecto, por ejemplo la Wikipedia. Esta plantilla contiene la lista de idiomas en las que está la Wikipedia, siendo cada enlace el nombre del idioma escrito en esa lengua, con el nombre en inglés entre paréntesis. Esta plantilla se utiliza en las portadas de los diferentes Meta-Wikis, así que cada vez que se añade un nuevo idioma a la plantilla se actualizan automáticamente todas las portadas. Así los cambios son más rápidos porque no hay que esperar a que cada portada incluya el cambio, y sobre todo se ahorra esfuerzo porque no hay que actualizar a mano cada una.

De todas formas, estas plantillas no son verdaderamente internacionales porque están sólo traducidas al inglés. Estaría bien que en cada portada se leyera entre paréntesis la traducción del nombre de la versión en ese idioma, y no que se viese en todas en inglés. Por eso he creado unas cuantas plantillas genéricas (¡plantillas al rescate!) que reciben como parámetro en qué idioma se quiere. Por ejemplo, la plantilla List of Languages es una lista de lenguas en la que junto a cada una aparece la traducción al idioma que le hayamos dicho. Por ejemplo, si le decimos que tiene que ser en español

{{List of Languages|lang=es}}

nos mostrará la siguiente lista:

+/-

  • Afrikaans (afrikáans)
  • العربية (árabe)
  • azərbaycanca (azerbaiyano)
  • български (búlgaro)
  • brezhoneg (bretón)
  • čeština (checo)
  • dansk (danés)
  • Deutsch (alemán)
  • Ελληνικά (griego)
  • English (inglés)
  • español (español)
  • Esperanto (esperanto)
  • فارسی (persa)
  • français (francés)
  • گیلکی (Gilaki)
  • עברית (hebreo)
  • italiano (italiano)
  • 日本語 (japonés)
  • қазақша (kazajo)
  • 한국어 (coreano)
  • kurdî (kurdo)
  • مازِرونی (mazandaraní)
  • Nederlands (neerlandés)
  • norsk (noruego)
  • polski (polaco)
  • português (portugués)
  • русский (ruso)
  • српски / srpski (serbio)
  • svenska (sueco)
  • українська (ucraniano)
  • 中文 (chino)
  • अवधी (avadhi)

Ahora nos gustaría verla en inglés, pues simplemente cambios el idioma

{{List of Languages|lang=en}}

y ya está:

+/-

  • Afrikaans (Afrikaans)
  • العربية (Arabic)
  • azərbaycanca (Azerbaijani)
  • български (Bulgarian)
  • brezhoneg (Breton)
  • čeština (Czech)
  • dansk (Danish)
  • Deutsch (German)
  • Ελληνικά (Greek)
  • English (English)
  • español (Spanish)
  • Esperanto (Esperanto)
  • فارسی (Persian)
  • français (French)
  • گیلکی (Gilaki)
  • עברית (Hebrew)
  • italiano (Italian)
  • 日本語 (Japanese)
  • қазақша (Kazakh)
  • 한국어 (Korean)
  • kurdî (Kurdish)
  • مازِرونی (Mazanderani)
  • Nederlands (Dutch)
  • norsk (Norwegian)
  • polski (Polish)
  • português (Portuguese)
  • русский (Russian)
  • српски / srpski (Serbian)
  • svenska (Swedish)
  • українська (Ukrainian)
  • 中文 (Chinese)
  • अवधी (Awadhi)

¿Y cómo funciona?

edit

La plantilla Template:Lang def hace todo el trabajo sucio. Un ejemplo de uso de esta plantilla sería:

{{Lang def|code=en|lang=es}}

Este wikicódigo será reemplazado por lo siguiente:

English (inglés)

Como puede ver la plantilla Template:Lang def tiene dos parámetros de entrada: el código lingüístico (para especificar el nombre de la lengua), y el idioma en el que se quiere que sea traducido. Si echa un vistazo al código fuente de la plantilla List of Languages verá lo siguiente:

...
* {{Lang def|code=en|lang={{{lang}}}}}
* {{Lang def|code=es|lang={{{lang}}}}}
* {{Lang def|code=eo|lang={{{lang}}}}}
...

La plantilla de la lista de lenguas no es más que una sucesión de ocurrencias de la plantilla Template:Lang def que reciben como parámetro code el conjunto de códigos lingüísticos de las lenguas que aparecen en la lista final, y como segundo parámetro el idioma recibido como parámetro lang en la plantilla Template:List of Languages (al fin y al cabo queremos que todos los nombres de las lenguas estén traducidos al mismo idioma: al que le pasamos como argumento a esta última plantilla).

Y finalmente, hay algunas plantillas para los nombres de las lenguas y para las traducciones que son "llamadas" por Template:Lang def. Son de la siguiente forma:

{{Lang name - código}}
{{Lang name - código (código)}}

Donde código es el código del idioma (ahora mismo estoy usando ISO 639-1, pero puede que en el futuro sea insuficiente). Por ejemplo:

{{Lang name - en}}        English
{{Lang name - en (es)}}   Inglés

De esta forma, los nombres de las diferentes lenguas sólo tienen que ser traducidos una vez, esto puede ser de gran ayuda para los traductores. Además, imaginemos que hay una lengua muy minoritaria en que su nombre todavía no puede ser escrita correctamente porque Unicode todavía no recoge sus caracteres así que por el momento se utiliza una transliteración. Cuando una nueva versión de Unicode tenga esos caracteres simplemente habrá que modificar las plantillas y ¡nada más!

Ahora que ya sabe cómo funciona, tómese la libertad de traducir los nombres de las lenguas a otro idioma o añadir a la lista otras lenguas (no se preocupe si sólo traduce el nombre de la lengua que añadas a unos pocos idiomas, en el futuro alguien terminará de traducir las que falten). Después de grabar la plantilla, cuando recargue esta página verá dos enlaces a unas plantillas que no existen. No tiene más que pulsar en el primer enlace y escribir el nombre de la lengua, y después pulsar en el segundo y escribir la correspondiente traducción del nombre. Para traducir la lista de lenguas en su propio idioma simplemente edite la página de discusión, escriba {{List of Languages|lang=código lingüístico de tu idioma}}, y pulse en cada enlace para traducir los nombres a su idioma. Después de que haga eso cualquiera podrá utilizar esta lista en esa lengua en otras páginas.

Escalabilidad

edit

Ya tenemos nuestras plantillas de los proyectos completamente internacionales. Imaginemos ahora que ha nacido una nueva versión del wikcionario y sus creadores añaden un enlace a la plantilla (usando las plantillas de idiomas). Pues automáticamente aparecerá en todas las portadas de los Media-Wiki traducido al idioma correspondiente, y sin ningún esfuerzo (bueno, siempre que existan las plantillas correspondientes, algo que es muy probable porque casi seguro que ya había una versión de la Wikipedia en ese idioma). Es una solución muy escalable.

Conclusión

edit

El único problema que le veo es que quizá sea más complicado de utilizar, y también es importante que todo el mundo puedan contribuir a los proyectos. Habría que poner más documentación y enseñar a los usuarios a utilizar plantillas, o quizá haya formas más sencillas de hacer lo mismo. Sea como sea, hay métodos muy potentes de ayudar en la internacionalización de plantillas en concreto, y de los proyectos en general.

Más ejemplos

edit

Estas plantilla vienen muy bien también para los menús de traducciones de una página. Sin ir más lejos, el menú que está en la parte superior de de esta página está echo con estas plantillas. Se puede utilizar de la siguiente forma:

{{Menu of translations|trans=Suruena/i18n/Languages|lang=es}}

Compartir plantillas

edit

Hay ciertas plantillas muy útiles que deberían compartirse entre los diferentes proyectos e idiomas. Por ejemplo:

  • {{lang|idioma|frase}}: para decir que una frase está en un determinado idioma (etiquetado para el HTML).
  • {{edit|página|texto}}: para crear un enlace que edite página con el título texto.

...

Nunca más "Edit this"

edit

Estas plantillas comunes deberían poder utilizarse desde cualquier idioma, y en los proyectos sin subdominios lingüísticos implica que no siempre es posible localizarlas. Por ejemplo, que la plantilla de editar no ponga automáticamente "Edit", podría ponerse otro texto neutro, como "+/-".

...