# react-native: T コンポーネント URL: https://generaltranslation.com/ja/docs/react-native/guides/t.mdx --- title: T コンポーネント description: T コンポーネントを使って JSX コンポーネントを国際化する方法 --- {/* 自動生成: 直接編集せず、content/docs-templates/ の template を編集してください。 */} [`` コンポーネント](/docs/react-native/api/components/t) は、React Native アプリケーション内の JSX コンテンツを国際化するための中心的なツールです。JSX 要素をラップし、ユーザーのロケールに応じて自動的に翻訳します。 **ヒント:** [自動 JSX インジェクション](/docs/cli/features/auto-jsx-injection) を有効にすると、コンパイラによってビルド時に JSX が翻訳コンポーネントで自動的にラップされます。 ほとんどの場合、`` を手動で追加する必要はありません。特定の `id` や `context` を設定するなど、より細かく制御したい場合は、手動の `` も引き続き有用です。 ## クイックスタート 静的な JSX コンテンツは、[``](/docs/react-native/api/components/t) で囲むだけで変換できます: ```jsx import { T } from 'gt-react-native'; // 変更前 function Greeting() { return

Hello, world!

; } // 変更後 function Greeting() { return

Hello, world!

; } ``` [``](/docs/react-native/api/components/t) 内で動的なコンテンツを扱うには、[変数コンポーネント](/docs/react-native/guides/variables) と [分岐コンポーネント](/docs/react-native/guides/branches) を使用します。 ## 基本的な使い方 [``コンポーネント](/docs/react-native/api/components/t) は、子要素として任意の JSX コンテンツを受け取れます。 ```jsx // シンプルなテキスト Welcome to our app // HTML要素

Page Title

// 複雑なネストされたJSX
Important: Please read carefully.
``` ## 設定オプション ### コンテキストを追加する 曖昧な用語には翻訳コンテキストを指定します。 ```jsx Click the toast to dismiss ``` ## T を使う場面 [``](/docs/react-native/api/components/t) は、**静的なコンテンツにのみ**使用します。 ```jsx // ✅ 静的コンテンツは動作します

Welcome to our site

// ❌ 動的コンテンツは使用できません

Hello {username}

Today is {new Date()}

// ✅ 動的コンテンツには変数コンポーネントを使用してください

Hello {username}

``` 変数コンポーネントと分岐コンポーネントは、動的なコンテンツを扱うために [``](/docs/react-native/api/components/t) 内で使用するよう設計されています。 詳細は、[変数コンポーネント](/docs/react-native/guides/variables) および [分岐コンポーネント](/docs/react-native/guides/branches) ガイドを参照してください。 ## 例 ### シンプルな要素 ```jsx // 基本的なテキスト Hello, world! // テキスト付きボタン // スタイル付き見出し

Welcome

``` ### 複雑なコンポーネント ```jsx // ナビゲーションメニュー // アラートメッセージ
Your session expires in 5 minutes
``` ### 変数を使う場合 ローカライズに応じた書式設定には、変数コンポーネントを使用できます。 ```jsx // 静的テキストと動的な値を組み合わせる

Welcome back, {user.name}!

You have {user.friends.length} friends online

Your birthday is {user.birthday}

Your balance is {user.balance}

``` [`` コンポーネント](/docs/react-native/api/components/var)の詳細は、[変数コンポーネントガイド](/docs/react-native/guides/variables)を参照してください。 ## 本番環境のセットアップ ### ビルドプロセス ビルドパイプラインに翻訳を組み込みます: ```json title="package.json" { "scripts": { "build": "npx gt translate && <...YOUR_BUILD_COMMAND...>" } } ``` ### 開発時と本番環境での挙動 * **開発環境**: 開発用 API キーを使うと、コンポーネントのレンダリング時に必要に応じて翻訳が実行されます。開発中はリアルタイムで翻訳結果を確認できます。 * **本番環境**: すべての翻訳はビルド時に事前生成され、アプリケーションの公開後に反映されます。 開発中にライブ翻訳を有効にするには、環境変数に開発用 API キーを設定してください。API キーはダッシュボードの [API Keys](https://dash.generaltranslation.com/en-US/project/api-keys) から作成できます。 ### プライバシーに関する注意点 [``](/docs/react-native/api/components/t) コンポーネント内の内容は、翻訳のために GT API に送信されます。機密性の高いデータを扱う場合は、[変数コンポーネント](/docs/react-native/guides/variables) を使用して、機密情報をローカルに保持してください。 ```jsx // 安全 - 機密データはローカルに保持される Welcome back, {username} ``` ## 1 つの `` でどこまで囲むべきか **ひとまとまりの論理的なコンテンツ**、つまり翻訳者が自然にひと続きの内容として読んで翻訳できる単位で囲んでください。 ```jsx // ✅ 良い例 — 関連コンテンツをまとめてラップすることで、翻訳者に十分なコンテキストを提供できる

Welcome to Our Platform

Get started in minutes with our simple setup process.

// ✅ 良い例 — 各カードは独立した単位 {features.map((feature) => (

{feature.title}

{feature.description}

))} // ❌ 範囲が狭すぎる — 翻訳が断片化し、コンテキストが失われる

Welcome to Our Platform

Get started in minutes with our simple setup process.

// ❌ 範囲が広すぎる — ページ全体をラップすると保守が困難になる {/* ...数百行の JSX... */} ``` **経験則:** テキストが視覚的または意味的に関連しているなら、1 つの `` で囲みます。分けるのは、コンテンツが本当に独立している場合 (例: ヘッダーとフッター) だけにしてください。 1 つの `` で囲むコンテンツを増やすほど、翻訳者はより適切なコンテキストを得られ、結果としてより自然な訳になります。言語によっては文の構造を組み替えたり、近くのコンテンツを参照したりする必要があるためです。 ## よくある問題 ### コンポーネントの境界 [``](/docs/react-native/api/components/t) が翻訳するのは直接の子要素だけで、他のコンポーネント内の内容は翻訳されません。 ```jsx // ❌ 誤り - コンポーネント内の内容は翻訳されません function MyComponent() { return

This won't be translated

; }

This will be translated

{/* この中の内容は翻訳されません */}
// ✅ 正しい例 - 各コンポーネントを個別にラップします function MyComponent() { return

This will be translated

; }

This will be translated

``` ### T コンポーネントの入れ子 ```jsx // ❌ コンポーネントをネストしないでください Hello world {/* これはしないでください */} ``` ### 動的コンテンツのエラー CLI は [``](/docs/react-native/api/components/t) 内に動的コンテンツがあるとエラーになります。動的な値は変数コンポーネントで囲んでください。 ```jsx // ❌ 誤り - 動的コンテンツはエラーになる

Hello {username}

// ✅ 正しい - 変数コンポーネントを使用する

Hello {username}

``` 動的な値の扱いについては[変数コンポーネントガイド](/docs/react-native/guides/variables)を、条件付きコンテンツについては[分岐コンポーネントガイド](/docs/react-native/guides/branches)を参照してください。 ## 次のステップ **実際の動作を見る:** 動作するデモは、[`` コンポーネントの基本サンプルアプリ](https://github.com/gt-examples/t-component-basics) をチェックしてください — [ライブプレビュー](https://t-component-basics.generaltranslation.dev)。 * [変数コンポーネントガイド](/docs/react-native/guides/variables) - JSX の翻訳内で動的なコンテンツを扱う * [分岐コンポーネントガイド](/docs/react-native/guides/branches) - 翻訳に条件分岐ロジックを追加する