Next.js クイックスタート

gt-nextを使って簡単にNext.jsアプリを国際化する

概要

このガイドでは、App Routerを使用している既存のNext.jsプロジェクトを国際化する方法について説明します。

Pages Routerを使用しているプロジェクトの場合は、Reactドキュメントに従ってください。

以下の3つの簡単なステップを説明します:

セットアップウィザードの実行

環境変数の追加

文字列のクリーンアップ

Next.jsのpages routerを使用していますか?代わりにReactクイックスタートガイドに従ってください。


セットアップ

1. セットアップウィザードの実行

セットアップウィザードがプロジェクトの国際化プロセスをガイドします。

npx gtx-cli@latest init

手動でプロジェクトをセットアップするには、手動セットアップガイドに従ってください。

セットアップウィザードは以下を行います:

  1. 必要なライブラリをインストールします。
  2. プロジェクトのサポートされる言語を設定します。
  3. プロジェクトのJSXコンポーネントを<T>コンポーネントでラップします。
  4. next.config.jsファイルにwithGTConfig()を追加します。
  5. プロジェクト用の本番APIキーとプロジェクトIDを生成します。

詳細についてはセットアップウィザードのドキュメントをご覧ください。

2. 環境変数の追加

セットアップウィザードはプロジェクトのルートに本番APIキーとプロジェクトIDを含む.env.localファイルを作成します。

ただし、開発モードでgt-nextを使用するには、本番用ではなく開発用APIキーを追加する必要があります。

ダッシュボードに移動します。 サイドバーのDeveloper Keysページに移動します。

Create Dev API Keyをクリックします。

プロジェクトIDと開発APIキーを環境に追加します。

.env.local
GT_API_KEY="YOUR_GT_API_KEY"
GT_PROJECT_ID="YOUR_GT_PROJECT_ID"

APIキーを保護してください!

開発キーは開発環境でのみ使用してください。 同様に、本番キーは本番環境でのみ使用してください。 APIキーを公開リポジトリにコミットしないでください!

3. 文字列のクリーンアップ

セットアップウィザードはプロジェクトのすべてのJSXコンポーネントを<T>コンポーネントでラップします。 ただし、文字列は影響を受けないことに気づくかもしれません。

例えば、次のような文字列定数がある場合:

Example.js
export default function Example() {
  const greeting = "Hello, world!";
  return <p>{greeting}</p>;
}

セットアップウィザードはこの文字列に触れません。

これを修正するには、useGT()フックとgetGT()関数を使用して文字列を翻訳できます。

Example.js
import { useGT } from "gt-next/client";
export default function Example() {
  const t = useGT();
  return <p>{t("Hello, world!")}</p>;
}

試してみましょう!

おめでとうございます!🥳 あなたのアプリは多言語対応になりました!実際に動作を確認してみましょう。

異なる言語でアプリを表示する

<LocaleSelector> コンポーネントをアプリに追加します。 これにより、アプリの言語を選択できるようになります。

ヒント: ブラウザの設定で言語を変更することもできます。

Next.jsアプリを開発モードで起動します。

npm run dev 

お好みのブラウザでアプリを開きます(通常は http://localhost:3000)。

トラブルシューティング


本番環境へのデプロイ

本番環境へのデプロイに関するガイドをご覧ください。

次のステップ

手動セットアップ

手動でセットアップを行いたい場合は、以下の手順に従ってください。

1. ライブラリのインストール

gt-nextgtx-cliライブラリをインストールします。

npm i gt-next
npm i gtx-cli --save-dev

2. withGTConfig()プラグインの追加

withGTConfig()next.config.jsファイルに追加します。 サポートしたい言語をロケールコードの配列として指定できます。

next.config.js
import { withGTConfig } from 'gt-next/config';
 
const nextConfig = {};
 
export default withGTConfig(nextConfig, {
  locales: ['pt', 'es'], // ポルトガル語とスペイン語のサポート
});

3. <T>コンポーネントの追加

翻訳可能にするために、ネストされたJSXコンテンツを<T>コンポーネントでラップします。 詳細については、<T>コンポーネントの使用ガイドをご確認ください。

Example.js
import { T } from "gt-next";
 
export default function Example() {
  return (
    <T>
      <p>
        これは翻訳されます。
      </p>
    </T>  
  );
}

翻訳すべきでないJSXコンテンツを指定するには、<Var>コンポーネントを使用します。

Example.js
import { T, Var } from "gt-next";
 
export default function Example() {
  return (
    <T>
      <p>
        これは翻訳されます。 <Var>これは翻訳されません。</Var>
      </p>
    </T>  
  );
}

文字列の場合は、翻訳のためにuseGT()またはgetGT()を使用できます。

Example.js
import { useGT } from "gt-next/client";
import { getGT } from "gt-next/server";
 
export default function Example() {
  const t = useGT(); // クライアントサイド
  const t = await getGT(); // サーバーサイド
  return (
    <p>
      {t("これは翻訳されます。")}
    </p>
  );
}

4. 環境変数の追加

APIキーとプロジェクトIDをローカル環境に追加します。

ダッシュボードに移動します。 サイドバーのDeveloper Keysページに移動します。

Create Dev API Keyをクリックします。

プロジェクトIDと開発APIキーを環境に追加します。

.env.local
GT_API_KEY="YOUR_GT_API_KEY"
GT_PROJECT_ID="YOUR_GT_PROJECT_ID"

APIキーを保護してください!

開発キーは開発環境でのみ使用してください。 同様に、本番キーは本番環境でのみ使用してください。 APIキーを公開リポジトリにコミットしないでください!