Skip to content

Custom Languages

animeojisan edited this page Sep 4, 2026 · 1 revision

Adding Custom Languages

English | 日本語

cHiDeScaler-Neo is designed so users can add languages that are not bundled with Neo.

No source-code modification or rebuild is required. Place a translated JSON file in Neo's locales/ folder, restart Neo, and the language is automatically added to the Language menu.


Built-in languages

Neo v697 includes:

Language File
日本語 ja-JP.json
English en-US.json
简体中文 zh-CN.json
繁體中文(台灣) zh-TW.json
한국어 ko-KR.json
Português (Brasil) pt-BR.json
Español es.json
Français fr-FR.json
Deutsch de-DE.json

es.json intentionally uses the generic Spanish locale tag es.
Do not simply rename it to es-ES.json.


Adding a new language

1. Open the locales folder

Custom locale files go directly under:

cHiDeScaler-Neo/
└─ locales/

2. Copy en-US.json

Use the bundled English catalog as the translation template:

locales/en-US.json

Reference files:


3. Rename the file using a BCP 47 language tag

Example for Italian:

en-US.json
↓
it-IT.json

Final layout:

cHiDeScaler-Neo/
└─ locales/
   ├─ en-US.json
   ├─ ja-JP.json
   ├─ ...
   └─ it-IT.json

References:


4. Edit the three metadata fields

Change the first three metadata entries.

Italian example:

{
  "_language_name": "Italiano",
  "_language_code": "IT",
  "_language_tag": "it-IT"
}

_language_name

The language name shown in Neo's Language menu.

Using the language's own native name is recommended.

_language_code

A short code shown on Neo's Language button.

A short 2–4 character code is recommended for GUI layout.

_language_tag

The BCP 47 locale tag.

Normally this should match the JSON filename.


5. Translate values only

For example:

"capture.start": "▶ Start"

can become:

"capture.start": "▶ Avvia"

Do not rename the key on the left.


Do not change placeholders

Placeholders such as:

{name}

must remain unchanged.

For example:

"preset.delete_confirm": "Delete preset '{name}'?"

may be translated as:

"preset.delete_confirm": "Eliminare il preset '{name}'?"

but {name} must remain present.


Partial translations are supported

Missing custom translation keys automatically fall back to English.

This means a custom locale can be tested before every string has been translated.

For example:

{
  "_language_name": "Italiano",
  "_language_code": "IT",
  "_language_tag": "it-IT",

  "capture.start": "▶ Avvia",
  "capture.stop": "Ferma"
}

will use Italian for those entries and English for missing entries.

A custom locale must contain at least:

capture.start

to be accepted as a locale file.

For a translation intended for public use, copying the complete current en-US.json and translating as many values as possible is recommended.


6. Restart Neo

Save the JSON, close Neo, and start it again.

At startup Neo scans:

locales/*.json

for custom locale files.

A successfully detected language appears in the Language menu, for example:

Italiano [IT]

Select it to activate the custom translation.


Troubleshooting

The language does not appear

Check that:

  • the JSON syntax is valid;
  • capture.start exists;
  • the file is directly under locales/;
  • the file does not use the same filename as a built-in locale.

Built-in filenames reserved by Neo:

ja-JP.json
en-US.json
zh-CN.json
zh-TW.json
ko-KR.json
pt-BR.json
es.json
fr-FR.json
de-DE.json

For example, use:

it-IT.json

for Italian.


Some status/statistics text may remain English

Some internal status and statistics text intentionally uses Neo's bundled catalog for diagnostic consistency.

For ordinary GUI strings, missing entries in a custom locale fall back to English.


Updating a translation

Neo updates may add new GUI translation keys.

After updating Neo, compare your locale with the latest:

and translate any newly added keys.

Older custom locale files remain usable because missing keys fall back to English.


Sharing a translation

A custom translation can be distributed as a single:

<BCP 47 tag>.json

file.

Users only need to copy it to:

cHiDeScaler-Neo/locales/

and restart Neo.

No modified executable or custom build is required.

Clone this wiki locally