การใช้ TacoTranslate
การแปลสตริง
ขณะนี้มีสามวิธีในการแปลสตริง: คอมโพเนนต์ Translate, ฮุก useTranslation, หรือยูทิลิตี้ translateEntries
การใช้คอมโพเนนต์ Translate.
แสดงคำแปลภายในองค์ประกอบ span, และรองรับการแสดงผล HTML.
import {Translate} from 'tacotranslate/react';
function Page() {
return <Translate string="Hello, world!" />;
}คุณสามารถเปลี่ยนประเภทขององค์ประกอบได้ เช่น as="p" บนคอมโพเนนต์
การใช้ฮุก useTranslation
ส่งคืนคำแปลเป็นสตริงธรรมดา เหมาะสำหรับแท็ก เช่น 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>
);
}การใช้ translateEntries ยูทิลิตี้.
แปลสตริงบนฝั่งเซิร์ฟเวอร์. ยกระดับภาพ OpenGraph ของคุณ.
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)
};
}วิธีการแปลสตริง
เมื่อสตริงมาถึงเซิร์ฟเวอร์ของเรา เราจะตรวจสอบและบันทึกไว้ก่อน จากนั้นจะส่งการแปลด้วยเครื่องกลับไปทันที ในขณะที่การแปลด้วยเครื่องโดยทั่วไปมีคุณภาพต่ำกว่าการแปลด้วย AI ของเรา แต่มันก็ให้การตอบสนองเริ่มต้นที่รวดเร็ว
ในเวลาเดียวกัน เราจะเริ่มงานแปลแบบอะซิงโครนัสเพื่อสร้างการแปลด้วย AI คุณภาพสูงและทันสมัยสำหรับสตริงของคุณ เมื่อการแปลด้วย AI พร้อมแล้ว จะนำมาแทนที่การแปลโดยเครื่อง และจะถูกส่งให้เมื่อใดก็ตามที่คุณร้องขอการแปลสำหรับสตริงของคุณ
หากคุณได้แปลสตริงด้วยตนเอง การแปลเหล่านั้นจะมีความสำคัญเหนือกว่าและจะถูกส่งกลับแทน
การใช้แหล่งที่มา
โปรเจ็กต์ของ TacoTranslate ประกอบด้วยสิ่งที่เราเรียกว่า ต้นทาง นึกถึงพวกมันเหมือนจุดเข้าใช้งาน โฟลเดอร์ หรือกลุ่มสำหรับข้อความและคำแปลของคุณ
import {TacoTranslate} from 'tacotranslate/react';
function Menu() {
return (
<TacoTranslate origin="application-menu">
// ...
</TacoTranslate>
);
}แหล่งที่มาช่วยให้คุณแยกสตริงออกเป็นกลุ่มที่มีความหมาย ตัวอย่างเช่น คุณอาจมีแหล่งที่มาหนึ่งสำหรับเอกสาร และอีกแหล่งหนึ่งสำหรับหน้าการตลาดของคุณ
เพื่อการควบคุมที่ละเอียดขึ้น คุณสามารถตั้งค่า origins ในระดับคอมโพเนนต์ได้
เพื่อให้บรรลุผลนี้ ให้พิจารณา ใช้ผู้ให้บริการ TacoTranslate หลายราย ในโปรเจกต์ของคุณ.
โปรดทราบว่าสตริงเดียวกันอาจได้รับการแปลแตกต่างกันใน origins ต่างๆ
ท้ายที่สุดแล้ว วิธีที่คุณจะแยกสตริงออกเป็น origins ขึ้นอยู่กับคุณและความต้องการของคุณ อย่างไรก็ตาม โปรดทราบว่าการมีสตริงจำนวนมากใน origin เดียวอาจทำให้เวลาในการโหลดเพิ่มขึ้น
การจัดการตัวแปร
คุณควรใช้ตัวแปรเสมอสำหรับเนื้อหาแบบไดนามิก เช่น ชื่อผู้ใช้ วันที่ ที่อยู่อีเมล และอื่นๆ
ตัวแปรในสตริงถูกประกาศโดยใช้วงเล็บคู่ เช่น {{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}});
}การจัดการเนื้อหา HTML
โดยค่าเริ่มต้น คอมโพเนนต์ Translate รองรับและแสดงผลเนื้อหา HTML อย่างไรก็ตาม คุณสามารถปิดพฤติกรรมนี้ได้โดยตั้งค่า useDangerouslySetInnerHTML เป็น false.
ขอแนะนำอย่างยิ่งให้ปิดการแสดงผล HTML เมื่อแปลเนื้อหาที่ไม่น่าเชื่อถือ เช่น เนื้อหาที่ผู้ใช้สร้างขึ้น
ผลลัพธ์ทั้งหมดจะถูกทำให้ปลอดภัยด้วย sanitize-html ก่อนที่จะถูกแสดงผล
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}
/>
);
}ตัวอย่างด้านบนจะแสดงเป็นข้อความธรรมดา.