Skip to content

Commit c6c5dce

Browse files
authored
docs(i18n): add more languages (#85)
1 parent 6d6a169 commit c6c5dce

62 files changed

Lines changed: 4024 additions & 45 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/.vitepress/config.mts

Lines changed: 471 additions & 44 deletions
Large diffs are not rendered by default.

docs/.vitepress/theme/index.ts

Lines changed: 99 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,13 @@ const LOCALE_STORAGE_KEY = "levilauncher-docs-locale";
77

88
// Supported locale identifiers
99
const ENGLISH_LOCALE = "en-US";
10+
const SPANISH_LOCALE = "es-ES"; // Spanish (Spain)
1011
const CHINESE_CN_LOCALE = "zh-CN";
1112
const CHINESE_HK_LOCALE = "zh-HK"; // Traditional Chinese (Hong Kong)
1213
const RUSSIAN_LOCALE = "ru-RU"; // Russian
14+
const GERMAN_LOCALE = "de-DE"; // German
15+
const JAPANESE_LOCALE = "ja-JP"; // Japanese
16+
const FRENCH_LOCALE = "fr-FR"; // French
1317

1418
/**
1519
* Removes the base path from the given pathname.
@@ -53,6 +57,30 @@ function normalizePath(pathname: string): string {
5357
function getLocaleFromPath(pathname: string, base: string): string {
5458
const normalizedPath = normalizePath(stripBase(pathname, base));
5559

60+
// Check for Spanish
61+
if (
62+
normalizedPath === `/${SPANISH_LOCALE}` ||
63+
normalizedPath.startsWith(`/${SPANISH_LOCALE}/`)
64+
) {
65+
return SPANISH_LOCALE;
66+
}
67+
68+
// Check for Japanese
69+
if (
70+
normalizedPath === `/${JAPANESE_LOCALE}` ||
71+
normalizedPath.startsWith(`/${JAPANESE_LOCALE}/`)
72+
) {
73+
return JAPANESE_LOCALE;
74+
}
75+
76+
// Check for German
77+
if (
78+
normalizedPath === `/${GERMAN_LOCALE}` ||
79+
normalizedPath.startsWith(`/${GERMAN_LOCALE}/`)
80+
) {
81+
return GERMAN_LOCALE;
82+
}
83+
5684
// Check for Russian
5785
if (
5886
normalizedPath === `/${RUSSIAN_LOCALE}` ||
@@ -77,6 +105,14 @@ function getLocaleFromPath(pathname: string, base: string): string {
77105
return CHINESE_CN_LOCALE;
78106
}
79107

108+
// Check for French
109+
if (
110+
normalizedPath === `/${FRENCH_LOCALE}` ||
111+
normalizedPath.startsWith(`/${FRENCH_LOCALE}/`)
112+
) {
113+
return FRENCH_LOCALE;
114+
}
115+
80116
// Default to English
81117
return ENGLISH_LOCALE;
82118
}
@@ -91,9 +127,12 @@ function readStoredLocale(): string | null {
91127
// Validate that the stored value is a supported locale
92128
if (
93129
locale === ENGLISH_LOCALE ||
130+
locale === SPANISH_LOCALE ||
94131
locale === CHINESE_CN_LOCALE ||
95132
locale === CHINESE_HK_LOCALE ||
96-
locale === RUSSIAN_LOCALE
133+
locale === RUSSIAN_LOCALE ||
134+
locale === GERMAN_LOCALE ||
135+
locale === JAPANESE_LOCALE
97136
) {
98137
return locale;
99138
}
@@ -129,6 +168,24 @@ function getPreferredLocale(): string {
129168
navigator.language,
130169
].filter((locale): locale is string => Boolean(locale));
131170

171+
// Check if the browser prefers Japanese
172+
const hasJapanese = browserLocales.some((locale) => {
173+
const lower = locale.toLowerCase();
174+
return lower.startsWith("ja");
175+
});
176+
177+
// Check if the browser prefers German
178+
const hasGerman = browserLocales.some((locale) => {
179+
const lower = locale.toLowerCase();
180+
return lower.startsWith("de");
181+
});
182+
183+
// Check if the browser prefers Spanish
184+
const hasSpanish = browserLocales.some((locale) => {
185+
const lower = locale.toLowerCase();
186+
return lower.startsWith("es");
187+
});
188+
132189
// Check if the browser prefers Russian
133190
const hasRussian = browserLocales.some((locale) => {
134191
const lower = locale.toLowerCase();
@@ -147,6 +204,27 @@ function getPreferredLocale(): string {
147204
return lower.startsWith("zh-cn") || (lower.startsWith("zh") && !hasTraditionalChinese);
148205
});
149206

207+
// Check if the browser prefers French
208+
const hasFrench = browserLocales.some((locale) => {
209+
const lower = locale.toLowerCase();
210+
return lower.startsWith("fr-FR");
211+
});
212+
213+
// Prioritize Japanese if detected
214+
if (hasJapanese) {
215+
return JAPANESE_LOCALE;
216+
}
217+
218+
// Prioritize German if detected
219+
if (hasGerman) {
220+
return GERMAN_LOCALE;
221+
}
222+
223+
// Prioritize Spanish if detected
224+
if (hasSpanish) {
225+
return SPANISH_LOCALE;
226+
}
227+
150228
// Prioritize Russian if detected
151229
if (hasRussian) {
152230
return RUSSIAN_LOCALE;
@@ -162,6 +240,10 @@ function getPreferredLocale(): string {
162240
return CHINESE_CN_LOCALE;
163241
}
164242

243+
if (hasFrench) {
244+
return FRENCH_LOCALE;
245+
}
246+
165247
// Default to English
166248
return ENGLISH_LOCALE;
167249
}
@@ -172,6 +254,10 @@ function getPreferredLocale(): string {
172254
function buildLocaleRoot(base: string, locale: string): string {
173255
const normalizedBase = base.endsWith("/") ? base : `${base}/`;
174256

257+
if (locale === SPANISH_LOCALE) {
258+
return `${normalizedBase}${SPANISH_LOCALE}/`;
259+
}
260+
175261
if (locale === CHINESE_CN_LOCALE) {
176262
return `${normalizedBase}${CHINESE_CN_LOCALE}/`;
177263
}
@@ -184,6 +270,18 @@ function buildLocaleRoot(base: string, locale: string): string {
184270
return `${normalizedBase}${RUSSIAN_LOCALE}/`;
185271
}
186272

273+
if (locale === GERMAN_LOCALE) {
274+
return `${normalizedBase}${GERMAN_LOCALE}/`;
275+
}
276+
277+
if (locale === JAPANESE_LOCALE) {
278+
return `${normalizedBase}${JAPANESE_LOCALE}/`;
279+
}
280+
281+
if (locale === FRENCH_LOCALE) {
282+
return `${normalizedBase}${FRENCH_LOCALE}/`;
283+
}
284+
187285
return normalizedBase;
188286
}
189287

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# Inhaltsverwaltung
2+
3+
LeviLauncher kann inhaltsbezogene Daten verwalten, die mit einzelnen Minecraft-Versionen verknüpft sind – besonders effektiv in Kombination mit isolierten Umgebungen.
4+
5+
## Im Launcher verwaltbare Inhaltstypen
6+
7+
- Welten
8+
- Ressourcenpakete
9+
- Verhaltenspakete
10+
- Skin-Pakete
11+
- Screenshots
12+
- Serverlisten
13+
14+
## Warum das wichtig ist
15+
16+
Für viele Spieler ist der entscheidende Grund, einen Launcher langfristig zu nutzen, nicht nur das „Installieren einer Version“, sondern vielmehr das „klare Trennen verschiedener Spielumgebungen“.
17+
18+
Beispiele:
19+
20+
- Eine Version ausschließlich für Vanilla-Überlebenswelten
21+
- Eine Version speziell zum Testen von Ressourcenpaketen
22+
- Eine separate Minecraft Preview-Version, um Screenshots und Serverlisten unabhängig zu speichern
23+
24+
## Häufige Aktionen
25+
26+
### Inhaltsübersicht öffnen
27+
28+
Wechsle in der Anwendung zum Bereich **„Content“**, um eine Übersicht über alle Inhalte samt Schnellzugriffen zu erhalten.
29+
30+
### Inhalte importieren
31+
32+
Für bestimmte Inhaltstypen unterstützt LeviLauncher einen Import-Workflow – beispielsweise per Drag & Drop.
33+
34+
### Tatsächliche Ordner öffnen
35+
36+
Falls du Dateien manuell prüfen oder bereinigen möchtest, kannst du über den Launcher direkt die entsprechenden Verzeichnisse öffnen.
37+
38+
### Isolierung zur Inhaltsunabhängigkeit nutzen
39+
40+
Sobald eine Version isoliert ist, werden ihre Inhalte in einem separaten Arbeitsverzeichnis gespeichert – ideal für Tests und archivische Ordnung.
41+
42+
## Empfohlene Ordnungsgrundsätze
43+
44+
- Test-Ressourcenpakete nicht mit Hauptwelten mischen
45+
- Wichtige Welten vor größeren Änderungen sichern
46+
- Versionen klar benennen, um Zuordnungsfehler zu vermeiden
47+
48+
## Hinweis zu Screenshots und Servern
49+
50+
Wenn verschiedene Versionen unterschiedliche Zwecke erfüllen, empfiehlt es sich, auch Screenshots und Serverlisten versionsweise zu trennen – das sorgt für bessere Übersichtlichkeit.
51+
52+
## Weiterführende Themen
53+
54+
- [Versionsverwaltung](./version-management)
55+
- [Welt-Tools](./world-tools)
56+
- [Einstellungen und Personalisierung](./settings-personalization)
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# Download und Spiegelserver
2+
3+
LeviLauncher bietet Funktionen wie die Auswahl von Spiegelservern, Fortschrittsanzeige und den Import lokaler Installationspakete, um dir eine zuverlässigere Installation zu ermöglichen.
4+
5+
## Wofür dieser Bereich geeignet ist
6+
7+
- Durchsuchen verfügbarer Versionen
8+
- Geschwindigkeitstest oder Wechsel des Spiegelservers
9+
- Anzeige des Download- und Installationsfortschritts
10+
- Einfaches erneutes Versuchen fehlgeschlagener Aufgaben
11+
- Import lokaler Installationspakete in geeigneten Szenarien
12+
13+
## Empfohlener Ablauf
14+
15+
1. Öffne **„Download“**.
16+
2. Wähle die gewünschte Minecraft-**Release**- oder **Preview**-Version aus.
17+
3. Lass LeviLauncher automatisch die beste Geschwindigkeit ermitteln – oder wähle manuell einen passenden Spiegelserver.
18+
4. Starte die Installationsaufgabe.
19+
5. Für detailliertere Informationen wechsle zur Aufgaben- oder Download-Verwaltungsansicht.
20+
21+
## Wann du den Spiegelserver wechseln solltest
22+
23+
Wechsle den Server in folgenden Fällen:
24+
25+
- Die Downloadgeschwindigkeit ist auffällig langsam
26+
- Ein bestimmter Spiegelserver wiederholt Verbindungsfehler verursacht
27+
- Eine Aufgabe bleibt bei einem Server lange hängen, während andere stabiler laufen
28+
29+
## Lokaler Paket-Import
30+
31+
Falls du bereits ein kompatibles Installationspaket lokal vorliegen hast, kann LeviLauncher dieses – sofern vom Prozess unterstützt – direkt importieren.
32+
33+
Dies ist besonders hilfreich bei:
34+
35+
- Instabilen Netzwerkverbindungen
36+
- Wiederverwendung bereits heruntergeladener Ressourcen
37+
- Bedarf an einer kontrollierbaren und konsistenten Installationsquelle
38+
39+
## Bei fehlgeschlagenen Aufgaben
40+
41+
Bevor du es erneut versuchst, prüfe Folgendes:
42+
43+
- Genügend freier Speicherplatz auf der Festplatte
44+
- Schreibrechte im Zielverzeichnis
45+
- Erforderliche Windows-Komponenten sind installiert
46+
- Der aktuell gewählte Spiegelserver ist weiterhin erreichbar
47+
48+
Sollte das Problem weiterhin bestehen, lies bitte den Abschnitt [Updates und Fehlerbehebung](./update-troubleshooting).
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# Häufig gestellte Fragen, Community und Feedback
2+
3+
## Häufig gestellte Fragen (FAQ)
4+
5+
### Muss ich über eine Originalversion von Minecraft Bedrock verfügen?
6+
7+
Ja. LeviLauncher ist explizit für die Verwendung mit der **originalen Minecraft Bedrock Edition (GDK)** konzipiert.
8+
9+
### Kann ich es unter macOS oder Linux verwenden?
10+
11+
Diese Benutzerdokumentation gilt ausschließlich für **Windows**.
12+
13+
### Soll ich Release oder Preview wählen?
14+
15+
Für reguläres Spielen empfiehlt sich stets die **offizielle Version (Release)**. Die **Vorschauversion (Preview)** sollte nur genutzt werden, wenn du bewusst neue Funktionen testen möchtest und Instabilitäten akzeptieren kannst.
16+
17+
### Ist Isolierung zwingend erforderlich?
18+
19+
Nein, sie ist nicht zwingend – wird aber dringend empfohlen für Testumgebungen, Minecraft Preview und Modifikationen.
20+
21+
### Kann ich Welten und Ressourcenpakete im Launcher verwalten?
22+
23+
Ja. LeviLauncher bietet Übersichten für Welten, Ressourcenpakete, Verhaltenspakete, Skin-Pakete, Screenshots und Serverlisten.
24+
25+
### Kann ich Mods installieren?
26+
27+
Ja, dies gehört jedoch zu fortgeschrittenen Workflows. Wir empfehlen, zunächst mit einer sauberen, isolierten Version zu beginnen und schrittweise zu testen.
28+
29+
## Community-Zugänge
30+
31+
- **Offizieller Discord:** [discord.gg/v5R5P4vRZk](https://discord.gg/v5R5P4vRZk)
32+
- **Persönlicher Discord-Kanal:** [discord.gg/VqQaC8vWz8](https://discord.gg/VqQaC8vWz8)
33+
- **QQ-Gruppe (chinesisch):** [458083875](https://qm.qq.com/q/1z791rJgJG)
34+
35+
## Download-Quellen
36+
37+
- **GitHub Releases (offizieller Download):** [LiteLDev/LeviLauncher Releases](https://github.com/LiteLDev/LeviLauncher/releases)
38+
- **Lanzou Cloud Mirror:** [levimc.lanzoue.com/b016ke39hc](https://levimc.lanzoue.com/b016ke39hc) — Passwort: `levi`
39+
40+
## So gibst du Probleme oder Feature-Ideen weiter
41+
42+
Bitte verwende [GitHub Issues](https://github.com/LiteLDev/LeviLauncher/issues), um Folgendes zu melden:
43+
44+
- Reproduzierbare Fehler
45+
- Installationsprobleme, die eindeutig mit LeviLauncher zusammenhängen
46+
- Vorschläge zur Verbesserung unklarer Dokumentationsstellen
47+
- Feature-Anfragen mit klar beschriebenem Anwendungsfall
48+
49+
## Bevor du ein Issue erstellst, empfehlen wir Folgendes
50+
51+
- Aktualisiere auf die neueste verfügbare Version
52+
- Führe einen Vergleichstest mit einer sauberen, isolierten Version durch
53+
- Deaktiviere vorübergehend neu hinzugefügte Mods oder Ressourcenpakete
54+
- Notiere die genauen Schritte, die zum Problem führen

docs/de-DE/guide/first-launch.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Erster Start
2+
3+
Beim ersten Öffnen von LeviLauncher prüft die Anwendung zunächst, ob die Windows- und Minecraft-Umgebung die Anforderungen für eine verwaltete Installation erfüllt.
4+
5+
## Was du möglicherweise siehst
6+
7+
Beim ersten Start kann LeviLauncher Folgendes tun:
8+
9+
- Überprüfen, ob Gaming Services verfügbar ist
10+
- Überprüfen, ob GameInput verfügbar ist
11+
- Validieren, ob die Minecraft Bedrock (GDK)-Umgebung bereit ist
12+
- Bei fehlenden Schlüsselkomponenten entsprechende Hinweise oder Anleitungen anzeigen
13+
14+
## Typischer Ablauf beim ersten Start
15+
16+
1. Öffne LeviLauncher.
17+
2. Lies die angezeigten Hinweise des Launchers.
18+
3. Installiere oder repariere fehlende Voraussetzungen.
19+
4. Kehre zum Launcher zurück und überprüfe den Status erneut.
20+
5. Sobald alle Bedingungen erfüllt sind, gelangst du zur **Download**-Seite.
21+
22+
## Falls Komponenten als fehlend gemeldet werden
23+
24+
### Gaming Services
25+
26+
Falls Gaming Services fehlt oder beschädigt ist, leitet dich LeviLauncher möglicherweise zum Microsoft Store, um es zu installieren oder zu reparieren.
27+
28+
### GameInput
29+
30+
Falls GameInput fehlt, installiere bitte das angeforderte Redistributable-Paket gemäß den Anweisungen.
31+
32+
### Minecraft Bedrock wurde nicht erkannt
33+
34+
Bitte stelle sicher, dass:
35+
36+
- Dein aktuelles Microsoft-Konto über eine gültige Spiellizenz verfügt
37+
- Das Spiel auf diesem Computer bereits über den Microsoft Store installiert wurde
38+
- Du nicht versuchst, den offiziellen Lizenzierungsprozess zu umgehen
39+
40+
## Empfohlene Standardeinstellungen für neue Nutzer
41+
42+
- Beginne zunächst mit einer isolierten **Release**-Version
43+
- Wähle für Downloads und Inhalte ein beschreibbares Laufwerk
44+
- Importiere keine große Anzahl von Mods, bevor der erste saubere Start erfolgreich war
45+
46+
## Empfohlene weiterführende Themen nach dem ersten Start
47+
48+
- [Versionsverwaltung](./version-management)
49+
- [Inhaltsverwaltung](./content-management)
50+
- [Einstellungen und Personalisierung](./settings-personalization)

0 commit comments

Comments
 (0)