Προχωρημένη χρήση
Διαχείριση γλωσσών από δεξιά προς αριστερά
Το TacoTranslate καθιστά εύκολη την υποστήριξη γλωσσών από δεξιά προς αριστερά (RTL), όπως τα Αραβικά και τα Εβραϊκά, στις εφαρμογές σας React. Η σωστή διαχείριση των γλωσσών RTL εξασφαλίζει ότι το περιεχόμενό σας εμφανίζεται ορθά για τους χρήστες που διαβάζουν από δεξιά προς τα αριστερά.
import {useTacoTranslate} from 'tacotranslate/react';
function Document() {
const {locale, isRightToLeft} = useTacoTranslate();
return (
<html lang={locale} dir={isRightToLeft ? 'rtl' : 'ltr'}>
<body>
// ...
</body>
</html>
);
}
Μπορείτε επίσης να χρησιμοποιήσετε τη δοσμένη συνάρτηση isRightToLeftLocaleCode
για να ελέγξετε την τρέχουσα γλώσσα εκτός από το React.
import {isRightToLeftLocaleCode} from 'tacotranslate';
function foo(locale = 'es') {
const direction = isRightToLeftLocaleCode(locale) ? 'rtl' : 'ltr';
// ...
}
Απενεργοποίηση μετάφρασης
Για να απενεργοποιήσετε τη μετάφραση για συγκεκριμένα μέρη μιας συμβολοσειράς ή για να διασφαλίσετε ότι ορισμένα τμήματα διατηρούνται ως έχουν, μπορείτε να χρησιμοποιήσετε τριπλά αγκύλες. Αυτή η δυνατότητα είναι χρήσιμη για τη διατήρηση της αρχικής μορφής ονομάτων, τεχνικών όρων ή οποιουδήποτε άλλου περιεχομένου που δεν πρέπει να μεταφραστεί.
import {Translate} from 'tacotranslate/react';
function Component() {
return (
<Translate string="Hello, [[[TacoTranslate]]]!" />
);
}
Σε αυτό το παράδειγμα, η λέξη «TacoTranslate» θα παραμείνει αμετάβλητη στη μετάφραση.
Πολλοί πάροχοι TacoTranslate
Συστημένα ενθαρρύνουμε τη χρήση πολλαπλών TacoTranslate
παρόχων στην εφαρμογή σας. Αυτό είναι χρήσιμο για την οργάνωση των μεταφράσεών σας και των συμβολοσειρών σε διαφορετικές προελεύσεις, όπως η κεφαλίδα, το υποσέλιδο ή συγκεκριμένα τμήματα.
Μπορείτε να διαβάσετε περισσότερα για τη χρήση καταγωγών εδώ.
Οι πάροχοι TacoTranslate
κληρονομούν τις ρυθμίσεις από οποιονδήποτε γονικό πάροχο, οπότε δεν θα χρειαστεί να επαναλάβετε άλλες ρυθμίσεις.
import createTacoTranslateClient from 'tacotranslate';
import {TacoTranslate} from 'tacotranslate/react';
const tacoTranslateClient = createTacoTranslateClient({apiKey: 'YOUR_API_KEY'});
function Header() {
return (
<TacoTranslate origin="header">
// ...
</TacoTranslate>
);
}
function Menu() {
return (
<TacoTranslate origin="menu">
// ...
</TacoTranslate>
);
}
export default function App() {
return (
<TacoTranslate client={tacoTranslateClient} origin="page" locale="es">
<Header />
<Menu />
</TacoTranslate>
);
}
Παράκαμψη προέλευσης ή τοπικής ρύθμισης
Εκτός από τη χρήση πολλαπλών παρόχων TacoTranslate
, μπορείτε επίσης να παρακάμψετε τόσο το origin όσο και το locale στα επίπεδα του συστατικού Translate
και του hook useTranslation
.
import {Translate, useTranslation} from 'tacotranslate/react';
function Greeting() {
const spanishHello = useTranslation('Hello!', {locale: 'es'});
return (
<>
{spanishHello}
<Translate string="What’s up?" origin="greeting" />
</>
);
}
Διαχείριση φόρτωσης
Όταν αλλάζετε γλώσσες στην πλευρά του πελάτη, η λήψη των μεταφράσεων μπορεί να χρειαστεί μερικά δευτερόλεπτα ανάλογα με τη σύνδεση του χρήστη. Μπορείτε να εμφανίσετε έναν δείκτη φόρτωσης για να βελτιώσετε την εμπειρία χρήσης παρέχοντας οπτική ανατροφοδότηση κατά τη διάρκεια της αλλαγής.
import {useTacoTranslate} from 'tacotranslate/react';
function Component() {
const {isLoading} = useTacoTranslate();
return (
isLoading ? 'Translations are loading...' : null
);
}
Πληθυντικός αριθμός
Για να χειριστείτε σωστά τον πληθυντικό και να εμφανίσετε ετικέτες βασισμένες σε αριθμούς σε διαφορετικές γλώσσες, αυτό θεωρείται βέλτιστη πρακτική:
import {Translate, useLocale} from 'tacotranslate/react';
function PhotoCount() {
const locale = useLocale();
const count = 1;
return count === 0 ? (
<Translate string="You have no photos." />
) : count === 1 ? (
<Translate string="You have 1 photo." />
) : (
<Translate
string="You have {{count}} photos."
variables={{count: count.toLocaleString(locale)}}
/>
);
}
Πολλαπλές γλώσσες
Για να υποστηρίξετε πολλαπλές γλώσσες ταυτόχρονα μέσα στην ίδια εφαρμογή, μπορείτε να χρησιμοποιήσετε πολλαπλούς παρόχους TacoTranslate
με διαφορετικές τιμές locale
όπως φαίνεται παρακάτω:
Μπορείτε επίσης να παρακάμψετε το locale
σε επίπεδο συνιστώσας ή hook.
import createTacoTranslateClient from 'tacotranslate';
import {TacoTranslate, Translate} from 'tacotranslate/react';
const tacoTranslateClient = createTacoTranslateClient({apiKey: 'YOUR_API_KEY'});
function Spanish() {
return (
<TacoTranslate locale="es">
<Translate string="Hello, world in Spanish!" />
</TacoTranslate>
);
}
function Norwegian() {
return (
<TacoTranslate locale="no">
<Translate string="Hello, world in Norwegian!" />
</TacoTranslate>
);
}
export default function App() {
return (
<TacoTranslate client={tacoTranslateClient} origin="page" locale="es">
<Spanish />
<Norwegian />
</TacoTranslate>
);
}
Χρήση αναγνωριστικών μετάφρασης
Μπορείτε να προσθέσετε ένα id
στο Translate
component για να διαχειριστείτε διαφορετικές μεταφράσεις ή έννοιες για την ίδια συμβολοσειρά. Αυτό είναι ιδιαίτερα χρήσιμο όταν το ίδιο κείμενο απαιτεί διαφορετικές μεταφράσεις ανάλογα με το πλαίσιο. Με την ανάθεση μοναδικών IDs, διασφαλίζετε ότι κάθε περίπτωση της συμβολοσειράς μεταφράζεται με ακρίβεια σύμφωνα με τη συγκεκριμένη της έννοια.
import {Translate} from 'tacotranslate/react';
function Header() {
return (
<Translate id="header" string="Login" />
);
}
function Footer() {
return (
<Translate id="footer" string="Login" />
);
}
Για παράδειγμα, το header login μπορεί να μεταφραστεί ως «Iniciar sesión», και το footer login μπορεί να μεταφραστεί ως «Acceder» στα Ισπανικά.