【问题标题】:Parametrised formatting of linked locale messages in Vue's i18nVue i18n 中链接区域设置消息的参数化格式
【发布时间】:2020-09-15 13:30:14
【问题描述】:

我想用参数链接 vue-i18n 中的语言环境消息。 例如,当我有这样的本地化文件时:

{
  "next": "Next step {step+1}: @:steps[{step}]",
  "steps": [
    "Welcome",  // 0 
    "Briefing", // 1
    "Finish"    // 2
  ]
}

我想这样使用它:

$t('next', { step: '1' }) 

// which should result in: "Next step 2: Briefing"
// but instead it leads to: "Next step : Welcome, Briefing, Finish[1]"

有没有可能做到这一点?

【问题讨论】:

    标签: javascript vue.js vuejs2 internationalization vue-i18n


    【解决方案1】:

    您可以在 i18n 文件中使用枚举。这是您可以尝试的快速示例。我将它用于我的一个项目并且它工作正常:

    i18n 文件:

    steps: {
        1: "Welcome",
        2: "Briefing",
        3: "Finish",
    },
    

    稍后您可以通过以下方式访问组件中的枚举:

    {{ $t(`steps.${step}`) }}
    

    其中step 是您要从steps i18n 文件中读取的号码。

    【讨论】:

    • 我明白了,您使用模板字符串首先替换 step 变量以便将正确的字符串传递给 i18n?整洁的!但这只是一种解决方法,因为此代码仅在 JS 环境中有效,而不能直接在本地化文件中。
    • @winklerrr..我在本地化文件中有我的steps 数组。也许我不明白这个问题。对不起我的错!
    • 没问题,您的解决方案已经让我更进一步!谢谢!
    猜你喜欢
    • 1970-01-01
    • 2021-05-24
    • 1970-01-01
    • 1970-01-01
    • 2011-10-24
    • 2015-09-16
    • 2016-07-08
    • 2014-12-23
    • 1970-01-01
    相关资源
    最近更新 更多