Repository navigation
Localization and Languages
thenotoriousJeremy edited this page Aug 20, 2026
·
2 revisions
Bindarr offers comprehensive internationalization for both the application user interface and the underlying card printings.
It is important to distinguish between two distinct language concepts in Bindarr:
| Concept | Description | Controlled By |
|---|---|---|
| UI Language | The interface text across menus, buttons, modals, and tooltips. | User selection in Settings → Language. |
| Card Printing Language | The actual language a physical card is printed in (affecting card artwork, card title, and market pricing). | Selected per card during search, scan, or manual entry. |
Bindarr currently includes full community translations for 11 languages:
- English (
en) - Brazilian Portuguese (
pt-BR) - French (
fr) - German (
de) - Italian (
it) - Japanese (
ja) - Korean (
ko) - Russian (
ru) - Simplified Chinese (
zh-CN) - Traditional Chinese (
zh-TW) - Spanish (
es)
Managing international trading cards presents a challenge: a Japanese collector may own a Japanese Charizard (リザードン), but wants to find it when searching "Charizard".
Bindarr solves this with a Dual-Name Architecture:
-
card_cache.name(Searchable Name): The canonical English card name. This ensures:- Searching "Pikachu" or "Black Lotus" finds printings in all 11 languages.
- The 4-copy deck rule correctly links cards across languages.
- Marketplace price proxies match properly.
-
card_cache.printed_name(Printed Name): The localized name printed on the physical card face. -
Display Logic: The UI renders
printed_name || name, displaying the authentic card face and localized title while keeping the card globally searchable.
Adding or updating a UI translation is simple and requires no backend coding:
- Look in the
frontend/src/locales/directory. - Copy
en.jsonto your target language code (e.g.nl.jsonfor Dutch orpl.jsonfor Polish). - Translate the string values following each key:
{ "common.save": "Opslaan", "common.cancel": "Annuleren", "scanner.title": "Kaartscanner" } -
Preserve Placeholders: Do not translate variables inside curly braces (e.g.
{count},{name}). - Partial Translations: Any missing keys automatically fall back to English key-by-key without crashing.
- Open a Pull Request on GitHub!
See docs/TRANSLATING.md for full guidelines.
Bindarr is licensed under the MIT License.
Need help? Check Troubleshooting & FAQ or open an issue on GitHub.