Language Pt2: Use English metrics in wide messages, Language Development GUI, D-Pad Menu Localization - #2605
Language Pt2: Use English metrics in wide messages, Language Development GUI, D-Pad Menu Localization#2605JackTriton wants to merge 2 commits into
Conversation
… Menu Localization
|
Could you provide a zpf file? I believe that d-pad localization screenshot is going to be completely unreadable on a CRT, and potentially some of the adjusted normal text too. |
|
@flagrama |
|
Can't properly test because Japanese language is fundamentally broken on actual console. That's going to be needed to be fixed on Dev first. |
|
@flagrama |
|
I've been with the project since the beginning. I know how patches work. I apply that patch and try to talk to the kokiri twin in the house you start in and it crashes. If it crashes on console that means it crashes on ares. Load it into ares, display any textbox, and then display the debug output in-game to see what the error is. I assume it is a misalignment. This needs to be resolved in a separate PR because it affects current Dev which is why I had fewer details here and a more specific message in Discord. |
|
Please do not offer to share the base rom, it could cause legal issues. |
|
@flagrama The D-Pad ones though, will be the issue |
…s, D-Pad text contrast adjustments, Full Localization of Lang GUI



This PR is the continuation of RE:Language and reopened PR of #2594
The main goal is to make languages with larger alphabets easier to support, especially when they need to use the Japanese wide-character table instead of the limited English character table.
What changed
Character widths
Language files can now define individual character widths with
CHAR_WIDTHS.This is useful when a replacement character does not have the same width as the original character slot. It works with both single-byte and wide characters.
For example, characters such as
Œ, accented Latin characters, or Cyrillic letters can now use widths that better match their actual appearance.English metrics for wide messages
A new language option is available:
This keeps wide-character encoding, but uses English-like text size, line spacing, wrapping, and positioning.
It also adjusts item icons and choice arrows so they remain aligned with the new message layout.
When this option is disabled, the original Japanese metrics are still used.
D-Pad menu localization
The D-Pad menu can now use text from the selected language.
This includes:
Languages without a
dpad_menusection continue to use the English defaults.(The image was captured using Japanese as example)
Language Development GUI
This PR also adds a development tool for editing language files.
It can:
property.jsonThe editor keeps section data separated and does not export workspace or Memo data into
property.json.Why this is needed
The original English character table is too small for some languages.
For example, Russian requires more alphabetic characters than the original English table can hold. Using the wide-character table solves the space problem, but previously forced the language to use Japanese text spacing and sizing.
This PR allows those languages to use the larger wide-character table while keeping an English-like message layout.
Per-character widths are also needed because replacement characters do not always match the width of the character slot they replace.
The GUI is included because manually maintaining larger
property.jsonfiles has become difficult and error-prone as more language-specific settings are added.Review notes
The changes are grouped by feature so they can be reviewed in this order:
Language.py— language settings and validationPatches.py— writing language data to the ROMMessages.pyandTextBox.py— wrapping and text layoutASM/c/message.candASM/src/hacks/message.asm— in-game message renderingASM/c/text.candASM/c/dungeon_info.c— localized D-Pad textGUI/devtools/language-editor— language development toolThe new options are optional, and existing language files remain compatible.