|Labs
デモを予約プラットフォーム
React (Lingo Compiler)
Alpha
React MCPReact (i18n)旧CLI(v0)
非推奨

Lingo.dev Compiler

  • 仕組み
  • セットアップ
  • Compiler クイックスタート

フレームワーク

  • Next.js 連携
  • Vite + React

ガイド

  • ロケールの切り替え
  • 自動複数形変換
  • 手動オーバーライド
  • ビルドモード
  • プロジェクト構成
  • 翻訳プロバイダー
  • カスタムロケールリゾルバー
  • 開発ツール

リファレンス

  • ベストプラクティス
  • 設定リファレンス
  • トラブルシューティング
  • 移行ガイド
  • 最適化
  • 出力形式

移行ガイド

Alpha

Lingo.dev Compiler はアルファ版です。動作は安定しておらず、本番環境での利用は推奨されません。API はリリースごとに変更される可能性があります。

このガイドでは、従来の lingo.dev compiler パッケージから現在の @lingo.dev/compiler パッケージへの移行方法を説明します。新しいパッケージでは、スコープ付きの npm 名、シンプルになった API、プラグインベースの Vite 連携、そしてメタデータ用の新しい .lingo/ ディレクトリが導入されています。

変更点の概要#

項目変更前(lingo.dev)変更後(@lingo.dev/compiler)
パッケージ名lingo.dev@lingo.dev/compiler
Next.js 連携設定を直接変更withLingo() の非同期ラッパー
Vite 連携手動設定lingoCompilerPlugin
LingoProviderloadDictionary prop が必要prop 不要
メタデータディレクトリlingo/.lingo/
オプトインディレクティブ'use i18n' が必要任意(デフォルトですべて翻訳)
importfrom "lingo.dev/react"from "@lingo.dev/compiler/react"

移行手順#

1

パッケージを置き換える

古いパッケージを削除し、新しいパッケージをインストールします。

bash
npm uninstall lingo.dev
npm install @lingo.dev/compiler
2

import を更新する

すべての import パスを置き換えます。

ts
// Before
import { LingoProvider, useLingoContext } from "lingo.dev/react";

// After
import { LingoProvider, useLingoContext } from "@lingo.dev/compiler/react";
3

Next.js の設定を更新する(該当する場合)

Next.js の設定は、非同期関数として定義する必要があります。

ts
// Before
import { withLingo } from "lingo.dev/next";
const nextConfig = {};
export default withLingo(nextConfig, { /* options */ });

// After
import type { NextConfig } from "next";
import { withLingo } from "@lingo.dev/compiler/next";

const nextConfig: NextConfig = {};

export default async function (): Promise<NextConfig> {
  return await withLingo(nextConfig, {
    sourceRoot: "./app",
    sourceLocale: "en",
    targetLocales: ["es", "de", "fr"],
    models: "lingo.dev",
  });
}

非同期関数のラッパーは必須です。同期 export のままだとビルドは失敗します。詳しくは Next.js Integration をご覧ください。

4

Vite の設定を更新する(該当する場合)

手動設定は lingoCompilerPlugin に置き換えてください。

ts
// vite.config.ts
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import { lingoCompilerPlugin } from "@lingo.dev/compiler/vite";

export default defineConfig({
  plugins: [
    lingoCompilerPlugin({
      sourceRoot: "src",
      sourceLocale: "en",
      targetLocales: ["es", "de", "fr"],
      models: "lingo.dev",
    }),
    react(), // Must come AFTER lingoCompilerPlugin
  ],
});
5

LingoProvider をシンプルにする

loadDictionary prop は不要になりました。compiler が辞書の読み込みを自動で処理します。

tsx
// Before
import { LingoProvider } from "lingo.dev/react";

<LingoProvider loadDictionary={loadDictionary}>
  <App />
</LingoProvider>

// After
import { LingoProvider } from "@lingo.dev/compiler/react";

<LingoProvider>
  <App />
</LingoProvider>
6

メタデータディレクトリを移動する

メタデータディレクトリの名前を lingo/ から .lingo/ に変更します。

bash
mv lingo/ .lingo/

古いディレクトリ名を参照している場合は、.gitignore を更新してください。.lingo/ ディレクトリはバージョン管理にコミットする必要があります。

7

'use i18n' ディレクティブを更新する(任意)

新しいパッケージでは、'use i18n' は任意です。デフォルトでは、sourceRoot 内のすべてのファイルが翻訳対象になります。オプトインの挙動を維持したい場合は、設定で useDirective: true を指定してください。

ts
{
  useDirective: true, // Keep requiring 'use i18n' in each file
}

useDirective を削除するか、false に設定すると、ファイル内の 'use i18n' ディレクティブも削除できます。sourceRoot 内のすべてのファイルが自動的に翻訳されます。

8

再ビルドして確認する

開発サーバーを起動し、翻訳が正しく表示されることを確認します。

bash
npm run dev

以下を確認してください。

  • 疑似翻訳ツールが [!!! ... !!!] マーカーを生成すること(有効な場合)
  • これまで翻訳されていたすべての文字列が引き続き機能すること
  • .lingo/metadata.json ファイルが作成または更新されること

次のステップ#

セットアップ
セットアップ手順を一通り確認
設定リファレンス
新しい設定オプションを一覧で確認
Next.js Integration
Next.js 向けの移行ポイントを詳しく解説
Vite + React
Vite 向けの移行ポイントを詳しく解説

このページは役に立ちましたか?

Max PrilutskiyMax Prilutskiy·更新済み 4か月前·2分で読めます