Overview
Kitsu supports multiple languages through Vue I18n. The application is currently available in several languages, and we welcome contributions to add more or improve existing translations.Available Languages
Kitsu currently supports:English
Default language (en)
German
Deutsch (de)
English (Video Game)
Industry-specific terminology (en_video-game)
English (NFT)
NFT-specific terminology (en_nft)
Contributing Translations
Using POEditor
The easiest way to contribute translations is through POEditor, Kitsu’s translation platform:Join the Project
Visit the Kitsu POEditor project and create an account
Translate Terms
Browse through the translation keys and provide translations. You can:
- Translate new terms
- Improve existing translations
- Add context notes
- Review other contributors’ work
Start Translating
Contribute to Kitsu translations on POEditor
Adding a New Language
If you want to add a completely new language to Kitsu:1. Get the Translation File
Export the JSON translation file from POEditor for your language.2. Add to Locales
Store the translation file in thesrc/locales/ directory:
3. Register the Language
Add the language tosrc/locales/index.js:
src/locales/index.js
4. Add to Profile Options
Add the language option to the user profile selector. The locale code must match a valid Babel locale identifier.5. Test Your Translation
Start the development server and switch to your new language:Translation File Structure
Translation files are JavaScript modules exporting an object:src/locales/en.js
Translation Keys
Organization
Translations are organized hierarchically:- Top level: Feature area (assets, shots, tasks, etc.)
- Second level: Specific keys or sub-categories
- Nested levels: Further organization as needed
Naming Conventions
Follow these conventions for translation keys:- Actions
- Messages
- Fields
- Pluralization
Using Translations in Code
In Templates
Use the$t function:
With Variables
Pass variables to translations:In JavaScript
Access translations in component methods:Pluralization
Vue I18n supports pluralization:Adding New Translation Keys
When adding new features that require translations:Translation Guidelines
Context is Important
Provide context for translators when terms could be ambiguous:Keep Text Concise
UI translations should be brief:Use Placeholders for Dynamic Content
Industry-Specific Terminology
Kitsu supports industry-specific language variants:Video Game Mode
Uses game development terminology:src/locales/en_video-game.js
NFT Mode
Uses NFT/crypto-specific terms:src/locales/en_nft.js
Testing Translations
Switch Languages
- Log into Kitsu
- Go to User Settings
- Change the language in the dropdown
- Verify all UI elements display correctly
Check for Missing Keys
Missing translation keys will display as the key path:Locale Maintenance
Sync with POEditor
Periodically, translations are synced from POEditor:- Export translations from POEditor
- Update locale files in
src/locales/ - Test all languages
- Commit changes
Remove Unused Keys
Regularly audit translation files to remove unused keys:Babel Locale Compatibility
Valid Babel locales include:en- Englishde- Germanfr- Frenches- Spanishja- Japanesezh_Hans- Simplified Chinese- And many more…
Getting Help
If you need help with translations:- Join the Discord community
- Ask in the POEditor comment system
- Open an issue on GitHub
Start Contributing
Help translate Kitsu into your language
