# General Translation Python SDKs: リクエストのロケールを検出する URL: https://generaltranslation.com/ja/docs/python/guides/detecting-locale.mdx --- title: リクエストのロケールを検出する description: General Translation for Python で、各リクエストのロケールを自動的に、または独自のロジックで解決する方法。 related: links: - /docs/python/guides/translating-strings - /docs/python/guides/configuring - /docs/python/guides/declaring-variables - /docs/python/guides/storing-translations --- すべての [`t`](/docs/python/reference/functions/t) 呼び出しは、現在のリクエストのロケールで翻訳されます。[`initialize_gt`](/docs/python/reference/functions/initialize-gt) がロケール検出を設定してくれるので、デフォルトのまま使うことも、独自のコールバックを指定することもできます。 ## デフォルトの検出を使用する [#default] デフォルトでは、SDK は `Accept-Language` ヘッダーを読み取り、その quality 値を解析して、設定済みのロケールの中から最適な一致を選び、デフォルトロケールにフォールバックします。Flask ではこれを `before_request` フックで行い、FastAPI では HTTP ミドルウェアで行います。追加のセットアップは不要です。 [`get_locale`](/docs/python/reference/functions/get-locale) を使うと、リクエスト内のどこからでも解決されたロケールを取得できます。 ```python from gt_flask import get_locale # または: from gt_fastapi import get_locale get_locale() ``` ## カスタム検出を提供する [#custom] 明示的な選択 (クエリパラメータ、クッキー、またはパスプレフィックス) を優先するには、`initialize_gt` に `get_locale` コールバックを渡します。カスタムコールバックを指定すると、`Accept-Language` による検出は完全に置き換えられます。つまり、独自のコールバックを指定した場合、`Accept-Language` は参照されません。 ```python def detect_locale(request): return request.args.get("lang") or request.cookies.get("locale") or "en" initialize_gt(app, default_locale="en", locales=["es", "fr"], get_locale=detect_locale) ``` ```python def detect_locale(request): return request.query_params.get("lang") or request.cookies.get("locale") or "en" initialize_gt(app, default_locale="en", locales=["es", "fr"], get_locale=detect_locale) ``` 返した値は、そのリクエストに対してそのまま使われます。コールバックが `None` などの falsy な値を返した場合、ロケールは設定されたデフォルトロケール (`Accept-Language` ではなく) に解決されます。異なる動作にしたい場合は、明示的なフォールバックを返してください。 *注: 組み込みの `Accept-Language` 検出とは異なり、カスタムコールバックの戻り値は設定された `locales` に対して再検証されません。対応しているロケールを返すか、未対応の値は自分で解決してください。* ## Next steps - /docs/python/guides/translating-strings - /docs/python/guides/configuring - /docs/python/guides/declaring-variables - /docs/python/guides/storing-translations