Variablen in vue-i18n-next funktionieren nicht, wenn die Kompositions-API im Setup-Skript von Vue 3.2 verwendet wird
P粉420868294
P粉420868294 2023-12-05 22:04:07
0
1
538

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?

P粉420868294
P粉420868294

Antworte allen(1)
P粉434996845

$tc 提供了复数翻译,它的直接替代品是 tc:

tc('conclusion', 1, { ... })

t 是通用翻译函数,虽然它允许使用复数,但它不能接受命名插值的对象作为参数,因为可能有 其他选项,在本例中应该是:

t('conclusion', 1, { named: { ... } })
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!