アップグレード
Nexty.dev v1.1.7以前の国際化機能から新しい構造にアップグレードします。
ファイル構造の比較
旧ファイル構造
i18n/
├── messages/ # 翻訳ファイルディレクトリ
│ ├── en.json # 英語翻訳
│ ├── zh.json # 中国語翻訳
│ └── ja.json # 日本語翻訳
├── request.ts # next-intlリクエスト設定
└── routing.ts # ルートと言語設定
新ファイル構造
i18n/
├── messages/ # 翻訳ファイルディレクトリ
│ ├── en/ # 英語翻訳
│ │ └── common.json
│ ├── zh/ # 中国語翻訳
│ │ └── common.json
│ └── ja/ # 日本語翻訳
│ └── common.json
├── request.ts # next-intlリクエスト設定
└── routing.ts # ルートと言語設定
アップグレード手順
ステップ1. 翻訳ファイル構造の更新
上記のファイル構造比較に基づいて、翻訳ファイル構造を新しい形式に更新します。
その後、必要に応じて分割します。例えば、Dashboard
とLanding
を独立して分離し、それぞれDashboard.json
とLanding.json
ファイルを作成します。
ステップ2. リクエスト設定の更新
request.ts
ファイルを以下のコードに置き換えます:
import { getRequestConfig } from 'next-intl/server';
import { routing } from './routing';
export default getRequestConfig(async ({ requestLocale }) => {
let locale = await requestLocale;
if (!locale || !routing.locales.includes(locale as any)) {
locale = routing.defaultLocale;
}
const common = (await import(`./messages/${locale}/common.json`)).default;
const Landing = (await import(`./messages/${locale}/Landing.json`)).default;
const Dashboard = (await import(`./messages/${locale}/Dashboard.json`)).default;
return {
locale,
messages: {
Landing,
Dashboard,
...common
}
};
});
これでアップグレードが完了です。今後、新しい翻訳ファイルを追加する際は、request.ts
に追加するだけで済みます。