Il useTranslate composable
Non tutto rientra in un componente. Attributi come placeholder o title richiedono una stringa e a volte hai bisogno di una traduzione nel tuo script. Per questi, usa il metodo useTranslate composable o translate.
Il useTranslate composable
useTranslate restituisce una funzione, solitamente chiamata t, che traduce una stringa:
<script setup lang="ts">import { useTranslate } from '@magic-translate/vue';const t = useTranslate();</script><template><input :placeholder="t('Search products')" /></template>
t restituisce il testo originale durante il caricamento della traduzione. Una volta pronto, il componente viene nuovamente renderizzato. Come il componente <T>, accetta opzioni linguistiche e formali:
<input :placeholder="t('Your name', { lang: 'fr', formality: 'formal' })" />
Accetta anche un id, per modificare questo uso del testo da solo:
<button :title="t('Save', { id: 'checkout-save' })" />
Variabili
Passa valori che non devono essere tradotti in v e fai riferimento ad essi come $name, lo stesso del componente <T>:
<input :placeholder="t('Search $count products', { v: { count } })" />
Il testo viene tradotto una volta come Search {0} products e la traduzione memorizzata nella cache viene riutilizzata quando count cambia.
useT è lo stesso composable di useTranslate.
Tradurre in codice
Per tradurre una stringa nel tuo script, chiama translate. Restituisce una promessa.
import { useMagicTranslate } from '@magic-translate/vue';const magicTranslate = useMagicTranslate();const message = await magicTranslate.translate('Your order has been placed');// with optionsconst formal = await magicTranslate.translate('How are you?', {lang: 'fr',formality: 'formal'});
Senza l'opzione lang, il testo viene tradotto nella lingua corrente.
translate accetta anche delle variabili:
const message = await magicTranslate.translate('Your order $id has shipped', {v: { id: order.id }});
I componenti esterni, ad esempio in un negozio, utilizzano direttamente l'oggetto restituito da createMagicTranslate. Fornisce gli stessi metodi translate e setLanguage e la stessa proprietà language.