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