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
+12 -12
View File
@@ -45,7 +45,7 @@ public static class Installer
/// <summary>Installieren. progress(0..1, Text).</summary>
public static void Install(Action<double, string> progress)
{
progress(0.1, "Laufenden Launcher schliessen …");
progress(0.1, Lang.T("Laufenden Launcher schliessen …"));
foreach (var p in Process.GetProcessesByName("BSO-Launcher"))
{
try
@@ -58,19 +58,19 @@ public static class Installer
catch { }
}
progress(0.3, "Dateien kopieren …");
progress(0.3, Lang.T("Dateien kopieren …"));
Directory.CreateDirectory(InstallDir);
string tmp = InstalledExe + ".new";
File.Copy(Self, tmp, true);
File.Move(tmp, InstalledExe, true);
progress(0.6, "Verknuepfungen anlegen …");
progress(0.6, Lang.T("Verknuepfungen anlegen …"));
CreateShortcut(StartMenuShortcut);
CreateShortcut(DesktopShortcut);
progress(0.8, "Registrieren …");
progress(0.8, Lang.T("Registrieren …"));
Register();
progress(1.0, "Fertig");
progress(1.0, Lang.T("Fertig"));
}
/// <summary>Eintrag unter "Apps &amp; Features" (bzw. dessen Version nach einem Selbst-Update).</summary>
@@ -141,13 +141,13 @@ public static class Installer
if (!quiet)
{
var answer = MessageBox.Show(
"BSO komplett deinstallieren?\n\nDas entfernt den Launcher, BSO aus dem Bus-Simulator-2012-Ordner (dinput8.dll, BSO-Ordner) " +
"und deine Anmeldung im Launcher.",
Lang.T("BSO komplett deinstallieren?\n\nDas entfernt den Launcher, BSO aus dem Bus-Simulator-2012-Ordner (dinput8.dll, BSO-Ordner) " +
"und deine Anmeldung im Launcher."),
AppName, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
if (answer != DialogResult.Yes) return false;
while (Game.IsRunning())
{
if (MessageBox.Show("Erst Bus-Simulator 2012 schliessen - solange es laeuft, sind die Dateien in Benutzung.", AppName,
if (MessageBox.Show(Lang.T("Erst Bus-Simulator 2012 schliessen - solange es laeuft, sind die Dateien in Benutzung."), AppName,
MessageBoxButtons.RetryCancel, MessageBoxIcon.Warning) != DialogResult.Retry) return false;
}
}
@@ -162,9 +162,9 @@ public static class Installer
// Die laufende .exe laesst sich nicht selbst loeschen: aufraeumen, sobald dieser Prozess beendet ist
RemoveAfterExit(dir, Settings.Folder);
if (!quiet)
MessageBox.Show(problems.Count == 0
MessageBox.Show(Lang.T(problems.Count == 0
? "BSO wurde komplett deinstalliert."
: "BSO wurde deinstalliert. Einiges liess sich nicht entfernen:\n\n" + string.Join("\n", problems),
: "BSO wurde deinstalliert. Einiges liess sich nicht entfernen:\n\n" + string.Join("\n", problems)),
AppName, MessageBoxButtons.OK, problems.Count == 0 ? MessageBoxIcon.Information : MessageBoxIcon.Warning);
return true;
}
@@ -198,7 +198,7 @@ public sealed class InstallForm : Form
status.Font = new Font("Segoe UI", 9.5f);
status.TextAlign = ContentAlignment.MiddleCenter;
status.SetBounds(20, 178, 380, 24);
status.Text = "Vorbereiten …";
status.Text = Lang.T("Vorbereiten …");
Controls.Add(status);
Shown += async (_, _) => await Run();
}
@@ -238,7 +238,7 @@ public sealed class InstallForm : Form
{
error = e.Message;
status.ForeColor = Color.FromArgb(0xff, 0x8a, 0x8d);
status.Text = "Installation fehlgeschlagen: " + e.Message;
status.Text = Lang.T("Installation fehlgeschlagen: " + e.Message);
Invalidate();
await Task.Delay(6000);
Close();