1***@qq.com
1***@qq.com
  • 发布:2023-08-26 10:11
  • 更新:2025-02-05 16:58
  • 阅读:1443

vue-i18n 国际化中使用变量,但是传入的参数不生效

分类:uni-app

我正在使用vue-i18n进行国际化,我这里在模板中使用了变量。但是给变量赋值后,却没有成功。

我是用的Vue3编译,使用了组合式API

2023-08-26 10:11 负责人:无 分享
已邀请:
w***@163.com

w***@163.com

我觉得你不需要这样用变量。可以这样:
"resize.left":"向左移动“

derectionStr = t('resize.left') + this.distance + 'mm'

  • 1***@qq.com (作者)

    有些国家的语言风格可不是这样的

    例如:

    希伯来语:הועלה 10 מ"מ

    土耳其:10 mm yukarı taşındı

    俄语:Перемещено вверх на 10 мм

    总不能每种语言我都要看他的格式怎么书写吧

    2023-08-26 11:04

  • kasnti

    回复 1***@qq.com: 我写了一个思路,可以参考看下 https://www.cnblogs.com/kasnti/p/18148455

    2024-04-21 00:51

1***@qq.com

1***@qq.com - 90后IT男

请问解决了吗?

  • 1***@qq.com (作者)

    没有,目前就是把字符串分开翻译,然后在拼接在一块。

    2023-10-28 15:02

  • kasnti

    我写了一个思路,可以参考看下 https://www.cnblogs.com/kasnti/p/18148455

    2024-04-21 00:52

  • 5***@qq.com

    回复 kasnti: 非常好的思路,很有用

    2024-05-20 18:43

9***@qq.com

9***@qq.com

"error_msg_too_many_times": "操作太频繁,请%time%后再试"

  • 9***@qq.com

    t("error_msg_too_many_times").replace(

    /%.*%/,

    "120" + t("minute")

    )

    2024-10-10 13:34

7***@qq.com

7***@qq.com

请问解决了吗

  • a***@yeah.net

    解决了 重新一下t方法把这个替换方法加上就好了

    2025-04-12 17:34

  • 7***@qq.com

    回复 a***@yeah.net: 不用,就是VUE3 语法使用方法不一样,哎,折磨了我好久

    2025-05-09 01:05

  • 吃了个大香瓜

    回复 7***@qq.com: 请问怎么处理的呢,我使用的是 vue3 ,变量失效啊

    2025-05-09 14:53

  • 7***@qq.com

    回复 吃了个大香瓜: 写法不一样,我给你个示例,我项目中正在用的。

    time: {

    justNow: '刚刚',

    minutesAgo: ({ list }) => ${list(0)}分钟前,

    today: ({ list }) => 今天 ${list(0)}:${list(1)},

    yesterday: ({ list }) => 昨天 ${list(0)}:${list(1)},

    monthDay: ({ list }) => ${list(0)}月${list(1)}日 ${list(2)}:${list(3)},

    yearMonthDay: ({ list }) => ${list(0)}年${list(1)}月${list(2)}日 ${list(3)}:${list(4)}

    },

    2025-05-18 13:03

  • 7***@qq.com

    回复 7***@qq.com: i18n.t('time.minutesAgo', {

    minutes: Math.floor(timestampDiff / 60),

    locale

    });

    2025-05-18 13:06

要回复问题请先登录注册