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

Vue-i18n:如何为格式化变量设置默认值以省略传参?

为Vue-i18n占位符设置默认值

你可以通过两种方式实现无需传入参数就能使用默认值的需求:

方法一:直接在消息定义中指定默认值

Vue-i18n支持在占位符语法里直接设置默认值,格式为{占位符=默认值}。修改你的国际化配置如下:

const messages = {
  en: {
    message: {
      hello: '{msg="hello"} world'
    }
  }
}

之后直接调用$t('message.hello')就能得到hello world,无需传入第二个参数。如果需要覆盖默认值,依然可以正常传参:$t('message.hello', { msg: 'hi' })会输出hi world。

方法二:包装$t函数实现全局默认值

如果需要对多个占位符统一设置默认逻辑,或者默认值需要动态生成,可以包装原有的$t方法:

在Vue项目的入口文件(比如main.js)中添加如下代码:

// 假设已经初始化好了i18n实例
import i18n from './i18n'

// 保存原有的$t方法
const originalT = i18n.global.t

// 包装新的t方法,注入默认参数
i18n.global.t = function (key, options = {}) {
  // 为指定key设置默认值
  if (key === 'message.hello') {
    options = { msg: 'hello', ...options }
  }
  // 这里可以添加更多key的默认值逻辑
  return originalT.call(this, key, options)
}

这样在模板中直接调用$t('message.hello')就会自动使用默认的msg值,同时也支持传入参数覆盖默认值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 04:20:27