i18n icon indicating copy to clipboard operation
i18n copied to clipboard

Support different domains config at runtime

Open bcadu opened this issue 2 years ago • 10 comments

Environment

  • Operating System: Linux
  • Node Version: v18.14.2
  • Nuxt Version: 3.8.2
  • CLI Version: 3.10.0
  • Nitro Version: 2.8.1
  • Package Manager: [email protected]
  • Builder: -
  • User Config: devtools, modules, pages, runtimeConfig, i18n
  • Runtime Modules: @nuxtjs/[email protected]
  • Build Modules: -

Reproduction

The code https://stackblitz.com/edit/nuxt-starter-lm7gng

And a minimal Apache configuration

<VirtualHost *:443>
    
    ServerName fr.localhost
    
    ServerAlias fr.localhost2
    ServerAlias en.localhost
    ServerAlias es.localhost
    
    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/localhost.crt
    SSLCertificateKeyFile /etc/ssl/certs/localhost.key
    
    ProxyPass / http://localhost:3000/
    ProxyPassReverse / http://localhost:3000/
</VirtualHost>

Describe the bug

I'm encountering an issue with the Nuxt i18n module where its behavior differs between the development and production environments, specifically after a single build process.

Development Environment:

  • The module functions as expected, aligning with the values set in the .env file.

Production Environment:

  • After building the project, I observed two different behaviors based on how the application is started:

    1. First Start (npm run start):

      • The application behaves as expected. The default domain value from the build process is utilized.
        {
            code: "fr",
            domain: process.env.NUXT_PUBLIC_I18N_LOCALES_FR_DOMAIN || "fr.localhost",
            file: "fr-FR.json",
        }
        
        Accessing https://fr.localhost/, the following is displayed:
        • Index Page
        • "Bienvenue"
        • Locale: fr
        • Site name: My Site Name
    2. Second Start (npm run start:2):

      • When accessed via https://fr.localhost2/, the results are inconsistent:
        • Index Page
        • "Welcome"
        • Locale: en (unexpectedly switches to the default locale)
        • Site name: My Site Name 2

      In this case, while the NUXT_PUBLIC_SITE_NAME variable is correctly recognized at runtime, the NUXT_PUBLIC_I18N_LOCALES_FR_DOMAIN variable is not, and the application defaults to the default locale.

I suspect there might be an issue with how the i18n module handles domain values in production, particularly after the initial build. Any insights or suggestions on resolving this discrepancy would be greatly appreciated.

Additional context

No response

Logs

No response

bcadu avatar Dec 06 '23 16:12 bcadu

Hi all, Agree with @bcadu, hosting on different domains using process.env variables doesn't work. By adding domains in runtimeConfig, it seems that NuxtLinks are well updated but hosting directly on the runtimeConfig domain does not work. https://github.com/nuxt-modules/i18n/blob/main/specs/different_domains.spec.ts#L121 => Serving on "kr.staging.nuxt-app.localhost" does not work. Thanks :)

melaniehuet avatar Jan 04 '24 14:01 melaniehuet

I coded the fix + tests but I'm unable to push my branch to the repository. @rchl do I need any permissions for this?

existe-deja avatar Feb 20 '24 17:02 existe-deja

Hi @existe-deja, We're also waiting for a patch for this feature, which we absolutely need. Would it be possible to get yours? Thanks

bcadu avatar Apr 11 '24 15:04 bcadu

Hi All, Agree with @melaniehuet , I'm also trying to host on different domain for me the env variables are recognized as domain names but I still get language prefixes for all other languages than the default one. I have also tried to use 'no_prefix' strategy but that one is buggy when it is together with differentDomains: true, so it cannot be used. Looking forward for the patch, thank you in advance

patrob1 avatar May 03 '24 07:05 patrob1

Hello, We're also looking forward to this feature working as intended :) We look forward to the patch. Thanks

nezaBacar avatar Jun 14 '24 09:06 nezaBacar

Any update on this?

OlePc avatar Jul 03 '24 07:07 OlePc

I coded the fix + tests but I'm unable to push my branch to the repository. @rchl do I need any permissions for this?

You probably need to fork the project, and submit a PR after adding your fix. Can I see your fix anywhere?

OlePc avatar Jul 03 '24 07:07 OlePc

any update or maybe workaround?

Belorusov avatar Aug 21 '24 10:08 Belorusov

none that I'm aware of.. still waiting for these domains issues to be resolved

cernymatej avatar Aug 21 '24 10:08 cernymatej

fyi: NUXT_PUBLIC_I18N_BASE_URL not works in runtime too

Belorusov avatar Aug 23 '24 09:08 Belorusov

Any update or workaround for this issue?

EfeErdem7 avatar Dec 26 '24 07:12 EfeErdem7

I didn't manage to update my fix on time. Now there is a v9 version so it needs to be tested and fixed if it's still broken

existe-deja avatar Jan 15 '25 14:01 existe-deja