20 lines
1.3 KiB
Markdown
20 lines
1.3 KiB
Markdown
# Menu and UI text (`BmGame\Localization\<LANG>\*.<lang>`)
|
|
|
|
The menus, HUD, character bios, riddles, credits and other UI strings are UE3 localization files, one folder
|
|
per language (INT, ITA, FRA, DEU, ESN, ESM, POL, POR, RUS, JPN, KOR), ~37 files and ~7,000 strings each
|
|
(`FRONTEND`, `GFxUI`, `Bios`, `Credits`, `PC`, `RIDDLER`, ...). ackit reads and writes them with
|
|
`ackit/loctext.py` through `Workspace.texts`.
|
|
|
|
## Format
|
|
- UTF-16LE with a BOM (`FF FE`), CRLF line ends; the first line is empty. (`INT\Version.int` and
|
|
`VersionData.int` are plain ASCII build IDs, not UI text: ackit ignores them.)
|
|
- `[Section]` lines, `Key=Value` lines, `;` comments. A few values are in double quotes (`Quit="Quit game"`).
|
|
- File extension = language code (`FRONTEND.int`, `FRONTEND.FRA`); case varies, lookups are case-insensitive.
|
|
- Markers inside values (e.g. `\n`, button tags) are the game's own; ackit keeps them as plain text.
|
|
|
|
## Keys and writing
|
|
- Key: `MENU:<LANG>:<File>:<Section>:<Key>` (`#n` for a repeated key; none in the shipped files).
|
|
- Writing replaces only the value part of the edited lines (quotes kept); BOM, encoding, other lines and line
|
|
ends stay byte-identical. Values cannot contain line breaks; characters must fit the file's encoding.
|
|
- The files are rebuilt from the store's original copy + the applied edits, so reverting restores them exactly.
|