This project is in a trial period, be cautious while contributing. Setup can still change before being approved as a libre project.
Component Translated Unfinished Unfinished words Unfinished characters Untranslated Checks Suggestions Comments
admin AGPL-3.0-only 0 0 0 0 0 0 0
attendance AGPL-3.0-only 100% 0 0 0 0 1 0 0
auth AGPL-3.0-only 0 0 0 0 0 0 0
billing AGPL-3.0-only 100% 0 0 0 0 4 0 0
campaigns AGPL-3.0-only 100% 0 0 0 0 27 0 0
common AGPL-3.0-only 100% 0 0 0 0 34 0 0
cookie-consent AGPL-3.0-only 100% 0 0 0 0 3 0 0
discovery AGPL-3.0-only 100% 0 0 0 0 14 0 0
emails AGPL-3.0-only 100% 0 0 0 0 1 0 0
events AGPL-3.0-only 100% 0 0 0 0 11 0 0
games AGPL-3.0-only 100% 0 0 0 0 43 0 0
gms AGPL-3.0-only 0 0 0 0 0 0 0
gws AGPL-3.0-only 100% 0 0 0 0 4 0 0
impressum AGPL-3.0-only 100% 0 0 0 0 3 0 0
invite_optout AGPL-3.0-only 100% 0 0 0 0 2 0 0
location AGPL-3.0-only 0 0 0 0 0 0 0
notifications AGPL-3.0-only 100% 0 0 0 0 15 0 0
pages AGPL-3.0-only 100% 0 0 0 0 13 0 0
people AGPL-3.0-only 100% 0 0 0 0 10 0 0
privacy AGPL-3.0-only 100% 0 0 0 0 8 0 0
profile AGPL-3.0-only 100% 0 0 0 0 17 0 0
pwa AGPL-3.0-only 100% 0 0 0 0 1 0 0
reports AGPL-3.0-only 100% 0 0 0 0 14 0 0
reviews AGPL-3.0-only 100% 0 0 0 0 11 0 0
safety AGPL-3.0-only 100% 0 0 0 0 1 0 0
session_zero AGPL-3.0-only 100% 0 0 0 0 6 0 0
support AGPL-3.0-only 100% 0 0 0 0 7 0 0
teams AGPL-3.0-only 100% 0 0 0 0 5 0 0
terms AGPL-3.0-only 100% 0 0 0 0 6 0 0
Glossary Roundup Games Platform AGPL-3.0-only 0 0 0 0 0 0 0

Summary

Project website roundup.games
Instructions for translators

About

Roundup Games is a community tabletop gaming platform for the DACH region. The source language is English (en); we currently maintain German (de) as a second locale.

How translation works here

Each translation component in this project corresponds to one domain file (e.g. events, common, games). Weblate reads and writes the Laravel PHP flat-array format directly — the same files that ship in production.

When you translate a string here, Weblate commits your change to a weblate/translations branch. A CI pipeline validates your work (key parity, placeholder preservation, PHP syntax) and opens a pull request. Once reviewed and merged, your translations go live on the next deploy.

Key conventions

  • Preserve all placeholders exactly:name, :count, :event, :amount, :brand etc. must appear unchanged in the translation. Example: Welcome, :name!Willkommen, :name!
  • Use actual UTF-8 characters not →, ä not ä.
  • Single quotes in values must be escaped as \'.
  • Key names are never translated — only the values (right side of =>).
  • Formal address (Sie) is preferred in German translations.

String prefixes

Every translation key has a prefix indicating its role in the UI. This helps you understand the context and tone of the string.

General UI

Prefix Meaning Example key → value
action_ Buttons, links, CTAs — things users click action_register_now → "Register Now"
field_ Form labels, field descriptions, table headers field_event_name → "Event Name"
status_ Status indicators, badges, state labels status_active → "Active"
flash_ Success/notification messages after actions flash_event_published → "Event published!"
error_ Validation errors, error messages error_email_required → "Email is required."
content_ Body text, descriptions, explanations (default) content_about_this_event → "About this event"
heading_ Section headings heading_upcoming_games → "Upcoming Games"
title_ Page or modal titles title_create_event → "Create Event"
label_ Short labels for UI elements label_attendees → "Attendees"
description_ Longer descriptions, helper text description_team_roles → "Roles within a team..."
placeholder_ Placeholder text in empty inputs placeholder_search_games → "Search games..."
confirmation_ / confirm_ Confirmation prompts confirm_delete_team → "Delete this team?"
hint_ Inline hints and tips hint_bgg_import → "Import from BoardGameGeek"
aria_ Accessibility labels (screen readers) aria_close_menu → "Close navigation menu"
empty_ Empty-state messages empty_no_campaigns → "No campaigns yet."
back_ Back-navigation labels back_to_events → "Back to Events"
nav_ Navigation items nav_discover → "Discover"
tab_ Tab labels tab_details → "Details"
section_ Section dividers section_pricing → "Pricing"
page_ Full-page content page_about_us → "About Us"
link_ Standalone links link_privacy_policy → "Privacy Policy"
seo_ SEO/meta content (not visible in UI) seo_meta_description_events → "Browse tabletop..."

