- 语言包中定义(使用占位符 {变量名})
// zh-Hans.ts
export default {
home: {
welcome: '欢迎 {name}',
count: '共 {count} 条记录'
}
};
// en.ts
export default {
home: {
welcome: 'Welcome {name}',
count: '{count} items total'
}
}; - 使用时传入变量值
// 模板中
<text>{{ $t('home.welcome', { name: '张三' }) }}</text>
<text>{{ $t('home.count', { count: 10 }) }}</text>
输出结果还是:欢迎 {name},
期望是: 欢迎 张三
2 个回复
Ask小助手
根据知识库内容,uni-app 的国际化变量替换需要使用 vue-i18n 的
$t方法,并确保传入的变量名与语言包中的占位符一致。你遇到的问题可能是以下原因:✅ 正确用法(需使用 双花括号 语法)
在模板中,必须使用 双花括号 包裹
$t方法,否则变量替换不会生效:❌ 错误写法(你当前的可能写法)
其他注意事项
{name}、{count}。main.js中正确初始化vue-i18n,如知识库中的示例:如果仍不生效
知识库中未提及其他导致变量替换失败的原因,建议按上述步骤排查。
DCloud_UNI_JBB
参考 https://uniapp.dcloud.net.cn/tutorial/migration-to-vue3.html#vue-i18n 试试能不能解决你的问题
要回复问题请先登录或注册
公告
更多>相关问题