1. บทนำ
  2. เริ่มต้นใช้งาน
  3. การตั้งค่าและการกำหนดค่า
  4. การใช้ TacoTranslate
  5. การเรนเดอร์ฝั่งเซิร์ฟเวอร์
  6. การใช้งานขั้นสูง
  7. แนวทางปฏิบัติที่ดีที่สุด
  8. การจัดการข้อผิดพลาดและการดีบัก
  9. ภาษาที่รองรับ

การใช้งานขั้นสูง

การจัดการกับภาษาที่อ่านจากขวาไปซ้าย

TacoTranslate ช่วยให้การรองรับภาษาที่อ่านจากขวาไปซ้าย (RTL) เช่น ภาษาอาหรับและภาษาฮีบรู ในแอป React ของคุณเป็นเรื่องง่าย การจัดการภาษาที่อ่านจากขวาไปซ้ายอย่างถูกต้อง จะช่วยให้เนื้อหาของคุณแสดงผลได้อย่างถูกต้องสำหรับผู้ใช้ที่อ่านจากขวาไปซ้าย

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';
	// ...
}

ปิดการแปลภาษา

เพื่อปิดการแปลสำหรับส่วนเฉพาะของข้อความหรือเพื่อให้แน่ใจว่าส่วนบางส่วนยังคงถูกเก็บไว้ตามเดิม คุณสามารถใช้ triple square brackets ฟีเจอร์นี้มีประโยชน์สำหรับการรักษารูปแบบต้นฉบับของชื่อศัพท์เฉพาะทาง หรือเนื้อหาอื่นๆ ที่ไม่ควรถูกแปล

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>
	);
}

การแทนที่ origin หรือ locale

นอกเหนือจากการใช้ผู้ให้บริการ TacoTranslate หลายรายแล้ว คุณยังสามารถแทนที่ทั้ง origin และ locale ได้ที่ระดับคอมโพเนนต์ Translate และฮุก 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 ในระดับคอมโพเนนต์หรือฮุก ได้อีกด้วย

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 เพื่อจัดการการแปลหรือความหมายที่แตกต่างกันสำหรับข้อความเดียวกัน ซึ่งมีประโยชน์อย่างยิ่งเมื่อข้อความเดียวกันต้องการการแปลที่แตกต่างกันตามบริบท โดยการกำหนด ID ที่ไม่ซ้ำกัน คุณจะมั่นใจได้ว่าทุกตัวอย่างของข้อความนั้นถูกแปลอย่างถูกต้องตามความหมายเฉพาะของมัน

import {Translate} from 'tacotranslate/react';

function Header() {
	return (
		<Translate id="header" string="Login" />
	);
}

function Footer() {
	return (
		<Translate id="footer" string="Login" />
	);
}

ตัวอย่างเช่น หัวข้อเข้าสู่ระบบอาจแปลเป็น “Iniciar sesión” และท้ายหน้าเข้าสู่ระบบอาจแปลเป็น “Acceder” ในภาษาสเปน

ผลิตภัณฑ์จาก Nattskiftetผลิตในนอร์เวย์