# General Translation Python SDKs: クイックスタート
URL: https://generaltranslation.com/ja/docs/python/quickstart.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: General Translation Python SDK をインストールして、最初の Flask または FastAPI アプリを翻訳します。

General Translation Python SDK は、Flask や FastAPI アプリでユーザー向けの文字列を翻訳します。アプリに対して一度初期化すれば、あとはルート内の文字列を [`t`](/docs/python/reference/functions/t) 関数でラップするだけで、現在のリクエストのロケールに翻訳されます。

使用するフレームワーク向けのインテグレーションをインストールしてください。Flask では `gt-flask`、FastAPI では `gt-fastapi` を使用します。どちらも共通の `gt-i18n` ランタイムをベースにしており、フレームワークを使わないプロジェクトでも `gt-i18n` を直接利用できます。

<Callout type="warn">
  Python SDK は **実験的で安定していません**。`gt-i18n`、`gt-flask`、`gt-fastapi` は現在も初期開発段階にあり、リリース間で破壊的変更が入る可能性があります。Python 3.10 以降が必要です。
</Callout>

## Python SDKでできること [#overview]

このSDKでは、次のことができます。

* ICUメッセージ構文を使った、[`t`](/docs/python/reference/functions/t)による**文字列の翻訳**。
* `Accept-Language` ヘッダー、または独自のロジックによる**リクエストごとのロケール**検出。
* [`derive`](/docs/python/reference/functions/derive)による**有限個のバリアント**と、[`declare_var`](/docs/python/reference/functions/declare-var)による**翻訳対象外の値**。
* [General Translation CLI](/docs/cli/quickstart)で生成された翻訳の**CDNまたはローカルでの配信**。

## クイックスタート [#quickstart]

インテグレーションをインストールし、設定ファイルを追加して、アプリで初期化し、文字列を翻訳します。

### 1. インテグレーションをインストールする

<Tabs items={['Flask', 'FastAPI']}>
  <Tab value="Flask">
    ```bash
    pip install gt-flask
    ```
  </Tab>

  <Tab value="FastAPI">
    ```bash
    pip install gt-fastapi
    ```
  </Tab>
</Tabs>

### 2. ロケールを設定する

プロジェクトルートに `gt.config.json` を作成し、project ID と locales を設定します。各キーについては、[設定リファレンス](/docs/python/reference/config)を参照してください。

```json title="gt.config.json"
{
  "projectId": "your-project-id",
  "defaultLocale": "en",
  "locales": ["es", "fr"]
}
```

プレースホルダーの `projectId` を使用していても、アプリは引き続き動作し、リクエストロケールも引き続き切り替わりますが、すべての 文字列 はソース言語で返されます。これは、独自の project ID を設定して翻訳を公開するまでは想定どおりの動作です。

### 3. アプリで初期化する

起動時に `initialize_gt(app)` を1回呼び出します。これにより `gt.config.json` が読み込まれ、リクエストごとのロケール検出が登録され、翻訳が事前にロードされます。API Key パラメータは不要で、CDN からの読み込みには `project_id` と `cache_url` が使われます。

<Tabs items={['Flask', 'FastAPI']}>
  <Tab value="Flask">
    ```python title="app.py"
    from flask import Flask
    from gt_flask import initialize_gt, t, get_locale

    app = Flask(__name__)
    initialize_gt(app)

    @app.route("/")
    def index():
        return {"message": t("Hello, world!"), "locale": get_locale()}
    ```

    次のコマンドで実行します。

    ```bash
    flask --app app run
    ```
  </Tab>

  <Tab value="FastAPI">
    ```python title="main.py"
    from fastapi import FastAPI
    from gt_fastapi import initialize_gt, t, get_locale

    app = FastAPI()
    initialize_gt(app)

    @app.get("/")
    def index():
        return {"message": t("Hello, world!"), "locale": get_locale()}
    ```

    FastAPI では別途 ASGI サーバーが必要です。Uvicorn をインストールし、次のコマンドでアプリを起動します。

    ```bash
    pip install "uvicorn[standard]"
    uvicorn main:app
    ```
  </Tab>
</Tabs>

### 4. 変数を使って翻訳する

ICUプレースホルダーを使い、値をキーワード引数として渡します。

```python
t("Hello, {name}!", name="Alice")
```

### 5. 翻訳を生成する

デプロイする前に [General Translation CLI](/docs/cli/quickstart) を使ってコンテンツを翻訳しておくと、実行時に翻訳を利用できます。CLI は Node ベースのツールなので、Node をインストールしておく必要があり、`npx` で実行します。

```bash
npx gt translate
```

## フレームワークを使わずにコアライブラリを使う [#core]

Flask または FastAPI を使用していない場合は、`gt-i18n` を直接インストールしてください。コアライブラリには [`initialize_gt`](/docs/python/reference/functions/initialize-gt) はありません。[`I18nManager`](/docs/python/reference/classes/i18n-manager) を作成し、[`set_i18n_manager`](/docs/python/reference/functions/set-i18n-manager) で登録して、リクエストごとのロケールも自分で設定してください。

```bash
pip install gt-i18n
```

```python
from gt_i18n import I18nManager, set_i18n_manager, t

manager = I18nManager(default_locale="en", locales=["es", "fr"])
set_i18n_manager(manager)

manager.set_locale("es")
print(t("Hello, world!"))
```

 ([文字列の翻訳](/docs/python/guides/translating-strings)でコンテキストと変数について確認し、ロケール検出をカスタマイズするには[リクエストごとのロケールを判定する](/docs/python/guides/detecting-locale)を参照してください) 。

## Next steps

- /docs/python/guides/translating-strings
- /docs/python/guides/detecting-locale
- /docs/python/guides/declaring-variables
- /docs/python/guides/storing-translations

## Sitemap

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