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

Nuxt 3中@nuxtjs/i18n如何原样获取翻译文件中的数组?

解决Nuxt3 @nuxtjs/i18n无法获取原始数组/对象翻译的问题

在Nuxt3的@nuxtjs/i18n中,$tm方法的设计目标是解析包含插值、复数等动态语法的翻译消息,返回的是编译后的AST结构,这和Nuxt2中$t直接返回原始数据的行为不同。要获取翻译文档中的原始数组或对象,你可以用以下两种方式:

方法1:使用getMessage方法

通过useI18n组合式函数提供的getMessage接口,直接获取当前语言下的原始翻译值:

<script setup>
const { getMessage } = useI18n()
// 假设你的翻译键是 'demo.array'
const targetArray = getMessage('demo.array')
// 对于对象同样适用
const targetObject = getMessage('demo.object')
</script>

方法2:直接访问messages对象

如果你需要指定语言获取,或者更直接地访问原始翻译数据,可以直接操作messages对象:

<script setup>
const { locale, messages } = useI18n()
// 获取当前语言的数组
const currentLangArray = messages.value[locale.value]['demo.array']
// 也可以指定特定语言,比如英文
const enArray = messages.value.en['demo.array']
</script>

注意事项

  • 确保你的翻译文件中对应的键值确实是数组或对象类型,没有混入需要编译的语法(比如{xxx}插值)。
  • 如果你的翻译项同时包含动态语法和数组结构,建议单独拆分静态结构和动态内容,避免解析冲突。

内容的提问来源于stack exchange,提问作者Jenos

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 17:12:02