Files
BSO-Launcher/ui/i18n.js
T
MrMahoandClaude Opus 5.5 884492f665 Lobby: SPIELEN des Erstellers startet den Server
Kein eigener Server-starten-Knopf mehr: playLobby schaltet beim Ersteller den Lobby-Server ein
und startet das Spiel, die anderen koennen spielen, sobald er laeuft.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 19:47:47 +01:00

91 lines
6.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"use strict";
// Sprachen der Oberflaeche. Deutsch ist der Text im Code selbst, hier steht nur Englisch dazu.
// t("Text mit {0}", wert) - fehlt eine Uebersetzung, bleibt der deutsche Text stehen.
const EN = {
// Fenster, Anmeldung
"Minimieren": "Minimize", "Maximieren": "Maximize", "Schliessen": "Close",
"Anmelden": "Sign in", "Konto erstellen": "Create account", "Benutzername": "Username", "E-Mail (optional)": "Email (optional)",
"Passwort": "Password", "Passwort wiederholen": "Repeat password", "Abmelden": "Sign out",
"Dein Benutzername ist auch dein Name im Spiel. Passwoerter liegen nur verschluesselt auf dem BSO-Server.":
"Your username is also your name in the game. Passwords are only stored encrypted on the BSO server.",
"Die Passwoerter sind nicht gleich": "The passwords don't match",
"Willkommen bei BSO, {0}!": "Welcome to BSO, {0}!",
"Server: {0}": "Server: {0}",
// Navigation
"Spielen": "Play", "Freunde": "Friends", "Neuigkeiten": "News", "Einstellungen": "Settings", "Laden …": "Loading …",
// Spielen
"SPIELEN": "PLAY", "LAEUFT": "RUNNING", "Bus-Simulator 2012 startet …": "Bus-Simulator 2012 is starting …",
"BSO {0} installiert · Server {1}": "BSO {0} installed · Server {1}", "BSO wird beim ersten Start installiert": "BSO will be installed on first start",
"Multiplayer fuer Bus-Simulator 2012": "Multiplayer for Bus-Simulator 2012",
"Vor dem Start fehlt noch etwas - siehe unten": "Something is still missing - see below",
"Jetzt aktualisieren": "Update now", "Launcher startet neu …": "Launcher is restarting …", "Launcher {0}": "Launcher {0}", " ist da.": " is available.",
"BSO-Server nicht erreichbar - Updates werden spaeter geprueft.": "BSO server not reachable - updates will be checked later.",
"Anderen Ordner waehlen": "Choose another folder", "Ordner waehlen": "Choose folder", "Gefunden": "Found", "Nicht gefunden": "Not found",
"Ueber Steam installiert? Sonst den Ordner von Hand waehlen.": "Installed via Steam? Otherwise choose the folder manually.",
"Version {0}": "Version {0}", "Nicht installiert": "Not installed", "Neu: {0}": "New: {0}", "Aktuell": "Up to date",
"Keine Version auf dem Server": "No version on the server", "Mod herunterladen": "Download mod", "Mod aktualisieren": "Update mod",
"Neu herunterladen": "Download again", "BSO {0} installiert": "BSO {0} installed",
"Installiert": "Installed", "Die Mod laeuft mit .NET 10 (x64).": "The mod runs on .NET 10 (x64).", "Herunterladen": "Download", "Fehlt": "Missing",
"BSO braucht die .NET 10 Runtime (x64) - \".NET Runtime\" fuer Windows x64 installieren.": "BSO needs the .NET 10 Runtime (x64) - install \".NET Runtime\" for Windows x64.",
"Mitspielen": "Play together", "Adresse": "Address", "Gespeichert": "Saved", "Beim Start verbinden": "Connect on start", "sonst im Spiel mit F8": "otherwise in game with F8",
// Freunde & Lobby
"Freunde & Lobby": "Friends & lobby", "{0} lädt dich in die Lobby ein": "{0} invites you to their lobby", " lädt dich in die Lobby ein": " invites you to their lobby",
"{0} möchte dein Freund sein": "{0} wants to be your friend", "Beitreten": "Join", "Ablehnen": "Decline", "Lobby": "Lobby",
"Erstelle eine Lobby und lade Freunde ein. Der Server läuft auf dem BSO-Relay – niemand muss etwas hosten oder Ports freigeben.":
"Create a lobby and invite friends. The server runs on the BSO relay – nobody has to host anything or forward ports.",
"Lobby erstellen": "Create lobby", "Bus-Simulator 2012 startet und verbindet mit der Lobby …": "Bus-Simulator 2012 is starting and connecting to the lobby …",
"Server läuft – alle können SPIELEN drücken": "Server is running – everyone can press PLAY",
"Drück SPIELEN – der Server startet dann für die ganze Lobby": "Press PLAY – the server then starts for the whole lobby",
"Warte, bis {0} SPIELEN drückt – dann startet der Server": "Waiting for {0} to press PLAY – then the server starts", "Server stoppen": "Stop server",
"Ersteller": "Owner", "Entfernen": "Remove", "Deine Lobby": "Your lobby", "Lobby von {0}": "{0}'s lobby", "Mitglieder ({0})": "Members ({0})",
"{0} Einladung(en) offen": "{0} invitation(s) pending", "Lobby auflösen": "Close lobby", "Lobby verlassen": "Leave lobby",
"Hinzufügen": "Add", "Anfrage an {0} geschickt": "Request sent to {0}", "Anfragen": "Requests", "Annehmen": "Accept",
"Freunde ({0} online)": "Friends ({0} online)", "Noch keine Freunde – füge jemanden über seinen BSO-Benutzernamen hinzu.": "No friends yet – add someone by their BSO username.",
"Freund entfernen": "Remove friend", "{0} als Freund entfernen?": "Remove {0} as a friend?", "eingeladen": "invited", "Einladen": "Invite",
"in der Lobby": "in the lobby", "Gesendet": "Sent", "wartet …": "pending …", "Zurückziehen": "Withdraw",
// Neuigkeiten
"Keine Beschreibung": "No description", "Noch keine Versionen veroeffentlicht.": "No versions published yet.",
// Einstellungen
"Spielordner waehlen": "Choose game folder", "Spielordner gespeichert": "Game folder saved", "Protokoll-Ordner oeffnen": "Open log folder",
"BSO deinstallieren": "Uninstall BSO", "BSO automatisch aktualisieren": "Update BSO automatically",
"Vor jedem Start die neueste Mod-Version installieren": "Install the newest mod version before every start",
"Launcher offen lassen": "Keep launcher open", "Sonst schliesst er sich nach dem Spielstart": "Otherwise it closes after the game starts",
"Spiel": "Game", "Version {0} · Server {1}": "Version {0} · Server {1}", "Sprache": "Language"
};
let lang = "de";
function t(de, ...args) {
let s = lang === "en" && EN[de] != null ? EN[de] : de;
args.forEach((a, i) => { s = s.split("{" + i + "}").join(String(a)); });
return s;
}
/** Feste Texte in index.html: data-t (Text), data-t-title (Tooltip), data-t-placeholder - Original bleibt in data-de. */
function translateStatic() {
document.querySelectorAll("[data-t]").forEach((el) => {
if (el.dataset.de == null) el.dataset.de = el.textContent;
el.textContent = t(el.dataset.de);
});
document.querySelectorAll("[data-t-title]").forEach((el) => {
el.title = t(el.dataset.tTitle);
el.setAttribute("aria-label", el.title);
});
document.documentElement.lang = lang;
}
/** Umschalter DE | EN (in jedes Element mit data-lang-switch). */
function renderLangSwitch(onChange) {
document.querySelectorAll("[data-lang-switch]").forEach((box) => {
box.replaceChildren(...["de", "en"].map((l) => {
const b = document.createElement("button");
b.type = "button";
b.textContent = l.toUpperCase();
b.className = l === lang ? "on" : "";
b.addEventListener("click", () => onChange(l));
return b;
}));
});
}