Skip to main content
INI files store keyed strings for desktop apps, games, and other tools that use [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 as locales/en-US/messages.ini.

Configure your files

Use this i18n.yml for the example, or add its file mapping to your existing bucket. See path templates for other layouts.

Translate

Install the CLI and set OPENAI_API_KEY in your project’s .env.local or shell. You can also configure another AI provider.
The dry run previews the work. The second command writes translations to the configured target path and updates the lockfile. Hyperlocalise Platform native projects also accept .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 as section.key, for example Home.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