From 0ada943699f844a099dc82bb968189403057413d Mon Sep 17 00:00:00 2001 From: ghosty2004 Date: Wed, 26 Jun 2024 21:04:02 +0300 Subject: [PATCH] Add Romanian language --- ui/public/locales/ro/translation.json | 234 ++++++++++++++++++ .../LanguageSelect/LanguageSelect.jsx | 1 + ui/src/i18n.js | 2 +- 3 files changed, 236 insertions(+), 1 deletion(-) create mode 100644 ui/public/locales/ro/translation.json diff --git a/ui/public/locales/ro/translation.json b/ui/public/locales/ro/translation.json new file mode 100644 index 0000000..75d94a5 --- /dev/null +++ b/ui/public/locales/ro/translation.json @@ -0,0 +1,234 @@ +{ + "breadcrumb": { + "watch_recordings": "Vizionează înregistrări", + "configure": "Configurează" + }, + "buttons": { + "save": "Salvează", + "verify_connection": "Verifică conexiunea" + }, + "navigation": { + "profile": "Profil", + "admin": "admin", + "management": "Management", + "dashboard": "Tablou de bord", + "recordings": "Înregistrări", + "settings": "Setări", + "help_support": "Ajutor & Suport", + "swagger": "Swagger API", + "documentation": "Documentație", + "ui_library": "Bibliotecă UI", + "layout": "Limbă și aspect", + "choose_language": "Alege limba" + }, + "dashboard": { + "title": "Tablou de bord", + "heading": "Prezentare generală a supravegherii video", + "number_of_days": "Număr de zile", + "total_recordings": "Înregistrări totale", + "connected": "Conectat", + "not_connected": "Neconectat", + "offline_mode": "Mod offline", + "latest_events": "Evenimente recente", + "configure_connection": "Configurează conexiunea", + "no_events": "Niciun eveniment", + "no_events_description": "Nu au fost găsite înregistrări, asigurați-vă că agentul dvs. Kerberos este configurat corect.", + "motion_detected": "Mișcare detectată", + "live_view": "Vizualizare live", + "loading_live_view": "Se încarcă vizualizarea live", + "loading_live_view_description": "Așteptați, încărcăm vizualizarea dvs. live. Dacă nu ați configurat conexiunea camerei, actualizați-o în paginile de setări.", + "time": "Timp", + "description": "Descriere", + "name": "Nume" + }, + "recordings": { + "title": "Înregistrări", + "heading": "Toate înregistrările tale într-un singur loc", + "search_media": "Caută media" + }, + "settings": { + "title": "Setări", + "heading": "Prezentare generală a setărilor camerei și agentului", + "submenu": { + "all": "Toate", + "overview": "General", + "camera": "Camera", + "recording": "Înregistrare", + "streaming": "Streaming", + "conditions": "Condiții", + "persistence": "Persistență" + }, + "info": { + "kerberos_hub_demo": "Aruncă o privire asupra mediului nostru de demonstrație Kerberos Hub, pentru a vedea Kerberos Hub în acțiune!", + "configuration_updated_success": "Configurarea ta a fost actualizată cu succes.", + "configuration_updated_error": "Ceva a mers prost în timpul salvării.", + "verify_hub": "Verificarea setărilor tale Kerberos Hub.", + "verify_hub_success": "Setările Kerberos Hub au fost verificate cu succes.", + "verify_hub_error": "Ceva a mers prost în timpul verificării Kerberos Hub.", + "verify_persistence": "Verificarea setărilor tale de persistență.", + "verify_persistence_success": "Setările de persistență au fost verificate cu succes.", + "verify_persistence_error": "Ceva a mers prost în timpul verificării persistenței.", + "verify_camera": "Verificarea setărilor tale pentru cameră.", + "verify_camera_success": "Setările pentru cameră au fost verificate cu succes.", + "verify_camera_error": "Ceva a mers prost în timpul verificării setărilor pentru cameră.", + "verify_onvif": "Verificarea setărilor tale ONVIF.", + "verify_onvif_success": "Setările ONVIF au fost verificate cu succes.", + "verify_onvif_error": "Ceva a mers prost în timpul verificării setărilor ONVIF." + }, + "overview": { + "general": "General", + "description_general": "Setări generale pentru Agentul tău Kerberos", + "key": "Cheie", + "camera_name": "Numele camerei", + "camera_friendly_name": "Nume prietenos", + "timezone": "Fus orar", + "select_timezone": "Selectează un fus orar", + "advanced_configuration": "Configurare avansată", + "description_advanced_configuration": "Opțiuni detaliate de configurare pentru activarea sau dezactivarea anumitor părți ale Agentului Kerberos", + "offline_mode": "Mod offline", + "description_offline_mode": "Dezactivează tot traficul ieșit", + "encryption": "Criptare", + "description_encryption": "Activează criptarea pentru tot traficul ieșit. Mesajele MQTT și/sau înregistrările vor fi criptate folosind AES-256. O cheie privată este utilizată pentru semnare.", + "encryption_enabled": "Activează criptarea MQTT", + "description_encryption_enabled": "Activează criptarea pentru toate mesajele MQTT.", + "encryption_recordings_enabled": "Activează criptarea înregistrărilor", + "description_encryption_recordings_enabled": "Activează criptarea pentru toate înregistrările.", + "encryption_fingerprint": "Amprentă", + "encryption_privatekey": "Cheie privată", + "encryption_symmetrickey": "Cheie simetrică" + }, + "camera": { + "camera": "Camera", + "description_camera": "Setările camerei sunt necesare pentru a face o conexiune cu camera aleasă de tine.", + "only_h264": "În prezent sunt suportate doar fluxurile RTSP H264/H265.", + "rtsp_url": "URL RTSP", + "rtsp_h264": "O conexiune RTSP H264/H265 la camera ta.", + "sub_rtsp_url": "URL RTSP secundar (folosit pentru transmisie live)", + "sub_rtsp_h264": "O conexiune RTSP secundară la rezoluția redusă a camerei tale.", + "onvif": "ONVIF", + "description_onvif": "Credențiale pentru comunicarea cu capabilitățile ONVIF. Acestea sunt folosite pentru funcții PTZ sau alte capabilități oferite de cameră.", + "onvif_xaddr": "Adresă ONVIF", + "onvif_username": "Nume utilizator ONVIF", + "onvif_password": "Parolă ONVIF", + "verify_connection": "Verifică conexiunea", + "verify_sub_connection": "Verifică conexiunea secundară" + }, + "recording": { + "recording": "Înregistrare", + "description_recording": "Specificați cum doriți să realizați înregistrări. Puteți avea o configurație continuă 24/7 sau înregistrări bazate pe mișcare.", + "continuous_recording": "Înregistrare continuă", + "description_continuous_recording": "Realizați înregistrări 24/7 sau bazate pe mișcare.", + "max_duration": "durata maximă a videoclipului (secunde)", + "description_max_duration": "Durata maximă a unei înregistrări.", + "pre_recording": "pre-înregistrare (cadre cheie tamponate)", + "description_pre_recording": "Secunde înainte de producerea unui eveniment.", + "post_recording": "post-înregistrare (secunde)", + "description_post_recording": "Secunde după producerea unui eveniment.", + "threshold": "Prag de înregistrare (pixeli)", + "description_threshold": "Numărul de pixeli modificați pentru a înregistra.", + "autoclean": "Curățare automată", + "description_autoclean": "Specificați dacă Agentul Kerberos poate curăța automat înregistrările când se atinge o anumită capacitate de stocare (MB). Se vor șterge cele mai vechi înregistrări când se atinge capacitatea specificată.", + "autoclean_enable": "Activează curățarea automată", + "autoclean_description_enable": "Șterge cele mai vechi înregistrări când capacitatea este atinsă.", + "autoclean_max_directory_size": "Dimensiunea maximă a directorului (MB)", + "autoclean_description_max_directory_size": "Maximum de MB stocați în înregistrări.", + "fragmentedrecordings": "Înregistrări fragmentate", + "description_fragmentedrecordings": "Când înregistrările sunt fragmentate, sunt potrivite pentru un flux HLS. Când este activat, containerul MP4 va arăta puțin diferit.", + "fragmentedrecordings_enable": "Activează fragmentarea", + "fragmentedrecordings_description_enable": "Înregistrările fragmentate sunt necesare pentru HLS.", + "fragmentedrecordings_duration": "durata fragmentului", + "fragmentedrecordings_description_duration": "Durata unui singur fragment." + }, + "streaming": { + "stun_turn": "STUN/TURN pentru WebRTC", + "description_stun_turn": "Pentru transmisii live la rezoluție completă folosim conceptul WebRTC. Una dintre capabilitățile cheie este funcționalitatea ICE-candidate, care permite traversarea NAT folosind conceptele STUN/TURN.", + "stun_server": "Server STUN", + "turn_server": "Server TURN", + "turn_username": "Nume utilizator", + "turn_password": "Parolă", + "force_turn": "Forțează TURN", + "force_turn_description": "Utilizează TURN în mod forțat, chiar și atunci când STUN este disponibil.", + "stun_turn_forward": "Redirecționare și transcodare", + "stun_turn_description_forward": "Optimizări și îmbunătățiri pentru comunicarea TURN/STUN.", + "stun_turn_webrtc": "Redirecționare către broker WebRTC", + "stun_turn_description_webrtc": "Redirecționare flux h264 prin MQTT", + "stun_turn_transcode": "Transcodare flux", + "stun_turn_description_transcode": "Convertire flux la o rezoluție mai mică", + "stun_turn_downscale": "Scădere rezoluție (în % din rezoluția originală)", + "mqtt": "MQTT", + "description_mqtt": "Un broker MQTT este utilizat pentru comunicare de la", + "description2_mqtt": "către Agentul Kerberos, pentru a realiza, de exemplu, transmisiuni live sau capabilități ONVIF (PTZ).", + "mqtt_brokeruri": "URI broker MQTT", + "mqtt_username": "Nume utilizator", + "mqtt_password": "Parolă", + "realtimeprocessing": "Procesare în timp real", + "description_realtimeprocessing": "Prin activarea procesării în timp real, veți primi cadre cheie video în timp real prin conexiunea MQTT specificată mai sus.", + "realtimeprocessing_topic": "Topic pentru publicare", + "realtimeprocessing_enabled": "Activează procesarea în timp real", + "description_realtimeprocessing_enabled": "Trimite cadre video în timp real prin MQTT." + }, + "conditions": { + "timeofinterest": "Timpul de Interes", + "description_timeofinterest": "Realizează înregistrări doar între intervale de timp specifice (bazate pe fusul orar).", + "timeofinterest_enabled": "Activat", + "timeofinterest_description_enabled": "Dacă este activat, puteți specifica intervale de timp", + "sunday": "Duminică", + "monday": "Luni", + "tuesday": "Marți", + "wednesday": "Miercuri", + "thursday": "Joi", + "friday": "Vineri", + "saturday": "Sâmbătă", + "externalcondition": "Condiție Externă", + "description_externalcondition": "În funcție de un serviciu web extern, înregistrarea poate fi activată sau dezactivată.", + "regionofinterest": "Regiunea de Interes", + "description_regionofinterest": "Prin definirea unei sau mai multor regiuni, mișcarea va fi urmărită doar în regiunile pe care le-ați definit." + }, + "persistence": { + "kerberoshub": "Kerberos Hub", + "description_kerberoshub": "Agenta Kerberos poate trimite semnale de puls către o", + "description2_kerberoshub": "instalație centrală. Semnalele de puls și alte informații relevante sunt sincronizate cu Kerberos Hub pentru a afișa informații în timp real despre peisajul video.", + "persistence": "Persistență", + "saasoffering": "Kerberos Hub (ofertă SAAS)", + "description_persistence": "Capacitatea de a stoca înregistrările este începutul fiecărei", + "description2_persistence": ", sau de la un furnizor terț", + "select_persistence": "Selectați o persistență", + "kerberoshub_encryption": "Criptare", + "kerberoshub_encryption_description": "Tot traficul de la/spre Kerberos Hub va fi criptat folosind AES-256.", + "kerberoshub_proxyurl": "URL Proxy Kerberos Hub", + "kerberoshub_description_proxyurl": "Punctul final Proxy pentru încărcarea înregistrărilor tale.", + "kerberoshub_apiurl": "URL API Kerberos Hub", + "kerberoshub_description_apiurl": "Punctul final API pentru încărcarea înregistrărilor tale.", + "kerberoshub_publickey": "Cheie publică", + "kerberoshub_description_publickey": "Cheia publică acordată contului tău Kerberos Hub.", + "kerberoshub_privatekey": "Cheie privată", + "kerberoshub_description_privatekey": "Cheia privată acordată contului tău Kerberos Hub.", + "kerberoshub_site": "Site", + "kerberoshub_description_site": "ID-ul site-ului la care aparțin Agenta Kerberos în Kerberos Hub.", + "kerberoshub_region": "Regiune", + "kerberoshub_description_region": "Regiunea în care sunt stocate înregistrările noastre.", + "kerberoshub_bucket": "Bucket", + "kerberoshub_description_bucket": "Bucket-ul în care sunt stocate înregistrările noastre.", + "kerberoshub_username": "Nume utilizator/Director (trebuie să se potrivească cu numele de utilizator Kerberos Hub)", + "kerberoshub_description_username": "Numele de utilizator al contului tău Kerberos Hub.", + "kerberosvault_apiurl": "URL API Kerberos Vault", + "kerberosvault_description_apiurl": "API-ul Kerberos Vault", + "kerberosvault_provider": "Furnizor", + "kerberosvault_description_provider": "Furnizorul către care vor fi trimise înregistrările tale.", + "kerberosvault_directory": "Director (trebuie să se potrivească cu numele de utilizator Kerberos Hub)", + "kerberosvault_description_directory": "Subdirectorul în care vor fi stocate înregistrările la furnizorul tău.", + "kerberosvault_accesskey": "Cheie de acces", + "kerberosvault_description_accesskey": "Cheia de acces a contului tău Kerberos Vault.", + "kerberosvault_secretkey": "Cheie secretă", + "kerberosvault_description_secretkey": "Cheia secretă a contului tău Kerberos Vault.", + "dropbox_directory": "Director", + "dropbox_description_directory": "Subdirectorul în care vor fi stocate înregistrările în contul tău Dropbox.", + "dropbox_accesstoken": "Token de acces", + "dropbox_description_accesstoken": "Tokenul de acces al contului/aplicației tale Dropbox.", + "verify_connection": "Verifică conexiunea", + "remove_after_upload": "Odată ce înregistrările sunt încărcate într-o persistență, este posibil să doriți să le ștergeți de pe Agenta Kerberos locală.", + "remove_after_upload_description": "Ștergeți înregistrările după ce sunt încărcate cu succes.", + "remove_after_upload_enabled": "Ștergere activată la încărcare" + } + } +} diff --git a/ui/src/components/LanguageSelect/LanguageSelect.jsx b/ui/src/components/LanguageSelect/LanguageSelect.jsx index 92ebed8..113b92b 100644 --- a/ui/src/components/LanguageSelect/LanguageSelect.jsx +++ b/ui/src/components/LanguageSelect/LanguageSelect.jsx @@ -26,6 +26,7 @@ const LanguageSelect = () => { ja: { label: '日本', dir: 'rlt', active: false }, hi: { label: 'हिंदी', dir: 'ltr', active: false }, ru: { label: 'Русский', dir: 'ltr', active: false }, + ro: { label: 'Română', dir: 'ltr', active: false }, }; if (!languageMap[selected]) { diff --git a/ui/src/i18n.js b/ui/src/i18n.js index 029487c..2e0577e 100644 --- a/ui/src/i18n.js +++ b/ui/src/i18n.js @@ -14,7 +14,7 @@ i18n escapeValue: false, }, load: 'languageOnly', - whitelist: ['de', 'en', 'nl', 'fr', 'pl', 'es', 'pt', 'ja', 'ru'], + whitelist: ['de', 'en', 'nl', 'fr', 'pl', 'es', 'pt', 'ja', 'ru', 'ro'], }); export default i18n;