Я работаю над проектом Nuxt.js с интернационализацией (i18n), реализованной с использованием модуля @nuxtjs/i18n. Я хочу обслуживать страницы на французском языке (язык по умолчанию) напрямую, без перенаправления на /fr/..., если в URL-адресе не указан конкретный языковой стандарт (например, при доступе к /place страница должна обслуживаться на французском языке без перенаправления на /fr/place) . Однако, несмотря на мою конфигурацию, перенаправление все равно происходит.
Вот моя конфигурация nuxt.config.ts:
import { defineNuxtConfig } from 'nuxt/config'
export default defineNuxtConfig({
// Other configurations...
i18n: {
detectBrowserLanguage: {
useCookie: true,
cookieCrossOrigin: true,
cookieKey: 'i18n_redirected',
redirectOn: 'root'
},
strategy: 'prefix',
locales: [
{ name: 'English', code: 'en', iso: 'en-US', dir: 'ltr', file: 'en.json' },
{ name: 'Français', code: 'fr', iso: 'fr-FR', dir: 'ltr', file: 'fr.json' },
{ name: 'العربية', code: 'ar', iso: 'ar-AR', dir: 'rtl', file: 'ar.json' },
],
defaultLocale: 'fr',
vueI18n: './i18n.config.ts'
},
// Other configurations...
});
Я попытался очистить файлы cookie браузера, проверить языковые настройки браузера и убедиться в отсутствии конфликтующих настроек или промежуточного программного обеспечения, влияющих на поведение маршрутизации, но проблема не устранена.
Есть идеи, как обслуживать страницы в локали по умолчанию напрямую, без перенаправления на URL-адрес с префиксом локали?





Вам нужно узнать больше о стратегиях. В вашем случае вам следует заменить strategy: 'prefix' на strategy: 'prefix_and_default', что означает, что:
... вы получите URL-адреса с префиксами для каждого языка, но URL-адреса для язык по умолчанию также будет иметь версию без префикса (хотя версия с префиксом будет предпочтительнее, если для обнаруженияBrowserLanguage задано значение включено).