使用旧包kazupon/vue-i18n https://github.com/kazupon/vue-i18n,以下应该是可能的:
$t(key, locale)
使用后继包时intlify/vue-i18n-next https://github.com/intlify/vue-i18n-next,答案取决于你是否使用 Vue I18n 的旧版 API或较新的合成API:
Using 旧版 API正如正常情况下所描述的设置指南 https://vue-i18n.intlify.dev/guide/的用法t()
功能已说明here https://vue-i18n.intlify.dev/api/legacy.html#vuei18ntranslation.
这意味着您仍然可以使用以下调用将密钥转换为特定区域设置(例如“fr”):
$t(key, locale)
Example:
$t('message.key', 'fr')
使用合成API通过致电createI18n()
与选项legacy: false
(如所描述的here https://vue-i18n.intlify.dev/guide/advanced/composition.html), 的用法t()
功能与所述不同here https://vue-i18n.intlify.dev/api/composition.html#composertranslation。您不能再将区域设置字符串作为第二个参数传递,但区域设置可以在TranslateOptions object https://vue-i18n.intlify.dev/api/general.html#translateoptions。不幸的是,这儿没有t(key,TranslateOptions
) 变体,但仅限以下变体:
$t(key, plural, TranslateOptions)
$t(key, defaultMsg, TranslateOptions)
$t(key, interpolations, TranslateOptions)
所以最简单的解决方案是例如:
$t('message.key', 1, { locale: 'fr' })