設定リファレンス
@lingo.dev/compilerの全設定オプションの完全なリファレンスです。
コアオプション
| オプション | 型 | デフォルト | 説明 |
|---|---|---|---|
sourceRoot | string | "src" | 翻訳対象のソースコードを含むルートディレクトリ |
lingoDir | string | ".lingo" | 翻訳メタデータとキャッシュのディレクトリ |
sourceLocale | string | (必須) | ソースロケールコード(例:"en"、"en-US") |
targetLocales | string[] | (必須) | 翻訳先のターゲットロケールコードの配列 |
useDirective | boolean | false | オプトイン翻訳のために'use i18n'ディレクティブを必須とするかどうか |
models | string | object | "lingo.dev" | 翻訳プロバイダーの設定(翻訳プロバイダーを参照) |
prompt | string | undefined | カスタム翻訳プロンプトテンプレート |
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.usePseudotranslator | boolean | false | 実際のAIの代わりに疑似翻訳を使用(開発時に推奨) |
dev.translationServerStartPort | number | 60000 | 翻訳サーバーの開始ポート(60000~60099の範囲で自動検索) |
dev.translationServerUrl | string | undefined | カスタム翻訳サーバーURL(高度な使用) |
例
{
dev: {
usePseudotranslator: true, // Fast fake translations
translationServerStartPort: 60000, // Default port range
}
}
なぜ疑似翻訳機能を使うのか? APIコールが不要で即座に動作し、何が翻訳されるかを正確に表示し、さまざまなテキスト長でUIをテストできます。しかもAPIコストがかかりません。
ロケールの永続化
ロケール変更の永続化方法を設定します。
| オプション | 型 | デフォルト | 説明 |
|---|---|---|---|
localePersistence.type | "cookie" | "cookie" | 現在はCookieベースの永続化のみサポートされています |
localePersistence.config.name | string | "locale" | Cookie名 |
localePersistence.config.maxAge | number | 31536000 | Cookieの最大有効期間(秒単位、デフォルト:1年) |
例
{
localePersistence: {
type: "cookie",
config: {
name: "user-locale",
maxAge: 31536000, // 1 year
},
},
}
カスタム永続化が必要ですか? カスタムロケールリゾルバーを実装して、localStorage、URLパラメータ、またはデータベース永続化を使用できます。
複数形化
自動複数形検出を設定します。
| オプション | 型 | デフォルト | 説明 |
|---|---|---|---|
pluralization.enabled | boolean | true | ICU MessageFormat自動検出を有効化 |
pluralization.model | string | "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
};
よくある質問
すべてのオプションを設定する必要がありますか?
いいえ。sourceLocaleとtargetLocalesのみが必須です。その他はすべて適切なデフォルト値があります。
sourceRootとlingoDirの違いは何ですか?
sourceRootはソースコードが存在する場所です(例: ./app、src)。lingoDirは翻訳メタデータが保存される場所です(デフォルト: .lingo)。
ロケールごとに異なるモデルを使用できますか?
はい。modelsオプションでロケールペアマッピングを使用します。翻訳プロバイダーを参照してください。
.lingo/をgitにコミットすべきですか?
はい。.lingo/ディレクトリには翻訳メタデータとキャッシュが含まれています。コードと一緒にバージョン管理する必要があります。
複数形化を無効にする方法は?
pluralization.enabled: falseを設定してください。これにより複数形の検出がスキップされ、LLM呼び出しが削減されます。
次のステップ
- 翻訳プロバイダー — LLMプロバイダーの設定
- ビルドモード — translateとcache-onlyの理解
- カスタムロケールリゾルバー — カスタムロケール検出の実装
- ベストプラクティス — 推奨設定