From bffccbf31b019a5bd2103a5002496a25dac326c3 Mon Sep 17 00:00:00 2001 From: Marc Riera Irigoyen Date: Thu, 20 Aug 2020 00:47:47 +0200 Subject: [PATCH] Add Catalan translation --- README.md | 2 +- client/locales/ca.json | 597 +++++++++++++++++++++++++++++ client/settings-web-interface.html | 1 + 3 files changed, 599 insertions(+), 1 deletion(-) create mode 100644 client/locales/ca.json diff --git a/README.md b/README.md index f799b643..bd90ebfd 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ And this is a quick list of features first appeared here: * Scheduled rooms cleaning - the same thing for newer firmware of Gen2; * Ability to specify the number of iterations to clean the same zone multiple times; * Display device's status on the map, as well as a set of quick action buttons that are dynamically switching at state changes; -* Multilanguage support, currently available in bg/de/en/es/fi/fr/hu/it/lv/nl/ru/pl; +* Multilanguage support, currently available in bg/ca/de/en/es/fi/fr/hu/it/lv/nl/ru/pl; * A telegram bot software for controlling the vacuum from the outside world; * Experimental ability to SAVE and RESTORE the main map (with per-map list of saved zones and spots); * Full support of room cleaning (requires Gen2 with firmware 2008+). diff --git a/client/locales/ca.json b/client/locales/ca.json new file mode 100644 index 00000000..9173172d --- /dev/null +++ b/client/locales/ca.json @@ -0,0 +1,597 @@ +{ + "common": { + "ok": "D'acord", + "submit": "Envia", + "cancel": "Cancel·la", + "overwrite": "Sobreescriu", + "continue": "Continua", + "dismiss": "Descarta", + "prompt": "Sol·licitud", + "warning": "Avís", + "attention": "Atenció!", + "confirm": "Confirmació", + "close": "Tanca", + "save": "Desa", + "cancelled": "S'ha cancel·lat", + "enabled": "Habilitat", + "commandOK": "S'ha enviat l'ordre correctament!", + "commandFailed": "S'ha produït un error:", + "connectionError": "Error de connexió", + "nameAlreadyUsed": "El nom «{{name}}» ja està en ús", + "battery": "Bateria", + "area": "Àrea", + "time": "Temps", + "m2": "m²", + "hours": "hora", + "hours_plural": "hores", + "months": ["Gen.","Febr.","Març","Abr.","Maig","Juny","Jul.","Ag.","Set.","Oct.","Nov.","Des."], + "days": ["Dilluns","Dimarts","Dimecres","Dijous","Divendres","Dissabte","Diumenge"], + "unknownState": "s'ha retornat un estat desconegut: {{state}}", + "timedOut": "s'ha superat el temps d'espera de l'operació" + }, + "navi": { + "home": "Base de càrrega", + "map": "Mapa", + "zones": "Zones", + "control": "Control", + "settings": "Paràmetres", + "links": "Enllaços", + "about": "Quant a" + }, + "home": { + "labels": { + "state": "S'està carregant l'estat..." + }, + "buttons": { + "start": "Inicia", + "pause": "Pausa", + "stop": "Atura", + "home": "Base de càrrega", + "spot": "Ubicació", + "find": "On sóc?", + "goto": "Vés a", + "zones": "Zones", + "storeMap": "Emmagatzema el mapa", + "loadMap": "Carrega el mapa", + "unknownPower": "Potència desconeguda", + "invalid": "Botó no vàlid" + }, + "popups": { + "selectFanspeed": "Seleccioneu el mode de potència:", + "selectGotoTarget": "Seleccioneu la destinació de desplaçament", + "selectZones": "Seleccioneu les zones que voleu netejar:", + "selectMapToLoad": "Seleccioneu la ranura des de la qual voleu carregar el mapa:", + "emptyZoneChosen": "Heu triat que voleu netejar una zona buida. Configureu-la abans.", + "chooseMapName": "Trieu un títol per desar els fitxers de mapa:", + "invalidMapName": "El títol només pot contenir caràcters llatins, xifres, espais i guionets.", + "slotAlreadyTaken": "La ranura núm. {{slot}} ja està ocupada", + "nameAlreadyTaken": "El nom «{{name}}» ja està en ús", + "noMapsStored": "No hi ha cap mapa desat!", + "slotNo": "ranura núm.", + "newSave": "desament nou", + "selectMapToSave": "Seleccioneu la ranura en la qual voleu desar el mapa:", + "confirmMapLoad": "Segur que voleu carregar el mapa «{{name}}»?", + "confirmMapDelete": "Segur que voleu suprimir el mapa «{{name}}»?", + "wait": "Espereu", + "waitMapTicks": "S'estan executant les rutines de reemplaçament de mapes. Espereu {{seconds}} segons...", + "waitMapFinished": "Ha finalitzat", + "waitMapEncourage": "Les rutines sol·licitades haurien d'haver finalitzat.", + "mapStoredOK": "S'ha emmagatzemat el mapa correctament!", + "mapDeletedOK": "S'ha suprimit el mapa emmagatzemat correctament!", + "mapRestoredOK": "S'ha restaurat el mapa correctament!" + }, + "fanspeedPresets": { + "whisper": "Xiuxiueig", + "quiet": "Silenciós", + "balanced": "Equilibrat", + "turbo": "Turbo", + "max": "Màxim", + "mop": "Mopa" + } + }, + "map": { + "status": "Estat", + "connecting": "S'està connectant...", + "statusText": "{{status}}", + "errorText": "{{error}}", + "confirmFullCleaning": "No es pot iniciar la neteja per zones: no s'ha especificat cap zona. Voleu iniciar una neteja completa en comptes d'això?", + "cannotResume": "No hi ha res per reprendre!", + "noGotoTarget": "Heu de triar una ubicació de desplaçament en el mapa.", + "selectEndGoto": "Vés a la ubicació seleccionada i...", + "selectEndCleaning": "Inicia la neteja seleccionada i...", + "selectEndStop": "Atura", + "selectEndSpot": "Inicia una neteja per ubicacions", + "selectEndBase": "Torna a la base de càrrega", + "selectEndMove": "Vés a la ubicació seleccionada" + }, + "zones": { + "headerZones": "Zones configurades", + "headerGotoLocations": "Ubicacions de destinació configurades", + "headerForbiddenMarkers": "Marcadors de zones prohibides", + "headerSegments": "Paràmetres de les habitacions", + "noZonesConfigured": "Encara no s'ha configurat cap zona.", + "noSpotsConfigured": "Encara no s'ha configurat cap ubicació.", + "editForbiddenZones": "Configura les zones prohibides", + "editSegments": "Edita les habitacions", + "noPersistentData": "Les dades persistents estan inhabilitades o no estan disponibles; no es poden editar els marcadors de zones prohibides.", + "noPersistentDataSegments": "Les dades persistents estan inhabilitades; no es poden editar les habitacions.", + "noSegmentsSupport": "El microprogramari del dispositiu no admet la divisió del mapa en habitacions.", + "addButton": "Afegeix", + "renameButton": "Canvia el nom", + "deleteButton": "Suprimeix", + "newZoneName": "Introduïu un nom per a la zona...", + "newSpotName": "Introduïu un nom per a la ubicació...", + "enterZoneName": "Introduïu un nom per a la zona.", + "enterSpotName": "Introduïu un nom per a la ubicació.", + "renameZone": "Introduïu un nom nou per a la zona «{{zone}}»:", + "renameSpot": "Introduïu un nom nou per a la ubicació «{{spot}}»:", + "confirmDeleteSpot": "Segur que voleu suprimir la ubicació «{{spot}}»?", + "confirmDeleteZone": "Segur que voleu suprimir la zona «{{zone}}»?", + "zonesPageBack": "Zones", + "zoneEditTitle": "Edició de la zona: {{zone}}", + "tooManyMarkers": "No podeu afegir més marcadors de zones prohibides al mapa!", + "zonesSavedOK": "S'ha desat la zona correctament!", + "spotsPageBack": "Ubicacions", + "spotEditTitle": "Edició de la ubicació: {{spot}}", + "spotsSavedOK": "S'ha desat la ubicació correctament!", + "forbiddenMarkersPageBack": "Marcadors de zones prohibides", + "forbiddenMarkersTitle": "Edició dels marcadors", + "forbiddenMarkersSavedOK": "S'han desat els marcadors de zones prohibides correctament!", + "missingZone": "Aquesta zona no existeix.", + "missingSpot": "Aquesta ubicació no existeix.", + "segmentsPageBack": "Segments", + "segmentsTitle": "Edició de les habitacions", + "enterSegmentName": "Introduïu un nom per a l'habitació seleccionada:", + "segmentRenamedOK": "S'ha canviat el nom de l'habitació correctament!", + "segmentRenameFailed": "S'ha produït un error en canviar el nom d'una habitació.", + "segmentsCantBeMerged": "Només podeu fusionar les habitacions adjacents. Voleu continuar de totes maneres?", + "confirmSegmentsMerge": "Segur que voleu intentar fusionar les habitacions «{{segment1}}» i «{{segment2}}»?", + "segmentsMergedOK": "S'han fusionat les habitacions correctament!", + "segmentSplitNoLine": "Heu de col·locar la línia divisòria sobre l'habitació per dividir-la.", + "segmentSplitTooMany": "No podeu afegir més habitacions; fusioneu-les.", + "confirmSegmentSplit": "Segur que voleu intentar dividir les habitacions «{{segment}}»? Nota: és possible que hàgiu de col·locar la línia divisòria diverses vegades fins que trobeu la posició adequada.", + "segmentSplitOK": "S'ha dividit l'habitació correctament!", + "segmentSplitSingleLine": "Només pot haver-hi una línia divisòria!", + "confirmSegmentsAutosplit": "El mapa es dividirà automàticament en habitacions després d'una neteja completa, però podeu intentar dividir-lo ara mateix. Voleu continuar?", + "autosplitSegmentsNow": "Divideix ara", + "segmentsSplitOK": "S'ha dividit el mapa en habitacions correctament!" + }, + "control": { + "startButton": "Inicia el control manual", + "stopButton": "Atura el control manual" + }, + "telegram": { + "fanpower": { + "whisper": "Xiuxiueig", + "quiet": "Silenciós", + "balanced": "Equilibrat", + "turbo": "Turbo", + "max": "Màxim", + "mop": "Mode de mopa" + }, + "buttons": { + "status": "Estat", + "map": "Mapa", + "consumables": "Consumibles", + "start": "Inicia", + "pause": "Pausa", + "resume": "Reprèn", + "stop": "Atura", + "zones": "Zones", + "spot": "Ubicació", + "rooms": "Habitacions", + "home": "Base de càrrega", + "findMe": "On sóc?", + "goto": "Vés a", + "back": "-- enrere --", + "runZoned": "-- Inicia la neteja per zones --", + "runSegments": "-- Inicia la neteja per habitacions --" + }, + "missingPassword": "No s'ha proporcionat cap contrasenya.", + "wrongPassword": "La contrasenya és incorrecta.", + "clientAuthorized": "S'ha autoritzat el client; escriviu \/start per començar.", + "clientAlreadyAuthorized": "El client ja està autoritzat; escriviu \/start per començar.", + "notAuthenticated": "No esteu autenticat; utilitzeu\n\/setme *contrasenya*", + "cbqReceivedOK": "S'ha acceptat l'ordre!", + "cbqFailed": "S'ha produït un error en executar una ordre!", + "cbqWrongState": "L'ordre no està disponible en l'estat actual del dispositiu!", + "selectCommand": "S'està esperant una ordre.", + "selectGotoTarget": "Seleccioneu una destinació per al desplaçament.", + "selectZones": "Seleccioneu les zones que voleu netejar.", + "selectSegments": "Seleccioneu les habitacions que voleu netejar.", + "selectPower": "Seleccioneu el mode de potència de l'aspiradora.", + "selectMap": "Seleccioneu el mapa que voleu restaurar.", + "performingCleaning": "Es farà una neteja completa.", + "performingZoned": "Es farà una neteja per zones:\n{{zoneNames}}", + "performingSegments": "Es farà una neteja per habitacions:\n{{zoneNames}}", + "performingGoto": "S'iniciarà un desplaçament a la ubicació «{{spotName}}».", + "noZonesConfigured": "Encara no s'ha configurat cap zona.", + "noSegmentsConfigured": "No hi ha cap habitació disponible en el mapa.", + "noSpotsConfigured": "Encara no s'ha configurat cap ubicació.", + "noMapsStored": "Encara no s'ha emmagatzemat cap mapa.", + "noZonesSpecified": "Heu de seleccionar com a mínim una zona.", + "noSegmentsSpecified": "Heu de seleccionar com a mínim una habitació.", + "noGotoTargetSpecified": "Heu de seleccionar una ubicació per al desplaçament.", + "noMapSpecified": "Heu de seleccionar el nom del mapa.", + "selectedZones": "Seleccionades actualment: {{zonesList}} ({{subzonesCount}}\/5 subzones)", + "selectZoneIterations": "Feu clic diverses vegades per a ajustar el nombre de repeticions.", + "noSegmentsSupported": "El microprogramari del dispositiu no és compatible amb la neteja per habitacions.", + "selectedSegments": "Seleccionats actualment: {{segmentsList}}", + "noMapAvailable": "El mapa no està disponible actualment.", + "powerChanged": "S'ha canviat la potència de l'aspiradora a {{fanPower}}.", + "mapLoadOK": "El mapa hauria d'haver-se tornat a carregar.", + "mapLoadWait": "El mapa hauria d'haver-se tornat a carregar en 30 segons. Espereu.", + "notificationsEnabled": "S'han habilitat les notificacions d'estat.", + "notificationsDisabled": "S'han inhabilitat les notificacions d'estat.", + "consumablesHeader": "Temps restant fins que s'esgotin els consumibles:\n\n", + "consumablesAlert": "Un dels consumibles s'ha esgotat:\n\n", + "consumablesContent": "Raspall principal: queden {{mainBrush}} hores.\nRaspall lateral: queden {{sideBrush}} hores.\nFiltre: queden {{filter}} hores.\nSensors: queden {{sensors}} hores.", + "binFull": "Sembla que el dipòsit de pols està ple; doneu-hi una ullada!", + "currentStatus": "Estat actual: ", + "statusChanged": "L'estat ha canviat: ", + "power": "Potència: ", + "battery": "Bateria: ", + "errorReply": "S'ha produït un error: {{error}}" + }, + "settings": { + "title": "Paràmetres", + "infoTitle": "Informació", + "infoDesc": "Vegeu la informació del dispositiu.", + "timersTitle": "Temporitzadors", + "timersDesc": "Administreu els temporitzadors i els paràmetres del fus horari.", + "carpetModeTitle": "Mode de catifa", + "carpetModeDesc": "Configureu el mode de catifa.", + "persistentDataTitle": "Paràmetres del sistema", + "persistentDataDesc": "Configureu el mode de laboratori per habilitar les parets virtuals, etc.", + "consumablesTitle": "Consumibles", + "consumablesDesc": "Vegeu i reinicialitzeu els comptadors d'ús dels consumibles.", + "cleaningHistoryTitle": "Historial de neteges", + "cleaningHistoryDesc": "Vegeu l'historial de neteges.", + "wifiTitle": "Sense fil", + "wifiDesc": "Vegeu i canvieu els detalls i els paràmetres de la connexió sense fil", + "soundAndVoiceTitle": "So i veu", + "soundAndVoiceDesc": "Canvieu el volum del so i la veu del robot.", + "webInterfaceTitle": "Interfície web", + "webInterfaceDesc": "Canvieu els paràmetres de la interfície web.", + "accessControlTitle": "Control d'accés", + "accessControlDesc": "Configureu les claus SSH i l'autenticació HTTP.", + "mqttTitle": "MQTT", + "mqttDesc": "Vegeu i canvieu els paràmetres del MQTT.", + "telegramTitle": "Bot del Telegram", + "telegramDesc": "Habiliteu i configureu els paràmetres del bot del Telegram.", + "loading": "s'està carregant...", + "accessControl": { + "pageTitle": "Paràmetres del control d'accés", + "httpAuth": "Paràmetres de l'autenticació HTTP", + "username": "Nom d'usuari", + "password": "Contrasenya", + "passwordRepeat": "Contrasenya (repetiu-la)", + "saveCredentials": "Desa les credencials", + "sshKeys": "Paràmetres de les claus SSH", + "sshRSA": "ssh-rsa ...", + "saveKeys": "Desa les claus SSH", + "confirmDisableKeys": "Introduïu «confirm» a sota. No us quedeu sense accés!", + "disableKeys": "Inhabilita permanentment la pujada de claus SSH", + "passwordsMismatch": "Les contrasenyes no coincideixen." + }, + "carpetMode": { + "pageTitle": "Paràmetres del mode de catifa", + "explanation": "En el mode de catifa, l'aspiradora reconeixerà les catifes automàticament i augmentarà la succió.", + "warning": "Canvieu els paràmetres següents només si sabeu què feu!", + "currentLow": "Potència baixa", + "currentHigh": "Potència alta", + "currentIntegral": "Potència integral", + "stallTime": "Temps d'aturada", + "confirm": "Segur que voleu desar les modificacions que heu fet al mode de catifa?" + }, + "cleaningHistory": { + "header": "Darreres neteges", + "loadMore": "Més...", + "showMap": "Mostra el mapa de la neteja", + "historyRecord": "Núm. {{id}}, iniciada el {{startDate}}", + "duration": "Durada", + "area": "Àrea", + "completed": "Completada", + "code": "Codi", + "mapTitle": "Mapa de neteja del {{cleaningDate}}" + }, + "consumables": { + "mainBrush": "Raspall principal", + "sideBrush": "Raspall lateral", + "filter": "Filtre", + "sensorCleaning": "Neteja del sensor", + "allStatistics": "Estadístiques totals", + "totalCleanedArea": "Àrea netejada total:", + "totalHours": "Hores de neteja totals:", + "totalCount": "Neteges totals:", + "hoursLeft": "queda {{hours}} hora", + "hoursLeft_plural": "queden {{hours}} hores", + "confirm": "Segur que voleu reinicialitzar aquest consumible?" + }, + "info": { + "system": "Sistema", + "firmwareVersion": "Versió de MiIO:", + "firmwareBuild": "Versió del microprogramari:", + "firmwareUpdate": "Actualització del microprogramari:", + "firmwareUpdateLink": "[envia una sol·licitud]", + "currentToken": "Testimoni actual", + "token": "Testimoni:", + "appLocale": "Configuració regional de l'aplicació", + "appLocaleName": "Nom:", + "appLocaleBom": "BOM:", + "appLocaleLocation": "Ubicació:", + "appLocaleLanguage": "Llengua:", + "appLocaleTimezone": "Fus horari:", + "appLocaleLogserver": "Servidor de registres:", + "valetudo": "Valetudo RE", + "currentValetudoVersion": "Versió actual:", + "newValetudoVersion": "Versió més recent:", + "newVersionURL": "URL de la versió nova", + "checkVersion": "Comprova", + "valetudoLog": "Registre del sistema del Valetudo", + "firmwareUpdateWarning": "S'intentarà actualitzar el microprogramari del dispositiu mitjançant l'URL al fitxer .pkg introduït manualment i el seu valor de suma de verificació MD5. Tingueu en compte que l'URL ha d'apuntar a una adreça IP pública i no pot tenir redireccionaments.", + "firmwareUpdateEnterURL": "Introduïu l'URL al fitxer .pkg de microprogramari:", + "firmwareUpdateEnterMD5": "Introduïu la suma de verificació MD5 del fitxer que acabeu d'especificar:", + "firmwareUpdateSend": "Envia", + "firmwareUpdateSentOK": "La sol·licitud d'actualització hauria d'haver-se enviat! Espereu que el LED indiqui el procés d'actualització." + }, + "persistentData": { + "pageTitle": "Paràmetres de les dades persistents", + "notSupported": "Només el Roborock S5x és compatible amb les característiques de mapes persistents.", + "genericConfirm": "Segur que voleu continuar?", + "genericOverwriteWarning": "Les dades desades anteriorment se sobreescriuran.", + "enableDataTitle": "Dades persistents («mode de laboratori»)", + "enableDataDesc": "Permet desar el mapa, les zones prohibides i les parets virtuals, fa que el dispositiu conegui la ubicació de la base de càrrega i impedeix que el mapa es giri.", + "deleteDataTitle": "Suprimeix les dades persistents", + "deleteDataDesc": "Suprimeix el mapa actual i totes les zones prohibides i parets virtuals.", + "deleteDataButton": "Reinicialitza el mapa", + "deleteDataNowButton": "Suprimeix ara!", + "deleteDataConfirm": "Suprimeix el mapa desat actualment i totes les zones prohibides i parets virtuals.", + "exportTitle": "Exportació de marcadors de zones prohibides a la configuració del Valetudo", + "exportDesc": "Exporta les dades de zones prohibides i parets virtuals del microprogramari i les desa al Valetudo.", + "exportButton": "Exporta", + "exportNowButton": "Exporta les dades", + "exportConfirm": "Exporta les zones prohibides i les parets virtuals del microprogramari del dispositiu i les desa a la configuració del Valetudo.", + "importTitle": "Importació de marcadors de zones prohibides de la configuració del Valetudo", + "importDesc": "Importa les dades de zones prohibides i parets virtuals del Valetudo i les defineix al microprogramari.", + "importButton": "Importa", + "importNowButton": "Importa les dades", + "importConfirm": "Importa les zones prohibides i les parets virtuals de la configuració del Valetudo i les defineix al microprogramari del dispositiu.", + "importConfirmDetails": "A punt per a importar {{virtualWallsCount}} i {{forbiddenZonesCount}}.", + "exportConfirmDetails": "A punt per a exportar {{virtualWallsCount}} i {{forbiddenZonesCount}}.", + "virtualWallsCount": "{{count}} paret virtual", + "virtualWallsCount_plural": "{{count}} parets virtuals", + "forbiddenZonesCount": "{{count}} zona prohibida", + "forbiddenZonesCount_plural": "{{count}} zones prohibides", + "settingsSaved": "S'han desat els paràmetres!", + "resetOK": "S'ha reinicialitzat el mapa!", + "exportedOK": "S'han exportat les dades persistents a la configuració.", + "importedOK": "S'han importat les dades persistents de la configuració.", + "systemSettingsTitle": "Paràmetres del sistema", + "rebootTitle": "Reinicia el dispositiu", + "rebootDesc": "S'intentarà reiniciar el sistema operatiu integrat.", + "reboot": "Reinicia", + "rebootConfirm": "Segur que voleu reiniciar el sistema operatiu del dispositiu?", + "rebootNotice": "El dispositiu s'està reiniciant, espereu un moment fins que arrenqui.", + "afterCleanTitle": "Destinació després de la neteja", + "afterCleanDesc": "Permet definir on ha d'anar el robot després de finalitzar la neteja.", + "afterCleanDefault": "Per defecte", + "afterCleanNowhere": "Enlloc", + "afterCleanSpot": "Ubicació", + "afterCleanChooseSpot": "Trieu una ubicació...", + "afterCleanMenuNoSpots": "No hi ha ubicacions disponibles com a destinació després de la neteja.", + "afterCleanMenuDesc": "Trieu una ubicació a la qual desplaçar-se després de la neteja:", + "autoDockTitle": "Retorn automàtic a la base de càrrega", + "autoDockDesc": "Permet definir si el robot ha de tornar a la base de càrrega quan està en espera.", + "autoDockNever": "Mai", + "autoDockSleep": "En repòs", + "autoDockDelay": "Retard", + "autoDockChooseDelay": "Trieu un retard...", + "autoDockDelayPrompt": "Introduïu el retard en minuts ({{range}}) després del qual voleu que el robot en espera torni a la base de càrrega:", + "autoDockDelayErr": "El valor especificat no es troba dins de l'interval permès.", + "autoMapTitle": "Restauració automàtica del mapa", + "autoMapDesc": "Permet definir si es restaurarà un mapa en tornar a la base de càrrega.", + "autoMapNone": "Cap", + "autoMapName": "Mapa", + "autoMapSelectName": "Seleccioneu un mapa...", + "autoMapMenuSelect": "Seleccioneu un mapa que es carregarà en tornar a la base de càrrega:", + "mapRestoreTypeTitle": "Tipus de restauració del mapa", + "mapRestoreTypeDesc": "Permet definir el mètode que s'utilitzarà per a la restauració experimental del mapa.", + "restoreTypeDefault": "Per defecte", + "restoreTypeRestart": "Reinici del servei", + "restoreTypeCleaning": "Seqüència de neteja", + "restoreTypeNative": "Recuperació de còpia de seguretat" + }, + "soundAndVoice": { + "volumeSettings": "Paràmetres del volum del so", + "volume": "Volum:", + "saveVolume": "Desa el volum del so", + "testVolume": "Prova el volum del so", + "installVoicePack": "Instal·la un paquet de veu", + "voicePackFile": "Fitxer del paquet de veu:", + "uploadVoicePack": "Puja el paquet de veu", + "volumeSavedOK": "El volum s'ha desat correctament.", + "voicePackMissing": "Seleccioneu un paquet de veu abans de pujar-lo.", + "voicePackUploading": "S'està pujant el paquet de veu...", + "voicePackInstalling": "S'està instal·lant el paquet de veu...", + "voicePackInstallFailed": "No s'ha pogut instal·lar el paquet de veu.", + "voicePackInstallOK": "El paquet de veu s'ha instal·lat correctament." + }, + "timers": { + "month": "Mes", + "day": "Dia", + "hour": "Hora", + "minute": "Minut", + "startAt": "Inici:", + "endAt": "Finalització:", + "hours": "hores", + "minutes": "minuts", + "name": "Nom:", + "namePlaceholder": "Nom del temporitzador", + "iterations": "Repeticions:", + "fanPower": "Potència de l'aspiradora:", + "zones": "Zones:", + "addZones": "Afegeix...", + "segments": "Habitacions:", + "addSegments": "Afegeix...", + "timerDesc": "Trieu els paràmetres del temporitzador.", + "timerZoneDesc": "Trieu un nom per al temporitzador i les coordenades de la zona.", + "timerTimeDesc": "Seleccioneu l'hora i la data en què s'activarà el temporitzador.", + "timerEmptyTimeNote": "Si deixeu un valor en blanc, no es tindrà en compte.", + "timerDaysDesc": "Seleccioneu els dies en què s'activarà el temporitzador.", + "timerEmptyDayNote": "Si no en seleccioneu cap, s'activarà qualsevol dia.", + "runOnce": "Inicia una vegada i suprimeix", + "currentTimezone": "El fus horari actual és:", + "zonedCleaningHeader": "Programació de neteja per zones (beta)", + "noZonedCleaningSchedule": "Encara no s'ha configurat cap programació de neteja per zones.", + "cleaningHeader": "Programació de neteja", + "noCleaningSchedule": "Encara no s'ha configurat cap programació de neteja.", + "DNDHeader": "«No molesteu»: temporitzador", + "chooseZone": "Trieu una zona:", + "zoneCount": "{{count}} zona", + "zoneCount_plural": "{{count}} zones", + "chooseSegment": "Trieu una habitació:", + "duplicatedSegment": "No podeu afegir la mateixa habitació diverses vegades!", + "confirmDeleteTimer": "Segur que voleu suprimir aquest temporitzador?", + "confirmTimezone": "Segur que voleu definir el fus horari a «{{newTimezone}}»?", + "noDNDEnabled": "Encara no s'ha habilitat cap temporitzador del mode No molesteu.", + "DNDSchedule": "El mode No molesteu s'iniciarà a les {{startHour}}:{{startMinute}} i finalitzarà a les {{endHour}}:{{endMinute}}.", + "noDNDSchedule": "Encara no s'ha configurat cap programació del mode No molesteu.", + "confirmDisableDND": "Segur que voleu inhabilitar el mode No molesteu?", + "notEnoughDataDND": "No s'ha pogut desar el temporitzador del mode No molesteu perquè no s'han proporcionat tots els atributs necessaris!", + "missingHoursMinutes": "Heu d'especificar els minuts i les hores.", + "missingName": "Heu d'especificar un nom.", + "missingZones": "Heu d'especificar una o més zones que no estiguin buides.", + "missingTimer": "Aquest temporitzador no existeix.", + "missingSegment": "No s'ha trobat l'habitació en el mapa actual!" + }, + "webInterface": { + "general": "General", + "localization": "Localització de la interfície web", + "localizationExt": "Canvia entre les traduccions disponibles.", + "style": "Tema", + "styleExt": "Canvia el tema de color de la interfície web.", + "homeTab": "Pestanya Inici", + "zonedImmediate": "Inicia la neteja per zones immediatament", + "zonedImmediateExt": "En comptes de seguir a la pestanya de mapa.", + "gotoImmediate": "Vés a la ubicació immediatament", + "gotoImmediateExt": "En comptes de seguir a la pestanya de mapa.", + "multimapButtons": "Mostra els botons de diversos mapes", + "multimapButtonsExt": "Permet desar i restaurar els mapes (experimental).", + "mapTab": "Pestanya Mapa", + "hideMapStatus": "No mostris l'estat en el mapa", + "hideMapStatusExt": "Amaga el bloc amb el text d'estat.", + "hideSegmentMarkers": "No mostris els marcadors d'habitacions", + "hideSegmentMarkersExt": "Amaga els marcadors de selecció d'habitació en el mapa.", + "disableDynamicButtons": "Inhabilita els botons dinàmics", + "disableDynamicButtonsExt": "Mostra només els botons bàsics en el mapa.", + "controlTab": "Pestanya Control manual", + "hideControlMap": "No mostris el mapa en miniatura", + "hideControlMapExt": "Pot ser que no funcioni correctament en alguns dispositius i no es pot corregir.", + "applyChangesConfirm": "Voleu aplicar els canvis immediatament?", + "enableMultimapConfirm": "Aquesta característica no forma part de la funcionalitat de Roborock, sinó que es basa en diversos usos no oficials. Tot i que pot funcionar correctament, també podria provocar la reinicialització dels paràmetres de fàbrica si es produeix cap problema. Segur que voleu continuar?" + }, + "wifi": { + "currentConnection": "Connexió actual", + "status": "Estat", + "ssid": "SSID", + "signal": "Senyal", + "txBitrate": "Velocitat de transmissió", + "settings": "Paràmetres de la connexió sense fil", + "password": "Contrasenya", + "save": "Desa els paràmetres nous de la connexió sense fil", + "connected": "Connectat", + "notConnected": "No connectat", + "confirm": "Segur que voleu aplicar els paràmetres nous de la connexió sense fil?", + "hint": "Consell", + "hintText": "Sempre podeu restablir el punt d'accés sense fil integrat; consulteu el manual d'usuari per conèixer com reinicialitzar els paràmetres de la connexió sense fil.", + "appliedOK": "S'han aplicat les credencials noves de la xarxa sense fil correctament. Quan premeu D'acord, la pàgina s'actualitzarà. No obstant això, el més probable és que hàgiu de canviar l'URL, ja que el robot intentarà connectar-se a la connexió sense fil nova." + }, + "mqtt": { + "settings": "Paràmetres del MQTT", + "url": "URL:", + "capath": "Camí de l'AC (per a SSL):", + "qos": "Qualitat de servei:", + "identifier": "Identificador:", + "prefix": "Prefix del tema:", + "autoprefix": "Prefix de configuració automàtica:", + "mapdata": "Proporciona les dades del mapa:", + "save": "Desa els paràmetres del MQTT" + }, + "telegram": { + "explanation": "Creeu un xat nou al Telegram i cerqueu el compte «Botfather», creeu un bot nou amb \/newbot, copieu el testimoni i inseriu-lo en aquesta pàgina. La contrasenya que definiu aquí s'utilitzarà per a autenticar el bot.", + "general": "Paràmetres del Telegram", + "token": "Testimoni de l'API HTTP:", + "tokenPlaceholder": "Testimoni de l'API HTTP de Botfather", + "authPassword": "Contrasenya del bot:", + "authPasswordPlaceholder": "Per a l'autorització al bot", + "host": "Amfitrió de l'API (opcional):", + "proxy": "Servidor intermediari SOCKS5 (opcional):", + "proxyPlaceholder": "usuari:contrasenya@amfitrió:port", + "getRandomProxy": "Obtén", + "selectCountry": "Seleccioneu un país:", + "sendConsumables": "Envia un missatge quan un dels consumibles s'esgoti:", + "sendConsumablesEvery": "Envia un missatge cada neteja quan un dels consumibles s'esgoti:", + "notifyStatusTypes": "Canvis d'estat que es notificaran:", + "notifyAll": "Tots", + "notifyCleaning": "Neteja i errors", + "notifyErrors": "Només errors", + "status": "Estat actual del Telegram", + "clientsList": "Clients del Telegram", + "noClients": "Encara no hi ha clients autoritzats.", + "confirmDeleteClient": "Segur que voleu suprimir aquest client?", + "connectedAs": "El bot del Telegram està connectat com a «{{botname}}».", + "connectionFailed": "S'ha produït un error en la connexió del bot del Telegram.", + "notConnected": "El bot del Telegram no està connectat." + } + }, + "robot": { + "states": { + "n0": "S'està connectant...", + "n1": "S'està iniciant", + "n2": "En espera sense càrrega", + "n3": "Inactiu", + "n4": "Control remot actiu", + "n5": "S'està netejant", + "n6": "S'està tornant a la base de càrrega", + "n7": "Mode manual", + "n8": "S'està carregant", + "n9": "Error de càrrega", + "n10": "En pausa", + "n11": "Neteja per ubicacions", + "n12": "Error", + "n13": "S'està apagant", + "n14": "S'està actualitzant", + "n15": "S'està tornant a la base de càrrega", + "n16": "S'està anant a la destinació", + "n17": "Neteja per zones", + "n18": "Neteja per habitacions" + }, + "errors": { + "n0": "No hi ha cap error", + "n1": "Error del sensor de distància làser", + "n2": "El para-xocs frontal està encallat.", + "n3": "Alarma dels sensors de desnivell; col·loqueu el robot en un lloc diferent.", + "n4": "Els sensors de desnivell estan bruts.", + "n5": "El raspall principal està encallat.", + "n6": "El raspall lateral està encallat.", + "n7": "Les rodes principals estan encallades.", + "n8": "El dispositiu està encallat; col·loqueu el robot en un lloc diferent.", + "n9": "Falta el dipòsit de pols o hi ha un problema amb el filtre.", + "n10": "El filtre de pols està brut.", + "n11": "S'ha encallat en una barrera magnètica.", + "n12": "Bateria baixa", + "n13": "Error de càrrega", + "n14": "Error de la bateria", + "n15": "El sensor de parets està brut.", + "n16": "La superfície no és plana; col·loqueu el robot en un lloc diferent.", + "n17": "Error del raspall lateral; proveu de reiniciar el robot.", + "n18": "Error de l'aspiradora; proveu de reiniciar el robot.", + "n19": "La base de càrrega no té corrent.", + "n21": "La coberta superior del sensor de distància làser està encallada.", + "n22": "El sensor del para-xocs frontal està brut.", + "n23": "La zona d'emissió de senyals de la base de càrrega està bruta.", + "n24": "S'ha detectat una zona prohibida; col·loqueu el robot en un lloc permès." + } + } +} diff --git a/client/settings-web-interface.html b/client/settings-web-interface.html index b066802e..7b8ec981 100644 --- a/client/settings-web-interface.html +++ b/client/settings-web-interface.html @@ -16,6 +16,7 @@
+