fufesou
8314335b31
fix: update download, force tls ( #15529 )
...
Signed-off-by: fufesou <linlong1266@gmail.com >
2026-07-09 15:05:49 +08:00
bovirus
acb9f63e1d
Update it.rs ( #15531 )
2026-07-08 16:35:34 +08:00
VenusGirl❤
005a8b4a04
Update Korean ( #15525 )
...
Updated Korean translations for clarity and accuracy.
2026-07-08 11:09:39 +08:00
fufesou
28930c0463
fix: non-E2EE show dialog ( #15514 )
...
* fix: non-E2EE show dialog
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix: build web, bridge
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix: direct IP access, do not snow non-E2EE dialog
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix: non E2EE dialog, update contents
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix: non-E2EE, show dialog, port forward
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix: non-E2EE dialog, port forward, ignore direct IP access
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix: non-E2EE is_direct_ip_access()
Signed-off-by: fufesou <linlong1266@gmail.com >
* Simple refactor
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix: non-E2EE dialog, port forward, close socket on disconnect
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix: non-E2EE dialog, incorrect reuse of Data::Close
Signed-off-by: fufesou <linlong1266@gmail.com >
---------
Signed-off-by: fufesou <linlong1266@gmail.com >
2026-07-06 17:05:11 +08:00
fufesou
37141afece
refact: remove feature cli ( #15524 )
...
Signed-off-by: fufesou <linlong1266@gmail.com >
2026-07-06 16:17:32 +08:00
fufesou
493b14ba78
Fix/session scope permission audit ( #15469 )
...
* fix: enforce session-scoped permissions
Restrict non-remote sessions to their allowed message types, filter
out-of-scope login options, and audit rejected or filtered messages.
Hide screenshot controls outside default remote sessions.
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix: typo
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix: prevent privacy mode in view-camera sessions
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix: switch display, check non-view-camera
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix: avoid sending unsupported messages
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix: session scope, add option to control close/alarm
Signed-off-by: fufesou <linlong1266@gmail.com >
* Fix: scoped session handling for view-camera compatibility
- Skip view-camera auto-login and display-management side effects
- Allow harmless render broadcasts without affecting non-video sessions
- Keep legacy view-camera management messages compatible as no-ops
- Preserve stricter scope violations for non-video session types
Signed-off-by: fufesou <linlong1266@gmail.com >
* update libs/hbb_common
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix: ignore repeated login request
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix: view camera, support "Take screenshot"
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix: session scoped messages, check update options
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix: session scope, check portforward before conn type voolations
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix: scoped messages, reduce changes.
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix: session scope, comments
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix: keep scoped sessions compatible with render broadcasts
Allow legacy render-broadcast no-op messages for file transfer and terminal
sessions while keeping port forward and mixed options scoped. Also avoid sending
new render updates to non-video Flutter sessions.
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix: scope screenshot requests by video source
Key screenshot requests by video source and display index so camera and
monitor sessions cannot consume each other's requests. Deduplicate the Flutter
render-target predicate while keeping render updates limited to video sessions.
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix: Harden scoped session message handling
Filter option updates by authenticated connection type,
keep legacy no-op messages compatible, and avoid noisy repeated
scope violation alarms.
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix: session scope, comments
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix: Send close reason for scoped session violations
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix: Enforce scoped session message filtering
- filter out-of-scope messages for limited session types
- scope option updates by authenticated connection type
- keep render-broadcast no-op compatibility for non-video scoped sessions
- restore view-camera screenshot handling
- improve session scope violation audit labels
- avoid cloning option messages on the remote hot path
Signed-off-by: fufesou <linlong1266@gmail.com >
* Fix scoped session clipboard broadcast compatibility
Treat text clipboard broadcasts as no-op compatibility messages for FileTransfer and Terminal sessions, matching existing
handler behavior and preventing optional scope-violation close from disconnecting those sessions. Keep ViewCamera and
PortForward clipboard messages subject to normal scope enforcement.
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix: log warn
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix: restrict Flutter clipboard sync to default sessions
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix: session scope, comments and tests
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix: session scope, reset sessions in login handle
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix: session scope, view camera, allow clipboard noop
Signed-off-by: fufesou <linlong1266@gmail.com >
---------
Signed-off-by: fufesou <linlong1266@gmail.com >
2026-07-05 23:28:32 +08:00
alonginwind
a2b79462ab
fix: auto-close terminal tab/window when shell exits ( #15448 )
2026-07-02 16:43:27 +08:00
rustdesk
435f6ec61d
update copyright
2026-06-30 11:02:28 +08:00
21pages
0497814004
Add authentication details to connection audit ( #15456 )
...
* Add authentication details to connection audit
Signed-off-by: 21pages <sunboeasy@gmail.com >
* rename normalize_conn_audit_primary_auth to normalize_conn_audit_auth_fields
Signed-off-by: 21pages <sunboeasy@gmail.com >
* Merge permanent password audit methods
Signed-off-by: 21pages <sunboeasy@gmail.com >
* Simplify connection audit auth methods
Signed-off-by: 21pages <sunboeasy@gmail.com >
---------
Signed-off-by: 21pages <sunboeasy@gmail.com >
2026-06-29 16:04:24 +08:00
Maison da Silva
2ee580d49d
Update translation for outdated installation message ( #15427 )
...
Update translation for outdated installation message
2026-06-28 12:11:03 +08:00
fufesou
4a54029cac
fix(update): msi, norestart ( #15440 )
...
* fix(update): msi, norestart
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(update): escape path
Signed-off-by: fufesou <linlong1266@gmail.com >
---------
Signed-off-by: fufesou <linlong1266@gmail.com >
2026-06-27 16:45:27 +08:00
fufesou
001848bf2f
fix(fuse): umount ( #15426 )
...
* fix(clipboard): clean up stale Linux FUSE mounts
Recover Linux file clipboard FUSE mount points before remounting and stop treating a cached
context as valid when the mount has already gone away.
This fixes the desktop file manager copy failure that shows dialogs such as
"Error while copying a" and "There was an error copying the file into xxx".
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(clipboard): fuse, reduce dups
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix: clear Linux file clipboard before unmounting FUSE
Ensure Linux client teardown clears RustDesk file clipboard URLs while
the FUSE context is still available. Also prefer fusermount before
umount to avoid noisy unprivileged teardown attempts.
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(clipboard): return and log errors
Signed-off-by: fufesou <linlong1266@gmail.com >
---------
Signed-off-by: fufesou <linlong1266@gmail.com >
2026-06-26 16:17:44 +08:00
21pages
989bf80fe8
Support controller user attribution in audit logs ( #15407 )
...
* Support controller user attribution in audit logs
This PR supports associating audit logs with the controller user.
## Implementation:
- Add `ControlledContext { conn_audit_token }` to `PunchHole`, `RequestRelay`, and `FetchLocalAddr`.
- The server sends a controller-user identity snapshot to the controlled client through rendezvous messages.
- The controlled client sends the token back to the server when posting the `on_open` conn audit or IP whitelist alarm audit.
- This lets the server attach the controller user to audit logs.
## How the controlled client helps identify the controller user:
- Conn audit: sends the token to the server in `on_open`; the server creates the audit log and caches the user snapshot.
- File audit: sends `id` and `conn_id`; the server uses them to find the cached user snapshot.
- Alarm audit: IP whitelist sends the token directly; other alarm logs send `id` and `conn_id`, and the server uses them to find the cached user
snapshot.
## Compatibility:
- Supported only for logs created with a new server and a new controlled client.
- Does not require upgrading the controller client.
## Test
- [x] New/old clients connected to new/old servers, and conn/file/alarm audit logs worked normally.
- [x] New client connected to new server generated searchable conn/file/alarm audit logs.
- [x] Punch hole, local addr, and relay paths worked with audit logs and control role on new/old servers.
- [x] Direct IP connections produced audit logs, but do not support user audit.
Signed-off-by: 21pages <sunboeasy@gmail.com >
* rename conn_audit_token to conn_audit_ref
Signed-off-by: 21pages <sunboeasy@gmail.com >
---------
Signed-off-by: 21pages <sunboeasy@gmail.com >
2026-06-26 15:07:27 +08:00
VenusGirl❤
78b5f47668
Update ko.rs ( #15395 )
2026-06-26 13:51:08 +08:00
jkh0kr
97e9e44faa
Update ko.rs ( #15390 )
...
Incorrect translation
2026-06-26 11:19:18 +08:00
Daniel Marschall
0cbdb6ffb3
Fix tray icon click (regression due to breaking change in tray-icon 0.17) ( #15413 )
2026-06-25 09:43:04 +08:00
Maison da Silva
a69614d464
Update translation for 'Control Actions' in ptbr.rs ( #15386 )
2026-06-24 12:26:36 +08:00
fufesou
09bc9056c9
fix(update): win aarch64 ( #15389 )
...
Signed-off-by: fufesou <linlong1266@gmail.com >
2026-06-23 17:59:29 +08:00
fufesou
0c6df924d1
refact: file transfer, do this for all conflicts(tasks) ( #15385 )
...
Signed-off-by: fufesou <linlong1266@gmail.com >
2026-06-23 11:23:42 +08:00
rustdesk
16570ee34f
fix https://github.com/rustdesk/rustdesk/discussions/15355
2026-06-22 22:57:08 +08:00
just-some-tall-bloke
2b40c61d8e
Fix spelling and grammar errors in comments ( #15370 )
...
- dbus.rs: fix grammar (add 'between', pluralize 'processes')
- win_impl.rs: fix typo 'hight' -> 'high', idiom 'such called' -> 'so-called'
- startwm.sh: fix typo 'loging' -> 'logging'
- lib.rs: fix copy-paste error in doc comments for scroll buttons
- message.proto: fix typo 'Clipobard' -> 'Clipboard'
2026-06-22 15:26:51 +08:00
RustDesk
dcc64cdeae
cjk ( #15379 )
2026-06-22 14:47:12 +08:00
fufesou
3c574a4182
fix(wayland): clipboard, support ext-data-control ( #15366 )
...
* fix(wayland): clipboard, support ext-data-control
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(clipboard): restart stale listener and log join panics
Signed-off-by: fufesou <linlong1266@gmail.com >
* update clipboard-master
Signed-off-by: fufesou <linlong1266@gmail.com >
* refactor(clipboard): remove redundant stale listener cleanup
Signed-off-by: fufesou <linlong1266@gmail.com >
---------
Signed-off-by: fufesou <linlong1266@gmail.com >
2026-06-21 17:09:41 +08:00
Tigah
311d4708e5
fix(linux): reap a crashed headless session's leftovers on next start ( #15348 )
...
The teardown cleanup added for #15183 only runs on a clean disconnect.
If the service or its --server crashes before then, the headless logind
session scope and the /tmp/.X<n> lock files it created leak the same way
#15183 leaked them, with nothing to reclaim them afterwards.
Record the session scope and display when the headless session starts,
and on the next --server start reap exactly what the previous run
recorded, then drop the marker. It only ever touches the one scope and
display the previous run recorded, never a scan, so unrelated sessions
are untouched; the reap and X cleanup reuse the teardown path.
A logind session id is only unique within a boot: the counter lives in
/run and resets, so a recorded "session-N.scope" can name a different,
live session after a reboot. Tag the marker with the boot id and only
reap the scope when it matches the current boot. A leaked cgroup cannot
outlive a reboot, so nothing legitimate is lost cross-boot; the X lock
cleanup stays pid-guarded and runs either way.
Signed-off-by: TBX3D <88289044+TBX3D@users.noreply.github.com >
2026-06-21 16:56:41 +08:00
Maison da Silva
5cf4323d07
Fix Portuguese translations for consistency ( #15354 )
2026-06-21 16:52:28 +08:00
bovirus
3976701ac6
Update Italian translations ( #15367 )
2026-06-21 16:52:13 +08:00
fufesou
9ded8d6ab2
fix(keyboard): win, key, Pause ( #15351 )
...
Signed-off-by: fufesou <linlong1266@gmail.com >
2026-06-20 21:11:19 +08:00
rustdesk
10f61ffdc2
translate
2026-06-20 18:27:42 +08:00
Tigah
d72952bf93
fix(linux): clean up leftover session procs and X locks on headless teardown ( #15337 )
...
On headless login the desktop manager opens a PAM session, which makes
pam_systemd register a logind session and put the spawned Xorg + window
manager and their children (e.g. pipewire) in a "session-<id>.scope"
cgroup. Teardown only killed the Xorg and wm pids, so the rest of the
session kept running, holding the logind session in "closing" and leaking
runtime sockets and X display numbers on every reconnect.
Capture the session scope cgroup from a child pid and, on teardown, kill the
remaining processes in it and any descendant cgroups (cgroup.procs is not
recursive, and a desktop may move pipewire and apps into child scopes),
excluding our own service process and anything tracked in CHILD_PROCESS
together with its descendants. The connection manager is a sudo child, so the
tracked pid is the wrapper while the real --cm-no-ui worker may be a descendant
(sudo with use_pty runs it under a monitor); both can share the scope when
their PAM stack does not re-home them.
Xorg is killed with SIGKILL, so it also leaves its "/tmp/.X<n>-lock" and
"/tmp/.X11-unix/X<n>" behind; get_avail_display() treats either file as the
display being in use, so the number is never reused and climbs until the
range is exhausted. Remove those files for the session's display on
teardown, as a clean Xorg exit would.
Closes #15183
Signed-off-by: TBX3D <88289044+TBX3D@users.noreply.github.com >
2026-06-20 14:21:42 +08:00
Re*Index. (ot_inc)
a7c55db9ac
Fix Japanese text ( #15345 )
2026-06-20 09:50:04 +08:00
fufesou
0797ebb695
Refact/privacy mode 1 multi monitors ( #15321 )
...
* refact: privacy mdoe 1, multi-monitors
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix: harden privacy mode overlay & capture cleanup
Signed-off-by: fufesou <linlong1266@gmail.com >
* Fix privacy mode edge cases after multi-monitor overlay changes
Signed-off-by: fufesou <linlong1266@gmail.com >
* Add missing changes
Signed-off-by: fufesou <linlong1266@gmail.com >
---------
Signed-off-by: fufesou <linlong1266@gmail.com >
2026-06-18 21:27:44 +08:00
Maison da Silva
8a955888bf
Fix Portuguese translations for consistency ( #15325 )
...
Fix Portuguese translations for consistency
2026-06-18 10:28:34 +08:00
RustDesk
6665242edf
Revert "refact: privacy mdoe 1, multi-monitors ( #15318 )" ( #15320 )
...
This reverts commit 3cdf1cce54 .
2026-06-17 21:46:40 +08:00
fufesou
3cdf1cce54
refact: privacy mdoe 1, multi-monitors ( #15318 )
...
* refact: privacy mdoe 1, multi-monitors
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix: harden privacy mode overlay & capture cleanup
Signed-off-by: fufesou <linlong1266@gmail.com >
---------
Signed-off-by: fufesou <linlong1266@gmail.com >
2026-06-17 21:43:57 +08:00
fufesou
88ae00ba73
refact: restart remote device, autoconnect ( #15290 )
...
* refact: restart remote device, autoconnect
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix: guard restart reconnect timer after session close
Signed-off-by: fufesou <linlong1266@gmail.com >
* Simple refactor
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(restart): auto connect, comments
Signed-off-by: fufesou <linlong1266@gmail.com >
---------
Signed-off-by: fufesou <linlong1266@gmail.com >
2026-06-17 17:50:18 +08:00
Maison da Silva
7c26575dbd
Update translation for remote toolbar docking message ( #15297 )
...
* Update translation for remote toolbar docking message
Update translation for remote toolbar docking message
* Translate 'Display' to 'Tela' in Portuguese locale
* Change translation of 'Display' to 'Exibição'
2026-06-17 17:36:27 +08:00
21pages
b73e5bbfa0
opt: release clipboard config lock before updates ( #15277 )
...
Signed-off-by: 21pages <sunboeasy@gmail.com >
2026-06-14 17:27:19 +08:00
fufesou
cc7fe4efdc
Fix/generate py target injection ( #15248 )
...
* fix: generate.py, target injection
Signed-off-by: fufesou <linlong1266@gmail.com >
* refact: logs
Signed-off-by: fufesou <linlong1266@gmail.com >
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
* Update port_forward.rs
---------
Signed-off-by: fufesou <linlong1266@gmail.com >
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com >
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-06-11 23:09:34 +08:00
littlestejan
84af60c07e
Fix clipboard synchronization not fully disabled in View Only mode ( #15224 )
...
* fix: view-only clipboard sync
Signed-off-by: Setani <little_stejan@hotmail.com >
* fix: gate Android MultiClipboards handling with clipboard permissions
Signed-off-by: Setani <little_stejan@hotmail.com >
---------
Signed-off-by: Setani <little_stejan@hotmail.com >
2026-06-10 07:42:58 +08:00
fufesou
6426269d41
Refact/printer driver default unchecked ( #15191 )
...
* refact: installation, printer driver, default unchecked
Signed-off-by: fufesou <linlong1266@gmail.com >
* refact: silent install, get option from the reg values
Signed-off-by: fufesou <linlong1266@gmail.com >
* refact: silent install, arg printer=[0|1]
Signed-off-by: fufesou <linlong1266@gmail.com >
---------
Signed-off-by: fufesou <linlong1266@gmail.com >
2026-06-06 08:51:08 +08:00
rustdesk
0c86d46162
translate all
2026-06-02 23:33:40 +08:00
bovirus
e87797418f
Update it.rs ( #15173 )
2026-06-02 23:32:04 +08:00
Lynilia
78a3a2aeb9
Update fr.rs ( #15172 )
2026-06-02 22:26:19 +08:00
bovirus
e18cf7a245
Update it.rs ( #15171 )
2026-06-02 22:23:06 +08:00
fufesou
3217125dd3
fix(keyboard): wayland clipboard input prompt ( #14700 )
...
* fix(keyboard): wayland clipboard input prompt
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(wayland): Simple refactor
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(wayland): clipboard input, remove unused code
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(wayland): Simple refactor
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(wayland): dialog, better enableAndContinue
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(wayland): input dialog consent
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(wayland): prompt text
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(wayland): text input
1. Use `keysym` for the installed version if possible.
2. Use the clipboard if the string cannot be fully handled by `keysym`.
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(wayland): input prompt dialog
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(wayland): translations
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(wayland): dialog, title type
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(wayland): better decode_utf8_prefix()
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(wayland): better process_chr()
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(wayland): unit tests
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(wayland): input prompt dialog, no icon
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(wayland): input dialog, Toast show the result
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(wayland): input dialog, showToast() on persist failed
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(wayland): input prompt, better dialog
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(wayland): input prompt dialog, translations
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(input): better wayland clipboard input prompt
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(input): wayland clipboard, link external app
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(input): trivial changes
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(input): wayland clipboard input, dialog content
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(input): tranlsations
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(input): translations
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(input): translations
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(input): translations
Signed-off-by: fufesou <linlong1266@gmail.com >
---------
Signed-off-by: fufesou <linlong1266@gmail.com >
2026-06-02 16:06:35 +08:00
bovirus
00032854eb
Update it.rs ( #15167 )
...
* Update it.rs
* Update it.rs
2026-06-02 16:00:43 +08:00
21pages
d99ddf6816
Add Android device deployment flow ( #15146 )
...
* Add Android device deployment flow
Notify the Android Flutter UI when the server requires deployment, add a deploy dialog with API token/custom ID inputs, and reuse shared deploy logic
for CLI and FFI
Signed-off-by: 21pages <sunboeasy@gmail.com >
* Hide Android deploy API token input
Signed-off-by: 21pages <sunboeasy@gmail.com >
* add more translations
Signed-off-by: 21pages <sunboeasy@gmail.com >
* optimize transations
Signed-off-by: 21pages <sunboeasy@gmail.com >
* Hide deploy action for outgoing-only clients
Signed-off-by: 21pages <sunboeasy@gmail.com >
* Fix deployment register throttle state reset
Signed-off-by: 21pages <sunboeasy@gmail.com >
* Move Android deploy dialog out of settings page
Signed-off-by: 21pages <sunboeasy@gmail.com >
* Use async mutex for deploy register throttle
Signed-off-by: 21pages <sunboeasy@gmail.com >
---------
Signed-off-by: 21pages <sunboeasy@gmail.com >
2026-06-02 14:28:30 +08:00
Maison da Silva
bed0976eb9
Fix Portuguese translations in ptbr.rs ( #15149 )
...
Corrected Portuguese translations for consistency and clarity.
2026-06-01 10:38:31 +08:00
Maison da Silva
fa369365a5
Update Portuguese translations for clarity ( #15135 )
...
* Update Portuguese translations for clarity
Update Portuguese translations for clarity
* Update ptbr.rs
* Update Portuguese translations for clarity
* Update Portuguese translation for version warning
* Refine Portuguese translations in ptbr.rs
Updated translations for user input blocking and OS password.
* Fix translation for 'Take screenshot' in Portuguese
* Change translation for 'Note' to 'Anotações'
* Update translation from 'nota' to 'anotação'
2026-05-30 15:44:04 +08:00
hatterp
7345366ba7
Add Polish translations for privacy mode and toolbar docking ( #15134 )
2026-05-29 17:52:42 +08:00