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

  1. Localización (l10n): Adaptación de la aplicación a un idioma y región específicos.
  2. Traducción: Proceso de convertir el texto de la aplicación a diferentes idiomas.
  3. Marcado de texto: Identificación de texto que necesita ser traducido.
  4. 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.

ng add @angular/localize

Paso 2: Marcado de Texto para Traducción

Utiliza el marcador i18n en tus plantillas HTML para identificar el texto que necesita ser traducido.

<h1 i18n="@@welcomeMessage">Welcome to our application!</h1>

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.

ng extract-i18n

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:

ng build --localize

Esto generará una versión de la aplicación para cada idioma configurado.

Ejemplo Práctico

Paso 1: Marcado de Texto

<p i18n="@@greeting">Hello, how are you?</p>

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

ng build --localize

Ejercicio Práctico

Ejercicio

  1. Marca el siguiente texto en tu aplicación Angular para traducción:

    <p i18n="@@farewellMessage">Goodbye and see you soon!</p>
    
  2. Genera el archivo de mensajes y crea una traducción al francés (fr).

  3. Configura angular.json para incluir el nuevo idioma.

  4. Construye la aplicación para el idioma francés.

Solución

  1. Marcado de Texto:

    <p i18n="@@farewellMessage">Goodbye and see you soon!</p>
    
  2. 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>
    
  3. Configuración en angular.json:

    "projects": {
      "your-project-name": {
        "i18n": {
          "sourceLocale": "en",
          "locales": {
            "fr": "src/locale/messages.fr.xlf"
          }
        }
      }
    }
    
  4. 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

Módulo 2: Conceptos Básicos de TypeScript

Módulo 3: Componentes y Plantillas

Módulo 4: Directivas y Pipes

Módulo 5: Servicios e Inyección de Dependencias

Módulo 6: Enrutamiento y Navegación

Módulo 7: Formularios en Angular

Módulo 8: Cliente HTTP y Observables

Módulo 9: Gestión de Estado

Módulo 10: Pruebas en Angular

Módulo 11: Temas Avanzados

Módulo 12: Despliegue y Mejores Prácticas

© Copyright 2024. Todos los derechos reservados