Alpha
Lingo.dev Compiler je ve fázi alpha. Je nestabilní, nedoporučuje se pro produkční nasazení a API se mohou mezi verzemi měnit.
Konfigurační objekt Lingo.dev Compileru určuje, jak se vaše React aplikace překládá při buildu. Na této stránce najdete přehled všech dostupných možností včetně typů, výchozích hodnot a příkladů použití.
Základní možnosti#
| Možnost | Typ | Výchozí hodnota | Popis |
|---|---|---|---|
sourceRoot | string | "src" | Adresář obsahující přeložitelné komponenty. Relativně ke kořenovému adresáři projektu. |
lingoDir | string | ".lingo" | Adresář pro metadata překladu a soubory cache. |
sourceLocale | string | povinné | Kód jazyka zdrojového obsahu (např. "en"). |
targetLocales | string[] | povinné | Pole kódů cílových jazyků (např. ["es", "de", "fr"]). |
useDirective | boolean | false | Když je nastaveno na true, překládají se jen soubory s direktivou 'use i18n'. Když je nastaveno na false, překládají se všechny soubory v sourceRoot. |
models | string | object | "lingo.dev" | Konfigurace poskytovatele překladu. Řetězec nastaví výchozího poskytovatele pro všechny páry jazyků. Objekt mapuje páry jazyků na konkrétní poskytovatele. |
prompt | string | undefined | Vlastní systémový prompt pro překladové LLM. Podporuje zástupné symboly {SOURCE_LOCALE} a {TARGET_LOCALE}. |
buildMode | "translate" | "cache-only" | "translate" | Určuje, zda Compiler vytváří nové překlady, nebo používá pouze překlady z cache. |
Vývojářské možnosti#
Možnosti pod klíčem dev řídí chování během vývoje:
| Možnost | Typ | Výchozí hodnota | Popis |
|---|---|---|---|
dev.usePseudotranslator | boolean | false | Generuje okamžité testovací překlady (např. [!!! Welcome !!!]) místo volání LLM. API klíč není potřeba. |
dev.translationServerStartPort | number | 60000 | Výchozí port pro lokální překladový server. Compiler automaticky najde volný port v rozsahu 60000-60099. |
dev.translationServerUrl | string | undefined | Přepíše URL překladového serveru. Hodí se pro vlastní nastavení nebo vzdálené překladové servery. |
Perzistence jazyka#
Možnosti pod localePersistence určují, jak se ukládá a načítá jazyk vybraný uživatelem:
| Možnost | Typ | Výchozí hodnota | Popis |
|---|---|---|---|
localePersistence.type | string | "cookie" | Mechanismus perzistence. Aktuálně podporuje "cookie". |
localePersistence.config.name | string | "locale" | Název cookie používané k uložení jazyka. |
localePersistence.config.maxAge | number | 31536000 | Max-age cookie v sekundách (výchozí hodnota je 1 rok). |
Pro vlastní logiku perzistence (localStorage, řešení založené na URL, hlavičky) viz Vlastní resolvery jazyků.
Pluralizace#
Možnosti pod pluralization řídí automatickou detekci a generování tvarů množného čísla:
| Možnost | Typ | Výchozí hodnota | Popis |
|---|---|---|---|
pluralization.enabled | boolean | true | Zapíná nebo vypíná automatickou detekci pluralizace. |
pluralization.model | string | "groq:llama-3.1-8b-instant" | LLM model používaný k detekci tvarů množného čísla ve zdrojovém textu. Doporučuje se menší a rychlejší model, protože detekce je jednodušší úloha než samotný překlad. |
Podrobnosti o tom, jak detekce plurálů funguje, najdete v části Automatická pluralizace.
Proměnné prostředí#
Proměnné prostředí konfiguraci přepisují nebo doplňují:
| Proměnná | Kdy je povinná | Popis |
|---|---|---|
LINGO_BUILD_MODE | nepovinné | Přepisuje konfigurační možnost buildMode. Nastavte na "translate" nebo "cache-only". |
LINGODOTDEV_API_KEY | Při použití modelů "lingo.dev" | API klíč pro lokalizační engine Lingo.dev. Získáte přes npx lingo.dev@latest login. |
OPENAI_API_KEY | Při použití modelů "openai:*" | API klíč OpenAI. |
ANTHROPIC_API_KEY | Při použití modelů "anthropic:*" | API klíč Anthropic. |
GOOGLE_API_KEY | Při použití modelů "google:*" | API klíč Google AI. |
GROQ_API_KEY | Při použití modelů "groq:*" | API klíč Groq. |
MISTRAL_API_KEY | Při použití modelů "mistral:*" | API klíč Mistral. |
OPENROUTER_API_KEY | Při použití modelů "openrouter:*" | API klíč OpenRouter. |
Kompletní příklad#
// 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, {
sourceRoot: "./app",
lingoDir: ".lingo",
sourceLocale: "en",
targetLocales: ["es", "de", "fr", "ja"],
useDirective: false,
models: {
"*:*": "lingo.dev",
"*:ja": "anthropic:claude-3-5-sonnet",
},
prompt: "Translate UI text from {SOURCE_LOCALE} to {TARGET_LOCALE}. Keep it concise.",
buildMode: "translate",
dev: {
usePseudotranslator: true,
translationServerStartPort: 60000,
},
localePersistence: {
type: "cookie",
config: {
name: "locale",
maxAge: 31536000,
},
},
pluralization: {
enabled: true,
model: "groq:llama-3.1-8b-instant",
},
});
}