diff --git a/src/components/launch/LaunchWindow.tsx b/src/components/launch/LaunchWindow.tsx index 93732ff8..99ca284f 100644 --- a/src/components/launch/LaunchWindow.tsx +++ b/src/components/launch/LaunchWindow.tsx @@ -57,6 +57,7 @@ interface DesktopSource { const LOCALE_LABELS: Record = { en: "EN", es: "ES", + nl: "NL", "zh-CN": "中文", ko: "한국어", }; diff --git a/src/contexts/I18nContext.tsx b/src/contexts/I18nContext.tsx index e3296973..e739b268 100644 --- a/src/contexts/I18nContext.tsx +++ b/src/contexts/I18nContext.tsx @@ -28,6 +28,13 @@ import esLaunch from '@/i18n/locales/es/launch.json' import esSettings from '@/i18n/locales/es/settings.json' import esShortcuts from '@/i18n/locales/es/shortcuts.json' import esTimeline from '@/i18n/locales/es/timeline.json' +import nlCommon from '@/i18n/locales/nl/common.json' +import nlDialogs from '@/i18n/locales/nl/dialogs.json' +import nlEditor from '@/i18n/locales/nl/editor.json' +import nlLaunch from '@/i18n/locales/nl/launch.json' +import nlSettings from '@/i18n/locales/nl/settings.json' +import nlShortcuts from '@/i18n/locales/nl/shortcuts.json' +import nlTimeline from '@/i18n/locales/nl/timeline.json' import koCommon from '@/i18n/locales/ko/common.json' import koDialogs from '@/i18n/locales/ko/dialogs.json' import koEditor from '@/i18n/locales/ko/editor.json' @@ -66,6 +73,15 @@ const messages: Record = { dialogs: esDialogs, shortcuts: esShortcuts, }, + nl: { + common: nlCommon, + launch: nlLaunch, + editor: nlEditor, + timeline: nlTimeline, + settings: nlSettings, + dialogs: nlDialogs, + shortcuts: nlShortcuts, + }, ko: { common: koCommon, launch: koLaunch, diff --git a/src/i18n/config.ts b/src/i18n/config.ts index e51a8e43..6ed25de2 100644 --- a/src/i18n/config.ts +++ b/src/i18n/config.ts @@ -1,6 +1,6 @@ export const DEFAULT_LOCALE = 'en' as const -export const SUPPORTED_LOCALES = ['en', 'es', 'ko', 'zh-CN'] as const +export const SUPPORTED_LOCALES = ['en', 'es', 'nl', 'ko', 'zh-CN'] as const export const I18N_NAMESPACES = [ 'common', diff --git a/src/i18n/locales/nl/common.json b/src/i18n/locales/nl/common.json new file mode 100644 index 00000000..0e7c2f33 --- /dev/null +++ b/src/i18n/locales/nl/common.json @@ -0,0 +1,26 @@ +{ + "app": { + "name": "Recordly", + "editorTitle": "Recordly Editor", + "subtitle": "Schermopname en bewerking", + "language": "Taal", + "manageRecordings": "Opnamemap openen" + }, + "actions": { + "cancel": "Annuleren", + "close": "Sluiten", + "export": "Exporteren", + "load": "Laden", + "redo": "Opnieuw", + "reset": "Herstellen", + "save": "Opslaan", + "undo": "Ongedaan maken", + "delete": "Verwijderen", + "done": "Klaar" + }, + "errors": { + "invalidFileType": "Ongeldig bestandstype", + "failedToUploadImage": "Afbeelding uploaden mislukt", + "fileReadError": "Er is een fout opgetreden bij het lezen van het bestand." + } +} diff --git a/src/i18n/locales/nl/dialogs.json b/src/i18n/locales/nl/dialogs.json new file mode 100644 index 00000000..32ca08e0 --- /dev/null +++ b/src/i18n/locales/nl/dialogs.json @@ -0,0 +1,62 @@ +{ + "export": { + "pleaseTryAgain": "Probeer het opnieuw", + "compilingGifProgress": "GIF samenstellen... {{progress}}%", + "compilingGifWait": "GIF samenstellen... Dit kan even duren", + "takeMoment": "Dit kan even duren...", + "exportFailed": "Export mislukt", + "compilingGifTitle": "GIF samenstellen", + "exportingFormat": "{{format}} exporteren", + "exportComplete": "Export voltooid", + "formatReady": "Je {{format}} is klaar", + "showInFolder": "Tonen in map", + "compiling": "Samenstellen", + "renderingFrames": "Frames renderen", + "processing": "Verwerken...", + "status": "Status", + "format": "Formaat", + "compilingStatus": "Samenstellen...", + "frames": "Frames", + "cancelExport": "Export annuleren", + "reopenSaveDialog": "Opslagvenster opnieuw openen", + "savedSuccess": "{{format}} succesvol opgeslagen!" + }, + "addFont": { + "title": "Google-lettertype toevoegen", + "heading": "Google-lettertype toevoegen", + "description": "Voeg een aangepast lettertype van Google Fonts toe om te gebruiken in je annotaties.", + "urlLabel": "Google Fonts import-URL", + "urlPlaceholder": "https://fonts.googleapis.com/css2?family=Roboto&display=swap", + "urlHelp": "Haal dit op via Google Fonts: selecteer een lettertype → klik op \"Get font\" → kopieer de @import-URL", + "nameLabel": "Weergavenaam", + "namePlaceholder": "Mijn aangepast lettertype", + "nameHelp": "Zo verschijnt het lettertype in de lettertypekiezer", + "adding": "Toevoegen...", + "addFont": "Lettertype toevoegen", + "enterUrl": "Voer een Google Fonts import-URL in", + "invalidUrl": "Voer een geldige Google Fonts-URL in", + "enterName": "Voer een lettertypenaam in", + "extractFailed": "Kan lettertypefamilie niet uit URL extraheren", + "addSuccess": "Lettertype \"{{name}}\" succesvol toegevoegd", + "addFailed": "Lettertype toevoegen mislukt", + "loadTimeout": "Lettertype duurde te lang om te laden. Controleer de URL en probeer het opnieuw.", + "loadFailed": "Het lettertype kon niet worden geladen. Controleer of de Google Fonts-URL correct is." + }, + "shortcutsConfig": { + "title": "Sneltoetsen", + "configurable": "Aanpasbaar", + "fixed": "Vast", + "pressEscToCancel": "Druk op Esc om te annuleren", + "clickToChange": "Klik om te wijzigen", + "pressAKey": "Druk op een toets...", + "alreadyUsedBy": "Al in gebruik door {{action}}", + "swap": "Wisselen", + "reserved": "Deze sneltoets is gereserveerd voor \"{{label}}\" en kan niet opnieuw worden toegewezen.", + "saved": "Sneltoetsen opgeslagen", + "resetNotice": "Teruggezet naar standaardsneltoetsen — klik op Opslaan om toe te passen", + "instructions": "Klik op een sneltoets en druk vervolgens op de nieuwe toetscombinatie. Druk op Esc om te annuleren.", + "resetToDefaults": "Standaardwaarden herstellen", + "cancel": "Annuleren", + "save": "Opslaan" + } +} diff --git a/src/i18n/locales/nl/editor.json b/src/i18n/locales/nl/editor.json new file mode 100644 index 00000000..919d66ea --- /dev/null +++ b/src/i18n/locales/nl/editor.json @@ -0,0 +1,118 @@ +{ + "playback": { + "play": "Afspelen", + "pause": "Pauzeren" + }, + "annotations": { + "settings": "Annotatie-instellingen", + "active": "Actief", + "text": "Tekst", + "image": "Afbeelding", + "arrow": "Pijl", + "textContent": "Tekstinhoud", + "textPlaceholder": "Voer je tekst in...", + "fontStyle": "Lettertype", + "selectStyle": "Selecteer stijl", + "size": "Grootte", + "toggleBold": "Vet aan/uit", + "toggleItalic": "Cursief aan/uit", + "toggleUnderline": "Onderstrepen aan/uit", + "alignLeft": "Links uitlijnen", + "alignCenter": "Centreren", + "alignRight": "Rechts uitlijnen", + "textColor": "Tekstkleur", + "background": "Achtergrond", + "none": "Geen", + "clearBackground": "Achtergrond wissen", + "uploadImage": "Afbeelding uploaden", + "supportedFormats": "Ondersteunde formaten: JPG, PNG, GIF, WebP", + "arrowDirection": "Pijlrichting", + "strokeWidth": "Lijndikte: {{width}}px", + "arrowColor": "Pijlkleur", + "deleteAnnotation": "Annotatie verwijderen", + "shortcutsAndTips": "Sneltoetsen & tips", + "tipSelectAnnotation": "Verplaats de afspeelkop naar een overlappend annotatiegedeelte en selecteer een item.", + "tipCycleForward": "Gebruik Tab om door overlappende items te bladeren.", + "tipCycleBackward": "Gebruik Shift+Tab om terug te bladeren.", + "imageUploadSuccess": "Afbeelding succesvol geüpload!", + "imageUploadError": "Upload een JPG-, PNG-, GIF- of WebP-afbeelding." + }, + "fontStyles": { + "classic": "Klassiek", + "editor": "Editor", + "strong": "Sterk", + "typewriter": "Typemachine", + "deco": "Deco", + "simple": "Simpel", + "modern": "Modern", + "clean": "Schoon" + }, + "format": { + "mp4Video": "MP4-video", + "mp4Description": "Videobestand van hoge kwaliteit", + "gifAnimation": "GIF-animatie", + "gifDescription": "Geanimeerde afbeelding om te delen" + }, + "gifOptions": { + "frameRate": "Framesnelheid", + "outputSize": "Uitvoergrootte", + "outputDimensions": "Uitvoer: {{width}} × {{height}}px", + "loopAnimation": "Animatie herhalen", + "loopDescription": "GIF wordt continu afgespeeld" + }, + "tutorial": { + "howTrimmingWorks": "Hoe trimmen werkt", + "title": "Hoe trimmen werkt", + "understanding": "Leer hoe je ongewenste delen uit je video knipt.", + "descriptionP1": "Het trimgereedschap werkt door de segmenten te definiëren die je wilt", + "descriptionRemove": "verwijderen", + "descriptionP2": "uit je video.", + "descriptionP3": "Elk deel van de tijdlijn dat bedekt is door een rood trimsegment wordt weggeknipt bij het exporteren.", + "visualExample": "Visueel voorbeeld", + "removed": "VERWIJDERD", + "kept": "Behouden", + "finalVideo": "Eindvideo", + "part": "Deel {{number}}", + "addTrimStep": "1. Trim toevoegen", + "addTrimDesc": "Druk op T of klik op het schaarpictogram om een sectie te markeren voor verwijdering.", + "adjustStep": "2. Aanpassen", + "adjustDesc": "Sleep de randen van het rode gebied om precies te bepalen wat je wilt wegknippen." + }, + "feedback": { + "trigger": "Feedback", + "title": "Feedback & contact", + "description": "Neem rechtstreeks contact op of maak een issue aan als er iets kapot of ontbrekend is.", + "emailLabel": "E-mail", + "xLabel": "X", + "reportIssue": "Issue melden / feedback sturen", + "openFailed": "Kan link niet openen." + }, + "keyboardShortcuts": { + "trigger": "Sneltoetsen", + "title": "Sneltoetsen", + "description": "Snelreferentie voor de tijdlijn- en editorbesturing.", + "customizeTooltip": "Sneltoetsen aanpassen", + "customize": "Aanpassen", + "panTimeline": "Tijdlijn verschuiven", + "zoomTimeline": "Tijdlijn zoomen", + "cycleAnnotations": "Annotaties doorlopen", + "tab": "Tab" + }, + "actions": { + "saveAgain": "Opnieuw opslaan", + "showInFolder": "Tonen in map" + }, + "project": { + "untitled": "Naamloos" + }, + "exportStatus": { + "exporting": "Exporteren", + "renderingFile": "Je bestand wordt gerenderd.", + "preparing": "Export voorbereiden...", + "completePercent": "{{percent}}% voltooid", + "issue": "Exportprobleem", + "complete": "Export voltooid", + "savedSuccessfully": "Je bestand is succesvol opgeslagen." + }, + "openRecordingsFolder": "Opnamemap openen" +} diff --git a/src/i18n/locales/nl/launch.json b/src/i18n/locales/nl/launch.json new file mode 100644 index 00000000..785c6098 --- /dev/null +++ b/src/i18n/locales/nl/launch.json @@ -0,0 +1,73 @@ +{ + "recording": { + "disableSystemAudio": "Systeemaudio uitschakelen", + "enableSystemAudio": "Systeemaudio inschakelen", + "disableMicrophone": "Microfoon uitschakelen", + "enableMicrophone": "Microfoon inschakelen", + "disableWebcam": "Webcam-overlay uitschakelen", + "enableWebcam": "Webcam-overlay inschakelen", + "countdownDelay": "Aftelvertraging", + "noDelay": "Geen vertraging", + "record": "Opnemen", + "recordingFolder": "Opnamepad: {{path}}", + "chooseRecordingsFolder": "Kies opnamepad", + "folderPath": "Pad: /{{name}}/", + "openVideoFile": "Videobestand openen", + "openProject": "Project openen", + "hideHudFromVideo": "HUD verbergen in opname", + "showHudInVideo": "HUD tonen in opname", + "hideHud": "HUD verbergen", + "closeApp": "App sluiten", + "screens": "Schermen", + "windows": "Vensters", + "noSourcesFound": "Geen bronnen gevonden", + "microphone": "Microfoon", + "turnOffMicrophone": "Microfoon uitschakelen", + "selectMicToEnable": "Selecteer een microfoon om in te schakelen", + "noMicrophonesFound": "Geen microfoons gevonden", + "webcam": "Webcam", + "turnOffWebcam": "Webcam uitschakelen", + "selectWebcamToEnable": "Selecteer een webcam om in te schakelen", + "noWebcamsFound": "Geen webcams gevonden", + "recordingsFolder": "Opnamepad", + "language": "Taal", + "paused": "GEPAUZEERD", + "rec": "OPN", + "resume": "Hervatten", + "pause": "Pauzeren", + "stop": "Stoppen", + "cancel": "Annuleren", + "more": "Meer", + "update": { + "update": "Bijwerken", + "updated": "Bijgewerkt", + "idleTitle": "Controleer op updates.", + "checkingTitle": "Controleren op updates...", + "downloadingTitle": "Update downloaden...", + "errorTitle": "Updatecontrole mislukt. Klik om opnieuw te proberen.", + "upToDateTitle": "Recordly {{version}} is up-to-date.", + "availableTitle": "Recordly {{version}} is beschikbaar.", + "availableGenericTitle": "Er is een update beschikbaar." + } + }, + "sourceSelector": { + "loadingSources": "Bronnen laden...", + "screens": "Schermen", + "windows": "Vensters", + "windowsNote": "Alleen zichtbare (niet-geminimaliseerde) vensters kunnen worden opgenomen.", + "windowPlaceholder": "Venster", + "cancel": "Annuleren", + "share": "Delen" + }, + "permissions": { + "screenRecordingNeeded": "Recordly heeft toestemming voor schermopname nodig voordat je begint. Systeeminstellingen zijn geopend. Schakel het in, sluit Recordly en open het opnieuw.", + "screenRecordingMissing": "Toestemming voor schermopname ontbreekt nog. Systeeminstellingen zijn opnieuw geopend. Schakel het in, sluit Recordly en open het opnieuw voordat je opneemt.", + "accessibilityNeeded": "Recordly heeft ook toegankelijkheidstoestemming nodig voor cursortracking. Systeeminstellingen zijn geopend. Schakel het in, sluit Recordly en open het opnieuw.", + "accessibilityMissing": "Toegankelijkheidstoestemming ontbreekt nog. Systeeminstellingen zijn opnieuw geopend. Schakel het in, sluit Recordly en open het opnieuw voordat je opneemt.", + "selectSource": "Selecteer een bron om op te nemen", + "systemAudioUnavailable": "Systeemaudio is niet beschikbaar voor deze bron. De opname gaat verder zonder systeemaudio.", + "microphoneDenied": "Microfoontoegang is geweigerd. De opname gaat verder zonder microfoonaudio.", + "failedToStart": "Opname starten mislukt: {{error}}", + "failedToStartGeneric": "Opname starten mislukt" + } +} diff --git a/src/i18n/locales/nl/settings.json b/src/i18n/locales/nl/settings.json new file mode 100644 index 00000000..76e5d834 --- /dev/null +++ b/src/i18n/locales/nl/settings.json @@ -0,0 +1,161 @@ +{ + "zoom": { + "level": "Zoomniveau", + "selectRegion": "Selecteer een zoomgebied om aan te passen", + "deleteZoom": "Zoom verwijderen" + }, + "trim": { + "deleteRegion": "Trimgebied verwijderen" + }, + "speed": { + "playbackSpeed": "Afspeelsnelheid", + "selectRegion": "Selecteer een snelheidsgebied om aan te passen", + "deleteRegion": "Snelheidsgebied verwijderen" + }, + "effects": { + "title": "Video-effecten", + "show": "Tonen", + "showCursor": "Cursor tonen", + "loopCursor": "Cursor herhalen", + "cursorStyle": "Cursorstijl", + "cursorStyleOptions": { + "tahoe": "Tahoe", + "dot": "Punt", + "figma": "Minimaal", + "mono": "Omgekeerd", + "lavender": "Lavendel", + "parched": "Parched", + "chooper": "Chooper", + "amongus": "Among Us", + "turtle": "Schildpad" + }, + "backgroundBlur": "Achtergrondvervaging", + "zoomMotionBlur": "Zoom-bewegingsonscherpte", + "connectZooms": "Zooms verbinden", + "zoomGeneralTitle": "Algemeen", + "zoomGeneralDescription": "Globale bewegingsinstellingen voor elke zoomovergang.", + "zoomInTitle": "Inzoomen", + "zoomInDescription": "Bepaal hoe de camera een zoomgebied binnengaat.", + "zoomOutTitle": "Uitzoomen", + "zoomOutDescription": "Bepaal hoe de camera een zoomgebied verlaat.", + "connectedZoomTitle": "Tussen zooms", + "connectedZoomDescription": "Stel de overgang af tussen opeenvolgende zoomgebieden wanneer verbinding is ingeschakeld.", + "zoomInDuration": "Inzoomduur", + "zoomInOverlap": "Inzoomoverlap", + "zoomOutDuration": "Uitzoomduur", + "zoomInEasing": "Inzoomcurve", + "zoomOutEasing": "Uitzoomcurve", + "connectedZoomGap": "Verbonden zoomtussenpauze", + "connectedZoomDuration": "Verbonden zoomduur", + "connectedZoomEasing": "Verbonden pancurve", + "zoomEasingOptions": { + "recordly": "Recordly", + "glide": "Glijden", + "smooth": "Vloeiend", + "snappy": "Pittig", + "linear": "Lineair" + }, + "cursorSize": "Cursorgrootte", + "cursorSmoothing": "Cursorverzachting", + "off": "Uit", + "cursorMotionBlur": "Cursor-bewegingsonscherpte", + "cursorClickBounce": "Cursorklikstuit", + "cursorClickBounceDuration": "Stuitsnelheid", + "cursorSway": "Cursorbeweging", + "webcam": "Webcam-overlay", + "webcamFootage": "Webcambeelden", + "webcamFootageDescription": "Geen webcambeelden gekoppeld aan deze video", + "uploadWebcamFootage": "Beelden uploaden", + "replaceWebcamFootage": "Beelden vervangen", + "removeWebcamFootage": "Beelden verwijderen", + "webcamFootageAdded": "Webcambeelden gekoppeld", + "webcamFootageRemoved": "Webcambeelden verwijderd", + "webcamSize": "Webcamgrootte", + "webcamReactToZoom": "Webcam reageert op zoom", + "webcamRoundness": "Webcam-afronding", + "webcamShadow": "Webcamschaduw", + "shadow": "Schaduw", + "radius": "Straal", + "roundness": "Afronding", + "padding": "Opvulling", + "removeBackground": "Achtergrond verwijderen" + }, + "sections": { + "scene": "Scène", + "captions": "Ondertiteling", + "zoom": "Zoom", + "cursor": "Cursor", + "webcam": "Webcam", + "frame": "Kader", + "crop": "Bijsnijden" + }, + "captions": { + "enabled": "Tonen", + "language": "Taal", + "downloading": "Downloaden...", + "deleteModel": "Model verwijderen", + "clearModel": "Model wissen", + "downloadModel": "Model downloaden", + "generating": "Genereren...", + "generateFull": "Ondertiteling genereren", + "regenerateFull": "Ondertiteling opnieuw genereren", + "clearFull": "Ondertiteling wissen", + "fontSettings": "Lettertype-instellingen", + "defaultFont": "Standaard", + "fontFamily": "Lettertype", + "fontSize": "Lettergrootte", + "rowCount": "Rijen", + "animation": "Animatie", + "animationOff": "Uit", + "animationFade": "Vervagen", + "animationRise": "Opstijgen", + "animationPop": "Pop", + "bottomOffset": "Onderste afstand", + "maxWidth": "Maximale breedte", + "boxRadius": "Vakstraal", + "backgroundOpacity": "Achtergrond-dekking", + "textColor": "Tekstkleur" + }, + "crop": { + "title": "Video bijsnijden", + "instruction": "Sleep aan elke zijde om het bijsnijgebied aan te passen", + "top": "Boven", + "bottom": "Onder", + "left": "Links", + "right": "Rechts", + "openEditor": "Bijsnijdeditor openen" + }, + "background": { + "title": "Achtergrond", + "image": "Afbeelding", + "color": "Kleur", + "gradient": "Verloop", + "wallpaperPreview": "Achtergrondvoorbeeld", + "uploadCustom": "Afbeelding uploaden", + "uploadSuccess": "Eigen afbeelding succesvol geüpload!", + "uploadError": "Upload een JPG- of JPEG-afbeelding.", + "uploadErrorDescription": "Alleen JPG- en JPEG-afbeeldingen worden ondersteund." + }, + "export": { + "title": "Exporteren", + "mp4": "MP4", + "gif": "GIF", + "quality": { + "low": "Laag", + "medium": "Gemiddeld", + "high": "Hoog", + "original": "Origineel" + }, + "fpsTitle": "FPS", + "loop": "Herhalen", + "outputDimensions": "Uitvoer: {{dimensions}}px", + "sizePresetOriginalShort": "Orig", + "sizePresetMediumShort": "Gem", + "sizePresetLargeShort": "Grt", + "loadProject": "Project laden", + "saveProject": "Project opslaan", + "exportVideo": "{{format}} exporteren", + "reportBug": "Bug melden", + "starOnGithub": "Ster op GitHub" + } +} diff --git a/src/i18n/locales/nl/shortcuts.json b/src/i18n/locales/nl/shortcuts.json new file mode 100644 index 00000000..d11e3d8d --- /dev/null +++ b/src/i18n/locales/nl/shortcuts.json @@ -0,0 +1,16 @@ +{ + "actions": { + "addZoom": "Zoom toevoegen", + "addTrim": "Trim toevoegen", + "addSpeed": "Snelheid toevoegen", + "addAnnotation": "Annotatie toevoegen", + "addKeyframe": "Keyframe toevoegen", + "deleteSelected": "Selectie verwijderen", + "playPause": "Afspelen / Pauzeren", + "cycleForward": "Annotaties vooruit doorlopen", + "cycleBackward": "Annotaties achteruit doorlopen", + "deleteSelectedAlt": "Selectie verwijderen (alt)", + "panTimeline": "Tijdlijn verschuiven", + "zoomTimeline": "Tijdlijn zoomen" + } +} diff --git a/src/i18n/locales/nl/timeline.json b/src/i18n/locales/nl/timeline.json new file mode 100644 index 00000000..464bc9fb --- /dev/null +++ b/src/i18n/locales/nl/timeline.json @@ -0,0 +1,38 @@ +{ + "zoom": { + "cannotPlace": "Kan zoom hier niet plaatsen", + "existsOrNoSpace": "Er bestaat al een zoom op deze locatie of er is niet genoeg ruimte beschikbaar.", + "suggestHandlerUnavailable": "Zoomsuggestie-handler niet beschikbaar", + "noTelemetry": "Geen cursortelemetrie beschikbaar", + "recordFirst": "Neem eerst een screencast op om cursorsuggesties te genereren.", + "noUsableTelemetry": "Geen bruikbare cursortelemetrie", + "notEnoughMovement": "De opname bevat niet genoeg cursorbewegingsdata.", + "noInteractionMoments": "Geen duidelijke interactiemomenten gevonden", + "tryRecording": "Probeer een opname met pauzes of klikken rond belangrijke acties.", + "noAutoZoomSlots": "Geen automatische zoomposities beschikbaar", + "dwellPointsOverlap": "Gedetecteerde rustpunten overlappen bestaande zoomgebieden.", + "addedSuggestions": "{{count}} interactiegebaseerde zoomsuggestie(s) toegevoegd", + "label": "Zoom {{index}}", + "addZoom": "Zoom toevoegen (Z)", + "suggestZooms": "Zooms voorstellen op basis van cursor" + }, + "trim": { + "cannotPlace": "Kan trim hier niet plaatsen", + "existsOrNoSpace": "Er bestaat al een trim op deze locatie of er is niet genoeg ruimte beschikbaar.", + "label": "Trim {{index}}", + "addTrim": "Trim toevoegen (T)" + }, + "speed": { + "cannotPlace": "Kan snelheid hier niet plaatsen", + "existsOrNoSpace": "Er bestaat al een snelheidsregio op deze locatie of er is niet genoeg ruimte beschikbaar.", + "label": "Snelheid" + }, + "annotation": { + "label": "Annotatie", + "image": "Afbeelding", + "addAnnotation": "Annotatie toevoegen (A)" + }, + "addSpeed": "Snelheid toevoegen (S)", + "resizeLeft": "Links verkleinen", + "resizeRight": "Rechts verkleinen" +}