Want to help make I2P accessible to more people around the world? Translation is one of the most valuable contributions you can make to the project. This guide will walk you through translating the router console.
Translation Methods
There are two ways to contribute translations:
Method 1: Transifex (Recommended)
This is the easiest way to translate I2P. Transifex provides a web-based interface that makes translation simple and accessible.
- Sign up at Transifex
- Request to join the I2P translation team
- Start translating directly in your browser
No technical knowledge required - just sign up and start translating!
Method 2: Manual Translation
For translators who prefer working with git and local files, or for languages not yet set up on Transifex.
Requirements:
- Familiarity with git version control
- Text editor or translation tool (POEdit recommended)
- Command-line tools: git, gettext
Setup:
- Join #i2p-dev on IRC and introduce yourself
- Update translation status on the wiki (ask in IRC for access)
- Clone the appropriate repository (see sections below)
Router Console Translation
The router console is the web interface you see when running I2P. Translating it helps users who aren’t comfortable with English.
Using Transifex (Recommended)
- Go to I2P on Transifex
- Select the router console project
- Choose your language
- Start translating
Manual Router Console Translation
Prerequisites:
- Same as website translation (git, gettext)
- GPG key (for commit access)
- Signed developer agreement
Clone the main I2P repository:
git clone https://i2pgit.org/I2P_Developers/i2p.i2p.git
cd i2p.i2p
Files to translate:
The router console has approximately 15 files that need translation:
Core interface files:
apps/routerconsole/locale/messages_*.po- Main console messagesapps/routerconsole/locale-news/messages_*.po- News messages
Proxy files:
apps/i2ptunnel/locale/messages_*.po- Tunnel configuration interface
Application locales:
apps/susidns/locale/messages_*.po- Address book interfaceapps/susimail/locale/messages_*.po- Email interface- Other app-specific locale directories
Documentation files:
installer/resources/readme/readme_*.html- Installation readme- Help files in various apps
Translation workflow:
# Update .po files from source
ant extractMessages
# Edit .po files with POEdit or text editor
poedit apps/routerconsole/locale/messages_es.po
# Build and test
ant updaters
# Install the update and check translations in the console
Submit your work:
- Create merge request on GitLab
- Or share files with the development team on IRC
Translation Tools
POEdit (Highly Recommended)
POEdit is a specialized editor for .po translation files.
Features:
- Visual interface for translation work
- Shows translation context
- Automatic validation
- Available for Windows, macOS, and Linux
Text Editors
You can also use any text editor:
- VS Code (with i18n extensions)
- Sublime Text
- vim/emacs (for terminal users)
Quality Checks
Before submitting:
- Check for formatting: Ensure placeholders like
%sand{0}remain unchanged - Test your translations: Install and run I2P to see how they look
- Consistency: Keep terminology consistent across files
- Length: Some strings have space constraints in the UI
Tips for Translators
General Guidelines
- Stay consistent: Use the same translations for common terms throughout
- Keep formatting: Preserve HTML tags, placeholders (
%s,{0}), and line breaks - Context matters: Read the source English carefully to understand context
- Ask questions: Use IRC or forums if something is unclear
Common I2P Terms
Some terms should remain in English or be transliterated carefully:
- I2P - Keep as is
- eepsite - I2P website (may require explanation in your language)
- tunnel - Connection path (avoid Tor terminology like “circuit”)
- netDb - Network database
- floodfill - Type of router
- destination - I2P address endpoint
Testing Your Translations
- Build I2P with your translations
- Change language in router console settings
- Navigate through all pages to check:
- Text fits in UI elements
- No garbled characters (encoding issues)
- Translations make sense in context
Frequently Asked Questions
Why is the translation process so complex?
The process uses version control (git) and standard translation tools (.po files) because:
- Accountability: Track who changed what and when
- Quality: Review changes before they go live
- Consistency: Maintain proper file formatting and structure
- Scalability: Manage translations across multiple languages efficiently
- Collaboration: Multiple translators can work on the same language
Do I need programming skills?
No! If you use Transifex, you only need:
- Fluency in both English and your target language
- A web browser
- Basic computer skills
For manual translation, you’ll need basic command-line knowledge, but no coding is required.
How long does it take?
- Router console: Approximately 15-20 hours for all files
- Maintenance: A few hours per month to update new strings
Can multiple people work on one language?
Yes! Coordination is key:
- Use Transifex for automatic coordination
- For manual work, communicate in #i2p-dev IRC channel
- Divide work by sections or files
What if my language isn’t listed?
Request it on Transifex or contact the team on IRC. The development team can set up a new language quickly.
How do I test my translations before submitting?
- Build I2P from source with your translations
- Install and run it locally
- Change language in console settings
Getting Help
IRC Support
Join #i2p-dev on IRC for:
- Technical help with translation tools
- Questions about I2P terminology
- Coordination with other translators
- Direct support from developers
Forums
- Translation discussions on I2P Forums
- Inside I2P: Translation forum on zzz.i2p (requires I2P router)
Documentation
Recognition
All translators are credited in:
- The I2P router console (About page)
- Website credits page
- Git commit history
- Release announcements
Your work directly helps people around the world use I2P safely and privately. Thank you for contributing!
Next Steps
Ready to start translating?
Choose your method:
- Quick start: Sign up on Transifex
- Manual approach: Join #i2p-dev on IRC
Start small: Translate a few strings to get familiar with the process
Ask for help: Don’t hesitate to reach out on IRC or forums
Thank you for helping make I2P accessible to everyone!