Localization Guide
Journeys & Jamborees supports full localization for international users. This guide explains how to contribute translations or create new language packs.
Current Statusβ
Language | Status | Contributor |
---|---|---|
English (en) | β Complete | Core team |
Other languages | π Welcome | Community |
Creating a Translationβ
Step 1: Copy the English Fileβ
Create a new translation file based on the English template:
cp languages/en.json languages/[language-code].json
Common language codes:
de
- German (Deutsch)fr
- French (FranΓ§ais)es
- Spanish (EspaΓ±ol)it
- Italian (Italiano)pt
- Portuguese (PortuguΓͺs)ja
- Japanese (ζ₯ζ¬θͺ)ko
- Korean (νκ΅μ΄)zh
- Chinese (δΈζ)
Step 2: Update module.jsonβ
Add your language to the module's language list:
"languages": [
{
"lang": "en",
"name": "English",
"path": "languages/en.json"
},
{
"lang": "de",
"name": "Deutsch",
"path": "languages/de.json"
}
]
Step 3: Translate the Stringsβ
Edit your language file, translating values while keeping the JSON structure intact:
{
"J&J": {
"ui": {
"party-sheet": {
"members": "Mitglieder", // German
"rations": "Rationen",
"water": "Wasser"
}
}
}
}
Translation Guidelinesβ
β οΈ Important Rulesβ
-
DO NOT change the keys, only the values:
// β Correct
"members": "Mitglieder"
// β Wrong - don't change the key
"mitglieder": "Mitglieder" -
Keep placeholders intact:
// Placeholders like {name} must remain
"characterJoined": "{name} ist der Gruppe beigetreten" -
Respect UI space - Keep labels concise for buttons and headers
Translation Tipsβ
Context Mattersβ
Consider where strings appear:
- Labels: Keep short for UI elements
- Descriptions: Can be more detailed
- Tooltips: Balance clarity and brevity
- Error messages: Clear and helpful
Game Terminologyβ
Match official game translations when possible:
- "Pathfinder" β Use official Dragonbane term
- "Rations" β Match system terminology
- Character attributes β Follow game system
Cultural Adaptationβ
- Use appropriate formality levels
- Consider cultural context
- Maintain consistent tone throughout
File Structureβ
The translation file follows this hierarchy:
{
"J&J": {
"ui": {
"party-sheet": {
// Main sheet labels
},
"tabs": {
// Tab names
},
"buttons": {
// Button labels
}
},
"members": {
// Member management
},
"travelStatus": {
// Travel states
},
"travelRoles": {
// Role names
},
"characterStatus": {
// Character states
},
"resources": {
// Resource names
},
"settings": {
// Configuration labels
},
"messages": {
// Notifications
}
}
}
Testing Your Translationβ
Local Testingβ
- Set Foundry language to your translation
- Load a world with J&J enabled
- Check all UI elements render correctly
- Test different scenarios:
- Long character names
- Maximum party size
- All tabs and dialogs
Quality Checksβ
- All strings translated
- Special characters display correctly
- UI elements don't overflow
- Consistent terminology throughout
- Placeholders work properly
Submitting Translationsβ
During Alpha/Betaβ
While the module is in development:
- Create a GitHub issue with your translation attached
- Share via Discord in the module channel
- Wait for inclusion in next release
Future Contribution Processβ
Once the module accepts pull requests:
- Fork the repository
- Add your translation file
- Update
module.json
- Test thoroughly
- Submit a pull request
Translation Maintenanceβ
Keeping Currentβ
- New features may add strings
- Check for updates each release
- Join the translator community
- Watch for breaking changes
Version Trackingβ
Each translation should note:
- Module version translated for
- Last update date
- Translator credits
- Completion percentage
Common Translation Challengesβ
String Lengthβ
Some languages need more space:
- German: Often 30% longer
- Asian languages: May be shorter
- Plan for flexibility
Grammatical Differencesβ
- Plural forms vary by language
- Gender agreement requirements
- Word order differences
Technical Termsβ
Balance between:
- Translating for clarity
- Keeping recognizable terms
- Matching game system
Resourcesβ
Toolsβ
- JSON validators - Check file syntax
- Translation memory - Consistency tools
- Community glossaries - Shared terms
Getting Helpβ
- GitHub Issues - Technical questions
- Discord - Translation discussions
- Community forums - Localization tips
Creditsβ
Translators are credited in:
- Module credits
- GitHub contributors
- Release notes
- This documentation
Thank you for helping make Journeys & Jamborees accessible to players worldwide! π