[section] headers. Use this guide to translate those values and understand
how Hyperlocalise flattens keys and writes them back.
Supported extensions: .ini.
Source file
Save this example aslocales/en-US/messages.ini.
Configure your files
Use thisi18n.yml for the example, or add its file mapping to your existing bucket.
See path templates for other layouts.
Translate
Install the CLI and setOPENAI_API_KEY in your
project’s .env.local or shell. You can also configure another
AI provider.
.ini uploads for file
translation jobs and segment review. See Supported formats.
Behavior and limitations
-
Keys before the first
[section]stay unprefixed. Keys inside a section flatten assection.key, for exampleHome.cta. -
Supports
=or:separators,;and#comments, inline comments after whitespace, and single- or double-quoted values. - Leading comments provide context. Writeback preserves sections, key order, comments, separators, and spacing.
-
Quoted values keep their quote style. Unquoted translations that contain
;,#, or leading or trailing spaces are written in double quotes. Quoted escapes\n,\t,\r,\\,\", and\'decode to those characters. Other backslash sequences stay as written. - New keys append to the matching section. Unknown sections are created at the end of the file in sorted order.
- Duplicate flattened keys, empty section names, unclosed quotes or headers, missing separators, and invalid UTF-8 are rejected.
Next steps
- Check translations before committing generated files.
- Local translation workflow explains repeat runs.
- Browse all file formats.

