From 484ce8db3c9657ce94e4dbacfd67746434f98085 Mon Sep 17 00:00:00 2001 From: Jelcoo <53396500+Jelcoo@users.noreply.github.com> Date: Thu, 13 Nov 2025 15:01:17 +0100 Subject: [PATCH 1/3] Add Dutch language --- frontend/src/locale/src/lang-list.json | 5 +- frontend/src/locale/src/nl.json | 647 +++++++++++++++++++++++++ 2 files changed, 651 insertions(+), 1 deletion(-) create mode 100644 frontend/src/locale/src/nl.json diff --git a/frontend/src/locale/src/lang-list.json b/frontend/src/locale/src/lang-list.json index 797ed05ede..8bbf0e97eb 100755 --- a/frontend/src/locale/src/lang-list.json +++ b/frontend/src/locale/src/lang-list.json @@ -25,8 +25,11 @@ }, "locale-it-IT": { "defaultMessage": "Italiano" - }, + }, "locale-vi-VN": { "defaultMessage": "Tiếng Việt" + }, + "locale-nl-NL": { + "defaultMessage": "Nederlands" } } diff --git a/frontend/src/locale/src/nl.json b/frontend/src/locale/src/nl.json new file mode 100644 index 0000000000..680623b3cf --- /dev/null +++ b/frontend/src/locale/src/nl.json @@ -0,0 +1,647 @@ +{ + "access-list": { + "defaultMessage": "Toegangslijst" + }, + "access-list.access-count": { + "defaultMessage": "{count} {count, plural, one {Regel} other {Regels}}" + }, + "access-list.auth-count": { + "defaultMessage": "{count} {count, plural, one {Gebruiker} other {Gebruikers}}" + }, + "access-list.help-rules-last": { + "defaultMessage": "Als er minimaal 1 regel bestaat, wordt deze regel als laatste toegevoegd" + }, + "access-list.help.rules-order": { + "defaultMessage": "Onthoud dat de regels van boven naar beneden worden toegevoegd." + }, + "access-list.pass-auth": { + "defaultMessage": "Pass Auth to Upstream" + }, + "access-list.public": { + "defaultMessage": "Publiekelijk toegankelijk" + }, + "access-list.public.subtitle": { + "defaultMessage": "Geen basisautentificatie vereist" + }, + "access-list.satisfy-any": { + "defaultMessage": "Voldoe aan elke" + }, + "access-list.subtitle": { + "defaultMessage": "{users} {users, plural, one {Gebruiker} other {Gebruikers}}, {rules} {rules, plural, one {Regel} other {Regels}} - Aangemaakt: {date}" + }, + "access-lists": { + "defaultMessage": "Toegangslijsten" + }, + "action.add": { + "defaultMessage": "Toevoegen" + }, + "action.add-location": { + "defaultMessage": "Locatie Toevoegen" + }, + "action.close": { + "defaultMessage": "Sluiten" + }, + "action.delete": { + "defaultMessage": "Verwijderen" + }, + "action.disable": { + "defaultMessage": "Uitzetten" + }, + "action.download": { + "defaultMessage": "Download" + }, + "action.edit": { + "defaultMessage": "Bewerken" + }, + "action.enable": { + "defaultMessage": "Aanzetten" + }, + "action.permissions": { + "defaultMessage": "Rechten" + }, + "action.renew": { + "defaultMessage": "Vernieuwen" + }, + "action.view-details": { + "defaultMessage": "Bekijk Details" + }, + "auditlogs": { + "defaultMessage": "Logboeken" + }, + "cancel": { + "defaultMessage": "Annuleren" + }, + "certificate": { + "defaultMessage": "Certificaat" + }, + "certificate.custom-certificate": { + "defaultMessage": "Certificaat" + }, + "certificate.custom-certificate-key": { + "defaultMessage": "Certificaat Sleutel" + }, + "certificate.custom-intermediate": { + "defaultMessage": "Intermediate Certificaat" + }, + "certificate.in-use": { + "defaultMessage": "In Gebruik" + }, + "certificate.none.subtitle": { + "defaultMessage": "Geen certificaat toegewezen" + }, + "certificate.none.subtitle.for-http": { + "defaultMessage": "Deze host gebruikt geen HTTPS" + }, + "certificate.none.title": { + "defaultMessage": "Geen" + }, + "certificate.not-in-use": { + "defaultMessage": "Niet Gebruikt" + }, + "certificate.renew": { + "defaultMessage": "Certificaat Vernieuwen" + }, + "certificates": { + "defaultMessage": "Certificaten" + }, + "certificates.custom": { + "defaultMessage": "Aangepast Certificaat" + }, + "certificates.custom.warning": { + "defaultMessage": "Sleutels met een wachtzin zijn niet ondersteund." + }, + "certificates.dns.credentials": { + "defaultMessage": "Credentials File Content" + }, + "certificates.dns.credentials-note": { + "defaultMessage": "Deze plugin vereist een configuratiebestand met een API token of andere gegevens van de provider." + }, + "certificates.dns.credentials-warning": { + "defaultMessage": "Deze data zal worden opgeslagen als plaintext in de database en in een bestand!" + }, + "certificates.dns.propagation-seconds": { + "defaultMessage": "Verwerkingstijd (seconden)" + }, + "certificates.dns.propagation-seconds-note": { + "defaultMessage": "Laat leeg om de standaardwaarde van de plugin te gebruiken. Aantal seconden om te wachten op DNS propagatie." + }, + "certificates.dns.provider": { + "defaultMessage": "DNS Aanbieder" + }, + "certificates.dns.warning": { + "defaultMessage": "Deze sectie vereist wat informatie over Certbot en zijn DNS plugins. Gebruik de documentatie van de bijbehorende plugins." + }, + "certificates.http.reachability-404": { + "defaultMessage": "Er is een server gevonden op deze domeinnaam, maar dat lijkt niet Nginx Proxy Manager te zijn. Zorg ervoor dat je domein naar het IP waar je NPM instance draait wijst." + }, + "certificates.http.reachability-failed-to-check": { + "defaultMessage": "Bereikbaarheid kan niet worden bepaald door een communicatiefout met site24x7.com." + }, + "certificates.http.reachability-not-resolved": { + "defaultMessage": "Er is geen server beschikbaar op dit domein. Zorg ervoor dat je domein bestaat en naar het IP waar je NPM instance draait wijst en eventueel port 80 wordt doorgegeven in je router." + }, + "certificates.http.reachability-ok": { + "defaultMessage": "Jouw server is bereikbaar en certificaten kunnen worden aangemaakt." + }, + "certificates.http.reachability-other": { + "defaultMessage": "Er is een server gevonden op deze domeinnaam, maar heeft een onverwachte statuscode ({code}) teruggegeven. Is dat de NPM server? Zorg ervoor dat je domein naar het IP waar je NPM instance draait wijst." + }, + "certificates.http.reachability-wrong-data": { + "defaultMessage": "Er is een server gevonden op deze domeinnaam, maar heeft een onverwachte gegevens teruggegeven. Is dat de NPM server? Zorg ervoor dat je domein naar het IP waar je NPM instance draait wijst." + }, + "certificates.http.test-results": { + "defaultMessage": "Testresultaten" + }, + "certificates.http.warning": { + "defaultMessage": "Deze domeinen moeten al worden geconfigureerd om naar deze installatie te wijzen." + }, + "certificates.request.subtitle": { + "defaultMessage": "met Let's Encrypt" + }, + "certificates.request.title": { + "defaultMessage": "Vraag een nieuwe Certificaat aan" + }, + "column.access": { + "defaultMessage": "Toegang" + }, + "column.authorization": { + "defaultMessage": "Authorizatie" + }, + "column.authorizations": { + "defaultMessage": "Authorizaties" + }, + "column.custom-locations": { + "defaultMessage": "Aangepaste Locaties" + }, + "column.destination": { + "defaultMessage": "Doel" + }, + "column.details": { + "defaultMessage": "Details" + }, + "column.email": { + "defaultMessage": "Email" + }, + "column.event": { + "defaultMessage": "Gebeurtenis" + }, + "column.expires": { + "defaultMessage": "Verloopt" + }, + "column.http-code": { + "defaultMessage": "HTTP Code" + }, + "column.incoming-port": { + "defaultMessage": "Inkomende Poort" + }, + "column.name": { + "defaultMessage": "Naam" + }, + "column.protocol": { + "defaultMessage": "Protocol" + }, + "column.provider": { + "defaultMessage": "Aanbieder" + }, + "column.roles": { + "defaultMessage": "Rollen" + }, + "column.rules": { + "defaultMessage": "Regels" + }, + "column.satisfy": { + "defaultMessage": "Vervul" + }, + "column.satisfy-all": { + "defaultMessage": "Alle" + }, + "column.satisfy-any": { + "defaultMessage": "Elke" + }, + "column.scheme": { + "defaultMessage": "Schema" + }, + "column.source": { + "defaultMessage": "Bron" + }, + "column.ssl": { + "defaultMessage": "SSL" + }, + "column.status": { + "defaultMessage": "Status" + }, + "created-on": { + "defaultMessage": "Aangemaakt: {date}" + }, + "dashboard": { + "defaultMessage": "Dashboard" + }, + "dead-host": { + "defaultMessage": "404 Host" + }, + "dead-hosts": { + "defaultMessage": "404 Hosts" + }, + "dead-hosts.count": { + "defaultMessage": "{count} {count, plural, one {404 Host} other {404 Hosts}}" + }, + "disabled": { + "defaultMessage": "Uitgezet" + }, + "domain-names": { + "defaultMessage": "Domeinnamen" + }, + "domain-names.max": { + "defaultMessage": "{count} domeinnamen toegestaan" + }, + "domain-names.placeholder": { + "defaultMessage": "Voeg een domeinnaam toe..." + }, + "domain-names.wildcards-not-permitted": { + "defaultMessage": "Wildcards zijn niet toegestaan voor dit type" + }, + "domain-names.wildcards-not-supported": { + "defaultMessage": "Wildcards zijn niet ondersteund voor deze CA" + }, + "domains.force-ssl": { + "defaultMessage": "Forceer SSL" + }, + "domains.hsts-enabled": { + "defaultMessage": "HSTS Aangezet" + }, + "domains.hsts-subdomains": { + "defaultMessage": "HSTS Subdomein" + }, + "domains.http2-support": { + "defaultMessage": "HTTP/2 Ondersteuning" + }, + "domains.use-dns": { + "defaultMessage": "Gebruik DNS Challenge" + }, + "email-address": { + "defaultMessage": "E-mailadres" + }, + "empty-search": { + "defaultMessage": "Geen resultaten gevonden" + }, + "empty-subtitle": { + "defaultMessage": "Waarom niet een maken?" + }, + "enabled": { + "defaultMessage": "Aangezet" + }, + "error.access.at-least-one": { + "defaultMessage": "Minimaal één authorizatie- of één toegangsregel is vereist" + }, + "error.access.duplicate-usernames": { + "defaultMessage": "Gebruikersnamen moeten uniek zijn" + }, + "error.invalid-auth": { + "defaultMessage": "Ongeldige email of wachtwoord" + }, + "error.invalid-domain": { + "defaultMessage": "Ongeldige domeinnaam: {domain}" + }, + "error.invalid-email": { + "defaultMessage": "Ongeldig e-mailadres" + }, + "error.max-character-length": { + "defaultMessage": "Maximale lengte is {max} karakter{max, plural, one {} other {s}}" + }, + "error.max-domains": { + "defaultMessage": "Te veel domeinnamen, max is {max}" + }, + "error.maximum": { + "defaultMessage": "Maximale is {max}" + }, + "error.min-character-length": { + "defaultMessage": "Minimale lengte is {min} karakter{min, plural, one {} other {s}}" + }, + "error.minimum": { + "defaultMessage": "Minimale is {min}" + }, + "error.passwords-must-match": { + "defaultMessage": "Wachtwoorden moeten overeenkomen" + }, + "error.required": { + "defaultMessage": "Dit is verplicht" + }, + "expires.on": { + "defaultMessage": "Verloopt: {date}" + }, + "footer.github-fork": { + "defaultMessage": "Maak een Fork op Github" + }, + "host.flags.block-exploits": { + "defaultMessage": "Blokkeer Veelvoorkomende Kwetsbaarheden" + }, + "host.flags.cache-assets": { + "defaultMessage": "Cache Assets" + }, + "host.flags.preserve-path": { + "defaultMessage": "Pad Behouden" + }, + "host.flags.protocols": { + "defaultMessage": "Protocollen" + }, + "host.flags.websockets-upgrade": { + "defaultMessage": "Websockets Ondersteuning" + }, + "host.forward-port": { + "defaultMessage": "Poort Doorsturen" + }, + "host.forward-scheme": { + "defaultMessage": "Schema" + }, + "hosts": { + "defaultMessage": "Hosts" + }, + "http-only": { + "defaultMessage": "Alleen HTTP" + }, + "lets-encrypt": { + "defaultMessage": "Let's Encrypt" + }, + "lets-encrypt-via-dns": { + "defaultMessage": "Let's Encrypt via DNS" + }, + "lets-encrypt-via-http": { + "defaultMessage": "Let's Encrypt via HTTP" + }, + "loading": { + "defaultMessage": "Laden…" + }, + "login.title": { + "defaultMessage": "Inloggen" + }, + "nginx-config.label": { + "defaultMessage": "Aangepaste Nginx Configuratie" + }, + "nginx-config.placeholder": { + "defaultMessage": "# Voeg jouw aangepaste Nginx configuratie hier op eigen risico toe!" + }, + "no-permission-error": { + "defaultMessage": "Jij hebt geen toegang om dit te bekijken." + }, + "notfound.action": { + "defaultMessage": "Thuis" + }, + "notfound.content": { + "defaultMessage": "De pagina waar je naar op zoek bent kan niet worden gevonden" + }, + "notfound.title": { + "defaultMessage": "Oeps… Je hebt een foutpagina gevonden" + }, + "notification.error": { + "defaultMessage": "Fout" + }, + "notification.object-deleted": { + "defaultMessage": "{object} is verwijderd" + }, + "notification.object-disabled": { + "defaultMessage": "{object} is uitgezet" + }, + "notification.object-enabled": { + "defaultMessage": "{object} is aangezet" + }, + "notification.object-renewed": { + "defaultMessage": "{object} is vernieuwd" + }, + "notification.object-saved": { + "defaultMessage": "{object} is opgeslagen" + }, + "notification.success": { + "defaultMessage": "Succes" + }, + "object.actions-title": { + "defaultMessage": "{object} #{id}" + }, + "object.add": { + "defaultMessage": "Voeg {object} toe" + }, + "object.delete": { + "defaultMessage": "Verwijder {object}" + }, + "object.delete.content": { + "defaultMessage": "Weet je zeker dat je {object} wilt verwijderen?" + }, + "object.edit": { + "defaultMessage": "Bewerk {object}" + }, + "object.empty": { + "defaultMessage": "Er zijn geen {objects}" + }, + "object.event.created": { + "defaultMessage": "{object} is aangemaakt" + }, + "object.event.deleted": { + "defaultMessage": "{object} is verwijderd" + }, + "object.event.disabled": { + "defaultMessage": "{object} is uitgezet" + }, + "object.event.enabled": { + "defaultMessage": "{object} is aangezet" + }, + "object.event.renewed": { + "defaultMessage": "{object} is vernieuwd" + }, + "object.event.updated": { + "defaultMessage": "{object} is bijgewerkt" + }, + "offline": { + "defaultMessage": "Offline" + }, + "online": { + "defaultMessage": "Online" + }, + "options": { + "defaultMessage": "Opties" + }, + "password": { + "defaultMessage": "Wachtwoord" + }, + "password.generate": { + "defaultMessage": "Willekeurig wachtwoord genereren" + }, + "password.hide": { + "defaultMessage": "Wachtwoord Verbergen" + }, + "password.show": { + "defaultMessage": "Toon Wachtwoord" + }, + "permissions.hidden": { + "defaultMessage": "Verborgen" + }, + "permissions.manage": { + "defaultMessage": "Beheer" + }, + "permissions.view": { + "defaultMessage": "Alleen Bekijken" + }, + "permissions.visibility.all": { + "defaultMessage": "Alle Items" + }, + "permissions.visibility.title": { + "defaultMessage": "Item Zichtbaarheid" + }, + "permissions.visibility.user": { + "defaultMessage": "Alleen Aangemaakte Items" + }, + "proxy-host": { + "defaultMessage": "Proxy Host" + }, + "proxy-host.forward-host": { + "defaultMessage": "Hostname / IP Doorsturen" + }, + "proxy-hosts": { + "defaultMessage": "Proxy Hosts" + }, + "proxy-hosts.count": { + "defaultMessage": "{count} {count, plural, one {Proxy Host} other {Proxy Hosts}}" + }, + "public": { + "defaultMessage": "Openbaar" + }, + "redirection-host": { + "defaultMessage": "Omleiding Host" + }, + "redirection-host.forward-domain": { + "defaultMessage": "Doorgestuurd Domein" + }, + "redirection-host.forward-http-code": { + "defaultMessage": "HTTP Code" + }, + "redirection-hosts": { + "defaultMessage": "Omleiding Hosts" + }, + "redirection-hosts.count": { + "defaultMessage": "{count} {count, plural, one {Omleiding Host} other {Omleiding Hosts}}" + }, + "role.admin": { + "defaultMessage": "Beheerder" + }, + "role.standard-user": { + "defaultMessage": "Standaard Gebruiker" + }, + "save": { + "defaultMessage": "Opslaan" + }, + "setting": { + "defaultMessage": "Instelling" + }, + "settings": { + "defaultMessage": "Instellingen" + }, + "settings.default-site": { + "defaultMessage": "Standaard Site" + }, + "settings.default-site.404": { + "defaultMessage": "404 Pagina" + }, + "settings.default-site.444": { + "defaultMessage": "Geen Antwoord (444)" + }, + "settings.default-site.congratulations": { + "defaultMessage": "Felicitatiepagina" + }, + "settings.default-site.description": { + "defaultMessage": "Wat te tonen als Nginx een onbekende Host ontvangt" + }, + "settings.default-site.html": { + "defaultMessage": "Aangepaste HTML" + }, + "settings.default-site.html.placeholder": { + "defaultMessage": "" + }, + "settings.default-site.redirect": { + "defaultMessage": "Omleiding" + }, + "setup.preamble": { + "defaultMessage": "Begin met het aanmaken van je beheerder account." + }, + "setup.title": { + "defaultMessage": "Welkom!" + }, + "sign-in": { + "defaultMessage": "Inloggen" + }, + "ssl-certificate": { + "defaultMessage": "SSL Certificaten" + }, + "stream": { + "defaultMessage": "Stream" + }, + "stream.forward-host": { + "defaultMessage": "Doorgestuurde Host" + }, + "stream.incoming-port": { + "defaultMessage": "Inkomende Poort" + }, + "streams": { + "defaultMessage": "Streams" + }, + "streams.count": { + "defaultMessage": "{count} {count, plural, one {Stream} other {Streams}}" + }, + "streams.tcp": { + "defaultMessage": "TCP" + }, + "streams.udp": { + "defaultMessage": "UDP" + }, + "test": { + "defaultMessage": "Test" + }, + "update-available": { + "defaultMessage": "Update Beschikbaar: {latestVersion}" + }, + "user": { + "defaultMessage": "Gebruiker" + }, + "user.change-password": { + "defaultMessage": "Verander Wachtwoord" + }, + "user.confirm-password": { + "defaultMessage": "Bevestig Wachtwoord" + }, + "user.current-password": { + "defaultMessage": "Huidig Wachtwoord" + }, + "user.edit-profile": { + "defaultMessage": "Profiel Bewerken" + }, + "user.full-name": { + "defaultMessage": "Volledige Naam" + }, + "user.login-as": { + "defaultMessage": "Inloggen als {name}" + }, + "user.logout": { + "defaultMessage": "Uitloggen" + }, + "user.new-password": { + "defaultMessage": "Nieuw Wachtwoord" + }, + "user.nickname": { + "defaultMessage": "Bijnaam" + }, + "user.set-password": { + "defaultMessage": "Zet Wachtwoord" + }, + "user.set-permissions": { + "defaultMessage": "Zet machtigingen voor {name}" + }, + "user.switch-dark": { + "defaultMessage": "Verander naar donkere modus" + }, + "user.switch-light": { + "defaultMessage": "Verander naar lichte modus" + }, + "username": { + "defaultMessage": "Gebruikersnaam" + }, + "users": { + "defaultMessage": "Gebruikers" + } +} \ No newline at end of file From 2c6d61459763862911b64d721626b3da4b5e9c6c Mon Sep 17 00:00:00 2001 From: Jelcoo <53396500+Jelcoo@users.noreply.github.com> Date: Thu, 13 Nov 2025 15:24:41 +0100 Subject: [PATCH 2/3] Add HelpDoc translations --- frontend/src/locale/src/HelpDoc/index.ts | 17 +++++++--- .../src/locale/src/HelpDoc/nl/AccessLists.md | 7 +++++ .../src/locale/src/HelpDoc/nl/Certificates.md | 31 +++++++++++++++++++ .../src/locale/src/HelpDoc/nl/DeadHosts.md | 10 ++++++ .../src/locale/src/HelpDoc/nl/ProxyHosts.md | 7 +++++ .../locale/src/HelpDoc/nl/RedirectionHosts.md | 7 +++++ frontend/src/locale/src/HelpDoc/nl/Streams.md | 6 ++++ frontend/src/locale/src/HelpDoc/nl/index.ts | 6 ++++ 8 files changed, 86 insertions(+), 5 deletions(-) create mode 100644 frontend/src/locale/src/HelpDoc/nl/AccessLists.md create mode 100644 frontend/src/locale/src/HelpDoc/nl/Certificates.md create mode 100644 frontend/src/locale/src/HelpDoc/nl/DeadHosts.md create mode 100644 frontend/src/locale/src/HelpDoc/nl/ProxyHosts.md create mode 100644 frontend/src/locale/src/HelpDoc/nl/RedirectionHosts.md create mode 100644 frontend/src/locale/src/HelpDoc/nl/Streams.md create mode 100644 frontend/src/locale/src/HelpDoc/nl/index.ts diff --git a/frontend/src/locale/src/HelpDoc/index.ts b/frontend/src/locale/src/HelpDoc/index.ts index e035ebc1fc..adb351a3ec 100644 --- a/frontend/src/locale/src/HelpDoc/index.ts +++ b/frontend/src/locale/src/HelpDoc/index.ts @@ -1,23 +1,30 @@ import * as de from "./de/index"; import * as en from "./en/index"; +import * as it from "./it/index"; import * as ja from "./ja/index"; +import * as nl from "./nl/index"; import * as pl from "./pl/index"; import * as ru from "./ru/index"; import * as sk from "./sk/index"; -import * as zh from "./zh/index"; -import * as it from "./it/index"; import * as vi from "./vi/index"; +import * as zh from "./zh/index"; -const items: any = { en, de, ja, sk, zh, pl, ru, it, vi }; +const items: any = { en, de, ja, sk, zh, pl, ru, it, vi, nl }; const fallbackLang = "en"; export const getHelpFile = (lang: string, section: string): string => { - if (typeof items[lang] !== "undefined" && typeof items[lang][section] !== "undefined") { + if ( + typeof items[lang] !== "undefined" && + typeof items[lang][section] !== "undefined" + ) { return items[lang][section].default; } // Fallback to English - if (typeof items[fallbackLang] !== "undefined" && typeof items[fallbackLang][section] !== "undefined") { + if ( + typeof items[fallbackLang] !== "undefined" && + typeof items[fallbackLang][section] !== "undefined" + ) { return items[fallbackLang][section].default; } throw new Error(`Cannot load help doc for ${lang}-${section}`); diff --git a/frontend/src/locale/src/HelpDoc/nl/AccessLists.md b/frontend/src/locale/src/HelpDoc/nl/AccessLists.md new file mode 100644 index 0000000000..875627d23b --- /dev/null +++ b/frontend/src/locale/src/HelpDoc/nl/AccessLists.md @@ -0,0 +1,7 @@ +## Wat is een Toegangslijst? + +Toeganslijsten bieden een zwarte- of witte lijst van specifieke client IP-adressen samen met authenticatie voor de Proxy Hosts via Basic HTTP Authenticatie. + +Je kan meerdere client regels, gebruikersnamen en wachtwoorden voor een enkele Toegangslijst configureren en toepassen op één of meerdere _Proxy Hosts_. + +Dit is het meest nuttig voor doorgestuurde webdiensten die geen authenticatiemechanismen hebben of wanneer je wilt beveiligen tegen onbekende bezoekers. diff --git a/frontend/src/locale/src/HelpDoc/nl/Certificates.md b/frontend/src/locale/src/HelpDoc/nl/Certificates.md new file mode 100644 index 0000000000..4477217084 --- /dev/null +++ b/frontend/src/locale/src/HelpDoc/nl/Certificates.md @@ -0,0 +1,31 @@ +## Certificaten Hulp + +### HTTP Certificaat + +Een HTTP gevalideerd certificaat betekent dat Let's Encrypt servers +zullen proberen om over HTTP te bereiken (niet HTTPS!) en als dat gelukt is, zal +jouw certificaat worden uitgegeven. + +Voor deze zal je een _Proxy Host_ moeten hebben die is toegankelijk via HTTP en +die naar deze Nginx installatie wijst. Nadat een certificaat is uitgegeven kan je +de _Proxy Host_ wijzigen om ook HTTPS toegang te geven. Maar de _Proxy Host_ zal +nog moeten worden geconfigureerd voor HTTP toegang om het certificaat te verlengen. + +Dit proces ondersteunt geen domeinen met wildcards. + +### DNS Certificaat + +Een DNS gevalideerd certificaat zal gebruik maken van een DNS Provider plugin. De +DNS Provider zal tijdelijke records op jouw domein maken en Let's Encrypt zal deze +records opvragen om te controleren of je de eigenaar bent. Als dat is gecontroleerd +is zal Let's Encrypt het certificaat uitgeven. + +Je hebt geen _Proxy Host_ nodig om dit soort certificaat aan te vragen. Je hebt dus +geen HTTP _Proxy Host_ nodig. + +Dit proces ondersteunt _wel_ domeinen met wildcards. + +### Aangepast Certificaat + +Gebruik deze optie om jouw eigen SSL Certificaat te uploaden, zoals +geleverd door jouw eigen Certificate Authority. diff --git a/frontend/src/locale/src/HelpDoc/nl/DeadHosts.md b/frontend/src/locale/src/HelpDoc/nl/DeadHosts.md new file mode 100644 index 0000000000..7e26fd5082 --- /dev/null +++ b/frontend/src/locale/src/HelpDoc/nl/DeadHosts.md @@ -0,0 +1,10 @@ +## Wat is een 404 Host? + +Simpel gezegd is een 404 Host een host setup die een 404 pagina weergeeft. + +Dit kan nuttig zijn wanneer jouw domein is opgegeven in zoekmachines en je wil +een betere foutpagina leveren of specifiek om te zeggen tegen de zoekmachines dat +het domein niet langer bestaat. + +Een ander voordeel van het hebben van een 404 Host is om de logs voor bezoeken +te volgen en de referenties te bekijken. diff --git a/frontend/src/locale/src/HelpDoc/nl/ProxyHosts.md b/frontend/src/locale/src/HelpDoc/nl/ProxyHosts.md new file mode 100644 index 0000000000..68f9f4c446 --- /dev/null +++ b/frontend/src/locale/src/HelpDoc/nl/ProxyHosts.md @@ -0,0 +1,7 @@ +## Wat is een Proxy Host? + +Een Proxy Host is de inkomende endpoint voor een webdienst dat je wilt doorsturen. + +Het biedt optionele SSL voor je dienst die mogelijk geen SSL ondersteuning heeft. + +Proxy Hosts worden het meest gebruikt in Nginx Proxy Manager. diff --git a/frontend/src/locale/src/HelpDoc/nl/RedirectionHosts.md b/frontend/src/locale/src/HelpDoc/nl/RedirectionHosts.md new file mode 100644 index 0000000000..6b4e1ab67a --- /dev/null +++ b/frontend/src/locale/src/HelpDoc/nl/RedirectionHosts.md @@ -0,0 +1,7 @@ +## Wat is een Redirection Host? + +Een Redirection Host zal verzoeken van de inkomende domeinnaam doorsturen, en de bezoeker +omleiden naar een andere domeinnaam. + +Het gebruik van een Redirection Host is vooral handig wanneer je jouw website verandert +maar je nog zoekmachines of referenties naar de oude domeinnaam hebben. diff --git a/frontend/src/locale/src/HelpDoc/nl/Streams.md b/frontend/src/locale/src/HelpDoc/nl/Streams.md new file mode 100644 index 0000000000..7305754442 --- /dev/null +++ b/frontend/src/locale/src/HelpDoc/nl/Streams.md @@ -0,0 +1,6 @@ +## Wat is een Stream? + +Streams zijn een nieuwe toevoeging aan Nginx, die toelaat om TCP/UDP +verkeer naar een ander computer op het netwerk te sturen. + +Als je game servers, FTP of SSH servers draait kan dit handig zijn. diff --git a/frontend/src/locale/src/HelpDoc/nl/index.ts b/frontend/src/locale/src/HelpDoc/nl/index.ts new file mode 100644 index 0000000000..a9bb46ba7c --- /dev/null +++ b/frontend/src/locale/src/HelpDoc/nl/index.ts @@ -0,0 +1,6 @@ +export * as AccessLists from "./AccessLists.md"; +export * as Certificates from "./Certificates.md"; +export * as DeadHosts from "./DeadHosts.md"; +export * as ProxyHosts from "./ProxyHosts.md"; +export * as RedirectionHosts from "./RedirectionHosts.md"; +export * as Streams from "./Streams.md"; From c2177abe39e5177e287b1b5aedf21db16a6c03e9 Mon Sep 17 00:00:00 2001 From: Jelcoo <53396500+Jelcoo@users.noreply.github.com> Date: Thu, 13 Nov 2025 15:25:12 +0100 Subject: [PATCH 3/3] Add language to frontend settings & correct some translations --- frontend/check-locales.cjs | 1 + frontend/src/locale/IntlProvider.tsx | 28 +++++++++++++++++++++++----- frontend/src/locale/src/nl.json | 10 +++++----- 3 files changed, 29 insertions(+), 10 deletions(-) diff --git a/frontend/check-locales.cjs b/frontend/check-locales.cjs index b4ffe859d0..feb61a937c 100755 --- a/frontend/check-locales.cjs +++ b/frontend/check-locales.cjs @@ -15,6 +15,7 @@ const allLocales = [ ["zh", "zh-CN"], ["pl", "pl-PL"], ["it", "it-IT"], + ["nl", "nl-NL"], ]; const ignoreUnused = [ diff --git a/frontend/src/locale/IntlProvider.tsx b/frontend/src/locale/IntlProvider.tsx index e92304b4ab..395f45dc63 100755 --- a/frontend/src/locale/IntlProvider.tsx +++ b/frontend/src/locale/IntlProvider.tsx @@ -2,14 +2,15 @@ import { createIntl, createIntlCache } from "react-intl"; import langDe from "./lang/de.json"; import langEn from "./lang/en.json"; import langEs from "./lang/es.json"; +import langIt from "./lang/it.json"; import langJa from "./lang/ja.json"; import langList from "./lang/lang-list.json"; +import langNl from "./lang/nl.json"; +import langPl from "./lang/pl.json"; import langRu from "./lang/ru.json"; import langSk from "./lang/sk.json"; -import langZh from "./lang/zh.json"; -import langPl from "./lang/pl.json"; -import langIt from "./lang/it.json"; import langVi from "./lang/vi.json"; +import langZh from "./lang/zh.json"; // first item of each array should be the language code, // not the country code @@ -25,6 +26,7 @@ const localeOptions = [ ["pl", "pl-PL"], ["it", "it-IT"], ["vi", "vi-VN"], + ["nl", "nl-NL"], ]; const loadMessages = (locale?: string): typeof langList & typeof langEn => { @@ -48,6 +50,8 @@ const loadMessages = (locale?: string): typeof langList & typeof langEn => { return Object.assign({}, langList, langEn, langIt); case "vi": return Object.assign({}, langList, langEn, langVi); + case "nl": + return Object.assign({}, langList, langEn, langNl); default: return Object.assign({}, langList, langEn); } @@ -82,6 +86,9 @@ const getFlagCodeForLocale = (locale?: string) => { case "vi": case "vi-VN": return "VN"; + case "nl": + case "nl-NL": + return "NL"; default: return "EN"; } @@ -105,7 +112,10 @@ const getLocale = (short = false) => { const cache = createIntlCache(); const initialMessages = loadMessages(getLocale()); -let intl = createIntl({ locale: getLocale(), messages: initialMessages }, cache); +let intl = createIntl( + { locale: getLocale(), messages: initialMessages }, + cache, +); const changeLocale = (locale: string): void => { const messages = loadMessages(locale); @@ -145,4 +155,12 @@ const T = ({ ); }; -export { localeOptions, getFlagCodeForLocale, getLocale, createIntl, changeLocale, intl, T }; +export { + localeOptions, + getFlagCodeForLocale, + getLocale, + createIntl, + changeLocale, + intl, + T, +}; diff --git a/frontend/src/locale/src/nl.json b/frontend/src/locale/src/nl.json index 680623b3cf..2732f5e4df 100644 --- a/frontend/src/locale/src/nl.json +++ b/frontend/src/locale/src/nl.json @@ -126,7 +126,7 @@ "defaultMessage": "Laat leeg om de standaardwaarde van de plugin te gebruiken. Aantal seconden om te wachten op DNS propagatie." }, "certificates.dns.provider": { - "defaultMessage": "DNS Aanbieder" + "defaultMessage": "DNS Provider" }, "certificates.dns.warning": { "defaultMessage": "Deze sectie vereist wat informatie over Certbot en zijn DNS plugins. Gebruik de documentatie van de bijbehorende plugins." @@ -201,7 +201,7 @@ "defaultMessage": "Protocol" }, "column.provider": { - "defaultMessage": "Aanbieder" + "defaultMessage": "Provider" }, "column.roles": { "defaultMessage": "Rollen" @@ -504,7 +504,7 @@ "defaultMessage": "Openbaar" }, "redirection-host": { - "defaultMessage": "Omleiding Host" + "defaultMessage": "Redirection Host" }, "redirection-host.forward-domain": { "defaultMessage": "Doorgestuurd Domein" @@ -513,10 +513,10 @@ "defaultMessage": "HTTP Code" }, "redirection-hosts": { - "defaultMessage": "Omleiding Hosts" + "defaultMessage": "Redirection Hosts" }, "redirection-hosts.count": { - "defaultMessage": "{count} {count, plural, one {Omleiding Host} other {Omleiding Hosts}}" + "defaultMessage": "{count} {count, plural, one {Redirection Host} other {Redirection Hosts}}" }, "role.admin": { "defaultMessage": "Beheerder"