Skip to content

Commit 9eede0e

Browse files
committed
feat: Add German translation #1
1 parent f6b87bf commit 9eede0e

7 files changed

Lines changed: 127 additions & 8 deletions

File tree

nuxt.config.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* Created Date: 2025-09-08 17:37:49
55
* Author: 3urobeat
66
*
7-
* Last Modified: 2026-03-15 21:27:47
7+
* Last Modified: 2026-03-15 22:19:47
88
* Modified By: 3urobeat
99
*
1010
* Copyright (c) 2025 - 2026 3urobeat <https://github.com/3urobeat>
@@ -83,6 +83,7 @@ export default defineNuxtConfig({
8383
i18n: {
8484
locales: [
8585
{ code: "en", language: "en-US", file: "en.json" },
86+
{ code: "de", language: "de-DE", file: "de.json" },
8687
],
8788
// When enabled, this adds a lang prefix to every route name. This causes errors due to the re-route above and breaks my route detection though, so we disable it.
8889
strategy: "no_prefix",

src/components/pickerDialog.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* Created Date: 2025-12-24 12:09:18
66
* Author: 3urobeat
77
*
8-
* Last Modified: 2026-03-15 21:29:15
8+
* Last Modified: 2026-03-16 19:43:23
99
* Modified By: 3urobeat
1010
*
1111
* Copyright (c) 2025 - 2026 3urobeat <https://github.com/3urobeat>
@@ -57,7 +57,7 @@
5757
/>
5858

5959
<button class="custom-input-primary" @click="isOpen = !isOpen">
60-
Close
60+
{{ $t("close") }}
6161
</button>
6262
</div>
6363

src/i18n/locales/de.json

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
{
2+
"_dummy1": "-------------- General --------------",
3+
"add": "Hinzufügen",
4+
"edit": "Editieren",
5+
"delete": "Löschen",
6+
"save": "Speichern",
7+
"close": "Schließen",
8+
9+
"name": "Name",
10+
"description": "Beschreibung",
11+
"general": "Generell",
12+
"search": "Suche",
13+
"weather": "Wetter",
14+
"language": "Sprache",
15+
"unknownError": "Unbekannter Fehler",
16+
17+
"browse": "Stöbern",
18+
"outfits": "Outfits",
19+
"labels": "Labels",
20+
"settings": "Einstellungen",
21+
"clothing": "Kleidung",
22+
"outfit": "Outfit",
23+
24+
"seconds": "Sekunden",
25+
"minutes": "Minuten",
26+
"hours": "Stunden",
27+
"days": "Tage",
28+
"timeAgo": "vor {time}",
29+
30+
31+
"_dummy2": "-------------- Shared Generic Text --------------",
32+
"sortByDateDesc": "Datum (Neuste zuerst)",
33+
"sortByDateAsc": "Datum (Älteste zuerst)",
34+
"sortByNameDesc": "Name (A-Z)",
35+
"sortByNameAsc": "Name (Z-A)",
36+
37+
"fromTemp": "Von Temperatur:",
38+
"toTemp": "Bis Temperatur:",
39+
"fromDate": "Von Datum:",
40+
"toDate": "Bis Datum:",
41+
42+
"imageFallbackText": "Bild für {name}",
43+
"noItemsToShow": "Keine Gegenstände anzuzeigen.",
44+
"filterNoMatches": "Nichts erfüllt deine Such-/Filterkriterien...",
45+
"deleteConfirmationPrompt": "Bist du sicher, dass du '{name}' löschen möchtest?\nDas kann nicht rückgängig gemacht werden!",
46+
47+
48+
"_dummy3": "-------------- Shared Components Text --------------",
49+
"weatherLoadFail": "Wetter konnte nicht geladen werden!",
50+
"weatherForLocation": "Wetter für {location}:",
51+
"weatherTempFeelsLike": "gefühlt",
52+
"lastRefresh": "Letzte Aktualisierung:",
53+
"poweredBy": "Daten von:",
54+
"weatherGeolocationFail": "Geolokalisierung fehlgeschlagen: {errorText} - Du kanst eine fixe Latitude / Longitude in den Einstellungen konfigurieren.",
55+
"weatherGeolocationDisabledNoLatLonSet": "Geolokalisierung ist deaktiviert, aber es ist keine Latitude / Longitude in den Einstellungen konfiguriert!",
56+
"weatherNoApiKeySet": "Kein API Schlüssel konfiguriert! Bitte setze einen in den Einstellungen.",
57+
"weatherLoadAPIError": "Konnte keine Wetterdaten von der API holen:",
58+
59+
"threedModelViewerToggleAutoRotation": "Auto-Rotation ein/ausschalten",
60+
61+
"addLabel": "Label hinzufügen",
62+
"deleteLabel": "Label löschen",
63+
"addCategory": "Kategorie hinzufügen",
64+
"deleteCategory": "Kategorie löschen",
65+
"categoryName": "Kategoriename",
66+
"addItem": "Gegenstand hinzufügen",
67+
"removeItem": "Gegenstand entfernen",
68+
69+
"head": "Kopf",
70+
"arms": "Arme",
71+
"hands": "Hände",
72+
"torso": "Torso",
73+
"legs": "Beine",
74+
"feet": "Füße",
75+
"categorySpecialityNoneName": "Keine Spezialisierung",
76+
"categorySpecialityBodyPartName": "Körperteil",
77+
"categorySpecialityBodyPartDescription": "Ort am Körper",
78+
"categorySpecialityColorName": "Farbe",
79+
"categorySpecialityColorDescription": "Hex Farbcode",
80+
"categorySpecialitySeasonName": "Jahreszeit",
81+
"categorySpecialitySeasonDescription": "Temperaturbereich",
82+
83+
"navbarUpdateAvailable": "Update verfügbar!",
84+
"navbarNewVersion": "Neue Version:",
85+
"navbarPatchNotesText": "Lies die Patch Notes",
86+
"navbarPatchNotesTextLink": "hier!",
87+
"navbarSourceCodeLink": "Quellcode",
88+
"navbarLicensedUnder": "Lizensiert unter",
89+
90+
91+
"_dummy4": "-------------- Specific Pages Text --------------",
92+
"clothingPageEmpty": "Es ist leer hier. Möchtest du ein Kleidungsstück hinzufügen?",
93+
"clothingQuickAddLabelNamePrompt": "Label Schnellerstellung: Gib einen Namen ein",
94+
95+
"labelsDeleteLabelConfirmationPrompt": "Bist du sicher, dass du '{name}' zur Löschung vormerken möchtest?\nDas kann nicht rückgängig gemacht werden sobald du speicherst!",
96+
"labelsDeleteCategoryConfirmationPrompt": "Bist du sicher, dass du '{name}' und ALL DESSEN LABELS(!) zur Löschung vormerken möchtest?\nDas kann nicht rückgängig gemacht werden sobald du speicherst!",
97+
"labelsConfigureSpeciality": "Konfiguriere Label Spezialisierung",
98+
"labelsSpecialitySeasonTempDateTooltip": "Konfigurier ein oder beide, um Gegenstände auf Temperatur- und/oder Datumsbereich zu beschränken.",
99+
100+
"outfitPageEmpty": "Es ist leer hier. Möchtest du ein Outfit erstellen?",
101+
"outfitPageNoBodyPartSpeciality": "Es sieht so aus, als existiere noch keine Label Kategorie mit der Spezialisierung 'Körperteil'!",
102+
"outfitLabelsSelectorTooltip": "Öffne Label Selektor",
103+
"outfitRecommendationTooltip": "Bekomme Outfit Empfehlung",
104+
"outfitRecommendationEmpty": "Kein Outfit mit 'Jahreszeit' Label gefunden, welches zum aktuellen Wetter / Datum passt.",
105+
106+
"settingsUserSettings": "Nutzereinstellungen",
107+
"settingsServerSettings": "Servereinstellungen",
108+
"settingsTemperatureUnit": "Temperatureinheit:",
109+
"settingsLocationAutomatic": "Ort automatisch bestimmen?",
110+
"settingsLocationForceLat": "Erzwinge Latitude:",
111+
"settingsLocationForceLon": "Erzwinge Longitude:",
112+
"settingsWeatherApiKey": "OpenWeatherMap API Schlüssel:",
113+
"settingsServerJobs": "Serveraufgaben",
114+
"settingsServerJobsRegistrationPendingText": "Server wurde gerade gestartet und\ndie Registrierung von Kernaufgaben steht\nnoch aus. Bitte warte einen Moment.",
115+
"settingsServerInfo": "Serverinformationen"
116+
}

src/i18n/locales/en.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"edit": "Edit",
55
"delete": "Delete",
66
"save": "Save",
7+
"close": "Close",
78

89
"name": "Name",
910
"description": "Description",

src/pages/clothing/index.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* Created Date: 2024-03-23 13:03:16
66
* Author: 3urobeat
77
*
8-
* Last Modified: 2026-03-15 18:37:21
8+
* Last Modified: 2026-03-16 19:47:06
99
* Modified By: 3urobeat
1010
*
1111
* Copyright (c) 2024 - 2026 3urobeat <https://github.com/3urobeat>
@@ -24,7 +24,7 @@
2424
>
2525
<PhPlus class="mr-2 size-5 text-green-600"></PhPlus>
2626
{{ $t("add") }}
27-
<text class="hidden sm:block ml-1">{{ $t("clothing") }}</text>
27+
<!-- <text class="hidden sm:block ml-1">{{ $t("clothing") }}</text> --> <!-- Cool idea but creates headaches with non-English languages -->
2828
</TitleBarFull>
2929

3030
<div :class="titleBarFull.selectedFilters?.length > 0 ? 'py-27 md:py-20' : 'py-20'"> <!-- Push content down on mobile when title bar expands to show filter bar -->

src/pages/outfits/index.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* Created Date: 2025-09-08 15:40:46
66
* Author: 3urobeat
77
*
8-
* Last Modified: 2026-03-15 19:02:08
8+
* Last Modified: 2026-03-16 19:47:00
99
* Modified By: 3urobeat
1010
*
1111
* Copyright (c) 2025 - 2026 3urobeat <https://github.com/3urobeat>
@@ -24,7 +24,7 @@
2424
>
2525
<PhPlus class="mr-2 size-5 text-green-600"></PhPlus>
2626
{{ $t('add') }}
27-
<text class="hidden sm:block ml-1">{{ $t('outfit') }}</text>
27+
<!-- <text class="hidden sm:block ml-1">{{ $t('outfit') }}</text> --> <!-- Cool idea but creates headaches with non-English languages -->
2828
</TitleBarFull>
2929

3030

src/pages/settings/index.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* Created Date: 2025-09-08 15:51:02
66
* Author: 3urobeat
77
*
8-
* Last Modified: 2026-03-16 18:56:53
8+
* Last Modified: 2026-03-16 19:52:18
99
* Modified By: 3urobeat
1010
*
1111
* Copyright (c) 2025 - 2026 3urobeat <https://github.com/3urobeat>
@@ -53,6 +53,7 @@
5353
<label class="custom-label-secondary text-nowrap py-0! px-2! w-fit" for="temperatureUnit">{{ $t('language') }}:</label>
5454
<select id="language" class="custom-input-secondary h-6! px-2!" v-model="selectedLanguage"> <!-- TODO: Options are not centered? -->
5555
<option value="en">🇬🇧 English</option>
56+
<option value="de">🇩🇪 Deutsch</option> <!-- Hard-coded languages, meh -->
5657
</select>
5758
</div>
5859
</div>

0 commit comments

Comments
 (0)