Translating spieli¶
Thanks for helping translate spieli! Translation happens on Weblate, which hosts this project free of charge under its Libre plan. This guide explains everything you need to know.
What is spieli?¶
spieli is a free, interactive playground map based on OpenStreetMap data. Your translation makes it accessible to communities in your language.
How to translate¶
- Create a free account on hosted.weblate.org
- Open the spieli project, choose the ui-strings component, and pick your language —
ui-stringsis the one that reaches the app. The project also lists aglossarycomponent; that holds terminology only, and translations made there never ship. - Click any untranslated string and type your translation
- Save — that's it. No GitHub account needed.
What to translate¶
Most strings are short UI labels like buttons, tooltips, and status messages:
| English | Example translation (DE) |
|---|---|
Show my location |
Meinen Standort anzeigen |
Filter |
Filter |
Reset all |
Alle zurücksetzen |
Plural forms¶
Some strings contain a count, like:
Keep the {count, plural, ...} wrapper and translate only the text inside.
Weblate shows this as a single input field — you must write the complete ICU string including all plural forms for your language.
Languages with two plural forms (German, Spanish, French, Italian, Dutch, Swedish, Portuguese):
Languages with no plural forms (Japanese): use other only:
Languages with four plural forms (Polish, Ukrainian, Czech, Slovak) — you must include one, few, many, and other.
Careful here: these languages all use four categories, but they disagree about which category a large number lands in. Getting this wrong is easy, because the string still looks complete and Weblate reports no error — it just renders the wrong word for every count from 5 upwards.
| Language | many matches |
other matches |
|---|---|---|
| Polish | integers 0 and 5+, except those ending in 2–4 (22 → few; 12–14 stay many) |
fractions (1.5) |
| Ukrainian | integers 0 and 5+, except those ending in 1–4 (21 → one, 22 → few; 11–14 stay many) |
fractions (1.5) |
| Czech, Slovak | fractions (1.5) | integers 0 and 5+ (21, 22, 101 all other) |
So in Polish and Ukrainian the genitive plural goes in many, and in Czech and Slovak it goes in other.
Polish example — genitive ławek in many, fraction form in other:
Ukrainian example — genitive лавок in many, fraction form in other:
Czech example — genitive laviček in other, fraction form in many:
Slovak example — genitive lavičiek in other, fraction form in many:
If you are unsure which category your language uses for a given number, check it directly. In any browser's developer console:
This is the same rule the app uses at runtime, so it is authoritative.
Weblate will warn you if the ICU syntax is broken — fix any flagged strings before saving. It cannot tell you that a grammatically correct form is sitting in the wrong category, so that part is on you.
Things to keep as-is¶
- Placeholders like
{regionName},{count},{name}— do not translate these - The
{count, plural, ...}structure — only translate the text inside the{}
When does my translation go live?¶
The app currently ships German and English only. Other languages are collected in Weblate and activated by a maintainer once they reach 80% completion — it is a manual step, not an automatic threshold, so crossing 80% does not switch your language on by itself. Until then your work is saved in the repo and visible to other translators.
If your language is complete and still not live, open an issue — that is the signal to activate it.
Questions?¶
Open an issue at github.com/mfuhrmann/spieli or leave a comment directly in Weblate.