VueI18n 检查翻译是否存在

问题描述 投票:0回答:3

有没有办法检查翻译是否存在?

<p v-if="$t('some_key')">{{ $t('some_key') }}</p>

在这种情况下,如果没有翻译,它将打印

'some_key'
。也许有办法配置全局回退?

vue.js internationalization vue-i18n
3个回答
55
投票

您可以使用

$te
方法。

使用示例:

<p v-if="$te('some_key')">{{ $t('some_key') }}</p>

https://kazupon.github.io/vue-i18n/api/#vue-injected-methods


6
投票
<template>
    <p v-if="te('some_key')">{{ t('some_key') }}</p>
</template>

<script setup>
import { useI18n } from 'vue-i18n';
...
const { t, te } = useI18n();
</script>

1
投票

我对此也很感兴趣,就去查了文档。 上面的选项很好,可能是最好用的,因为当你有很大的翻译文件时,下面的选项可能会变得相当混乱,但它来自 i18n 自身,可能也适用于某些人:

https://www.i18next.com/principles/fallback

其中有一行您可以将键指定为实际的句子。因此,当该键不可用时,该键将变为文本:

i18next.t('没有人说钥匙不能作为后备。')

这“没有人说钥匙不能作为后备。”现在是翻译文件中的密钥,但如果它不存在,它将显示此英文版本。

再次强调,如果您有巨大的翻译文件,因为短键可以使其更好地可读,并且如果有人像这样使用它.. 不要将全文作为键.. 哦,真是一团糟。我应该发布这个吗? :p

© www.soinside.com 2019 - 2024. All rights reserved.