Configuration

Configuration reference

Every key under defaults: (and packages:), with its default value.

Locales & state#

KeyDefaultDescription
source_localeenLocale you author in and translate from
target_locales[de, sv]Locales to translate to
locales_dirconfig/localesWhere the <namespace>.<locale>.yml files live
state_dir.i18n-stateWhere source-hash drift state is tracked

Provider & models#

KeyDefaultDescription
provideropenaiRubyLLM provider symbol
translate.modelgpt-5-miniModel for bulk translation
translate.batch_size20Keys per translation request
quality.modelgpt-4o-miniModel for the AI quality pass
quality.british_spellingsfalseFlag en-only American→British drift
quality.terminologybusinessbusiness, banking, none, or a path to a YAML list

Prompt scaffolding#

KeyDefaultDescription
context"a business application"One-phrase product/domain description
placeholder_style"%<name>s, %<count>s"Interpolation syntax to preserve
glossary{}Domain terms the model must not paraphrase
language_guides{}Per-locale guidance (inline text or file: path)

Validators#

KeyDefaultDescription
validators.missingtrueReport keys absent from a target locale
validators.outdatedtrueReport keys whose source changed after translation
validators.duplicate_valuesfalseFlag non-AR keys duplicating an activerecord.attributes.* value
validators.manual_editsfalseFlag hand-edited target values so they aren't overwritten

Strict tiers#

Each tier lists the violation types that make validate exit non-zero.

KeyDefaultUsed by
strict.strict[missing, outdated]validate --strict
strict.strict_all[missing, outdated, duplicate_value]validate --strict-all

Hooks#

KeyDefaultDescription
after_translate["bundle exec i18n-tasks normalize -p"]Commands run (in order) after a successful translate
Add bundle exec rails i18n:export to after_translate if you also export locales for JavaScript.

Packages#

KeyDefaultDescription
packages[]Per-location overrides; each has a path plus any keys to override

See Multiple packages.