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

Vue I18n复数与链接消息在Heroku生产环境无法解析问题

Nuxt3 + vue-i18n 生产环境(Heroku)复数/链接本地化消息无法解析

开发环境中已成功集成vue-i18n,所有功能运行正常,但部署到Heroku生产环境后,所有使用复数(Pluralization)或链接本地化消息(Linked Locale Messages)的内容均无法被解析,直接显示完整的本地化消息字符串。

技术栈

  • vue-i18n 9.2.2
  • Nuxt3
  • VueJS 3
  • Vite
  • @intlify/unplugin-vue-i18n 插件

相关配置

Nuxt3配置文件(nuxt.config.ts)

import { defineNuxtConfig } from 'nuxt'
import { resolve, dirname } from 'node:path'
import { fileURLToPath } from 'url'
import VueI18nVitePlugin from '@intlify/unplugin-vue-i18n/vite'

export default defineNuxtConfig({
  ...
  vite: {
    plugins: [
      VueI18nVitePlugin({
        include: [
          resolve(dirname(fileURLToPath(import.meta.url)), './locales/*.json')
        ]
      })
    ]
  },
 ...
});

vue-i18n的Nuxt插件(plugins/vue-i18n.ts)

import { createI18n } from 'vue-i18n'
import fr from '~/locales/fr.json'
import en from '~/locales/en.json'

// DOC I18N : https://www.i18next.com/translation-function/essentials
export default defineNuxtPlugin(({ vueApp }) => {
  const i18n = createI18n({
    legacy: false,
    allowComposition: true,
    globalInjection: true,
    locale: 'fr',
    fallbackLocale: 'en',
    messages: { 
      'en': en, 
      'fr': fr, 
    }
  });
  vueApp.use(i18n);
})

本地化文件示例

locales/fr.json

{
  "test": "Zero test | Un test | {n} tests",
  "testnested": {
    "nestedvalue": "Zero sous-test | Un sous-test | {n} sous-tests"
  },
  ...
}

locales/en.json

{
  "test": "Zero test | One test | {n} tests",
  "testnested": {
    "nestedvalue": "Zero sub-test | Un sub-test | {n} sub-tests"
  },
  ...
}

Vue模板使用示例

<p>
  -- TEST ROOT --<br />
  {{ $t('test', 0) }}<br />
  {{ $t('test', 1) }}<br />
  {{ $t('test', 2) }}<br />
  <br />
  -- TEST NESTED --<br />
  {{ $t('testnested.nestedvalue', 0) }}<br />
  {{ $t('testnested.nestedvalue', 1) }}<br />
  {{ $t('testnested.nestedvalue', 2) }}<br />
</p>

本地环境可正常解析复数与链接消息,但部署到Heroku生产环境后,内容直接显示原字符串。已查阅相关旧资料但未找到适配方案,怀疑是Vite打包环节存在问题。

请问我哪里配置出错了?若配置无问题,我应该在vue-i18n仓库还是@intlify/vite-plugin-vue-i18n仓库提交Bug报告?


内容的提问来源于stack exchange,提问作者Guillaume Prévost

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 05:10:32