recherche

Maison  >  Questions et réponses  >  le corps du texte

Les variables dans vue-i18n-next ne fonctionnent pas lors de l'utilisation de l'API de composition dans le script de configuration de Vue 3.2

Dans le projet vue 3.2, j'utilise la méthode vue-i18n-next v9、composition api<script setup>.

J'essaie de créer un message de traduction en utilisant certaines variables indiquées par {}'s. Par exemple

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.`
}

Mon composant vue ressemble à ceci :

<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>

Le résultat est une chaîne sans partie variable 查看上述发票后发现,目前这些发票整体上与您的Il y a une différence d'environ

Auparavant, lors de l'utilisation du package vue-i18n-next et de l'API d'options dans vue 2, il n'y avait aucun problème et les chaînes et les variables étaient formées correctement. Le code ressemble à ceci :

<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>

La sortie est 查看上述发票后,发现目前您在这些发票整体上的优势存在约 00,00 的差异。

Une idée de ce qui a changé avec les méthodes de l'API combinée ou de ce que je pourrais faire de mal ?

P粉420868294P粉420868294359 Il y a quelques jours590

répondre à tous(1)je répondrai

  • P粉434996845

    P粉4349968452023-12-06 12:47:31

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

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

    t est une fonction de traduction universelle, et bien qu'elle autorise les pluriels, elle ne peut pas accepter les objets interpolés nommés comme arguments, car il peut y avoir autres options, qui dans ce cas seraient :

    t('conclusion', 1, { named: { ... } })

    répondre
    0
  • Annulerrépondre