# General Translation React SDKs (gt-react, gt-next, gt-react-native): t
URL: https://generaltranslation.com/ja/docs/react/reference/functions/t-function.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: モジュールスコープで文字列を同期的に翻訳します。t の API リファレンス。

`t` 関数は、クライアントサイドの `gt-react` アプリ向けの、同期・モジュールレベルの文字列翻訳関数です。[`useGT`](/docs/react/reference/hooks/use-gt) (React context が必要) や [`msg`](/docs/react/reference/functions/msg) (後で解決できるよう文字列をエンコードする) とは異なり、`t` は翻訳済みの文字列を直接返し、React コンポーネントの外を含め、ブラウザーコード内のどこからでも呼び出せます。

*`gt-react` と `gt-tanstack-start` で利用できます。*

*注意: `gt-next` と `gt-react-native` からは export されません。`gt-next` では、同期コンポーネントでは [`useGT`](/docs/react/reference/hooks/use-gt) を、非同期の App Router コンポーネントでは [`getGT`](/docs/react/nextjs/reference/functions/get-gt) を使用してください。*

## 概要 [#overview]

`gt-react` から `t` をインポートし、文字列を引数にして呼び出します。

*例では `gt-react` からインポートしています。TanStack Start では `gt-tanstack-start` からインポートしてください。*

```tsx
import { t } from 'gt-react';

const greeting = t('Hello, world!');
```

タグ付きテンプレートリテラルとしても使用できます:

```tsx
import { t } from 'gt-react';

const greeting = t`Hello, ${name}!`;
```

*注: `t` は、[`initializeGTSPA`](/docs/react/reference/config#initialize-spa) で設定されたクライアントキャッシュから翻訳を取得します。モジュールスコープで `t` を呼び出すモジュールより前に、初期化が実行されていることを確認してください。server-rendered アプリでモジュールスコープから `t` を呼び出すことは禁止されています。開発時には例外がスローされ、Production ではエラーがログに記録されてデフォルトロケールの値にフォールバックします。*

## 仕組み [#how-it-works]

* **同期的なモジュールスコープでの翻訳。** アクティブなロケールの翻訳が読み込まれると、`t` はそれをオーバーヘッドなしで同期的に参照します。React context を使わないため、コンポーネント内だけでなく、モジュールスコープ (定数、ルートテーブル) でも使えます。
* **ロード時に解決されます。** 翻訳はモジュールの評価時に解決されるため、**ロケールを切り替えるにはページ全体の再読み込みが必要です**。新しいロケールを反映するには、ブラウザがモジュールを再実行する必要があります。このパターンは クライアントサイド アプリでのみ機能します。
* **変数は翻訳されません。** 補間値は翻訳済みの string に挿入されますが、それ自体は翻訳されません。
* **サーバーでの挙動。** レンダリング戦略が `server-render` の場合、つまりリクエスト時の condition store が初期化される前に、モジュールスコープで `t` を呼び出すことは禁止されています。開発環境ではエラーがスローされ、本番環境ではエラーがログに記録されて `defaultLocale` の値にフォールバックします。server-side で翻訳する場合は、[`useGT`](/docs/react/reference/hooks/use-gt) のような context ベースの hooks を使用してください。

## タグ付きテンプレートリテラル [#tagged-template]

`t` は、より自然な構文で記述できるタグ付きテンプレートとして使用できます。以下は同等です。

```tsx
import { t } from 'gt-react';

t('Hello, {name}!', { name: 'Alice' });
t`Hello, ${name}!`;
```

タグ付き形式では、変数がテンプレートから直接補間されるため、ICU 形式のプレースホルダーやオプションオブジェクトは必要ありません。

### グローバル登録 [#macros]

すべてのファイルで `t` をインポートする代わりに、アプリのエントリポイントで `macros` エントリを一度だけインポートして、グローバルに登録します:

```tsx
import 'gt-react/macros';
```

これにより `globalThis.t` が設定され、明示的に import しなくても tagged template をどこでも使えるようになります。

```tsx
// インポート不要
const labels = {
  save: t`Save`,
  cancel: t`Cancel`,
};
```

## パラメーター [#parameters]

| パラメーター                | 説明            | 型                      | 任意  | デフォルト |
| --------------------- | ------------- | ---------------------- | --- | ----- |
| [`message`](#message) | 翻訳する文字列。      | `string`               | いいえ | —     |
| [`options`](#options) | 補間変数と翻訳オプション。 | `GTTranslationOptions` | はい  | —     |

### `message` [#message]

**型** `string` · **必須**

翻訳する文字列です。tagged template として使用する場合は、代わりにテンプレート文字列を指定します。

### `options` [#options]

**型** `GTTranslationOptions` · **任意**

`$context` や `$id` などの、補間に使用する変数やオプションです。[`InlineTranslationOptions`](/docs/react/reference/types/inline-translation-options) を参照してください。

## 戻り値 [#returns]

**型** `string`

アクティブなロケールに対応する翻訳済みの文字列。翻訳がない場合はソース文字列。

## 例 [#examples]

```tsx title="constants.ts"
import { t } from 'gt-react';

export const ERROR_MESSAGES = {
  notFound: t('Page not found'),
  unauthorized: t('You do not have permission to view this page'),
  serverError: t('Something went wrong. Please try again later.'),
};
```

```tsx title="routes.ts"
import { t } from 'gt-react';

export const routes = [
  { path: '/', label: t('Home') },
  { path: '/dashboard', label: t('Dashboard') },
  { path: '/settings', label: t('Settings') },
];
```

```tsx
import { t } from 'gt-react';

const message = t('Hello, {name}!', { name: 'Alice' });
// 変数の値は挿入されるだけで、翻訳されません。
```

## メモ [#notes]

* `t` は同期的で、モジュールスコープで呼び出せます。React context は使用しません。
* ロケールの切り替えには、ページ全体の再読み込みが必要です。
* コンポーネント内の文字列を翻訳するには [`useGT`](/docs/react/reference/hooks/use-gt) を使用します。後で解決できるように文字列をエンコードするには [`msg`](/docs/react/reference/functions/msg) を使用します。

## Sitemap

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