# General Translation Overview: 基本概念
URL: https://generaltranslation.com/ja/docs/overview/key-concepts.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: General Translation の中核概念（国際化、ローカライゼーション、翻訳、ロケール、コンテキストなど）を理解する。

General Translation は、プロダクトをあらゆる言語向けにローカライズします。このページでは、そのプロセスを支える中核概念を、わかりやすく説明します。

## 国際化、ローカライゼーション、翻訳 [#i18n-l10n]

この3つは互いに関連していますが、意味はそれぞれ異なります。違いを正しく理解しておくと、ドキュメントを読み進めやすくなります。

### 国際化 (i18n) 

国際化は **i18n** とも表記され、複数のロケールに対応し、日付や数値、複数形、通貨、レイアウト (たとえば右から左に読む言語など) といったロケール固有の要素を適切に扱えるように、コードベースを準備するプロセスです。

これは、React アプリ向けの [`gt-react`](/docs/react/react-quickstart) や Next.js 向けの [`gt-next`](/docs/react/nextjs-quickstart) のような国際化ライブラリを使って行います。こうしたライブラリがその作業を担ってくれます。

国際化は、コンテンツやコンポーネントの翻訳とは異なります。翻訳やローカライゼーションに対応できるよう、コードベースを準備するためのものです。

### 翻訳

