Overview
KVantage is available in eight languages, making it accessible to users around the world. The application automatically detects your system’s locale and displays in the appropriate language.KVantage uses Android/Compose Multiplatform’s resource system for localization, with strings stored in XML files for each supported language.
Supported Languages
KVantage currently supports the following languages:English
Default language (values/)
Español (Spanish)
values-es/
日本語 (Japanese)
values-ja/ - Translated by the author
Deutsch (German)
values-de/
Français (French)
values-fr/
Português (Portuguese)
values-pt/
한국어 (Korean)
values-kr/
中文 (Chinese)
values-zh/
Translation Quality
Human Translated
English
Native language of the application
Japanese
Personally translated by the author (kosail)
AI Translated
The following languages were translated using AI assistance:- Spanish (Español)
- German (Deutsch)
- French (Français)
- Portuguese (Português)
- Korean (한국어)
- Chinese (中文)
How Language Detection Works
Automatic Locale Detection
KVantage automatically selects the appropriate language based on your system configuration:- System Locale: KVantage reads your operating system’s locale setting
- Language Match: Attempts to find a matching translation resource folder
- Fallback: If no match is found, defaults to English
- System locale
ja_JP→ Usesvalues-ja/(Japanese) - System locale
es_MX→ Usesvalues-es/(Spanish) - System locale
pt_BR→ Usesvalues-pt/(Portuguese) - System locale
en_US→ Usesvalues/(English)
Resource Folder Structure
Translations are stored in the Compose resources directory:Translated Strings
KVantage translates all user-facing text, including:Main Interface
- Performance profile names (Performance, Intelligent cooling, Power saving)
- Feature toggles (Battery Threshold, Rapid Charge)
- Battery status information
- Settings dialog
Settings Dialog
- “Settings” title
- “Dark mode” toggle
- “Animated Background” toggle
- “Show battery life” toggle
- “Battery name” field
- “Themes” section
First Run Dialog
- Welcome message
- Installation prompts
- Success and error messages
Warning Messages
- Battery threshold warning about premium feature limitations
- Battery interface error messages
- Copyright and attribution text
Example: Strings in Use
Here’s how strings are used in the application code:stringResource() function automatically loads the correct translation based on your system locale.
Changing Language Manually
Currently, KVantage does not include a manual language selector in the UI. The language is always determined by your system locale. To change the language:On most Linux distributions, you can change your locale using your desktop environment’s Settings app, or by modifying the
LANG environment variable before launching KVantage.Contributing Translations
KVantage is open source and welcomes translation contributions!Improving Existing Translations
If you’re a native speaker and notice translation errors:- Navigate to the appropriate
values-XX/strings.xmlfile - Update the incorrect translations
- Submit a pull request to the KVantage GitHub repository
Adding New Languages
To add support for a new language:Translation Guidelines
Maintain placeholders
Maintain placeholders
Keep format specifiers like
%s in the same positions:Preserve technical terms
Preserve technical terms
Keep technical terms like “ACPI”, “pkexec”, “BAT*” unchanged:
Match the tone
Match the tone
KVantage uses friendly, informative language. Maintain this tone in translations.
Consider string length
Consider string length
Some UI elements have limited space. Try to keep translations reasonably concise.
String Resource Examples
Here are some key strings from the English version (values/strings.xml):
Locale Code Reference
| Language | Locale Code | Folder Name |
|---|---|---|
| English | en | values/ |
| Spanish | es | values-es/ |
| Japanese | ja | values-ja/ |
| German | de | values-de/ |
| French | fr | values-fr/ |
| Portuguese | pt | values-pt/ |
| Korean | ko/kr | values-kr/ |
| Chinese | zh | values-zh/ |
KVantage uses
values-kr/ instead of the standard values-ko/ for Korean. This is a non-standard naming but works correctly with the Compose Multiplatform resource system.Troubleshooting
KVantage displays in English despite my locale
KVantage displays in English despite my locale
Your locale may not match any of the supported languages. KVantage falls back to English when no matching translation is found. Check your system’s
LANG environment variable.Some text is untranslated
Some text is untranslated
If only certain strings appear in English, the translation file may be incomplete. Consider contributing the missing translations.
How do I test a different language?
How do I test a different language?
You can temporarily change your locale:
LANG=ja_JP.UTF-8 kvantage to launch KVantage in Japanese, for example.Can I add a language selector to the UI?
Can I add a language selector to the UI?
Currently, KVantage doesn’t have a manual language selector. This would be a great feature contribution! The implementation would involve storing a language preference and overriding the system locale.
Future Improvements
Potential enhancements to KVantage’s localization:- Manual language selector: Allow users to choose language independently of system locale
- More languages: Expand support to additional languages
- RTL support: Add right-to-left language support (Arabic, Hebrew)
- Professional translations: Replace AI translations with professional or community-reviewed versions
- Translation context: Add developer notes in string resources to help translators
Related Features
- Themes - Customize KVantage’s visual appearance
- Settings dialog: Access all user preferences and customization options