Sprache Deutsch/Englisch

Umschalter in den Einstellungen und auf der Anmeldeseite; Meldungen des Launchers (Lang.cs)
und der Website (Accept-Language) in der gewaehlten Sprache.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-28 19:44:07 +01:00
co-authored by Claude Opus 5.5
parent 3281468bee
commit 07da29ab94
11 changed files with 333 additions and 117 deletions
+20 -17
View File
@@ -5,20 +5,21 @@
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>BSO Launcher</title>
<link rel="stylesheet" href="app.css">
<script src="i18n.js" defer></script>
<script src="app.js" defer></script>
</head>
<body>
<!-- Eigene Titelleiste (das Fenster hat keine von Windows) -->
<!-- Eigene Titelleiste (das Fenster hat keine von Windows). data-t = wird uebersetzt (i18n.js) -->
<header class="titlebar">
<div class="titlebar-drag" id="titlebarDrag">
<img src="logo.png" alt="">
<span>BSO Launcher</span>
<span class="dev-badge hidden" id="devBadge" title="Mit -dev gestartet"></span>
<span class="dev-badge hidden" id="devBadge"></span>
</div>
<div class="window-buttons">
<button type="button" data-window="minimize" title="Minimieren" aria-label="Minimieren">&#xE921;</button>
<button type="button" data-window="maximize" id="maximizeButton" title="Maximieren" aria-label="Maximieren">&#xE922;</button>
<button type="button" data-window="close" class="close" title="Schliessen" aria-label="Schliessen">&#xE8BB;</button>
<button type="button" data-window="minimize" data-t-title="Minimieren">&#xE921;</button>
<button type="button" data-window="maximize" id="maximizeButton" data-t-title="Maximieren">&#xE922;</button>
<button type="button" data-window="close" class="close" data-t-title="Schliessen">&#xE8BB;</button>
</div>
</header>
@@ -33,26 +34,27 @@
</div>
</div>
<div class="tabs">
<button type="button" class="tab on" id="tabLogin">Anmelden</button>
<button type="button" class="tab" id="tabRegister">Konto erstellen</button>
<button type="button" class="tab on" id="tabLogin" data-t>Anmelden</button>
<button type="button" class="tab" id="tabRegister" data-t>Konto erstellen</button>
</div>
<label><span>Benutzername</span>
<label><span data-t>Benutzername</span>
<input id="username" autocomplete="username" maxlength="32" required>
</label>
<label id="emailRow" class="hidden"><span>E-Mail (optional)</span>
<label id="emailRow" class="hidden"><span data-t>E-Mail (optional)</span>
<input id="email" type="email" autocomplete="email" maxlength="190">
</label>
<label><span>Passwort</span>
<label><span data-t>Passwort</span>
<input id="password" type="password" autocomplete="current-password" maxlength="200" required>
</label>
<label id="password2Row" class="hidden"><span>Passwort wiederholen</span>
<label id="password2Row" class="hidden"><span data-t>Passwort wiederholen</span>
<input id="password2" type="password" autocomplete="new-password" maxlength="200">
</label>
<p id="authError" class="error hidden"></p>
<button class="btn primary wide" id="authButton" type="submit">Anmelden</button>
<p class="muted small center">Dein Benutzername ist auch dein Name im Spiel. Passwoerter liegen nur verschluesselt auf dem BSO-Server.</p>
<p class="muted small center" data-t>Dein Benutzername ist auch dein Name im Spiel. Passwoerter liegen nur verschluesselt auf dem BSO-Server.</p>
<p class="muted small center" id="authServer"></p>
</form>
<div class="auth-lang lang-switch" data-lang-switch></div>
</main>
<!-- Launcher -->
@@ -66,16 +68,17 @@
</div>
</div>
<nav id="nav">
<button type="button" data-page="home" class="on"><span class="nav-icon">&#xE768;</span>Spielen</button>
<button type="button" data-page="friends"><span class="nav-icon">&#xE716;</span>Freunde<span class="nav-badge hidden" id="friendsBadge"></span></button>
<button type="button" data-page="news"><span class="nav-icon">&#xE789;</span>Neuigkeiten</button>
<button type="button" data-page="settings"><span class="nav-icon">&#xE713;</span>Einstellungen</button>
<button type="button" data-page="home" class="on"><span class="nav-icon">&#xE768;</span><span data-t>Spielen</span></button>
<button type="button" data-page="friends"><span class="nav-icon">&#xE716;</span><span data-t>Freunde</span><span class="nav-badge hidden" id="friendsBadge"></span></button>
<button type="button" data-page="news"><span class="nav-icon">&#xE789;</span><span data-t>Neuigkeiten</span></button>
<button type="button" data-page="settings"><span class="nav-icon">&#xE713;</span><span data-t>Einstellungen</span></button>
</nav>
<div class="sidebar-foot">
<div class="lang-switch" data-lang-switch></div>
<div class="me-card">
<span class="avatar" id="meAvatar">?</span>
<span class="me-text"><b id="meName"></b><small id="meVersion"></small></span>
<button class="icon-btn" id="logout" type="button" title="Abmelden" aria-label="Abmelden">&#xF3B1;</button>
<button class="icon-btn" id="logout" type="button" data-t-title="Abmelden">&#xF3B1;</button>
</div>
</div>
</aside>