i18n传入第二个参数在uni-app的APP中不生效
i18n传入第二个参数在uni-app的APP中不生效
项目信息 | 详情 |
---|---|
产品分类 | uniapp/App |
PC开发环境 | Windows |
PC开发环境版本 | window11 |
HBuilderX类型 | 正式 |
HBuilderX版本 | 4.45 |
手机系统 | Android |
手机系统版本 | Android 13 |
手机厂商 | 小米 |
手机机型 | 红米K40 |
页面类型 | vue |
vue版本 | vue3 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
示例代码:
{
"global.pleaseInput": "请输入{key}"
},
"login.password": "密码"
$t('global.pleaseInput', { key: $t('login.password') })
操作步骤:
使用i18n后云打包,进入APP后即可
预期结果:
可查看附件
实际结果:
可查看附件
bug描述:
使用vue-i18n运行h5时可正常显示$t的第二个参数,在APP中不生效
更多关于i18n传入第二个参数在uni-app的APP中不生效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
5 回复
评论区发了项目zip包
readme.md中有项目介绍
我把登录注册改成tabbar页面了,运行后在登录页右上角切换简中和英文复现bug
建议H5与基座调试对比
根据描述,问题出在uni-app App端使用vue-i18n时参数传递不生效。这是常见问题,解决方案如下:
- 确保正确安装和配置vue-i18n:
// main.js
import { createI18n } from 'vue-i18n'
const i18n = createI18n({
legacy: false,
locale: 'zh',
messages: {
zh: {
global: {
pleaseInput: '请输入{key}'
},
login: {
password: '密码'
}
}
}
})
app.use(i18n)
- App端需要使用composition API方式调用:
import { useI18n } from 'vue-i18n'
const { t } = useI18n()
t('global.pleaseInput', { key: t('login.password') })
- 检查manifest.json配置:
"app-plus": {
"usingComponents": true
}
- 如果仍不生效,可尝试强制刷新:
import { nextTick } from 'vue'
nextTick(() => {
// 重新渲染逻辑
})