TacoTranslateの使い方
文字列の翻訳
現在、文字列を翻訳する方法は3つあります: 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 プロジェクトには、私たちが origins と呼ぶものが含まれています。これらは、文字列や翻訳のエントリポイント、フォルダ、あるいはグループのようなものだと考えてください。
import {TacoTranslate} from 'tacotranslate/react';
function Menu() {
return (
<TacoTranslate origin="application-menu">
// ...
</TacoTranslate>
);
}Origins を使うと、文字列を意味のあるコンテナに分けることができます。 たとえば、ドキュメント用に1つのオリジンを、マーケティングページ用に別のオリジンを用意できます。
より細かい制御が必要な場合は、コンポーネントレベルでオリジンを設定できます。
これを実現するには、プロジェクト内で複数の TacoTranslate プロバイダーを使用することを検討してください。
同じ文字列でも、異なるオリジンでは別の翻訳が適用される場合があることにご注意ください。
最終的には、文字列をどのオリジンに分けるかはあなたの判断とニーズ次第です。ただし、1つのオリジンに多くの文字列を含めると、読み込み時間が長くなる可能性があることに注意してください。
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}
/>
);
}上記の例はプレーンテキストとしてレンダリングされます。