Quick Start
Join Translation Discord
Join the Translation Discord to connect with other translators and get support
Access Crowdin Project
Go to the OpenFront Crowdin project: https://crowdin.com/project/openfront-mls
Sign In or Sign Up
Log in if you already have a Crowdin account, or create a new account if you don’t
Select Your Language
Choose the language you want to translate into. If your language isn’t listed, click “Request New Language” and submit your request
Translation Guidelines
Understanding Context
Many strings in the game need context to translate accurately:- Game terminology: Words like “territory”, “alliance”, “structure” have specific meanings
- UI elements: Button labels need to be concise to fit in the interface
- Messages: In-game messages should match the game’s tone
If you’re unsure about the context of a string, ask in the Translation Discord! Other translators or the development team can clarify.
Best Practices
-
Stay Consistent
- Use the same translations for recurring terms
- Check how other strings translate similar concepts
- Maintain consistent tone throughout
-
Consider Length
- UI elements have limited space
- Try to keep translations similar in length to the original
- Test if possible to ensure text fits
-
Preserve Formatting
- Keep placeholders like
{playerName}or{count}intact - Maintain HTML tags if present
- Don’t translate variable names or code
- Keep placeholders like
-
Use Natural Language
- Translate meaning, not word-for-word
- Make it sound natural in your language
- Consider cultural context
Common Translation Patterns
Working with Crowdin
Translation Editor Features
- Translation Memory: See how similar strings were translated
- Glossary: View agreed-upon translations for key terms
- Machine Translation: Use as a starting point (always review!)
- Comments: Ask questions or provide context
- Voting: Approve good translations from other contributors
Translation Workflow
-
Browse Untranslated Strings
- Crowdin shows you strings that need translation
- You can filter by file or search for specific text
-
Translate
- Enter your translation in the editor
- Check suggestions from translation memory
- Review machine translations (use with caution)
-
Save
- Submit your translation
- It will be reviewed before inclusion in the game
-
Vote on Others’ Translations
- Help improve translation quality by voting
- Upvote good translations, suggest improvements
Requesting a New Language
Don’t see your language on the list?Quality Assurance
Proofreading
Translations go through several quality checks:- Peer review: Other translators vote on translations
- Context verification: Discord community helps clarify ambiguous strings
- In-game testing: Translations are tested in the actual game interface
Common Issues to Avoid
- Untranslated placeholders: Always keep
{variables}in original form - Broken formatting: Preserve HTML tags and special characters
- Inconsistent terminology: Use the same word for the same concept
- Overly literal translations: Focus on meaning, not word-for-word
- Inappropriate length: UI text that’s too long may be truncated
Contributing Translation Code
If you’re a developer working on translation infrastructure:Adding Translatable Strings
All user-facing text must be processed throughtranslateText():
Adding to en.json
When adding new strings, updateen.json with the English source text:
All code changes that add or modify user-facing text should include corresponding updates to
en.json. These will be synced to Crowdin automatically.Translation Status
Getting Help
Need assistance with translations?- Join Translation Discord: https://discord.gg/3zZzacjWFr
- Ask in Crowdin comments: Use the comment feature on specific strings
- Check existing translations: See how similar strings were handled
- Review the glossary: Look for established terminology
Discord Community
Join the Translation Discord for support and coordination
Governance
Learn about the project’s contribution model