我正在做一个Nuxt.js项目,它使用@ nuxtjs/i18n模块实现了国际化(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...
});

我已try 清除浏览器cookie,判断浏览器语言设置,并验证没有冲突的设置或中间件影响路由行为,但问题仍然存在.

关于如何直接在默认区域设置中提供页面而不重定向到区域设置前缀的URL有什么 idea ?

推荐答案

你需要学习more about strategies.在你的例子中,你应该用strategy: 'prefix_and_default'替换strategy: 'prefix',这意味着:

...你会得到每种语言都有前缀的URL,但 默认语言也将有一个非前缀版本(尽管, 前缀版本将首选当detectBrowserLanguage 启用).

Vue.js相关问答推荐

当props 的值改变时如何更新类'

Vuetify 3 v-radio-group 将模型设置为 null

vue3 输入标签给出错误 Vue.use 不是函数

Vue Js Composition Api 未定义(读取名称)

将媒体源/流绑定到视频元素 - Vue 3 组合 API

在 Vuex 的状态下动态创建一个响应式数组

在 VueJS 中存储图像的正确位置是什么 - 公共文件夹或assets文件夹?

Vuejs中的条件a href

查看 cli3 启用 CORS

ECMA6 中 nameFunction() {} 和 nameFunction () => {} 的区别

如何有条件地更改 vue/vuetify 文本字段 colored颜色

将自定义部分添加到 v-autocomplete 下拉列表

如何在 NPM 上创建和发布 Vuejs 组件

Vue.js 处理多次点击事件

'不提供名为'createRouter'的导出'' vue 3、vite 和 vue-router

如何在 vue.js 2 上循环对象观察者?

Axios 请求拦截器在我的 vue 应用程序中不起作用

IOS在输入焦点上显示键盘

Axios 捕获错误请求失败,状态码 404

为什么 router.currentRoute.path 没有react?