Babylon is a lightweight collaborative translation tool for creative projects — cozy, minimal, and in the retro-futuristic style of The Wizard.
Use it to organize and collaborate on translations for games, apps, stories, or anything else that needs localization.
Supports multiple languages, fuzzy matches, and a charming pixel-art interface that feels right at home in the TrinketOS universe.
Free to use, easy to host, and ready to help your words cross borders.
⸻
- Web-based, clean & minimal UI
- SQLite backend — no external DB needed
- Support for 10–15 translators and ~1000 strings without performance issues
- Modular support for file formats:
- Android XML
- CSV (Godot, Unity-style)
- PO/POT (gettext)
- Import & export translations per language or all languages at once in zip archive
- Supports versioning of strings (optional)
- Per-language assignment for translators
- Admin panel for user & language management
- Login-based, with simple password system
- Real-time online presence tracking
- Customizable UI labels (custom_names) to adapt terminology to your team or project.
⸻
- Upload the code to your PHP server (works with PHP 7+)
- Make sure the folder is writable (to create the translations.db)
- Create config.json file
- Login as admin with password admin. On first load, the system initializes the database and prefills it from config.json if available
- Change your password in public area
- Start adding languages and users in admin area
⸻
All settings are in config.json. Use sample_config.json
as a reference. All settings are optional: without any config, default language will be en and user admin will be created.
Options:
Key | Description |
project_name | Name of your project (shown in UI). |
use_versions | Enable string versioning (true/false). |
languages | List of language codes & names. |
users | Initial users with roles & assigned languages. |
config_csv | CSV-specific settings (delimiter, key column). |
custom_names | Custom UI labels. |
Passwords for all users default to their username at first login. Users can change their password afterwards.
⸻
Accessible via admin.php. Here you can:
- Manage languages (add, rename, delete).
- Manage users (add, rename, delete, assign languages, change roles).
- Manage files (import/export, per-language or ZIP, multiple formats).
Accessible via index.php.
- Translators see only the languages assigned to them.
- Sidebar shows who’s online.
- Strings are listed with their keys, base language source, and input field for translations.
- Untranslated & fuzzy strings are highlighted.
- Versions are displayed if enabled.
⸻
- Standard value & .
- Versions stored as version="1.0" attributes.
- Supports Godot (keys,en,fr,ja) and Unity-style (Key,English(en),French(fr)).
- Multi-language per file.
- Configurable delimiter and key column.
- Standard gettext .po & .pot files.
- Base language exported as .pot template.
- .po files include translations per language.
⸻
If you want to add your own flair, you can define custom_names in config.json to adapt the terminology:
Key | Meaning |
languages | Column heading for languages |
translators | Column heading for users |
greeting | Greeting in header |
password | Password change button |
admin | Link to admin area |
public | Link to public area |
exit | Logout link |
File format modules live in formats/. You can implement your own by extending FormatInterface and adding it there.
⸻
Modules declare their UI menu via: public static function menu(): array;
Example:
public static function menu(): array {
return [
['text', 'PO/POT (gettext) — English strings are keys'],
['by_lang_import_export', 'import', 'export'],
['zip', 'export all languages as .po in zip']
];
}
Supported menu tags:
Tag | Meaning |
text | Informational text (placeholders replaced from config) |
import | Generic import |
export | Generic export |
by_lang_import | Per-language import |
by_lang_export | Per-language export |
by_lang_import_export | Both |
zip | Export all in a ZIP |
⸻
Babylon is free software created for translators and creators, not for businessmen or corporate entities.
✅ You are free to:
- Use Babylon for any free or commercial project you’re translating.
- Modify Babylon for your own use.
- Share screenshots, showcase it, and talk about it.
🚫 You are not allowed to:
- Sell Babylon as your product.
- Redistribute Babylon (or modified versions) as your own software or service.
If you modify it significantly and want to share your changes, please contact me or link back to the original project so everyone knows where it came from.
Made with ☕ & ✨ by The Wizard
Happy translating!
If you like Babylon, feel free to ⭐ the repo and send PRs with improvements or new modules.