翻訳とは、ある言語または方言のコンテンツを別の言語または方言へ変換することです。各言語は[ロケールコード](#locales)で識別されます。

*例:* `es`&#x20;*&#x20;(スペイン語) を* `en-US`&#x20;*&#x20;(米語) に翻訳すると、スペイン語のコンテンツが米語に書き換えられます。同じ source を* `en-GB` *に翻訳すると、代わりにイギリス英語になります。方言も重要です。たとえば、* `en-GB` *を* `en-US` *に翻訳すると、イギリス英語が米語に書き換えられます。*

```js
gt.translate('Tenemos un ascensor', 'en-US'); // "We have an elevator"
gt.translate('Tenemos un ascensor', 'en-GB'); // "We have a lift"
gt.translate('We have a lift', 'en-US'); // "We have an elevator"
```

### ローカライゼーション (l10n) 

ローカライゼーションは、**l10n** とも表記され、特定のロケール向けに製品を適応させるプロセスです。General Translation では、ローカライゼーションを、国際化、翻訳、そしてそれらをつなぐツール群を含む、ワークフロー全体を指す包括的な用語として使っています。私たちは、このワークフロー全体に対応するための完全なローカライゼーションスタックを構築しました。

ローカライゼーションは、言語だけにとどまるものではありません。ロケールによっては、異なるCurrencyでの支払いへの対応、日付や数値の形式の変更、現地の規制への準拠まで含まれます。

## ロケールとロケールコード [#locales]

**ロケール**とは、言語または方言を指します。**ロケールコード**は、ロケールを表すための標準化された識別子です。これらの Docs では、通常「ロケール」はロケールコードを意味します。

*例:* `en-US` *は、米国で話される英語のロケールコードです。*

ロケールコードは、source file がどの言語で書かれているか、どの言語に translate するか、さらに日付・数値・Currency などのロケール対応の値をどのように書式設定するかを General Translation に伝えます。

### ロケールコードの仕組み

General Translation は **BCP 47** の言語タグ標準を使用します。ロケールコードは、`-` で区切られた最大 3 つのサブタグを組み合わせたものです。

* **言語** (必須) : 英語の `en` や中国語の `zh` のような、基本となる言語です。
* **Script** (省略可) : 文字体系です。たとえば、繁体字を表す `Hant` です。
* **リージョン** (省略可) : `US` が米国を表すように、国や地域を示します。

コードには、一般的なものもあれば、より具体的なものもあります。

* `zh` は中国語です。
* `zh-Hant` は繁体字で書かれる中国語です。
* `zh-Hant-HK` は香港で使われる、繁体字で書かれる中国語です。

(詳しい内訳は [ロケールコードを理解する](/docs/platform/core/guides/locale-codes) を、検索可能な [対応ロケール](/docs/platform/dashboard/reference/supported-locales) の一覧はそちらを参照してください)。

### ソースロケールとターゲットロケール

* **ソースロケール**は、コンテンツが記述されている言語です (デフォルトロケールとも呼ばれます) 。
* **ターゲットロケール**は、翻訳先の言語です。

ほとんどのプロジェクトには、1つのソースロケールと1つ以上のターゲットロケールがあります。

## 翻訳コンテキスト [#context]

**コンテキスト** は、AI があなたのプロダクトをどう解釈し、翻訳するかを示すための情報です。適切なコンテキストがあれば、翻訳はありきたりな機械出力のようにならず、ブランド、プロダクト、そしてトーンを反映したものになります。

コンテキストは、General Translation が次のことを行うのに役立ちます。

* 翻訳してはいけないブランド名やプロダクト名をそのまま維持する。
* あいまいな語を適切に判断する — たとえば、&quot;cells&quot; が部屋、携帯電話、細菌、またはスプレッドシートのセルのどれを指すのか。
* Organization とプロジェクト全体で、用語とスタイルの一貫性を保つ。

General Translation では、2 つの要素を組み合わせた **Context Groups** を通じてコンテキストを適用します。

* **用語集** では重要な用語を定義します: 一貫した扱いが必要なプロダクト名、機能名、技術用語。
* **カスタムプロンプト** ではスタイルとトーンを定義します: 対象読者、文体の硬さ、慣例、フォーマット。

 (設定方法については、[翻訳のコンテキストの定義](/docs/platform/dashboard/guides/defining-context-for-translations) を参照してください) 。

## 静的コンテンツと動的コンテンツ [#content]

静的コンテンツと動的コンテンツの違いを理解すると、何を翻訳すべきか判断しやすくなります。

* **静的コンテンツ** は変化しません。たとえば &quot;Welcome to my app!&quot; のように、開発者がソースコード内で読める生のテキストや文字列です。ひとつの目安として、ソース内で直接読めるテキストは、条件付きでのみ表示される文字列であっても、すべて静的です。静的コンテンツは、固有名詞でない限り翻訳されます。
* **動的コンテンツ** は、ユーザー、環境、またはデータに応じて実行時に値が変わることがあります。たとえば、ユーザー名、メールアドレス、口座残高などです。その値はソースを読むだけではわかりません。動的コンテンツが、単数か複数かを表す件数や、*active* と *archived* のような値など、既知の有限個のケースに絞れる場合、General Translation はそれに応じて分岐し、[`<Plural>`](/docs/react/reference/components/plural) や [`<Branch>`](/docs/react/reference/components/branch) のような論理コンポーネント、または [`<Derive>`](/docs/react/reference/components/derive) を使って取りうるすべての値を列挙し、それぞれのバリアントを翻訳することで、各ケースに対して正しい翻訳を生成できます。[複数形と分岐の扱い方](/docs/react/guides/handling-plurals-and-branches)を参照してください。

### 変数とフォーマット

i18nライブラリでは、動的な値を [`<Var>`](/docs/react/reference/components/var) コンポーネントで囲むことで、どの言語でも同じ値のまま保持できます。

```jsx
import { T, Var } from 'gt-next';

<T>
  Hello, <Var>{name}</Var>!
</T>;
```

これには2つの利点があります。想定されるすべての名前ごとに別々の翻訳を用意する代わりに、`¡Hola, {name}!` のような1つの翻訳だけで済み、さらに名前自体が翻訳された形に書き換えられることもありません。

価格、日付、数値のように、翻訳せず表示形式だけを整えるべき値については、代わりにフォーマットコンポーネント ([`<Currency>`](/docs/react/reference/components/currency)、[`<DateTime>`](/docs/react/reference/components/datetime)、[`<Num>`](/docs/react/reference/components/num)) を使用してください。[`<Var>`](/docs/react/reference/components/var)、[`<Currency>`](/docs/react/reference/components/currency)、[`<DateTime>`](/docs/react/reference/components/datetime)、[`<Num>`](/docs/react/reference/components/num) は、いずれも `gt-next`、`gt-react`、`gt-react-native` で利用できます。

### 個人情報

[`<Var>`](/docs/react/reference/components/var) は、名前、メールアドレス、住所、ソーシャルセキュリティ番号などの個人情報を翻訳対象から除外するためにも使えます。[`<Var>`](/docs/react/reference/components/var) で囲まれたコンテンツはそのままレンダリングされ、General Translation API に送信されることはありません。

*注: 例外として、* [`<Var>`](/docs/react/reference/components/var) *内にネストされた* [`<T>`](/docs/react/reference/components/t)&#x20;*&#x20;(その children は翻訳されます) や、* [`<Var>`](/docs/react/reference/components/var) *内から自分で API に送信するデータ (たとえば fetch 呼び出し) があります。いずれも* [`<Var>`](/docs/react/reference/components/var) *の本来の用途ではありません。*

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
