javascript - 如何在 Vuejs 中的某些特定文本(变量)中强制翻译 i18n

标签 javascript python vue.js internationalization vue-i18n

在正常情况下,我们只是将翻译属性附加到变量,如 :

this.name = this.$t('language.name');

但我想在某个时候用一种特定的语言来具体说明它(例如:法语)。 我们可以在 vue.js 中做这样的事情吗?

this.name = this.$t('language.name', locale: fr);

最佳答案

使用旧包kazupon/vue-i18n ,以下应该是可能的:

$t(key, locale)

使用后继包时 intlify/vue-i18n-next ,答案取决于您使用的是 Vue I18n 的 Legacy API 还是较新的 Composition API:


按照正常 setup guide 中所述使用旧版 API t() 函数的用法说明了 here .

这意味着您仍然可以使用以下调用将 key 转换为特定语言环境(例如“fr”):

$t(key, locale)

例子:

$t('message.key', 'fr')

通过调用带有选项 legacy: falsecreateI18n() 使用 Composition API(如 here 所述),用法t() 函数与所述不同 here .您不能再将 locale-string 作为第二个参数传递,但是 locale 可以在 TranslateOptions object 中传递.不幸的是,没有 t(key,TranslateOptions) 变体,只有以下变体:

$t(key, plural, TranslateOptions)
$t(key, defaultMsg, TranslateOptions)
$t(key, interpolations, TranslateOptions)

所以最简单的解决方案是例如:

$t('message.key', 1, { locale: 'fr' })

关于javascript - 如何在 Vuejs 中的某些特定文本(变量)中强制翻译 i18n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68434953/

相关文章:

javascript - 读取 .json 文件并解析其数据?

javascript - 表达sendFile函数

Python Pandas - 检查子字符串包含并将新列设置为子字符串

javascript - Laravel Blade @foreach 中的 Vue.js v-model 多文本输入问题

JavaScript 正则表达式替换多个字母

javascript - WebRTC 到 Node.JS 服务器并作为 RTP 传输

用于使用 Pandas 导入 .csv to_sql 的 Python 脚本失败,除非我 DROP TRIGGER 更新物化 View

python - 如何在 python 中创建矩阵计算类?

javascript - 为什么 Vue DOM 变化这么慢?

laravel-5 - 单击浏览器的后退 <- 按钮时,Json 将显示在 Vue 组件上