Files
rustdesk/src/lang/sr.rs
Alessandro De Blasis 482840b8bb feat(ui): custom scale mode with inline controls and live apply (#13045)
* feat(ui): custom scale mode with inline controls and live apply

Signed-off-by: Alessandro De Blasis <alex@deblasis.net>

* Update flutter/lib/models/model.dart

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update flutter/lib/desktop/widgets/remote_toolbar.dart

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* refactor(dialog): remove unused showCustomScaleDialog function

Signed-off-by: Alessandro De Blasis <alex@deblasis.net>

* feat(ui): enhance custom scale controls with live updates and improved UI

- Introduced a reactive custom scale percentage using RxInt.
- Added initialization of custom scale from stored options after the widget builds.
- Updated viewStyle method to conditionally display custom controls based on selection.
- Implemented a debouncer for smoother scale adjustments.
- Enhanced slider UI with custom thumb shape and improved button interactions.

This update improves user experience by allowing real-time adjustments to the custom scale settings.

Signed-off-by: Alessandro De Blasis <alex@deblasis.net>

* refactor(remote_toolbar): improve widget lifecycle management and enhance slider dimensions

- Moved initialization of custom scale percentage to initState for better lifecycle handling.
- Updated slider thumb dimensions and layout for improved UI consistency.
- Added dispose method to clean up resources in custom scale controls.

These changes enhance the overall performance and user experience of the remote toolbar.

Signed-off-by: Alessandro De Blasis <alex@deblasis.net>

* feat(remote_toolbar): enhance scroll behavior and improve slider thumb rendering

- Introduced a new state variable to manage scroll enablement based on canvas model changes.
- Updated the return value of the viewStyle method to include the scroll enablement status.
- Refactored the slider thumb shape for better performance and visual consistency.
- Improved the initialization of image overflow detection in the CanvasModel.

These changes enhance the user experience by providing dynamic scroll control and a more responsive UI.

Signed-off-by: Alessandro De Blasis <alex@deblasis.net>

* Update flutter/lib/desktop/widgets/remote_toolbar.dart

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* refactor(scale): introduce utility functions for custom scale management for DRY

- Added a new file `scale.dart` containing utility functions to clamp, parse, and compute custom scale percentages.
- Refactored the `CanvasModel` and `_DisplayMenuState` to utilize the new utility functions for fetching and applying custom scale settings.
- Improved code readability and maintainability by centralizing scale-related logic.

These changes enhance the handling of custom scale settings across the application.

Signed-off-by: Alessandro De Blasis alex@deblasis.net
Signed-off-by: Alessandro De Blasis <alex@deblasis.net>

* Update flutter/lib/utils/scale.dart

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update flutter/lib/models/model.dart

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update flutter/lib/desktop/widgets/remote_toolbar.dart

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update flutter/lib/desktop/widgets/remote_toolbar.dart

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update flutter/lib/desktop/widgets/remote_toolbar.dart

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update flutter/lib/models/model.dart

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* chore: Remove unused import of 'uuid' in scale.dart

Signed-off-by: Alessandro De Blasis alex@deblasis.net
Signed-off-by: Alessandro De Blasis <alex@deblasis.net>

* feat(remote_toolbar): implement nonlinear mapping for custom scale slider

- Added piecewise mapping functions to convert normalized slider positions to custom scale percentages and vice versa.
- Introduced snapping behavior for the slider to enhance user experience.
- Updated the slider's minimum and maximum values to align with the new mapping logic.
- Adjusted the clamping function to ensure the minimum percentage is 10.

These changes improve the precision and usability of the custom scale slider in the remote toolbar.

Signed-off-by: Alessandro De Blasis <alex@deblasis.net>

* fix(scale): update minimum scale percentage to 5

- Adjusted the minimum scale percentage in both the remote toolbar and the clamping function to improve consistency and usability.
- This change aligns the clamping logic with the updated minimum value for the custom scale slider.

Signed-off-by: Alessandro De Blasis <alex@deblasis.net>

* Update flutter/lib/desktop/widgets/remote_toolbar.dart

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* refactor(scale): centralize custom scale constants in consts.dart

- Moved piecewise mapping constants for the custom scale slider from the remote toolbar to consts.dart for better organization and maintainability.
- Introduced additional constants related to custom scale behavior, including minimum, pivot, and maximum percentages, as well as debounce duration.
- Updated the remote toolbar to reference these centralized constants, improving code clarity and reducing duplication.

These changes enhance the structure and readability of the custom scale implementation.

Signed-off-by: Alessandro De Blasis <alex@deblasis.net>

* refactor(consts): remove duplicate custom scale percent key definition

- Eliminated redundant declaration of the custom scale percent key in consts.dart, ensuring a single source of truth for this constant.
- This change improves code clarity and maintainability by reducing duplication.

Signed-off-by: Alessandro De Blasis <alex@deblasis.net>

* refactor(scale): update clamping logic to use centralized constants

- Modified the clamping function to utilize the newly defined constants for minimum and maximum scale percentages, enhancing code maintainability and clarity.
- This change ensures consistency across the application by referencing a single source for scale limits.

Signed-off-by: Alessandro De Blasis <alex@deblasis.net>

* Enhance RdoMenuButton behavior for custom scale selection

- Updated the RdoMenuButton to include a new `closeOnActivate` parameter, allowing the submenu to remain open when selecting custom scale options.
- Modified the onChanged callback to conditionally trigger a rebuild when entering custom mode, improving user experience by immediately displaying the slider controls.

These changes streamline the interaction with the custom scale feature in the remote toolbar.

Signed-off-by: Alessandro De Blasis <alex@deblasis.net>

* refactor(toolbar):  _DisplayMenuState to simplify scroll handling

- Removed the _scrollEnabled state variable and its associated logic, streamlining the component's state management.
- Updated the RdoMenuButton onChanged callbacks to directly reference the canvasModel's imageOverflow value, enhancing responsiveness and reducing complexity.

These changes improve code clarity and maintainability in the remote toolbar's display menu.

Signed-off-by: Alessandro De Blasis <alex@deblasis.net>

* feat(lang): Add translations for custom scale features in multiple languages

- Introduced new entries for "Scale custom", "Custom scale slider", "Decrease", and "Increase" in various language files to support the custom scale functionality.
- This update enhances the localization of the application, ensuring users can interact with the custom scale features in their preferred language.

Signed-off-by: Alessandro De Blasis <alex@deblasis.net>

* feat(lang): Add translations for custom scale features in Catalan and Romanian

- Updated language files for Catalan and Romanian to include translations for "Custom scale slider", "Decrease", and "Increase".
- This enhancement improves the localization of the application, allowing users to interact with custom scale features in their native languages.

Signed-off-by: Alessandro De Blasis <alex@deblasis.net>

* fix(model): Correct error logging in getSessionCustomScale method

- Updated the error logging statement in the getSessionCustomScale method to properly interpolate the exception message, improving debugging clarity.
- This change ensures that error messages are more informative, aiding in troubleshooting issues related to session scaling.

Signed-off-by: Alessandro De Blasis <alex@deblasis.net>

* refactor(scale): Simplify clamping logic for custom scale percent

- Updated the clampCustomScalePercent function to use the built-in clamp method, improving code readability and maintainability.
- This change ensures consistent clamping behavior across the application by centralizing the logic for valid scale ranges.

Signed-off-by: Alessandro De Blasis <alex@deblasis.net>

* refactor(scale): Remove unused import for web bridge

- Eliminated the conditional import of the web bridge from scale.dart, as it is no longer necessary. This change helps to clean up the code and improve maintainability by removing unused dependencies.

Signed-off-by: Alessandro De Blasis <alex@deblasis.net>

* chore(model): typo

Signed-off-by: Alessandro De Blasis <alex@deblasis.net>

* Update flutter/lib/desktop/widgets/remote_toolbar.dart

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* chore(toolbar): Clarify precision for scale adjustments in remote toolbar

- Added comments to clarify the use of a wide range of divisions for the scale slider, allowing for ~1% precision increments. This change improves user experience by enabling more precise scale value settings, reducing the need for fine-tuning with +/- buttons.

Signed-off-by: Alessandro De Blasis <alex@deblasis.net>

* Update flutter/lib/models/model.dart

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update flutter/lib/desktop/widgets/remote_toolbar.dart

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix(model): Enhance error logging in getSessionCustomScale method

- Improved error logging by adding stack trace output to debugPrintStack, enhancing debugging capabilities for session scaling issues.
- This change provides clearer insights into errors encountered during scale retrieval, aiding in troubleshooting.

Signed-off-by: Alessandro De Blasis <alex@deblasis.net>

* refactor(toolbar): Simplify custom scale percent retrieval in remote toolbar

- Replaced the previous method of retrieving the custom scale percent with a new function, getSessionCustomScalePercent, enhancing code clarity and maintainability.
- This change streamlines the process of obtaining the scale value, ensuring a more efficient and readable implementation.

Signed-off-by: Alessandro De Blasis <alex@deblasis.net>

* Update flutter/lib/desktop/widgets/remote_toolbar.dart

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Signed-off-by: Alessandro De Blasis <alex@deblasis.net>
Signed-off-by: Alessandro De Blasis alex@deblasis.net
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2025-10-08 14:40:20 +08:00

719 lines
33 KiB
Rust

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", "Dozvoli servis"),
("Start service", "Pokreni servis"),
("Service is running", "Servis je pokrenut"),
("Service is not running", "Servis nije pokrenut"),
("not_ready_status", "Nije spremno. Proverite konekciju."),
("Control Remote Desktop", "Upravljanje udaljenom radnom površinom"),
("Transfer file", "Prenos fajla"),
("Connect", "Spajanje"),
("Recent sessions", "Poslednje sesije"),
("Address book", "Adresar"),
("Confirmation", "Potvrda"),
("TCP tunneling", "TCP tunel"),
("Remove", "Ukloni"),
("Refresh random password", "Osveži slučajnu lozinku"),
("Set your own password", "Postavi lozinku"),
("Enable keyboard/mouse", "Dozvoli tastaturu/miša"),
("Enable clipboard", "Dozvoli clipboard"),
("Enable file transfer", "Dozvoli prenos fajlova"),
("Enable TCP tunneling", "Dozvoli TCP tunel"),
("IP Whitelisting", "IP pouzdana lista"),
("ID/Relay Server", "ID/Posredni server"),
("Import server config", "Import server konfiguracije"),
("Export Server Config", "Eksport server konfiguracije"),
("Import server configuration successfully", "Import server konfiguracije uspešan"),
("Export server configuration successfully", "Eksport server konfiguracije uspešan"),
("Invalid server configuration", "Pogrešna konfiguracija servera"),
("Clipboard is empty", "Clipboard je prazan"),
("Stop service", "Stopiraj servis"),
("Change ID", "Promeni ID"),
("Your new ID", ""),
("length %min% to %max%", ""),
("starts with a letter", ""),
("allowed characters", ""),
("id_change_tip", "Dozvoljeni su samo a-z, A-Z, 0-9, - (dash) i _ (donja crta) znakovi. Prvi znak mora biti slovo a-z, A-Z. Dužina je od 6 do 16."),
("Website", "Web sajt"),
("About", "O programu"),
("Slogan_tip", ""),
("Privacy Statement", ""),
("Mute", "Utišaj"),
("Build Date", ""),
("Version", ""),
("Home", ""),
("Audio Input", "Audio ulaz"),
("Enhancements", "Proširenja"),
("Hardware Codec", "Hardverski kodek"),
("Adaptive bitrate", "Prilagodljiva gustina podataka"),
("ID Server", "ID server"),
("Relay Server", "Posredni server"),
("API Server", "API server"),
("invalid_http", "mora početi sa http:// ili https://"),
("Invalid IP", "Nevažeća IP"),
("Invalid format", "Pogrešan format"),
("server_not_support", "Server još uvek 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 da unesete ponovo?"),
("Connection Error", "Greška u konekciji"),
("Error", "Greška"),
("Reset by the peer", "Prekinuto sa druge strane"),
("Connecting...", "Povezivanje..."),
("Connection in progress. Please wait.", "Povezivanje u toku. Molimo sačekajte."),
("Please try 1 minute later", "Pokušajte minut kasnije"),
("Login Error", "Greška u prijavljivanju"),
("Successful", "Uspešno"),
("Connected, waiting for image...", "Spojeno, sačekajte sliku..."),
("Name", "Ime"),
("Type", "Tip"),
("Modified", "Izmenjeno"),
("Size", "Veličina"),
("Show Hidden Files", "Prikaži skrivene datoteke"),
("Receive", "Prijem"),
("Send", "Slanje"),
("Refresh File", "Osveži datoteku"),
("Local", "Lokalno"),
("Remote", "Udaljeno"),
("Remote Computer", "Udaljeni računar"),
("Local Computer", "Lokalni računar"),
("Confirm Delete", "Potvrdite brisanje"),
("Delete", "Brisanje"),
("Properties", "Osobine"),
("Multi Select", "Višestruko selektovanje"),
("Select All", "Selektuj sve"),
("Unselect All", "Deselektuj sve"),
("Empty Directory", "Prazan direktorijum"),
("Not an empty directory", "Nije prazan direktorijum"),
("Are you sure you want to delete this file?", "Da li ste sigurni da želite da obrišete ovu datoteku?"),
("Are you sure you want to delete this empty directory?", "Da li ste sigurni da želite da obrišete ovaj prazan direktorijum?"),
("Are you sure you want to delete the file of this directory?", "Da li ste sigurni da želite da obrišete datoteku ovog direktorijuma?"),
("Do this for all conflicts", "Uradi ovo za sve konflikte"),
("This is irreversible!", "Ovo je nepovratno"),
("Deleting", "Brisanje"),
("files", "datoteke"),
("Waiting", "Čekanje"),
("Finished", "Završeno"),
("Speed", "Brzina"),
("Custom Image Quality", "Korisnički kvalitet slike"),
("Privacy mode", "Mod 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", "Skrol linija"),
("ScrollAuto", "Auto skrol"),
("Good image quality", "Dobar kvalitet slike"),
("Balanced", "Balansirano"),
("Optimize reaction time", "Optimizuj vreme reakcije"),
("Custom", "Korisnički"),
("Show remote cursor", "Prikaži udaljeni kursor"),
("Show quality monitor", "Prikaži monitor kvaliteta"),
("Disable clipboard", "Zabrani clipboard"),
("Lock after session end", "Zaključaj po završetku sesije"),
("Insert Ctrl + Alt + Del", "Ctrl + Alt + Del umetanje"),
("Insert Lock", "Zaključaj umetanje"),
("Refresh", "Osveži"),
("ID does not exist", "ID ne postoji"),
("Failed to connect to rendezvous server", "Greška u spajanju na server za povezivanje"),
("Please try later", "Molimo pokušajte kasnije"),
("Remote desktop is offline", "Udaljeni ekran je isključen"),
("Key mismatch", "Pogrešan ključ"),
("Timeout", "Isteklo vreme"),
("Failed to connect to relay server", "Greška u spajanju na posredni server"),
("Failed to connect via rendezvous server", "Greška u spajanju preko servera za povezivanje"),
("Failed to connect via relay server", "Greška u spajanju preko posrednog servera"),
("Failed to make direct connection to remote desktop", "Greška u direktnom spajanju na udaljenu radnu površinu"),
("Set Password", "Postavi lozinku"),
("OS Password", "OS lozinka"),
("install_tip", "Zbog UAC RustDesk ne može raditi pravilno u nekim slučajevima. Da biste prevazišli UAC, kliknite taster ispod da instalirate RustDesk na sistem."),
("Click to upgrade", "Klik za nadogradnju"),
("Configure", "Konfigurisanje"),
("config_acc", "Da biste daljinski kontrolisali radnu površinu, RustDesk-u treba da dodelite \"Accessibility\" prava."),
("config_screen", "Da biste daljinski pristupili radnoj površini, RustDesk-u treba da dodelite \"Screen Recording\" prava."),
("Installing ...", "Instaliranje..."),
("Install", "Instaliraj"),
("Installation", "Instalacija"),
("Installation Path", "Putanja za instalaciju"),
("Create start menu shortcuts", "Kreiraj prečice u meniju"),
("Create desktop icon", "Kreiraj ikonicu na radnoj površini"),
("agreement_tip", "Pokretanjem instalacije prihvatate ugovor o licenciranju."),
("Accept and Install", "Prihvati i instaliraj"),
("End-user license agreement", "Ugovor sa krajnjim korisnikom"),
("Generating ...", "Generisanje..."),
("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", "Promeni lokalni port"),
("setup_server_tip", "Za brže spajanje, molimo da koristite svoj server"),
("Too short, at least 6 characters.", "Prekratko, najmanje 6 znakova."),
("The confirmation is not identical.", "Potvrda nije identična"),
("Permissions", "Dozvole"),
("Accept", "Prihvati"),
("Dismiss", "Odbaci"),
("Disconnect", "Raskini konekciju"),
("Enable file copy and paste", "Dozvoli kopiranje i lepljenje fajlova"),
("Connected", "Spojeno"),
("Direct and encrypted connection", "Direktna i kriptovana konekcija"),
("Relayed and encrypted connection", "Posredna i kriptovana konekcija"),
("Direct and unencrypted connection", "Direktna i nekriptovana konekcija"),
("Relayed and unencrypted connection", "Posredna i nekriptovana konekcija"),
("Enter Remote ID", "Unesite ID udaljenog uređaja"),
("Enter your password", "Unesite svoju lozinku"),
("Logging in...", "Prijava..."),
("Enable RDP session sharing", "Dozvoli deljenje RDP sesije"),
("Auto Login", "Auto prijavljivanje (Važeće samo ako ste postavili \"Lock after session end\")"),
("Enable direct IP access", "Dozvoli direktan pristup preko IP"),
("Rename", "Preimenuj"),
("Space", "Prazno"),
("Create desktop shortcut", "Kreiraj prečicu na radnoj površini"),
("Change Path", "Promeni putanju"),
("Create Folder", "Kreiraj direktorijum"),
("Please enter the folder name", "Unesite ime direktorijuma"),
("Fix it", "Popravi ga"),
("Warning", "Upozorenje"),
("Login screen using Wayland is not supported", "Ekran za prijavu koji koristi Wayland nije podržan"),
("Reboot required", "Potreban je restart"),
("Unsupported display server", "Nepodržan server 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 raskinuo konekciju"),
("Enable remote configuration modification", "Dozvoli modifikaciju udaljene konfiguracije"),
("Run without install", "Pokreni bez instalacije"),
("Connect via relay", ""),
("Always connect via relay", "Uvek se spoj preko posrednika"),
("whitelist_tip", "Samo dozvoljene IP mi mogu pristupiti"),
("Login", "Prijava"),
("Verify", ""),
("Remember me", ""),
("Trust this device", ""),
("Verification code", ""),
("verification_tip", ""),
("Logout", "Odjava"),
("Tags", "Oznake"),
("Search ID", "Traži ID"),
("whitelist_sep", "Odvojeno zarezima, tačka zarezima, praznim mestima ili novim redovima"),
("Add ID", "Dodaj ID"),
("Add Tag", "Dodaj oznaku"),
("Unselect all tags", "Odselektuj sve oznake"),
("Network error", "Greška na mreži"),
("Username missed", "Korisničko ime promašeno"),
("Password missed", "Lozinka promašena"),
("Wrong credentials", "Pogrešno korisničko ime ili lozinka"),
("The verification code is incorrect or has expired", ""),
("Edit Tag", "Izmeni oznaku"),
("Forget Password", "Zaboravi lozinku"),
("Favorites", "Favoriti"),
("Add to Favorites", "Dodaj u favorite"),
("Remove from Favorites", "Izbaci iz favorita"),
("Empty", "Prazno"),
("Invalid folder name", "Pogrešno ime direktorijuma"),
("Socks5 Proxy", "Socks5 proksi"),
("Socks5/Http(s) Proxy", "Socks5/Http(s) proksi"),
("Discovered", "Otkriveno"),
("install_daemon_tip", "Za pokretanje pri startu sistema, treba da instalirate sistemski servis."),
("Remote ID", "Udaljeni ID"),
("Paste", "Nalepi"),
("Paste here?", "Nalepi ovde?"),
("Are you sure to close the connection?", "Da li ste sigurni da želite da zatvorite konekciju?"),
("Download new version", "Preuzmi novu verziju"),
("Touch mode", "Mod na dodir"),
("Mouse mode", "Miš mod"),
("One-Finger Tap", "Pritisak jednim prstom"),
("Left Mouse", "Levi miš"),
("One-Long Tap", "Dugi pritisak"),
("Two-Finger Tap", "Pritisak sa dva prsta"),
("Right Mouse", "Desni miš"),
("One-Finger Move", "Pomeranje jednim prstom"),
("Double Tap & Move", "Dupli pritisak i pomeranje"),
("Mouse Drag", "Prevlačenje mišem"),
("Three-Finger vertically", "Sa tri prsta vertikalno"),
("Mouse Wheel", "Točkić miša"),
("Two-Finger Move", "Pomeranje sa dva prsta"),
("Canvas Move", "Pomeranje pozadine"),
("Pinch to Zoom", "Stisnite za zumiranje"),
("Canvas Zoom", "Zumiranje pozadine"),
("Reset canvas", "Resetuj pozadinu"),
("No permission of file transfer", "Nemate pravo prenosa datoteka"),
("Note", "Primedba"),
("Connection", "Konekcija"),
("Share screen", "Podeli ekran"),
("Chat", "Dopisivanje"),
("Total", "Ukupno"),
("items", "stavki"),
("Selected", "Izabrano"),
("Screen Capture", "Snimanje ekrana"),
("Input Control", "Kontrola unosa"),
("Audio Capture", "Snimanje zvuka"),
("Do you accept?", "Prihvatate?"),
("Open System Setting", "Postavke otvorenog sistema"),
("How to get Android input permission?", "Kako dobiti pristup za Android unos?"),
("android_input_permission_tip1", "Da bi daljinski uređaj kontrolisao vaš Android uređaj preko miša ili na dodir, treba da dozvolite RustDesk-u da koristi \"Accessibility\" servis."),
("android_input_permission_tip2", "Molimo pređite na sledeću stranicu sistemskih podešavanja, pronađite i unesite [Installed Services], uključite [RustDesk Input] servis."),
("android_new_connection_tip", "Primljen je novi zahtev za upravljanje, koji želi da upravlja ovim vašim uređajem."),
("android_service_will_start_tip", "Uključenje \"Screen Capture\" automatski će pokrenuti servis, dozvoljavajući drugim uređajima da zahtevaju spajanje na vaš uređaj."),
("android_stop_service_tip", "Zatvaranje servisa automatski će zatvoriti sve uspostavljene konekcije."),
("android_version_audio_tip", "Tekuća Android verzija ne podržava audio snimanje, molimo nadogradite na Android 10 ili veći."),
("android_start_service_tip", ""),
("android_permission_may_not_change_tip", ""),
("Account", "Nalog"),
("Overwrite", "Prepiši preko"),
("This file exists, skip or overwrite this file?", "Ova datoteka postoji, preskoči ili prepiši preko?"),
("Quit", "Izlaz"),
("Help", "Pomoć"),
("Failed", "Greška"),
("Succeeded", "Uspešno"),
("Someone turns on privacy mode, exit", "Neko je uključio mod privatnosti, izlaz."),
("Unsupported", "Nepodržano"),
("Peer denied", "Klijent zabranjen"),
("Please install plugins", "Molimo instalirajte dodatke"),
("Peer exit", "Klijent 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 optimizacije baterije"),
("android_open_battery_optimizations_tip", "Ako želite da onemogućite ovu funkciju, molimo idite na sledeću stranicu za podešavanje RustDesk aplikacije, pronađite i uđite u [Battery], isključite [Unrestricted]"),
("Start on boot", ""),
("Start the screen sharing service on boot, requires special permissions", ""),
("Connection not allowed", "Konekcija nije dozvoljena"),
("Legacy mode", "Zastareli mod"),
("Map mode", "Mod mapiranja"),
("Translate mode", "Mod prevođenja"),
("Use permanent password", "Koristi trajnu lozinku"),
("Use both passwords", "Koristi obe lozinke"),
("Set permanent password", "Postavi trajnu lozinku"),
("Enable remote restart", "Omogući daljinsko restartovanje"),
("Restart remote device", "Restartuj daljinski uređaj"),
("Are you sure you want to restart", "Da li ste sigurni da želite restart"),
("Restarting remote device", "Restartovanje daljinskog uređaja"),
("remote_restarting_tip", "Udaljeni uređaj se restartuje, molimo zatvorite ovu poruku i ponovo se kasnije povežite trajnom šifrom"),
("Copied", "Kopirano"),
("Exit Fullscreen", "Napusti mod celog ekrana"),
("Fullscreen", "Mod celog ekrana"),
("Mobile Actions", "Mobilne akcije"),
("Select Monitor", "Izbor monitora"),
("Control Actions", "Upravljačke akcije"),
("Display Settings", "Postavke prikaza"),
("Ratio", "Odnos"),
("Image Quality", "Kvalitet slike"),
("Scroll Style", "Stil skrolovanja"),
("Show Toolbar", ""),
("Hide Toolbar", ""),
("Direct Connection", "Direktna konekcija"),
("Relay Connection", "Posredna konekcija"),
("Secure Connection", "Bezbedna konekcija"),
("Insecure Connection", "Nebezbedna konekcija"),
("Scale original", "Skaliraj original"),
("Scale adaptive", "Adaptivno skaliranje"),
("General", "Uopšteno"),
("Security", "Bezbednost"),
("Theme", "Tema"),
("Dark Theme", "Tamna tema"),
("Light Theme", ""),
("Dark", "Tamno"),
("Light", "Svetlo"),
("Follow System", "Prema sistemu"),
("Enable hardware codec", "Omogući hardverski kodek"),
("Unlock Security Settings", "Otključaj postavke bezbednosti"),
("Enable audio", "Dozvoli zvuk"),
("Unlock Network Settings", "Otključaj postavke mreže"),
("Server", "Server"),
("Direct IP Access", "Direktan IP pristup"),
("Proxy", "Proksi"),
("Apply", "Primeni"),
("Disconnect all devices?", "Otkači sve uređaju?"),
("Clear", "Obriši"),
("Audio Input Device", "Uređaj za ulaz zvuka"),
("Use IP Whitelisting", "Koristi listu pouzdanih IP"),
("Network", "Mreža"),
("Pin Toolbar", ""),
("Unpin Toolbar", ""),
("Recording", "Snimanje"),
("Directory", "Direktorijum"),
("Automatically record incoming sessions", "Automatski snimaj dolazne sesije"),
("Automatically record outgoing sessions", ""),
("Change", "Promeni"),
("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", "Zabrani LAN otkrivanje"),
("Write a message", "Napiši poruku"),
("Prompt", "Prompt"),
("Please wait for confirmation of UAC...", "Molimo sačekajte UAC potvrdu..."),
("elevated_foreground_window_tip", "Tekući prozor udaljene radne površine zahteva veću privilegiju za rad, tako da trenutno nije moguće koristiti miša i tastaturu. Možete zahtevati od udaljenog korisnika da minimizira aktivni prozor, ili kliknuti na taster za podizanje privilegija u prozoru za rad sa konekcijom. Da biste prevazišli ovaj problem, preporučljivo je da instalirate softver na udaljeni uređaj."),
("Disconnected", "Odspojeno"),
("Other", "Ostalo"),
("Confirm before closing multiple tabs", "Potvrda pre zatvaranja više kartica"),
("Keyboard Settings", "Postavke tastature"),
("Full Access", "Pun pristup"),
("Screen Share", "Deljenje ekrana"),
("Wayland requires Ubuntu 21.04 or higher version.", "Wayland zahteva Ubuntu 21.04 ili veću verziju"),
("Wayland requires higher version of linux distro. Please try X11 desktop or change your OS.", "Wayland zahteva veću verziju Linux distribucije. Molimo pokušajte X11 ili promenite OS."),
("JumpLink", "Vidi"),
("Please Select the screen to be shared(Operate on the peer side).", "Molimo izaberite ekran koji će biti podeljen (Za rad na klijent strani)"),
("Show RustDesk", "Prikazi RustDesk"),
("This PC", "Ovaj PC"),
("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 sačekajte da udaljena strana prihvati vaš zahtev za sesijom..."),
("One-time Password", "Jednokratna lozinka"),
("Use one-time password", "Koristi jednokratnu lozinku"),
("One-time password length", "Dužina jednokratne lozinke"),
("Request access to your device", "Zahtev za pristup vašem uređaju"),
("Hide connection management window", "Sakrij prozor za uređivanje konekcije"),
("hide_cm_tip", "Skrivanje dozvoljeno samo prihvatanjem sesije preko lozinke i korišćenjem trajne lozinke"),
("wayland_experiment_tip", "Wayland eksperiment savet"),
("Right click to select tabs", "Desni klik za izbor kartica"),
("Skipped", ""),
("Add to address book", "Dodaj u adresar"),
("Group", "Grupa"),
("Search", "Pretraga"),
("Closed manually by web console", ""),
("Local keyboard type", ""),
("Select local keyboard type", ""),
("software_render_tip", ""),
("Always use software rendering", ""),
("config_input", ""),
("config_microphone", ""),
("request_elevation_tip", ""),
("Wait", ""),
("Elevation Error", ""),
("Ask the remote user for authentication", ""),
("Choose this if the remote account is administrator", ""),
("Transmit the username and password of administrator", ""),
("still_click_uac_tip", ""),
("Request Elevation", ""),
("wait_accept_uac_tip", ""),
("Elevate successfully", ""),
("uppercase", ""),
("lowercase", ""),
("digit", ""),
("special character", ""),
("length>=8", ""),
("Weak", ""),
("Medium", ""),
("Strong", ""),
("Switch Sides", ""),
("Please confirm if you want to share your desktop?", ""),
("Display", ""),
("Default View Style", ""),
("Default Scroll Style", ""),
("Default Image Quality", ""),
("Default Codec", ""),
("Bitrate", ""),
("FPS", ""),
("Auto", ""),
("Other Default Options", ""),
("Voice call", ""),
("Text chat", ""),
("Stop voice call", ""),
("relay_hint_tip", ""),
("Reconnect", ""),
("Codec", ""),
("Resolution", ""),
("No transfers in progress", ""),
("Set one-time password length", ""),
("RDP Settings", ""),
("Sort by", ""),
("New Connection", ""),
("Restore", ""),
("Minimize", ""),
("Maximize", ""),
("Your Device", ""),
("empty_recent_tip", ""),
("empty_favorite_tip", ""),
("empty_lan_tip", ""),
("empty_address_book_tip", ""),
("Empty Username", ""),
("Empty Password", ""),
("Me", ""),
("identical_file_tip", ""),
("show_monitors_tip", ""),
("View Mode", ""),
("login_linux_tip", ""),
("verify_rustdesk_password_tip", ""),
("remember_account_tip", ""),
("os_account_desk_tip", ""),
("OS Account", ""),
("another_user_login_title_tip", ""),
("another_user_login_text_tip", ""),
("xorg_not_found_title_tip", ""),
("xorg_not_found_text_tip", ""),
("no_desktop_title_tip", ""),
("no_desktop_text_tip", ""),
("No need to elevate", ""),
("System Sound", ""),
("Default", ""),
("New RDP", ""),
("Fingerprint", ""),
("Copy Fingerprint", ""),
("no fingerprints", ""),
("Select a peer", ""),
("Select peers", ""),
("Plugins", ""),
("Uninstall", ""),
("Update", ""),
("Enable", ""),
("Disable", ""),
("Options", ""),
("resolution_original_tip", ""),
("resolution_fit_local_tip", ""),
("resolution_custom_tip", ""),
("Collapse toolbar", ""),
("Accept and Elevate", ""),
("accept_and_elevate_btn_tooltip", ""),
("clipboard_wait_response_timeout_tip", ""),
("Incoming connection", ""),
("Outgoing connection", ""),
("Exit", ""),
("Open", ""),
("logout_tip", ""),
("Service", ""),
("Start", ""),
("Stop", ""),
("exceed_max_devices", ""),
("Sync with recent sessions", ""),
("Sort tags", ""),
("Open connection in new tab", ""),
("Move tab to new window", ""),
("Can not be empty", ""),
("Already exists", ""),
("Change Password", ""),
("Refresh Password", ""),
("ID", ""),
("Grid View", ""),
("List View", ""),
("Select", ""),
("Toggle Tags", ""),
("pull_ab_failed_tip", ""),
("push_ab_failed_tip", ""),
("synced_peer_readded_tip", ""),
("Change Color", ""),
("Primary Color", ""),
("HSV Color", ""),
("Installation Successful!", ""),
("Installation failed!", ""),
("Reverse mouse wheel", ""),
("{} sessions", ""),
("scam_title", ""),
("scam_text1", ""),
("scam_text2", ""),
("Don't show again", ""),
("I Agree", ""),
("Decline", ""),
("Timeout in minutes", ""),
("auto_disconnect_option_tip", ""),
("Connection failed due to inactivity", ""),
("Check for software update on startup", ""),
("upgrade_rustdesk_server_pro_to_{}_tip", ""),
("pull_group_failed_tip", ""),
("Filter by intersection", ""),
("Remove wallpaper during incoming sessions", ""),
("Test", ""),
("display_is_plugged_out_msg", ""),
("No displays", ""),
("Open in new window", ""),
("Show displays as individual windows", ""),
("Use all my displays for the remote session", ""),
("selinux_tip", ""),
("Change view", ""),
("Big tiles", ""),
("Small tiles", ""),
("List", ""),
("Virtual display", ""),
("Plug out all", ""),
("True color (4:4:4)", ""),
("Enable blocking user input", ""),
("id_input_tip", ""),
("privacy_mode_impl_mag_tip", ""),
("privacy_mode_impl_virtual_display_tip", ""),
("Enter privacy mode", ""),
("Exit privacy mode", ""),
("idd_not_support_under_win10_2004_tip", ""),
("input_source_1_tip", ""),
("input_source_2_tip", ""),
("Swap control-command key", ""),
("swap-left-right-mouse", ""),
("2FA code", ""),
("More", ""),
("enable-2fa-title", ""),
("enable-2fa-desc", ""),
("wrong-2fa-code", ""),
("enter-2fa-title", ""),
("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", ""),
("powered_by_me", ""),
("outgoing_only_desk_tip", ""),
("preset_password_warning", ""),
("Security Alert", ""),
("My address book", ""),
("Personal", ""),
("Owner", ""),
("Set shared password", ""),
("Exist in", ""),
("Read-only", ""),
("Read/Write", ""),
("Full Control", ""),
("share_warning_tip", ""),
("Everyone", ""),
("ab_web_console_tip", ""),
("allow-only-conn-window-open-tip", ""),
("no_need_privacy_mode_no_physical_displays_tip", ""),
("Follow remote cursor", ""),
("Follow remote window focus", ""),
("default_proxy_tip", ""),
("no_audio_input_device_tip", ""),
("Incoming", ""),
("Outgoing", ""),
("Clear Wayland screen selection", ""),
("clear_Wayland_screen_selection_tip", ""),
("confirm_clear_Wayland_screen_selection_tip", ""),
("android_new_voice_call_tip", ""),
("texture_render_tip", ""),
("Use texture rendering", ""),
("Floating window", ""),
("floating_window_tip", ""),
("Keep screen on", ""),
("Never", ""),
("During controlled", ""),
("During service is on", ""),
("Capture screen using DirectX", ""),
("Back", ""),
("Apps", ""),
("Volume up", ""),
("Volume down", ""),
("Power", ""),
("Telegram bot", ""),
("enable-bot-tip", ""),
("enable-bot-desc", ""),
("cancel-2fa-confirm-tip", ""),
("cancel-bot-confirm-tip", ""),
("About RustDesk", ""),
("Send clipboard keystrokes", ""),
("network_error_tip", ""),
("Unlock with PIN", ""),
("Requires at least {} characters", ""),
("Wrong PIN", ""),
("Set PIN", ""),
("Enable trusted devices", ""),
("Manage trusted devices", ""),
("Platform", ""),
("Days remaining", ""),
("enable-trusted-devices-tip", ""),
("Parent directory", ""),
("Resume", ""),
("Invalid file name", ""),
("one-way-file-transfer-tip", ""),
("Authentication Required", ""),
("Authenticate", ""),
("web_id_input_tip", ""),
("Download", ""),
("Upload folder", ""),
("Upload files", ""),
("Clipboard is synchronized", ""),
("Update client clipboard", ""),
("Untagged", ""),
("new-version-of-{}-tip", ""),
("Accessible devices", ""),
("upgrade_remote_rustdesk_client_to_{}_tip", ""),
("d3d_render_tip", ""),
("Use D3D rendering", ""),
("Printer", ""),
("printer-os-requirement-tip", ""),
("printer-requires-installed-{}-client-tip", ""),
("printer-{}-not-installed-tip", ""),
("printer-{}-ready-tip", ""),
("Install {} Printer", ""),
("Outgoing Print Jobs", ""),
("Incoming Print Jobs", ""),
("Incoming Print Job", ""),
("use-the-default-printer-tip", ""),
("use-the-selected-printer-tip", ""),
("auto-print-tip", ""),
("print-incoming-job-confirm-tip", ""),
("remote-printing-disallowed-tile-tip", ""),
("remote-printing-disallowed-text-tip", ""),
("save-settings-tip", ""),
("dont-show-again-tip", ""),
("Take screenshot", ""),
("Taking screenshot", ""),
("screenshot-merged-screen-not-supported-tip", ""),
("screenshot-action-tip", ""),
("Save as", ""),
("Copy to clipboard", ""),
("Enable remote printer", ""),
("Downloading {}", ""),
("{} Update", ""),
("{}-to-update-tip", ""),
("download-new-version-failed-tip", ""),
("Auto update", ""),
("update-failed-check-msi-tip", ""),
("websocket_tip", ""),
("Use WebSocket", ""),
("Trackpad speed", ""),
("Default trackpad speed", ""),
("Numeric one-time password", ""),
("Enable IPv6 P2P connection", ""),
("Enable UDP hole punching", ""),
("View camera", "Pregled kamere"),
("Enable camera", ""),
("No cameras", ""),
("view_camera_unsupported_tip", ""),
("Terminal", ""),
("Enable terminal", ""),
("New tab", ""),
("Keep terminal sessions on disconnect", ""),
("Terminal (Run as administrator)", ""),
("terminal-admin-login-tip", ""),
("Failed to get user token.", ""),
("Incorrect username or password.", ""),
("The user is not an administrator.", ""),
("Failed to check if the user is an administrator.", ""),
("Supported only in the installed version.", ""),
("elevation_username_tip", ""),
("Preparing for installation ...", ""),
("Show my cursor", ""),
("Scale custom", ""),
("Custom scale slider", ""),
("Decrease", ""),
("Increase", ""),
].iter().cloned().collect();
}