Search code examples
angularangular-i18n

Prevent Angular from updating base href with langcode


I have problem with angular v9. I have implemented i18n localization features into my app. When I try to build my application with certain location it constantly adds the sub-folder to the base href path (but I want to keep files in the sub-folder). Is there any way to prevent adding the locale into the base href url?

Reproduction steps:

  1. Generate dummy project ng new Project.
  2. Build production config ng build --prod --localize.
  3. Files are built into dist/en-us/ folder, but the index.html has <base href="/en-US/">.

Is there any way to force angular to stop adding the langcode into base href? This inflicts all the app links to contain language code, which is unwanted.

My deployment is configured to deploy the application based on the directory into different location which every will be at root.

  • hxxp://app.fr/ root in /fr/ folder
  • hxxp://app.de/ root in /de/ folder

Solution

  • I had the same problem and found the solution in this issue:

    https://github.com/angular/angular-cli/issues/17260

    You have to write for each locales and for your sourceLocale the baseHref

    "i18n": {
        "sourceLocale": {
            "code": "en",
            "baseHref": ""
        },
        "locales": {
            "fr": {
                "baseHref": "",
                "translation": "src/locale/messages.fr.xlf"
            }
        }
    }