Skip to content

Commit f02145c

Browse files
authored
Merge pull request #4925 from NginxProxyManager/develop
v2.13.4
2 parents 2578105 + adee0e3 commit f02145c

Some content is hidden

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

67 files changed

+6518
-25
lines changed

.version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.13.3
1+
2.13.4

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<p align="center">
22
<img src="https://nginxproxymanager.com/github.png">
33
<br><br>
4-
<img src="https://img.shields.io/badge/version-2.13.3-green.svg?style=for-the-badge">
4+
<img src="https://img.shields.io/badge/version-2.13.4-green.svg?style=for-the-badge">
55
<a href="https://hub.docker.com/repository/docker/jc21/nginx-proxy-manager">
66
<img src="https://img.shields.io/docker/stars/jc21/nginx-proxy-manager.svg?style=for-the-badge">
77
</a>

frontend/check-locales.cjs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,12 @@
88

99
const allLocales = [
1010
["en", "en-US"],
11-
["fa", "fa-IR"],
11+
["es", "es-ES"],
12+
["de", "de-DE"],
13+
["ru", "ru-RU"],
14+
["sk", "sk-SK"],
15+
["zh", "zh-CN"],
16+
["pl", "pl-PL"],
1217
];
1318

1419
const ignoreUnused = [

frontend/src/locale/IntlProvider.tsx

100644100755
Lines changed: 54 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,73 @@
11
import { createIntl, createIntlCache } from "react-intl";
2+
import langDe from "./lang/de.json";
23
import langEn from "./lang/en.json";
4+
import langEs from "./lang/es.json";
5+
import langJa from "./lang/ja.json";
36
import langList from "./lang/lang-list.json";
7+
import langRu from "./lang/ru.json";
8+
import langSk from "./lang/sk.json";
9+
import langZh from "./lang/zh.json";
10+
import langPl from "./lang/pl.json";
411

512
// first item of each array should be the language code,
613
// not the country code
714
// Remember when adding to this list, also update check-locales.js script
8-
const localeOptions = [["en", "en-US"]];
15+
const localeOptions = [
16+
["en", "en-US"],
17+
["de", "de-DE"],
18+
["es", "es-ES"],
19+
["ja", "ja-JP"],
20+
["ru", "ru-RU"],
21+
["sk", "sk-SK"],
22+
["zh", "zh-CN"],
23+
["pl", "pl-PL"],
24+
];
925

1026
const loadMessages = (locale?: string): typeof langList & typeof langEn => {
1127
const thisLocale = locale || "en";
1228
switch (thisLocale.slice(0, 2)) {
29+
case "de":
30+
return Object.assign({}, langList, langEn, langDe);
31+
case "es":
32+
return Object.assign({}, langList, langEn, langEs);
33+
case "ja":
34+
return Object.assign({}, langList, langEn, langJa);
35+
case "ru":
36+
return Object.assign({}, langList, langEn, langRu);
37+
case "sk":
38+
return Object.assign({}, langList, langEn, langSk);
39+
case "zh":
40+
return Object.assign({}, langList, langEn, langZh);
41+
case "pl":
42+
return Object.assign({}, langList, langEn, langPl);
1343
default:
1444
return Object.assign({}, langList, langEn);
1545
}
1646
};
1747

1848
const getFlagCodeForLocale = (locale?: string) => {
1949
switch (locale) {
50+
case "es-ES":
51+
case "es":
52+
return "ES";
53+
case "de-DE":
54+
case "de":
55+
return "DE";
56+
case "ja-JP":
57+
case "ja":
58+
return "JP";
59+
case "ru-RU":
60+
case "ru":
61+
return "RU";
62+
case "sk-SK":
63+
case "sk":
64+
return "SK";
65+
case "zh":
66+
case "zh-CN":
67+
return "CN";
68+
case "pl":
69+
case "pl-PL":
70+
return "PL";
2071
default:
2172
return "EN";
2273
}
@@ -40,10 +91,7 @@ const getLocale = (short = false) => {
4091
const cache = createIntlCache();
4192

4293
const initialMessages = loadMessages(getLocale());
43-
let intl = createIntl(
44-
{ locale: getLocale(), messages: initialMessages },
45-
cache,
46-
);
94+
let intl = createIntl({ locale: getLocale(), messages: initialMessages }, cache);
4795

4896
const changeLocale = (locale: string): void => {
4997
const messages = loadMessages(locale);
@@ -83,12 +131,4 @@ const T = ({
83131
);
84132
};
85133

86-
export {
87-
localeOptions,
88-
getFlagCodeForLocale,
89-
getLocale,
90-
createIntl,
91-
changeLocale,
92-
intl,
93-
T,
94-
};
134+
export { localeOptions, getFlagCodeForLocale, getLocale, createIntl, changeLocale, intl, T };

frontend/src/locale/lang/de.json

Lines changed: 216 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,216 @@
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+
"certificate.renew": "Zertifikat erneuern",
36+
"certificates": "Zertifikate",
37+
"certificates.custom": "Benutzerdefiniertes Zertifikat",
38+
"certificates.custom.warning": "Mit einem Passwort geschützte Schlüsseldateien werden nicht unterstützt.",
39+
"certificates.dns.credentials": "Inhalt der Anmeldedaten-Datei",
40+
"certificates.dns.credentials-note": "Dieses Plugin erfordert eine Konfigurationsdatei, die einen API-Token oder andere Anmeldedaten für Ihren Anbieter enthält.",
41+
"certificates.dns.credentials-warning": "Diese Daten werden als Klartext in der Datenbank und in einer Datei gespeichert!",
42+
"certificates.dns.propagation-seconds": "Wartzeit in Sekunden",
43+
"certificates.dns.propagation-seconds-note": "Leer lassen um die Standardwartezeit des Plugins zu nutzen",
44+
"certificates.dns.provider": "DNS Provider",
45+
"certificates.dns.warning": "Dieser Abschnitt erfordert einige Kenntnisse über Certbot und seine DNS-Plugins. Bitte konsultieren Sie die jeweilige Plugin-Dokumentation.",
46+
"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.",
47+
"certificates.http.reachability-failed-to-check": "Die Erreichbarkeit konnte aufgrund eines Kommunikationsfehlers mit site24x7.com nicht überprüft werden.",
48+
"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.",
49+
"certificates.http.reachability-ok": "Ihr Server ist erreichbar und die Erstellung von Zertifikaten sollte möglich sein.",
50+
"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.",
51+
"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.",
52+
"certificates.http.test-results": "Test Ergeniss",
53+
"certificates.http.warning": "Diese Domänen müssen bereits so konfiguriert sein, dass sie auf diese Installation verweisen.",
54+
"certificates.request.subtitle": "Über Let's Encrypt",
55+
"certificates.request.title": "Anfordern eines neuen Zertifikates",
56+
"column.access": "Zugriff",
57+
"column.authorization": "Genehmigung",
58+
"column.authorizations": "Genehmigungen",
59+
"column.custom-locations": "Benutzerdefinierte Pfad",
60+
"column.destination": "Ziel",
61+
"column.details": "Details",
62+
"column.email": "Email",
63+
"column.event": "Ereignis",
64+
"column.expires": "Verfällt am",
65+
"column.http-code": "HTTP Code",
66+
"column.incoming-port": "Eingehender Port",
67+
"column.name": "Name",
68+
"column.protocol": "Protokoll",
69+
"column.provider": "Provider",
70+
"column.roles": "Rollen",
71+
"column.rules": "Regeln",
72+
"column.satisfy": "Satisfy",
73+
"column.satisfy-all": "Alle",
74+
"column.satisfy-any": "Jeder",
75+
"column.scheme": "Schema",
76+
"column.source": "Quelle",
77+
"column.ssl": "SSL",
78+
"column.status": "Status",
79+
"created-on": "Erstelldatum: {date}",
80+
"dashboard": "Dashboard",
81+
"dead-host": "404 Host",
82+
"dead-hosts": "404 Hosts",
83+
"dead-hosts.count": "{count} {count, plural, one {404 Host} other {404 Hosts}}",
84+
"disabled": "Deaktiviert",
85+
"domain-names": "Domain Names",
86+
"domain-names.max": "{count} Maximale Anzahl von Domainnamen",
87+
"domain-names.placeholder": "Eintragen der Domain...",
88+
"domain-names.wildcards-not-permitted": "Wildcards sind für diesen Typ nicht zulässig.",
89+
"domain-names.wildcards-not-supported": "Wildcards werden für diese Zertifizierungsstelle nicht unterstützt.",
90+
"domains.force-ssl": "Erzwinge SSL",
91+
"domains.hsts-enabled": "HSTS aktiviert",
92+
"domains.hsts-subdomains": "HSTS Sub-domains",
93+
"domains.http2-support": "HTTP/2 Support",
94+
"domains.use-dns": "Nutze DNS Challenge",
95+
"email-address": "Email Addresse",
96+
"empty-search": "Keine Ergebnisse gefunden",
97+
"empty-subtitle": "Warum erstellen Sie nicht eine?",
98+
"enabled": "aktiviert",
99+
"error.access.at-least-one": "Entweder eine Genehmigung oder eine Zugriffsregel ist erforderlich.",
100+
"error.access.duplicate-usernames": "Autorisierung Benutzernamen müssen eindeutig sein",
101+
"error.invalid-auth": "Ungültige E-Mail-Adresse oder Passwort",
102+
"error.invalid-domain": "Ungültige Domain: {domain}",
103+
"error.invalid-email": "Ungültige E-Mail-Adresse",
104+
"error.max-character-length": "Die maximale Länge beträgt {max} Zeichen{max, plural, one {} other {s}}",
105+
"error.max-domains": "Zu viele Domains, maximal sind {max}",
106+
"error.maximum": "Maximum ist {max}",
107+
"error.min-character-length": "Die minimale Länge beträgt {min} Zeichen{min, plural, one {} other {s}}",
108+
"error.minimum": "Minimum ist {min}",
109+
"error.passwords-must-match": "Passwörter müssen übereinstimmen",
110+
"error.required": "Dies ist erforderlich.",
111+
"expires.on": "Ablauf am: {date}",
112+
"footer.github-fork": "Fork me on Github",
113+
"host.flags.block-exploits": "Gängige Exploits blockieren",
114+
"host.flags.cache-assets": "Cache Assets",
115+
"host.flags.preserve-path": "Pfad beibehalten",
116+
"host.flags.protocols": "Protokole",
117+
"host.flags.websockets-upgrade": "Websockets Support",
118+
"host.forward-port": "Forward Port",
119+
"host.forward-scheme": "Schema",
120+
"hosts": "Hosts",
121+
"http-only": "HTTP Only",
122+
"lets-encrypt": "Let's Encrypt",
123+
"lets-encrypt-via-dns": "Let's Encrypt via DNS",
124+
"lets-encrypt-via-http": "Let's Encrypt via HTTP",
125+
"loading": "Laden…",
126+
"login.title": "Account Login",
127+
"nginx-config.label": "Benutzerdefinierte Nginx Konfiguration",
128+
"nginx-config.placeholder": "# Geben Sie hier Ihre benutzerdefinierte Nginx-Konfiguration auf eigene Gefahr ein!",
129+
"no-permission-error": "Sie haben keinen Zugriff, um dies anzuzeigen.",
130+
"notfound.action": "Take me home",
131+
"notfound.content": "We are sorry but the page you are looking for was not found",
132+
"notfound.title": "Oops… You just found an error page",
133+
"notification.error": "Error",
134+
"notification.object-deleted": "{object} wurde gelöscht",
135+
"notification.object-disabled": "{object} wurde deaktiviert",
136+
"notification.object-enabled": "{object} wurde aktiviert",
137+
"notification.object-renewed": "{object} wurde erneuert",
138+
"notification.object-saved": "{object} wurde gespeichert",
139+
"notification.success": "Erfolgreich",
140+
"object.actions-title": "{object} #{id}",
141+
"object.add": "{object} hinzufügen",
142+
"object.delete": "{object} löschen",
143+
"object.delete.content": "{object} wirklich löschen?",
144+
"object.edit": "{object} bearbeiten",
145+
"object.empty": "Keine {objects} vorhanden",
146+
"object.event.created": "{object} erstellt",
147+
"object.event.deleted": "{object} gelöscht",
148+
"object.event.disabled": "{object} deaktiviert",
149+
"object.event.enabled": "{object} aktiviert",
150+
"object.event.renewed": "{object} erneuert",
151+
"object.event.updated": "{object} aktualisiert",
152+
"offline": "Offline",
153+
"online": "Online",
154+
"options": "Optionen",
155+
"password": "Passwort",
156+
"password.generate": "Zufälliges Passwort generieren",
157+
"password.hide": "Passwort verstecken",
158+
"password.show": "Passwort anzeigen",
159+
"permissions.hidden": "Versteckt",
160+
"permissions.manage": "Verwalten",
161+
"permissions.view": "Nur anzeigen",
162+
"permissions.visibility.all": "Alle Elemente",
163+
"permissions.visibility.title": "Objekt Sichtbarkeit",
164+
"permissions.visibility.user": "Nur erstellte Elemente",
165+
"proxy-host": "Proxy Host",
166+
"proxy-host.forward-host": "Forward Hostname / IP",
167+
"proxy-hosts": "Proxy Hosts",
168+
"proxy-hosts.count": "{count} {count, plural, one {Proxy Host} other {Proxy Hosts}}",
169+
"public": "Öffentlich",
170+
"redirection-host": "Redirection Host",
171+
"redirection-host.forward-domain": "Forward Domain",
172+
"redirection-host.forward-http-code": "HTTP Code",
173+
"redirection-hosts": "Redirection Hosts",
174+
"redirection-hosts.count": "{count} {count, plural, one {Redirection Host} other {Redirection Hosts}}",
175+
"role.admin": "Administrator",
176+
"role.standard-user": "Standard User",
177+
"save": "Speichern",
178+
"setting": "Einstellung",
179+
"settings": "Einstellungen",
180+
"settings.default-site": "Standard Seite",
181+
"settings.default-site.404": "404 Page",
182+
"settings.default-site.444": "No Response (444)",
183+
"settings.default-site.congratulations": "Willkommensseite",
184+
"settings.default-site.description": "Was angezeigt wird, wenn der Nginx eine unbekannte Webseitenanfrage bekommt",
185+
"settings.default-site.html": "Benutzerdefinierte HTML",
186+
"settings.default-site.html.placeholder": "<!-- Geben Sie hier Ihren benutzerdefinierten HTML-Inhalt ein. -->",
187+
"settings.default-site.redirect": "Weiterleitung",
188+
"setup.preamble": "Beginnen Sie mit der Erstellung Ihres Administratorkontos.",
189+
"setup.title": "Willkommen!",
190+
"sign-in": "Login",
191+
"ssl-certificate": "SSL Zertifikate",
192+
"stream": "Stream",
193+
"stream.forward-host": "Forward Host",
194+
"stream.incoming-port": "Incoming Port",
195+
"streams": "Streams",
196+
"streams.count": "{count} {count, plural, one {Stream} other {Streams}}",
197+
"streams.tcp": "TCP",
198+
"streams.udp": "UDP",
199+
"test": "Test",
200+
"user": "User",
201+
"user.change-password": "Passwort ändern",
202+
"user.confirm-password": "Passwort wiederholen",
203+
"user.current-password": "Aktuelles Passwort",
204+
"user.edit-profile": "Profil bearbeiten",
205+
"user.full-name": "Name",
206+
"user.login-as": "Einloggen als {name}",
207+
"user.logout": "Ausloggen",
208+
"user.new-password": "Neues Password",
209+
"user.nickname": "Nickname",
210+
"user.set-password": "Passwort setzen",
211+
"user.set-permissions": "Berechtigungen für {name} setzen",
212+
"user.switch-dark": "Zum Dark Mode wechseln",
213+
"user.switch-light": "Zum Light Mode wechslen",
214+
"username": "Benutzername",
215+
"users": "Benutzer"
216+
}

frontend/src/locale/lang/en.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@
6262
"column.email": "Email",
6363
"column.event": "Event",
6464
"column.expires": "Expires",
65-
"column.http-code": "Access",
65+
"column.http-code": "HTTP Code",
6666
"column.incoming-port": "Incoming Port",
6767
"column.name": "Name",
6868
"column.protocol": "Protocol",

0 commit comments

Comments
 (0)