TacoTranslate
/
說明文件價格
 
  1. 簡介
  2. 開始使用
  3. 設定與組態
  4. 使用 TacoTranslate
  5. 伺服器端渲染
  6. 進階用法
  7. 最佳實務
  8. 錯誤處理與偵錯
  9. 支援的語言

進階用法

處理由右至左的語言

TacoTranslate 讓您能輕鬆在 React 應用程式中支援由右至左 (RTL) 的語言,例如阿拉伯語和希伯來語。正確處理 RTL 語言可確保您的內容對習慣由右至左閱讀的使用者正確顯示。

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

停用翻譯

若要停用字串中特定部分的翻譯,或確保某些片段維持原樣不被改動,您可以使用三重方括號。此功能可用於保留姓名、專有術語或其他不應被翻譯的內容的原始格式。

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

覆寫來源或語系

除了使用多個 TacoTranslate 提供者之外,您也可以在 Translate 元件與 useTranslation hook 的層級上覆寫來源與語系。

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 值,如下所示:

您也可以在元件或 Hook 層級覆寫 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

您可以將 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 的產品挪威製造