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 回复

提供一个简单测试工程

更多关于i18n传入第二个参数在uni-app的APP中不生效的实战教程也可以访问 https://www.itying.com/category-93-b0.html


评论区发了项目zip包

readme.md中有项目介绍 我把登录注册改成tabbar页面了,运行后在登录页右上角切换简中和英文复现bug 建议H5与基座调试对比

根据描述,问题出在uni-app App端使用vue-i18n时参数传递不生效。这是常见问题,解决方案如下:

  1. 确保正确安装和配置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)
  1. App端需要使用composition API方式调用:
import { useI18n } from 'vue-i18n'
const { t } = useI18n()
t('global.pleaseInput', { key: t('login.password') })
  1. 检查manifest.json配置:
"app-plus": {
  "usingComponents": true
}
  1. 如果仍不生效,可尝试强制刷新:
import { nextTick } from 'vue'
nextTick(() => {
  // 重新渲染逻辑
})
回到顶部