Ga naar hoofdinhoud

Vertaalmethoden

Rosetta ondersteunt tien vertaalmethoden. Elk talenpaar kan een andere methode gebruiken — u bent niet gebonden aan één aanpak voor uw hele project.

Vergelijking van methoden

LLM-providers

Kwaliteitsgericht, Markdown-bewust, compatibel met coaching. Het beste voor projecten met veel content.

MethodeSleutelWat het doet
llm (standaard)OPENROUTER_API_KEYLLM via OpenRouter — 200+ modellen, auto-routing
llm-coachedOPENROUTER_API_KEYLLM + grammaticaregels, woordenboeken, stijlnotities
openaiOPENAI_API_KEYDirecte OpenAI API (gpt-4o, gpt-4o-mini)
anthropicANTHROPIC_API_KEYDirecte Anthropic API (Claude Sonnet, Haiku, Opus)
geminiGEMINI_API_KEYDirecte Google Gemini API (Flash, Pro) — gratis niveau

Traditionele MT

Gericht op snelheid en kosten. Het beste voor grote volumes aan key-value paren.

MethodeSleutelWat het doet
google-translateGOOGLE_TRANSLATE_API_KEYGoogle Cloud Translation API v2 (130+ talen)
deeplDEEPL_API_KEYDeepL API met glossary-ondersteuning (30+ talen)
microsoft-translatorMICROSOFT_TRANSLATOR_API_KEYAzure Cognitive Services Translator (100+ talen)
libretranslate(zelf-gehost)Zelf-gehoste LibreTranslate (AGPL, gratis)

Infrastructuur

MethodeSleutelWat het doet
api(per provider)Thin HTTP-client voor elk REST-vertaaleindpunt

Beslissingsboom


llm — LLM-vertaling (Standaard)

Vertaalt via elke LLM op OpenRouter. Dit is de standaardmethode en de meest veelzijdige.

Hoe het werkt:

  1. Bundelt sleutels in batches (standaard 30/batch) met register- en contextinstructies
  2. Verzendt naar OpenRouter als een gestructureerde prompt
  3. Ontleedt de JSON-respons
  4. Valideert elke vertaling via de quality gate
  5. Schrijft goedgekeurde vertalingen weg, probeert mislukte vertalingen opnieuw of wijst deze af

Wanneer te gebruiken: De meeste projecten. Vooral sites met veel content en Markdown, waar codeblokken en shortcodes afgeschermd moeten worden.

Configuratie:

{
"defaultMethod": "llm",
"model": "google/gemini-3.5-flash"
}

llm-coached — Gecoachte LLM-vertaling

Hetzelfde als llm, maar met grammaticaregels, terminologiewoordenboeken en stijlnotities geïnjecteerd in elke prompt.

Hoe het werkt:

  1. Laadt coachinggegevens uit .rosetta/coaching/<locale>.json of de coaching/-directory van een plug-in
  2. Injecteert grammaticaregels, woordenboektermen en stijlnotities in de systeemprompt
  3. Woordenboektermen die overeenkomen met bronsleutels worden opgenomen als vereiste terminologie
  4. De vertaling verloopt zoals bij llm, waarbij coachinggegevens precisie toevoegen

Wanneer te gebruiken: Talen met weinig bronnen (low-resource), domeinspecifieke terminologie (juridisch, medisch), formele registers, of elk geval waarin de generieke LLM-uitvoer niet precies genoeg is.

Formaat van coachinggegevens:

.rosetta/coaching/fr.json
{
"grammar_rules": [
"French adjectives agree in gender and number with the noun they modify",
"Use 'vous' for formal contexts, 'tu' for informal"
],
"dictionary": {
"dashboard": "tableau de bord",
"deployment": "déploiement",
"settings": "paramètres"
},
"style_notes": "Prefer active voice. Avoid anglicisms where a native French term exists."
}

Zie ook: Gids voor talen met weinig bronnen


openai — Directe OpenAI API

Vertaalt direct via de OpenAI Chat Completions API. Geen OpenRouter-tussenpersoon — uw sleutel, uw account, uw gebruiksdashboard.

Modellen: gpt-4o (standaard), gpt-4o-mini

Functies:

  • ✅ Markdown-bewust (contentvertaling)
  • ✅ Ondersteuning voor coaching (grammaticaregels, woordenboek-overrides, stijlnotities)
  • ✅ JSON-modus voor gestructureerde key-value uitvoer
  • ✅ Exponentiële backoff met nieuwe pogingen (retry)

