# python: ローカル翻訳の保存 URL: https://generaltranslation.com/ja/docs/python/guides/local-tx.mdx --- title: ローカル翻訳の保存 description: CDN から取得する代わりに、訳文をローカルに保存します --- ## ローカル翻訳とは? デフォルトでは、GT の Python ライブラリは runtime に General Translation CDN から訳文を取得します。ローカル翻訳を使うと、翻訳ファイルをアプリにバンドルできるため、外部ネットワークへのリクエストは不要です。 **デフォルトの動作:** GT はデフォルトで CDN ストレージを使用します。ローカルストレージに切り替えるのは、それによる明確な利点が必要な場合だけにしてください。 ## トレードオフ ### ローカル翻訳の利点 * **レスポンスが速い**: 翻訳を取得するためのネットトワーク往復が不要 * **外部サービスに依存しない**: CDN の可用性に左右されずにアプリが動作 * **オフラインでも動作**: 翻訳はデプロイメントに含まれる ### ローカル翻訳のデメリット * **デプロイサイズの増加**: サポートするロケールごとに翻訳ファイルが増えます * **更新には再デプロイが必要**: 翻訳を変更するたびに、新しいデプロイが必要です ## セットアップ ### ステップ1: CLI を設定する GT CLI をインストールし、ローカルストレージを使用するように設定します: ```bash pip install gtx-cli gt configure ``` プロンプトが表示されたら: * **CDN に保存しますか?** "No" を選択します * **訳文ディレクトリ:** `./translations` と入力します ### ステップ2: 翻訳を生成する ```bash gt translate ``` これにより、`translations/` ディレクトリにロケールごとに 1 つの JSON ファイルが作成されます。 ### ステップ 3: アプリで翻訳を読み込む アプリがローカルの翻訳ファイルを参照するように設定します。 ```python import json from pathlib import Path from flask import Flask from gt_flask import initialize_gt app = Flask(__name__) def load_translations(locale: str): path = Path('translations') / f'{locale}.json' if path.exists(): return json.loads(path.read_text()) return {} initialize_gt( app, default_locale='en', locales=['es', 'fr', 'ja'], load_translations=load_translations, ) ``` ```python import json from pathlib import Path from fastapi import FastAPI from gt_fastapi import initialize_gt app = FastAPI() def load_translations(locale: str): path = Path('translations') / f'{locale}.json' if path.exists(): return json.loads(path.read_text()) return {} initialize_gt( app, default_locale='en', locales=['es', 'fr', 'ja'], load_translations=load_translations, ) ``` ## Build 連携 deployment パイプラインの一部として訳文を生成します。 ```yaml title=".github/workflows/deploy.yml" - name: Generate Translations run: gt translate - name: Deploy run: ``` あるいは `Makefile` では: ```makefile deploy: gt translate ``` デプロイする前に、必ず翻訳を生成してください。翻訳ファイルが存在しない場合、`t()` は `default_locale` の元の文字列を返します。 ## 次のステップ * [CLI `translate` コマンド](/docs/cli/translate) — 翻訳生成のリファレンス * [文字列翻訳のパターン](/docs/python/guides/strings) — コンテンツの翻訳方法 * [ロケール検出とミドルウェア](/docs/python/guides/middleware) — ロケールのコンテキストの仕組み