# General Translation Python SDKs: General Translation の設定 URL: https://generaltranslation.com/ja/docs/python/guides/configuring.mdx --- title: General Translation の設定 description: "Python で General Translation を初期化する方法: このガイドでは、Flask、FastAPI、またはコアライブラリでのアプリ、ロケール、翻訳の配信について説明します。" related: links: - /docs/python/guides/translating-strings - /docs/python/guides/detecting-locale - /docs/python/guides/declaring-variables - /docs/python/guides/storing-translations --- Python SDK は、1 回の呼び出しで設定できます。Flask と FastAPI では `initialize_gt(app)` を使います。コアの `gt-i18n` library では、[`I18nManager`](/docs/python/reference/classes/i18n-manager) を自分で作成します。このガイドでは、この 2 つの方法に加えて、翻訳の配信方法と事前読み込みについても説明します。 ## Flask または FastAPI アプリを設定する [#framework] リクエストを処理する前に、`initialize_gt(app)` を 1 回だけ呼び出します。これにより、`gt.config.json` を読み込み、翻訳マネージャーを作成し、リクエストごとのロケール検出を登録して、翻訳を事前に読み込みます。 ```python title="app.py" from flask import Flask from gt_flask import initialize_gt app = Flask(__name__) initialize_gt(app, default_locale="en", locales=["es", "fr"]) ``` ```python title="main.py" from fastapi import FastAPI from gt_fastapi import initialize_gt app = FastAPI() initialize_gt(app, default_locale="en", locales=["es", "fr"]) ``` キーワード引数は `gt.config.json` の内容より優先されます。すべてのオプションと設定キーについては、[設定リファレンス](/docs/python/reference/config) を参照してください。 この 2 つの統合は、[`initialize_gt`](/docs/python/reference/functions/initialize-gt) のシグネチャは共通で、異なるのは内部実装だけです。Flask では、ロケールを設定する `before_request` フックを登録します。FastAPI では、アプリのライフスパンをラップして (事前読み込みのため) 、ロケールを設定する HTTP ミドルウェアを追加します。 ## コアライブラリを設定する [#core] コアの `gt-i18n` パッケージには `initialize_gt` は含まれていません。[`I18nManager`](/docs/python/reference/classes/i18n-manager) を作成し、[`set_i18n_manager`](/docs/python/reference/functions/set-i18n-manager) でアクティブなマネージャーとして登録したうえで、リクエストのロケールを自分で設定してください。ここでは、ロケール検出と事前読み込みは自動では行われません。 ```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!")) ``` どの翻訳関数 ([`t`](/docs/python/reference/functions/t)、[`get_locale`](/docs/python/reference/functions/get-locale) など) も、`set_i18n_manager` で設定したマネージャーを参照します。マネージャーを設定する前にこれらを呼び出すと、`RuntimeError` が発生します。 ## 翻訳の配信方法を選択する [#delivery] SDK は、次のいずれかのモードで翻訳を読み込みます。 * **General Translation CDN:** `project_id` (設定内またはキーワード引数として) を設定すると、翻訳は CDN の `{cache_url}/{project_id}/{locale}` から読み込まれます。ベース URL は `cache_url` で上書きできます。 * **ローカルファイル:** ロケールごとに `dict[str, str]` を返す `load_translations` callback を渡します。これにより CDN loader は置き換えられます。[翻訳をローカルに保存する](/docs/python/guides/storing-translations)を参照してください。 API Key はありません。CDN 配信は `project_id` と `cache_url` のみによって決まります。 ## 翻訳を事前に読み込む [#preload] [`t`](/docs/python/reference/functions/t) 関数はインメモリキャッシュを参照するため、リクエストで翻訳を使う前に読み込んでおく必要があります。デフォルトでは、`initialize_gt` が起動時にそれらを先行読み込みします (`eager_loading=True`) 。 *注: 先行読み込みが実行されるのは、対象の `locales` がわかっている場合だけです。Flask では、`gt.config.json` から読み込まれたものではなく、`initialize_gt` に直接渡した `locales` が確認されます。ロケールを設定ファイルからのみ取得している場合は、明示的に渡すか、自分で翻訳を読み込んでください。翻訳がまだ読み込まれていない場合、`t` はソース文字列を返します。* *注: インメモリキャッシュは `cache_expiry_time` (デフォルトは 60 秒) を過ぎると期限切れになり、`t` が使う同期読み取りパスでは再読み込みされません。そのため、有効期限が切れた後は、async ローダーが再び実行されるまで `t` はソース文字列にフォールバックします。`initialize_gt` では `cache_expiry_time` を指定できません。* ## 翻訳が見つからない場合の対処 [#missing] 翻訳が見つからない場合、`t` はエラーを投げるのではなく、変数を補間した原文の文字列を返すため、リクエストは常にレンダリングされます。本番環境ですぐ使えるよう、デプロイ前に [CLI](/docs/cli/quickstart) で翻訳を生成しておいてください。 ## Next steps - /docs/python/guides/translating-strings - /docs/python/guides/detecting-locale - /docs/python/guides/declaring-variables - /docs/python/guides/storing-translations