Menu

アップグレード

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. 翻訳ファイル構造の更新

上記のファイル構造比較に基づいて、翻訳ファイル構造を新しい形式に更新します。

その後、必要に応じて分割します。例えば、DashboardLandingを独立して分離し、それぞれDashboard.jsonLanding.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に追加するだけで済みます。