我无法使用插件 i18n

问题描述 投票:0回答:1

我遇到的问题是:我正在为我的网站使用国际化,并且我有两种语言:ro-RO(默认语言)和 en-US。对于包含 '/admin' 的路由,我需要删除由于配置:策略:'前缀'而放置在那里的自动 ro。文档中有一些内容,但我查看了配置文件,该选项已被删除(更准确地说是 parsePages)。

这是我的 nuxt.config.ts :

import { en, ro } from "vuetify/locale";

// https://nuxt.com/docs/api/configuration/nuxt-config
export default defineNuxtConfig({
  modules: [
    '@pinia/nuxt',
    'pinia-plugin-persistedstate/nuxt',
  ],
  $development: {
    devServer: {
      host: '0.0.0.0', // Listen on all network interfaces
      port: 3000, // Optional: Specify a port, default is 3000
    },
    modules: [
      '@pinia/nuxt',
      'pinia-plugin-persistedstate/nuxt',
      '@nuxtjs/i18n',
    ],
    i18n: {
      lazy: true,
      langDir : "locales/",
      strategy : "prefix",
      baseUrl : 'http://localhost:3000/',
      detectBrowserLanguage: {
        useCookie: true,
        cookieKey: 'i18n_redirected',
        redirectOn: 'root',
        alwaysRedirect: true,
      },
      pages: {
        '/admin/login':{
          en : '/admin/login',
          ro : '/admin/login',
        }
      },
      locales : [
        {
          code: 'en',
          name: "English(US)",
          language : 'en-US',
          file : "en-US.json"
        },
        {
          code : 'ro',
          language : 'ro-RO',
          name : "Romania(ROU)",
          file: "ro-RO.json",
        }
      ],
      defaultLocale: "ro",
    },
    routeRules: {
      '/admin/**' : {ssr: false },
      'user/profile' : {ssr: false},
      '/user/profile/**' : {ssr: false}
    },
    build: {
      transpile: ['vuetify'],
    },
    ssr: true,
    compatibilityDate: '2024-04-03',
    devtools: { enabled: true },
    plugins: [
      '~/plugins/SweetAlert.js',
      '~/plugins/vuetify.js',
      '~/plugins/emitter.js',
    ],
    css: [
      'bootstrap/dist/css/bootstrap.min.css',
      '@mdi/font/css/materialdesignicons.css', 
    ]
  },
  routeRules: {
    '/admin/**' : {ssr: false},
    'user/profile' : {ssr: false},
    '/user/profile/**' : {ssr: false}
  },
  build: {
    transpile: ['vuetify'],
  },
  ssr: true,
  compatibilityDate: '2024-04-03',
  devtools: { enabled: true },
  plugins: [
    '~/plugins/SweetAlert.js',
    '~/plugins/vuetify.js',
    '~/plugins/emitter.js',
  ],
  css: [
    'bootstrap/dist/css/bootstrap.min.css',
    '@mdi/font/css/materialdesignicons.css', 
  ]
})

如何做到这一点?

vue.js nuxt.js nuxt-i18n
1个回答
0
投票

您可以使用页面选项来指定例外,就像您对 /admin/login 所做的那样。但是,由于 parsePages 选项被删除,因此您需要通过 nuxt.config.ts 配置文件中的extendRoutes 手动管理路由配置。

extendRoutes(routes, resolve) {
routes.push({
  path: '/admin/:pathMatch(.*)*',
  component: resolve(__dirname, 'pages/admin.vue'),
  name: 'admin',
  meta: { skipPrefix: true },
});

},

© www.soinside.com 2019 - 2024. All rights reserved.