Tengo un problema con angular v9. He implementado funciones de localización de i18n en mi aplicación. Cuando trato de construir mi aplicación con cierta ubicación, constantemente agrega la subcarpeta a la ruta base href (pero quiero mantener los archivos en la subcarpeta). ¿Hay alguna forma de evitar agregar la configuración regional en la URL base href?
Pasos de reproducción:
ng new Project .ng build --prod --localize .dist/en-us/ , pero index.html tiene <base href="/en-US/"> .¿Hay alguna forma de forzar a angular para que deje de agregar el código de idioma en la base href? Esto hace que todos los enlaces de la aplicación contengan código de idioma, lo cual no es deseado.
Mi implementación está configurada para implementar la aplicación según el directorio en una ubicación diferente, cada una de las cuales estará en la raíz.
/fr//de/Tuve el mismo problema y encontré la solución en este problema:
https://github.com/angular/angular-cli/issues/17260
Tienes que escribir para cada local y para tu sourceLocale el baseHref
"i18n": { "sourceLocale": { "code": "en", "baseHref": "" }, "locales": { "fr": { "baseHref": "", "translation": "src/locale/messages.fr.xlf" } } }Publicando con mi solución, pero eso elimina la nueva característica de Angular v.9.
La solución es no usar --localize .
Así que eliminé la definición:
"i18n": { "sourceLocale": "de", "locales": { "fr": "src/app/locale/messages.fr.xlf", }Luego creé una configuración personalizada en:
"configurations": { "fr": { "i18nFile": "src/app/locale/messages.fr.xlf", "i18nLocale": "fr", "outputPath": "dist/fr" }Y acaba de llamar:
ng build --configuration=frPero eso es feo... así que esperando algunas ideas mejores :)
Puede anular baseHref con esto:
"locales": { "de": { "translation": "src/locale/messages.de.xlf", "baseHref": "/" }, .... }