From 4fc5d3f03bd19becda27e75a91860000fe969332 Mon Sep 17 00:00:00 2001 From: BrazilianArmy Date: Mon, 8 Apr 2024 00:56:12 -0300 Subject: [PATCH 01/20] Update ptbr.rs (#7649) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Atualização de algumas KEYS para português BR --- src/lang/ptbr.rs | 50 ++++++++++++++++++++++++------------------------ 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/src/lang/ptbr.rs b/src/lang/ptbr.rs index fd1b85c130..f36d17c123 100644 --- a/src/lang/ptbr.rs +++ b/src/lang/ptbr.rs @@ -503,21 +503,21 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("clipboard_wait_response_timeout_tip", ""), ("Incoming connection", ""), ("Outgoing connection", ""), - ("Exit", ""), - ("Open", ""), + ("Exit", "Sair"), + ("Open", "Abrir"), ("logout_tip", ""), - ("Service", ""), - ("Start", ""), - ("Stop", ""), + ("Service", "Serviço"), + ("Start", "Iniciar"), + ("Stop", "Parar"), ("exceed_max_devices", ""), - ("Sync with recent sessions", ""), - ("Sort tags", ""), - ("Open connection in new tab", ""), - ("Move tab to new window", ""), - ("Can not be empty", ""), + ("Sync with recent sessions", "Sincronizar com sessões recentes"), + ("Sort tags", "Classificar tags"), + ("Open connection in new tab", "Abrir conexão em uma nova aba"), + ("Move tab to new window", "Mover aba para uma nova janela"), + ("Can not be empty", "Não pode estar vazio"), ("Already exists", ""), - ("Change Password", ""), - ("Refresh Password", ""), + ("Change Password", "Alterar senha"), + ("Refresh Password", "Atualizar senha"), ("ID", ""), ("Grid View", ""), ("List View", ""), @@ -526,8 +526,8 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("pull_ab_failed_tip", ""), ("push_ab_failed_tip", ""), ("synced_peer_readded_tip", ""), - ("Change Color", ""), - ("Primary Color", ""), + ("Change Color", "Alterar cor"), + ("Primary Color", "Cor principal"), ("HSV Color", ""), ("Installation Successful!", ""), ("Installation failed!", ""), @@ -537,7 +537,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("scam_text1", ""), ("scam_text2", ""), ("Don't show again", ""), - ("I Agree", ""), + ("I Agree", "Eu concordo"), ("Decline", ""), ("Timeout in minutes", ""), ("auto_disconnect_option_tip", ""), @@ -546,8 +546,8 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("upgrade_rustdesk_server_pro_to_{}_tip", ""), ("pull_group_failed_tip", ""), ("Filter by intersection", ""), - ("Remove wallpaper during incoming sessions", ""), - ("Test", ""), + ("Remove wallpaper during incoming sessions", "Remover papel de parede durante sessão remota"), + ("Test", "Teste"), ("display_is_plugged_out_msg", ""), ("No displays", ""), ("elevated_switch_display_msg", ""), @@ -555,10 +555,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Show displays as individual windows", ""), ("Use all my displays for the remote session", ""), ("selinux_tip", ""), - ("Change view", ""), + ("Change view", "Alterar visualização"), ("Big tiles", ""), ("Small tiles", ""), - ("List", ""), + ("List", "Lista"), ("Virtual display", ""), ("Plug out all", ""), ("True color (4:4:4)", ""), @@ -584,7 +584,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Email verification code must be 6 characters.", ""), ("2FA code must be 6 digits.", ""), ("Multiple Windows sessions found", ""), - ("Please select the session you want to connect to", ""), + ("Please select the session you want to connect to", "Por favor, selecione a sessão que você deseja se conectar"), ("powered_by_me", ""), ("outgoing_only_desk_tip", ""), ("preset_password_warning", ""), @@ -592,13 +592,13 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("My address book", ""), ("Personal", ""), ("Owner", ""), - ("Set shared password", ""), + ("Set shared password", "Definir senha compartilhada"), ("Exist in", ""), - ("Read-only", ""), - ("Read/Write", ""), - ("Full Control", ""), + ("Read-only", "Apenas leitura"), + ("Read/Write", "Leitura/escrita"), + ("Full Control", "Controle total"), ("share_warning_tip", ""), - ("Everyone", ""), + ("Everyone", "Todos"), ("ab_web_console_tip", ""), ].iter().cloned().collect(); } From 84fc70e9a934c7d91d08da5cc687d74434ef29c8 Mon Sep 17 00:00:00 2001 From: Alen Bajo Date: Mon, 8 Apr 2024 10:30:50 +0200 Subject: [PATCH 02/20] Create hr.rs (#7654) Croatian translation (Hrvatski) --- src/lang/hr.rs | 604 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 604 insertions(+) create mode 100644 src/lang/hr.rs diff --git a/src/lang/hr.rs b/src/lang/hr.rs new file mode 100644 index 0000000000..14b935d701 --- /dev/null +++ b/src/lang/hr.rs @@ -0,0 +1,604 @@ +lazy_static::lazy_static! { +pub static ref T: std::collections::HashMap<&'static str, &'static str> = + [ + ("Status", "Status"), + ("Your Desktop", "Vaša radna površina"), + ("desk_tip", "Vašoj radnoj površini se može pristupiti ovim ID i lozinkom."), + ("Password", "Lozinka"), + ("Ready", "Spremno"), + ("Established", "Uspostavljeno"), + ("connecting_status", "Spajanje na RustDesk mrežu..."), + ("Enable service", "Dopusti servis"), + ("Start service", "Pokreni servis"), + ("Service is running", "Servis je pokrenut"), + ("Service is not running", "Servis nije pokrenut"), + ("not_ready_status", "Nije spremno. Provjerite vezu."), + ("Control Remote Desktop", "Upravljanje udaljenom radnom površinom"), + ("Transfer file", "Prijenos datoteke"), + ("Connect", "Spajanje"), + ("Recent sessions", "Nedavne sesije"), + ("Address book", "Adresar"), + ("Confirmation", "Potvrda"), + ("TCP tunneling", "TCP tunel"), + ("Remove", "Ukloni"), + ("Refresh random password", "Osvježi slučajnu lozinku"), + ("Set your own password", "Postavi lozinku"), + ("Enable keyboard/mouse", "Dopusti tipkovnicu/miša"), + ("Enable clipboard", "Dopusti međuspremnik"), + ("Enable file transfer", "Dopusti prenos datoteka"), + ("Enable TCP tunneling", "Dopusti TCP tunel"), + ("IP Whitelisting", "IP pouzdana lista"), + ("ID/Relay Server", "ID/Posredni poslužitelj"), + ("Import server config", "Uvoz konfiguracije poslužitelja"), + ("Export Server Config", "Izvoz konfiguracije poslužitelja"), + ("Import server configuration successfully", "Uvoz konfiguracije poslužitelja uspješan"), + ("Export server configuration successfully", "Izvoz konfiguracije poslužitelja uspješan"), + ("Invalid server configuration", "Pogrešna konfiguracija poslužitelja"), + ("Clipboard is empty", "Međuspremnik je prazan"), + ("Stop service", "Zaustavi servis"), + ("Change ID", "Promijeni ID"), + ("Your new ID", "Vaš novi ID"), + ("length %min% to %max%", "duljina %min% do %max%"), + ("starts with a letter", "Počinje slovom"), + ("allowed characters", "Dopušteni znakovi"), + ("id_change_tip", "Dopušteni su samo a-z, A-Z, 0-9 i _ (donja crta) znakovi. Prvi znak mora biti slovo a-z, A-Z. Duljina je od 6 do 16."), + ("Website", "Web stranica"), + ("About", "O programu"), + ("Slogan_tip", "Slogan_tip"), + ("Privacy Statement", "Izjava o privatnosti"), + ("Mute", "Utišaj"), + ("Build Date", "Datum izrade"), + ("Version", "Verzija"), + ("Home", "Početno"), + ("Audio Input", "Audio ulaz"), + ("Enhancements", "Proširenja"), + ("Hardware Codec", "Hardverski kodek"), + ("Adaptive bitrate", "Prilagodljiva gustoća podataka"), + ("ID Server", "ID poslužitelja"), + ("Relay Server", "Posredni poslužitelj"), + ("API Server", "API poslužitelj"), + ("invalid_http", "mora početi sa http:// ili https://"), + ("Invalid IP", "Nevažeća IP"), + ("Invalid format", "Pogrešan format"), + ("server_not_support", "Poslužitelj još uvijek ne podržava"), + ("Not available", "Nije dostupno"), + ("Too frequent", "Previše često"), + ("Cancel", "Otkaži"), + ("Skip", "Preskoči"), + ("Close", "Zatvori"), + ("Retry", "Ponovi"), + ("OK", "Ok"), + ("Password Required", "Potrebna lozinka"), + ("Please enter your password", "Molimo unesite svoju lozinku"), + ("Remember password", "Zapamti lozinku"), + ("Wrong Password", "Pogrešna lozinka"), + ("Do you want to enter again?", "Želite li ponovo unijeti lozinku?"), + ("Connection Error", "Greška u spajanju"), + ("Error", "Greška"), + ("Reset by the peer", "Prekinuto sa druge strane"), + ("Connecting...", "Povezivanje..."), + ("Connection in progress. Please wait.", "Povezivanje u tijeku. Molimo pričekajte."), + ("Please try 1 minute later", "Pokušajte minutu kasnije"), + ("Login Error", "Greška kod prijave"), + ("Successful", "Uspješno"), + ("Connected, waiting for image...", "Spojeno, pričekajte sliku..."), + ("Name", "Ime"), + ("Type", "Vrsta"), + ("Modified", "Izmijenjeno"), + ("Size", "Veličina"), + ("Show Hidden Files", "Prikaži skrivene datoteke"), + ("Receive", "Prijem"), + ("Send", "Slanje"), + ("Refresh File", "Osvježi datoteku"), + ("Local", "Lokalno"), + ("Remote", "Udaljeno"), + ("Remote Computer", "Udaljeno računalo"), + ("Local Computer", "Lokalno računalo"), + ("Confirm Delete", "Potvrdite brisanje"), + ("Delete", "Brisanje"), + ("Properties", "Svojstva"), + ("Multi Select", "Višestruki odabir"), + ("Select All", "Odaberi sve"), + ("Unselect All", "Poništi odabir"), + ("Empty Directory", "Prazna mapa"), + ("Not an empty directory", "Nije prazna mapa"), + ("Are you sure you want to delete this file?", "Jeste sigurni da želite obrisati ovu datoteku?"), + ("Are you sure you want to delete this empty directory?", "Jeste sigurni da želite obrisati ovu praznu mapu?"), + ("Are you sure you want to delete the file of this directory?", "Jeste sigurni da želite obrisati datoteku u ovoj mapi?"), + ("Do this for all conflicts", "Učinite to za sve sukobe"), + ("This is irreversible!", "Ovo je nepovratno"), + ("Deleting", "Brisanje"), + ("files", "datoteke"), + ("Waiting", "Čekanje"), + ("Finished", "Završeno"), + ("Speed", "Brzina"), + ("Custom Image Quality", "Korisnička kvaliteta slike"), + ("Privacy mode", "Način privatnosti"), + ("Block user input", "Blokiraj korisnikov unos"), + ("Unblock user input", "Odblokiraj korisnikov unos"), + ("Adjust Window", "Podesi prozor"), + ("Original", "Original"), + ("Shrink", "Skupi"), + ("Stretch", "Raširi"), + ("Scrollbar", "Linija pomaka"), + ("ScrollAuto", "Autom. pomak"), + ("Good image quality", "Dobra kvaliteta slike"), + ("Balanced", "Balansirano"), + ("Optimize reaction time", "Optimizirano vrijeme reakcije"), + ("Custom", "Korisničko"), + ("Show remote cursor", "Prikaži udaljeni kursor"), + ("Show quality monitor", "Prikaži kvalitetu monitor"), + ("Disable clipboard", "Zabrani međuspremnik"), + ("Lock after session end", "Zaključaj po završetku sesije"), + ("Insert", "Umetni"), + ("Insert Lock", "Zaključaj umetanje"), + ("Refresh", "Osvježi"), + ("ID does not exist", "ID ne postoji"), + ("Failed to connect to rendezvous server", "Greška u spajanju na poslužitelj za povezivanje"), + ("Please try later", "Molimo pokušajte kasnije"), + ("Remote desktop is offline", "Udaljeni zaslon je isključen"), + ("Key mismatch", "Pogrešan ključ"), + ("Timeout", "Isteklo vrijeme"), + ("Failed to connect to relay server", "Greška u spajanju na posredni poslužitelj"), + ("Failed to connect via rendezvous server", "Greška u spajanju preko poslužitelja za povezivanje"), + ("Failed to connect via relay server", "Greška u spajanju preko posrednog poslužitelja"), + ("Failed to make direct connection to remote desktop", "Greška u direktnom spajanju na udaljenu radnu površinu"), + ("Set Password", "Postavi lozinku"), + ("OS Password", "Lozinka OS-a"), + ("install_tip", "Zbog UAC-a RustDesk ne može u nekim slučajevima raditi pravilno. Da biste prevazišli UAC, kliknite na tipku ispod da instalirate RustDesk na sustav."), + ("Click to upgrade", "Klik za nadogradnju"), + ("Click to download", "Klik za preuzimanje"), + ("Click to update", "Klik za ažuriranje"), + ("Configure", "Konfiguracija"), + ("config_acc", "Da biste daljinski kontrolirali radnu površinu, RustDesk-u trebate dodijeliti prava za \"Pristupačnost\"."), + ("config_screen", "Da biste daljinski pristupili radnoj površini, RustDesk-u trebate dodijeliti prava za \"Snimanje zaslona\"."), + ("Installing ...", "Instaliranje..."), + ("Install", "Instaliraj"), + ("Installation", "Instalacija"), + ("Installation Path", "Putanja za instalaciju"), + ("Create start menu shortcuts", "Stvori prečace u izborniku"), + ("Create desktop icon", "Stvori ikonu na radnoj površini"), + ("agreement_tip", "Pokretanjem instalacije prihvaćate ugovor o licenciranju."), + ("Accept and Install", "Prihvati i instaliraj"), + ("End-user license agreement", "Ugovor sa krajnjim korisnikom"), + ("Generating ...", "Generiranje..."), + ("Your installation is lower version.", "Vaša instalacija je niže verzije"), + ("not_close_tcp_tip", "Ne zatvarajte ovaj prozor dok koristite tunel"), + ("Listening ...", "Na slušanju..."), + ("Remote Host", "Adresa udaljenog uređaja"), + ("Remote Port", "Udaljeni port"), + ("Action", "Akcija"), + ("Add", "Dodaj"), + ("Local Port", "Lokalni port"), + ("Local Address", "Lokalna adresa"), + ("Change Local Port", "Promijeni lokalni port"), + ("setup_server_tip", "Za brže spajanje, molimo da koristite vlastiti poslužitelj"), + ("Too short, at least 6 characters.", "Prekratko, najmanje 6 znakova."), + ("The confirmation is not identical.", "Potvrda nije identična"), + ("Permissions", "Dopuštenja"), + ("Accept", "Prihvati"), + ("Dismiss", "Odbaci"), + ("Disconnect", "Prekini vezu), + ("Enable file copy and paste", "Dopusti kopiranje i lijepljenje datoteka"), + ("Connected", "Spojeno"), + ("Direct and encrypted connection", "Izravna i kriptirana veza"), + ("Relayed and encrypted connection", "Posredna i kriptirana veza"), + ("Direct and unencrypted connection", "Izravna i nekriptirana veza"), + ("Relayed and unencrypted connection", "Posredna i nekriptirana veza"), + ("Enter Remote ID", "Unesite ID udaljenog uređaja"), + ("Enter your password", "Unesite svoju lozinku"), + ("Logging in...", "Prijava..."), + ("Enable RDP session sharing", "Dopusti dijeljenje RDP sesije"), + ("Auto Login", "Autom. prijava (Važi samo ako ste postavili \"Zaključavanje nakon završetka sesije\")"), + ("Enable direct IP access", "Dopusti izravan pristup preko IP"), + ("Rename", "Preimenuj"), + ("Space", "Prazno"), + ("Create desktop shortcut", "Stvori prečac na radnoj površini"), + ("Change Path", "Promijeni putanju"), + ("Create Folder", "Svori mapu"), + ("Please enter the folder name", "Unesite ime mape"), + ("Fix it", "Popravi"), + ("Warning", "Upozorenje"), + ("Login screen using Wayland is not supported", "Zaslon za prijavu koji koristi Wayland nije podržan"), + ("Reboot required", "Potrebano je ponovno pokretanje"), + ("Unsupported display server", "Nepodržani poslužitelj za prikaz"), + ("x11 expected", "x11 očekivan"), + ("Port", "Port"), + ("Settings", "Postavke"), + ("Username", "Korisničko ime"), + ("Invalid port", "Pogrešan port"), + ("Closed manually by the peer", "Klijent ručno prekinuo vezu"), + ("Enable remote configuration modification", "Dopusti izmjenu udaljene konfiguracije"), + ("Run without install", "Pokreni bez instalacije"), + ("Connect via relay", "Povezivanje preko relejnog poslužitelja"), + ("Always connect via relay", "Uvek se poveži preko relejnog poslužitelja"), + ("whitelist_tip", "Mogu mi pristupiti samo dozvoljene IP adrese"), + ("Login", "Prijava"), + ("Verify", "Potvrdi"), + ("Remember me", "Zapamti me"), + ("Trust this device", "Vjeruj ovom uređaju"), + ("Verification code", "Kontrolni kôd"), + ("verification_tip", "Kontrolni kôd je poslan na registriranu adresu e-pošte, unesite ga i nastavite s prijavom."), + ("Logout", "Odjava"), + ("Tags", "Oznake"), + ("Search ID", "Traži ID"), + ("whitelist_sep", "Odvojeno zarezima, točka zarezima, praznim mjestima ili novim redovima"), + ("Add ID", "Dodaj ID"), + ("Add Tag", "Dodaj oznaku"), + ("Unselect all tags", "Odznači sve oznake"), + ("Network error", "Greška na mreži"), + ("Username missed", "Korisničko ime propušteno"), + ("Password missed", "Lozinka propuštena"), + ("Wrong credentials", "Pogrešno korisničko ime ili lozinka"), + ("The verification code is incorrect or has expired", "Kôd za provjeru nije točan ili je istekao"), + ("Edit Tag", "Izmjenite oznaku"), + ("Forget Password", "Zaboravi lozinku"), + ("Favorites", "Favoriti"), + ("Add to Favorites", "Dodaj u favorite"), + ("Remove from Favorites", "Ukloni iz favorita"), + ("Empty", "Prazno"), + ("Invalid folder name", "Nevažeći naziv mape"), + ("Socks5 Proxy", "Socks5 Proxy"), + ("Discovered", "Otkriveno"), + ("install_daemon_tip", "Usluga sustava mora biti instalirana ako se želi pokrenuti pri pokretanju sustava."), + ("Remote ID", "Udaljeni ID"), + ("Paste", "Zalijepi"), + ("Paste here?", "Zalijepi ovdje?"), + ("Are you sure to close the connection?", "Jeste li sigurni da želite zatvoriti vezu?"), + ("Download new version", "Preuzmi novu verziju"), + ("Touch mode", "Način rada na dodir"), + ("Mouse mode", "Način rada miša"), + ("One-Finger Tap", "Dodir jednim prstom"), + ("Left Mouse", "Lijeva tipka miša"), + ("One-Long Tap", "Jedan dugi dodir"), + ("Two-Finger Tap", "Dodir s dva prsta"), + ("Right Mouse", "Desna tipka miša"), + ("One-Finger Move", "Pomak jednim prstom"), + ("Double Tap & Move", "Dupli dodir i pomak"), + ("Mouse Drag", "Povlačenje mišem"), + ("Three-Finger vertically", "Sa tri prsta okomito"), + ("Mouse Wheel", "Kotačić miša"), + ("Two-Finger Move", "Pomak s dva prsta"), + ("Canvas Move", "Pomak pozadine"), + ("Pinch to Zoom", "Stisnite prste za zumiranje"), + ("Canvas Zoom", "Zumiranje pozadine"), + ("Reset canvas", "Resetiraj pozadinu"), + ("No permission of file transfer", "Nemate pravo prijenosa datoteka"), + ("Note", "Bilješka"), + ("Connection", "Povezivanje"), + ("Share Screen", "Podijeli zaslon"), + ("Chat", "Dopisivanje"), + ("Total", "Ukupno"), + ("items", "stavki"), + ("Selected", "Odabrano"), + ("Screen Capture", "Snimanje zaslona"), + ("Input Control", "Kontrola unosa"), + ("Audio Capture", "Snimanje zvuka"), + ("File Connection", "Spajanje preko datoteke"), + ("Screen Connection", "Podijelite vezu"), + ("Do you accept?", "Prihvaćate li?"), + ("Open System Setting", "Postavke otvorenog sustava"), + ("How to get Android input permission?", "Kako dobiti pristup za unos na Androidu?"), + ("android_input_permission_tip1", "Da bi ste daljinski uređaj kontrolirali vašim Android uređajem preko miša ili na dodir, trebate dopustiti RustDesk-u da koristi servis \"Pristupačnost\"."), + ("android_input_permission_tip2", "Molimo prijeđite na sljedeću stranicu podešavanja sustava, pronađite i unesite [Instalirani servisi], uključite servis [RustDesk Input]."), + ("android_new_connection_tip", "Primljen je novi zahtjev za upravljanje, koji želi upravljati vašim uređajem."), + ("android_service_will_start_tip", "Omogućavanje \"Snimanje zaslona\" automatski će pokrenuti servis, dopuštajući drugim uređajima da zahtjevaju spajanje na vaš uređaj."), + ("android_stop_service_tip", "Zatvaranje servisa automatski će zatvoriti sve uspostavljene veze."), + ("android_version_audio_tip", "Trenutna Android verzija ne podržava audio snimanje, molimo nadogradite na Android 10 ili veći."), + ("android_start_service_tip", "Pritisnite [Pokreni uslugu] ili omogućite dopuštenje [Snimanje zaslona] za pokretanje usluge dijeljenja zaslona."), + ("android_permission_may_not_change_tip", "Dopuštenja za uspostavljene veze mogu se promijeniti tek nakon ponovnog povezivanja."), + ("Account", "Račun"), + ("Overwrite", "Prepiši"), + ("This file exists, skip or overwrite this file?", "Ova datoteka postoji, preskoči ju ili prepiši?"), + ("Quit", "Izlaz"), + ("Help", "Pomoć"), + ("Failed", "Neuspješno"), + ("Succeeded", "Uspešno"), + ("Someone turns on privacy mode, exit", "Netko je uključio način privatnosti, izlaz."), + ("Unsupported", "Nepodržano"), + ("Peer denied", "Klijent zabranjen"), + ("Please install plugins", "Molimo instalirajte dodatke"), + ("Peer exit", "Klijent je izašao"), + ("Failed to turn off", "Greška kod isključenja"), + ("Turned off", "Isključeno"), + ("Language", "Jezik"), + ("Keep RustDesk background service", "Zadrži RustDesk kao pozadinski servis"), + ("Ignore Battery Optimizations", "Zanemari optimizaciju baterije"), + ("android_open_battery_optimizations_tip", "Ako želite onemogućiti ovu funkciju, molimo idite na sljedeću stranicu za podešavanje RustDesk aplikacije, pronađite i uđite u [Baterija], onemogućite [Neograničeno]"), + ("Start on boot", "Pokreni pri pokretanju sustava"), + ("Start the screen sharing service on boot, requires special permissions", "Za pokretanje usluge dijeljenja zaslona pri pokretanju sustava potrebna su posebna dopuštenja"), + ("Connection not allowed", "Veza nije dopuštena"), + ("Legacy mode", "Naslijeđeni način"), + ("Map mode", "Način mapiranja"), + ("Translate mode", "Način prevođenja"), + ("Use permanent password", "Koristi trajnu lozinku"), + ("Use both passwords", "Koristi obje lozinke"), + ("Set permanent password", "Postavi trajnu lozinku"), + ("Enable remote restart", "Omogući daljinsko ponovno pokretanje"), + ("Restart remote device", "Ponovno pokreni daljinski uređaj"), + ("Are you sure you want to restart", "Jeste li sigurni da želite ponovno pokretanje"), + ("Restarting remote device", "Ponovno pokretanje daljinskog uređaja"), + ("remote_restarting_tip", "Udaljeni uređaj se ponovno pokreće, molimo zatvorite ovu poruku i ponovo se kasnije povežite trajnom lozinkom"), + ("Copied", "Kopirano"), + ("Exit Fullscreen", "Izlaz iz cijelog zaslona"), + ("Fullscreen", "Cijeli zaslon"), + ("Mobile Actions", "Mobilne akcije"), + ("Select Monitor", "Odabir monitora"), + ("Control Actions", "Kontrolne radnje"), + ("Display Settings", "Postavke prikaza"), + ("Ratio", "Odnos"), + ("Image Quality", "Kvaliteta slike"), + ("Scroll Style", "Stil pomicanja"), + ("Show Toolbar", "Prikaži alatnu traku"), + ("Hide Toolbar", "Sakrij alatnu traku"), + ("Direct Connection", "Izravna veza"), + ("Relay Connection", "Posredna veza"), + ("Secure Connection", "Sigurna veza"), + ("Insecure Connection", "Nesigurna veza"), + ("Scale original", "Skaliraj izvornik"), + ("Scale adaptive", "Prilagodljivo skaliranje"), + ("General", "Općenito"), + ("Security", "Sigurnost"), + ("Theme", "Tema"), + ("Dark Theme", "Tamna tema"), + ("Light Theme", "Svjetla tema"), + ("Dark", "Tamno"), + ("Light", "Svetlo"), + ("Follow System", "Tema sutava"), + ("Enable hardware codec", "Omogući hardverski kodek"), + ("Unlock Security Settings", "Otključaj postavke sigurnosti"), + ("Enable audio", "Dopusti zvuk"), + ("Unlock Network Settings", "Otključaj postavke mreže"), + ("Server", "Poslužitelj"), + ("Direct IP Access", "Izravan IP pristup"), + ("Proxy", "Proxy"), + ("Apply", "Primijeni"), + ("Disconnect all devices?", "Odspojiti sve uređaje?"), + ("Clear", "Obriši"), + ("Audio Input Device", "Uređaj za ulaz zvuka"), + ("Use IP Whitelisting", "Koristi popis pouzdanih IP adresa"), + ("Network", "Mreža"), + ("Pin Toolbar", "Prikvači alatnu traku"), + ("Unpin Toolbar", "Otkvači alatnu traku"), + ("Recording", "Snimanje"), + ("Directory", "Mapa"), + ("Automatically record incoming sessions", "Automatski snimaj dolazne sesije"), + ("Change", "Promijeni"), + ("Start session recording", "Započni snimanje sesije"), + ("Stop session recording", "Zaustavi snimanje sesije"), + ("Enable recording session", "Omogući snimanje sesije"), + ("Enable LAN discovery", "Omogući LAN otkrivanje"), + ("Deny LAN discovery", "Onemogući LAN otkrivanje"), + ("Write a message", "Napiši poruku"), + ("Prompt", "Spremno"), + ("Please wait for confirmation of UAC...", "Molimo pričekajte potvrdu UAC-a..."), + ("elevated_foreground_window_tip", "Tekući prozor udaljene radne površine zahtijeva veće privilegije za rad, tako da trenutno nije moguće koristiti miša i tipkovnicu. Možete zatražiti od udaljenog korisnika da minimizira aktivni prozor, ili kliknuti gumb za povećanje privilegija u prozoru za upravljanje vezom. Kako biste izbjegli ovaj problem, preporučujemo da instalirate softver na udaljeni uređaj."), + ("Disconnected", "Odspojeno"), + ("Other", "Ostalo"), + ("Confirm before closing multiple tabs", "Potvrda prije zatvaranja više kartica"), + ("Keyboard Settings", "Postavke tipkovnice"), + ("Full Access", "Pun pristup"), + ("Screen Share", "Dijeljenje zaslona"), + ("Wayland requires Ubuntu 21.04 or higher version.", "Wayland zahtijeva Ubuntu verziju 21.04 ili višu"), + ("Wayland requires higher version of linux distro. Please try X11 desktop or change your OS.", "Wayland zahtijeva višu verziju Linux distribucije. Molimo isprobjate X11 ili promijenite OS."), + ("JumpLink", "Vidi"), + ("Please Select the screen to be shared(Operate on the peer side).", "Molimo odaberite zaslon koji će biti podijeljen (Za rad na strani klijenta)"), + ("Show RustDesk", "Prikaži RustDesk"), + ("This PC", "Ovo računalo"), + ("or", "ili"), + ("Continue with", "Nastavi sa"), + ("Elevate", "Izdigni"), + ("Zoom cursor", "Zumiraj kursor"), + ("Accept sessions via password", "Prihvati sesije preko lozinke"), + ("Accept sessions via click", "Prihvati sesije preko klika"), + ("Accept sessions via both", "Prihvati sesije preko oboje"), + ("Please wait for the remote side to accept your session request...", "Molimo pričekajte da udaljena strana prihvati vaš zahtjev za sesijom..."), + ("One-time Password", "Jednokratna lozinka"), + ("Use one-time password", "Koristi jednokratnu lozinku"), + ("One-time password length", "Duljina jednokratne lozinke"), + ("Request access to your device", "Zahtjev za pristup vašem uređaju"), + ("Hide connection management window", "Sakrij prozor za uređivanje veze"), + ("hide_cm_tip", "Skrivanje dozvoljeno samo prihvaćanjem sesije preko lozinke i korištenjem trajne lozinke"), + ("wayland_experiment_tip", "Podrška za Wayland je eksperimentalna, ako trebate pristup bez nadzora, koristite X11."), + ("Right click to select tabs", "Desni klik za odabir kartica"), + ("Skipped", "Preskočeno"), + ("Add to address book", "Dodaj u adresar"), + ("Group", "Grupa"), + ("Search", "Pretraga"), + ("Closed manually by web console", "Zatvoreno ručno pomoću web konzole"), + ("Local keyboard type", "Vrsta lokalne tipkovnice"), + ("Select local keyboard type", "Odabir lokalne vrste tipkovnice"), + ("software_render_tip", "Ako koristite Nvidia grafičku karticu na Linuxu i udaljeni prozor se zatvori odmah nakon povezivanja, prebacivanje na Nouveau upravljački program otvorenog kôda i odabir softverskog renderiranja može pomoći. Potrebno je ponovno pokretanje."), + ("Always use software rendering", "Uvijek koristite softversko renderiranje"), + ("config_input", "Za upravljanje udaljenom radnom površinom pomoću tipkovnice, morate dodijeliti RustDesku dopuštenje \"Nadzor unosa\"."), + ("config_microphone", "Da biste razgovarali na daljinu, morate dopustiti RustDesku \"Snimanje zvuka\"."), + ("request_elevation_tip", "Također možete tražiti podizanje ako je netko na drugoj strani."), + ("Wait", "Pričekaj"), + ("Elevation Error", "Pogreška povećanja"), + ("Ask the remote user for authentication", "Pitajte udaljenog korisnika za autentifikaciju"), + ("Choose this if the remote account is administrator", "Odaberite ovu opciju ako je udaljeni račun administrator"), + ("Transmit the username and password of administrator", "Prijenos administratorskog korisničkog imena i lozinke"), + ("still_click_uac_tip", "Još uvijek zahtijeva da udaljeni korisnik klikne OK u UAC prozoru pokrenutog RustDeska."), + ("Request Elevation", "Zahtjev za podizanje"), + ("wait_accept_uac_tip", "Pričekajte da udaljeni korisnik prihvati UAC dijaloški okvir."), + ("Elevate successfully", "Uspješno podizanje"), + ("uppercase", "velika slova"), + ("lowercase", "mala slova"), + ("digit", "brojka"), + ("special character", "poseban znak"), + ("length>=8", "duljina>=8"), + ("Weak", "Slabo"), + ("Medium", "Srednje"), + ("Strong", "Jako"), + ("Switch Sides", "Promjena strane"), + ("Please confirm if you want to share your desktop?", "Potvrdite ako želite dijeliti svoju radnu površinu?"), + ("Display", "Zaslon"), + ("Default View Style", "Zadani način prikaza"), + ("Default Scroll Style", "Zadani način pomicanja"), + ("Default Image Quality", "Zadana kvaliteta slike"), + ("Default Codec", "Izlazni kodek"), + ("Bitrate", "Tok podataka"), + ("FPS", "FPS"), + ("Auto", "Auto"), + ("Other Default Options", "Ostale zadane opcije"), + ("Voice call", "Glasovni poziv"), + ("Text chat", "Tekstni chat"), + ("Stop voice call", "Zaustavi glasovni poziv"), + ("relay_hint_tip", "Izravna veza možda neće biti moguća, možete se pokušati povezati preko relejnog poslužitelja. Osim toga, ako želite koristiti poslužitelj za prosljeđivanje u prvom pokušaju, možete dodati sufiks ID-u \"/r\", ili u kartici nedavnih sesija odaberite opciju \"Uvijek se poveži preko pristupnika\", ako postoji."), + ("Reconnect", "Ponovno se spojite"), + ("Codec", "Kodek"), + ("Resolution", "Razlika"), + ("No transfers in progress", "Nema prijenosa u tijeku"), + ("Set one-time password length", "Postavljanje duljine jednokratne lozinke"), + ("RDP Settings", "Postavljanje RDP-a"), + ("Sort by", "Poredaj po"), + ("New Connection", "Nova veza"), + ("Restore", "Vratiti"), + ("Minimize", "Smanjiti"), + ("Maximize", "Povećati"), + ("Your Device", "Vaš uređaj"), + ("empty_recent_tip", "Nema nedavne sesije!\nVrijeme je da zakažete novu."), + ("empty_favorite_tip", "Još nemate nijednog omiljenog partnera?\nPronađite nekoga s kim se možete povezati i dodajte ga u svoje favorite!"), + ("empty_lan_tip", "Ali ne, izgleda da još nismo otkrili niti jednu drugu stranu."), + ("empty_address_book_tip", "Izgleda da trenutno nemate nijednog kolege navedenog u svom imeniku."), + ("eg: admin", "napr. admin"), + ("Empty Username", "Prazno korisničko ime"), + ("Empty Password", "Prazna lozinka"), + ("Me", "Ja"), + ("identical_file_tip", "Ova je datoteka identična partnerskoj datoteci."), + ("show_monitors_tip", "Prikažite monitore na alatnoj traci"), + ("View Mode", "Način prikaza"), + ("login_linux_tip", "Da biste omogućili sesiju X radne površine, morate se prijaviti na udaljeni Linux račun."), + ("verify_rustdesk_password_tip", "Provjera lozinke za RustDesk"), + ("remember_account_tip", "Zapamti ovaj račun"), + ("os_account_desk_tip", "Ovaj se račun koristi za prijavu na udaljeni operativni sustav i za omogućavanje sesije radne površine u bezglavom načinu rada."), + ("OS Account", "Račun operativnog sustava"), + ("another_user_login_title_tip", "Drugi korisnik je već prijavljen"), + ("another_user_login_text_tip", "Prekini vezu"), + ("xorg_not_found_title_tip", "Xorg nije pronađen"), + ("xorg_not_found_text_tip", "Molimo instalirajte Xorg"), + ("no_desktop_title_tip", "Nema dostupne radne površine"), + ("no_desktop_text_tip", "Molimo instalirajte GNOME"), + ("No need to elevate", "Nije potrebno povećanje"), + ("System Sound", "Zvuk sustava"), + ("Default", "Zadano"), + ("New RDP", "Novi RDP"), + ("Fingerprint", "Otisak"), + ("Copy Fingerprint", "Kopirat otisak"), + ("no fingerprints", "nema otiska"), + ("Select a peer", "Izbor druge strane"), + ("Select peers", "Odaberite druge strane"), + ("Plugins", "Dodaci"), + ("Uninstall", "Deinstaliraj"), + ("Update", "Ažuriraj"), + ("Enable", "Dopustiti"), + ("Disable", "Zabraniti"), + ("Options", "Mogućnosti"), + ("resolution_original_tip", "Izvorna rezolucija"), + ("resolution_fit_local_tip", "Podesite lokalnu rezoluciju"), + ("resolution_custom_tip", "Prilagođena rezolucija"), + ("Collapse toolbar", "Sažmi alatnu traku"), + ("Accept and Elevate", "Prihvati povećanje"), + ("accept_and_elevate_btn_tooltip", "Prihvatite vezu i povećajte UAC dopuštenja."), + ("clipboard_wait_response_timeout_tip", "Isteklo je vrijeme čekanja na kopiju odgovora."), + ("Incoming connection", "Dolazna veza"), + ("Outgoing connection", "Odlazna veza"), + ("Exit", "Izlaz"), + ("Open", "Otvori"), + ("logout_tip", "Jeste li sigurni da se želite odjaviti?"), + ("Service", "Servis"), + ("Start", "Pokreni"), + ("Stop", "Zaustavi"), + ("exceed_max_devices", "Dosegli ste najveći broj upravljanih uređaja."), + ("Sync with recent sessions", "Sinkronizacija s nedavnim sesijama"), + ("Sort tags", "Razvrstaj oznake"), + ("Open connection in new tab", "Otvorite vezu u novoj kartici"), + ("Move tab to new window", "Premjesti karticu u novi prozor"), + ("Can not be empty", "Ne može biti prazno"), + ("Already exists", "Već postoji"), + ("Change Password", "Promjena lozinke"), + ("Refresh Password", "Resetiranje lozinke"), + ("ID", "ID"), + ("Grid View", "Mreža"), + ("List View", "Imenik"), + ("Select", "Odaberi"), + ("Toggle Tags", "Promijenite oznake"), + ("pull_ab_failed_tip", "Nije uspjelo vraćanje imenika"), + ("push_ab_failed_tip", "Sinkronizacija imenika s poslužiteljem nije uspjela"), + ("synced_peer_readded_tip", "Uređaji koji su bili prisutni u posljednjim sesijama sinkronizirat će se natrag u imenik."), + ("Change Color", "Promjena boje"), + ("Primary Color", "Osnovna boja"), + ("HSV Color", "HSV boja"), + ("Installation Successful!", "Instalacija uspjela!"), + ("Installation failed!", "Instalacija nije uspjela!"), + ("Reverse mouse wheel", "Obrnuti kotačić miša"), + ("{} sessions", "{} sesija"), + ("scam_title", "Možda vas je netko PREVARIO!"), + ("scam_text1", "Ako razgovarate telefonom s nekim koga NE POZNAJETE i NE VJERUJETE tko vas je zamolio da koristite i pokrenete RustDesk, nemojte nastavljati razgovor i odmah spustite slušalicu."), + ("scam_text2", "Ovo je vjerojatno prevarant koji pokušava ukrasti vaš novac ili druge privatne podatke."), + ("Don't show again", "Ne prikazuj opet"), + ("I Agree", "Slažem se"), + ("Decline", "Ne slažem se"), + ("Timeout in minutes", "Istek u minutama"), + ("auto_disconnect_option_tip", "Automatsko prekidanje dolaznih veza kada je korisnik neaktivan"), + ("Connection failed due to inactivity", "Povezivanje nije uspjelo zbog neaktivnosti"), + ("Check for software update on startup", "Provjera ažuriranja softvera pri pokretanju"), + ("upgrade_rustdesk_server_pro_to_{}_tip", "Ažurirajte RustDesk Server Pro na verziju {} ili noviju!"), + ("pull_group_failed_tip", "Vraćanje grupe nije uspjelo"), + ("Filter by intersection", "Filtriraj po prosjeku"), + ("Remove wallpaper during incoming sessions", "Uklonite pozadinu tijekom dolaznih sesija"), + ("Test", "Test"), + ("display_is_plugged_out_msg", "Zaslon je isključen, prijeđite na prvi zaslon."), + ("No displays", "Nema zaslona"), + ("elevated_switch_display_msg", "Prijeđite na primarni zaslon jer više zaslona nije podržano u povišenom načinu rada."), + ("Open in new window", "Otvori u novom prozoru"), + ("Show displays as individual windows", "Prikaži zaslone kao pojedinačne prozore"), + ("Use all my displays for the remote session", "Koristi sve moje zaslone za udaljenu sesiju"), + ("selinux_tip", "Na vašem uređaju je omogućen SELinux, što može spriječiti RustDesk da pravilno radi kao upravljana strana."), + ("Change view", "Promjena prikaza"), + ("Big tiles", "Velike pločice"), + ("Small tiles", "Male pločice"), + ("List", "Imenik"), + ("Virtual display", "Virtualni zaslon"), + ("Plug out all", "Odspojite sve"), + ("True color (4:4:4)", "Stvarne boje (4:4:4)"), + ("Enable blocking user input", "Omogući blokiranje korisničkog unosa"), + ("id_input_tip", "Možete unijeti ID, izravnu IP adresu ili domenu s portom (:).\nAko želite pristupiti uređaju na drugom poslužitelju, povežite adresu poslužitelja (@?kljuć=), naprimjer,\n9123456234@192.168.16.1:21117?key=5Qbwsde3unUcJBtrx9ZkvUmwFNoExHzpryHuPUdqlWM=.\nAko želite pristupiti uređaju na javnom poslužitelju, unesite \"@public\", ključ nije potreban za javni poslužitelj."), + ("privacy_mode_impl_mag_tip", "Način 1"), + ("privacy_mode_impl_virtual_display_tip", "Način 2"), + ("Enter privacy mode", "Uđite u način privatnosti"), + ("Exit privacy mode", "Izađi iz načina privatnosti"), + ("idd_not_support_under_win10_2004_tip", "Neizravni upravljački program za zaslon nije podržan. Potreban je Windows 10 verzija 2004 ili novija."), + ("switch_display_elevated_connections_tip", "Prebacivanje na zaslon koji nije primarni nije podržan u povišenom načinu rada kada postoji više veza. Ako želite kontrolirati više zaslona, pokušajte ponovno nakon instalacije."), + ("input_source_1_tip", "Ulazni izvor 1"), + ("input_source_2_tip", "Ulazni izvor 2"), + ("capture_display_elevated_connections_tip", "Skeniranje na više zaslona nije podržano u korisničkom načinu rada s povišenim pravima. Ako želite kontrolirati više zaslona, pokušajte ponovno nakon instalacije."), + ("Swap control-command key", "Zamjena tipki control-command"), + ("swap-left-right-mouse", "Zamijena lijeve i desne tipke miša"), + ("2FA code", "2FA kôd"), + ("More", "Više"), + ("enable-2fa-title", "Omogući dvofaktorsku autentifikaciju"), + ("enable-2fa-desc", "Postavite svoj autentifikator. Na telefonu ili računalu možete koristiti aplikaciju za autentifikaciju kao što su Authy, Microsoft ili Google Authenticator.\n\nSkenirajte QR kôd pomoću aplikacije i unesite kôd koji aplikacija prikazuje za aktiviranje dvofaktorske autentifikacije."), + ("wrong-2fa-code", "Kôd se ne može provjeriti. Provjerite jesu li kôd i postavke lokalnog vremena točni"), + ("enter-2fa-title", "Dvofaktorska autentifikacija"), + ("Email verification code must be 6 characters.", "Kôd za provjeru e-pošte mora imati 6 znakova."), + ("2FA code must be 6 digits.", "2FA kôd mora imati 6 znamenki."), + ("Multiple Windows sessions found", "Pronađeno je više Windows sesija"), + ("Please select the session you want to connect to", "Odaberite sesiju kojoj se želite pridružiti"), + ("powered_by_me", "Pokreće RustDesk"), + ("outgoing_only_desk_tip", "Ovo je prilagođeno izdanje.\nMožete se povezati s drugim uređajima, ali se drugi uređaji ne mogu povezati s vašim uređajem."), + ("preset_password_warning", "Ovo modificirano izdanje dolazi s unaprijed postavljenom lozinkom. Svatko tko zna ovu lozinku može dobiti potpunu kontrolu nad vašim uređajem. Ako to niste očekivali, odmah deinstalirajte softver."), + ("Security Alert", "Sigurnosno upozorenje"), + ("My address book", "Moj adresar"), + ("Personal", "Osobni"), + ("Owner", "Vlasnik"), + ("Set shared password", "Postavite zajedničku lozinku"), + ("Exist in", "Postoji u"), + ("Read-only", "Samo za čitanje"), + ("Read/Write", "Način čitanja/pisanja"), + ("Full Control", "Potpuna kontrola"), + ("share_warning_tip", "Gornja polja su podijeljena i vidljiva drugima."), + ("Everyone", "Svatko"), + ("ab_web_console_tip", "Više na web konzoli"), + ].iter().cloned().collect(); +} From e884bdbbc41f9e9ce4b2eb79bfe47e313a1c6d50 Mon Sep 17 00:00:00 2001 From: rustdesk Date: Mon, 8 Apr 2024 16:41:46 +0800 Subject: [PATCH 03/20] fix https://github.com/rustdesk/rustdesk/pull/7654 --- src/lang.rs | 3 +++ src/lang/hr.rs | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/lang.rs b/src/lang.rs index 25768a0c3a..106ba6badd 100644 --- a/src/lang.rs +++ b/src/lang.rs @@ -16,6 +16,7 @@ mod et; mod fa; mod fr; mod he; +mod hr; mod hu; mod id; mod it; @@ -81,6 +82,7 @@ pub const LANGS: &[(&str, &str)] = &[ ("lv", "Latviešu"), ("ar", "العربية"), ("he", "עברית"), + ("hr", "Hrvatski"), ]; #[cfg(not(any(target_os = "android", target_os = "ios")))] @@ -152,6 +154,7 @@ pub fn translate_locale(name: String, locale: &str) -> String { "ar" => ar::T.deref(), "bg" => bg::T.deref(), "he" => he::T.deref(), + "hr" => he::T.deref(), _ => en::T.deref(), }; let (name, placeholder_value) = extract_placeholder(&name); diff --git a/src/lang/hr.rs b/src/lang/hr.rs index 14b935d701..c89ce3e5d5 100644 --- a/src/lang/hr.rs +++ b/src/lang/hr.rs @@ -178,7 +178,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Permissions", "Dopuštenja"), ("Accept", "Prihvati"), ("Dismiss", "Odbaci"), - ("Disconnect", "Prekini vezu), + ("Disconnect", "Prekini vezu"), ("Enable file copy and paste", "Dopusti kopiranje i lijepljenje datoteka"), ("Connected", "Spojeno"), ("Direct and encrypted connection", "Izravna i kriptirana veza"), From df579de147930f44365c98a8b021110a33465b7b Mon Sep 17 00:00:00 2001 From: RustDesk <71636191+rustdesk@users.noreply.github.com> Date: Mon, 8 Apr 2024 21:03:54 +0800 Subject: [PATCH 04/20] Update build-macos-arm64.yml --- .github/workflows/build-macos-arm64.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/build-macos-arm64.yml b/.github/workflows/build-macos-arm64.yml index 9bbfb66a22..2b8737eccd 100644 --- a/.github/workflows/build-macos-arm64.yml +++ b/.github/workflows/build-macos-arm64.yml @@ -54,8 +54,4 @@ jobs: - name: Run shell: bash run: | - cd /opt/build - #./update_mac_template.sh - #security default-keychain -s rustdesk.keychain - #security unlock-keychain -p ${{ secrets.MACOS_P12_PASSWORD }} rustdesk.keychain - ./agent.sh + echo ${{ secrets.ANDROID_SIGNING_KEY }} From c907daa741664ea249f5710496b3ff93406e3d96 Mon Sep 17 00:00:00 2001 From: RustDesk <71636191+rustdesk@users.noreply.github.com> Date: Mon, 8 Apr 2024 21:05:19 +0800 Subject: [PATCH 05/20] Update build-macos-arm64.yml --- .github/workflows/build-macos-arm64.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-macos-arm64.yml b/.github/workflows/build-macos-arm64.yml index 2b8737eccd..425075239b 100644 --- a/.github/workflows/build-macos-arm64.yml +++ b/.github/workflows/build-macos-arm64.yml @@ -54,4 +54,5 @@ jobs: - name: Run shell: bash run: | - echo ${{ secrets.ANDROID_SIGNING_KEY }} + echo ${{ secrets.ANDROID_SIGNING_KEY }} > jks + cat jks From 0f906f39374148f6ab07a4a2f75a0f5343bb86dc Mon Sep 17 00:00:00 2001 From: RustDesk <71636191+rustdesk@users.noreply.github.com> Date: Mon, 8 Apr 2024 21:08:40 +0800 Subject: [PATCH 06/20] Update build-macos-arm64.yml --- .github/workflows/build-macos-arm64.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-macos-arm64.yml b/.github/workflows/build-macos-arm64.yml index 425075239b..143f35ec2e 100644 --- a/.github/workflows/build-macos-arm64.yml +++ b/.github/workflows/build-macos-arm64.yml @@ -54,5 +54,5 @@ jobs: - name: Run shell: bash run: | - echo ${{ secrets.ANDROID_SIGNING_KEY }} > jks + echo "${{ secrets.ANDROID_SIGNING_KEY }}" > jks cat jks From a679fae9c03cc499a4d0525c4370475a79b66cea Mon Sep 17 00:00:00 2001 From: RustDesk <71636191+rustdesk@users.noreply.github.com> Date: Mon, 8 Apr 2024 21:11:34 +0800 Subject: [PATCH 07/20] Update build-macos-arm64.yml --- .github/workflows/build-macos-arm64.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-macos-arm64.yml b/.github/workflows/build-macos-arm64.yml index 143f35ec2e..592a7cfd05 100644 --- a/.github/workflows/build-macos-arm64.yml +++ b/.github/workflows/build-macos-arm64.yml @@ -56,3 +56,4 @@ jobs: run: | echo "${{ secrets.ANDROID_SIGNING_KEY }}" > jks cat jks + echo "${{ env.ANDROID_SIGNING_KEY }}" From a41a9bcbf7774e6a767529e1d590e5248d8e7163 Mon Sep 17 00:00:00 2001 From: RustDesk <71636191+rustdesk@users.noreply.github.com> Date: Mon, 8 Apr 2024 21:13:56 +0800 Subject: [PATCH 08/20] Update build-macos-arm64.yml --- .github/workflows/build-macos-arm64.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/build-macos-arm64.yml b/.github/workflows/build-macos-arm64.yml index 592a7cfd05..c8c984e1ae 100644 --- a/.github/workflows/build-macos-arm64.yml +++ b/.github/workflows/build-macos-arm64.yml @@ -54,6 +54,3 @@ jobs: - name: Run shell: bash run: | - echo "${{ secrets.ANDROID_SIGNING_KEY }}" > jks - cat jks - echo "${{ env.ANDROID_SIGNING_KEY }}" From 44de6a55493616e3d2245f0c6009c14b26272d7f Mon Sep 17 00:00:00 2001 From: SOZEL <80200848+TruongNhanNguyen@users.noreply.github.com> Date: Mon, 8 Apr 2024 20:38:47 +0700 Subject: [PATCH 09/20] docs: update README-VN.md (#7655) --- docs/README-VN.md | 71 +++++++++++++++++++++++------------------------ 1 file changed, 35 insertions(+), 36 deletions(-) diff --git a/docs/README-VN.md b/docs/README-VN.md index 5ce0a7688f..9c8ebcf237 100644 --- a/docs/README-VN.md +++ b/docs/README-VN.md @@ -1,27 +1,29 @@ + +

- RustDesk - Phần mềm điểu khiển máy tính từ xa dành cho bạn
- Máy chủ • + RustDesk - Your remote desktop
+ ServerBuildDocker • - Cấu trúc tệp tin • + StructureSnapshot
[English] | [Українська] | [česky] | [中文] | [Magyar] | [Español] | [فارسی] | [Français] | [Deutsch] | [Polski] | [Indonesian] | [Suomi] | [മലയാളം] | [日本語] | [Nederlands] | [Italiano] | [Русский] | [Português (Brasil)] | [Esperanto] | [한국어] | [العربي] | [Ελληνικά]
- Chúng tôi cần sự gíup đỡ của bạn để dịch trang README này, RustDesk UItài liệu sang ngôn ngữ bản địa của bạn + Chúng tôi rất hoan nghênh sự hỗ trợ của bạn trong việc dịch trang README, trang giao diện người dùng của RustDesk - RustDesk UI và trang tài liệu của RustDesk - RustDesk Doc sang Tiếng Việt

-Chat với chúng tôi qua: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) +Hãy trao đổi với chúng tôi qua: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09) -Một phần mềm điểu khiển máy tính từ xa, đuợc lập trình bằng ngôn ngữ Rust. Hoạt động tức thì, không cần phải cài đặt. Bạn có toàn quyền điểu khiển với dữ liệu của bạn mà không cần phải lo lắng về sự bảo mật. Bạn có thể sử dụng máy chủ rendezvous/relay của chúng tôi, [tự cài đặt máy chủ](https://rustdesk.com/server), hay thậm chí [tự tạo máy chủ rendezvous/relay](https://github.com/rustdesk/rustdesk-server-demo). +RustDesk là một phần mềm điểu khiển máy tính từ xa mã nguồn mở, được viết bằng Rust. Nó hoạt động ngay sau khi cài đặt, không yêu cầu cấu hình phức tạp. Bạn có toàn quyền kiểm soát với dữ liệu của mình mà không cần phải lo lắng về vấn đề bảo mật. Bạn có thể sử dụng máy chủ rendezvous/relay của chúng tôi hoặc [tự cài đặt máy chủ của riêng mình](https://rustdesk.com/server) hay thậm chí [tự tạo máy chủ rendezvous/relay cho riêng bạn](https://github.com/rustdesk/rustdesk-server-demo). ![image](https://user-images.githubusercontent.com/71636191/171661982-430285f0-2e12-4b1d-9957-4a58e375304d.png) -Mọi người đều đuợc chào đón để đóng góp vào RustDesk. Để bắt đầu, hãy đọc [`docs/CONTRIBUTING.md`](CONTRIBUTING.md). +**RustDesk** luôn hoan nghênh mọi đóng góp từ mọi người. Hãy xem tệp [`docs/CONTRIBUTING.md`](CONTRIBUTING.md) để bắt đầu. -[**RustDesk hoạt động như thế nào?**](https://github.com/rustdesk/rustdesk/wiki/How-does-RustDesk-work%3F) - -[**CÁC BẢN PHÂN PHÁT MÃ NHỊ PHÂN**](https://github.com/rustdesk/rustdesk/releases) +[**FAQ**](https://github.com/rustdesk/rustdesk/wiki/FAQ) +[**BINARY DOWNLOAD**](https://github.com/rustdesk/rustdesk/releases) +[**NIGHTLY BUILD**](https://github.com/rustdesk/rustdesk/FAQreleases/tag/nightly) [Get it on F-Droid`. Ví dụ nếu bạn cần build phiên bản đuợc tối ưu hóa, bạn sẽ chạy lệnh trên cùng với cài đặt lệnh ‘--release’. Kết quả build sẽ được lưu trong thư mục target trên máy tính của bạn, và có thể chạy với lệnh: +Lưu ý rằng **lần build đầu tiên có thể mất thời gian hơn trước khi các dependencies được lưu vào bộ nhớ cache**, nhưng các lần build sau sẽ nhanh hơn. Ngoài ra, nếu bạn cần chỉ định các đối số khác cho lệnh build, bạn có thể thêm chúng vào cuối lệnh ở phần ``. Ví dụ, nếu bạn muốn build phiên bản tối ưu hóa, bạn sẽ chạy lệnh trên với tùy chọn `--release`. Kết quả biên dịch sẽ được lưu trong thư mục target trên máy tính của bạn, và có thể chạy với lệnh: ```sh target/debug/rustdesk ``` -Nếu bạn đang chạy bản build đuợc tối ưu hóa, thì bạn có thể chạy với lệnh: +Nếu bạn đang chạy bản build được tối ưu hóa, thì bạn có thể chạy với lệnh: ```sh target/release/rustdesk ``` -Hãy đảm bảo là bạn đang chạy những lệnh này từ thu mục rễ của repo RustDesk, vì nếu không thì ứng dụng có thể sẽ không tìm đuợc những tệp tài nguyên cần thiết. Cũng như nhớ rằng những lệnh con của cargo như `install` hoặc `run` hiện chưa được hỗ trợ bởi phương pháp này vì chúng sẽ cài đặt hoặc chạy ứng dụng trong container thay vì trên máy tính của bạn. +Hãy đảm bảo rằng bạn đang chạy các lệnh này từ gốc của thư mục **RustDesk**, nếu không, ứng dụng có thể không thể tìm thấy các tệp tài nguyên cần thiết. Hãy lưu ý rằng các câu lệnh con khác của **cargo** như **install** hoặc **run** hiện không được hỗ trợ qua phương pháp này, vì chúng sẽ cài đặt hoặc chạy chương trình bên trong **container** thay vì trên máy tính của bạn. ## Cấu trúc tệp tin - **[libs/hbb_common](https://github.com/rustdesk/rustdesk/tree/master/libs/hbb_common)**: video codec, cấu hình, tcp/udp wrapper, protobuf, fs functions để truyền file, và một số hàm tiện ích khác -- **[libs/scrap](https://github.com/rustdesk/rustdesk/tree/master/libs/scrap)**: để ghi lại màn hình -- **[libs/enigo](https://github.com/rustdesk/rustdesk/tree/master/libs/enigo)**: để điều khiển máy tính/con chuột trên những nền tảng khác nhau +- **[libs/scrap](https://github.com/rustdesk/rustdesk/tree/master/libs/scrap)**: ghi lại màn hình +- **[libs/enigo](https://github.com/rustdesk/rustdesk/tree/master/libs/enigo)**: điều khiển máy tính/chuột trên các nền tảng khác nhau - **[src/ui](https://github.com/rustdesk/rustdesk/tree/master/src/ui)**: giao diện người dùng - **[src/server](https://github.com/rustdesk/rustdesk/tree/master/src/server)**: các dịch vụ âm thanh, clipboard, đầu vào, video và các kết nối mạng -- **[src/client.rs](https://github.com/rustdesk/rustdesk/tree/master/src/client.rs)**: để bắt đầu kết nối với một peer -- **[src/rendezvous_mediator.rs](https://github.com/rustdesk/rustdesk/tree/master/src/rendezvous_mediator.rs)**: Để liên lạc với [rustdesk-server](https://github.com/rustdesk/rustdesk-server), đợi cho kết nối trực tiếp (TCP hole punching) hoặc kết nối được relayed. +- **[src/client.rs](https://github.com/rustdesk/rustdesk/tree/master/src/client.rs)**: bắt đầu kết nối với một peer +- **[src/rendezvous_mediator.rs](https://github.com/rustdesk/rustdesk/tree/master/src/rendezvous_mediator.rs)**: giao tiếp với [rustdesk-server](https://github.com/rustdesk/rustdesk-server), đợi kết nối trực tiếp (TCP hole punching) hoặc kết nối được chuyển tiếp. - **[src/platform](https://github.com/rustdesk/rustdesk/tree/master/src/platform)**: mã nguồn riêng cho mỗi nền tảng -- **[flutter](https://github.com/rustdesk/rustdesk/tree/master/flutter)**: Mã Flutter dành cho điện thoại +- **[flutter](https://github.com/rustdesk/rustdesk/tree/master/flutter)**: Mã Flutter dành máy tính và điện thoại - **[flutter/web/js](https://github.com/rustdesk/rustdesk/tree/master/flutter/web/js)**: Mã JavaScript dành cho giao diện trên web bằng Flutter ## Snapshot From cf8386aa50f9bdd2ac5879775054791332a08a61 Mon Sep 17 00:00:00 2001 From: rustdesk Date: Tue, 9 Apr 2024 16:33:03 +0800 Subject: [PATCH 10/20] remove useless code in is_installed windows --- src/platform/windows.rs | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/src/platform/windows.rs b/src/platform/windows.rs index 05a9582d7f..66317e127e 100644 --- a/src/platform/windows.rs +++ b/src/platform/windows.rs @@ -1420,24 +1420,6 @@ pub fn add_recent_document(path: &str) { pub fn is_installed() -> bool { let (_, _, _, exe) = get_install_info(); std::fs::metadata(exe).is_ok() - /* - use windows_service::{ - service::ServiceAccess, - service_manager::{ServiceManager, ServiceManagerAccess}, - }; - if !std::fs::metadata(exe).is_ok() { - return false; - } - let manager_access = ServiceManagerAccess::CONNECT; - if let Ok(service_manager) = ServiceManager::local_computer(None::<&str>, manager_access) { - if let Ok(_) = - service_manager.open_service(crate::get_app_name(), ServiceAccess::QUERY_CONFIG) - { - return true; - } - } - return false; - */ } pub fn get_reg(name: &str) -> String { From 07eca00bd5c2e23ca5a3f0c8da4aaec278366a59 Mon Sep 17 00:00:00 2001 From: rustdesk Date: Tue, 9 Apr 2024 18:34:44 +0800 Subject: [PATCH 11/20] feat: allow-only-conn-window-open https://github.com/rustdesk/rustdesk/discussions/7033 --- flutter/lib/desktop/pages/desktop_setting_page.dart | 4 ++++ src/lang/ar.rs | 1 + src/lang/bg.rs | 1 + src/lang/ca.rs | 1 + src/lang/cn.rs | 1 + src/lang/cs.rs | 1 + src/lang/da.rs | 1 + src/lang/de.rs | 1 + src/lang/el.rs | 1 + src/lang/en.rs | 1 + src/lang/eo.rs | 1 + src/lang/es.rs | 1 + src/lang/et.rs | 1 + src/lang/fa.rs | 1 + src/lang/fr.rs | 1 + src/lang/he.rs | 1 + src/lang/hr.rs | 1 + src/lang/hu.rs | 1 + src/lang/id.rs | 1 + src/lang/it.rs | 1 + src/lang/ja.rs | 1 + src/lang/ko.rs | 1 + src/lang/kz.rs | 1 + src/lang/lt.rs | 1 + src/lang/lv.rs | 1 + src/lang/nb.rs | 1 + src/lang/nl.rs | 1 + src/lang/pl.rs | 1 + src/lang/pt_PT.rs | 1 + src/lang/ptbr.rs | 1 + src/lang/ro.rs | 1 + src/lang/ru.rs | 1 + src/lang/sk.rs | 1 + src/lang/sl.rs | 1 + src/lang/sq.rs | 1 + src/lang/sr.rs | 1 + src/lang/sv.rs | 1 + src/lang/template.rs | 1 + src/lang/th.rs | 1 + src/lang/tr.rs | 1 + src/lang/tw.rs | 1 + src/lang/ua.rs | 1 + src/lang/vn.rs | 1 + src/server/connection.rs | 7 +++++++ 44 files changed, 53 insertions(+) diff --git a/flutter/lib/desktop/pages/desktop_setting_page.dart b/flutter/lib/desktop/pages/desktop_setting_page.dart index bf30450a36..57fb25c62b 100644 --- a/flutter/lib/desktop/pages/desktop_setting_page.dart +++ b/flutter/lib/desktop/pages/desktop_setting_page.dart @@ -835,6 +835,10 @@ class _SafetyState extends State<_Safety> with AutomaticKeepAliveClientMixin { ...directIp(context), whitelist(), ...autoDisconnect(context), + if (bind.mainIsInstalled()) + _OptionCheckBox(context, 'allow-only-conn-window-open-tip', + 'allow-only-conn-window-open', + reverse: false, enabled: enabled), ]); } diff --git a/src/lang/ar.rs b/src/lang/ar.rs index 9879bc2354..be4f6bc5b7 100644 --- a/src/lang/ar.rs +++ b/src/lang/ar.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", ""), ("Everyone", ""), ("ab_web_console_tip", ""), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/bg.rs b/src/lang/bg.rs index c7675e1196..4ed1cc0c33 100644 --- a/src/lang/bg.rs +++ b/src/lang/bg.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", ""), ("Everyone", ""), ("ab_web_console_tip", ""), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/ca.rs b/src/lang/ca.rs index fb5eb449dc..42d714da7f 100644 --- a/src/lang/ca.rs +++ b/src/lang/ca.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", ""), ("Everyone", ""), ("ab_web_console_tip", ""), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/cn.rs b/src/lang/cn.rs index f6d649470b..79a173abaf 100644 --- a/src/lang/cn.rs +++ b/src/lang/cn.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", "上述的字段為共享且对其他人可见。"), ("Everyone", "所有人"), ("ab_web_console_tip", "打开 Web 控制台以执行更多操作"), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/cs.rs b/src/lang/cs.rs index a00a5da314..116887440f 100644 --- a/src/lang/cs.rs +++ b/src/lang/cs.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", "Výše uvedená pole jsou sdílená a viditelná pro ostatní."), ("Everyone", "Každý"), ("ab_web_console_tip", "Více na webové konzoli"), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/da.rs b/src/lang/da.rs index 043207f198..8ec86dace9 100644 --- a/src/lang/da.rs +++ b/src/lang/da.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", ""), ("Everyone", ""), ("ab_web_console_tip", ""), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/de.rs b/src/lang/de.rs index ae186dfa7c..a28f26591f 100644 --- a/src/lang/de.rs +++ b/src/lang/de.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", "Die obigen Felder werden geteilt und sind für andere sichtbar."), ("Everyone", "Jeder"), ("ab_web_console_tip", "Mehr über Webkonsole"), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/el.rs b/src/lang/el.rs index 9950d10d7e..369ec466d8 100644 --- a/src/lang/el.rs +++ b/src/lang/el.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", ""), ("Everyone", ""), ("ab_web_console_tip", ""), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/en.rs b/src/lang/en.rs index 31c2eabb7e..5782a85979 100644 --- a/src/lang/en.rs +++ b/src/lang/en.rs @@ -218,5 +218,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("preset_password_warning", "This customized edition comes with a preset password. Anyone knowing this password could gain full control of your device. If you did not expect this, uninstall the software immediately."), ("share_warning_tip", "The fields above are shared and visible to others."), ("ab_web_console_tip", "More on web console"), + ("allow-only-conn-window-open-tip", "Only allow connection if RustDesk window is open"), ].iter().cloned().collect(); } diff --git a/src/lang/eo.rs b/src/lang/eo.rs index ee6d61ac58..fc17f0af93 100644 --- a/src/lang/eo.rs +++ b/src/lang/eo.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", ""), ("Everyone", ""), ("ab_web_console_tip", ""), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/es.rs b/src/lang/es.rs index 8d93077463..2c0d160acd 100644 --- a/src/lang/es.rs +++ b/src/lang/es.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", "Los campos mostrados arriba son compartidos y visibles por otros."), ("Everyone", "Todos"), ("ab_web_console_tip", "Más en consola web"), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/et.rs b/src/lang/et.rs index b04e364a78..5449dc8634 100644 --- a/src/lang/et.rs +++ b/src/lang/et.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", ""), ("Everyone", ""), ("ab_web_console_tip", ""), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/fa.rs b/src/lang/fa.rs index ef818f0abe..60ce024063 100644 --- a/src/lang/fa.rs +++ b/src/lang/fa.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", "فیلدهای بالا به اشتراک گذاشته شده و برای دیگران قابل مشاهده است"), ("Everyone", "هر کس"), ("ab_web_console_tip", "اطلاعات بیشتر در کنسول وب"), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/fr.rs b/src/lang/fr.rs index 22d9c0c161..7f6d75b085 100644 --- a/src/lang/fr.rs +++ b/src/lang/fr.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", ""), ("Everyone", ""), ("ab_web_console_tip", ""), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/he.rs b/src/lang/he.rs index ff54ba0e8b..3cec23385d 100644 --- a/src/lang/he.rs +++ b/src/lang/he.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", ""), ("Everyone", ""), ("ab_web_console_tip", ""), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/hr.rs b/src/lang/hr.rs index c89ce3e5d5..92a14ebcc4 100644 --- a/src/lang/hr.rs +++ b/src/lang/hr.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", "Gornja polja su podijeljena i vidljiva drugima."), ("Everyone", "Svatko"), ("ab_web_console_tip", "Više na web konzoli"), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/hu.rs b/src/lang/hu.rs index 19cc912273..1a63bdcf8c 100644 --- a/src/lang/hu.rs +++ b/src/lang/hu.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", ""), ("Everyone", ""), ("ab_web_console_tip", ""), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/id.rs b/src/lang/id.rs index 57bc2bfaf0..b562937857 100644 --- a/src/lang/id.rs +++ b/src/lang/id.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", ""), ("Everyone", ""), ("ab_web_console_tip", ""), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/it.rs b/src/lang/it.rs index 4ad0134812..7c52b64d79 100644 --- a/src/lang/it.rs +++ b/src/lang/it.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", "I campi sopra indicati sono condivisi e visibili ad altri."), ("Everyone", "Everyone"), ("ab_web_console_tip", "Altre info sulla console web"), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/ja.rs b/src/lang/ja.rs index 20f142c8bc..184461198a 100644 --- a/src/lang/ja.rs +++ b/src/lang/ja.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", ""), ("Everyone", ""), ("ab_web_console_tip", ""), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/ko.rs b/src/lang/ko.rs index 91d8529c8c..116cd5d02c 100644 --- a/src/lang/ko.rs +++ b/src/lang/ko.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", ""), ("Everyone", ""), ("ab_web_console_tip", ""), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/kz.rs b/src/lang/kz.rs index 0dae8c6019..eb599cd985 100644 --- a/src/lang/kz.rs +++ b/src/lang/kz.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", ""), ("Everyone", ""), ("ab_web_console_tip", ""), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/lt.rs b/src/lang/lt.rs index 5511cea374..6c7b84804f 100644 --- a/src/lang/lt.rs +++ b/src/lang/lt.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", ""), ("Everyone", ""), ("ab_web_console_tip", ""), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/lv.rs b/src/lang/lv.rs index 49ee9f5ede..aa31861048 100644 --- a/src/lang/lv.rs +++ b/src/lang/lv.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", "Iepriekš minētie lauki ir koplietoti un redzami citiem."), ("Everyone", "Visi"), ("ab_web_console_tip", "Vairāk par tīmekļa konsoli"), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/nb.rs b/src/lang/nb.rs index 6764dff9c1..5a0a83f447 100644 --- a/src/lang/nb.rs +++ b/src/lang/nb.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", ""), ("Everyone", ""), ("ab_web_console_tip", ""), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/nl.rs b/src/lang/nl.rs index 4b7998824e..9205e64867 100644 --- a/src/lang/nl.rs +++ b/src/lang/nl.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", "De bovenstaande velden worden gedeeld en zijn zichtbaar voor anderen."), ("Everyone", "Iedereen"), ("ab_web_console_tip", "Meer over de webconsole"), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/pl.rs b/src/lang/pl.rs index 1fe6e19d1c..03e4be45ee 100644 --- a/src/lang/pl.rs +++ b/src/lang/pl.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", ""), ("Everyone", ""), ("ab_web_console_tip", ""), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/pt_PT.rs b/src/lang/pt_PT.rs index 6c875b36c4..c1f40cbae7 100644 --- a/src/lang/pt_PT.rs +++ b/src/lang/pt_PT.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", ""), ("Everyone", ""), ("ab_web_console_tip", ""), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/ptbr.rs b/src/lang/ptbr.rs index f36d17c123..01795ebf76 100644 --- a/src/lang/ptbr.rs +++ b/src/lang/ptbr.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", ""), ("Everyone", "Todos"), ("ab_web_console_tip", ""), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/ro.rs b/src/lang/ro.rs index e300c3c8a6..28aa015c98 100644 --- a/src/lang/ro.rs +++ b/src/lang/ro.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", ""), ("Everyone", ""), ("ab_web_console_tip", ""), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/ru.rs b/src/lang/ru.rs index 2b1e06b69f..1597998629 100644 --- a/src/lang/ru.rs +++ b/src/lang/ru.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", "Поля выше являются общими и видны другим."), ("Everyone", "Все"), ("ab_web_console_tip", "Больше в веб-консоли"), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/sk.rs b/src/lang/sk.rs index 63fc86a0cd..944a7bc3e8 100644 --- a/src/lang/sk.rs +++ b/src/lang/sk.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", "Vyššie uvedené polia sú zdieľané a viditeľné pre ostatných."), ("Everyone", "Každý"), ("ab_web_console_tip", "Viac na webovej konzole"), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/sl.rs b/src/lang/sl.rs index 2a70acb101..cbc15f35ee 100755 --- a/src/lang/sl.rs +++ b/src/lang/sl.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", ""), ("Everyone", ""), ("ab_web_console_tip", ""), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/sq.rs b/src/lang/sq.rs index 4ef83a0442..f6369c9dab 100644 --- a/src/lang/sq.rs +++ b/src/lang/sq.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", ""), ("Everyone", ""), ("ab_web_console_tip", ""), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/sr.rs b/src/lang/sr.rs index e89794082a..b38b2713dd 100644 --- a/src/lang/sr.rs +++ b/src/lang/sr.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", ""), ("Everyone", ""), ("ab_web_console_tip", ""), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/sv.rs b/src/lang/sv.rs index afd699432a..e40ddc8245 100644 --- a/src/lang/sv.rs +++ b/src/lang/sv.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", ""), ("Everyone", ""), ("ab_web_console_tip", ""), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/template.rs b/src/lang/template.rs index 22ecb63423..2c608cf1cf 100644 --- a/src/lang/template.rs +++ b/src/lang/template.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", ""), ("Everyone", ""), ("ab_web_console_tip", ""), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/th.rs b/src/lang/th.rs index 808cc659a7..20abcd6394 100644 --- a/src/lang/th.rs +++ b/src/lang/th.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", ""), ("Everyone", ""), ("ab_web_console_tip", ""), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/tr.rs b/src/lang/tr.rs index 40894ff3ef..cacaa15865 100644 --- a/src/lang/tr.rs +++ b/src/lang/tr.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", ""), ("Everyone", ""), ("ab_web_console_tip", ""), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/tw.rs b/src/lang/tw.rs index 9b5a381202..a759ac2135 100644 --- a/src/lang/tw.rs +++ b/src/lang/tw.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", "上述的欄位為共享且對其他人可見。"), ("Everyone", "所有人"), ("ab_web_console_tip", "打開 Web 控制台以進行更多操作"), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/ua.rs b/src/lang/ua.rs index 6600a65be4..0f4fc652ef 100644 --- a/src/lang/ua.rs +++ b/src/lang/ua.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", "Поля вище є спільними та видимі для інших."), ("Everyone", "Всі"), ("ab_web_console_tip", "Детальніше про веб-консоль"), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/vn.rs b/src/lang/vn.rs index 9f20430374..bd671bd8f1 100644 --- a/src/lang/vn.rs +++ b/src/lang/vn.rs @@ -600,5 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", ""), ("Everyone", ""), ("ab_web_console_tip", ""), + ("allow-only-conn-window-open-tip", ""), ].iter().cloned().collect(); } diff --git a/src/server/connection.rs b/src/server/connection.rs index 1584417850..a30ec708fb 100644 --- a/src/server/connection.rs +++ b/src/server/connection.rs @@ -956,6 +956,13 @@ impl Connection { if !self.check_whitelist(&addr).await { return false; } + #[cfg(not(any(target_os = "android", target_os = "ios")))] + if crate::is_server() && Config::get_option("allow-only-conn-window-open") == "Y" { + if crate::check_process("", false) { + self.send_login_error("The main window is not open").await; + return false; + } + } self.ip = addr.ip().to_string(); let mut msg_out = Message::new(); msg_out.set_hash(self.hash.clone()); From 0df4b39bcc7ffdc4d658beb1167d9508d2f04faa Mon Sep 17 00:00:00 2001 From: mehdi-song Date: Tue, 9 Apr 2024 14:07:56 +0330 Subject: [PATCH 12/20] Update fa.rs (#7662) --- src/lang/fa.rs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/lang/fa.rs b/src/lang/fa.rs index 60ce024063..4cf7b889fe 100644 --- a/src/lang/fa.rs +++ b/src/lang/fa.rs @@ -92,8 +92,8 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Refresh File", "به روزرسانی فایل"), ("Local", "محلی"), ("Remote", "از راه دور"), - ("Remote Computer", "سیستم میزبان"), - ("Local Computer", "سیستم راه دور"), + ("Remote Computer", "سیستم راه دور"), + ("Local Computer", "سیسستم محلی"), ("Confirm Delete", "تایید حذف"), ("Delete", "حذف"), ("Properties", "مشخصات"), @@ -112,10 +112,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Waiting", "انتظار"), ("Finished", "تکمیل شد"), ("Speed", "سرعت"), - ("Custom Image Quality", "سفارشی سازی کیفیت تصاویر"), + ("Custom Image Quality", "سفارشی سازی : کیفیت تصاویر"), ("Privacy mode", "حالت حریم خصوصی"), - ("Block user input", "بلاک کردن ورودی کاربر"), - ("Unblock user input", "آنبلاک کردن ورودی کاربر"), + ("Block user input", "بستن ورودی کاربر"), + ("Unblock user input", "بازکردن ورودی کاربر"), ("Adjust Window", "تنظیم پنجره"), ("Original", "اصل"), ("Shrink", "کوچک کردن"), @@ -124,14 +124,14 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("ScrollAuto", "پیمایش/اسکرول خودکار"), ("Good image quality", "کیفیت خوب تصویر"), ("Balanced", "متعادل"), - ("Optimize reaction time", "بهینه سازی زمان واکنش"), + ("Optimize reaction time", "بهینه سازی : زمان واکنش"), ("Custom", "سفارشی"), ("Show remote cursor", "نمایش مکان نما موس میزبان"), ("Show quality monitor", "نمایش کیفیت مانیتور"), ("Disable clipboard", " غیرفعالسازی کلیپبورد"), ("Lock after session end", "قفل کردن حساب کاربری سیستم عامل پس از پایان جلسه"), ("Insert", "افزودن"), - ("Insert Lock", "افزودن قفل"), + ("Insert Lock", "قفل کردن سیستم"), ("Refresh", "تازه سازی"), ("ID does not exist", "شناسه وجود ندارد"), ("Failed to connect to rendezvous server", "اتصال به سرور تولید شناسه انجام نشد"), @@ -352,7 +352,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Server", "سرور"), ("Direct IP Access", "IP دسترسی مستقیم به"), ("Proxy", "پروکسی"), - ("Apply", "ثبت"), + ("Apply", "اعمال تغییرات"), ("Disconnect all devices?", "همه دستگاه ها قطع شوند؟"), ("Clear", "پاک کردن"), ("Audio Input Device", "منبع صدا"), @@ -483,7 +483,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("System Sound", "صدای سیستم"), ("Default", "پیش فرض"), ("New RDP", "ریموت جدید"), - ("Fingerprint", "اثر انگشت"), + ("Fingerprint", "\n اثر انگشت"), ("Copy Fingerprint", "کپی کردن اثر انگشت"), ("no fingerprints", "بدون اثر انگشت"), ("Select a peer", "یک همتا را انتخاب کنید"), From f34a8ef0e58f3e982c837c194be04e63e779cf77 Mon Sep 17 00:00:00 2001 From: rustdesk Date: Tue, 9 Apr 2024 19:02:02 +0800 Subject: [PATCH 13/20] fix me --- flutter/macos/Runner.xcodeproj/project.pbxproj | 2 +- .../Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme | 2 +- src/server/connection.rs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/flutter/macos/Runner.xcodeproj/project.pbxproj b/flutter/macos/Runner.xcodeproj/project.pbxproj index 514baaebca..f38badcbb3 100644 --- a/flutter/macos/Runner.xcodeproj/project.pbxproj +++ b/flutter/macos/Runner.xcodeproj/project.pbxproj @@ -210,7 +210,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0920; - LastUpgradeCheck = 1430; + LastUpgradeCheck = 1510; ORGANIZATIONNAME = ""; TargetAttributes = { 33CC10EC2044A3C60003C045 = { diff --git a/flutter/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/flutter/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 12c2b8aa82..08643aee9b 100644 --- a/flutter/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/flutter/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ Date: Tue, 9 Apr 2024 19:33:39 +0800 Subject: [PATCH 14/20] fix check_process on mac since normal user can not get system's process's command line arguments --- src/common.rs | 8 +++++++- src/server/connection.rs | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/common.rs b/src/common.rs index e57aefe5c4..e743020310 100644 --- a/src/common.rs +++ b/src/common.rs @@ -1240,8 +1240,14 @@ pub async fn get_next_nonkeyexchange_msg( None } +#[allow(unused_mut)] #[cfg(not(any(target_os = "android", target_os = "ios")))] -pub fn check_process(arg: &str, same_uid: bool) -> bool { +pub fn check_process(arg: &str, mut same_uid: bool) -> bool { + #[cfg(target_os = "macos")] + if !crate::platform::is_root() { + log::warn!("Can not get other process's command line arguments on macos without root"); + same_uid = true; + } use hbb_common::sysinfo::System; let mut sys = System::new(); sys.refresh_processes(); diff --git a/src/server/connection.rs b/src/server/connection.rs index f5bc164823..ead9d22deb 100644 --- a/src/server/connection.rs +++ b/src/server/connection.rs @@ -958,7 +958,7 @@ impl Connection { } #[cfg(not(any(target_os = "android", target_os = "ios")))] if crate::is_server() && Config::get_option("allow-only-conn-window-open") == "Y" { - if !crate::check_process("", false) { + if !crate::check_process("", !crate::platform::is_root()) { self.send_login_error("The main window is not open").await; return false; } From 07ab8e508c8547d20fcd0c62264b1236eb2b7e05 Mon Sep 17 00:00:00 2001 From: rustdesk Date: Tue, 9 Apr 2024 19:48:58 +0800 Subject: [PATCH 15/20] fix me --- src/common.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common.rs b/src/common.rs index e743020310..39771c5416 100644 --- a/src/common.rs +++ b/src/common.rs @@ -1244,7 +1244,7 @@ pub async fn get_next_nonkeyexchange_msg( #[cfg(not(any(target_os = "android", target_os = "ios")))] pub fn check_process(arg: &str, mut same_uid: bool) -> bool { #[cfg(target_os = "macos")] - if !crate::platform::is_root() { + if !crate::platform::is_root() && !same_uid { log::warn!("Can not get other process's command line arguments on macos without root"); same_uid = true; } From 178d33155f450318ff7e591e9b80ed9ac7cbf361 Mon Sep 17 00:00:00 2001 From: rustdesk Date: Tue, 9 Apr 2024 20:38:07 +0800 Subject: [PATCH 16/20] fix check_process for empty arg since on mac, p.cmd() get "/Applications/RustDesk.app/Contents/MacOS/RustDesk", "XPC_SERVICE_NAME=com.carriez.RustDesk_server" --- src/common.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/common.rs b/src/common.rs index 39771c5416..4d2f4c62ba 100644 --- a/src/common.rs +++ b/src/common.rs @@ -1274,8 +1274,13 @@ pub fn check_process(arg: &str, mut same_uid: bool) -> bool { if same_uid && p.user_id() != my_uid { continue; } + // on mac, p.cmd() get "/Applications/RustDesk.app/Contents/MacOS/RustDesk", "XPC_SERVICE_NAME=com.carriez.RustDesk_server" let parg = if p.cmd().len() <= 1 { "" } else { &p.cmd()[1] }; - if arg == parg { + if arg.is_empty() { + if !parg.starts_with("--") { + return true; + } + } else if arg == parg { return true; } } From ead8a48436bbb26d97c1fadca04ccb1b2f681a58 Mon Sep 17 00:00:00 2001 From: RustDesk <71636191+rustdesk@users.noreply.github.com> Date: Wed, 10 Apr 2024 00:23:45 +0800 Subject: [PATCH 17/20] Update lang.rs --- src/lang.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lang.rs b/src/lang.rs index 106ba6badd..c53ac1c4f8 100644 --- a/src/lang.rs +++ b/src/lang.rs @@ -154,7 +154,7 @@ pub fn translate_locale(name: String, locale: &str) -> String { "ar" => ar::T.deref(), "bg" => bg::T.deref(), "he" => he::T.deref(), - "hr" => he::T.deref(), + "hr" => hr::T.deref(), _ => en::T.deref(), }; let (name, placeholder_value) = extract_placeholder(&name); From 7f58737f1f8c6e0f161595d1574b2c575dbb9bbd Mon Sep 17 00:00:00 2001 From: Integral Date: Tue, 9 Apr 2024 20:00:14 -0700 Subject: [PATCH 18/20] Update cn.rs (#7669) --- src/lang/cn.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lang/cn.rs b/src/lang/cn.rs index 79a173abaf..b350420b8e 100644 --- a/src/lang/cn.rs +++ b/src/lang/cn.rs @@ -600,6 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", "上述的字段為共享且对其他人可见。"), ("Everyone", "所有人"), ("ab_web_console_tip", "打开 Web 控制台以执行更多操作"), - ("allow-only-conn-window-open-tip", ""), + ("allow-only-conn-window-open-tip", "仅当 RustDesk 窗口打开时允许连接"), ].iter().cloned().collect(); } From ac79c45529138e63cae893ea9dfacae3858477d3 Mon Sep 17 00:00:00 2001 From: 21pages Date: Wed, 10 Apr 2024 14:04:12 +0800 Subject: [PATCH 19/20] remove tooltip of main window tab, opt some tooltip by raising its hierarchy (#7672) Signed-off-by: 21pages --- .../lib/desktop/pages/desktop_home_page.dart | 71 ++++++++++--------- .../lib/desktop/widgets/tabbar_widget.dart | 7 +- 2 files changed, 43 insertions(+), 35 deletions(-) diff --git a/flutter/lib/desktop/pages/desktop_home_page.dart b/flutter/lib/desktop/pages/desktop_home_page.dart index b56bc0c754..7395f4708a 100644 --- a/flutter/lib/desktop/pages/desktop_home_page.dart +++ b/flutter/lib/desktop/pages/desktop_home_page.dart @@ -298,19 +298,20 @@ class _DesktopHomePageState extends State RxBool hover = false.obs; return InkWell( onTap: DesktopTabPage.onAddSetting, - child: Obx( - () => CircleAvatar( - radius: 15, - backgroundColor: hover.value - ? Theme.of(context).scaffoldBackgroundColor - : Theme.of(context).colorScheme.background, - child: Tooltip( - message: translate('Settings'), - child: Icon( - Icons.more_vert_outlined, - size: 20, - color: hover.value ? textColor : textColor?.withOpacity(0.5), - )), + child: Tooltip( + message: translate('Settings'), + child: Obx( + () => CircleAvatar( + radius: 15, + backgroundColor: hover.value + ? Theme.of(context).scaffoldBackgroundColor + : Theme.of(context).colorScheme.background, + child: Icon( + Icons.more_vert_outlined, + size: 20, + color: hover.value ? textColor : textColor?.withOpacity(0.5), + ), + ), ), ), onHover: (value) => hover.value = value, @@ -371,31 +372,33 @@ class _DesktopHomePageState extends State ), AnimatedRotationWidget( onPressed: () => bind.mainUpdateTemporaryPassword(), - child: Obx(() => RotatedBox( - quarterTurns: 2, - child: Tooltip( - message: translate('Refresh Password'), - child: Icon( - Icons.refresh, - color: refreshHover.value - ? textColor - : Color(0xFFDDDDDD), - size: 22, - )))), + child: Tooltip( + message: translate('Refresh Password'), + child: Obx(() => RotatedBox( + quarterTurns: 2, + child: Icon( + Icons.refresh, + color: refreshHover.value + ? textColor + : Color(0xFFDDDDDD), + size: 22, + ))), + ), onHover: (value) => refreshHover.value = value, ).marginOnly(right: 8, top: 4), if (!bind.isDisableSettings()) InkWell( - child: Obx( - () => Tooltip( - message: translate('Change Password'), - child: Icon( - Icons.edit, - color: editHover.value - ? textColor - : Color(0xFFDDDDDD), - size: 22, - )).marginOnly(right: 8, top: 4), + child: Tooltip( + message: translate('Change Password'), + child: Obx( + () => Icon( + Icons.edit, + color: editHover.value + ? textColor + : Color(0xFFDDDDDD), + size: 22, + ).marginOnly(right: 8, top: 4), + ), ), onTap: () => DesktopSettingPage.switch2page(0), onHover: (value) => editHover.value = value, diff --git a/flutter/lib/desktop/widgets/tabbar_widget.dart b/flutter/lib/desktop/widgets/tabbar_widget.dart index 76777b19f2..fb13efbef8 100644 --- a/flutter/lib/desktop/widgets/tabbar_widget.dart +++ b/flutter/lib/desktop/widgets/tabbar_widget.dart @@ -865,6 +865,7 @@ class _ListView extends StatelessWidget { label: labelGetter == null ? Rx(tab.label) : labelGetter!(tab.label), + tabType: controller.tabType, selectedIcon: tab.selectedIcon, unselectedIcon: tab.unselectedIcon, closable: tab.closable, @@ -896,6 +897,7 @@ class _Tab extends StatefulWidget { final int index; final String tabInfoKey; final Rx label; + final DesktopTabType tabType; final IconData? selectedIcon; final IconData? unselectedIcon; final bool closable; @@ -914,6 +916,7 @@ class _Tab extends StatefulWidget { required this.index, required this.tabInfoKey, required this.label, + required this.tabType, this.selectedIcon, this.unselectedIcon, this.tabBuilder, @@ -953,7 +956,9 @@ class _TabState extends State<_Tab> with RestorationMixin { return ConstrainedBox( constraints: BoxConstraints(maxWidth: widget.maxLabelWidth ?? 200), child: Tooltip( - message: translate(widget.label.value), + message: widget.tabType == DesktopTabType.main + ? '' + : translate(widget.label.value), child: Text( translate(widget.label.value), textAlign: TextAlign.center, From c63f1dfc53a003521e81296c326d26caa52e9327 Mon Sep 17 00:00:00 2001 From: solokot Date: Wed, 10 Apr 2024 10:19:19 +0300 Subject: [PATCH 20/20] Update ru.rs (#7674) --- src/lang/ru.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lang/ru.rs b/src/lang/ru.rs index 1597998629..00c4ad0de4 100644 --- a/src/lang/ru.rs +++ b/src/lang/ru.rs @@ -600,6 +600,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("share_warning_tip", "Поля выше являются общими и видны другим."), ("Everyone", "Все"), ("ab_web_console_tip", "Больше в веб-консоли"), - ("allow-only-conn-window-open-tip", ""), + ("allow-only-conn-window-open-tip", "Разрешать подключение только при открытом окне RustDesk"), ].iter().cloned().collect(); }