From a35630b49919fdafeb076779b00ac32f70f4a4f8 Mon Sep 17 00:00:00 2001 From: rustdesk Date: Mon, 10 Aug 2026 18:56:00 +0800 Subject: [PATCH] webrtc: fix race edge cases that discard or mislabel a direct connection Three correctness fixes in the transport race, plus three convention cleanups. - race_transports_prefer_webrtc committed a relayed result while a direct attempt was still in flight: the others arm returned on webrtc_fut.is_none() even with an unfinished direct future, and the WebRTC-error arm returned a held relay without checking others_fut. A relay is now committed only when nothing direct can still arrive (or the window expires); a parked relay is also preferred over composing an error when both sides fail. Three regression tests, mutation-checked. - connect()'s plain select_ok let a TURN-relayed WebRTC win as "first success", dropping still-racing UDP/IPv6 direct attempts and reporting the relayed pair as direct. It now runs through the same prefer-P2P race with each attempt carrying whether its path is direct, and the WebRTC future resolves is_relayed() so a TURN win is held behind direct attempts, not committed as one. - The RelayResponse path kept direct == true when a WebRTC win's DTLS handshake failed and it fell back to relay, so the relay was reported P2P. Clear the flag with the transport switch. - Trim the OffererGuard doc to the three-line max; move the new enable-webrtc localization key to the end of every lang list; the KCP option constant moved to hbb_common config::keys (0f663aa). Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01ExUfAkYbq8UC9pQCiLy8TQ --- src/client.rs | 189 +++++++++++++++++++++++++++++++------------ src/common.rs | 4 +- src/lang/ar.rs | 2 +- src/lang/be.rs | 2 +- src/lang/bg.rs | 2 +- src/lang/ca.rs | 2 +- src/lang/cn.rs | 2 +- src/lang/cs.rs | 2 +- src/lang/da.rs | 2 +- src/lang/de.rs | 2 +- src/lang/el.rs | 2 +- src/lang/eo.rs | 2 +- src/lang/es.rs | 2 +- src/lang/et.rs | 2 +- src/lang/eu.rs | 2 +- src/lang/fa.rs | 2 +- src/lang/fi.rs | 2 +- src/lang/fr.rs | 2 +- src/lang/ge.rs | 2 +- src/lang/gu.rs | 2 +- src/lang/he.rs | 2 +- src/lang/hi.rs | 2 +- src/lang/hr.rs | 2 +- src/lang/hu.rs | 2 +- src/lang/id.rs | 2 +- src/lang/it.rs | 2 +- src/lang/ja.rs | 2 +- src/lang/ko.rs | 2 +- src/lang/kz.rs | 2 +- src/lang/lt.rs | 2 +- src/lang/lv.rs | 2 +- src/lang/ml.rs | 2 +- src/lang/nb.rs | 2 +- src/lang/nl.rs | 2 +- src/lang/pl.rs | 2 +- src/lang/pt_PT.rs | 2 +- src/lang/ptbr.rs | 2 +- src/lang/ro.rs | 2 +- src/lang/ru.rs | 2 +- src/lang/sc.rs | 2 +- src/lang/sk.rs | 2 +- src/lang/sl.rs | 2 +- src/lang/sq.rs | 2 +- src/lang/sr.rs | 2 +- src/lang/sv.rs | 2 +- src/lang/ta.rs | 2 +- src/lang/template.rs | 2 +- src/lang/th.rs | 2 +- src/lang/tr.rs | 2 +- src/lang/tw.rs | 2 +- src/lang/uk.rs | 2 +- src/lang/vi.rs | 2 +- 52 files changed, 187 insertions(+), 106 deletions(-) diff --git a/src/client.rs b/src/client.rs index e52baa662..9f5b86a84 100644 --- a/src/client.rs +++ b/src/client.rs @@ -175,14 +175,9 @@ pub fn get_key_state(key: enigo::Key) -> bool { ENIGO.lock().unwrap().get_key_state(key) } -/// RAII guard for a WebRTC offerer that has not yet been adopted into a connection. -/// -/// The offerer's `RTCPeerConnection` is created eagerly in `Client::start` and inserted into the -/// global `SESSIONS` map; if it never receives a remote answer it stays in ICE state `New` -/// forever, so its state-change handler never fires and it never self-removes. This guard closes -/// the pc on drop, covering the paths that would otherwise leak it: early `?`/`bail!` returns in -/// `_start_inner`, and `select_ok` cancelling the racing attempt that holds the offerer. Call -/// [`OffererGuard::into_inner`] to disarm when the stream is adopted into a live connection. +/// Closes an unadopted WebRTC offerer's pc on drop. Without an answer it stays in ICE `New` +/// forever, so its state handler never fires to self-remove it from `SESSIONS`; this covers the +/// early returns and cancelled races that would leak it. `into_inner` disarms on adoption. struct OffererGuard(Option); impl OffererGuard { @@ -254,8 +249,12 @@ async fn race_transports_prefer_webrtc<'a, T: 'a>( } } Err(e) => { - if let Some(conn) = held.take() { - return Ok(conn); + // Commit a held relay only when nothing direct is still racing; otherwise + // keep it and let the survivor (or the window) decide. + if others_fut.is_none() { + if let Some(conn) = held.take() { + return Ok(conn); + } } match others_err.take() { Some(oe) => bail!("WebRTC failed: {}; fallback failed: {}", e, oe), @@ -274,11 +273,15 @@ async fn race_transports_prefer_webrtc<'a, T: 'a>( others_fut = None; match res { Ok((conn, unfinished)) => { - if is_p2p(&conn) || webrtc_fut.is_none() { + if is_p2p(&conn) { + return Ok(conn); + } + // Relayed: commit now only if nothing direct can still arrive. If a + // direct attempt is still in flight (here or in `unfinished`), hold it + // and keep racing for the preference window instead of discarding them. + if webrtc_fut.is_none() && unfinished.is_empty() { return Ok(conn); } - // Hold the first relay, but keep polling unfinished alternatives: an IPv6 - // direct attempt may complete inside the same WebRTC preference window. if held.is_none() { held = Some(conn); window.as_mut().reset( @@ -291,15 +294,16 @@ async fn race_transports_prefer_webrtc<'a, T: 'a>( } } Err(e) => match webrtc_err.take() { - Some(we) => bail!("WebRTC failed: {}; fallback failed: {}", we, e), - None if webrtc_fut.is_none() => { - // The preferred branch may have parked a relay here; nothing else can - // win now, so commit it rather than failing the connection. - match held.take() { - Some(conn) => return Ok(conn), - None => return Err(e), - } - } + // Nothing more can win, but a parked relay is still a valid outcome — take + // it before failing the connection. + Some(we) => match held.take() { + Some(conn) => return Ok(conn), + None => bail!("WebRTC failed: {}; fallback failed: {}", we, e), + }, + None if webrtc_fut.is_none() => match held.take() { + Some(conn) => return Ok(conn), + None => return Err(e), + }, None => others_err = Some(e), }, } @@ -1066,7 +1070,7 @@ impl Client { } // The ? / secure_connection failures below return early; webrtc_guard stays // in scope and closes the offerer on any such exit (loss, error, cancellation). - let (mut conn, kcp, mut typ, direct) = race_result?; + let (mut conn, kcp, mut typ, mut direct) = race_result?; feedback = rr.feedback; log::info!("{:?} used to establish {typ} connection", start.elapsed()); let pk = match Self::secure_connection( @@ -1116,6 +1120,10 @@ impl Client { .await?; conn = relay_conn; typ = if use_ws() { "WebSocket" } else { "Relay" }; + // The transport is now a relay: the WebRTC win it replaced must + // not carry its direct flag into the return, or the relay is + // reported P2P and the outer race treats it as one. + direct = false; pk } Err(e) => return Err(e), @@ -1331,50 +1339,81 @@ impl Client { log::info!("peer address: {}, timeout: {}", peer, connect_timeout); let start = std::time::Instant::now(); - let mut connect_futures = Vec::new(); + // Each attempt carries whether its path is direct (4th field). TCP/UDP/IPv6 punch are + // always direct; WebRTC is direct only when ICE nominated a non-TURN pair. + let mut direct_futures = Vec::new(); if allow_tcp_punch { let fut = connect_tcp_local(peer, Some(local_addr), connect_timeout); - connect_futures.push( + direct_futures.push( async move { let conn = fut.await?; - Ok((conn, None, "TCP")) + Ok((conn, None, "TCP", true)) } .boxed(), ); } if let Some(udp_socket_nat) = udp_socket_nat { - connect_futures.push(udp_nat_connect(udp_socket_nat, "UDP", connect_timeout).boxed()); - } - if let Some(udp_socket_v6) = udp_socket_v6 { - connect_futures.push(udp_nat_connect(udp_socket_v6, "IPv6", connect_timeout).boxed()); - } - // Race a clone of the offerer; the guard retains its own clone so a losing/cancelled race - // still closes the pc (select_ok drops the future's clone without closing). - if let Some(stream) = webrtc_guard.as_ref().and_then(|g| g.stream()) { - let mut raced = stream.clone(); - // The punch-tuned timeout can be as low as 1s — enough for a raw TCP SYN but not for - // candidate trickle + ICE checks + DTLS. Give WebRTC its own floor (prefer-P2P) so a - // viable P2P path is not abandoned before it can complete; TCP/UDP keep the tighter - // timeout, so a working direct connection still wins the race immediately, and the - // relay fallback below only waits the extra time when direct attempts all failed. - let webrtc_timeout = connect_timeout.max(Self::WEBRTC_PREFER_WINDOW_MS); - connect_futures.push( + direct_futures.push( async move { - raced.wait_connected(webrtc_timeout).await?; - Ok((Stream::WebRTC(raced), None, "WebRTC")) + let (conn, kcp, typ) = + udp_nat_connect(udp_socket_nat, "UDP", connect_timeout).await?; + Ok((conn, kcp, typ, true)) } .boxed(), ); } - // Run all connection attempts concurrently, return the first successful one - let direct_result = if connect_futures.is_empty() { - Err(anyhow!("No direct transport available")) - } else { - select_ok(connect_futures).await.map(|conn| conn.0) + if let Some(udp_socket_v6) = udp_socket_v6 { + direct_futures.push( + async move { + let (conn, kcp, typ) = + udp_nat_connect(udp_socket_v6, "IPv6", connect_timeout).await?; + Ok((conn, kcp, typ, true)) + } + .boxed(), + ); + } + // Race a clone of the offerer; the guard retains its own clone so a losing/cancelled race + // still closes the pc (select_ok drops the future's clone without closing). + let webrtc_fut = webrtc_guard + .as_ref() + .and_then(|g| g.stream()) + .map(|stream| { + let mut raced = stream.clone(); + // The punch-tuned timeout can be as low as 1s — enough for a raw TCP SYN but not + // for candidate trickle + ICE checks + DTLS. Give WebRTC its own floor (prefer-P2P) + // so a viable P2P path is not abandoned before it can complete; TCP/UDP keep the + // tighter timeout, so a working direct connection still wins immediately, and the + // relay fallback only waits the extra time when direct attempts all failed. + let webrtc_timeout = connect_timeout.max(Self::WEBRTC_PREFER_WINDOW_MS); + async move { + raced.wait_connected(webrtc_timeout).await?; + // Resolve the pair here: a TURN win is relayed, not direct, and must be held + // behind still-racing direct attempts rather than committed as P2P. + let relayed = raced.is_relayed().await.unwrap_or(true); + Ok((Stream::WebRTC(raced), None, "WebRTC", !relayed)) + } + .boxed() + }); + // Prefer P2P: a direct result wins outright, a relayed WebRTC (TURN) is held for the + // window so a direct punch can still land. Falls back to plain select_ok when only one + // kind is present. + let direct_result = match (webrtc_fut, direct_futures.is_empty()) { + (Some(webrtc_fut), false) => { + race_transports_prefer_webrtc( + webrtc_fut, + direct_futures, + Self::WEBRTC_PREFER_WINDOW_MS, + |r| r.3, + ) + .await + } + (Some(webrtc_fut), true) => webrtc_fut.await, + (None, false) => select_ok(direct_futures).await.map(|c| c.0), + (None, true) => Err(anyhow!("No direct transport available")), }; - let (mut conn, kcp, mut typ) = match direct_result { - Ok(conn) => (Ok(conn.0), conn.1, conn.2), - Err(e) => (Err(e), None, ""), + let (mut conn, kcp, mut typ, mut direct) = match direct_result { + Ok((conn, kcp, typ, direct)) => (Ok(conn), kcp, typ, direct), + Err(e) => (Err(e), None, "", false), }; if let Some(stop) = webrtc_bridge_stop { let _ = stop.send(()); @@ -1382,7 +1421,6 @@ impl Client { // webrtc_guard stays armed across the relay override and secure_connection below; it is // disarmed only at the successful return when WebRTC is the kept transport. - let mut direct = !conn.is_err(); // Keep a WebRTC win instead of replacing it with the RustDesk relay: under relay-by- // policy the pc was built with Relay-only ICE (TURN configured), which already honors // the relay requirement, and under ws-forced relay a direct full-ICE connection is the @@ -5357,6 +5395,51 @@ mod webrtc_race_tests { assert!(start.elapsed() < Duration::from_secs(5)); } + // WebRTC fails first (others still racing), then a relay arrives with a direct attempt still + // unfinished behind it. The relay must not be committed while that direct attempt can win. + #[tokio::test] + async fn relay_does_not_preempt_unfinished_direct_after_webrtc_fails() { + let got = race_transports_prefer_webrtc( + err_after(5, "webrtc dead"), + vec![ok_after(10, "relay"), ok_after(100, "ipv6")], + 60_000, + |t| *t == "ipv6", + ) + .await + .unwrap(); + assert_eq!(got, "ipv6"); + } + + // A relay is held with a direct attempt racing behind it, then WebRTC fails. The held relay + // must not be committed while the direct attempt is still in flight. + #[tokio::test] + async fn held_relay_waits_for_racing_direct_when_webrtc_fails() { + let got = race_transports_prefer_webrtc( + err_after(50, "webrtc dead"), + vec![ok_after(10, "relay"), ok_after(100, "ipv6")], + 60_000, + |t| *t == "ipv6", + ) + .await + .unwrap(); + assert_eq!(got, "ipv6"); + } + + // Both attempts error, but a relay was parked before they did — it is the outcome, not a + // composed error. + #[tokio::test] + async fn held_relay_survives_both_errors() { + let got = race_transports_prefer_webrtc( + err_after(50, "webrtc dead"), + vec![ok_after(10, "relay"), err_after(100, "ipv6 dead")], + 60_000, + |t| *t == "ipv6", + ) + .await + .unwrap(); + assert_eq!(got, "relay"); + } + #[tokio::test] async fn held_relay_committed_when_window_expires() { let start = Instant::now(); diff --git a/src/common.rs b/src/common.rs index 90abefb3f..3b8e9c8da 100644 --- a/src/common.rs +++ b/src/common.rs @@ -2452,8 +2452,6 @@ pub fn is_udp_disabled() -> bool { Config::get_option(keys::OPTION_DISABLE_UDP) == "Y" } -pub const OPTION_ENABLE_KCP_CC: &str = "enable-kcp-congestion-control"; - /// Run KCP with its congestion window (nc=0) instead of the turbo profile it has always shipped. /// /// Opt-in: which profile wins depends on why packets are lost — nc=1 deepens real congestion, @@ -2461,7 +2459,7 @@ pub const OPTION_ENABLE_KCP_CC: &str = "enable-kcp-congestion-control"; /// without a shaped link, so keep what users run today. #[inline] pub fn get_kcp_cc_enabled() -> bool { - Config::get_option(OPTION_ENABLE_KCP_CC) == "Y" + Config::get_option(keys::OPTION_ENABLE_KCP_CC) == "Y" } // this crate https://github.com/yoshd/stun-client supports nat type diff --git a/src/lang/ar.rs b/src/lang/ar.rs index 589b76465..da287fb92 100644 --- a/src/lang/ar.rs +++ b/src/lang/ar.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "سرعة لوحة التتبع الافتراضية"), ("Numeric one-time password", "كلمة مرور رقمية لمرة واحدة"), ("Enable IPv6 P2P connection", "تمكين اتصال نظير إلى نظير عبر IPv6"), - ("Enable WebRTC P2P connection", "تمكين اتصال نظير إلى نظير عبر WebRTC"), ("Enable UDP hole punching", "تمكين تقنية حفر الثغرات عبر UDP"), ("View camera", "عرض الكاميرا"), ("Enable camera", "تمكين الكاميرا"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "تفعيل"), ("Reuse one connection for port forwarding", "إعادة استخدام اتصال واحد لإعادة توجيه المنافذ"), ("port-forward-mux-tip", "تمرير جميع اتصالات إعادة توجيه المنافذ عبر اتصال واحد بالجهاز الآخر، بدلاً من الاتصال وتسجيل الدخول من جديد لكل اتصال."), + ("Enable WebRTC P2P connection", "تمكين اتصال نظير إلى نظير عبر WebRTC"), ].iter().cloned().collect(); } diff --git a/src/lang/be.rs b/src/lang/be.rs index 1acb10846..214cfcfa2 100644 --- a/src/lang/be.rs +++ b/src/lang/be.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "Стандартная хуткасць трэкпада"), ("Numeric one-time password", "Лічбавы аднаразовы пароль"), ("Enable IPv6 P2P connection", "Выкарыстоўваць падключэнне IPv6 P2P"), - ("Enable WebRTC P2P connection", "Выкарыстоўваць падключэнне WebRTC P2P"), ("Enable UDP hole punching", "Выкарыстоўваць UDP hole punching"), ("View camera", "Рэжым камеры"), ("Enable camera", "Уключыць камеру"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "Уключыць"), ("Reuse one connection for port forwarding", "Выкарыстоўваць адно злучэнне для перанакіравання партоў"), ("port-forward-mux-tip", "Перадаваць усе злучэнні аднаго перанакіравання партоў праз адно злучэнне з аддаленай прыладай замест паўторнага падлучэння і ўваходу для кожнага з іх."), + ("Enable WebRTC P2P connection", "Выкарыстоўваць падключэнне WebRTC P2P"), ].iter().cloned().collect(); } diff --git a/src/lang/bg.rs b/src/lang/bg.rs index b836f04ef..5c2a5e95a 100644 --- a/src/lang/bg.rs +++ b/src/lang/bg.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "Скорост на тъчпада по подразбиране"), ("Numeric one-time password", "Цифрова еднократна парола"), ("Enable IPv6 P2P connection", "Позволяване на IPv6 P2P връзка"), - ("Enable WebRTC P2P connection", "Позволяване на WebRTC P2P връзка"), ("Enable UDP hole punching", "Позволяване на UDP hole punching"), ("View camera", "Преглед на камерата"), ("Enable camera", "Позволяване на камерата"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "Активирай"), ("Reuse one connection for port forwarding", "Използване на една връзка за пренасочване на портове"), ("port-forward-mux-tip", "Всички връзки на едно пренасочване на портове минават през една връзка към отсрещния компютър, вместо да се свързвате и влизате отново за всяка от тях."), + ("Enable WebRTC P2P connection", "Позволяване на WebRTC P2P връзка"), ].iter().cloned().collect(); } diff --git a/src/lang/ca.rs b/src/lang/ca.rs index 2352aa4fa..6ec9c81e4 100644 --- a/src/lang/ca.rs +++ b/src/lang/ca.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "Velocitat per defecte del trackpad"), ("Numeric one-time password", "Contrasenya numèrica d'un sol ús"), ("Enable IPv6 P2P connection", "Habilita la connexió IPv6 P2P"), - ("Enable WebRTC P2P connection", "Habilita la connexió WebRTC P2P"), ("Enable UDP hole punching", "Activa la perforació UDP"), ("View camera", "Mostra la càmera"), ("Enable camera", "Habilita la càmera"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "Habilita"), ("Reuse one connection for port forwarding", "Reutilitza una connexió per a la redirecció de ports"), ("port-forward-mux-tip", "Fa passar totes les connexions d'una redirecció de ports per una única connexió amb l'altre equip, en lloc de connectar i iniciar la sessió de nou per a cadascuna."), + ("Enable WebRTC P2P connection", "Habilita la connexió WebRTC P2P"), ].iter().cloned().collect(); } diff --git a/src/lang/cn.rs b/src/lang/cn.rs index e230f9088..250afb4a8 100644 --- a/src/lang/cn.rs +++ b/src/lang/cn.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "默认触控板速度"), ("Numeric one-time password", "一次性密码为数字"), ("Enable IPv6 P2P connection", "启用 IPv6 P2P 连接"), - ("Enable WebRTC P2P connection", "启用 WebRTC P2P 连接"), ("Enable UDP hole punching", "启用 UDP 打洞"), ("View camera", "查看摄像头"), ("Enable camera", "允许查看摄像头"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "启用"), ("Reuse one connection for port forwarding", "端口转发复用同一条连接"), ("port-forward-mux-tip", "同一条端口转发规则上的所有连接共用一条到对方的连接,而不是每条连接都重新连接并登录一次。"), + ("Enable WebRTC P2P connection", "启用 WebRTC P2P 连接"), ].iter().cloned().collect(); } diff --git a/src/lang/cs.rs b/src/lang/cs.rs index 604461454..a89e50acb 100644 --- a/src/lang/cs.rs +++ b/src/lang/cs.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "Výchozí rychlost trackpadu"), ("Numeric one-time password", "Číselné jednorázové heslo"), ("Enable IPv6 P2P connection", "Povolit připojení IPv6 P2P"), - ("Enable WebRTC P2P connection", "Povolit připojení WebRTC P2P"), ("Enable UDP hole punching", "Povolit UDP hole punching"), ("View camera", "Zobrazit kameru"), ("Enable camera", "Povolit kameru"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "Povolit"), ("Reuse one connection for port forwarding", "Znovu použít jedno připojení pro přesměrování portů"), ("port-forward-mux-tip", "Vede všechna připojení jednoho přesměrování portů přes jediné připojení k protějšku místo opakovaného připojování a přihlašování pro každé z nich."), + ("Enable WebRTC P2P connection", "Povolit připojení WebRTC P2P"), ].iter().cloned().collect(); } diff --git a/src/lang/da.rs b/src/lang/da.rs index 49d43de9a..6b6574a67 100644 --- a/src/lang/da.rs +++ b/src/lang/da.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "Standard pegefeltshastighed"), ("Numeric one-time password", "Numerisk engangskode"), ("Enable IPv6 P2P connection", "Aktivér IPv6 P2P-forbindelse"), - ("Enable WebRTC P2P connection", "Aktivér WebRTC P2P-forbindelse"), ("Enable UDP hole punching", "Aktivér UDP hole punching"), ("View camera", "Se kamera"), ("Enable camera", "Aktivér kamera"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "Aktivér"), ("Reuse one connection for port forwarding", "Genbrug én forbindelse til portvideresendelse"), ("port-forward-mux-tip", "Fører alle forbindelser i en portvideresendelse gennem én enkelt forbindelse til modparten i stedet for at forbinde og logge ind igen for hver enkelt."), + ("Enable WebRTC P2P connection", "Aktivér WebRTC P2P-forbindelse"), ].iter().cloned().collect(); } diff --git a/src/lang/de.rs b/src/lang/de.rs index cf99105aa..160b51c71 100644 --- a/src/lang/de.rs +++ b/src/lang/de.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "Standardgeschwindigkeit des Trackpads"), ("Numeric one-time password", "Numerisches Einmalpasswort"), ("Enable IPv6 P2P connection", "IPv6-P2P-Verbindung aktivieren"), - ("Enable WebRTC P2P connection", "WebRTC-P2P-Verbindung aktivieren"), ("Enable UDP hole punching", "UDP-Hole-Punching aktivieren"), ("View camera", "Kamera anzeigen"), ("Enable camera", "Kamera zulassen"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "Aktivieren"), ("Reuse one connection for port forwarding", "Eine Verbindung für die Portweiterleitung wiederverwenden"), ("port-forward-mux-tip", "Alle Verbindungen einer Portweiterleitung über eine einzige Verbindung zur Gegenstelle führen, statt sich für jede einzelne neu zu verbinden und anzumelden."), + ("Enable WebRTC P2P connection", "WebRTC-P2P-Verbindung aktivieren"), ].iter().cloned().collect(); } diff --git a/src/lang/el.rs b/src/lang/el.rs index a2f368251..68d95a4d1 100644 --- a/src/lang/el.rs +++ b/src/lang/el.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "Προεπιλεγμένη ταχύτητα trackpad"), ("Numeric one-time password", "Αριθμητικός κωδικός πρόσβασης μίας χρήσης"), ("Enable IPv6 P2P connection", "Ενεργοποίηση σύνδεσης IPv6 P2P"), - ("Enable WebRTC P2P connection", "Ενεργοποίηση σύνδεσης WebRTC P2P"), ("Enable UDP hole punching", "Ενεργοποίηση διάτρησης οπών UDP"), ("View camera", "Προβολή κάμερας"), ("Enable camera", "Ενεργοποίηση κάμερας"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "Ενεργοποίηση"), ("Reuse one connection for port forwarding", "Επαναχρησιμοποίηση μίας σύνδεσης για την προώθηση θυρών"), ("port-forward-mux-tip", "Όλες οι συνδέσεις μιας προώθησης θυρών περνούν από μία μόνο σύνδεση προς τον απομακρυσμένο υπολογιστή, αντί να πραγματοποιείται νέα σύνδεση και ταυτοποίηση για κάθε μία."), + ("Enable WebRTC P2P connection", "Ενεργοποίηση σύνδεσης WebRTC P2P"), ].iter().cloned().collect(); } diff --git a/src/lang/eo.rs b/src/lang/eo.rs index 9fd244218..1a1976f9f 100644 --- a/src/lang/eo.rs +++ b/src/lang/eo.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "Implicita rapideco de tuŝplato"), ("Numeric one-time password", "Numera unufoja pasvorto"), ("Enable IPv6 P2P connection", "Ebligi IPv6 P2P-konekton"), - ("Enable WebRTC P2P connection", "Ebligi WebRTC P2P-konekton"), ("Enable UDP hole punching", "Ebligi UDP-trapikadon"), ("View camera", "Rigardi kameron"), ("Enable camera", "Ebligi kameron"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "Ebligi"), ("Reuse one connection for port forwarding", "Reuzi unu konekton por pordo-plusendado"), ("port-forward-mux-tip", "Ĉiuj konektoj de unu pordo-plusendado iras tra unu sola konekto al la alia komputilo, anstataŭ konekti kaj ensaluti denove por ĉiu el ili."), + ("Enable WebRTC P2P connection", "Ebligi WebRTC P2P-konekton"), ].iter().cloned().collect(); } diff --git a/src/lang/es.rs b/src/lang/es.rs index 7c7da0431..53dc750a4 100644 --- a/src/lang/es.rs +++ b/src/lang/es.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "Velocidad predeterminada de trackpad"), ("Numeric one-time password", "Contraseña numérica de un solo uso"), ("Enable IPv6 P2P connection", "Habilitar conexión IPv6 P2P"), - ("Enable WebRTC P2P connection", "Habilitar conexión WebRTC P2P"), ("Enable UDP hole punching", "Habilitar perforación de agujero UDP"), ("View camera", "Ver cámara"), ("Enable camera", "Habilitar cámara"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "Habilitar"), ("Reuse one connection for port forwarding", "Reutilizar una conexión para la redirección de puertos"), ("port-forward-mux-tip", "Llevar todas las conexiones de una redirección de puertos por una única conexión con el otro equipo, en lugar de conectar e iniciar sesión de nuevo para cada una."), + ("Enable WebRTC P2P connection", "Habilitar conexión WebRTC P2P"), ].iter().cloned().collect(); } diff --git a/src/lang/et.rs b/src/lang/et.rs index a75f4798e..3f4ad7716 100644 --- a/src/lang/et.rs +++ b/src/lang/et.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "Vaikimisi puuteplaadi kiirus"), ("Numeric one-time password", "Numbriline ühekordne parool"), ("Enable IPv6 P2P connection", "Luba IPv6 P2P-ühendus"), - ("Enable WebRTC P2P connection", "Luba WebRTC P2P-ühendus"), ("Enable UDP hole punching", "Luba UDP-augustamine"), ("View camera", "Vaata kaamerat"), ("Enable camera", "Luba kaamera"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "Luba"), ("Reuse one connection for port forwarding", "Kasuta pordi suunamiseks üht ühendust"), ("port-forward-mux-tip", "Juhib ühe pordisuunamise kõik ühendused ühe teise arvutiga loodud ühenduse kaudu, selle asemel et iga ühenduse jaoks uuesti ühenduda ja sisse logida."), + ("Enable WebRTC P2P connection", "Luba WebRTC P2P-ühendus"), ].iter().cloned().collect(); } diff --git a/src/lang/eu.rs b/src/lang/eu.rs index 37edaba34..3cb557e1a 100644 --- a/src/lang/eu.rs +++ b/src/lang/eu.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "Trackpad-aren abiadura lehenetsia"), ("Numeric one-time password", "Behin-behineko pasahitz numerikoa"), ("Enable IPv6 P2P connection", "Gaitu IPv6 P2P konexioa"), - ("Enable WebRTC P2P connection", "Gaitu WebRTC P2P konexioa"), ("Enable UDP hole punching", "Gaitu UDP zulo-egitea"), ("View camera", "Ikusi kamera"), ("Enable camera", "Gaitu kamera"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "Gaitu"), ("Reuse one connection for port forwarding", "Berrerabili konexio bakarra portuen birbideratzerako"), ("port-forward-mux-tip", "Portu-birbideratze baten konexio guztiak beste ordenagailurako konexio bakar batetik eramaten ditu, bakoitzerako berriro konektatu eta saioa hasi beharrean."), + ("Enable WebRTC P2P connection", "Gaitu WebRTC P2P konexioa"), ].iter().cloned().collect(); } diff --git a/src/lang/fa.rs b/src/lang/fa.rs index a97e1eb09..bf14f090d 100644 --- a/src/lang/fa.rs +++ b/src/lang/fa.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "سرعت پیش‌فرض ترک‌پد"), ("Numeric one-time password", "رمز عبور یک‌بار مصرف عددی"), ("Enable IPv6 P2P connection", "فعال‌سازی اتصال همتا‌به‌همتای IPv6"), - ("Enable WebRTC P2P connection", "فعال‌سازی اتصال همتا‌به‌همتای WebRTC"), ("Enable UDP hole punching", "فعال‌سازی تکنیک UDP hole punching"), ("View camera", "نمایش دوربین"), ("Enable camera", "فعال کردن دوربین"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "فعال‌سازی"), ("Reuse one connection for port forwarding", "استفاده مجدد از یک اتصال برای هدایت پورت"), ("port-forward-mux-tip", "همه اتصال‌های یک هدایت پورت از یک اتصال واحد به دستگاه مقابل عبور می‌کنند، به‌جای اتصال و ورود دوباره برای هر کدام."), + ("Enable WebRTC P2P connection", "فعال‌سازی اتصال همتا‌به‌همتای WebRTC"), ].iter().cloned().collect(); } diff --git a/src/lang/fi.rs b/src/lang/fi.rs index c53549bf1..0dcafa431 100644 --- a/src/lang/fi.rs +++ b/src/lang/fi.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "Oletusnopeus kosketuslevylle"), ("Numeric one-time password", "Numeerinen kertakäyttösalasana"), ("Enable IPv6 P2P connection", "Ota IPv6 P2P yhteys käyttöön"), - ("Enable WebRTC P2P connection", "Ota WebRTC P2P yhteys käyttöön"), ("Enable UDP hole punching", "Ota käyttöön UDP hole punching tekniikka"), ("View camera", "Näytä kamera"), ("Enable camera", "Ota kamera käyttöön"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "Ota käyttöön"), ("Reuse one connection for port forwarding", "Käytä yhtä yhteyttä portin edelleenohjaukseen"), ("port-forward-mux-tip", "Välittää kaikki yhden portin edelleenohjauksen yhteydet yhden vastapuoleen avatun yhteyden kautta sen sijaan, että jokaista varten muodostettaisiin yhteys ja kirjauduttaisiin uudelleen."), + ("Enable WebRTC P2P connection", "Ota WebRTC P2P yhteys käyttöön"), ].iter().cloned().collect(); } diff --git a/src/lang/fr.rs b/src/lang/fr.rs index 4e539ab00..b5e27871f 100644 --- a/src/lang/fr.rs +++ b/src/lang/fr.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "Vitesse par défaut du pavé tactile"), ("Numeric one-time password", "Mot de passe à usage unique numérique"), ("Enable IPv6 P2P connection", "Activer la connexion P2P IPv6"), - ("Enable WebRTC P2P connection", "Activer la connexion P2P WebRTC"), ("Enable UDP hole punching", "Activer le « hole punching » UDP"), ("View camera", "Afficher la caméra"), ("Enable camera", "Activer la caméra"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "Activer"), ("Reuse one connection for port forwarding", "Réutiliser une seule connexion pour la redirection de ports"), ("port-forward-mux-tip", "Faire passer toutes les connexions d'une redirection de ports par une seule connexion vers le pair, au lieu de se connecter et de s'authentifier à nouveau pour chacune."), + ("Enable WebRTC P2P connection", "Activer la connexion P2P WebRTC"), ].iter().cloned().collect(); } diff --git a/src/lang/ge.rs b/src/lang/ge.rs index e7fc9d3f0..41b17b5cc 100644 --- a/src/lang/ge.rs +++ b/src/lang/ge.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "ტაჩპადის ნაგულისხმევი სიჩქარე"), ("Numeric one-time password", "ციფრული ერთჯერადი პაროლი"), ("Enable IPv6 P2P connection", "IPv6 P2P კავშირის ჩართვა"), - ("Enable WebRTC P2P connection", "WebRTC P2P კავშირის ჩართვა"), ("Enable UDP hole punching", "UDP hole punching-ის ჩართვა"), ("View camera", "კამერის ნახვა"), ("Enable camera", "კამერის ჩართვა"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "ჩართვა"), ("Reuse one connection for port forwarding", "პორტის გადამისამართებისთვის ერთი კავშირის ხელახლა გამოყენება"), ("port-forward-mux-tip", "ერთი პორტის გადამისამართების ყველა კავშირი გადის მეორე კომპიუტერთან დამყარებული ერთი კავშირით, ნაცვლად იმისა, რომ თითოეულისთვის თავიდან დაუკავშირდეს და შევიდეს სისტემაში."), + ("Enable WebRTC P2P connection", "WebRTC P2P კავშირის ჩართვა"), ].iter().cloned().collect(); } diff --git a/src/lang/gu.rs b/src/lang/gu.rs index 577c873ae..dfef2e997 100644 --- a/src/lang/gu.rs +++ b/src/lang/gu.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "ડિફોલ્ટ ટ્રેકપેડ સ્પીડ"), ("Numeric one-time password", "ન્યુમેરિક OTP"), ("Enable IPv6 P2P connection", "IPv6 P2P કનેક્શન સક્ષમ કરો"), - ("Enable WebRTC P2P connection", "WebRTC P2P કનેક્શન સક્ષમ કરો"), ("Enable UDP hole punching", "UDP હોલ પંચિંગ સક્ષમ કરો"), ("View camera", "કેમેરા જુઓ"), ("Enable camera", "કેમેરા સક્ષમ કરો"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "સક્ષમ કરો"), ("Reuse one connection for port forwarding", "પોર્ટ ફોરવર્ડિંગ માટે એક જ કનેક્શન ફરી વાપરો"), ("port-forward-mux-tip", "એક પોર્ટ ફોરવર્ડિંગનાં બધાં કનેક્શન સામેના કમ્પ્યુટર સાથેના એક જ કનેક્શન મારફતે જાય છે, દરેક માટે ફરીથી કનેક્ટ અને લોગિન કરવાને બદલે."), + ("Enable WebRTC P2P connection", "WebRTC P2P કનેક્શન સક્ષમ કરો"), ].iter().cloned().collect(); } diff --git a/src/lang/he.rs b/src/lang/he.rs index 84400377b..9b0c242a4 100644 --- a/src/lang/he.rs +++ b/src/lang/he.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "מהירות ברירת מחדל של משטח מגע"), ("Numeric one-time password", "סיסמה חד-פעמית מספרית"), ("Enable IPv6 P2P connection", "אפשר חיבור IPv6 P2P"), - ("Enable WebRTC P2P connection", "אפשר חיבור WebRTC P2P"), ("Enable UDP hole punching", "אפשר UDP hole punching"), ("View camera", "הצג מצלמה"), ("Enable camera", "הפעל מצלמה"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "הפעל"), ("Reuse one connection for port forwarding", "שימוש חוזר בחיבור אחד להעברת פורטים"), ("port-forward-mux-tip", "כל החיבורים של העברת פורטים אחת עוברים דרך חיבור יחיד למחשב המרוחק, במקום ליצור חיבור חדש ולהיכנס מחדש עבור כל אחד מהם."), + ("Enable WebRTC P2P connection", "אפשר חיבור WebRTC P2P"), ].iter().cloned().collect(); } diff --git a/src/lang/hi.rs b/src/lang/hi.rs index f3c3889d6..32a3d836c 100644 --- a/src/lang/hi.rs +++ b/src/lang/hi.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "डिफ़ॉल्ट ट्रैकपैड गति"), ("Numeric one-time password", "संख्यात्मक वन-टाइम पासवर्ड"), ("Enable IPv6 P2P connection", "IPv6 P2P कनेक्शन सक्षम करें"), - ("Enable WebRTC P2P connection", "WebRTC P2P कनेक्शन सक्षम करें"), ("Enable UDP hole punching", "UDP होल पंचिंग सक्षम करें"), ("View camera", "कैमरा देखें"), ("Enable camera", "कैमरा सक्षम करें"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "सक्षम करें"), ("Reuse one connection for port forwarding", "पोर्ट फ़ॉरवर्डिंग के लिए एक ही कनेक्शन दोबारा उपयोग करें"), ("port-forward-mux-tip", "एक पोर्ट फ़ॉरवर्डिंग के सभी कनेक्शन दूसरे कंप्यूटर से बने एक ही कनेक्शन से होकर जाते हैं, हर एक के लिए दोबारा कनेक्ट और लॉगिन करने के बजाय।"), + ("Enable WebRTC P2P connection", "WebRTC P2P कनेक्शन सक्षम करें"), ].iter().cloned().collect(); } diff --git a/src/lang/hr.rs b/src/lang/hr.rs index 991826d26..a27410774 100644 --- a/src/lang/hr.rs +++ b/src/lang/hr.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "Zadana brzina dodirne ploče"), ("Numeric one-time password", "Numerička jednokratna lozinka"), ("Enable IPv6 P2P connection", "Omogući IPv6 P2P vezu"), - ("Enable WebRTC P2P connection", "Omogući WebRTC P2P vezu"), ("Enable UDP hole punching", "Omogući UDP hole punching"), ("View camera", "Pregled kamere"), ("Enable camera", "Omogući kameru"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "Omogući"), ("Reuse one connection for port forwarding", "Ponovno koristi jednu vezu za prosljeđivanje portova"), ("port-forward-mux-tip", "Sve veze jednog prosljeđivanja portova idu kroz jednu vezu prema drugoj strani, umjesto ponovnog povezivanja i prijave za svaku od njih."), + ("Enable WebRTC P2P connection", "Omogući WebRTC P2P vezu"), ].iter().cloned().collect(); } diff --git a/src/lang/hu.rs b/src/lang/hu.rs index 141f14201..f3b002891 100644 --- a/src/lang/hu.rs +++ b/src/lang/hu.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "Alapértelmezett érintőpad sebessége"), ("Numeric one-time password", "Numerikus, egyszer használatos jelszó"), ("Enable IPv6 P2P connection", "IPv6 P2P kapcsolat engedélyezése"), - ("Enable WebRTC P2P connection", "WebRTC P2P kapcsolat engedélyezése"), ("Enable UDP hole punching", "UDP résszűrés engedélyezése"), ("View camera", "Kamera nézet"), ("Enable camera", "Kamera engedélyezése"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "Engedélyezés"), ("Reuse one connection for port forwarding", "Egyetlen kapcsolat újrafelhasználása a portátirányításhoz"), ("port-forward-mux-tip", "Egy portátirányítás összes kapcsolatát egyetlen, a másik géppel létesített kapcsolaton vezeti át, ahelyett hogy mindegyikhez újra csatlakozna és bejelentkezne."), + ("Enable WebRTC P2P connection", "WebRTC P2P kapcsolat engedélyezése"), ].iter().cloned().collect(); } diff --git a/src/lang/id.rs b/src/lang/id.rs index a1a557847..fdd976797 100644 --- a/src/lang/id.rs +++ b/src/lang/id.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "Kecepatan default trackpad"), ("Numeric one-time password", "Kata sandi sekali pakai numerik"), ("Enable IPv6 P2P connection", "Aktifkan koneksi P2P IPv6"), - ("Enable WebRTC P2P connection", "Aktifkan koneksi P2P WebRTC"), ("Enable UDP hole punching", "Aktifkan UDP hole punching"), ("View camera", "Lihat Kamera"), ("Enable camera", "Aktifkan kamera"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "Aktifkan"), ("Reuse one connection for port forwarding", "Gunakan ulang satu koneksi untuk penerusan port"), ("port-forward-mux-tip", "Menyalurkan semua koneksi dari satu penerusan port melalui satu koneksi ke perangkat lain, alih-alih menyambung dan masuk lagi untuk setiap koneksi."), + ("Enable WebRTC P2P connection", "Aktifkan koneksi P2P WebRTC"), ].iter().cloned().collect(); } diff --git a/src/lang/it.rs b/src/lang/it.rs index f215bf21b..cce424d3c 100644 --- a/src/lang/it.rs +++ b/src/lang/it.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "Velocità predefinita trackpad"), ("Numeric one-time password", "Password numerica monouso"), ("Enable IPv6 P2P connection", "Abilita connessione P2P IPv6"), - ("Enable WebRTC P2P connection", "Abilita connessione P2P WebRTC"), ("Enable UDP hole punching", "Abilita hole punching UDP"), ("View camera", "Visualizza telecamera"), ("Enable camera", "Abilita camera"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "Abilita"), ("Reuse one connection for port forwarding", "Riutilizza una sola connessione per l'inoltro delle porte"), ("port-forward-mux-tip", "Fa passare tutte le connessioni di un inoltro di porte su un'unica connessione verso il dispositivo remoto, invece di connettersi e autenticarsi di nuovo per ognuna."), + ("Enable WebRTC P2P connection", "Abilita connessione P2P WebRTC"), ].iter().cloned().collect(); } diff --git a/src/lang/ja.rs b/src/lang/ja.rs index 2215888d2..93834bccf 100644 --- a/src/lang/ja.rs +++ b/src/lang/ja.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "既定のトラックパッドの速度"), ("Numeric one-time password", "数字のワンタイムパスワード"), ("Enable IPv6 P2P connection", "IPv6 P2P 接続を有効化する"), - ("Enable WebRTC P2P connection", "WebRTC P2P 接続を有効化する"), ("Enable UDP hole punching", "UDP ホールパンチを有効化する"), ("View camera", "カメラを表示"), ("Enable camera", "カメラを有効化する"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "有効にする"), ("Reuse one connection for port forwarding", "ポート転送で 1 つの接続を再利用する"), ("port-forward-mux-tip", "1 つのポート転送のすべての接続を、相手への 1 本の接続にまとめます。接続ごとに接続とログインをやり直しません。"), + ("Enable WebRTC P2P connection", "WebRTC P2P 接続を有効化する"), ].iter().cloned().collect(); } diff --git a/src/lang/ko.rs b/src/lang/ko.rs index 336c282ca..35ae48e9e 100644 --- a/src/lang/ko.rs +++ b/src/lang/ko.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "기본 트랙패드 속도"), ("Numeric one-time password", "숫자 일회용 비밀번호"), ("Enable IPv6 P2P connection", "IPv6 P2P 연결 사용"), - ("Enable WebRTC P2P connection", "WebRTC P2P 연결 사용"), ("Enable UDP hole punching", "UDP 홀 펀칭 사용"), ("View camera", "카메라 보기"), ("Enable camera", "카메라 허용"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "활성화"), ("Reuse one connection for port forwarding", "포트 포워딩에 연결 하나를 재사용"), ("port-forward-mux-tip", "포트 포워딩 하나의 모든 연결을 상대방과의 단일 연결로 전달합니다. 연결마다 다시 접속하고 로그인하지 않습니다."), + ("Enable WebRTC P2P connection", "WebRTC P2P 연결 사용"), ].iter().cloned().collect(); } diff --git a/src/lang/kz.rs b/src/lang/kz.rs index 85b684349..b33d3b740 100644 --- a/src/lang/kz.rs +++ b/src/lang/kz.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "Әдепкі трекпад жылдамдығы"), ("Numeric one-time password", "Сандық бір-реттік құпия сөз"), ("Enable IPv6 P2P connection", "IPv6 P2P қосылымын іске қосу"), - ("Enable WebRTC P2P connection", "WebRTC P2P қосылымын іске қосу"), ("Enable UDP hole punching", "UDP hole punching'ті іске қосу"), ("View camera", "Камераны Көру"), ("Enable camera", "Камераны қосу"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "Қосу"), ("Reuse one connection for port forwarding", "Порт бағыттау үшін бір қосылымды қайта пайдалану"), ("port-forward-mux-tip", "Бір порт бағыттаудың барлық қосылымдары әрқайсысы үшін қайта қосылып кірудің орнына қарсы құрылғымен орнатылған бір қосылым арқылы өтеді."), + ("Enable WebRTC P2P connection", "WebRTC P2P қосылымын іске қосу"), ].iter().cloned().collect(); } diff --git a/src/lang/lt.rs b/src/lang/lt.rs index 904240cd3..73c8e69c2 100644 --- a/src/lang/lt.rs +++ b/src/lang/lt.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "Numatytasis jutiklinės dalies greitis"), ("Numeric one-time password", "Skaitmeninis vienkartinis slaptažodis"), ("Enable IPv6 P2P connection", "Įgalinti IPv6 P2P ryšį"), - ("Enable WebRTC P2P connection", "Įgalinti WebRTC P2P ryšį"), ("Enable UDP hole punching", "Įgalinti UDP gręžimą (hole punching)"), ("View camera", "Peržiūrėti kamerą"), ("Enable camera", "Įgalinti kamerą"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "Įgalinti"), ("Reuse one connection for port forwarding", "Prievadų peradresavimui naudoti vieną ryšį"), ("port-forward-mux-tip", "Visi vieno prievadų peradresavimo ryšiai eina per vieną ryšį su kitu kompiuteriu, užuot kiekvienam iš jų jungiantis ir prisijungiant iš naujo."), + ("Enable WebRTC P2P connection", "Įgalinti WebRTC P2P ryšį"), ].iter().cloned().collect(); } diff --git a/src/lang/lv.rs b/src/lang/lv.rs index 524df6595..50bb6db4d 100644 --- a/src/lang/lv.rs +++ b/src/lang/lv.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "Noklusējuma skārienpaliktņa ātrums"), ("Numeric one-time password", "Vienreiz lietojama ciparu parole"), ("Enable IPv6 P2P connection", "Iespējot IPv6 P2P savienojumu"), - ("Enable WebRTC P2P connection", "Iespējot WebRTC P2P savienojumu"), ("Enable UDP hole punching", "Iespējot UDP caurumu veidošanu"), ("View camera", "Skatīt kameru"), ("Enable camera", "Iespējot kameru"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "Iespējot"), ("Reuse one connection for port forwarding", "Atkārtoti izmantot vienu savienojumu portu pārsūtīšanai"), ("port-forward-mux-tip", "Visi viena portu pārsūtījuma savienojumi tiek novadīti pa vienu savienojumu ar otru datoru, nevis katram no tiem izveidojot jaunu savienojumu un pieteikšanos."), + ("Enable WebRTC P2P connection", "Iespējot WebRTC P2P savienojumu"), ].iter().cloned().collect(); } diff --git a/src/lang/ml.rs b/src/lang/ml.rs index d88ce9af0..a1bfbd634 100644 --- a/src/lang/ml.rs +++ b/src/lang/ml.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "സാധാരണ ട്രാക്ക്പാഡ് വേഗത"), ("Numeric one-time password", "അക്കങ്ങൾ മാത്രമുള്ള OTP"), ("Enable IPv6 P2P connection", "IPv6 P2P കണക്ഷൻ അനുവദിക്കുക"), - ("Enable WebRTC P2P connection", "WebRTC P2P കണക്ഷൻ അനുവദിക്കുക"), ("Enable UDP hole punching", "UDP ഹോൾ പഞ്ചിംഗ് അനുവദിക്കുക"), ("View camera", "ക്യാമറ കാണുക"), ("Enable camera", "ക്യാമറ ഓൺ ചെയ്യുക"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "അനുവദിക്കുക"), ("Reuse one connection for port forwarding", "പോർട്ട് ഫോർവേഡിംഗിന് ഒരേ കണക്ഷൻ വീണ്ടും ഉപയോഗിക്കുക"), ("port-forward-mux-tip", "ഒരു പോർട്ട് ഫോർവേഡിംഗിന്റെ എല്ലാ കണക്ഷനുകളും മറ്റേ കമ്പ്യൂട്ടറിലേക്കുള്ള ഒരൊറ്റ കണക്ഷനിലൂടെ കടന്നുപോകുന്നു, ഓരോന്നിനും വീണ്ടും കണക്റ്റ് ചെയ്ത് ലോഗിൻ ചെയ്യുന്നതിനു പകരം."), + ("Enable WebRTC P2P connection", "WebRTC P2P കണക്ഷൻ അനുവദിക്കുക"), ].iter().cloned().collect(); } diff --git a/src/lang/nb.rs b/src/lang/nb.rs index 4036ba226..77e2718b7 100644 --- a/src/lang/nb.rs +++ b/src/lang/nb.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "Standard styreplatehastighet"), ("Numeric one-time password", "Numerisk engangspassord"), ("Enable IPv6 P2P connection", "Aktiver IPv6 P2P-tilkobling"), - ("Enable WebRTC P2P connection", "Aktiver WebRTC P2P-tilkobling"), ("Enable UDP hole punching", "Aktiver UDP hole punching"), ("View camera", "Vis kamera"), ("Enable camera", "Aktiver kamera"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "Aktiver"), ("Reuse one connection for port forwarding", "Gjenbruk én tilkobling for portvideresending"), ("port-forward-mux-tip", "Fører alle tilkoblinger i en portvideresending gjennom én enkelt tilkobling til motparten i stedet for å koble til og logge inn på nytt for hver enkelt."), + ("Enable WebRTC P2P connection", "Aktiver WebRTC P2P-tilkobling"), ].iter().cloned().collect(); } diff --git a/src/lang/nl.rs b/src/lang/nl.rs index f8de33800..52b9ba424 100644 --- a/src/lang/nl.rs +++ b/src/lang/nl.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "Standaardsnelheid Trackpad"), ("Numeric one-time password", "Eenmalig numeriek wachtwoord"), ("Enable IPv6 P2P connection", "IPv6 P2P-verbinding inschakelen"), - ("Enable WebRTC P2P connection", "WebRTC P2P-verbinding inschakelen"), ("Enable UDP hole punching", "UDP-hole punching inschakelen"), ("View camera", "Camera weergeven"), ("Enable camera", "Camera inschakelen"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "Inschakelen"), ("Reuse one connection for port forwarding", "Eén verbinding hergebruiken voor poortdoorschakeling"), ("port-forward-mux-tip", "Alle verbindingen van een poortdoorschakeling via één enkele verbinding met de andere computer laten lopen, in plaats van voor elke verbinding opnieuw verbinding te maken en in te loggen."), + ("Enable WebRTC P2P connection", "WebRTC P2P-verbinding inschakelen"), ].iter().cloned().collect(); } diff --git a/src/lang/pl.rs b/src/lang/pl.rs index b9d91fc00..efe48083a 100644 --- a/src/lang/pl.rs +++ b/src/lang/pl.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "Domyślna szybkość gładzika"), ("Numeric one-time password", "Jednorazowe hasło cyfrowe"), ("Enable IPv6 P2P connection", "Włącz połączenie P2P IPv6"), - ("Enable WebRTC P2P connection", "Włącz połączenie P2P WebRTC"), ("Enable UDP hole punching", "Włącz tworzenie tunelu UDP"), ("View camera", "Podgląd kamery"), ("Enable camera", "Włącz kamerę"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "Włącz"), ("Reuse one connection for port forwarding", "Użyj ponownie jednego połączenia do przekierowania portów"), ("port-forward-mux-tip", "Przekazuj wszystkie połączenia jednego przekierowania portów przez jedno połączenie ze zdalnym komputerem, zamiast łączyć się i logować od nowa dla każdego z nich."), + ("Enable WebRTC P2P connection", "Włącz połączenie P2P WebRTC"), ].iter().cloned().collect(); } diff --git a/src/lang/pt_PT.rs b/src/lang/pt_PT.rs index 2950dea51..a0d4993cd 100644 --- a/src/lang/pt_PT.rs +++ b/src/lang/pt_PT.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "Velocidade predefinida do trackpad"), ("Numeric one-time password", "Palavra-passe de uso único numérica"), ("Enable IPv6 P2P connection", "Ativar ligação P2P por IPv6"), - ("Enable WebRTC P2P connection", "Ativar ligação P2P por WebRTC"), ("Enable UDP hole punching", "Ativar UDP hole punching"), ("View camera", "Ver câmara"), ("Enable camera", "Ativar câmara"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "Ativar"), ("Reuse one connection for port forwarding", "Reutilizar uma ligação para o reencaminhamento de portas"), ("port-forward-mux-tip", "Encaminhar todas as ligações de um reencaminhamento de portas por uma única ligação ao outro computador, em vez de ligar e iniciar sessão novamente para cada uma."), + ("Enable WebRTC P2P connection", "Ativar ligação P2P por WebRTC"), ].iter().cloned().collect(); } diff --git a/src/lang/ptbr.rs b/src/lang/ptbr.rs index 4bf26d81d..0d70c06ce 100644 --- a/src/lang/ptbr.rs +++ b/src/lang/ptbr.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "Velocidade padrão do trackpad"), ("Numeric one-time password", "Senha numérica de uso único"), ("Enable IPv6 P2P connection", "Habilitar conexão IPv6 P2P"), - ("Enable WebRTC P2P connection", "Habilitar conexão WebRTC P2P"), ("Enable UDP hole punching", "Habilitar UDP hole punching"), ("View camera", "Visualizar câmera"), ("Enable camera", "Habilitar câmera"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "Habilitar"), ("Reuse one connection for port forwarding", "Reutilizar uma conexão para encaminhamento de portas"), ("port-forward-mux-tip", "Levar todas as conexões de um encaminhamento de portas por uma única conexão com o outro computador, em vez de conectar e fazer login novamente para cada uma."), + ("Enable WebRTC P2P connection", "Habilitar conexão WebRTC P2P"), ].iter().cloned().collect(); } diff --git a/src/lang/ro.rs b/src/lang/ro.rs index f96a537ab..b8b9290a1 100644 --- a/src/lang/ro.rs +++ b/src/lang/ro.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "Viteza implicită a touchpad-ului"), ("Numeric one-time password", "Parolă unică numerică"), ("Enable IPv6 P2P connection", "Activează conexiunea P2P prin IPv6"), - ("Enable WebRTC P2P connection", "Activează conexiunea P2P prin WebRTC"), ("Enable UDP hole punching", "Activează traversarea UDP (hole punching)"), ("View camera", "Vezi camera"), ("Enable camera", "Activează camera"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "Activează"), ("Reuse one connection for port forwarding", "Reutilizează o singură conexiune pentru redirecționarea porturilor"), ("port-forward-mux-tip", "Trece toate conexiunile unei redirecționări de porturi printr-o singură conexiune către celălalt calculator, în loc să se conecteze și să se autentifice din nou pentru fiecare."), + ("Enable WebRTC P2P connection", "Activează conexiunea P2P prin WebRTC"), ].iter().cloned().collect(); } diff --git a/src/lang/ru.rs b/src/lang/ru.rs index d27ebcf5d..b66c0c2ab 100644 --- a/src/lang/ru.rs +++ b/src/lang/ru.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "Скорость трекпада по умолчанию"), ("Numeric one-time password", "Цифровой одноразовый пароль"), ("Enable IPv6 P2P connection", "Использовать подключение IPv6 P2P"), - ("Enable WebRTC P2P connection", "Использовать подключение WebRTC P2P"), ("Enable UDP hole punching", "Использовать UDP hole punching"), ("View camera", "Просмотр камеры"), ("Enable camera", "Включить камеру"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "Включить"), ("Reuse one connection for port forwarding", "Использовать одно подключение для перенаправления портов"), ("port-forward-mux-tip", "Передавать все соединения одного перенаправления портов через одно подключение к удалённому устройству вместо повторного подключения и входа для каждого из них."), + ("Enable WebRTC P2P connection", "Использовать подключение WebRTC P2P"), ].iter().cloned().collect(); } diff --git a/src/lang/sc.rs b/src/lang/sc.rs index df90353a7..abe559130 100644 --- a/src/lang/sc.rs +++ b/src/lang/sc.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "Velotzidade predefinida de su pannellu tàtile"), ("Numeric one-time password", "Crae numèrica monoimpreu"), ("Enable IPv6 P2P connection", "Abìlita connessione P2P IPv6"), - ("Enable WebRTC P2P connection", "Abìlita connessione P2P WebRTC"), ("Enable UDP hole punching", "Abìlita s'istampadura UDP"), ("View camera", "Mustra sa càmera"), ("Enable camera", "Abìlita sa càmera"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "Abìlita"), ("Reuse one connection for port forwarding", "Torra a impreare una connessione pro s'imbiu de is portas"), ("port-forward-mux-tip", "Totu is connessiones de un'imbiu de portas passant in una connessione ebbia a s'àteru computadore, in logu de si connètere e intrare torra pro dontzi una."), + ("Enable WebRTC P2P connection", "Abìlita connessione P2P WebRTC"), ].iter().cloned().collect(); } diff --git a/src/lang/sk.rs b/src/lang/sk.rs index bae86c99d..702c4a091 100644 --- a/src/lang/sk.rs +++ b/src/lang/sk.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "Predvolená rýchlosť touchpadu"), ("Numeric one-time password", "Číselné jednorazové heslo"), ("Enable IPv6 P2P connection", "Povoliť pripojenie IPv6 P2P"), - ("Enable WebRTC P2P connection", "Povoliť pripojenie WebRTC P2P"), ("Enable UDP hole punching", "Povoliť UDP hole punching"), ("View camera", "Zobraziť kameru"), ("Enable camera", "Povoliť kameru"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "Povoliť"), ("Reuse one connection for port forwarding", "Znovu použiť jedno pripojenie na presmerovanie portov"), ("port-forward-mux-tip", "Vedie všetky pripojenia jedného presmerovania portov cez jediné pripojenie k druhej strane namiesto opakovaného pripájania a prihlasovania pre každé z nich."), + ("Enable WebRTC P2P connection", "Povoliť pripojenie WebRTC P2P"), ].iter().cloned().collect(); } diff --git a/src/lang/sl.rs b/src/lang/sl.rs index a1a48d7da..08ab41fd6 100644 --- a/src/lang/sl.rs +++ b/src/lang/sl.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "Privzeta hitrost sledilne ploščice"), ("Numeric one-time password", "Numerično enkratno geslo"), ("Enable IPv6 P2P connection", "Omogoči povezavo IPv6 P2P"), - ("Enable WebRTC P2P connection", "Omogoči povezavo WebRTC P2P"), ("Enable UDP hole punching", "Omogoči preboj lukenj UDP"), ("View camera", "Pogled kamere"), ("Enable camera", "Omogoči kamero"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "Omogoči"), ("Reuse one connection for port forwarding", "Ponovno uporabi eno povezavo za posredovanje vrat"), ("port-forward-mux-tip", "Vse povezave enega posredovanja vrat potekajo prek ene same povezave do druge strani, namesto ponovnega povezovanja in prijave za vsako od njih."), + ("Enable WebRTC P2P connection", "Omogoči povezavo WebRTC P2P"), ].iter().cloned().collect(); } diff --git a/src/lang/sq.rs b/src/lang/sq.rs index e30965500..419cc7c16 100644 --- a/src/lang/sq.rs +++ b/src/lang/sq.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "Shpejtësia e parazgjedhur e trackpad-it"), ("Numeric one-time password", "Fjalëkalim numerik një-herë"), ("Enable IPv6 P2P connection", "Aktivizo lidhjen IPv6 P2P"), - ("Enable WebRTC P2P connection", "Aktivizo lidhjen WebRTC P2P"), ("Enable UDP hole punching", "Aktivizo UDP hole punching"), ("View camera", "Shiko kamerën"), ("Enable camera", "Aktivizo kamerën"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "Aktivizo"), ("Reuse one connection for port forwarding", "Ripërdor një lidhje për përcjelljen e porteve"), ("port-forward-mux-tip", "Të gjitha lidhjet e një përcjelljeje portesh kalojnë përmes një lidhjeje të vetme me kompjuterin tjetër, në vend që të lidhet dhe të hyjë sërish për secilën prej tyre."), + ("Enable WebRTC P2P connection", "Aktivizo lidhjen WebRTC P2P"), ].iter().cloned().collect(); } diff --git a/src/lang/sr.rs b/src/lang/sr.rs index 7ac20ca39..7e4055c43 100644 --- a/src/lang/sr.rs +++ b/src/lang/sr.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "Podrazumevana brzina dodirne table"), ("Numeric one-time password", "Numerička jednokratna lozinka"), ("Enable IPv6 P2P connection", "Omogući IPv6 P2P konekciju"), - ("Enable WebRTC P2P connection", "Omogući WebRTC P2P konekciju"), ("Enable UDP hole punching", "Omogući UDP hole punching"), ("View camera", "Pregled kamere"), ("Enable camera", "Omogući kameru"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "Omogući"), ("Reuse one connection for port forwarding", "Ponovo koristi jednu vezu za prosleđivanje portova"), ("port-forward-mux-tip", "Sve veze jednog prosleđivanja portova idu kroz jednu vezu ka drugoj strani, umesto povezivanja i prijavljivanja iznova za svaku od njih."), + ("Enable WebRTC P2P connection", "Omogući WebRTC P2P konekciju"), ].iter().cloned().collect(); } diff --git a/src/lang/sv.rs b/src/lang/sv.rs index 444deb9ec..84a49c3b9 100644 --- a/src/lang/sv.rs +++ b/src/lang/sv.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "Standardhastighet för styrplattan"), ("Numeric one-time password", "Numeriskt engångslösenord"), ("Enable IPv6 P2P connection", "Aktivera IPv6 P2P anslutning"), - ("Enable WebRTC P2P connection", "Aktivera WebRTC P2P anslutning"), ("Enable UDP hole punching", "Aktivera UDP hålslagning"), ("View camera", "Visa kamera"), ("Enable camera", "Aktivera kamera"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "Aktivera"), ("Reuse one connection for port forwarding", "Återanvänd en anslutning för portvidarebefordran"), ("port-forward-mux-tip", "Låt alla anslutningar i en portvidarebefordran gå via en enda anslutning till motparten, i stället för att ansluta och logga in på nytt för varje anslutning."), + ("Enable WebRTC P2P connection", "Aktivera WebRTC P2P anslutning"), ].iter().cloned().collect(); } diff --git a/src/lang/ta.rs b/src/lang/ta.rs index c65ac31db..359105b5a 100644 --- a/src/lang/ta.rs +++ b/src/lang/ta.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "இயல்புநிலை டிராக்பேட் வேகம்"), ("Numeric one-time password", "எண் ஒருமுறை கடவுச்சொல்"), ("Enable IPv6 P2P connection", "IPv6 P2P இணைப்பு இயக்கு"), - ("Enable WebRTC P2P connection", "WebRTC P2P இணைப்பு இயக்கு"), ("Enable UDP hole punching", "UDP hole punching இயக்கு"), ("View camera", "கேமரா பார்"), ("Enable camera", "கேமரா இயக்கு"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "இயக்கு"), ("Reuse one connection for port forwarding", "போர்ட் ஃபார்வேர்டிங்கிற்கு ஒரே இணைப்பை மீண்டும் பயன்படுத்து"), ("port-forward-mux-tip", "ஒரு போர்ட் ஃபார்வேர்டிங்கின் அனைத்து இணைப்புகளும் மறுமுனைக்கான ஒரே இணைப்பின் வழியாகச் செல்லும், ஒவ்வொன்றுக்கும் மீண்டும் இணைந்து உள்நுழைவதற்குப் பதிலாக."), + ("Enable WebRTC P2P connection", "WebRTC P2P இணைப்பு இயக்கு"), ].iter().cloned().collect(); } diff --git a/src/lang/template.rs b/src/lang/template.rs index 3809abc26..95bb70e44 100644 --- a/src/lang/template.rs +++ b/src/lang/template.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", ""), ("Numeric one-time password", ""), ("Enable IPv6 P2P connection", ""), - ("Enable WebRTC P2P connection", ""), ("Enable UDP hole punching", ""), ("View camera", ""), ("Enable camera", ""), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", ""), ("Reuse one connection for port forwarding", ""), ("port-forward-mux-tip", ""), + ("Enable WebRTC P2P connection", ""), ].iter().cloned().collect(); } diff --git a/src/lang/th.rs b/src/lang/th.rs index 9761931ed..e6d17f9fe 100644 --- a/src/lang/th.rs +++ b/src/lang/th.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "ความเร็วแทร็กแพดเริ่มต้น"), ("Numeric one-time password", "รหัสผ่านครั้งเดียวแบบตัวเลข"), ("Enable IPv6 P2P connection", "เปิดใช้งานการเชื่อมต่อ P2P แบบ IPv6"), - ("Enable WebRTC P2P connection", "เปิดใช้งานการเชื่อมต่อ P2P แบบ WebRTC"), ("Enable UDP hole punching", "เปิดใช้งาน UDP hole punching"), ("View camera", "ดูกล้อง"), ("Enable camera", "เปิดใช้งานกล้อง"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "เปิดใช้งาน"), ("Reuse one connection for port forwarding", "ใช้การเชื่อมต่อเดียวร่วมกันสำหรับการส่งต่อพอร์ต"), ("port-forward-mux-tip", "ส่งการเชื่อมต่อทั้งหมดของการส่งต่อพอร์ตหนึ่งรายการผ่านการเชื่อมต่อเดียวไปยังอีกฝ่าย แทนการเชื่อมต่อและเข้าสู่ระบบใหม่ทุกครั้ง"), + ("Enable WebRTC P2P connection", "เปิดใช้งานการเชื่อมต่อ P2P แบบ WebRTC"), ].iter().cloned().collect(); } diff --git a/src/lang/tr.rs b/src/lang/tr.rs index ee9487934..5f3da40d2 100644 --- a/src/lang/tr.rs +++ b/src/lang/tr.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "Varsayılan izleme paneli hızı"), ("Numeric one-time password", "Sayısal tek seferlik parola"), ("Enable IPv6 P2P connection", "IPv6 P2P bağlantısını etkinleştir"), - ("Enable WebRTC P2P connection", "WebRTC P2P bağlantısını etkinleştir"), ("Enable UDP hole punching", "UDP delik açmayı etkinleştir"), ("View camera", "Kamerayı görüntüle"), ("Enable camera", "Kamerayı etkinleştir"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "Etkinleştir"), ("Reuse one connection for port forwarding", "Port yönlendirme için tek bağlantıyı yeniden kullan"), ("port-forward-mux-tip", "Bir port yönlendirmesindeki tüm bağlantıları, her biri için yeniden bağlanıp oturum açmak yerine karşı tarafa açılan tek bir bağlantı üzerinden taşır."), + ("Enable WebRTC P2P connection", "WebRTC P2P bağlantısını etkinleştir"), ].iter().cloned().collect(); } diff --git a/src/lang/tw.rs b/src/lang/tw.rs index 98d1052ee..8f3a1d6a4 100644 --- a/src/lang/tw.rs +++ b/src/lang/tw.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "預設觸控板速度"), ("Numeric one-time password", "數字一次性密碼"), ("Enable IPv6 P2P connection", "啟用 IPv6 P2P 連線"), - ("Enable WebRTC P2P connection", "啟用 WebRTC P2P 連線"), ("Enable UDP hole punching", "啟用 UDP 打洞"), ("View camera", "檢視相機"), ("Enable camera", "允許查看鏡頭"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "啟用"), ("Reuse one connection for port forwarding", "連接埠轉送重複使用同一條連線"), ("port-forward-mux-tip", "同一條連接埠轉送規則上的所有連線共用一條到對方的連線,而不是每條連線都重新連線並登入一次。"), + ("Enable WebRTC P2P connection", "啟用 WebRTC P2P 連線"), ].iter().cloned().collect(); } diff --git a/src/lang/uk.rs b/src/lang/uk.rs index bf843680e..0b4d19c7e 100644 --- a/src/lang/uk.rs +++ b/src/lang/uk.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "Швидкість тачпада за замовчуванням"), ("Numeric one-time password", "Числовий одноразовий пароль"), ("Enable IPv6 P2P connection", "Увімкнути P2P-підключення через IPv6"), - ("Enable WebRTC P2P connection", "Увімкнути P2P-підключення через WebRTC"), ("Enable UDP hole punching", "Увімкнути UDP hole punching"), ("View camera", "Перегляд камери"), ("Enable camera", "Увімкнути камеру"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "Увімкнути"), ("Reuse one connection for port forwarding", "Використовувати одне з'єднання для перенаправлення портів"), ("port-forward-mux-tip", "Передавати всі з'єднання одного перенаправлення портів через одне з'єднання з віддаленим пристроєм замість повторного під'єднання та входу для кожного з них."), + ("Enable WebRTC P2P connection", "Увімкнути P2P-підключення через WebRTC"), ].iter().cloned().collect(); } diff --git a/src/lang/vi.rs b/src/lang/vi.rs index 6c9ba8304..8d4cf7f12 100644 --- a/src/lang/vi.rs +++ b/src/lang/vi.rs @@ -676,7 +676,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Default trackpad speed", "Tốc độ Trackpad mặc định"), ("Numeric one-time password", "Mật khẩu số dùng một lần"), ("Enable IPv6 P2P connection", "Cho phép kết nối IPv6 P2P"), - ("Enable WebRTC P2P connection", "Cho phép kết nối WebRTC P2P"), ("Enable UDP hole punching", "Bật UDP Hole Punching"), ("View camera", "Xem Camera"), ("Enable camera", "Bật Camera"), @@ -769,5 +768,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("Enable", "Bật"), ("Reuse one connection for port forwarding", "Dùng chung một kết nối cho chuyển tiếp cổng"), ("port-forward-mux-tip", "Chuyển toàn bộ kết nối của một quy tắc chuyển tiếp cổng qua một kết nối duy nhất tới máy đối phương, thay vì kết nối và đăng nhập lại cho từng kết nối."), + ("Enable WebRTC P2P connection", "Cho phép kết nối WebRTC P2P"), ].iter().cloned().collect(); }