Configuratie:

{
"pairs": {
"en:fr": { "method": "openai", "model": "gpt-4o-mini" }
}
}
export OPENAI_API_KEY=sk-proj-...

Haal uw sleutel op via platform.openai.com/api-keys.

anthropic — Directe Anthropic API

Vertaalt direct via de Anthropic Messages API. Gebruikt de system parameter voor coachinggegevens, wat Anthropic's prompt caching mogelijk maakt.

Modellen: claude-sonnet-4-6 (standaard), claude-haiku-4-5, claude-opus-4-7

Functies:

  • ✅ Markdown-bewust (contentvertaling)
  • ✅ Ondersteuning voor coaching (grammaticaregels, woordenboek-overrides, stijlnotities)
  • ✅ System prompt caching (spreidt de kosten van coaching over batches)
  • ✅ Exponentiële backoff met nieuwe pogingen (retry)

Configuratie:

{
"pairs": {
"en:ja": { "method": "anthropic", "model": "claude-haiku-4-5" }
}
}
export ANTHROPIC_API_KEY=sk-ant-...

Haal uw sleutel op via console.anthropic.com.

gemini — Directe Google Gemini API

Vertaalt direct via de Google Gemini generateContent API. Gratis niveau beschikbaar — het beste startpunt zonder kosten.

Modellen: gemini-2.5-flash (standaard), gemini-2.5-pro

Functies:

  • ✅ Markdown-bewust (contentvertaling)
  • ✅ Ondersteuning voor coaching (grammaticaregels, woordenboek-overrides, stijlnotities)
  • ✅ JSON-responsmodus via responseMimeType
  • ✅ Gratis niveau (royaal dagelijks quotum)
  • ✅ Exponentiële backoff met nieuwe pogingen (retry)

Configuratie:

{
"pairs": {
"en:ko": { "method": "gemini", "model": "gemini-2.5-pro" }
}
}
export GEMINI_API_KEY=AI...

Haal uw sleutel op via aistudio.google.com/apikey.

Modelvalidatie

De directe LLM-providers (openai, anthropic, gemini) valideren uw modelstring bij het eerste gebruik. Dit ondervangt drie categorieën van fouten:

Verkeerd methodeformaat — Het gebruik van een modelpad in OpenRouter-stijl bij een directe provider:

[WARN] OpenAI: model "google/gemini-3.5-flash" looks like an OpenRouter path.
Direct providers use bare model names (e.g., "gpt-4o").
To use OpenRouter models, set method to 'llm' instead.

Verkeerde provider — Het gebruik van een model van een compleet andere provider:

[WARN] Gemini: model "claude-sonnet-4-6" is an Anthropic model.
This provider (gemini) cannot serve Anthropic models.
Use --method anthropic or set "method": "anthropic" in config.

Verouderd of verkeerd gespeld model — Bij de eerste API-aanroep haalt rosetta de actuele modellenlijst van de provider op en controleert uw model hiertegen:

[WARN] Gemini: model "gemini-1.5-flash" not found in available models.
Similar models: gemini-2.0-flash, gemini-2.5-flash, gemini-2.5-pro
The API call will proceed — the provider will give the final verdict.

:::note Dit zijn waarschuwingen, geen fouten Modelvalidatie registreert waarschuwingen, maar blokkeert de API-aanroep niet. De provider-API geeft het definitieve oordeel — een toekomstige modelnaam zou aan een ander patroon kunnen voldoen, en we willen dit niet blokkeren op basis van heuristiek. :::


google-translate — Google Cloud Translation API

Directe integratie met Google Cloud Translation API v2. Gebruikt de REST API — geen SDK, geen serviceaccount. Alleen de API-sleutel.

Wanneer te gebruiken: Grote volumes aan key-value stringparen waarbij snelheid en kosten belangrijker zijn dan nuance. Ondersteunt standaard meer dan 130 talen.

Beperkingen:

  • ⚠️ Niet Markdown-bewust. Zal codeblokken, shortcodes en interpolatievariabelen beschadigen.
  • Geen controle over register/toon
  • Geen coaching of handhaving van terminologie
npx i18n-rosetta sync --method google-translate

:::tip Automatische detectie Als alleen GOOGLE_TRANSLATE_API_KEY is ingesteld (geen OpenRouter-sleutel), schakelt rosetta automatisch over naar Google Translate. Er is geen configuratiewijziging nodig. :::

deepl — DeepL API

Directe integratie met de DeepL-vertaal-API. Ondersteunt glossaries (woordenlijsten) voor consistente terminologie.

