Penggunaan lanjutan
Menangani bahasa yang ditulis dari kanan ke kiri
TacoTranslate memudahkan sokongan untuk bahasa yang ditulis dari kanan ke kiri (RTL), seperti Bahasa Arab dan Ibrani, dalam aplikasi React anda. Pengendalian yang betul terhadap bahasa RTL memastikan kandungan anda dipaparkan dengan betul kepada pengguna yang membaca dari kanan ke kiri.
import {useTacoTranslate} from 'tacotranslate/react';
function Document() {
const {locale, isRightToLeft} = useTacoTranslate();
return (
<html lang={locale} dir={isRightToLeft ? 'rtl' : 'ltr'}>
<body>
// ...
</body>
</html>
);
}Anda juga boleh menggunakan fungsi isRightToLeftLocaleCode yang disediakan untuk memeriksa bahasa semasa di luar React.
import {isRightToLeftLocaleCode} from 'tacotranslate';
function foo(locale = 'es') {
const direction = isRightToLeftLocaleCode(locale) ? 'rtl' : 'ltr';
// ...
}Mematikan terjemahan
Untuk mematikan terjemahan bagi bahagian tertentu dalam rentetan atau untuk memastikan segmen tertentu dikekalkan seperti sedia ada, anda boleh menggunakan tiga kurungan siku. Ciri ini berguna untuk mengekalkan format asal nama, istilah teknikal, atau apa-apa kandungan lain yang tidak seharusnya diterjemahkan.
import {Translate} from 'tacotranslate/react';
function Component() {
return (
<Translate string="Hello, [[[TacoTranslate]]]!" />
);
}Dalam contoh ini, perkataan “TacoTranslate” akan kekal tidak berubah dalam terjemahan.
Beberapa penyedia TacoTranslate
Kami amat menggalakkan penggunaan pelbagai penyedia TacoTranslate dalam aplikasi anda. Ini berguna untuk menyusun terjemahan dan rentetan anda ke dalam asal yang berbeza, seperti pengepala, pengaki, atau seksyen tertentu.
Anda boleh membaca lebih lanjut mengenai penggunaan origins di sini.
TacoTranslate penyedia mewarisi tetapan daripada mana-mana penyedia induk, jadi anda tidak perlu mengulangi tetapan lain.
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>
);
}Menimpa origin atau lokal
Selain menggunakan pelbagai penyedia TacoTranslate, anda juga boleh menggantikan kedua-dua asal dan lokal pada peringkat komponen Translate dan 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" />
</>
);
}Mengendalikan pemuatan
Apabila menukar bahasa di sisi klien, memuatkan terjemahan mungkin mengambil masa beberapa saat bergantung pada sambungan pengguna. Anda boleh memaparkan penunjuk pemuatan untuk meningkatkan pengalaman pengguna dengan memberikan maklum balas visual semasa pertukaran bahasa.
import {useTacoTranslate} from 'tacotranslate/react';
function Component() {
const {isLoading} = useTacoTranslate();
return (
isLoading ? 'Translations are loading...' : null
);
}Pluralisasi
Untuk menangani pluralisasi dan memaparkan label berdasarkan kiraan dengan betul dalam pelbagai bahasa, ini dianggap amalan terbaik:
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)}}
/>
);
}Pelbagai bahasa
Untuk menyokong pelbagai bahasa secara serentak dalam aplikasi yang sama, anda boleh menggunakan beberapa penyedia TacoTranslate dengan nilai locale yang berbeza seperti yang ditunjukkan di bawah:
Anda juga boleh menimpa locale pada peringkat komponen atau 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>
);
}Menggunakan ID terjemahan
Anda boleh menambah id pada komponen Translate untuk mengendalikan terjemahan atau makna yang berbeza bagi rentetan yang sama. Ini sangat berguna apabila teks yang sama memerlukan terjemahan yang berbeza bergantung pada konteks. Dengan memberikan ID unik, anda memastikan setiap contoh rentetan itu diterjemah dengan tepat mengikut makna khususnya.
import {Translate} from 'tacotranslate/react';
function Header() {
return (
<Translate id="header" string="Login" />
);
}
function Footer() {
return (
<Translate id="footer" string="Login" />
);
}Sebagai contoh, log masuk header mungkin diterjemahkan kepada “Iniciar sesión”, dan log masuk footer mungkin diterjemahkan kepada “Acceder” dalam bahasa Sepanyol.