En informática , internacionalización y localización ( estadounidense ) o internacionalización y localización ( británica ), a menudo abreviadas i18n y l10n respectivamente, [1] son medios para adaptar el software informático a diferentes idiomas, peculiaridades regionales y requisitos técnicos de una configuración regional de destino . [2]
La internacionalización es el proceso de diseñar una aplicación de software para que pueda adaptarse a varios idiomas y regiones sin realizar cambios de ingeniería. La localización es el proceso de adaptar un software internacionalizado para una región o un idioma específicos traduciendo el texto y agregando componentes específicos de la configuración regional.
La localización (que potencialmente se realiza varias veces para diferentes lugares) utiliza la infraestructura o flexibilidad que proporciona la internacionalización (que idealmente se realiza solo una vez antes de la localización o como parte integral del desarrollo en curso). [3]
Los términos se abrevian frecuentemente con los numerónimos i18n (donde 18 representa el número de letras entre la primera i y la última n en la palabra internacionalización , un uso acuñado en Digital Equipment Corporation en los años 1970 o 1980) [4] [5] y l10n para localización , debido a la longitud de las palabras. [1] [6] Algunos escritores escriben el último término con mayúscula ( L10n ) para ayudar a distinguir los dos. [7]
Algunas empresas, como IBM y Oracle , utilizan el término globalización , g11n , para la combinación de internacionalización y localización. [8]
Microsoft define la internacionalización como una combinación de preparación para el mundo y localización. La preparación para el mundo es una tarea del desarrollador que permite que un producto se utilice con múltiples scripts y culturas (globalización) y separa los recursos de la interfaz de usuario en un formato localizable (localizabilidad, abreviado como L12y ). [9] [10]
Hewlett-Packard y HP-UX crearon un sistema llamado “Soporte de idioma nacional” o “Soporte de idioma nativo” (NLS) para producir software localizable. [2]
Algunos proveedores, entre ellos IBM [11], utilizan el término Versión en idioma nacional (NLV) para las versiones localizadas de productos de software que admiten solo una configuración regional específica. El término implica la existencia de otras versiones NLV del software similares para diferentes mercados; esta terminología no se utiliza cuando no se ha llevado a cabo ninguna internacionalización ni localización y un producto de software solo admite un idioma y una configuración regional en cualquier versión.
Según Software sin fronteras , los aspectos de diseño a considerar al internacionalizar un producto son "codificación de datos, datos y documentación, construcción de software, soporte de dispositivos de hardware e interacción del usuario"; mientras que las áreas de diseño clave a considerar al hacer un producto completamente internacionalizado desde cero son "interacción del usuario, diseño de algoritmos y formatos de datos, servicios de software y documentación". [2]
La traducción suele ser el componente que más tiempo consume en la localización de un idioma . [2] Esto puede implicar:
Los programas informáticos pueden encontrar diferencias que van más allá de la traducción directa de palabras y frases, ya que pueden generar contenido de forma dinámica. Es posible que el proceso de internacionalización deba tener en cuenta estas diferencias antes de la traducción. Muchas de estas diferencias son tan habituales que se puede automatizar fácilmente una conversión entre idiomas. El repositorio de datos de configuración regional común de Unicode ofrece una recopilación de dichas diferencias. Sus datos son utilizados por los principales sistemas operativos , incluidos Microsoft Windows , macOS y Debian , y por las principales empresas o proyectos de Internet, como Google y la Fundación Wikimedia . Entre los ejemplos de dichas diferencias se incluyen:
Distintos países tienen diferentes convenciones económicas, incluidas variaciones en:
En particular, Estados Unidos y Europa difieren en la mayoría de estos casos. Otras áreas a menudo siguen uno de estos patrones.
Es posible que servicios específicos de terceros, como mapas en línea, informes meteorológicos o proveedores de servicios de pago , no estén disponibles en todo el mundo a través de los mismos operadores, o que no estén disponibles en absoluto.
Las zonas horarias varían en todo el mundo y esto debe tenerse en cuenta si un producto originalmente solo interactuaba con personas en una única zona horaria. Para la internacionalización, se suele utilizar la UTC internamente y luego se convierte en una zona horaria local para fines de visualización.
Distintos países tienen distintos requisitos legales, es decir, por ejemplo:
La localización también puede tener en cuenta diferencias culturales, como:
Para internacionalizar un producto, es importante considerar una variedad de mercados en los que previsiblemente entrará el producto. [2] Detalles como la longitud del campo para las direcciones postales, el formato único para la dirección, la capacidad de hacer que el campo de código postal sea opcional para dirigirse a países que no tienen códigos postales o el campo de estado para países que no tienen estados, además de la introducción de nuevos flujos de registro que se adhieran a las leyes locales son solo algunos de los ejemplos que hacen de la internacionalización un proyecto complejo. [7] [17] Un enfoque más amplio tiene en cuenta los factores culturales en relación, por ejemplo, con la adaptación de la lógica del proceso empresarial o la inclusión de aspectos culturales (conductuales) individuales. [2] [18]
Ya en la década de 1990, empresas como Bull utilizaban la traducción automática ( Systran ) a gran escala para toda su actividad de traducción: los traductores humanos se encargaban de la preedición (hacer que la entrada fuera legible por la máquina) y de la posedición . [2]
Tanto en la reingeniería de un software existente como en el diseño de un nuevo software internacionalizado, el primer paso de la internacionalización es dividir cada parte potencialmente dependiente de la configuración regional (ya sea código, texto o datos) en un módulo separado. [2] Cada módulo puede entonces depender de una biblioteca/dependencia estándar o reemplazarse independientemente según sea necesario para cada configuración regional.
La práctica actual predominante es que las aplicaciones coloquen texto en archivos de recursos que se cargan durante la ejecución del programa según sea necesario. [2] Estas cadenas, almacenadas en archivos de recursos, son relativamente fáciles de traducir. Los programas suelen crearse para hacer referencia a bibliotecas de recursos según los datos de configuración regional seleccionados.
El almacenamiento de cadenas traducibles y traducidas a veces se denomina catálogo de mensajes [2], ya que las cadenas se denominan mensajes. El catálogo generalmente comprende un conjunto de archivos en un formato de localización específico y una biblioteca estándar para manejar dicho formato. Una biblioteca de software y un formato que facilitan esto es gettext .
Por lo tanto, para lograr que una aplicación admita varios idiomas, se debe diseñar la aplicación para que seleccione el archivo de recursos del idioma correspondiente en tiempo de ejecución. El código necesario para gestionar la verificación de la entrada de datos y muchos otros tipos de datos sensibles a la configuración regional también deben admitir diferentes requisitos de configuración regional. Los sistemas de desarrollo y los sistemas operativos modernos incluyen bibliotecas sofisticadas para la compatibilidad internacional de estos tipos; consulte también Datos de configuración regional estándar más arriba.
Muchos problemas de localización (por ejemplo, la dirección de escritura o la clasificación del texto) requieren cambios más profundos en el software que la traducción de texto. Por ejemplo, OpenOffice.org logra esto con modificadores de compilación.
Un método de globalización incluye, después de la planificación, tres pasos de implementación: internacionalización, localización y garantía de calidad. [2]
Hasta cierto punto (por ejemplo, para garantizar la calidad ), los equipos de desarrollo incluyen a alguien que se encarga de las etapas básicas o centrales del proceso, que luego habilitan todas las demás. [2] Estas personas suelen entender idiomas y culturas extranjeras y tienen cierta formación técnica. Se requieren redactores técnicos especializados para construir una sintaxis culturalmente apropiada para conceptos potencialmente complicados, junto con recursos de ingeniería para implementar y probar los elementos de localización.
Una vez internacionalizado adecuadamente, el software puede depender de modelos más descentralizados para la localización: el software libre y de código abierto generalmente depende de la autolocalización por parte de los usuarios finales y voluntarios, a veces organizados en equipos. [19] El proyecto GNOME , por ejemplo, tiene equipos de traducción voluntarios para más de 100 idiomas. [20] MediaWiki admite más de 500 idiomas, de los cuales 100 están casi completos a septiembre de 2023. [update][ 21]
Al traducir un texto existente a otros idiomas, es difícil mantener las versiones paralelas de los textos durante toda la vida útil del producto. [22] Por ejemplo, si se modifica un mensaje que se muestra al usuario, se deben cambiar todas las versiones traducidas.
Los proveedores de software independientes , como Microsoft, pueden proporcionar pautas de localización de software de referencia para los desarrolladores [23] . El idioma de localización del software puede ser diferente del idioma escrito .
En un entorno comercial, la ventaja de la localización es el acceso a más mercados. A principios de los años 80, Lotus 1-2-3 tardó dos años en separar el código del programa y el texto, y perdió el liderazgo del mercado en Europa frente a Microsoft Multiplan . [2] MicroPro descubrió que el uso de un traductor austríaco para el mercado de Alemania Occidental hacía que su documentación de WordStar , según afirmó un ejecutivo, "no tuviera el tono que debería haber tenido". [24]
Sin embargo, esto implica costos considerables que van mucho más allá de la ingeniería. Además, las operaciones comerciales deben adaptarse para gestionar la producción, el almacenamiento y la distribución de múltiples productos locales y discretos, que a menudo se venden en monedas, entornos regulatorios y regímenes impositivos completamente diferentes.
Por último, las ventas, el marketing y el soporte técnico también deben facilitar sus operaciones en los nuevos idiomas, para ayudar a los clientes a encontrar los productos localizados. En particular, para poblaciones lingüísticas relativamente pequeñas, puede que nunca sea económicamente viable ofrecer un producto localizado. Incluso cuando una gran cantidad de poblaciones lingüísticas podrían justificar la localización de un producto determinado, y la estructura interna de un producto ya permite la localización, un determinado desarrollador o editor de software puede carecer del tamaño y la sofisticación necesarios para gestionar las funciones auxiliares asociadas con la operación en múltiples localidades.
En pocas palabras, la localización consiste en combinar el lenguaje y la tecnología para producir un producto que pueda superar las barreras culturales y lingüísticas. Ni másni menos .
Muchas personas, cansadas de escribir estas largas palabras una y otra vez, tomaron el hábito de escribir
i18n
y
l10n
en su lugar, citando la primera y la última letra de cada palabra y reemplazando la serie de letras intermedias por un número que simplemente indica cuántas letras hay.
La L mayúscula en L10n ayuda a distinguirla de la i minúscula en i18n.