Emails

Prefix Meaning Example
subject_ Email subject line subject_team_invite → "You're invited to join..."
body_ Email body content body_welcome_message → "Welcome to Roundup Games!"
email_ General email strings email_footer → "You received this because..."

Notifications

Prefix Meaning Example
push_ Push notification text push_game_cancelled → "Game cancelled"
bell_ In-app notification messages bell_new_review → "You received a review"
channel_ Notification channel names channel_email → "Email"

Taxonomy & data

Prefix Meaning Example
cat_ Board game categories (BGG taxonomy) cat_strategy → "Strategy"
mech_ Board game mechanics (BGG taxonomy) mech_worker_placement → "Worker Placement"
play_style_ / playstyle_ Play style labels playstyle_narrative → "Narrative-focused"
type_ Type labels type_recurring → "Recurring"
group_ Grouped items group_game_systems → "Game Systems"
category_ Category labels category_rpg → "Role-Playing Games"
sort_ Sort option labels sort_nearest → "Nearest first"
filter_ Filter option labels filter_experience → "Experience level"

Domain-specific

Prefix Meaning Example
tool_ Safety tool names tool_x_card → "X Card"
gm_ Game Master profile strings gm_specializations → "Specializations"
activity_ Activity feed items activity_joined_team → "joined the team"
report_ Report content report_monthly_summary → "Monthly Summary"
nearby_ Proximity-based results nearby_players → "Players near you"
verb_ Verb forms for dynamic sentences verb_created → "created"
dashboard_ Dashboard widgets/titles dashboard_welcome → "Welcome back"
visibility_ Visibility/privacy options visibility_public → "Public"
entity_ Entity type labels entity_campaign → "Campaign"
manifest_ PWA manifest strings manifest_short_name → "Roundup"
price_ Pricing labels price_early_bird → "Early Bird"
dropdown_ Dropdown option text dropdown_select_system → "Select game system"
display_ Display/formatting preferences display_24h_time → "24-hour time"
state_ State machine labels state_pending → "Pending"
request_ Request-related strings request_join_team → "Request to join"
validation_ Client-side validation messages validation_min_players → "At least 2 players"
guest_ Guest/anonymous user strings guest_browse_prompt → "Sign up to join games"
ios_ iOS-specific strings ios_install_prompt → "Add to Home Screen"
install_ PWA install prompts install_instructions → "Install the app"
offline_ Offline mode strings offline_notice → "You are offline"
view_ View-specific labels view_list → "List view"
unsubscribe_ Unsubscribe flows unsubscribe_confirm → "Unsubscribe confirmed"
unknown_ Unknown/placeholder values unknown_game_system → "Unknown system"

Context and help

If you're unsure about a string's context, the key name and prefix usually contain enough information to locate it in the app. For example, events.action_register_now is a registration button on an event detail page.

If you need more context, you can:

  • Browse the live site at the URL listed in the project metadata
  • Check the English source file in the GitHub repository under lang/en/

Questions?

Open an issue on GitHub or start a discussion in the Weblate comments on the string in question.

Project maintainers1 User avatar vburghelea
06/08/2026

String statistics

Strings percent Hosted strings Words percent Hosted words Characters percent Hosted characters
Total 5,568 31,360 196,694
Source 2,784 15,680 98,347
Translated 100% 5,568 100% 31,360 100% 196,694
Needs editing 0% 0 0% 0 0% 0
Read-only 1% 2 1% 4 1% 24
Failing checks 4% 261 4% 1,296 4% 7,986
Strings with suggestions 0% 0 0% 0 0% 0
Untranslated strings 0% 0 0% 0 0% 0

Quick numbers

31,360
Hosted words
5,568
Hosted strings
100%
Translated
30
Components
2
Languages
60
Translations
0
Screenshots
and previous 30 days

Trends of last 30 days

+100%
Hosted words
+100%
Hosted strings
+100%
Translated
+100%
Contributors
Language Translated Unfinished Unfinished words Unfinished characters Untranslated Checks Suggestions Comments
English 100% 0 0 0 0 99 0 0
German 100% 0 0 0 0 162 0 0
User avatar weblate:commit

Changes committed

Changes committed 06/04/2026
User avatar None

Component locked

The component was automatically locked because of an alert. 06/04/2026
User avatar None

Alert triggered

Could not push the repository. 06/04/2026
User avatar None

Component locked

The component was automatically locked because of an alert. 06/04/2026
User avatar None

Alert triggered

Could not push the repository. 06/04/2026
User avatar None

Component locked

The component was automatically locked because of an alert. 06/04/2026
User avatar None

Alert triggered

Could not push the repository. 06/04/2026
User avatar None

Component locked

The component was automatically locked because of an alert. 06/04/2026
User avatar None

Alert triggered

Could not push the repository. 06/04/2026
User avatar None

Component locked

The component was automatically locked because of an alert. 06/04/2026
Browse all project changes