File overview
i18n.yml controls locales, file mapping, model profiles, and optional advanced routing. i18n.jsonc is still supported for compatibility.
Starter config
hyperlocalise init.
When groups is omitted, Hyperlocalise automatically uses one implicit default group with:
- all locales from
locales.targets - all bucket names from
buckets
Locales
locales.source: source locale.locales.targets: list of target locales.- optional
locales.fallbacks: fallback order per locale.
Buckets
buckets map source files to target output templates.
Each file mapping uses:
from: source path templateto: target path template
{{source}}, {{target}}, and {{localeDir}} in templates. {{localeDir}} resolves to an empty segment when target equals source, and to the target locale otherwise.
CSV file mapping patterns
Use bucket file mappings to model CSV workflows. Per-locale files:run can update consistently.
Groups
groups.<name> defines what to process together.
targets: subset oflocales.targetsbuckets: list of bucket names
groups is optional for beginner configs. Add it when you want to split execution by locale or file set.
LLM profiles
llm.profiles.<name> fields:
provider:openai,azure_openai,anthropic,gemini,bedrock,lmstudio,groq,mistral, orollamamodel: provider model idsystem_prompt(optional): explicit system-message templateuser_prompt(optional): explicit user-message templateprompt(deprecated, optional): legacy prompt template used as system fallback
{{source}}{{target}}{{input}}
Rules
llm.rules choose profile per group.
priority: higher winsgroup: group nameprofile: profile name
llm.rules is optional. When no rule matches a group, Hyperlocalise falls back to llm.profiles.default.
Cache
cache configures the remote caching client.
enabled(optional): enable remote caching forrun.endpoint(optional unlessenabled=true): remote cache service endpoint.project_key_env(optional unlessenabled=true): environment variable that contains the project cache key.timeout_seconds(optional): remote cache request timeout in seconds.
Advanced example
Generate a starter
i18n.yml for your project.
Validation tips
- If you omit
groups, every bucket runs for every target locale. - Keep group targets inside
locales.targets. - Keep group buckets aligned with
bucketskeys. - Keep profile names consistent between
profilesandrules.