Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

415
Vistas
Manera correcta de manejar el cambio de idioma en angular

Agregué internacionalización (i18n) a mi aplicación angular. Y quiero que funcione de esta manera:

  • Cuando el usuario visita el componente de inicio: localhost:4200/ . Detecto la configuración regional de localStorage y la agrego a la URL existente en la carga del componente. Para que la URL final sea algo así como localhost:4200/detectedLocale (por ejemplo: localhost:4200/en/ )

  • También quiero implementar el cambio entre idiomas. Entonces, cuando un usuario selecciona un nuevo idioma desde el selector de idioma, la URL se cambia, por ejemplo, de localhost:4200/fr/ a localhost:4200/en/

Para eso he usado window.location.pathname = '/' + selectedLocale . Para que todo el nombre de la ruta se sobrescriba.

Esto funcionó bien en el modo de desarrollo. Sin embargo, tuve algunos problemas con la implementación de la aplicación angular en otro servidor backend.

El enrutamiento del servidor backend es algo como lo siguiente:

  • /api : para el resto de llamadas (cosas de backend)
  • /frontend : para la aplicación angular incrustada

Creé mi aplicación angular usando ng build y especifiqué la frontend como base href .

Ahora, cuando ejecuto el servidor backend y presiono http://host/frontend/ , el componente de inicio se carga y luego se me redirige a http://host/language cosa que no quiero que suceda.

Supongo que es debido a la cosa window.location.pathname = '/' + selectedLocale . (Igual al cambiar de idioma).

Cómo puedo arreglar esto ? ¿Hay alguna alternativa a window.location.pathname ? Como una forma adecuada de agregar el idioma a la URL en angular teniendo en cuenta el prefijo (base href) y sin sobrescribir todo.

Tenga en cuenta también que estoy agregando esto en mi módulo de aplicación:

 { provide: APP_BASE_HREF, useValue: '/' + extractedLanguage },

Algunas ideas ? Gracias por tu ayuda.

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda