Feature Request: Add Multi-Language Support (i18n) + Offer Chinese Localization
Is your feature request related to a problem? Please describe.
I absolutely love MIDI Jar – it’s an incredibly comprehensive and useful tool for musicians, learners, and streamers! However, the current English-only interface creates a significant barrier for non-English speakers (especially Chinese-speaking users like myself) to fully utilize all its powerful features, such as the Chord Display, Circle of Fifths, Chord Quiz, and Chord Dictionary modules. Many Chinese users struggle with music theory terms in English, which limits our ability to take full advantage of MIDI Jar’s functionality (e.g., customizing the Circle of Fifths, understanding Chord Quiz scoring rules, or using the Chord Dictionary effectively).
Describe the solution you'd like
I propose implementing internationalization (i18n) for MIDI Jar using JSON-formatted language files to separate UI text from the core codebase. This is a standard, maintainable approach for Electron/React apps (which MIDI Jar uses) and would make it easy to add/maintain translations for different languages without modifying core functionality.
Suggested file structure:
src/locales/en.json (existing English strings)zh-CN.json (Simplified Chinese - I will fully contribute this!)zh-TW.json (Traditional Chinese - optional)
plaintext
Example of language file format:
// en.json
{
"chordDisplay.title": "Chord Display",
"circleOfFifths.displayMajor": "Display Major",
"chordQuiz.mode.random": "Random",
"settings.keyboard.theme": "Keyboard Theme",
"chordDictionary.detectMode": "DETECT",
"routing.latency": "Additional Latency"
}
// zh-CN.json
{
"chordDisplay.title": "和弦显示",
"circleOfFifths.displayMajor": "显示大调",
"chordQuiz.mode.random": "随机模式",
"settings.keyboard.theme": "键盘主题",
"chordDictionary.detectMode": "检测模式",
"routing.latency": "额外延迟"
}
Describe alternatives you've considered
N/A – JSON-based language files are the most lightweight and widely adopted solution for i18n in Electron/React projects like MIDI Jar. It aligns with the project’s existing tech stack and doesn’t introduce unnecessary complexity (e.g., heavy localization libraries).
Additional context
I am eager to contribute actively to this feature and can:
Help refactor hardcoded English UI strings into the JSON language file structure (following React/Electron i18n best practices)
Fully translate all UI text (including music theory terms like chords, intervals, modes, and Chord Quiz difficulty levels) from English to Simplified Chinese (zh-CN) with accurate and natural phrasing (ensuring consistency with standard Chinese music terminology)
Test the Chinese localization to ensure consistency across all modules (Chord Display, Circle of Fifths, Chord Quiz, Chord Dictionary, Routing, and Settings)
Assist with verifying Traditional Chinese (zh-TW) translation if needed
Ensure translated text fits UI layouts (e.g., no overflow in the Circle of Fifths or Chord Display modules)
Adding multi-language support will make MIDI Jar accessible to a much larger global audience (especially the large Chinese-speaking music community) while keeping the codebase clean and scalable. I’m happy to discuss implementation details (e.g., using i18next/react-i18next or a custom lightweight solution) and submit PRs for the changes.
Thank you for building such an amazing tool – it’s truly invaluable for the music community!
Feature Request: Add Multi-Language Support (i18n) + Offer Chinese Localization
Is your feature request related to a problem? Please describe.
I absolutely love MIDI Jar – it’s an incredibly comprehensive and useful tool for musicians, learners, and streamers! However, the current English-only interface creates a significant barrier for non-English speakers (especially Chinese-speaking users like myself) to fully utilize all its powerful features, such as the Chord Display, Circle of Fifths, Chord Quiz, and Chord Dictionary modules. Many Chinese users struggle with music theory terms in English, which limits our ability to take full advantage of MIDI Jar’s functionality (e.g., customizing the Circle of Fifths, understanding Chord Quiz scoring rules, or using the Chord Dictionary effectively).
Describe the solution you'd like
I propose implementing internationalization (i18n) for MIDI Jar using JSON-formatted language files to separate UI text from the core codebase. This is a standard, maintainable approach for Electron/React apps (which MIDI Jar uses) and would make it easy to add/maintain translations for different languages without modifying core functionality.
Suggested file structure:
src/locales/en.json (existing English strings)zh-CN.json (Simplified Chinese - I will fully contribute this!)zh-TW.json (Traditional Chinese - optional)
plaintext
Example of language file format:
Describe alternatives you've considered
N/A – JSON-based language files are the most lightweight and widely adopted solution for i18n in Electron/React projects like MIDI Jar. It aligns with the project’s existing tech stack and doesn’t introduce unnecessary complexity (e.g., heavy localization libraries).
Additional context
I am eager to contribute actively to this feature and can:
Help refactor hardcoded English UI strings into the JSON language file structure (following React/Electron i18n best practices)
Fully translate all UI text (including music theory terms like chords, intervals, modes, and Chord Quiz difficulty levels) from English to Simplified Chinese (zh-CN) with accurate and natural phrasing (ensuring consistency with standard Chinese music terminology)
Test the Chinese localization to ensure consistency across all modules (Chord Display, Circle of Fifths, Chord Quiz, Chord Dictionary, Routing, and Settings)
Assist with verifying Traditional Chinese (zh-TW) translation if needed
Ensure translated text fits UI layouts (e.g., no overflow in the Circle of Fifths or Chord Display modules)
Adding multi-language support will make MIDI Jar accessible to a much larger global audience (especially the large Chinese-speaking music community) while keeping the codebase clean and scalable. I’m happy to discuss implementation details (e.g., using i18next/react-i18next or a custom lightweight solution) and submit PRs for the changes.
Thank you for building such an amazing tool – it’s truly invaluable for the music community!