l***@163.com
l***@163.com
  • 发布:2022-04-19 10:38
  • 更新:2024-07-23 16:01
  • 阅读:2239

国际化 vue-i18n v9 $t()格式化无效

分类:uni-app

1、使用vue3/vite创建项目(typescript版本)
2、项目中引入vue-i18n v9版本
3、创建相应的多语言文件和vue文件
4、执行npm run dev:mp-weixin

多语言文件: hello: '{0} world'  
vue: <p>{{ $t('hello', ['hello']) }}</p>

预期结果: hello world
实际结果: {0} world

2022-04-19 10:38 负责人:无 分享
已邀请:
DCloud_UNI_FXY

DCloud_UNI_FXY

因运行平台限制,目前在小程序和App端不支持插值方式定义国际化
需要使用 Messages Functions 定义国际化信息,参考文档:https://vue-i18n.intlify.dev/guide/advanced/function.html
示例:

export default {  
    hello: ({ list }) => `${list(0)} world`,  
    test: '你好'  
}  
  • 1***@163.com

    使用 消息模式,引入的语言包必须为 js文件, 但是 page.json 里面的 tabBar %tabbar.home% 语法 必须只有json文件才能正确翻译,两者之间有冲突。

    2022-09-20 11:54

  • x***@foxmail.com

    回复 1***@163.com: 请问最后有什么解决方法吗

    2023-06-14 15:42

  • 还行还行

    https://vue-i18n.intlify.dev/guide/advanced/optimization.html#jit-compilation

    vue-i18n 9.3版本加了JIT功能,升级能解决插值问题吗?不能用json格式的翻译文件还是很不方便的,各种i18n工具对js格式的翻译文件支持都有限。

    2024-10-11 12:01

l***@163.com

l***@163.com (作者)

有人遇到过这个问题么

  • j***@qq.com

    太坑了,我今天也遇到了,找了半天原因

    2023-02-28 15:44

DCloud_UNI_FXY

DCloud_UNI_FXY

发测试工程

l***@163.com

l***@163.com (作者)

问题复现demo如附件所示

x***@foxmail.com

x***@foxmail.com

请问最后有什么解决方法吗

1***@qq.com

1***@qq.com

<i18n-t>、<i18n-n> 组件也是用不了

要回复问题请先登录注册