# node: エラー処理とフォールバック URL: https://generaltranslation.com/ja/docs/node/guides/error-handling.mdx --- title: エラー処理とフォールバック description: 訳文が利用できない場合に何が起こるのか、またその対処方法 --- ## デフォルトのフォールバック動作 翻訳を利用できない場合 — ロケールがサポートされていない、翻訳ファイルが見つからない、または CDN に接続できない場合など — `gt-node` は `defaultLocale` の原文の文字列を返します。翻訳がなくても、アプリがクラッシュすることはありません。 ```js import { getGT } from 'gt-node'; app.get('/api/greeting', async (req, res) => { const gt = await getGT(); // スペイン語の翻訳が利用できない場合、英語の原文を返す res.json({ message: gt('Hello, world!') }); }); ``` このフォールバックは自動です。訳文が見つからない場合でも、翻訳呼び出しを `try/catch` で囲む必要はありません。 ## 未設定のロケール `locales` に設定されていないロケールへのリクエストが来た場合、翻訳関数は `defaultLocale` にフォールバックします。 ```js initializeGT({ defaultLocale: 'en', locales: ['en', 'es', 'fr'], // 日本語は含まれていない }); // Accept-Language: ja のリクエスト // gt('Hello!') → 'Hello!' を返す(英語へのフォールバック) ``` 新しいロケールに対応するには、`locales` 配列に追加し、訳文を再生成します: ```bash npx gt translate ``` ## 利用可能なロケールの確認 [`getLocales()`](/docs/node/api/get-locales) と [`getDefaultLocale()`](/docs/node/api/get-default-locale) を使うと、runtime で利用可能なロケールを確認できます。 ```js import { getLocales, getDefaultLocale } from 'gt-node'; app.get('/api/locales', (req, res) => { res.json({ supported: getLocales(), default: getDefaultLocale(), }); }); ``` ## API レスポンスで翻訳を扱う API を構築する際は、コンテンツがフォールバック言語であることを明示したい場合があります。 ```js import { getGT, getLocale, getDefaultLocale } from 'gt-node'; app.get('/api/greeting', async (req, res) => { const gt = await getGT(); const locale = getLocale(); const defaultLocale = getDefaultLocale(); res.json({ message: gt('Hello, world!'), locale, isFallback: locale !== defaultLocale, }); }); ``` ## 翻訳のデバッグ ### 現在アクティブなロケールを確認する ```js import { getLocale } from 'gt-node'; app.use((req, res, next) => { console.log(`[i18n] Request locale: ${getLocale()}`); next(); }); ``` ### 訳文が読み込まれているか確認する 開発では、`gt-node` は API 経由で on-demand に翻訳します。訳文が読み込まれていないように見える場合は、次を確認してください。 1. `GT_API_KEY` と `GT_PROJECT_ID` が設定されていることを確認する 2. ロケールが `locales` 配列に含まれていることを確認する 3. サーバーログにエラーがないか確認する ### 本番環境チェックリスト デプロイ前に、以下を確認してください。 * [ ] `npx gt translate` が build script で正常に実行される * [ ] すべてのターゲットロケールが `gt.config.json` に含まれている * [ ] `GT_PROJECT_ID` が本番環境に設定されている * [ ] `GT_API_KEY` が本番環境に設定されている (`npx gt translate` 用) 開発では、翻訳は on-demand で行われるため、遅くなることがあります。本番環境では、必ず `npx gt translate` を使って翻訳を事前生成してください。詳しくは [CLI docs](/docs/cli/translate) を参照してください。 ## 次のステップ * [文字列翻訳パターン](/docs/node/guides/strings) — 2 つの翻訳方法 * [ローカル翻訳の保存](/docs/node/guides/local-tx) — オフライン利用のために翻訳をバンドルする * [`getLocale` API リファレンス](/docs/node/api/get-locale)