設定リファレンス

@lingo.dev/compilerの全設定オプションの完全なリファレンスです。

コアオプション

オプションデフォルト説明
sourceRootstring"src"翻訳対象のソースコードを含むルートディレクトリ
lingoDirstring".lingo"翻訳メタデータとキャッシュのディレクトリ
sourceLocalestring(必須)ソースロケールコード(例:"en""en-US"
targetLocalesstring[](必須)翻訳先のターゲットロケールコードの配列
useDirectivebooleanfalseオプトイン翻訳のために'use i18n'ディレクティブを必須とするかどうか
modelsstring | object"lingo.dev"翻訳プロバイダーの設定(翻訳プロバイダーを参照)
promptstringundefinedカスタム翻訳プロンプトテンプレート
buildMode"translate" | "cache-only""translate"ビルドモード(ビルドモードを参照)

{
  sourceRoot: "./app",
  lingoDir: ".lingo",
  sourceLocale: "en",
  targetLocales: ["es", "de", "fr", "ja"],
  useDirective: false,
  models: "lingo.dev",
  buildMode: "translate",
}

開発オプション

devオブジェクトを介して開発固有の動作を設定します:

オプションデフォルト説明
dev.usePseudotranslatorbooleanfalse実際のAIの代わりに疑似翻訳を使用(開発時に推奨)
dev.translationServerStartPortnumber60000翻訳サーバーの開始ポート(60000~60099の範囲で自動検索)
dev.translationServerUrlstringundefinedカスタム翻訳サーバーURL(高度な使用)

{
  dev: {
    usePseudotranslator: true, // Fast fake translations
    translationServerStartPort: 60000, // Default port range
  }
}

なぜ疑似翻訳機能を使うのか? APIコールが不要で即座に動作し、何が翻訳されるかを正確に表示し、さまざまなテキスト長でUIをテストできます。しかもAPIコストがかかりません。

ロケールの永続化

ロケール変更の永続化方法を設定します。

オプションデフォルト説明
localePersistence.type"cookie""cookie"現在はCookieベースの永続化のみサポートされています
localePersistence.config.namestring"locale"Cookie名
localePersistence.config.maxAgenumber31536000Cookieの最大有効期間(秒単位、デフォルト:1年)

{
  localePersistence: {
    type: "cookie",
    config: {
      name: "user-locale",
      maxAge: 31536000, // 1 year
    },
  },
}

カスタム永続化が必要ですか? カスタムロケールリゾルバーを実装して、localStorage、URLパラメータ、またはデータベース永続化を使用できます。

複数形化

自動複数形検出を設定します。

オプションデフォルト説明
pluralization.enabledbooleantrueICU MessageFormat自動検出を有効化
pluralization.modelstring"groq:llama-3.1-8b-instant"複数形検出に使用するLLMモデル

{
  pluralization: {
    enabled: true,
    model: "groq:llama-3.1-8b-instant", // Fast model for plural detection
  },
}

仕組み: コンパイラーはテキスト内の複数形(例:「5個のアイテムがあります」)を検出し、ICU MessageFormat({count, plural, one {1 item} other {# items}})に変換します。

パフォーマンス向上のため無効化: 複数形を使用しない場合は、この機能を無効にして複数形化のためのLLMコールをスキップできます。

翻訳プロバイダー

modelsオプションは、翻訳に使用するLLMプロバイダーを設定します。

シンプルな設定

すべての翻訳に単一のプロバイダーを使用します。

{
  models: "lingo.dev" // Recommended: Lingo.dev Engine
}

高度な設定

詳細な制御にはロケールペアマッピングを使用します:

{
  models: {
    "en:es": "groq:llama-3.3-70b-versatile", // English to Spanish
    "en:de": "google:gemini-2.0-flash",      // English to German
    "*:fr": "openai:gpt-4o",                 // Any locale to French
    "*:*": "anthropic:claude-3-5-sonnet",    // Fallback for all others
  }
}

パターン:

  • "source:target": 特定のロケールペア (例: "en:es")
  • "*:target": 任意のソースから特定のターゲットへ (例: "*:de")
  • "source:*": 特定のソースから任意のターゲットへ (例: "en:*")
  • "*:*": すべてのペアのフォールバック

プロバイダーの構文とAPIキーの設定については、翻訳プロバイダーを参照してください。

カスタム翻訳プロンプト

プレースホルダーを使用して翻訳プロンプトをカスタマイズします:

{
  prompt: `Translate from {SOURCE_LOCALE} to {TARGET_LOCALE}.
Use a formal tone and preserve all technical terms.
Do not translate brand names or product names.`
}

利用可能なプレースホルダー:

  • {SOURCE_LOCALE}: ソースロケールコード (例: "en")
  • {TARGET_LOCALE}: ターゲットロケールコード (例: "es")

コンパイラは、翻訳されるテキストに関するコンテキスト(コンポーネントの場所、周囲の要素)をカスタムプロンプトに追加します。

環境変数による上書き

環境変数を使用して設定を上書きします:

# Override build mode
LINGO_BUILD_MODE=cache-only npm run build

# Set API key
LINGODOTDEV_API_KEY=your_key_here
GROQ_API_KEY=gsk_...
GOOGLE_API_KEY=...
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
MISTRAL_API_KEY=...
OPENROUTER_API_KEY=...

完全な例

// next.config.ts
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, {
    // Core
    sourceRoot: "./app",
    lingoDir: ".lingo",
    sourceLocale: "en",
    targetLocales: ["es", "de", "fr", "ja"],
    useDirective: false,

    // Build mode
    buildMode: process.env.NODE_ENV === "production" ? "cache-only" : "translate",

    // Models
    models: {
      "en:es": "groq:llama-3.3-70b-versatile",
      "*:*": "lingo.dev",
    },

    // Custom prompt
    prompt: "Translate from {SOURCE_LOCALE} to {TARGET_LOCALE}. Use a professional tone.",

    // Development
    dev: {
      usePseudotranslator: true,
      translationServerStartPort: 60000,
    },

    // Locale persistence
    localePersistence: {
      type: "cookie",
      config: {
        name: "locale",
        maxAge: 31536000,
      },
    },

    // Pluralization
    pluralization: {
      enabled: true,
      model: "groq:llama-3.1-8b-instant",
    },
  });
}

TypeScript型

型安全性のために設定型をインポートします:

import type { LingoConfig } from "@lingo.dev/compiler";

const config: LingoConfig = {
  // ...config
};

よくある質問

すべてのオプションを設定する必要がありますか? いいえ。sourceLocaletargetLocalesのみが必須です。その他はすべて適切なデフォルト値があります。

sourceRootとlingoDirの違いは何ですか? sourceRootはソースコードが存在する場所です(例: ./appsrc)。lingoDirは翻訳メタデータが保存される場所です(デフォルト: .lingo)。

ロケールごとに異なるモデルを使用できますか? はい。modelsオプションでロケールペアマッピングを使用します。翻訳プロバイダーを参照してください。

.lingo/をgitにコミットすべきですか? はい。.lingo/ディレクトリには翻訳メタデータとキャッシュが含まれています。コードと一緒にバージョン管理する必要があります。

複数形化を無効にする方法は? pluralization.enabled: falseを設定してください。これにより複数形の検出がスキップされ、LLM呼び出しが削減されます。

次のステップ