From 0bbaae7c5e6525131433ce8d20ab147011e8885c Mon Sep 17 00:00:00 2001 From: Eric Wout van der Steen Date: Tue, 4 Mar 2025 10:14:13 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=8C=90(frontend)=20add=20Dutch=20translat?= =?UTF-8?q?ion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add Dutch to the language selection system, and add configuration files with Dutch translated messages. --- src/frontend/i18next-parser.config.json | 2 +- src/frontend/src/i18n/init.ts | 2 +- src/frontend/src/i18n/useLanguageLabels.ts | 1 + src/frontend/src/locales/nl/global.json | 51 +++++ src/frontend/src/locales/nl/home.json | 56 +++++ .../src/locales/nl/notifications.json | 25 +++ src/frontend/src/locales/nl/rooms.json | 212 ++++++++++++++++++ src/frontend/src/locales/nl/sdk.json | 5 + src/frontend/src/locales/nl/settings.json | 49 ++++ 9 files changed, 401 insertions(+), 2 deletions(-) create mode 100644 src/frontend/src/locales/nl/global.json create mode 100644 src/frontend/src/locales/nl/home.json create mode 100644 src/frontend/src/locales/nl/notifications.json create mode 100644 src/frontend/src/locales/nl/rooms.json create mode 100644 src/frontend/src/locales/nl/sdk.json create mode 100644 src/frontend/src/locales/nl/settings.json diff --git a/src/frontend/i18next-parser.config.json b/src/frontend/i18next-parser.config.json index 27a7e338..00f30e5c 100644 --- a/src/frontend/i18next-parser.config.json +++ b/src/frontend/i18next-parser.config.json @@ -3,6 +3,6 @@ "input": ["src/**/*.{ts,tsx}", "!src/styled-system/**/*", "!src/**/*.d.ts"], "output": "src/locales/$LOCALE/$NAMESPACE.json", "createOldCatalogs": false, - "locales": ["en", "fr", "de"], + "locales": ["en", "fr", "de", "nl"], "sort": true } diff --git a/src/frontend/src/i18n/init.ts b/src/frontend/src/i18n/init.ts index 01b4d49b..2f31495c 100644 --- a/src/frontend/src/i18n/init.ts +++ b/src/frontend/src/i18n/init.ts @@ -14,7 +14,7 @@ i18n .use(initReactI18next) .use(LanguageDetector) .init({ - supportedLngs: ['en', 'fr'], + supportedLngs: ['en', 'fr', 'nl'], fallbackLng: 'fr', ns: i18nDefaultNamespace, detection: { diff --git a/src/frontend/src/i18n/useLanguageLabels.ts b/src/frontend/src/i18n/useLanguageLabels.ts index 31980bb5..051292c8 100644 --- a/src/frontend/src/i18n/useLanguageLabels.ts +++ b/src/frontend/src/i18n/useLanguageLabels.ts @@ -4,6 +4,7 @@ const languageLabels: Record = { en: 'English', fr: 'Français', de: 'Deutsch', + nl: 'Nederlands', } export const useLanguageLabels = () => { diff --git a/src/frontend/src/locales/nl/global.json b/src/frontend/src/locales/nl/global.json new file mode 100644 index 00000000..7ab46519 --- /dev/null +++ b/src/frontend/src/locales/nl/global.json @@ -0,0 +1,51 @@ +{ + "app": "Visio", + "backToHome": "Terug naar het hoofdscherm", + "cancel": "Annuleren", + "closeDialog": "Sluit het dialoogvenster", + "error": { + "heading": "Er is een fout opgetreden bij het laden van de pagina" + }, + "feedback": { + "context": "Visio is nog in vroege ontwikkeling - uw input is belangrijk!", + "cta": "Deel uw feedback" + }, + "forbidden": { + "heading": "U hebt geen toestemming om deze pagina te bekijken" + }, + "loading": "Laden ...", + "loggedInUserTooltip": "Ingelogd als ...", + "login": { + "buttonLabel": "Log in met Proconnect", + "linkLabel": "Wat is ProConnect? ", + "link": "Wat is ProConnect?" + }, + "logout": "Uitloggen", + "notFound": { + "heading": "Pagina niet gevonden" + }, + "submit": "OK", + "footer": { + "links": { + "legifrance": "legifrance.gouv.fr", + "infogouv": "info.gouv.fr", + "servicepublic": "service-public.fr", + "datagouv": "data.gouv.fr", + "legalsTerms": "Wettelijke kennisgeving", + "data": "Persoonlijke gegevens en cookies", + "accessibility": "Toegankelijkheid: audit in uitvoering", + "ariaLabel": "nieuw venster", + "code": "Open Source Code Repository" + }, + "mentions": "Tenzij anders vermeld, is de inhoud van deze site beschikbaar onder", + "license": "etalab 2.0 licentie" + }, + "loginHint": { + "title": "Log in met je ProConnect-account", + "body": "In plaats van te wachten, log in met je ProConnect-account.", + "button": { + "ariaLabel": "Sluit de suggestie", + "label": "OK" + } + } +} diff --git a/src/frontend/src/locales/nl/home.json b/src/frontend/src/locales/nl/home.json new file mode 100644 index 00000000..7b22bb69 --- /dev/null +++ b/src/frontend/src/locales/nl/home.json @@ -0,0 +1,56 @@ +{ + "createMeeting": "Maak een vergadering", + "heading": "Eenvoudige en veilige videoconferenties", + "intro": "Communiceer en werk gemakkelijk, zonder uw soevereiniteit in gevaar te brengen", + "joinInputError": "Gebruik een vergaderlink of code. Voorbeelden:", + "joinInputExample": "Een 10-lettercode zoals : abc-defg-hij", + "joinInputLabel": "Vergadering met link", + "joinInputSubmit": "Deelnemen aan de vergadering", + "joinMeeting": "Deelnemen aan een vergadering", + "joinMeetingTipContent": "U kunt deelnemen aan een vergadering door de volledige link in de adresbalk van de browser te plakken.", + "joinMeetingTipHeading": "Wist u dat?", + "loginToCreateMeeting": "Log in om een vergadering te maken", + "moreLinkLabel": "Meer informatie - nieuw tabblad", + "moreLink": "Meer informatie", + "moreAbout": "over Visio", + "createMenu": { + "laterOption": "Maak een vergadering voor een latere datum", + "instantOption": "Begin direct een vergadering" + }, + "laterMeetingDialog": { + "heading": "Uw verbindingsgegevens", + "description": "Stuur deze link naar de mensen die u wilt uitnodigen voor de vergadering. Zij kunnen deelnemen zonder ProConnect.", + "copy": "Kopieer de vergaderlink", + "copied": "Link gekopieerd naar klembord", + "permissions": "Mensen met deze link hebben uw toestemming niet nodig om deel te nemen aan deze vergadering." + }, + "introSlider": { + "previous": { + "label": "vorige", + "tooltip": "vorige" + }, + "next": { + "label": "volgende", + "tooltip": "volgende" + }, + "beta": { + "text": "Word lid van de bèta", + "tooltip": "Vul het formulier in" + }, + "slide1": { + "title": "Probeer Visio om uw dagelijkse taken te vereenvoudigen", + "body": "Ontdek een intuïtieve en toegankelijke oplossing, ontworpen voor alle openbare partijen, hun partners en nog veel meer.", + "imgAlt": "Illustratie van een gebruiksvriendelijk en toegankelijk samenwerkingsplatform" + }, + "slide2": { + "title": "Houdt groepsgesprekken zonder limieten", + "body": "Vergaderingen van onbeperkte lengte, met soepele en hoogwaardige communicatie, ongeacht de groepsgrootte.", + "imgAlt": "Afbeelding van een virtuele ontmoeting met meerdere deelnemers die naadloos samenwerken" + }, + "slide3": { + "title": "Transformeer uw vergaderingen met AI", + "body": "Krijg nauwkeurige en bruikbare transcripties om uw productiviteit te stimuleren. Deze mogelijkheid is in bèta, probeer het nu!", + "imgAlt": "Illustratie van AI-aangedreven notitie in een virtuele vergadering" + } + } +} diff --git a/src/frontend/src/locales/nl/notifications.json b/src/frontend/src/locales/nl/notifications.json new file mode 100644 index 00000000..6c524852 --- /dev/null +++ b/src/frontend/src/locales/nl/notifications.json @@ -0,0 +1,25 @@ +{ + "defaultName": "Een deelnemer", + "joined": { + "description": "{{name}} is in de ruimte gekomen" + }, + "raised": { + "description": "{{name}} heeft een hand opgestoken.", + "cta": "Open wachtlijst" + }, + "muted": "{{name}} heeft uw microfoon gedempt. Deelnemers kunnen u niet horen.", + "openChat": "Open chat", + "lowerHand": { + "auto": "Het lijkt erop dat u bent begonnen te spreken, dus we laten uw hand zakken.", + "dismiss": "Houdt uw hand opgestoken" + }, + "reaction": { + "description": "{{name}} reageerde met {{emoji}}" + }, + "waitingParticipants": { + "one": "Eén persoon wil deelnemen aan dit gesprek.", + "several": "Meerdere mensen willen deelnemen aan dit gesprek.", + "open": "Openen", + "accept": "Accepteren" + } +} diff --git a/src/frontend/src/locales/nl/rooms.json b/src/frontend/src/locales/nl/rooms.json new file mode 100644 index 00000000..94f3a3fd --- /dev/null +++ b/src/frontend/src/locales/nl/rooms.json @@ -0,0 +1,212 @@ +{ + "feedback": { + "heading": "Je hebt de vergadering verlaten", + "home": "Keer terug naar het hoofdscherm", + "back": "Sluit weer bij de vergadering aan" + }, + "join": { + "videoinput": { + "choose": "Selecteer camera", + "disable": "Camera uitschakelen", + "enable": "Camera inschakelen", + "label": "Camera", + "placeholder": "Schakel de camera in om de preview te zien" + }, + "audioinput": { + "choose": "Selecteer microfoon", + "disable": "Microfoon dempen", + "enable": "Microfoon dempen opheffen", + "label": "Microfoon" + }, + "effects": { + "description": "Pas effecten toe", + "title": "Effecten", + "subTitle": "Configureer de effecten van uw camera." + }, + "heading": "Deelnemen aan de vergadering", + "joinLabel": "Deelnemen", + "joinMeeting": "Deelnemen aan de vergadering", + "toggleOff": "Klik om uit te schakelen", + "toggleOn": "Klik om in te schakelen", + "usernameHint": "Getoond aan andere deelnemers", + "usernameLabel": "Uw naam", + "errors": { + "usernameEmpty": "Uw naam kan niet leeg zijn" + }, + "cameraDisabled": "Camera is uitgeschakeld.", + "cameraStarting": "Camera wordt ingeschakeld." + }, + "leaveRoomPrompt": "Dat zal u de vergadering doen verlaten.", + "shareDialog": { + "copy": "Kopieer de vergaderlink", + "copyButton": "Kopieerlink", + "copied": "Link gekopieerd naar het klembord", + "heading": "Uw vergadering is klaar", + "description": "Deel deze link met mensen die u wilt uitnodigen voor de vergadering.", + "permissions": "Mensen met deze link hebben uw toestemming niet nodig om deel te nemen aan deze vergadering." + }, + "error": { + "createRoom": { + "heading": "Verificatie vereist", + "body": "Deze ruimte is nog niet gemaakt. Logt u alstublieft in om hem aan te maken, of wacht tot een ingelogde gebruiker dat doet." + } + }, + "controls": { + "microphone": "Microfoon", + "camera": "Camera", + "chat": { + "open": "Sluit de chat", + "closed": "Open de chat", + "input": { + "textArea": { + "label": "Voer een bericht in", + "placeholder": "Voer een bericht in" + }, + "button": { + "label": "Stuur bericht" + } + } + }, + "hand": { + "raise": "Hand opsteken", + "lower": "Hand laten zakken" + }, + "screenShare": { + "start": "Scherm delen", + "stop": "Stop schermdelen" + }, + "leave": "Vertrekken", + "participants": { + "open": "Verberg iedereen", + "closed": "Toon iedereen" + }, + "transcript": { + "open": "Verberg AI-assistent", + "closed": "Toon AI-assistant" + }, + "support": "Ondersteuning", + "moreOptions": "Meer opties", + "reactions": { + "button": "Stuur reactie", + "send": "Stuur reactie {{emoji}}", + "you": "U" + } + }, + "options": { + "buttonLabel": "Meer opties", + "items": { + "feedback": "Geef ons feedback", + "settings": "Instellingen", + "username": "Verander uw naam", + "effects": "Pas effecten toe", + "switchCamera": "Selecteer camera", + "fullscreen": { + "enter": "Volledig scherm", + "exit": "Stop volledig scherm stand" + } + } + }, + "effects": { + "activateCamera": "Uw camera is uitgeschakeld. Kies een optie om hem in te schakelen.", + "notAvailable": "Video-effecten zijn binnenkort beschikbaar in uw browser. We werken hier aan! Ondertussen kunt u Chrome gebruiken voor de beste prestaties, of Firefox :(", + "heading": "Vervaging", + "blur": { + "title": "Achtergrond vervagen", + "light": "Licht vervagen", + "normal": "Vervagen", + "apply": "Schakel vervaging in", + "clear": "Schakel vervaging uit" + }, + "virtual": { + "title": "Virtuele achtergrond", + "apply": "Schakel virtuele achtergrond in", + "clear": "Schakel virtuele achtergrond uit" + }, + "experimental": "Experimentele functionaliteit. Een v2 komt er aan met volledige browser-ondersteuning en verbeterde kwaliteit." + }, + "sidePanel": { + "heading": { + "participants": "Deelnemers", + "effects": "Effecten", + "chat": "Berichten in de chat", + "transcript": "AI-assistent" + }, + "content": { + "participants": "deelnemers", + "effects": "effecten", + "chat": "berichten", + "transcript": "AI-assistent" + }, + "closeButton": "Verberg {{content}}" + }, + "chat": { + "disclaimer": "De berichten zijn alleen voor de deelnemers zichtbaar op het moment dat ze worden verzonden. Alle berichten worden verwijderd aan het einde van het gesprek." + }, + "transcript": { + "start": { + "heading": "Start de assistent!", + "body": "De assistent begint automatisch de audio van uw vergadering op te nemen (beperkt tot 1 uur). Na afloop krijgt u direct een heldere en beknopte samenvatting van de discussies in uw e-mail.", + "button": "Start" + }, + "stop": { + "heading": "Opname loopt ...", + "body": "Uw vergadering wordt momenteel opgenomen. U ontvangt een samenvatting via e-mail, zo gauw de vergarding gesloten wordt.", + "button": "Stop met opname" + } + }, + "rating": { + "submit": "Indienen", + "question": "Wat vindt u van de kwaliteit van het gesprek?", + "levels": { + "min": "erg slecht", + "max": "uitstekend" + } + }, + "openFeedback": { + "question": "Wat kunnen we doen om Visio te verbeteren?", + "placeholder": "Beschrijf uw problemen of deel uw suggesties ...", + "submit": "Indienen", + "skip": "Overslaan" + }, + "confirmationMessage": { + "heading": "Bedankt voor uw inzending", + "body": "Ons productteam neemt de tijd om uw feedback zorgvuldig te bekijken. We zullen zo snel mogelijk antwoorden." + }, + "participants": { + "subheading": "In de ruimte", + "you": "U", + "contributors": "Deelnemers", + "collapsable": { + "open": "Open {{name}} lijst", + "close": "Sluit {{name}} lijst" + }, + "muteYourself": "Uw microfoon dempen", + "muteParticipant": "Demp de microfoon van {{name}}", + "muteParticipantAlert": { + "heading": "Demp {{name}}", + "description": "Demp {{name}} voor alle deelnemers? {{name}} zal de enige zijn die dempen voor zichzelf kan opheffen.", + "confirm": "Dempen", + "cancel": "Annuleren" + }, + "raisedHands": "Opgestoken handen", + "lowerParticipantHand": "Laat {{name}}'s hand zakken", + "lowerParticipantsHand": "Laat alle handen zakken" + }, + "recording": { + "label": "Opnemen" + }, + "participantTileFocus": { + "pin": { + "enable": "Pinnen", + "disable": "Losmaken" + }, + "effects": "Pas visuele effecten toe", + "muteParticipant": "Demp {{name}}", + "fullScreen": "Volledig scherm" + }, + "fullScreenWarning": { + "message": "Om niet oneindige uw scherm in zichzelf te delen, kunt u beter niet het hele scherm delen. Deel in plaats daarvan een tab of een ander venster.", + "stop": "Stop met presenteren", + "ignore": "Negeren" + } +} diff --git a/src/frontend/src/locales/nl/sdk.json b/src/frontend/src/locales/nl/sdk.json new file mode 100644 index 00000000..8da4ee6a --- /dev/null +++ b/src/frontend/src/locales/nl/sdk.json @@ -0,0 +1,5 @@ +{ + "createButton": { + "label": "Maak een Visio link" + } +} diff --git a/src/frontend/src/locales/nl/settings.json b/src/frontend/src/locales/nl/settings.json new file mode 100644 index 00000000..b0b2767b --- /dev/null +++ b/src/frontend/src/locales/nl/settings.json @@ -0,0 +1,49 @@ +{ + "account": { + "currentlyLoggedAs": "U bent momenteel ingelogd als <0>{{user}}", + "heading": "Account", + "youAreNotLoggedIn": "U bent niet ingelogd.", + "nameLabel": "Uw naam", + "authentication": "Authenticatie" + }, + "audio": { + "microphone": { + "heading": "Microfoon", + "label": "Selecteer uw audioinvoer" + }, + "speakers": { + "heading": "Luidsprekers", + "label": "Selecteer uw audio-uitvoer", + "test": "Test", + "ongoingTest": "Testgeluid ..." + }, + "permissionsRequired": "Machtigingen vereist" + }, + "notifications": { + "heading": "Geluidsmeldingen", + "label": "Geluidsmeldingen voor", + "actions": { + "disable": "Uitschakelen", + "enable": "Inschakelen" + }, + "items": { + "participantJoined": "Deelnemer is toegevoegd", + "handRaised": "Hand opgestoken", + "messageReceived": "Bericht ontvangen" + } + }, + "dialog": { + "heading": "Instellingen" + }, + "language": { + "heading": "Taal", + "label": "Taal" + }, + "settingsButtonLabel": "Instellingen", + "tabs": { + "account": "Profiel", + "audio": "Audio", + "general": "Algemeen", + "notifications": "Meldingen" + } +}