Skip to content

Add the function to resize the Character Widths for custom Languages and Easier Way to create Language Files - #2594

Closed
JackTriton wants to merge 10 commits into
OoTRandomizer:Devfrom
JackTriton:Language-Custom-Width
Closed

Add the function to resize the Character Widths for custom Languages and Easier Way to create Language Files#2594
JackTriton wants to merge 10 commits into
OoTRandomizer:Devfrom
JackTriton:Language-Custom-Width

Conversation

@JackTriton

@JackTriton JackTriton commented Jun 27, 2026

Copy link
Copy Markdown

Added the function to change the character sizes using Language file

Changes

  • property.json as well as property_build.py now has CHAR_WIDTHS, which can determine which size each characters would use

    • This function can be applied for both English and Japanese characters
  • property.json as well as property_build.py now has wide_text_english_metrics option in lang_property, which allows to use English text properties (character heights, line starts and character sizes) on Japanese wide characters

    • This function allows to have more characters with the property of Alphabets

Why this PR is needed

This PR needs to be included for further Language developments
For example, French has Œ and if we replace other characters as this character, we had to change the width of it to match the size which is pre determined
Another example, Russian has 66 characters as English metrics, which is more than the limits of the English character table
With this PR, both of these problems will be resolved

@fenhl fenhl added Type: Enhancement New feature or request Component: ASM/C Changes some internals of the ASM/C libraries Status: Needs Review Someone should be looking at it Status: Needs Testing Probably should be tested Component: Patching Affects the patching of the ROM labels Jun 27, 2026
@JackTriton

Copy link
Copy Markdown
Author

I'm considering opening European language branches after this as Draft
Language I'm considering would be:

  • German
  • French
  • Spanish
  • Russian

Each one of them will be standalone PR, and since I don't have much knowledges besides Japanese and English, I need others' help

What I'll do:

  • Texture creation, including Font, text related textures and Title
  • Some translation works
  • Base of the language properties

What I need help from community:

  • Grammatical / Reference accurate translations

I hope we can have much more languages in the future

@JackTriton

JackTriton commented Jun 28, 2026

Copy link
Copy Markdown
Author

I'll create additional GUI software that allows managing language edits easier as well

Also, I'm considering expanding the spaces for wide character width table to be 0x800 instead of 0x500 (or if permits, 0x1000) for bitwise looks
This would results in 512 entries in total instead of 320 entries (for 0x1000, 1024 entries)

EDIT: I'll create the GUI using Electron / Node JS

@JackTriton JackTriton changed the title Add the function to resize the Character Widths for custom Languages Add the function to resize the Character Widths for custom Languages and Easier Way to create Language Files Jun 28, 2026
@JackTriton

JackTriton commented Jun 28, 2026

Copy link
Copy Markdown
Author

I made the Language GUI Tool based on Electron / Node JS
It has not only the both works of property_build.py and makediff.py, but also has the ability to load the completed / WIP property.json as well

Language_Tool_Image

It's also available in 6 UI languages for better uses (English, Japanese, German, French, Spanish, Russian)

You can use it by typing in node GUI/devtools/language-editor/run.js in the Terminal of VSCode

@fenhl fenhl added the Status: Under Consideration Developers are considering whether to accept or decline the feature described label Jun 28, 2026
@JackTriton

Copy link
Copy Markdown
Author

I found some glitches / feature loss in the GUI
I'll update it soon

@JackTriton

Copy link
Copy Markdown
Author

Added several features like copy / paste, multi selection and lots of things

Updated_visual

It's now available with Chinese and Korean as well

Also, it allows changing the theme as well

@JackTriton

JackTriton commented Jun 29, 2026

Copy link
Copy Markdown
Author

Upcoming features I'd like to add in GUI tool:

  • ROM dump Plain text feature (including language patched roms but this would be intermediate feature)
  • Memo function
  • Right click context menu
  • Easier control code programming

@JackTriton

Copy link
Copy Markdown
Author

I added all of the presented features to it

@JackTriton

JackTriton commented Jul 5, 2026

Copy link
Copy Markdown
Author

I'm going to update one last time for GUI
I'm considering these below features

  • Bug fix where \x05\x40 always being <name> instead <line break> now will be work using just line-breaks
  • Bug fix for some dict cases being different before and after the saving
  • iQue Chinese table dumper

@JackTriton

Copy link
Copy Markdown
Author

I need to inspect the wide character usage
I think some operations regarding it is wrongly calculated
I'll run some tests and hope it'll be fixed

@JackTriton

Copy link
Copy Markdown
Author

Also, I have upcoming features for Lang GUI
Below this is the thing I would do (which will be added with time)

  • Change import
  • Git style change viewer
  • Customizable / reorderable workspace

@JackTriton

Copy link
Copy Markdown
Author

Sorry I have to reopen the branch using the new one
Since it got so much things, I think it's better to doing it from 0 again

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Component: ASM/C Changes some internals of the ASM/C libraries Component: Patching Affects the patching of the ROM Status: Needs Review Someone should be looking at it Status: Needs Testing Probably should be tested Status: Under Consideration Developers are considering whether to accept or decline the feature described Type: Enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants