You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Vue.js搭建可扩展多语言站点的方案、插件及路由配置咨询

Vue.js 多语言站点高效实现方案

核心依赖选择

使用vue-i18n作为多语言处理插件,是Vue官方维护的标准多语言解决方案,可实现单套视图适配所有语言,无需为不同语言创建重复组件。

路由优化方案

废弃按语言单独配置路由的模式,改为动态语言前缀参数的路由规则,所有语言复用同一业务组件:

// 路由index.js 优化后配置
const routes = [
  {
    path: '/:lang/display-page',
    name: 'Display',
    component: Display, // 仅需维护1份通用Display组件
    meta: {
      requiresAuth: true
    }
  }
]

// 新增全局路由守卫,自动同步语言配置
router.beforeEach((to, from, next) => {
  const supportLangs = ['en', 'zh', 'ja'] // 可按需扩展支持的语言列表
  const currentLang = to.params.lang
  if (supportLangs.includes(currentLang)) {
    // 同步切换i18n当前生效语言
    i18n.global.locale.value = currentLang
    next()
  } else {
    // 未匹配到支持语言时跳转默认英文页面
    next('/en/display-page')
  }
})

vue-i18n 配置示例

// 新建i18n/index.js配置文件
import { createI18n } from 'vue-i18n'

// 统一管理所有多语言文案,新增语言仅需在此处添加对应配置项
const messages = {
  en: {
    menu: {
      englishEntry: 'English',
      switchLangPage: 'Switch Language Page'
    }
  },
  zh: {
    menu: {
      englishEntry: '英文',
      switchLangPage: '切换语言页面'
    }
  }
}

const i18n = createI18n({
  legacy: false, // Vue3 组合式API场景需关闭legacy模式
  locale: 'en', // 站点默认语言
  messages
})

export default i18n
// 完成配置后在main.js中通过app.use(i18n)注册即可全局使用
<v-list-item>
   <v-list-item-title>{{ $t('menu.englishEntry') }}</v-list-item-title>
</v-list-item>
<v-list-item>
<v-list-item-title>
 <router-link :to="`/${$i18n.locale === 'en' ? 'zh' : 'en'}/display-page`">
   {{ $t('menu.switchLangPage') }}
 </router-link>
</v-list-item-title>

日常使用规则

所有业务组件中的文案不要写死静态内容,统一使用$t('配置项key')的方式渲染,切换路由中的lang参数时会自动加载对应语言的文案,无需修改组件逻辑。后续新增语言仅需在messages配置中新增对应语言的文案包即可,扩展成本极低。

内容的提问来源于stack exchange,提问作者Bismark Asiedu Asante

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 23:45:01