Wanneer te gebruiken: Europese talen waarin DeepL uitblinkt (Duits, Frans, Spaans, Nederlands, Pools, enz.). Glossary-ondersteuning handhaaft consistente terminologie zonder coachinggegevens.

Functies:

  • ✅ Automatische detectie van free/pro-eindpunten (:fx achtervoegsel bij gratis sleutels)
  • ✅ Aanmaken en beheren van glossaries
  • ✅ Controle over het formaliteitsniveau
  • ⚠️ Niet Markdown-bewust — alleen key-value paren

Configuratie:

{
"pairs": {
"en:de": { "method": "deepl" }
}
}
export DEEPL_API_KEY=your-key-here

Haal uw sleutel op via deepl.com/pro-api.

microsoft-translator — Azure Cognitive Services

Directe integratie met Microsoft Translator Text API v3.

Wanneer te gebruiken: Enterprise-omgevingen met bestaande Azure-infrastructuur. Ondersteunt meer dan 100 talen, waaronder vele die niet door Google Translate worden gedekt.

Functies:

  • ✅ Tot 100 segmenten per verzoek (hoge doorvoer)
  • ✅ Optionele regioparameter voor optimalisatie van latentie
  • ⚠️ Niet Markdown-bewust — alleen key-value paren
  • ⚠️ Geen contentvertaling — alleen key-value paren

Configuratie:

{
"pairs": {
"en:ar": { "method": "microsoft-translator" }
}
}
export MICROSOFT_TRANSLATOR_API_KEY=your-key
export MICROSOFT_TRANSLATOR_REGION=global # optional

Haal uw sleutel op via de Azure Portal → Cognitive Services → Translator.

libretranslate — Zelf-gehoste vertaling

Zelf-gehoste open-source vertaling met behulp van LibreTranslate. Draait lokaal of op uw eigen infrastructuur — geen API-kosten, volledige datasoevereiniteit.

Wanneer te gebruiken: Projecten die offline vertaling, naleving van dataprivacy (AVG/GDPR) of kosteloze werking vereisen. Vooral nuttig voor CI-pijplijnen die niet afhankelijk mogen zijn van externe API's.

Functies:

  • ✅ Zelf-gehost — geen externe API-aanroepen
  • ✅ Gratis en open source (AGPL-3.0)
  • ✅ Docker-implementatie beschikbaar
  • ⚠️ Niet Markdown-bewust — alleen key-value paren
  • ⚠️ Geen contentvertaling — alleen key-value paren
  • ⚠️ Kwaliteit varieert per talenpaar

Installatie:

# Run LibreTranslate locally with Docker
docker run -d -p 5000:5000 libretranslate/libretranslate

# Configure (optional — defaults to localhost:5000)
export LIBRETRANSLATE_API_URL=http://localhost:5000/translate
{
"pairs": {
"en:es": { "method": "libretranslate" }
}
}

api — Remote Translation API

Een thin HTTP-client voor door de community gehoste of IP-beschermde vertaaleindpunten. Rosetta verzendt sleutels en ontvangt vertalingen terug — het bevat zelf geen vertaallogica.

Wanneer te gebruiken: Wanneer vertaalmethoden server-side worden gehost (bijv. bedrijfseigen coachinggegevens, gefinetunede modellen, FST-pijplijnen die niet gedistribueerd kunnen worden).

{
"pairs": {
"en:crk": {
"method": "api",
"endpoint": "https://api.example.com/v1/translate",
"apiKey": "your-key"
}
}
}

:::note OCAP-compatibele community-vertaling De api-methode vormt de brug naar OCAP-compatibele, door de community gehoste vertaling. Inheemse en minderheidstaalgemeenschappen kunnen hun eigen vertaaleindpunten hosten — waardoor coachinggegevens, gefinetunede modellen en taalkundig IP onder controle van de community blijven — terwijl Rosetta hiermee verbinding maakt als een thin client.

Zie Een taal met weinig bronnen ondersteunen voor de volledige handleiding over community-hosting, en Een methode aanbieden via API voor de vereisten van eindpunten. :::


Configuratie per talenpaar

De echte kracht is het combineren van methoden per talenpaar:

i18n-rosetta.config.json
{
"version": 3,
"pairs": {
"en:fr": { "method": "deepl" },
"en:ja": { "method": "openai", "model": "gpt-4o" },
"en:ko": { "method": "gemini" },
"en:ar": { "method": "microsoft-translator" },
"en:crk": { "methodPlugin": "crk-coached-v1" }
}
}

