Repository navigation
Translations
FewohBee is translated by its community on Hosted Weblate. German and English are maintained together with the code; every further language comes from Weblate. Translating needs no access to the repository and no knowledge of the code.
- Translating in the browser
- Where to start
- Rules in short
- Machine translation and offline work
- How translations reach the application
- Create an account on Hosted Weblate – signing in with GitHub works.
- Open the project and choose your language, for example Greek.
- Your language is missing? Start it on the project page or open an issue.
Weblate shows the project's translation instructions; please read them once before you start.
Each Weblate component is one translation file and covers one area of the application, named after its folder in translations/. Texts that are not translated yet appear in English, so a language is useful long before it is complete. Good starting points:
| Component | Read by |
|---|---|
OnlineBooking |
Guests – the booking page on the property's website |
GuestCheckIn |
Guests – the online check-in |
Base |
Hosts and staff – navigation, common buttons and messages |
Reservations, Customers, Invoices
|
Hosts and staff – the daily work |
-
Keep placeholders such as
%count%,%name%and{{ value }}unchanged. You may move them within the sentence, but do not translate, remove or add them. -
Plural forms look like
{1} One night|]1,Inf[ %count% nights. Keep the markers{1},|and]1,Inf[and translate each part. If your language needs more plural forms than this allows, please open an issue. -
Keep HTML tags such as
<strong>or<a href="…">and translate only the text between them. -
Form of address: guest texts (
OnlineBooking,GuestCheckIn, keys containing.public.) use the polite form if your language has one. The admin interface uses the form that is usual for software in your language. - Do not translate the product name FewohBee.
Machine translation and AI tools (DeepL, ChatGPT, Claude, …) are welcome for a first draft, as long as someone who speaks the language reads and corrects every string.
To translate whole files outside Weblate:
- Take the English source files from the repository:
translations/<Area>/<domain>.en.yaml, e.g.translations/Base/messages.en.yaml. - Translate the values, keep the keys and the YAML structure, and save the result as
<domain>.<language>.yaml, e.g.messages.el.yaml. - Upload the file into its component on Weblate (Files → Upload translation) with the method Add as translation needing edit, so that the strings get reviewed. Uploads work per component.
For many files, the Weblate command-line client wlc uploads one file per command. The API key is in your Weblate profile; the component slug is the last part of the component's URL.
export WLC_URL=https://hosted.weblate.org/api/
export WLC_KEY=<your API key>
wlc upload fewohbee/<component>/el --input translations/Base/messages.el.yaml --method fuzzy- Weblate collects all changes in one pull request on GitHub and keeps it up to date.
- Automated checks run on that pull request: YAML and message syntax, keys without an English source string, and lost placeholders.
- A maintainer merges the pull request; the translation ships with the next release.
- A new language can be selected in FewohBee once a maintainer adds it to the application languages – usually when the main areas are translated. It can then be used as the installation language (
LOCALE, see Configuration) and offered to guests in the settings. Strings that are still missing appear in English.
Working on the code instead? The rules for translation files are in AGENTS.md, section Internationalization.
Installation
Configuration
Usage
Integration & development
User manual