La internacionalización (i18n) es el proceso de diseñar una aplicación para que pueda ser adaptada a diferentes idiomas y regiones sin cambios en el código fuente. Angular proporciona un conjunto de herramientas y técnicas para facilitar la internacionalización de aplicaciones.
Conceptos Clave
- Localización (l10n): Adaptación de la aplicación a un idioma y región específicos.
- Traducción: Proceso de convertir el texto de la aplicación a diferentes idiomas.
- Marcado de texto: Identificación de texto que necesita ser traducido.
- Archivos de traducción: Archivos que contienen las traducciones para diferentes idiomas.
Configuración de Internacionalización en Angular
Paso 1: Instalación de Dependencias
Primero, asegúrate de tener las dependencias necesarias instaladas. Angular CLI incluye soporte para i18n, pero es posible que necesites instalar paquetes adicionales.
Paso 2: Marcado de Texto para Traducción
Utiliza el marcador i18n
en tus plantillas HTML para identificar el texto que necesita ser traducido.
Paso 3: Generación de Archivos de Traducción
Genera archivos de traducción utilizando Angular CLI. Este comando extrae los mensajes marcados y los coloca en un archivo de mensajes.
Esto generará un archivo messages.xlf
en el directorio src/locale
.
Paso 4: Creación de Archivos de Traducción
Crea archivos de traducción para cada idioma que desees soportar. Por ejemplo, para español (es
), crea un archivo messages.es.xlf
.
<trans-unit id="welcomeMessage" datatype="html"> <source>Welcome to our application!</source> <target>¡Bienvenido a nuestra aplicación!</target> </trans-unit>
Paso 5: Configuración de Angular para Soportar Múltiples Idiomas
Modifica el archivo angular.json
para incluir configuraciones de internacionalización.
"projects": { "your-project-name": { "i18n": { "sourceLocale": "en", "locales": { "es": "src/locale/messages.es.xlf" } } } }
Paso 6: Construcción de la Aplicación para Diferentes Idiomas
Construye la aplicación para un idioma específico utilizando el siguiente comando:
Esto generará una versión de la aplicación para cada idioma configurado.
Ejemplo Práctico
Paso 1: Marcado de Texto
Paso 2: Archivo de Traducción (messages.es.xlf)
<trans-unit id="greeting" datatype="html"> <source>Hello, how are you?</source> <target>Hola, ¿cómo estás?</target> </trans-unit>
Paso 3: Configuración en angular.json
"projects": { "your-project-name": { "i18n": { "sourceLocale": "en", "locales": { "es": "src/locale/messages.es.xlf" } } } }
Paso 4: Construcción
Ejercicio Práctico
Ejercicio
-
Marca el siguiente texto en tu aplicación Angular para traducción:
<p i18n="@@farewellMessage">Goodbye and see you soon!</p>
-
Genera el archivo de mensajes y crea una traducción al francés (
fr
). -
Configura
angular.json
para incluir el nuevo idioma. -
Construye la aplicación para el idioma francés.
Solución
-
Marcado de Texto:
<p i18n="@@farewellMessage">Goodbye and see you soon!</p>
-
Archivo de Traducción (messages.fr.xlf):
<trans-unit id="farewellMessage" datatype="html"> <source>Goodbye and see you soon!</source> <target>Au revoir et à bientôt!</target> </trans-unit>
-
Configuración en angular.json:
"projects": { "your-project-name": { "i18n": { "sourceLocale": "en", "locales": { "fr": "src/locale/messages.fr.xlf" } } } }
-
Construcción:
ng build --localize
Conclusión
La internacionalización es una parte crucial del desarrollo de aplicaciones modernas que buscan alcanzar una audiencia global. Angular proporciona herramientas robustas para facilitar este proceso, desde el marcado de texto hasta la generación y uso de archivos de traducción. Con estos conocimientos, puedes adaptar tu aplicación Angular para soportar múltiples idiomas y regiones, mejorando así la accesibilidad y la experiencia del usuario.
En el siguiente tema, exploraremos cómo optimizar el rendimiento de tu aplicación Angular para asegurar que funcione de manera eficiente en todos los dispositivos y condiciones de red.
Curso de Angular 2+
Módulo 1: Introducción a Angular
- ¿Qué es Angular?
- Configuración del Entorno de Desarrollo
- Tu Primera Aplicación Angular
- Arquitectura de Angular
Módulo 2: Conceptos Básicos de TypeScript
- Introducción a TypeScript
- Variables y Tipos de Datos en TypeScript
- Funciones y Funciones Flecha
- Clases e Interfaces
Módulo 3: Componentes y Plantillas
- Creación de Componentes
- Plantillas de Componentes
- Estilos de Componentes
- Interacción entre Componentes
Módulo 4: Directivas y Pipes
Módulo 5: Servicios e Inyección de Dependencias
- Introducción a los Servicios
- Creación y Uso de Servicios
- Inyección de Dependencias
- Inyectores Jerárquicos
Módulo 6: Enrutamiento y Navegación
Módulo 7: Formularios en Angular
- Formularios Basados en Plantillas
- Formularios Reactivos
- Validación de Formularios
- Formularios Dinámicos
Módulo 8: Cliente HTTP y Observables
- Introducción al Cliente HTTP
- Realizando Solicitudes HTTP
- Manejo de Respuestas HTTP
- Uso de Observables
Módulo 9: Gestión de Estado
- Introducción a la Gestión de Estado
- Uso de Servicios para la Gestión de Estado
- NgRx Store
- NgRx Effects