Next.js 統合
Lingo.dev コンパイラーはNext.jsのApp Routerとシームレスに統合され、Reactコンポーネントを変更することなくビルド時のローカリゼーションを提供します。
以下の手順に従って、Next.jsアプリケーションに多言語サポートを追加しましょう。
または、Next.jsデモプロジェクトを探索して、コンパイラーの動作を試してみてください。
前提条件
- Next.js 13+ (App Router使用)
- React 18+
- Node.js 18以上
dev
コマンドでturbopackを無効化
ステップ1. パッケージのインストール
lingo.devパッケージをインストールします:
npm install lingo.dev
ステップ2. Next.jsの設定
コンパイラーをnext.config.js
にインポートして設定します:
import lingoCompiler from "lingo.dev/compiler";
/** @type {import('next').NextConfig} */
const nextConfig = {
// 既存のNext.js設定
};
export default lingoCompiler.next({
sourceLocale: "en",
targetLocales: ["es", "fr", "de"],
models: {
"*:*": "groq:mistral-saba-24b",
},
})(nextConfig);
ステップ3. 認証の設定
Lingo.dev コンパイラーはコンテンツをAI翻訳エンジンに送信してローカライズを行うため、最初に認証が必要です。
オプション1. Lingo.devエンジン
Lingo.devコンパイラーはLingo.devエンジンをAI翻訳エンジンとして使用できます。動的モデル選択、自動ルーティング、翻訳メモリ、用語集サポートを提供します。無料版と有料版があります。
認証するには、次のコマンドを実行してください:
npx lingo.dev@latest login
ブラウザフローに問題がある場合は、.env.local
にLINGODOTDEV_API_KEY
を手動で追加できます:
# .env.local
LINGODOTDEV_API_KEY=...
トークンはLingo.devエンジンのプロジェクト設定で確認できます。
オプション2. 代替LLMプロバイダー
または、サポートされているLLMプロバイダーからモデルを使用することもできます:
APIキーを.env.local
に追加してください:
# .env.local
GROQ_API_KEY=gsk_...
GOOGLE_API_KEY=...
OPENROUTER_API_KEY=...
MISTRAL_API_KEY=...
注意: LLMプロバイダーでアカウントを有効化し、Compilerで使用する前に利用規約に同意していることを確認してください。
ステップ4. プロバイダーの追加
ルートレイアウト(app/layout.tsx
)にプロバイダーをインポートします:
import { LingoProvider, loadDictionary } from "lingo.dev/react/rsc";
export default function RootLayout({
children,
}: {
children: React.ReactNode;
}) {
return (
<LingoProvider loadDictionary={(locale) => loadDictionary(locale)}>
<html>
<body>{children}</body>
</html>
</LingoProvider>
);
}
ステップ5. オプション:ロケールスイッチャーの追加
言語切替コンポーネントを作成します:
import { LocaleSwitcher } from "lingo.dev/react/client";
export function Header() {
return (
<header>
<nav>
<LocaleSwitcher locales={["en", "es", "fr", "de"]} />
</nav>
</header>
);
}
ステップ6. ビルドとテスト
開発サーバーを起動します:
npm run dev
コンパイラーは自動的に以下を実行します:
- 翻訳可能なコンテンツについてReactコンポーネントをスキャン
- 翻訳キーの抽出
- AI駆動の翻訳の生成
lingo/
ディレクトリに最適化された翻訳ファイルの作成
http://localhost:3000
にアクセスして、多言語アプリケーションの動作を確認してください。
設定オプション
コンパイラの動作をカスタマイズできます:
export default lingoCompiler.next({
sourceLocale: "en",
targetLocales: ["es", "fr", "de", "ja"],
sourceRoot: "app", // Next.jsのデフォルト
lingoDir: "lingo", // 翻訳ファイルディレクトリ
rsc: true, // React Server Componentsサポートを有効化
debug: false, // デバッグログを有効化
})(nextConfig);
サーバーコンポーネントとクライアントコンポーネント
Lingo.dev コンパイラはサーバーコンポーネントとクライアントコンポーネントの両方に対応しています:
サーバーコンポーネント
サーバーコンポーネントはビルド時に処理され、完全な翻訳サポートが提供されます:
// app/page.tsx
export default function HomePage() {
return (
<div>
<h1>Welcome to our app</h1>
<p>This content is automatically translated</p>
</div>
);
}
クライアントコンポーネント
クライアントコンポーネントは最適化された翻訳バンドルを受け取ります:
"use client";
import { useState } from "react";
export function InteractiveComponent() {
const [count, setCount] = useState(0);
return (
<div>
<p>You clicked {count} times</p>
<button onClick={() => setCount(count + 1)}>Click me</button>
</div>
);
}
本番環境へのデプロイ
-
アプリケーションをビルドする:
npm run build
-
翻訳ファイルをコミットする:
git add lingo/ git commit -m "Add translations"
-
お好みのプラットフォーム(Vercel、Netlifyなど)を使用してデプロイする
Next.jsアプリは、ユーザー設定またはURLパターンに基づいて、自動的にローカライズされたコンテンツを提供します。
次のステップ
- 高度な設定: カスタマイズオプション
- FAQ: よくある質問とトラブルシューティング
- 仕組み: ビルドプロセスの理解