Im Vue 3.2-Projekt verwende ich die vue-i18n-next
v9、composition api
和 <script setup>
-Methode.
Ich versuche, eine Übersetzungsnachricht mit einigen durch {}'s
gekennzeichneten Variablen zu erstellen. Zum Beispiel
export default { conclusion: `After reviewing the above invoices, it was found that there is currently a difference of about {total_difference} in your {advantage_type} on the whole of these invoices.` }
Meine Vue-Komponente sieht so aus:
<script setup> import { ref } from 'vue'; import { useI18n } from 'vue-i18n'; import { getHumanPrice } from '@/utils/helpers'; const { t } = useI18n(); const total_difference = ref(2000); const conclusion = computed(() => { return t('conclusion', 1, { total_difference: total_difference.value advantage_type: total_difference.value >= 0 ? t('advantage', 1).toLowerCase() : t('disadvantage', 1).toLowerCase(), }); }); </script>
Das Ergebnis ist ein String ohne variablen Teil 查看上述发票后发现,目前这些发票整体上与您的
Es besteht ein Unterschied von ca.
Bei der Verwendung des Vue-i18n-next-Pakets und der Optionen-API in Vue 2 gab es bisher keine Probleme und Zeichenfolgen und Variablen wurden korrekt gebildet. Der Code sieht so aus:
<script> export default: { data() { return { total_difference: 2000, } }, computed: { conclusion() { return this.$tc('conclusion', 1, { total_difference: this.$filters.getHumanPrice(this.total_difference, 2), advantage_type: this.total_difference >= 0 ? t('advantage', 1).toLowerCase() : t('disadvantage', 1).toLowerCase(), }); }, } } </script>
Die Ausgabe ist 查看上述发票后,发现目前您在这些发票整体上的优势存在约 00,00 的差异。
Irgendeine Idee, was sich an den Combine-API-Methoden geändert hat oder was ich möglicherweise falsch mache?
$tc
提供了复数翻译,它的直接替代品是tc
:t
是通用翻译函数,虽然它允许使用复数,但它不能接受命名插值的对象作为参数,因为可能有 其他选项,在本例中应该是: