# gt-next: General Translation Next.js SDK: よくある質問 URL: https://generaltranslation.com/ja/docs/next/faqs.mdx --- title: よくある質問 description: gt-next に関するよくあるご質問 --- ### 本番環境で翻訳が不足している場合はどうなりますか? 本番環境で一部のコンテンツに翻訳がない場合、gt-next は自動的に元のソーステキストにフォールバックします。アプリはそのまま正しく表示され、ユーザーにはその箇所だけデフォルト言語で表示されます。 ### なぜ CLI ツールをインストールする必要があるのですか? CLI ツールは、すべての `` コンポーネント内の内容を解析し、その翻訳を事前に生成します。これにより、アプリを本番環境にデプロイする時点で、必要な翻訳がすべて揃った状態になります。 開発環境では、開発用 API キーを使って必要に応じて翻訳できるため、CLI ツールは不要です。 ### `` コンポーネントはどこから翻訳を取得しますか? `` は、ライブラリの設定に応じて、さまざまな場所から翻訳を読み込めます。 * プロジェクト ID があれば、ライブラリは無料の CDN を利用できます * 翻訳をバンドル内にローカルで保存することもできます * その 2 つを組み合わせることもできます 詳しくは、[loadTranslations のドキュメント](/docs/next/api/config/load-translations)を参照してください。 開発中は、`` コンポーネントは API を呼び出し、その API が小規模な AI モデルを使って一時的な翻訳を生成するため、実装しながらホットリロードで確認できます。これらの翻訳はどこにも保存されず、アプリに返されるだけです。 本番環境では、`` はこの動作を行わないため、API キーがクライアントに公開されることはありません。 ### AI翻訳は動的コンテンツや変数でも使えますか? `` コンポーネントは、動的コンテンツや変数を直接翻訳することには対応していません。翻訳結果が再レンダリングのたびに変わる可能性があるためです。ただし、動的コンテンツを ``、``、または `` コンポーネントでラップすれば、`` の中に含めることはできます。これは、他のライブラリで文字列補間を扱う方法と似ています。 gt-next には、runtime にコンテンツを翻訳し、動的コンテンツにも対応するサーバーサイドの [``](/docs/next/api/components/tx) コンポーネントもありますが、API キーが必要です。 ### GTサーバーに依存せずにアプリをデプロイできますか? はい。翻訳はご自身で用意し、ご自身のバンドルやCDNから読み込めます。ローカルファイルから翻訳を読み込む方法について詳しくは、[loadTranslations のドキュメント](/docs/next/api/config/load-translations)を参照してください。 ### なぜ Jest で `ReferenceError: TextEncoder is not defined` が発生するのですか? `jest-environment-jsdom` は、`TextEncoder` を含まない古いバージョンの jsdom を使用しています。GT のライブラリでは、ハッシュ化のために内部的にこれを使用しています。Jest が jsdom への依存関係を更新すれば、この問題はいずれ解消されます (新しい jsdom バージョンではすでに `TextEncoder` がサポートされています) 。それまでの間は、setup ファイルで polyfill を追加できます。 ```js title="jest.setup.js" const { TextEncoder, TextDecoder } = require('util'); global.TextEncoder = TextEncoder; global.TextDecoder = TextDecoder; ``` 次に、Jestの設定に追加します。 ```json title="jest.config.json" { "setupFiles": ["./jest.setup.js"] } ``` ### i18next または next-intl から移行するには? 他の i18n ライブラリから移行するための手順については、[移行ガイド](/docs/next/guides/migration)を参照してください。