Menggunakan TacoTranslate
Menterjemahkan rentetan
Pada masa ini terdapat tiga cara untuk menterjemah rentetan: Komponen Translate
, kait useTranslation
, atau utiliti translateEntries
.
Menggunakan komponen Translate
.
Mengeluarkan terjemahan dalam elemen span
, dan menyokong rendering HTML.
import {Translate} from 'tacotranslate/react';
function Page() {
return <Translate string="Hello, world!" />;
}
Anda boleh menukar jenis elemen menggunakan, sebagai contoh, as="p"
pada komponen.
Menggunakan kait useTranslation
.
Memulangkan terjemahan sebagai rentetan biasa. Berguna dalam, contohnya, tag meta
.
import {useEffect} from 'react';
import {useTranslation} from 'tacotranslate/react';
function Page() {
const helloWorld = useTranslation('Hello, world!');
useEffect(() => {
alert(helloWorld);
}, [helloWorld]);
return (
<title>{useTranslation('My page title')}</title>
);
}
Menggunakan utiliti translateEntries
Terjemahkan rentetan di sisi pelayan. Tingkatkan imej OpenGraph anda.
import {createEntry, translateEntries} from 'tacotranslate';
async function generateMetadata(locale = 'es') {
const title = createEntry({string: 'Hello, world!'});
const description = createEntry({string: 'TacoTranslate on the server'});
const translations = await translateEntries(
tacoTranslate,
{origin: 'opengraph', locale},
[title, description]
);
return {
title: translations(title),
description: translations(description)
};
}
Bagaimana rentetan diterjemahkan
Apabila rentetan sampai ke pelayan kami, kami terlebih dahulu mengesahkannya dan menyimpannya, kemudian segera mengembalikan terjemahan mesin. Walaupun terjemahan mesin biasanya berkualiti lebih rendah berbanding dengan terjemahan AI kami, ia memberikan respons awal yang cepat.
Pada masa yang sama, kami memulakan tugasan terjemahan secara asynchronous untuk menghasilkan terjemahan AI berkualiti tinggi dan terkini bagi rentetan anda. Sebaik sahaja terjemahan AI siap, ia akan menggantikan terjemahan mesin dan dihantar setiap kali anda meminta terjemahan untuk rentetan anda.
Jika anda telah menterjemah satu rentetan secara manual, terjemahan tersebut akan diutamakan dan dikembalikan sebaliknya.
Menggunakan origin
Projek TacoTranslate mengandungi apa yang kami panggil origins. Fikirkan ia sebagai titik masuk, folder, atau kumpulan untuk rentetan dan terjemahan anda.
import {TacoTranslate} from 'tacotranslate/react';
function Menu() {
return (
<TacoTranslate origin="application-menu">
// ...
</TacoTranslate>
);
}
Origins membolehkan anda memisahkan rentetan ke dalam bekas yang bermakna. Contohnya, anda boleh mempunyai satu origin untuk dokumentasi dan satu lagi untuk halaman pemasaran anda.
Untuk kawalan yang lebih terperinci, anda boleh menyediakan origins pada tahap komponen.
Untuk mencapai ini, pertimbangkan menggunakan pelbagai penyedia TacoTranslate dalam projek anda.
Sila ambil perhatian bahawa rentetan yang sama mungkin menerima terjemahan yang berbeza dalam origins yang berbeza.
Akhirnya, bagaimana anda memisahkan string ke dalam origins terpulang kepada anda dan keperluan anda. Walau bagaimanapun, perhatikan bahawa mempunyai banyak string dalam satu origin boleh meningkatkan masa pemuatan.
Mengendalikan pembolehubah
Anda sentiasa harus menggunakan pembolehubah untuk kandungan dinamik, seperti nama pengguna, tarikh, alamat e-mel, dan lain-lain.
Pembolehubah dalam rentetan dinyatakan menggunakan kurungan berganda, seperti {{variable}}
.
import {Translate} from 'tacotranslate/react';
function Greeting() {
const name = 'Juan';
return <Translate string="Hello, {{name}}!" variables={{name}} />;
}
import {useTranslation} from 'tacotranslate/react';
function useGreeting() {
const name = 'Juan';
return useTranslation('Hello, {{name}}!', {variables: {name}});
}
Mengurus kandungan HTML
Secara lalai, komponen Translate
menyokong dan memaparkan kandungan HTML. Walau bagaimanapun, anda boleh memilih untuk tidak menggunakan tingkah laku ini dengan menetapkan useDangerouslySetInnerHTML
kepada false
.
Mematikan rendering HTML sangat disarankan apabila menterjemahkan kandungan yang tidak dipercayai, seperti kandungan yang dihasilkan oleh pengguna.
Semua output sentiasa disanitasi dengan sanitize-html sebelum dipaparkan.
import {Translate} from 'tacotranslate/react';
function Page() {
return (
<Translate
string={`
Welcome to <strong>my</strong> website.
I’m using <a href="{{url}}">TacoTranslate</a> to translate text.
`}
variables={{url: 'https://tacotranslate.com'}}
useDangerouslySetInnerHTML={false}
/>
);
}
Contoh di atas akan dipaparkan sebagai teks biasa.