# Vue: useGT
URL: https://generaltranslation.com/ja/docs/vue/reference/composables/use-gt.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: 文字列をインラインで翻訳する関数を取得します。useGT の API リファレンス。

`useGT` コンポーザブルは、同期的にプレーンな文字列をカタログから参照する関数を返します。Vue コンポーネント内のラベル、プレースホルダー、その他のスタンドアロン文字列に使用します。

## 概要 [#overview]

コンポーネントのセットアップ時に `useGT` を呼び出し、テンプレートまたは別のリアクティブエフェクト内で、返された関数を呼び出します。

```vue
<script setup lang="ts">
import { useGT } from 'gt-vue';

const gt = useGT();
</script>

<template>
  <input :placeholder="gt('Search products')" />
</template>
```

テキストとネストされたマークアップを1つのリッチな翻訳として扱う場合は、代わりに[`<T>`](/docs/vue/reference/components/t)を使用してください。ブラウザ専用のSPAでモジュールレベルの文字列を扱う場合は、[`t()`](/docs/vue/reference/functions/t)を使用してください。

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

* **同期参照。** 返される関数は、ソース文字列と任意のコンテキストをハッシュ化した後、アクティブなプラグインに読み込まれているカタログを参照します。
* **ソースへのフォールバック。** エントリが存在しない場合や、カタログの構造が正しくないエントリの場合は、元の文字列を返します。
* **プレーンな文字列のみ。** 波括弧はリテラルとして扱われます。この関数は、ICU 構文、補間変数、`$id`、`$maxChars`、`$format` をサポートしていません。
* **プラグインスコープ。** このコンポーザブルは、[`createGT()`](/docs/vue/reference/functions/create-gt) または [`initializeGTSPA()`](/docs/vue/reference/functions/initialize-gt-spa) が返すプラグイン配下のコンポーネントから呼び出します。プラグインをインストールせずに呼び出すとエラーをスローします。リクエストスコープの [`createGT()`](/docs/vue/reference/functions/create-gt) プラグインは、サーバーレンダリングされるコンポーネントにも対応しています。

エクストラクタには、文字列リテラル、式を含まないテンプレートリテラル、またはそれらに解決される不変の識別子など、静的に解析できる文字列が必要です。生成されるカタログとランタイムハッシュが一致するよう、コンテキストも静的である必要があります。

## パラメータ [#parameters]

`useGT` はパラメータを受け取りません。

## 戻り値 [#returns]

**型** `(message: string, options?: GTStringOptions) => string`

以下のパラメータを受け取る同期関数です。

| パラメータ                 | 説明                        | 型                                                                | 任意  | デフォルト |
| --------------------- | ------------------------- | ---------------------------------------------------------------- | --- | ----- |
| [`message`](#message) | 翻訳する静的なソース文字列。            | `string`                                                         | いいえ | —     |
| [`options`](#options) | ソース文字列の曖昧さを解消するためのコンテキスト。 | [`GTStringOptions`](/docs/vue/reference/types/gt-string-options) | はい  | `{}`  |

### `message`

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

抽出器によって登録され、ランタイム 時に参照される静的なソース文字列。

### `options`

**型** [`GTStringOptions`](/docs/vue/reference/types/gt-string-options) · **任意** · **デフォルト** `{}`

対応フィールドは `$context?: string` のみです。これによりカタログの識別情報が変わるため、同じソース文字列に異なる翻訳を設定できます。

```vue
<button>{{ gt('Open', { $context: 'Verb: open the settings panel' }) }}</button>
```

## リアクティビティ [#reactivity]

返された関数は、呼び出されるとリアクティブなカタログとロケールの状態を読み取ります。テンプレート式は自動的に再実行されます。

```vue
<p>{{ gt('Hello World') }}</p>
```

`setup` で作成した値の場合は、呼び出しを `computed` でラップしてください。

```ts
import { computed } from 'vue';

const gt = useGT();
const message = computed(() => gt('Hello World'));
```

一度呼び出すと、プレーンな文字列のスナップショットが作成されます。

```ts
const gt = useGT();
const message = gt('Hello World');
```

[`createGT()`](/docs/vue/reference/functions/create-gt) プラグインでは、初期カタログの読み込み完了時やロケールの変更時に、このスナップショットは更新されません。[`initializeGTSPA()`](/docs/vue/reference/functions/initialize-gt-spa) で初期化されたブラウザ SPA は、コンポーネントの実行前にデータをプリロードし、ロケールの変更時にはページを再読み込みするため、セットアップ時のスナップショットは読み込み済みのロケールで再作成されます。

## 例 [#example]

```vue title="SearchForm.vue"
<script setup lang="ts">
import { computed } from 'vue';
import { useGT } from 'gt-vue';

const gt = useGT();
const emptyMessage = computed(() =>
  gt('No results', { $context: 'Empty search results' })
);
</script>

<template>
  <form>
    <input :placeholder="gt('Search products')" />
    <p>{{ emptyMessage }}</p>
  </form>
</template>
```

## Sitemap

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