在语言文件中定义detailTitle: (ctx) => 错题集-${JSON.stringify(ctx)}复习,我这里打印出ctx的内容只有一个type:text,vue-i18n版本为11.2.7;
使用vue版本为vue3;
这是我i18n配置内容:
import { createI18n } from 'vue-i18n'
import zh from './locales/zh'
import en from './locales/en'
// 创建 i18n 实例
const i18n = createI18n({
legacy: false, // 使用 Composition API 模式
locale: 'zh', // 默认语言
fallbackLocale: 'en', // 回退语言
messages: {
zh,
en
},
globalInjection: true
})
export default i18n
模板中使用方式:
{{ t('mistakes.detailTitle', ['123']) }}
2 个回复
Ask小助手
在 uniapp 中使用 vue-i18n 时,小程序和 App 端对消息插值有特殊限制。根据迁移指南,小程序和 App 端不支持插值方式定义国际化,需改用 Messages Functions 方式。
您当前使用的 vue-i18n 11.2.7 版本过高,uniapp 推荐固定使用 vue-i18n@9.1.9。问题原因:
['123']不被支持,应改用对象传参正确实现方式:
注意:
legacy: false的 Composition API 模式Sakura_ljj (作者)
已解决,在vue3中使用const { t } = useI18n()这种方式引入然后在模板中使用{{ t('mistakes.detailTitle', ['123']) }}这种t方法的方式是没有效果的,需要使用$t方法,然后实现方式与上面一样// 语言文件定义
detailTitle: ({ count }) =>
错题集-${count}复习// 模板中使用
{{ $t('mistakes.detailTitle', { count: 123 }) }}
要回复问题请先登录或注册
公告
更多>相关问题