• v2.12.0 37098c8d52

    Emily released this 2026-11-10 21:10:19 +01:00 | 3 commits to main since this release

    Universal Gaming 2.12.0 — five languages

    The whole interface now ships in English, German, Spanish, French and Italian.
    On first start the app follows the system language; if the device speaks none of
    the five, it stays in English. Settings → Language switches at any time, and
    "System language" hands control back to the device.

    What is translated

    • Every screen: home, game hub, all eleven games, leaderboard, onboarding, settings
    • Every dialog: win screen, promotion, resign, mode picker, clear leaderboard, update/news sheet
    • All controls, tooltips, status lines, counters and placeholders
    • Enum labels: Sudoku/Killer difficulties, Minesweeper levels, chess computer strength, chess sides and game status
    • Chess online statuses and challenge invites
    • Leaderboard game names

    Under the hood

    • Strings live in lib/l10n/app_{en,de,es,fr,it}.arb, generated from a single
      table in tools/build_l10n.py, so no language can drift or silently lose a key
    • context.l10n falls back to English when no localization delegate is installed,
      which keeps the existing widget tests working unchanged
    • The language choice is stored as AppLanguage next to the other settings

    Fixes

    • The Sudoku hero badge no longer overflows with the longer German text

    331 tests passing, flutter analyze clean.

    Assets

    Platform File
    Android UniversalGaming-2.12.0-android.apk (Android 7.0+)
    Android (Play) UniversalGaming-2.12.0-android.aab
    iOS UniversalGaming-2.12.0-ios-unsigned.ipa (re-sign with Sideloadly/AltStore)
    macOS UniversalGaming-2.12.0-macos.dmg (Apple Silicon + Intel)
    Linux UniversalGaming-2.12.0-linux-x86_64.AppImage
    Web UniversalGaming-2.12.0-web.zip

    Checksums are in SHA256SUMS-2.12.0.txt. Windows binaries must be built on a
    Windows host.

    Downloads