AI
Use AI models (OpenAI, Anthropic, Groq, Google, etc.) for flexible, high-quality translations.
The AI Translator uses the Vercel AI SDK to provide flexible, high-quality translations using any supported LLM provider.
Installation
pnpm add ai zod @ai-sdk/openaiYou can replace @ai-sdk/openai with any AI SDK provider:
# Anthropic (Claude)
pnpm add @ai-sdk/anthropic
# Google (Gemini)
pnpm add @ai-sdk/google
# Groq (Llama, Mixtral)
pnpm add @ai-sdk/groq
# Mistral
pnpm add @ai-sdk/mistral
# Azure OpenAI
pnpm add @ai-sdk/azureUsage
import { defineConfig, createAiTranslator } from '@terai/dev'
import { createOpenAI } from '@ai-sdk/openai'
const openai = createOpenAI({
apiKey: process.env.OPENAI_API_KEY
})
const translator = createAiTranslator({
model: openai('gpt-4o')
})
export default defineConfig({
projectLocale: 'en-US',
outLocales: ['es-ES', 'fr-FR', 'de-DE'],
outDir: './locale',
translator
})Options
| Option | Type | Default | Description |
|---|---|---|---|
model | LanguageModel | Required | The AI model to use for translation |
systemPrompt | string | Built-in prompt | Custom system prompt for translation |
Custom System Prompt
You can provide a custom system prompt for domain-specific translations:
import { defineConfig, createAiTranslator } from '@terai/dev'
import { createOpenAI } from '@ai-sdk/openai'
const openai = createOpenAI({
apiKey: process.env.OPENAI_API_KEY
})
const translator = createAiTranslator({
model: openai('gpt-4o'),
systemPrompt: `
You are a medical translation specialist.
Use proper medical terminology in all translations.
Maintain formal, professional tone suitable for healthcare applications.
`
})
export default defineConfig({
projectLocale: 'en-US',
outLocales: ['es-ES', 'fr-FR'],
outDir: './locale',
translator
})Built-in System Prompt Features
The default system prompt is optimized for application translation and includes:
- Variable preservation: Template variables (
${name},{count}) are never translated - UI awareness: Concise translations for buttons, labels, and menus
- Tone consistency: Maintains appropriate tone across all strings
- Cultural adaptation: Adapts references for target locales
Best Practices
- Choose the right model: Specific models may perform better for translation tasks
- Use Groq for speed: Llama models on Groq provide fast, cost-effective translations
- Custom prompts for domains: Use custom system prompts for specialized content (legal, medical, etc.)
- Test thoroughly: Always review translations for accuracy, especially for critical content
Provider Examples
Anthropic (Claude)
import { defineConfig, createAiTranslator } from '@terai/dev'
import { createAnthropic } from '@ai-sdk/anthropic'
const anthropic = createAnthropic({
apiKey: process.env.ANTHROPIC_API_KEY
})
const translator = createAiTranslator({
model: anthropic('claude-sonnet-4-20250514')
})
export default defineConfig({
projectLocale: 'en-US',
outLocales: ['es-ES', 'fr-FR'],
outDir: './locale',
translator
})Groq (Llama, Mixtral)
import { defineConfig, createAiTranslator } from '@terai/dev'
import { createGroq } from '@ai-sdk/groq'
const groq = createGroq({
apiKey: process.env.GROQ_API_KEY
})
const translator = createAiTranslator({
model: groq('llama-3.3-70b-versatile')
})
export default defineConfig({
projectLocale: 'en-US',
outLocales: ['es-ES', 'fr-FR'],
outDir: './locale',
translator
})Google (Gemini)
import { defineConfig, createAiTranslator } from '@terai/dev'
import { createGoogleGenerativeAI } from '@ai-sdk/google'
const google = createGoogleGenerativeAI({
apiKey: process.env.GOOGLE_API_KEY
})
const translator = createAiTranslator({
model: google('gemini-1.5-pro')
})
export default defineConfig({
projectLocale: 'en-US',
outLocales: ['es-ES', 'fr-FR'],
outDir: './locale',
translator
})