-
Notifications
You must be signed in to change notification settings - Fork 0
Custom Languages
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.
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.jsonintentionally uses the generic Spanish locale tages.
Do not simply rename it toes-ES.json.
Custom locale files go directly under:
cHiDeScaler-Neo/
└─ locales/
Use the bundled English catalog as the translation template:
locales/en-US.json
Reference files:
Example for Italian:
en-US.json
↓
it-IT.json
Final layout:
cHiDeScaler-Neo/
└─ locales/
├─ en-US.json
├─ ja-JP.json
├─ ...
└─ it-IT.json
References:
Change the first three metadata entries.
Italian example:
{
"_language_name": "Italiano",
"_language_code": "IT",
"_language_tag": "it-IT"
}The language name shown in Neo's Language menu.
Using the language's own native name is recommended.
A short code shown on Neo's Language button.
A short 2–4 character code is recommended for GUI layout.
The BCP 47 locale tag.
Normally this should match the JSON filename.
For example:
"capture.start": "▶ Start"can become:
"capture.start": "▶ Avvia"Do not rename the key on the left.
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.
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.
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.
Check that:
- the JSON syntax is valid;
-
capture.startexists; - 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 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.
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.
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.