Dit vertaalt Frans via DeepL (glossary-ondersteuning), Japans via OpenAI (kwaliteit), Koreaans via Gemini (gratis niveau), Arabisch via Microsoft Translator (dekking), en Plains Cree via een gecoachte plug-in (gespecialiseerd).

Plug-ins

Plug-ins zijn vooraf verpakte vertaalrecepten voor specifieke talenparen. Het zijn JSON-manifesten — geen code — die rosetta vertellen welke methode moet worden gebruikt, met welke instellingen, en welke kwaliteit is gebenchmarkt.

:::tip Van eval harness naar productie in één commando Plug-ins die zijn ontwikkeld en bewezen in de eval harness kunnen direct worden geïnstalleerd — de methode die u daar valideert, wordt hier geïmplementeerd met een enkel plugin install-commando. Zie MT-evaluatie voor de volledige evaluatieworkflow. :::

i18n-rosetta plugin install ./french-formal-v1/
i18n-rosetta plugin list
i18n-rosetta plugin remove french-formal-v1

Zie de Plug-in specificatie voor het volledige manifestformaat.


Wisselen van provider

Wisselt u tussen methoden? Het modelformaat en de omgevingsvariabele (env var) veranderen — hier is het overzicht:

OpenRouter → Directe provider

i18n-rosetta.config.json
{
"pairs": {
"en:fr": {
- "method": "llm",
- "model": "openai/gpt-4o"
+ "method": "openai",
+ "model": "gpt-4o"
}
}
}
Environment variables
- export OPENROUTER_API_KEY=sk-or-v1-...
+ export OPENAI_API_KEY=sk-proj-...

Belangrijkste verschillen:

  • OpenRouter gebruikt het provider/model-formaat (bijv. openai/gpt-4o). Directe providers gebruiken kale modelnamen (bijv. gpt-4o).
  • Elke directe provider heeft zijn eigen omgevingsvariabele (OPENAI_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY).
  • Als u het verkeerde modelformaat gebruikt, zal rosetta u waarschuwen — zie Modelvalidatie.

Directe provider → OpenRouter

i18n-rosetta.config.json
{
"pairs": {
"en:ja": {
- "method": "anthropic",
- "model": "claude-sonnet-4-6"
+ "method": "llm",
+ "model": "anthropic/claude-sonnet-4-6"
}
}
}

:::tip Wanneer OpenRouter vs Direct te gebruiken Gebruik OpenRouter wanneer u tussen modellen wilt wisselen zonder omgevingsvariabelen te wijzigen, of wanneer u toegang wilt tot meer dan 200 modellen via één enkele sleutel. Gebruik directe providers wanneer u eenvoudigere facturering, lagere latentie (geen tussenpersoon) of toegang tot provider-specifieke functies zoals Anthropic's prompt caching wilt. :::


Kostenvergelijking

Geschatte kosten per 1.000 vertaalde sleutels (gaat uit van ~10 tokens per sleutel, 30 sleutels per batch):

MethodeKosten / 1K sleutelsSnelheidKwaliteitHet beste voor
gemini (Flash)Gratis (binnen niveau)SnelGoedAan de slag gaan, persoonlijke projecten
google-translate~$0.02SnelstVoldoendeGrote volumes, Europese talen
deepl~$0.02SnelGoedEuropese talen, terminologie
microsoft-translator~$0.01SnelVoldoendeAzure-omgevingen, brede taaldekking
libretranslateGratis (zelf-gehost)VarieertRedelijkAir-gapped, AVG/GDPR, CI-pijplijnen
gemini (Pro)~$0.07GemiddeldZeer goedKwaliteitsgevoelig, gratis quotum
openai (GPT-4o-mini)~$0.01SnelGoedBudget LLM
openai (GPT-4o)~$0.10GemiddeldZeer goedKwaliteitsgevoelig
anthropic (Haiku)~$0.01SnelGoedBudget LLM
anthropic (Sonnet)~$0.10GemiddeldZeer goedKwaliteitsgevoelig
anthropic (Opus)~$0.50TraagUitstekendMaximale kwaliteit
llm (OpenRouter)Varieert per modelVarieertVarieertModelvergelijking, experimenteren

:::note Dit zijn schattingen De werkelijke kosten zijn afhankelijk van de lengte van uw brontekst, de batchgrootte en prijswijzigingen van de provider. Controleer de actuele prijspagina van elke provider voor de exacte tarieven. :::


Zie ook