Skip to content

Commit c3954e9

Browse files
authored
Merge pull request #4824 from lastsamurai26/develop
Add German Support
2 parents 39c9bbb + ba79bbc commit c3954e9

File tree

13 files changed

+955
-4
lines changed

13 files changed

+955
-4
lines changed

frontend/src/locale/IntlProvider.tsx

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,31 @@
11
import { createIntl, createIntlCache } from "react-intl";
22
import langEn from "./lang/en.json";
3+
import langDe from "./lang/de.json";
34
import langList from "./lang/lang-list.json";
45

56
// first item of each array should be the language code,
67
// not the country code
78
// Remember when adding to this list, also update check-locales.js script
8-
const localeOptions = [["en", "en-US"]];
9+
const localeOptions = [
10+
["en", "en-US"],
11+
["de", "de-DE"],
12+
];
913

1014
const loadMessages = (locale?: string): typeof langList & typeof langEn => {
1115
const thisLocale = locale || "en";
1216
switch (thisLocale.slice(0, 2)) {
17+
case "de":
18+
return Object.assign({}, langList, langEn, langDe);
1319
default:
1420
return Object.assign({}, langList, langEn);
1521
}
1622
};
1723

1824
const getFlagCodeForLocale = (locale?: string) => {
1925
switch (locale) {
26+
case "de-DE":
27+
case "de":
28+
return "DE";
2029
default:
2130
return "EN";
2231
}

frontend/src/locale/lang/de.json

Lines changed: 215 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,215 @@
1+
{
2+
"access-list": "Zugriffsliste",
3+
"access-list.access-count": "{count} {count, plural, one {Regel} other {Regeln}}",
4+
"access-list.auth-count": "{count} {count, plural, one {User} other {Users}}",
5+
"access-list.help-rules-last": "Wenn mindestens eine Regel vorhanden ist, wird diese Regel zum Ablehnen aller Anfragen als letzte hinzugefügt.",
6+
"access-list.help.rules-order": "Beachten Sie, dass die Anweisungen „Erlauben“ und „Verbieten“ in der Reihenfolge ihrer Definition angewendet werden.",
7+
"access-list.pass-auth": "Authentifizierung an Upstream weiterleiten",
8+
"access-list.public": "Öffentlich",
9+
"access-list.public.subtitle": "Keine Authentifizierung erforderlich",
10+
"access-list.satisfy-any": "Satisfy Any",
11+
"access-list.subtitle": "{users} {users, plural, one {User} other {Users}}, {rules} {rules, plural, one {Regel} other {Regeln}} - Erstellt: {date}",
12+
"access-lists": "Zugrifflisten",
13+
"action.add": "Hinzufügen",
14+
"action.add-location": "Pfad Hinzufügen",
15+
"action.close": "Schließen",
16+
"action.delete": "Löschen",
17+
"action.disable": "Deaktivieren",
18+
"action.download": "Herunterladen",
19+
"action.edit": "Bearbeiten",
20+
"action.enable": "Aktivieren",
21+
"action.permissions": "Berechtigungen",
22+
"action.renew": "Erneuert",
23+
"action.view-details": "Details",
24+
"auditlogs": "Protokoll",
25+
"cancel": "Abbrechen",
26+
"certificate": "Zertifikat",
27+
"certificate.custom-certificate": "Zertifikat",
28+
"certificate.custom-certificate-key": "Privater Schlüssel",
29+
"certificate.custom-intermediate": "Zwischen Zertifikat",
30+
"certificate.in-use": "In Benutzung",
31+
"certificate.none.subtitle": "Kein Zertifikat zugewiesen",
32+
"certificate.none.subtitle.for-http": "Dieser Host verwendet kein HTTPS.",
33+
"certificate.none.title": "Kein",
34+
"certificate.not-in-use": "Nicht in Benutzung",
35+
"certificates": "Zertifikate",
36+
"certificates.custom": "Benutzerdefiniertes Zertifikat",
37+
"certificates.custom.warning": "Mit einem Passwort geschützte Schlüsseldateien werden nicht unterstützt.",
38+
"certificates.dns.credentials": "Inhalt der Anmeldedaten-Datei",
39+
"certificates.dns.credentials-note": "Dieses Plugin erfordert eine Konfigurationsdatei, die einen API-Token oder andere Anmeldedaten für Ihren Anbieter enthält.",
40+
"certificates.dns.credentials-warning": "Diese Daten werden als Klartext in der Datenbank und in einer Datei gespeichert!",
41+
"certificates.dns.propagation-seconds": "Wartzeit in Sekunden",
42+
"certificates.dns.propagation-seconds-note": "Leer lassen um die Standardwartezeit des Plugins zu nutzen",
43+
"certificates.dns.provider": "DNS Provider",
44+
"certificates.dns.warning": "Dieser Abschnitt erfordert einige Kenntnisse über Certbot und seine DNS-Plugins. Bitte konsultieren Sie die jeweilige Plugin-Dokumentation.",
45+
"certificates.http.reachability-404": "Unter dieser Domain wurde ein Server gefunden, aber es scheint sich nicht um Nginx Proxy Manager zu handeln. Bitte stellen Sie sicher, dass Ihre Domain auf die IP-Adresse verweist, unter der Ihre NPM-Instanz ausgeführt wird.",
46+
"certificates.http.reachability-failed-to-check": "Die Erreichbarkeit konnte aufgrund eines Kommunikationsfehlers mit site24x7.com nicht überprüft werden.",
47+
"certificates.http.reachability-not-resolved": "Unter dieser Domain ist kein Server verfügbar. Bitte stellen Sie sicher, dass Ihre Domain existiert und auf die IP-Adresse verweist, unter der Ihre NPM-Instanz läuft, und dass gegebenenfalls Port 80 in Ihrem Router weitergeleitet wird.",
48+
"certificates.http.reachability-ok": "Ihr Server ist erreichbar und die Erstellung von Zertifikaten sollte möglich sein.",
49+
"certificates.http.reachability-other": "Unter dieser Domain wurde ein Server gefunden, der jedoch einen unerwarteten Statuscode {code} zurückgegeben hat. Handelt es sich um den NPM-Server? Bitte stellen Sie sicher, dass Ihre Domain auf die IP-Adresse verweist, unter der Ihre NPM-Instanz ausgeführt wird.",
50+
"certificates.http.reachability-wrong-data": "Unter dieser Domain wurde ein Server gefunden, der jedoch unerwartete Daten zurückgegeben hat. Handelt es sich um den NPM-Server? Bitte stellen Sie sicher, dass Ihre Domain auf die IP-Adresse verweist, unter der Ihre NPM-Instanz ausgeführt wird.",
51+
"certificates.http.test-results": "Test Ergeniss",
52+
"certificates.http.warning": "Diese Domänen müssen bereits so konfiguriert sein, dass sie auf diese Installation verweisen.",
53+
"certificates.request.subtitle": "Über Let's Encrypt",
54+
"certificates.request.title": "Anfordern eines neuen Zertifikates",
55+
"column.access": "Zugriff",
56+
"column.authorization": "Genehmigung",
57+
"column.authorizations": "Genehmigungen",
58+
"column.custom-locations": "Benutzerdefinierte Pfad",
59+
"column.destination": "Ziel",
60+
"column.details": "Details",
61+
"column.email": "Email",
62+
"column.event": "Ereignis",
63+
"column.expires": "Verfällt am",
64+
"column.http-code": "HTTP Code",
65+
"column.incoming-port": "Eingehender Port",
66+
"column.name": "Name",
67+
"column.protocol": "Protokoll",
68+
"column.provider": "Provider",
69+
"column.roles": "Rollen",
70+
"column.rules": "Regeln",
71+
"column.satisfy": "Satisfy",
72+
"column.satisfy-all": "Alle",
73+
"column.satisfy-any": "Jeder",
74+
"column.scheme": "Schema",
75+
"column.source": "Quelle",
76+
"column.ssl": "SSL",
77+
"column.status": "Status",
78+
"created-on": "Erstelldatum: {date}",
79+
"dashboard": "Dashboard",
80+
"dead-host": "404 Host",
81+
"dead-hosts": "404 Hosts",
82+
"dead-hosts.count": "{count} {count, plural, one {404 Host} other {404 Hosts}}",
83+
"disabled": "Deaktiviert",
84+
"domain-names": "Domain Names",
85+
"domain-names.max": "{count} Maximale Anzahl von Domainnamen",
86+
"domain-names.placeholder": "Eintragen der Domain...",
87+
"domain-names.wildcards-not-permitted": "Wildcards sind für diesen Typ nicht zulässig.",
88+
"domain-names.wildcards-not-supported": "Wildcards werden für diese Zertifizierungsstelle nicht unterstützt.",
89+
"domains.force-ssl": "Erzwinge SSL",
90+
"domains.hsts-enabled": "HSTS aktiviert",
91+
"domains.hsts-subdomains": "HSTS Sub-domains",
92+
"domains.http2-support": "HTTP/2 Support",
93+
"domains.use-dns": "Nutze DNS Challenge",
94+
"email-address": "Email Addresse",
95+
"empty-search": "Keine Ergebnisse gefunden",
96+
"empty-subtitle": "Warum erstellen Sie nicht eine?",
97+
"enabled": "aktiviert",
98+
"error.access.at-least-one": "Entweder eine Genehmigung oder eine Zugriffsregel ist erforderlich.",
99+
"error.access.duplicate-usernames": "Autorisierung Benutzernamen müssen eindeutig sein",
100+
"error.invalid-auth": "Ungültige E-Mail-Adresse oder Passwort",
101+
"error.invalid-domain": "Ungültige Domain: {domain}",
102+
"error.invalid-email": "Ungültige E-Mail-Adresse",
103+
"error.max-character-length": "Die maximale Länge beträgt {max} Zeichen{max, plural, one {} other {s}}",
104+
"error.max-domains": "Zu viele Domains, maximal sind {max}",
105+
"error.maximum": "Maximum ist {max}",
106+
"error.min-character-length": "Die minimale Länge beträgt {min} Zeichen{min, plural, one {} other {s}}",
107+
"error.minimum": "Minimum ist {min}",
108+
"error.passwords-must-match": "Passwörter müssen übereinstimmen",
109+
"error.required": "Dies ist erforderlich.",
110+
"expires.on": "Ablauf am: {date}",
111+
"footer.github-fork": "Fork me on Github",
112+
"host.flags.block-exploits": "Gängige Exploits blockieren",
113+
"host.flags.cache-assets": "Cache Assets",
114+
"host.flags.preserve-path": "Pfad beibehalten",
115+
"host.flags.protocols": "Protokole",
116+
"host.flags.websockets-upgrade": "Websockets Support",
117+
"host.forward-port": "Forward Port",
118+
"host.forward-scheme": "Schema",
119+
"hosts": "Hosts",
120+
"http-only": "HTTP Only",
121+
"lets-encrypt": "Let's Encrypt",
122+
"lets-encrypt-via-dns": "Let's Encrypt via DNS",
123+
"lets-encrypt-via-http": "Let's Encrypt via HTTP",
124+
"loading": "Laden…",
125+
"login.title": "Account Login",
126+
"nginx-config.label": "Benutzerdefinierte Nginx Konfiguration",
127+
"nginx-config.placeholder": "# Geben Sie hier Ihre benutzerdefinierte Nginx-Konfiguration auf eigene Gefahr ein!",
128+
"no-permission-error": "Sie haben keinen Zugriff, um dies anzuzeigen.",
129+
"notfound.action": "Take me home",
130+
"notfound.content": "We are sorry but the page you are looking for was not found",
131+
"notfound.title": "Oops… You just found an error page",
132+
"notification.error": "Error",
133+
"notification.object-deleted": "{object} wurde gelöscht",
134+
"notification.object-disabled": "{object} wurde deaktiviert",
135+
"notification.object-enabled": "{object} wurde aktiviert",
136+
"notification.object-renewed": "{object} wurde erneuert",
137+
"notification.object-saved": "{object} wurde gespeichert",
138+
"notification.success": "Erfolgreich",
139+
"object.actions-title": "{object} #{id}",
140+
"object.add": "{object} hinzufügen",
141+
"object.delete": "{object} löschen",
142+
"object.delete.content": "Bist du dir sicher das du diese(n) {object} löschen möchtest?",
143+
"object.edit": "{object} bearbeiten",
144+
"object.empty": "Keine {objects} vorhanden",
145+
"object.event.created": "{object} erstellt",
146+
"object.event.deleted": "{object} gelöscht",
147+
"object.event.disabled": "{object} deaktiviert",
148+
"object.event.enabled": "{object} aktiviert",
149+
"object.event.renewed": "{object} erneuert",
150+
"object.event.updated": "{object} aktualisiert",
151+
"offline": "Offline",
152+
"online": "Online",
153+
"options": "Optionen",
154+
"password": "Passwort",
155+
"password.generate": "Zufälliges Passwort generieren",
156+
"password.hide": "Passwort verstecken",
157+
"password.show": "Passwort anzeigen",
158+
"permissions.hidden": "Versteckt",
159+
"permissions.manage": "Verwalten",
160+
"permissions.view": "Nur anzeigen",
161+
"permissions.visibility.all": "Alle Elemente",
162+
"permissions.visibility.title": "Objekt Sichtbarkeit",
163+
"permissions.visibility.user": "Nur erstellte Elemente",
164+
"proxy-host": "Proxy Host",
165+
"proxy-host.forward-host": "Forward Hostname / IP",
166+
"proxy-hosts": "Proxy Hosts",
167+
"proxy-hosts.count": "{count} {count, plural, one {Proxy Host} other {Proxy Hosts}}",
168+
"public": "Öffentlich",
169+
"redirection-host": "Redirection Host",
170+
"redirection-host.forward-domain": "Forward Domain",
171+
"redirection-host.forward-http-code" : "HTTP Code",
172+
"redirection-hosts": "Redirection Hosts",
173+
"redirection-hosts.count": "{count} {count, plural, one {Redirection Host} other {Redirection Hosts}}",
174+
"role.admin": "Administrator",
175+
"role.standard-user": "Standard User",
176+
"save": "Speichern",
177+
"setting": "Einstellung",
178+
"settings": "Einstellungen",
179+
"settings.default-site": "Standard Seite",
180+
"settings.default-site.404": "404 Page",
181+
"settings.default-site.444": "No Response (444)",
182+
"settings.default-site.congratulations": "Willkommensseite",
183+
"settings.default-site.description": "Was angezeigt wird, wenn der Nginx eine unbekannte Webseitenanfrage bekommt",
184+
"settings.default-site.html": "Benutzerdefinierte HTML",
185+
"settings.default-site.html.placeholder": "<!-- Geben Sie hier Ihren benutzerdefinierten HTML-Inhalt ein. -->",
186+
"settings.default-site.redirect": "Weiterleitung",
187+
"setup.preamble": "Beginnen Sie mit der Erstellung Ihres Administratorkontos.",
188+
"setup.title": "Willkommen!",
189+
"sign-in": "Login",
190+
"ssl-certificate": "SSL Zertifikate",
191+
"stream": "Stream",
192+
"stream.forward-host": "Forward Host",
193+
"stream.incoming-port": "Incoming Port",
194+
"streams": "Streams",
195+
"streams.count": "{count} {count, plural, one {Stream} other {Streams}}",
196+
"streams.tcp": "TCP",
197+
"streams.udp": "UDP",
198+
"test": "Test",
199+
"user": "User",
200+
"user.change-password": "Passwort ändern",
201+
"user.confirm-password": "Passwort wiederholen",
202+
"user.current-password": "Aktuelles Passwort",
203+
"user.edit-profile": "Profil bearbeiten",
204+
"user.full-name": "Name",
205+
"user.login-as": "Einloggen als {name}",
206+
"user.logout": "Ausloggen",
207+
"user.new-password": "Neues Password",
208+
"user.nickname": "Nickname",
209+
"user.set-password": "Passwort setzen",
210+
"user.set-permissions": "Berechtigungen für {name} setzen",
211+
"user.switch-dark": "Zum Dark Mode wechseln",
212+
"user.switch-light": "Zum Light Mode wechslen",
213+
"username": "Benutzername",
214+
"users": "Benutzer"
215+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
{
2+
"locale-de-DE": "German",
23
"locale-en-US": "English"
34
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
## Was ist eine Zugriffsliste?
2+
3+
Zugriffslisten bieten eine Blacklist oder Whitelist mit bestimmten Client-IP-Adressen sowie eine Authentifizierung für die Proxy-Hosts über die grundlegende HTTP-Authentifizierung.
4+
5+
Sie können mehrere Client-Regeln, Benutzernamen und Passwörter für eine einzelne Zugriffsliste konfigurieren und diese dann auf einen oder mehrere Proxy-Hosts anwenden.
6+
7+
Dies ist besonders nützlich für weitergeleitete Webdienste, die keine integrierten Authentifizierungsmechanismen haben, oder wenn Sie sich vor unbekannten Clients schützen möchten.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
## Hilfe zu Zertifikaten
2+
3+
### HTTP-Zertifikat
4+
5+
Ein HTTP-validiertes Zertifikat bedeutet, dass Let's Encrypt-Server
6+
versuchen, Ihre Domains über HTTP (nicht HTTPS!) zu erreichen, und wenn dies erfolgreich ist,
7+
stellen sie Ihr Zertifikat aus.
8+
9+
Für diese Methode müssen Sie einen _Proxy-Host_ für Ihre Domain(s) erstellen, der
10+
über HTTP zugänglich ist und auf diese Nginx-Installation verweist. Nachdem ein Zertifikat
11+
ausgestellt wurde, können Sie den _Proxy-Host_ so ändern, dass dieses Zertifikat auch für HTTPS-Verbindungen
12+
verwendet wird. Der _Proxy-Host_ muss jedoch weiterhin für den HTTP-Zugriff konfiguriert sein,
13+
damit das Zertifikat erneuert werden kann.
14+
15+
Dieser Prozess unterstützt keine Wildcard-Domains.
16+
17+
### DNS-Zertifikat
18+
19+
Für ein DNS-validiertes Zertifikat müssen Sie ein DNS-Provider-Plugin verwenden. Dieser DNS-
20+
Provider wird verwendet, um temporäre Einträge auf Ihrer Domain zu erstellen. Anschließend fragt Let's
21+
Encrypt diese Einträge ab, um sicherzustellen, dass Sie der Eigentümer sind. Bei Erfolg wird
22+
Ihr Zertifikat ausgestellt.
23+
24+
Sie müssen vor der Beantragung dieser Art von Zertifikat keinen _Proxy-Host_ erstellen.
25+
Sie müssen Ihren _Proxy-Host_ auch nicht für den HTTP-Zugriff konfigurieren.
26+
27+
Dieser Prozess unterstützt Wildcard-Domains.
28+
29+
### Benutzerdefiniertes Zertifikat
30+
31+
Verwenden Sie diese Option, um Ihr eigenes SSL-Zertifikat hochzuladen, das Ihnen von Ihrer eigenen
32+
Zertifizierungsstelle bereitgestellt wurde.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
## Was ist ein 404-Host?
2+
3+
Ein 404-Host ist ein Host-Setup, das eine 404-Seite anzeigt.
4+
5+
Dies kann nützlich sein, wenn Ihre Domain in Suchmaschinen gelistet ist und Sie
6+
eine ansprechendere Fehlerseite bereitstellen oder den Suchindexern ausdrücklich mitteilen möchten, dass
7+
die Domain-Seiten nicht mehr existieren.
8+
9+
Ein weiterer Vorteil dieses Hosts besteht darin, dass Sie die Protokolle für Zugriffe darauf verfolgen und
10+
die Verweise anzeigen können.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
## Was ist ein Proxy-Host?
2+
3+
Ein Proxy-Host ist der eingehende Endpunkt für einen Webdienst, den Sie weiterleiten möchten.
4+
5+
Er bietet optionale SSL-Terminierung für Ihren Dienst, der möglicherweise keine integrierte SSL-Unterstützung hat.
6+
7+
Proxy-Hosts sind die häufigste Verwendung für den Nginx Proxy Manager.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
## Was ist ein Redirection Host?
2+
3+
Ein Redirection Host leitet Anfragen von der eingehenden Domain weiter und leitet den
4+
Besucher zu einer anderen Domain weiter.
5+
6+
Der häufigste Grund für die Verwendung dieses Host-Typs ist, wenn Ihre Website die
7+
Domain wechselt, aber Sie noch Suchmaschinen- oder Referrer-Links haben, die auf die alte Domain verweisen.
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
## Was ist ein Stream?
2+
3+
Ein Stream ist eine relativ neue Funktion von Nginx, die dazu dient, TCP/UDP-Datenverkehr
4+
direkt an einen anderen Computer im Netzwerk weiterzuleiten.
5+
6+
Wenn Sie Spielserver, FTP- oder SSH-Server betreiben, kann dies sehr nützlich sein.
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
export * as AccessLists from "./AccessLists.md";
2+
export * as Certificates from "./Certificates.md";
3+
export * as DeadHosts from "./DeadHosts.md";
4+
export * as ProxyHosts from "./ProxyHosts.md";
5+
export * as RedirectionHosts from "./RedirectionHosts.md";
6+
export * as Streams from "./Streams.md";

0 commit comments

Comments
 (0)