diff --git a/flutter/lib/consts.dart b/flutter/lib/consts.dart index 20f50d218..8e05967df 100644 --- a/flutter/lib/consts.dart +++ b/flutter/lib/consts.dart @@ -178,6 +178,7 @@ const String kOptionEnableIpv6Punch = "enable-ipv6-punch"; const String kOptionAllowSyncClipboardBetweenSessions = "allow-sync-clipboard-between-sessions"; const String kOptionEnableWebrtc = "enable-webrtc"; +const String kOptionRelayFallbackDelay = "relay-fallback-delay"; const String kOptionEnableTrustedDevices = "enable-trusted-devices"; const String kOptionShowVirtualMouse = "show-virtual-mouse"; const String kOptionVirtualMouseScale = "virtual-mouse-scale"; diff --git a/flutter/lib/desktop/pages/desktop_setting_page.dart b/flutter/lib/desktop/pages/desktop_setting_page.dart index cb41d701e..82f038ca6 100644 --- a/flutter/lib/desktop/pages/desktop_setting_page.dart +++ b/flutter/lib/desktop/pages/desktop_setting_page.dart @@ -591,13 +591,7 @@ class _GeneralState extends State<_General> { isServer: false, ), ], - if (!incomingOnly) - _OptionCheckBox( - context, - 'Enable WebRTC P2P connection', - kOptionEnableWebrtc, - isServer: false, - ), + if (!incomingOnly) ...webrtcOptions(context), if (!isWeb && !incomingOnly) Tooltip( message: translate('sync-clipboard-between-sessions-tip'), @@ -887,6 +881,85 @@ class _GeneralState extends State<_General> { ).marginOnly(left: _kContentHMargin); }); } + + // How long an already-connected relay is held back to give the direct WebRTC + // attempt a chance to win. It only means anything while WebRTC is on, so it + // follows the checkbox as an indented sub-option and is hidden outright when + // the box is clear — the shape `directIp` uses for its port. + List webrtcOptions(BuildContext context) { + final stored = bind.mainGetLocalOption(key: kOptionRelayFallbackDelay); + final controller = TextEditingController(text: stored); + // What the field holds against what is saved. Apply is offered only while + // the two differ, so an untouched field shows no button at all, and neither + // does one typed back to its saved value or cleared when nothing was saved + // — the state an "edited" flag alone would still call dirty. + final typed = RxString(stored); + final saved = RxString(stored); + return [ + _OptionCheckBox( + context, + 'Enable WebRTC P2P connection', + kOptionEnableWebrtc, + isServer: false, + update: (_) => setState(() {}), + ), + () { + final enabled = mainGetLocalBoolOptionSync(kOptionEnableWebrtc); + final isOptFixed = isOptionFixed(kOptionRelayFallbackDelay); + return Offstage( + offstage: !enabled, + child: Tooltip( + message: translate('relay-fallback-delay-tip'), + child: _SubLabeledWidget( + context, + 'Relay fallback delay in seconds', + Row(children: [ + SizedBox( + width: 95, + child: TextField( + controller: controller, + enabled: enabled && !isOptFixed, + onChanged: (v) => typed.value = v, + inputFormatters: [ + // Seconds, at most one decimal. Clearing the field is + // allowed and restores the built-in default. + FilteringTextInputFormatter.allow( + RegExp(r'^([0-9]|[1-9][0-9])(\.[0-9]?)?$')), + ], + decoration: const InputDecoration( + hintText: '2.5', + contentPadding: + EdgeInsets.symmetric(vertical: 12, horizontal: 12), + ), + ).workaroundFreezeLinuxMint().marginOnly(right: 15), + ), + Obx(() => Offstage( + offstage: typed.value.trim() == saved.value.trim(), + child: ElevatedButton( + onPressed: enabled && + !isOptFixed && + !typed.value.trim().endsWith('.') && + double.tryParse(typed.value.trim()) != 0 + ? () async { + final v = controller.text.trim(); + await bind.mainSetLocalOption( + key: kOptionRelayFallbackDelay, value: v); + if (controller.text != v) controller.text = v; + typed.value = v; + saved.value = v; + } + : null, + child: Text(translate('Apply')), + ), + )) + ]), + enabled: enabled && !isOptFixed, + ), + ), + ); + }(), + ]; + } } enum _AccessMode { diff --git a/libs/base/src/config/keys.rs b/libs/base/src/config/keys.rs index de2a25879..ce38c2c98 100644 --- a/libs/base/src/config/keys.rs +++ b/libs/base/src/config/keys.rs @@ -129,6 +129,7 @@ pub const OPTION_ENABLE_UDP_PUNCH: &str = "enable-udp-punch"; pub const OPTION_ENABLE_IPV6_PUNCH: &str = "enable-ipv6-punch"; pub const OPTION_ENABLE_PORT_FORWARD_MUX: &str = "enable-port-forward-mux"; pub const OPTION_ENABLE_WEBRTC: &str = "enable-webrtc"; +pub const OPTION_RELAY_FALLBACK_DELAY: &str = "relay-fallback-delay"; pub const OPTION_ALLOW_KCP_CC: &str = "allow-kcp-congestion-control"; pub const OPTION_HIDE_USERNAME_ON_CARD: &str = "hide-username-on-card"; pub const OPTION_HIDE_HELP_CARDS: &str = "hide-help-cards"; @@ -258,6 +259,7 @@ pub const KEYS_LOCAL_SETTINGS: &[&str] = &[ OPTION_ENABLE_IPV6_PUNCH, OPTION_ENABLE_PORT_FORWARD_MUX, OPTION_ENABLE_WEBRTC, + OPTION_RELAY_FALLBACK_DELAY, OPTION_TOUCH_MODE, OPTION_SHOW_VIRTUAL_MOUSE, OPTION_SHOW_VIRTUAL_JOYSTICK, diff --git a/src/client.rs b/src/client.rs index 156fc2e0c..024b2e84a 100644 --- a/src/client.rs +++ b/src/client.rs @@ -573,7 +573,7 @@ impl Client { return race_transports_prefer_webrtc( preferred_fut, vec![fallback_fut], - Self::WEBRTC_PREFER_WINDOW_MS, + Self::relay_fallback_delay_ms(), |result| result.0 .1, ) .await; @@ -614,11 +614,27 @@ impl Client { /// ones that traverse NAT. const MAX_PENDING_WEBRTC_ICE: usize = 64; - /// Prefer-P2P window: how long a WebRTC attempt outranks an already-established relay - /// result, and the floor for a punch-path WebRTC attempt whose race timeout is tuned for a - /// raw TCP SYN. Long enough for candidate trickle + ICE checks + DTLS on high-latency - /// links; short enough that UDP-blocked networks settle on relay without a noticeable wait. - const WEBRTC_PREFER_WINDOW_MS: u64 = 2500; + /// Default relay fallback delay: how long an already-established relay result is held back + /// while a WebRTC attempt is still in flight, and the floor for a punch-path WebRTC attempt + /// whose race timeout is tuned for a raw TCP SYN. Long enough for candidate trickle + ICE + /// checks + DTLS on high-latency links; short enough that UDP-blocked networks settle on + /// relay without a noticeable wait. The same role RFC 8305 calls a connection attempt delay. + const RELAY_FALLBACK_DELAY_MS: u64 = 2500; + + /// The delay as the user configured it, falling back to `RELAY_FALLBACK_DELAY_MS`. The + /// settings field holds seconds, which is what a user reasons about; everything here is + /// milliseconds. Unparseable, zero or negative all mean "unset", so clearing the field + /// restores the default instead of collapsing the delay and handing every race to the + /// relay. + fn relay_fallback_delay_ms() -> u64 { + match LocalConfig::get_option(keys::OPTION_RELAY_FALLBACK_DELAY) + .trim() + .parse::() + { + Ok(secs) if secs.is_finite() && secs > 0.0 => (secs * 1000.0).round() as u64, + _ => Self::RELAY_FALLBACK_DELAY_MS, + } + } /// UDP-NAT-test wait when the TCP clock is implausible (see TCP_RTT_PLAUSIBLE_MIN). The /// normal bound is `rtt / 2`: the test has been running since before the TCP connect, so on @@ -1118,7 +1134,7 @@ impl Client { race_transports_prefer_webrtc( webrtc_fut, connect_futures, - Self::WEBRTC_PREFER_WINDOW_MS, + Self::relay_fallback_delay_ms(), |result| result.3, ) .await @@ -1446,7 +1462,7 @@ impl Client { // 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); + let webrtc_timeout = connect_timeout.max(Self::relay_fallback_delay_ms()); async move { raced.wait_connected(webrtc_timeout).await?; // Resolve the pair here: a TURN win is relayed, not direct, and must be held @@ -1464,7 +1480,7 @@ impl Client { race_transports_prefer_webrtc( webrtc_fut, direct_futures, - Self::WEBRTC_PREFER_WINDOW_MS, + Self::relay_fallback_delay_ms(), |r| r.3, ) .await diff --git a/src/lang/ar.rs b/src/lang/ar.rs index bbba587c9..c66a76f8e 100644 --- a/src/lang/ar.rs +++ b/src/lang/ar.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "انتهى طلب مشاركة الشاشة على الجهاز البعيد دون أن يكتمل"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "تعذّر على RustDesk الحصول على شاشة قابلة للاستخدام من XDG Desktop Portal، قد تكون مكتبة PipeWire قديمة جدًا"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "تعذّر على RustDesk تحميل مكوّن GStreamer اللازم لالتقاط الشاشة ({})"), + ("Relay fallback delay in seconds", "مهلة التراجع إلى الترحيل بالثواني"), + ("relay-fallback-delay-tip", "المدة التي ينتظرها اتصال الترحيل القائم بالفعل الاتصالَ المباشر عبر WebRTC قبل أن يُستخدم بدلًا منه. زِدها لمنح الاتصال المباشر البطيء فرصة أكبر للفوز؛ وقلّلها للاستقرار على الترحيل أسرع في الشبكات التي يتعذر فيها الاتصال المباشر. اتركها فارغة للقيمة الافتراضية 2.5 ثانية."), ].iter().cloned().collect(); } diff --git a/src/lang/az.rs b/src/lang/az.rs index d88fbfee9..d6d3484c9 100644 --- a/src/lang/az.rs +++ b/src/lang/az.rs @@ -770,5 +770,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("port-forward-mux-tip", "Port yönləndirmə xəritələnməsinin hər əlaqəsini qarşı tərəfə açılan tək əlaqə üzərindən daşıyır, hər biri üçün yenidən qoşulub giriş etmək əvəzinə."), ("Enable WebRTC P2P connection", "WebRTC P2P əlaqəsini aktivləşdir"), ("Enable TCP hole punching", "TCP deşik açmanı aktivləşdir"), + ("Relay fallback delay in seconds", "Ötürücüyə keçid gecikməsi, saniyə"), + ("relay-fallback-delay-tip", "Artıq qurulmuş ötürücü bağlantı birbaşa WebRTC bağlantısını nə qədər gözləyir, sonra onun əvəzinə istifadə olunur. Yavaş birbaşa bağlantıya daha çox vaxt vermək üçün artırın; birbaşa bağlantının mümkün olmadığı şəbəkələrdə ötürücüyə daha tez keçmək üçün azaldın. Standart 2.5 saniyə üçün boş buraxın."), ].iter().cloned().collect(); } diff --git a/src/lang/be.rs b/src/lang/be.rs index 2d783f437..bb502b9ac 100644 --- a/src/lang/be.rs +++ b/src/lang/be.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "Запыт на абагульванне экрана на аддаленай прыладзе завяршыўся, не будучы выкананым"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk не змог атрымаць прыдатны экран ад XDG Desktop Portal, магчыма бібліятэка PipeWire занадта старая"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk не змог загрузіць кампанент GStreamer, патрэбны для захопу экрана ({})"), + ("Relay fallback delay in seconds", "Затрымка пераходу на рэтранслятар у секундах"), + ("relay-fallback-delay-tip", "Колькі часу ўжо ўсталяванае злучэнне праз рэтранслятар чакае прамога злучэння WebRTC, перш чым будзе выкарыстана замест яго. Павялічце, каб даць павольнаму прамому злучэнню больш часу; паменшыце, каб хутчэй пераходзіць на рэтранслятар у сетках, дзе прамое злучэнне немагчымае. Пакіньце пустым для значэння па змаўчанні 2.5 секунды."), ].iter().cloned().collect(); } diff --git a/src/lang/bg.rs b/src/lang/bg.rs index c8aaecd99..d6b3dd9ed 100644 --- a/src/lang/bg.rs +++ b/src/lang/bg.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "Заявката за споделяне на екрана на отдалеченото устройство приключи, без да бъде изпълнена"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk не можа да получи използваем екран от XDG Desktop Portal, библиотеката PipeWire може да е твърде стара"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk не можа да зареди компонент на GStreamer, необходим за заснемане на екрана ({})"), + ("Relay fallback delay in seconds", "Забавяне преди преминаване към препредаване в секунди"), + ("relay-fallback-delay-tip", "Колко време вече установената връзка чрез препредаване изчаква директната WebRTC връзка, преди да бъде използвана вместо нея. Увеличете, за да дадете повече време на бавна директна връзка; намалете, за да се премине по-бързо към препредаване в мрежи, където директна връзка е невъзможна. Оставете празно за стойността по подразбиране 2.5 секунди."), ].iter().cloned().collect(); } diff --git a/src/lang/ca.rs b/src/lang/ca.rs index 09a59269e..3aaf556fb 100644 --- a/src/lang/ca.rs +++ b/src/lang/ca.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "La sol·licitud de compartició de pantalla al dispositiu remot ha acabat sense completar-se"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "El RustDesk no ha pogut obtenir cap pantalla utilitzable de l'XDG Desktop Portal; la biblioteca PipeWire pot ser massa antiga"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "El RustDesk no ha pogut carregar un component del GStreamer necessari per capturar la pantalla ({})"), + ("Relay fallback delay in seconds", "Retard abans de recórrer al relé en segons"), + ("relay-fallback-delay-tip", "Quant de temps espera una connexió de relé ja establerta la connexió directa WebRTC abans d'utilitzar-se en lloc seu. Augmenteu-lo per donar més temps a una connexió directa lenta; reduïu-lo per passar abans al relé en xarxes on no es pot fer una connexió directa. Deixeu-lo buit per al valor predeterminat de 2.5 segons."), ].iter().cloned().collect(); } diff --git a/src/lang/cn.rs b/src/lang/cn.rs index 45ebccfd1..02a5009a8 100644 --- a/src/lang/cn.rs +++ b/src/lang/cn.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "远程设备上的屏幕共享请求已结束,但未完成"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk 无法从 XDG Desktop Portal 获取可用的屏幕,PipeWire 库可能过旧"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk 无法加载屏幕捕获所需的 GStreamer 组件 ({})"), + ("Relay fallback delay in seconds", "回落到中继前的等待时间(秒)"), + ("relay-fallback-delay-tip", "已经建立的中继连接会等待直连的 WebRTC 多久,超过这个时间就改用中继。调大可以让较慢的直连有更多机会胜出;调小则在无法直连的网络上更快回落到中继。留空表示使用默认值 2.5 秒。"), ].iter().cloned().collect(); } diff --git a/src/lang/cs.rs b/src/lang/cs.rs index 969c56b23..a48e5a306 100644 --- a/src/lang/cs.rs +++ b/src/lang/cs.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "Žádost o sdílení obrazovky na vzdáleném zařízení skončila, aniž by byla dokončena"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk nezískal z XDG Desktop Portal použitelnou obrazovku, knihovna PipeWire může být příliš stará"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk nemohl načíst komponentu GStreameru potřebnou k zachycení obrazovky ({})"), + ("Relay fallback delay in seconds", "Prodleva před přepnutím na přenos v sekundách"), + ("relay-fallback-delay-tip", "Jak dlouho již navázané spojení přes přenos čeká na přímé spojení WebRTC, než bude použito místo něj. Zvyšte, aby pomalé přímé spojení mělo více času uspět; snižte, aby se v sítích, kde přímé spojení není možné, dříve přešlo na přenos. Ponechte prázdné pro výchozí hodnotu 2.5 sekundy."), ].iter().cloned().collect(); } diff --git a/src/lang/da.rs b/src/lang/da.rs index 576087161..51602c8d4 100644 --- a/src/lang/da.rs +++ b/src/lang/da.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "Anmodningen om skærmdeling på fjernenheden sluttede uden at blive gennemført"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk kunne ikke få en brugbar skærm fra XDG Desktop Portal, PipeWire-biblioteket er måske for gammelt"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk kunne ikke indlæse en GStreamer-komponent, der kræves til skærmoptagelse ({})"), + ("Relay fallback delay in seconds", "Forsinkelse før brug af relæ i sekunder"), + ("relay-fallback-delay-tip", "Hvor længe en allerede oprettet relæforbindelse venter på den direkte WebRTC-forbindelse, før den bruges i stedet. Forøg for at give en langsom direkte forbindelse mere tid; sænk for hurtigere at falde tilbage til relæet på netværk, hvor en direkte forbindelse ikke kan oprettes. Lad feltet stå tomt for standardværdien 2.5 sekunder."), ].iter().cloned().collect(); } diff --git a/src/lang/de.rs b/src/lang/de.rs index c1efbebe1..8f8ea69c2 100644 --- a/src/lang/de.rs +++ b/src/lang/de.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "Die Anfrage zur Bildschirmfreigabe auf dem entfernten Gerät endete, ohne abgeschlossen zu werden"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk konnte vom XDG Desktop Portal keinen nutzbaren Bildschirm erhalten, die PipeWire-Bibliothek ist möglicherweise zu alt"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk konnte eine für die Bildschirmaufnahme benötigte GStreamer-Komponente nicht laden ({})"), + ("Relay fallback delay in seconds", "Verzögerung bis zum Relais in Sekunden"), + ("relay-fallback-delay-tip", "Wie lange eine bereits aufgebaute Relaisverbindung auf die direkte WebRTC-Verbindung wartet, bevor sie stattdessen verwendet wird. Erhöhen Sie den Wert, um einer langsamen direkten Verbindung mehr Zeit zu geben; verringern Sie ihn, um in Netzwerken ohne mögliche Direktverbindung schneller auf das Relais zurückzufallen. Leer lassen für den Standardwert von 2.5 Sekunden."), ].iter().cloned().collect(); } diff --git a/src/lang/el.rs b/src/lang/el.rs index 86ee933c7..8a6a56329 100644 --- a/src/lang/el.rs +++ b/src/lang/el.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "Το αίτημα κοινής χρήσης οθόνης στην απομακρυσμένη συσκευή έληξε χωρίς να ολοκληρωθεί"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "Το RustDesk δεν μπόρεσε να λάβει αξιοποιήσιμη οθόνη από το XDG Desktop Portal, η βιβλιοθήκη PipeWire ίσως είναι πολύ παλιά"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "Το RustDesk δεν μπόρεσε να φορτώσει ένα στοιχείο του GStreamer που απαιτείται για την καταγραφή οθόνης ({})"), + ("Relay fallback delay in seconds", "Καθυστέρηση πριν από τη χρήση αναμεταδότη σε δευτερόλεπτα"), + ("relay-fallback-delay-tip", "Πόσο χρόνο περιμένει μια ήδη ενεργή σύνδεση αναμεταδότη την απευθείας σύνδεση WebRTC πριν χρησιμοποιηθεί στη θέση της. Αυξήστε το για να δώσετε σε μια αργή απευθείας σύνδεση περισσότερο χρόνο. Μειώστε το για ταχύτερη επιστροφή στον αναμεταδότη σε δίκτυα όπου δεν είναι δυνατή η απευθείας σύνδεση. Αφήστε το κενό για την προεπιλογή των 2.5 δευτερολέπτων."), ].iter().cloned().collect(); } diff --git a/src/lang/en.rs b/src/lang/en.rs index 7cf31d209..7132c9aec 100644 --- a/src/lang/en.rs +++ b/src/lang/en.rs @@ -278,5 +278,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("sync-clipboard-between-sessions-tip", "Text or images copied in one remote session are also sent to the clipboard of your other connected sessions."), ("terminal-clipboard-write-tip", "An app in the terminal wants to copy text to this device's clipboard. If granted, this permission applies to terminal apps in all connections until you turn it off in Settings. Manual copy and paste are unaffected."), ("port-forward-mux-tip", "Carry every connection of a port-forward mapping over a single connection to the peer, instead of connecting and logging in again for each one."), + ("relay-fallback-delay-tip", "How long a relay connection that is already up waits for the direct WebRTC connection before it is used instead. Raise it to give a slow direct connection more time to win; lower it to settle on the relay sooner on networks where a direct connection cannot be made. Leave empty for the default of 2.5 seconds."), ].iter().cloned().collect(); } diff --git a/src/lang/eo.rs b/src/lang/eo.rs index e1d14f75b..a3b632f5b 100644 --- a/src/lang/eo.rs +++ b/src/lang/eo.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "La peto pri ekrandividado sur la fora aparato finiĝis sen kompletiĝi"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk ne povis akiri uzeblan ekranon de XDG Desktop Portal, la biblioteko PipeWire eble estas tro malnova"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk ne povis ŝargi komponanton de GStreamer necesan por ekrankapto ({})"), + ("Relay fallback delay in seconds", "Prokrasto antaŭ retransmisio en sekundoj"), + ("relay-fallback-delay-tip", "Kiom longe jam establita retransmisia konekto atendas la rektan WebRTC-konekton antaŭ ol esti uzata anstataŭe. Pligrandigu ĝin por doni al malrapida rekta konekto pli da tempo; malpligrandigu ĝin por pli frue uzi la retransmision en retoj kie rekta konekto ne eblas. Lasu malplena por la defaŭlta valoro de 2.5 sekundoj."), ].iter().cloned().collect(); } diff --git a/src/lang/es.rs b/src/lang/es.rs index b595b1711..7f7aa5534 100644 --- a/src/lang/es.rs +++ b/src/lang/es.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "La solicitud de compartir pantalla en el dispositivo remoto terminó sin completarse"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk no ha podido obtener una pantalla utilizable del XDG Desktop Portal; la biblioteca PipeWire puede ser demasiado antigua"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk no ha podido cargar un componente de GStreamer necesario para capturar la pantalla ({})"), + ("Relay fallback delay in seconds", "Retardo antes de usar el relé en segundos"), + ("relay-fallback-delay-tip", "Cuánto tiempo espera una conexión de relé ya establecida a la conexión directa WebRTC antes de usarse en su lugar. Auméntelo para dar más tiempo a una conexión directa lenta; redúzcalo para recurrir antes al relé en redes donde no es posible una conexión directa. Déjelo vacío para el valor predeterminado de 2.5 segundos."), ].iter().cloned().collect(); } diff --git a/src/lang/et.rs b/src/lang/et.rs index 48e9d54ee..6e35bd3ea 100644 --- a/src/lang/et.rs +++ b/src/lang/et.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "Ekraani jagamise taotlus kaugseadmes lõppes ilma lõpule jõudmata"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk ei saanud XDG Desktop Portalilt kasutatavat ekraani, PipeWire'i teek võib olla liiga vana"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk ei suutnud laadida ekraani jäädvustamiseks vajalikku GStreameri komponenti ({})"), + ("Relay fallback delay in seconds", "Viivitus enne relee kasutamist sekundites"), + ("relay-fallback-delay-tip", "Kui kaua juba loodud releeühendus ootab otsest WebRTC-ühendust, enne kui seda selle asemel kasutatakse. Suurendage, et anda aeglasele otseühendusele rohkem aega; vähendage, et võrkudes, kus otseühendust luua ei saa, releele kiiremini üle minna. Jätke tühjaks vaikeväärtuse 2.5 sekundit kasutamiseks."), ].iter().cloned().collect(); } diff --git a/src/lang/eu.rs b/src/lang/eu.rs index 92f57baa3..2ca37757e 100644 --- a/src/lang/eu.rs +++ b/src/lang/eu.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "Urruneko gailuko pantaila partekatzeko eskaera osatu gabe amaitu da"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk-ek ezin izan du pantaila erabilgarririk lortu XDG Desktop Portal-etik, PipeWire liburutegia zaharregia izan daiteke"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk-ek ezin izan du pantaila kapturatzeko beharrezkoa den GStreamer osagai bat kargatu ({})"), + ("Relay fallback delay in seconds", "Errelera itzultzeko atzerapena segundotan"), + ("relay-fallback-delay-tip", "Dagoeneko ezarritako errele-konexio batek WebRTC konexio zuzenari zenbat denbora itxaroten dion, haren ordez erabili aurretik. Handitu konexio zuzen motel bati denbora gehiago emateko; txikitu konexio zuzena egin ezin den sareetan lehenago errelera itzultzeko. Utzi hutsik 2.5 segundoko balio lehenetsirako."), ].iter().cloned().collect(); } diff --git a/src/lang/fa.rs b/src/lang/fa.rs index ab2ac07c9..30a25bbed 100644 --- a/src/lang/fa.rs +++ b/src/lang/fa.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "درخواست اشتراک‌گذاری صفحه در دستگاه راه دور بدون تکمیل شدن پایان یافت"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk نتوانست صفحه‌ای قابل استفاده از XDG Desktop Portal دریافت کند، ممکن است کتابخانه PipeWire خیلی قدیمی باشد"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk نتوانست مؤلفه GStreamer موردنیاز برای ضبط صفحه را بارگذاری کند ({})"), + ("Relay fallback delay in seconds", "تأخیر بازگشت به رله بر حسب ثانیه"), + ("relay-fallback-delay-tip", "یک اتصال رله که از قبل برقرار شده چقدر منتظر اتصال مستقیم WebRTC می ماند پیش از آنکه به جای آن استفاده شود. آن را افزایش دهید تا به اتصال مستقیم کند فرصت بیشتری داده شود؛ کاهش دهید تا در شبکه هایی که اتصال مستقیم ممکن نیست، زودتر به رله بازگردد. برای مقدار پیش فرض 2.5 ثانیه خالی بگذارید."), ].iter().cloned().collect(); } diff --git a/src/lang/fi.rs b/src/lang/fi.rs index d6da9b6d0..db45fa451 100644 --- a/src/lang/fi.rs +++ b/src/lang/fi.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "Näytön jakamispyyntö etälaitteessa päättyi ilman että se saatiin valmiiksi"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk ei saanut XDG Desktop Portalilta käyttökelpoista näyttöä, PipeWire-kirjasto voi olla liian vanha"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk ei voinut ladata näytön kaappaukseen tarvittavaa GStreamer-osaa ({})"), + ("Relay fallback delay in seconds", "Viive ennen välitykseen siirtymistä sekunteina"), + ("relay-fallback-delay-tip", "Kuinka kauan jo muodostettu välitysyhteys odottaa suoraa WebRTC-yhteyttä ennen kuin sitä käytetään sen sijaan. Kasvata arvoa antaaksesi hitaalle suoralle yhteydelle enemmän aikaa; pienennä sitä siirtyäksesi nopeammin välitykseen verkoissa, joissa suoraa yhteyttä ei voi muodostaa. Jätä tyhjäksi käyttääksesi oletusarvoa 2.5 sekuntia."), ].iter().cloned().collect(); } diff --git a/src/lang/fr.rs b/src/lang/fr.rs index 6f9390550..a44cdaa39 100644 --- a/src/lang/fr.rs +++ b/src/lang/fr.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "La demande de partage d'écran sur l'appareil distant s'est terminée sans aboutir"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk n'a pas pu obtenir d'écran exploitable auprès du XDG Desktop Portal, la bibliothèque PipeWire est peut-être trop ancienne"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk n'a pas pu charger un composant GStreamer nécessaire à la capture d'écran ({})"), + ("Relay fallback delay in seconds", "Délai avant bascule vers le relais en secondes"), + ("relay-fallback-delay-tip", "Durée pendant laquelle une connexion relais déjà établie attend la connexion directe WebRTC avant d'être utilisée à sa place. Augmentez-la pour laisser plus de temps à une connexion directe lente ; diminuez-la pour basculer plus tôt vers le relais sur les réseaux où une connexion directe est impossible. Laissez vide pour la valeur par défaut de 2.5 secondes."), ].iter().cloned().collect(); } diff --git a/src/lang/ge.rs b/src/lang/ge.rs index f026e4b95..264dd6898 100644 --- a/src/lang/ge.rs +++ b/src/lang/ge.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "ეკრანის გაზიარების მოთხოვნა დისტანციურ მოწყობილობაზე დასრულდა შეუსრულებლად"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk-მა ვერ მიიღო გამოსადეგი ეკრანი XDG Desktop Portal-იდან, PipeWire-ის ბიბლიოთეკა შესაძლოა ძალიან ძველია"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk-მა ვერ ჩატვირთა ეკრანის ჩაწერისთვის საჭირო GStreamer-ის კომპონენტი ({})"), + ("Relay fallback delay in seconds", "რელეზე გადასვლის დაყოვნება წამებში"), + ("relay-fallback-delay-tip", "რამდენ ხანს ელოდება უკვე დამყარებული რელე-კავშირი პირდაპირ WebRTC კავშირს, სანამ მის ნაცვლად გამოიყენება. გაზარდეთ, რომ ნელ პირდაპირ კავშირს მეტი დრო მისცეთ; შეამცირეთ, რომ ქსელებში, სადაც პირდაპირი კავშირი შეუძლებელია, უფრო სწრაფად გადავიდეს რელეზე. დატოვეთ ცარიელი ნაგულისხმევი 2.5 წამისთვის."), ].iter().cloned().collect(); } diff --git a/src/lang/gl.rs b/src/lang/gl.rs index ffc521afd..3e858aed4 100644 --- a/src/lang/gl.rs +++ b/src/lang/gl.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "A solicitude de compartir pantalla no dispositivo remoto rematou sen completarse"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk non puido obter unha pantalla utilizable do XDG Desktop Portal, a biblioteca PipeWire pode ser demasiado antiga"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk non puido cargar un compoñente de GStreamer necesario para capturar a pantalla ({})"), + ("Relay fallback delay in seconds", "Atraso antes de usar o relé en segundos"), + ("relay-fallback-delay-tip", "Canto tempo agarda unha conexión de relé xa establecida pola conexión directa WebRTC antes de usarse no seu lugar. Auménteo para darlle máis tempo a unha conexión directa lenta; redúzao para recorrer antes ao relé en redes onde non é posible unha conexión directa. Déixeo baleiro para o valor predeterminado de 2.5 segundos."), ].iter().cloned().collect(); } diff --git a/src/lang/gu.rs b/src/lang/gu.rs index 1cc4b8a10..a8606585f 100644 --- a/src/lang/gu.rs +++ b/src/lang/gu.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "રિમોટ ઉપકરણ પર સ્ક્રીન શેરિંગ વિનંતી પૂર્ણ થયા વિના સમાપ્ત થઈ"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk XDG Desktop Portal પાસેથી ઉપયોગી સ્ક્રીન મેળવી શક્યું નથી, PipeWire લાઇબ્રેરી કદાચ ઘણી જૂની છે"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk સ્ક્રીન કૅપ્ચર માટે જરૂરી GStreamer ઘટક લોડ કરી શક્યું નથી ({})"), + ("Relay fallback delay in seconds", "રિલે પર પાછા ફરવામાં વિલંબ સેકન્ડમાં"), + ("relay-fallback-delay-tip", "પહેલેથી સ્થાપિત રિલે કનેક્શન સીધા WebRTC કનેક્શનની કેટલો સમય રાહ જુએ છે, ત્યાર બાદ તેના બદલે વપરાય છે. ધીમા સીધા કનેક્શનને વધુ સમય આપવા માટે વધારો; જ્યાં સીધું કનેક્શન શક્ય નથી તેવા નેટવર્ક પર વહેલા રિલે પર જવા માટે ઘટાડો. મૂળભૂત 2.5 સેકન્ડ માટે ખાલી રાખો."), ].iter().cloned().collect(); } diff --git a/src/lang/he.rs b/src/lang/he.rs index b870f9382..7432f4b91 100644 --- a/src/lang/he.rs +++ b/src/lang/he.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "בקשת שיתוף המסך במכשיר המרוחק הסתיימה מבלי להתבצע"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk לא הצליח לקבל מסך שמיש מ-XDG Desktop Portal, ייתכן שספריית PipeWire ישנה מדי"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk לא הצליח לטעון רכיב GStreamer הדרוש ללכידת מסך ({})"), + ("Relay fallback delay in seconds", "השהיה לפני מעבר לממסר בשניות"), + ("relay-fallback-delay-tip", "כמה זמן חיבור ממסר שכבר נוצר ממתין לחיבור WebRTC הישיר לפני שישמש במקומו. הגדל כדי לתת לחיבור ישיר איטי יותר זמן; הקטן כדי לעבור מהר יותר לממסר ברשתות שבהן לא ניתן ליצור חיבור ישיר. השאר ריק לערך ברירת המחדל של 2.5 שניות."), ].iter().cloned().collect(); } diff --git a/src/lang/hi.rs b/src/lang/hi.rs index b78ad5b9b..793998263 100644 --- a/src/lang/hi.rs +++ b/src/lang/hi.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "रिमोट डिवाइस पर स्क्रीन शेयरिंग अनुरोध पूरा हुए बिना समाप्त हो गया"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk XDG Desktop Portal से उपयोग योग्य स्क्रीन प्राप्त नहीं कर सका, PipeWire लाइब्रेरी बहुत पुरानी हो सकती है"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk स्क्रीन कैप्चर के लिए आवश्यक GStreamer घटक लोड नहीं कर सका ({})"), + ("Relay fallback delay in seconds", "रिले पर लौटने में विलंब सेकंड में"), + ("relay-fallback-delay-tip", "पहले से स्थापित रिले कनेक्शन सीधे WebRTC कनेक्शन की कितनी देर प्रतीक्षा करता है, उसके बाद उसके स्थान पर उपयोग किया जाता है। धीमे सीधे कनेक्शन को अधिक समय देने के लिए बढ़ाएँ; जिन नेटवर्क पर सीधा कनेक्शन संभव नहीं है वहाँ जल्दी रिले पर जाने के लिए घटाएँ। डिफ़ॉल्ट 2.5 सेकंड के लिए खाली छोड़ें।"), ].iter().cloned().collect(); } diff --git a/src/lang/hr.rs b/src/lang/hr.rs index 60b486a18..b6ecb70b0 100644 --- a/src/lang/hr.rs +++ b/src/lang/hr.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "Zahtjev za dijeljenje zaslona na udaljenom uređaju završio je bez dovršetka"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk nije mogao dobiti upotrebljiv zaslon od XDG Desktop Portala, PipeWire biblioteka je možda prestara"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk nije mogao učitati GStreamer komponentu potrebnu za snimanje zaslona ({})"), + ("Relay fallback delay in seconds", "Odgoda prije prelaska na relej u sekundama"), + ("relay-fallback-delay-tip", "Koliko dugo već uspostavljena relejna veza čeka izravnu WebRTC vezu prije nego što se upotrijebi umjesto nje. Povećajte da sporoj izravnoj vezi date više vremena; smanjite da se na mrežama gdje izravna veza nije moguća brže prijeđe na relej. Ostavite prazno za zadanu vrijednost od 2.5 sekunde."), ].iter().cloned().collect(); } diff --git a/src/lang/hu.rs b/src/lang/hu.rs index 8c6af9789..905904404 100644 --- a/src/lang/hu.rs +++ b/src/lang/hu.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "A képernyőmegosztási kérés a távoli eszközön befejeződött anélkül, hogy teljesült volna"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "A RustDesk nem kapott használható képernyőt az XDG Desktop Portaltól, a PipeWire programkönyvtár túl régi lehet"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "A RustDesk nem tudta betölteni a képernyőrögzítéshez szükséges GStreamer összetevőt ({})"), + ("Relay fallback delay in seconds", "Késleltetés a továbbítóra váltás előtt másodpercben"), + ("relay-fallback-delay-tip", "Mennyi ideig vár a már létrejött továbbító kapcsolat a közvetlen WebRTC kapcsolatra, mielőtt helyette használnák. Növelje, hogy a lassú közvetlen kapcsolatnak több ideje legyen; csökkentse, hogy olyan hálózatokon, ahol közvetlen kapcsolat nem hozható létre, hamarabb váltson továbbítóra. Hagyja üresen az alapértelmezett 2.5 másodperchez."), ].iter().cloned().collect(); } diff --git a/src/lang/id.rs b/src/lang/id.rs index 5b2991e7f..e4e32c39b 100644 --- a/src/lang/id.rs +++ b/src/lang/id.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "Permintaan berbagi layar di perangkat jarak jauh berakhir tanpa diselesaikan"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk tidak mendapatkan layar yang dapat digunakan dari XDG Desktop Portal, pustaka PipeWire mungkin terlalu lama"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk tidak dapat memuat komponen GStreamer yang diperlukan untuk merekam layar ({})"), + ("Relay fallback delay in seconds", "Jeda sebelum beralih ke relai dalam detik"), + ("relay-fallback-delay-tip", "Berapa lama koneksi relai yang sudah terbentuk menunggu koneksi langsung WebRTC sebelum digunakan sebagai gantinya. Perbesar untuk memberi koneksi langsung yang lambat lebih banyak waktu; perkecil agar lebih cepat beralih ke relai pada jaringan yang tidak memungkinkan koneksi langsung. Biarkan kosong untuk nilai bawaan 2.5 detik."), ].iter().cloned().collect(); } diff --git a/src/lang/it.rs b/src/lang/it.rs index fe2ad6b80..612347e19 100644 --- a/src/lang/it.rs +++ b/src/lang/it.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "La richiesta di condivisione dello schermo si è chiusa senza essere completata nel dispositivo remoto"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk non è riuscito a ottenere una schermata usabile dal portale desktop XDG, la libreria PipeWire potrebbe essere troppo vecchia"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk non è riuscito a caricare un componente GStreamer necessario per l'acquisizione dello schermo ({})"), + ("Relay fallback delay in seconds", ""), + ("relay-fallback-delay-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/ja.rs b/src/lang/ja.rs index 3c0aca2f8..d9af93dc3 100644 --- a/src/lang/ja.rs +++ b/src/lang/ja.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "リモート端末での画面共有の要求は完了しないまま終了しました"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk は XDG Desktop Portal から使用可能な画面を取得できませんでした。PipeWire ライブラリが古すぎる可能性があります"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk は画面キャプチャに必要な GStreamer コンポーネントを読み込めませんでした ({})"), + ("Relay fallback delay in seconds", "中継に切り替えるまでの待ち時間 (秒)"), + ("relay-fallback-delay-tip", "すでに確立された中継接続が、直接の WebRTC 接続をどれだけ待ってから代わりに使用されるかを指定します。値を大きくすると遅い直接接続に時間を与えられ、小さくすると直接接続できないネットワークで早く中継に切り替わります。空欄にすると既定値の 2.5 秒になります。"), ].iter().cloned().collect(); } diff --git a/src/lang/ko.rs b/src/lang/ko.rs index c8a3c512a..6c87818e0 100644 --- a/src/lang/ko.rs +++ b/src/lang/ko.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "원격 장치의 화면 공유 요청이 완료되지 않은 채 종료되었습니다"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk가 XDG Desktop Portal에서 사용 가능한 화면을 가져오지 못했습니다. PipeWire 라이브러리가 너무 오래되었을 수 있습니다"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk가 화면 캡처에 필요한 GStreamer 구성 요소를 불러오지 못했습니다 ({})"), + ("Relay fallback delay in seconds", "중계로 전환하기까지의 대기 시간(초)"), + ("relay-fallback-delay-tip", "이미 연결된 중계 연결이 직접 WebRTC 연결을 얼마나 기다린 후 대신 사용되는지입니다. 값을 늘리면 느린 직접 연결에 더 많은 시간을 주고, 줄이면 직접 연결이 불가능한 네트워크에서 더 빨리 중계로 전환합니다. 비워 두면 기본값 2.5초가 사용됩니다."), ].iter().cloned().collect(); } diff --git a/src/lang/kz.rs b/src/lang/kz.rs index b78268652..fc14b6c25 100644 --- a/src/lang/kz.rs +++ b/src/lang/kz.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "Қашықтағы құрылғыдағы экранды бөлісу сұрауы аяқталмай тоқтады"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk XDG Desktop Portal-дан жарамды экран ала алмады, PipeWire кітапханасы тым ескі болуы мүмкін"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk экранды түсіру үшін қажет GStreamer компонентін жүктей алмады ({})"), + ("Relay fallback delay in seconds", "Релеге ауысу кідірісі, секундпен"), + ("relay-fallback-delay-tip", "Бұрыннан орнатылған реле байланысы тікелей WebRTC байланысын қанша уақыт күтеді, содан кейін оның орнына қолданылады. Баяу тікелей байланысқа көбірек уақыт беру үшін үлкейтіңіз; тікелей байланыс мүмкін емес желілерде релеге тезірек ауысу үшін кішірейтіңіз. Әдепкі 2.5 секунд үшін бос қалдырыңыз."), ].iter().cloned().collect(); } diff --git a/src/lang/lt.rs b/src/lang/lt.rs index 72cf33d89..44c56168e 100644 --- a/src/lang/lt.rs +++ b/src/lang/lt.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "Ekrano bendrinimo užklausa nuotoliniame įrenginyje baigėsi jos neužbaigus"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk negavo tinkamo ekrano iš XDG Desktop Portal, PipeWire biblioteka gali būti per sena"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk nepavyko įkelti ekrano įrašymui reikalingo GStreamer komponento ({})"), + ("Relay fallback delay in seconds", "Delsa prieš pereinant prie perdavimo sekundėmis"), + ("relay-fallback-delay-tip", "Kiek laiko jau užmegztas perdavimo ryšys laukia tiesioginio WebRTC ryšio, kol bus panaudotas vietoj jo. Padidinkite, kad lėtam tiesioginiam ryšiui būtų skirta daugiau laiko; sumažinkite, kad tinkluose, kuriuose tiesioginis ryšys neįmanomas, greičiau būtų pereinama prie perdavimo. Palikite tuščią numatytajai 2.5 sekundės reikšmei."), ].iter().cloned().collect(); } diff --git a/src/lang/lv.rs b/src/lang/lv.rs index 4a1d49f62..f7f092686 100644 --- a/src/lang/lv.rs +++ b/src/lang/lv.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "Ekrāna koplietošanas pieprasījums attālinātajā ierīcē beidzās, netiekot pabeigts"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk neieguva izmantojamu ekrānu no XDG Desktop Portal, PipeWire bibliotēka var būt pārāk veca"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk nevarēja ielādēt ekrāna tveršanai nepieciešamo GStreamer komponentu ({})"), + ("Relay fallback delay in seconds", "Aizkave pirms pārslēgšanās uz retranslatoru sekundēs"), + ("relay-fallback-delay-tip", "Cik ilgi jau izveidots retranslatora savienojums gaida tiešo WebRTC savienojumu, pirms tiek izmantots tā vietā. Palieliniet, lai lēnam tiešajam savienojumam dotu vairāk laika; samaziniet, lai tīklos, kur tiešais savienojums nav iespējams, ātrāk pārslēgtos uz retranslatoru. Atstājiet tukšu noklusējuma 2.5 sekunžu vērtībai."), ].iter().cloned().collect(); } diff --git a/src/lang/ml.rs b/src/lang/ml.rs index 09ff2acb8..d97c84267 100644 --- a/src/lang/ml.rs +++ b/src/lang/ml.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "വിദൂര ഉപകരണത്തിലെ സ്ക്രീൻ പങ്കിടൽ അഭ്യർത്ഥന പൂർത്തിയാകാതെ അവസാനിച്ചു"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "XDG Desktop Portal-ൽ നിന്ന് ഉപയോഗയോഗ്യമായ സ്ക്രീൻ RustDesk-ന് ലഭിച്ചില്ല, PipeWire ലൈബ്രറി വളരെ പഴയതാകാം"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "സ്ക്രീൻ പകർത്താൻ ആവശ്യമായ GStreamer ഘടകം RustDesk-ന് ലോഡ് ചെയ്യാനായില്ല ({})"), + ("Relay fallback delay in seconds", "റിലേയിലേക്ക് മാറുന്നതിനുള്ള കാലതാമസം സെക്കൻഡിൽ"), + ("relay-fallback-delay-tip", "ഇതിനകം സ്ഥാപിതമായ റിലേ കണക്ഷൻ നേരിട്ടുള്ള WebRTC കണക്ഷനായി എത്ര നേരം കാത്തിരിക്കുന്നു, അതിനുശേഷം അതിനുപകരം ഉപയോഗിക്കുന്നു. മന്ദഗതിയിലുള്ള നേരിട്ടുള്ള കണക്ഷന് കൂടുതൽ സമയം നൽകാൻ വർദ്ധിപ്പിക്കുക; നേരിട്ടുള്ള കണക്ഷൻ സാധ്യമല്ലാത്ത നെറ്റ്‌വർക്കുകളിൽ വേഗത്തിൽ റിലേയിലേക്ക് മാറാൻ കുറയ്ക്കുക. സ്ഥിരസ്ഥിതിയായ 2.5 സെക്കൻഡിനായി ശൂന്യമാക്കിയിടുക."), ].iter().cloned().collect(); } diff --git a/src/lang/nb.rs b/src/lang/nb.rs index 3de2386a6..11f1baf48 100644 --- a/src/lang/nb.rs +++ b/src/lang/nb.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "Forespørselen om skjermdeling på den eksterne enheten ble avsluttet uten å bli fullført"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk fikk ingen brukbar skjerm fra XDG Desktop Portal, PipeWire-biblioteket kan være for gammelt"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk kunne ikke laste en GStreamer-komponent som kreves for skjermopptak ({})"), + ("Relay fallback delay in seconds", "Forsinkelse før bruk av relé i sekunder"), + ("relay-fallback-delay-tip", "Hvor lenge en allerede opprettet reléforbindelse venter på den direkte WebRTC-forbindelsen før den brukes i stedet. Øk verdien for å gi en treg direkteforbindelse mer tid; senk den for å gå raskere over til reléet på nettverk der direkte forbindelse ikke er mulig. La stå tom for standardverdien på 2.5 sekunder."), ].iter().cloned().collect(); } diff --git a/src/lang/nl.rs b/src/lang/nl.rs index 3e6e2ccd3..6343006c1 100644 --- a/src/lang/nl.rs +++ b/src/lang/nl.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "Het verzoek om schermdeling op het externe apparaat is geëindigd zonder te zijn voltooid"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk kon geen bruikbaar scherm verkrijgen van de XDG Desktop Portal, de PipeWire-bibliotheek is mogelijk te oud"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk kon een GStreamer-component die nodig is voor schermopname niet laden ({})"), + ("Relay fallback delay in seconds", "Vertraging voordat relay wordt gebruikt in seconden"), + ("relay-fallback-delay-tip", "Hoe lang een al tot stand gekomen relayverbinding wacht op de directe WebRTC-verbinding voordat deze in plaats daarvan wordt gebruikt. Verhoog de waarde om een trage directe verbinding meer tijd te geven; verlaag deze om op netwerken waar een directe verbinding niet mogelijk is sneller op de relay terug te vallen. Laat leeg voor de standaardwaarde van 2.5 seconden."), ].iter().cloned().collect(); } diff --git a/src/lang/pl.rs b/src/lang/pl.rs index 9078c661f..90af3e731 100644 --- a/src/lang/pl.rs +++ b/src/lang/pl.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "Żądanie udostępnienia ekranu na urządzeniu zdalnym zakończyło się bez ukończenia"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk nie uzyskał użytecznego ekranu z XDG Desktop Portal, biblioteka PipeWire może być zbyt stara"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk nie mógł załadować składnika GStreamer wymaganego do przechwytywania ekranu ({})"), + ("Relay fallback delay in seconds", "Opóźnienie przed przejściem na przekaźnik w sekundach"), + ("relay-fallback-delay-tip", "Jak długo nawiązane już połączenie przez przekaźnik czeka na bezpośrednie połączenie WebRTC, zanim zostanie użyte zamiast niego. Zwiększ, aby dać wolnemu połączeniu bezpośredniemu więcej czasu; zmniejsz, aby w sieciach, w których połączenie bezpośrednie jest niemożliwe, szybciej przechodzić na przekaźnik. Pozostaw puste, aby użyć wartości domyślnej 2.5 sekundy."), ].iter().cloned().collect(); } diff --git a/src/lang/pt_PT.rs b/src/lang/pt_PT.rs index 783e116f1..b7df38192 100644 --- a/src/lang/pt_PT.rs +++ b/src/lang/pt_PT.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "O pedido de partilha de ecrã no dispositivo remoto terminou sem ser concluído"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "O RustDesk não conseguiu obter um ecrã utilizável do XDG Desktop Portal, a biblioteca PipeWire pode ser demasiado antiga"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "O RustDesk não conseguiu carregar um componente do GStreamer necessário para capturar o ecrã ({})"), + ("Relay fallback delay in seconds", "Atraso antes de recorrer ao retransmissor em segundos"), + ("relay-fallback-delay-tip", "Quanto tempo uma ligação de retransmissão já estabelecida aguarda pela ligação direta WebRTC antes de ser usada em vez dela. Aumente para dar mais tempo a uma ligação direta lenta; diminua para recorrer mais cedo ao retransmissor em redes onde não é possível uma ligação direta. Deixe vazio para o valor predefinido de 2.5 segundos."), ].iter().cloned().collect(); } diff --git a/src/lang/ptbr.rs b/src/lang/ptbr.rs index 0f06db7ab..f3afd375a 100644 --- a/src/lang/ptbr.rs +++ b/src/lang/ptbr.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "A solicitação de compartilhamento de tela no dispositivo remoto foi encerrada sem ser concluída."), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "O RustDesk não conseguiu obter uma tela utilizável do XDG Desktop Portal. A biblioteca do PipeWire pode estar desatualizada."), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "O RustDesk não conseguiu carregar um componente do GStreamer necessário para a captura de tela ({})."), + ("Relay fallback delay in seconds", "Atraso antes de recorrer ao retransmissor em segundos"), + ("relay-fallback-delay-tip", "Quanto tempo uma conexão de retransmissão já estabelecida espera pela conexão direta WebRTC antes de ser usada no lugar dela. Aumente para dar mais tempo a uma conexão direta lenta; diminua para recorrer mais cedo ao retransmissor em redes onde não é possível uma conexão direta. Deixe vazio para o valor padrão de 2.5 segundos."), ].iter().cloned().collect(); } diff --git a/src/lang/ro.rs b/src/lang/ro.rs index 86ead090c..db7961182 100644 --- a/src/lang/ro.rs +++ b/src/lang/ro.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "Cererea de partajare a ecranului pe dispozitivul de la distanță s-a încheiat fără a fi finalizată"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk nu a putut obține un ecran utilizabil de la XDG Desktop Portal, biblioteca PipeWire poate fi prea veche"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk nu a putut încărca o componentă GStreamer necesară pentru capturarea ecranului ({})"), + ("Relay fallback delay in seconds", "Întârziere înainte de trecerea la releu în secunde"), + ("relay-fallback-delay-tip", "Cât timp așteaptă o conexiune prin releu deja stabilită conexiunea directă WebRTC înainte de a fi folosită în locul ei. Măriți valoarea pentru a acorda mai mult timp unei conexiuni directe lente; micșorați-o pentru a trece mai repede la releu în rețelele în care o conexiune directă nu este posibilă. Lăsați gol pentru valoarea implicită de 2.5 secunde."), ].iter().cloned().collect(); } diff --git a/src/lang/ru.rs b/src/lang/ru.rs index e05002fc1..5ddc68f43 100644 --- a/src/lang/ru.rs +++ b/src/lang/ru.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "Запрос на демонстрацию экрана на удалённом устройстве завершился, не будучи выполненным"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk не смог получить пригодный экран от XDG Desktop Portal, библиотека PipeWire может быть слишком старой"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk не удалось загрузить компонент GStreamer, необходимый для захвата экрана ({})"), + ("Relay fallback delay in seconds", "Задержка перед переходом на ретранслятор в секундах"), + ("relay-fallback-delay-tip", "Сколько времени уже установленное соединение через ретранслятор ждёт прямое соединение WebRTC, прежде чем будет использовано вместо него. Увеличьте, чтобы дать медленному прямому соединению больше времени; уменьшите, чтобы быстрее переходить на ретранслятор в сетях, где прямое соединение невозможно. Оставьте пустым для значения по умолчанию 2.5 секунды."), ].iter().cloned().collect(); } diff --git a/src/lang/sc.rs b/src/lang/sc.rs index 36e2102f0..67c07714b 100644 --- a/src/lang/sc.rs +++ b/src/lang/sc.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "Sa rechesta de cumpartzidura de sa schermada in su dispositivu remotu est acabada chene si cumpletare"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk no at pòdidu otènnere una schermada impreabile dae XDG Desktop Portal, sa libreria PipeWire podet èssere tropu betza"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk no at pòdidu carrigare unu cumponente de GStreamer netzessàriu pro registrare sa schermada ({})"), + ("Relay fallback delay in seconds", "Tardu prima de impreare su relè in segundos"), + ("relay-fallback-delay-tip", "Cantu tempus una connessione de relè giai istabilida abetat sa connessione direta WebRTC prima de èssere impreada in su postu suo. Aumenta pro dare prus tempus a una connessione direta lenta; diminuì pro colare prima a su relè in sas retes in ue non si podet fàghere una connessione direta. Lassa bòidu pro su valore predefinidu de 2.5 segundos."), ].iter().cloned().collect(); } diff --git a/src/lang/sk.rs b/src/lang/sk.rs index aa2a7db1a..f1455cb29 100644 --- a/src/lang/sk.rs +++ b/src/lang/sk.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "Žiadosť o zdieľanie obrazovky na vzdialenom zariadení sa skončila bez dokončenia"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk nezískal z XDG Desktop Portal použiteľnú obrazovku, knižnica PipeWire môže byť príliš stará"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk nedokázal načítať komponent GStreamera potrebný na zachytenie obrazovky ({})"), + ("Relay fallback delay in seconds", "Oneskorenie pred prepnutím na prenos v sekundách"), + ("relay-fallback-delay-tip", "Ako dlho už nadviazané spojenie cez prenos čaká na priame spojenie WebRTC, kým sa použije namiesto neho. Zvýšte, aby pomalé priame spojenie malo viac času; znížte, aby sa v sieťach, kde priame spojenie nie je možné, skôr prešlo na prenos. Nechajte prázdne pre predvolenú hodnotu 2.5 sekundy."), ].iter().cloned().collect(); } diff --git a/src/lang/sl.rs b/src/lang/sl.rs index 23b972b33..741441afe 100644 --- a/src/lang/sl.rs +++ b/src/lang/sl.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "Zahteva za skupno rabo zaslona na oddaljeni napravi se je končala, ne da bi bila dokončana"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk od XDG Desktop Portala ni dobil uporabnega zaslona, knjižnica PipeWire je morda prestara"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk ni mogel naložiti komponente GStreamer, potrebne za zajem zaslona ({})"), + ("Relay fallback delay in seconds", "Zakasnitev pred preklopom na posrednika v sekundah"), + ("relay-fallback-delay-tip", "Kako dolgo že vzpostavljena posredniška povezava čaka na neposredno povezavo WebRTC, preden se uporabi namesto nje. Povečajte, da počasni neposredni povezavi date več časa; zmanjšajte, da v omrežjih, kjer neposredna povezava ni mogoča, hitreje preklopite na posrednika. Pustite prazno za privzeto vrednost 2.5 sekunde."), ].iter().cloned().collect(); } diff --git a/src/lang/sq.rs b/src/lang/sq.rs index 6d8874f4d..9275459f3 100644 --- a/src/lang/sq.rs +++ b/src/lang/sq.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "Kërkesa për ndarjen e ekranit në pajisjen e largët përfundoi pa u kryer"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk nuk mori një ekran të përdorshëm nga XDG Desktop Portal, biblioteka PipeWire mund të jetë shumë e vjetër"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk nuk mundi të ngarkojë një komponent të GStreamer të nevojshëm për regjistrimin e ekranit ({})"), + ("Relay fallback delay in seconds", "Vonesa para kalimit te releja në sekonda"), + ("relay-fallback-delay-tip", "Sa gjatë pret një lidhje releje tashmë e vendosur lidhjen e drejtpërdrejtë WebRTC përpara se të përdoret në vend të saj. Rriteni për t'i dhënë më shumë kohë një lidhjeje të drejtpërdrejtë të ngadaltë; uleni për të kaluar më shpejt te releja në rrjete ku lidhja e drejtpërdrejtë nuk është e mundur. Lëreni bosh për vlerën e parazgjedhur prej 2.5 sekondash."), ].iter().cloned().collect(); } diff --git a/src/lang/sr.rs b/src/lang/sr.rs index b32af44e1..8af13a275 100644 --- a/src/lang/sr.rs +++ b/src/lang/sr.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "Zahtev za deljenje ekrana na udaljenom uređaju završio se bez dovršetka"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk nije mogao da dobije upotrebljiv ekran od XDG Desktop Portala, PipeWire biblioteka je možda prestara"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk nije mogao da učita GStreamer komponentu potrebnu za snimanje ekrana ({})"), + ("Relay fallback delay in seconds", "Кашњење пре преласка на релеј у секундама"), + ("relay-fallback-delay-tip", "Колико дуго већ успостављена релејна веза чека на директну WebRTC везу пре него што се употреби уместо ње. Повећајте да бисте спорој директној вези дали више времена; смањите да бисте на мрежама где директна веза није могућа брже прешли на релеј. Оставите празно за подразумевану вредност од 2.5 секунде."), ].iter().cloned().collect(); } diff --git a/src/lang/sv.rs b/src/lang/sv.rs index b6fbf9a82..1ea09f83a 100644 --- a/src/lang/sv.rs +++ b/src/lang/sv.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "Begäran om skärmdelning på fjärrenheten avslutades utan att slutföras"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk fick ingen användbar skärm från XDG Desktop Portal, PipeWire-biblioteket kan vara för gammalt"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk kunde inte läsa in en GStreamer-komponent som krävs för skärminspelning ({})"), + ("Relay fallback delay in seconds", "Fördröjning innan relä används i sekunder"), + ("relay-fallback-delay-tip", "Hur länge en redan upprättad reläanslutning väntar på den direkta WebRTC-anslutningen innan den används i stället. Öka värdet för att ge en långsam direktanslutning mer tid; sänk det för att snabbare falla tillbaka på reläet i nätverk där direktanslutning inte är möjlig. Lämna tomt för standardvärdet 2.5 sekunder."), ].iter().cloned().collect(); } diff --git a/src/lang/ta.rs b/src/lang/ta.rs index 443cefb73..9eb5fc760 100644 --- a/src/lang/ta.rs +++ b/src/lang/ta.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "தொலைநிலை சாதனத்தில் திரை பகிர்வு கோரிக்கை நிறைவடையாமல் முடிந்தது"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "XDG Desktop Portal-லிருந்து பயன்படுத்தக்கூடிய திரையை RustDesk பெற முடியவில்லை, PipeWire நூலகம் மிகவும் பழையதாக இருக்கலாம்"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "திரைப் பதிவுக்குத் தேவையான GStreamer கூறை RustDesk ஏற்ற முடியவில்லை ({})"), + ("Relay fallback delay in seconds", "ரிலேக்கு மாறுவதற்கான தாமதம் வினாடிகளில்"), + ("relay-fallback-delay-tip", "ஏற்கனவே நிறுவப்பட்ட ரிலே இணைப்பு நேரடி WebRTC இணைப்புக்காக எவ்வளவு நேரம் காத்திருக்கிறது, அதன் பிறகு அதற்குப் பதிலாகப் பயன்படுத்தப்படுகிறது. மெதுவான நேரடி இணைப்புக்கு அதிக நேரம் வழங்க அதிகரிக்கவும்; நேரடி இணைப்பு சாத்தியமில்லாத பிணையங்களில் விரைவாக ரிலேக்கு மாற குறைக்கவும். இயல்புநிலை 2.5 வினாடிகளுக்கு காலியாக விடவும்."), ].iter().cloned().collect(); } diff --git a/src/lang/template.rs b/src/lang/template.rs index ae2b139c9..54a8a2a29 100644 --- a/src/lang/template.rs +++ b/src/lang/template.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", ""), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", ""), ("RustDesk could not load a GStreamer component needed for screen capture ({})", ""), + ("Relay fallback delay in seconds", ""), + ("relay-fallback-delay-tip", ""), ].iter().cloned().collect(); } diff --git a/src/lang/th.rs b/src/lang/th.rs index c855d4ae6..fe45ce75b 100644 --- a/src/lang/th.rs +++ b/src/lang/th.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "คำขอแชร์หน้าจอบนอุปกรณ์ระยะไกลสิ้นสุดลงโดยไม่เสร็จสมบูรณ์"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk ไม่สามารถรับหน้าจอที่ใช้งานได้จาก XDG Desktop Portal ไลบรารี PipeWire อาจเก่าเกินไป"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk ไม่สามารถโหลดส่วนประกอบ GStreamer ที่จำเป็นสำหรับการบันทึกหน้าจอได้ ({})"), + ("Relay fallback delay in seconds", "เวลารอก่อนเปลี่ยนไปใช้รีเลย์ (วินาที)"), + ("relay-fallback-delay-tip", "การเชื่อมต่อผ่านรีเลย์ที่สร้างไว้แล้วจะรอการเชื่อมต่อ WebRTC โดยตรงนานเท่าใดก่อนที่จะถูกใช้แทน เพิ่มค่าเพื่อให้การเชื่อมต่อโดยตรงที่ช้ามีเวลามากขึ้น ลดค่าเพื่อเปลี่ยนไปใช้รีเลย์เร็วขึ้นในเครือข่ายที่ไม่สามารถเชื่อมต่อโดยตรงได้ เว้นว่างไว้เพื่อใช้ค่าเริ่มต้น 2.5 วินาที"), ].iter().cloned().collect(); } diff --git a/src/lang/tr.rs b/src/lang/tr.rs index e4aba7464..a199f6e04 100644 --- a/src/lang/tr.rs +++ b/src/lang/tr.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "Uzak cihazdaki ekran paylaşımı isteği tamamlanmadan sona erdi"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk, XDG Desktop Portal'dan kullanılabilir bir ekran alamadı, PipeWire kitaplığı çok eski olabilir"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk ekran yakalama için gereken GStreamer bileşenini yükleyemedi ({})"), + ("Relay fallback delay in seconds", "Aktarıcıya geçiş gecikmesi (saniye)"), + ("relay-fallback-delay-tip", "Zaten kurulmuş bir aktarıcı bağlantısının, onun yerine kullanılmadan önce doğrudan WebRTC bağlantısını ne kadar beklediğidir. Yavaş bir doğrudan bağlantıya daha fazla süre tanımak için artırın; doğrudan bağlantının kurulamadığı ağlarda aktarıcıya daha erken geçmek için azaltın. Varsayılan 2.5 saniye için boş bırakın."), ].iter().cloned().collect(); } diff --git a/src/lang/tw.rs b/src/lang/tw.rs index eccd7449c..6e48745ee 100644 --- a/src/lang/tw.rs +++ b/src/lang/tw.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "遠端裝置上的螢幕分享要求已結束,但未完成"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk 無法從 XDG Desktop Portal 取得可用的螢幕,PipeWire 函式庫可能過舊"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk 無法載入螢幕擷取所需的 GStreamer 元件 ({})"), + ("Relay fallback delay in seconds", "回退到中繼前的等待時間(秒)"), + ("relay-fallback-delay-tip", "已經建立的中繼連線會等待直連的 WebRTC 多久,超過這個時間就改用中繼。調大可以讓較慢的直連有更多機會勝出;調小則在無法直連的網路上更快回退到中繼。留空表示使用預設值 2.5 秒。"), ].iter().cloned().collect(); } diff --git a/src/lang/uk.rs b/src/lang/uk.rs index 80b1d5a65..df0875c7a 100644 --- a/src/lang/uk.rs +++ b/src/lang/uk.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "Запит на демонстрацію екрана на віддаленому пристрої завершився, не будучи виконаним"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk не зміг отримати придатний екран від XDG Desktop Portal, бібліотека PipeWire може бути застарою"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk не вдалося завантажити компонент GStreamer, потрібний для захоплення екрана ({})"), + ("Relay fallback delay in seconds", "Затримка перед переходом на ретранслятор у секундах"), + ("relay-fallback-delay-tip", "Скільки часу вже встановлене з'єднання через ретранслятор чекає на пряме з'єднання WebRTC, перш ніж буде використане замість нього. Збільште, щоб дати повільному прямому з'єднанню більше часу; зменште, щоб швидше переходити на ретранслятор у мережах, де пряме з'єднання неможливе. Залиште порожнім для типового значення 2.5 секунди."), ].iter().cloned().collect(); } diff --git a/src/lang/ur.rs b/src/lang/ur.rs index 638f9f210..7ac5ddc60 100644 --- a/src/lang/ur.rs +++ b/src/lang/ur.rs @@ -778,6 +778,8 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "ریموٹ ڈیوائس پر اسکرین شیئرنگ کی درخواست مکمل ہوئے بغیر ختم ہو گئی"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk کو XDG Desktop Portal سے قابلِ استعمال اسکرین نہیں مل سکی، PipeWire لائبریری شاید بہت پرانی ہے"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk اسکرین ریکارڈنگ کے لیے درکار GStreamer جزو لوڈ نہیں کر سکا ({})"), + ("Relay fallback delay in seconds", "ریلے پر واپس جانے میں تاخیر سیکنڈ میں"), + ("relay-fallback-delay-tip", "پہلے سے قائم ریلے کنکشن براہ راست WebRTC کنکشن کا کتنی دیر انتظار کرتا ہے، اس کے بعد اس کی جگہ استعمال ہوتا ہے۔ سست براہ راست کنکشن کو مزید وقت دینے کے لیے بڑھائیں؛ ان نیٹ ورکس پر جہاں براہ راست کنکشن ممکن نہیں، جلد ریلے پر جانے کے لیے کم کریں۔ پہلے سے طے شدہ 2.5 سیکنڈ کے لیے خالی چھوڑ دیں۔"), ].iter().cloned().collect(); } diff --git a/src/lang/vi.rs b/src/lang/vi.rs index 73e82efc6..bd2676625 100644 --- a/src/lang/vi.rs +++ b/src/lang/vi.rs @@ -778,5 +778,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> = ("The screen sharing request ended without completing on the remote device", "Yêu cầu chia sẻ màn hình trên thiết bị từ xa đã kết thúc mà chưa hoàn tất"), ("RustDesk could not obtain a usable screen from the XDG Desktop Portal, the PipeWire library may be too old", "RustDesk không lấy được màn hình dùng được từ XDG Desktop Portal, thư viện PipeWire có thể quá cũ"), ("RustDesk could not load a GStreamer component needed for screen capture ({})", "RustDesk không thể tải một thành phần GStreamer cần cho việc ghi màn hình ({})"), + ("Relay fallback delay in seconds", "Độ trễ trước khi chuyển sang trung chuyển (giây)"), + ("relay-fallback-delay-tip", "Kết nối trung chuyển đã thiết lập sẽ chờ kết nối WebRTC trực tiếp trong bao lâu trước khi được dùng thay thế. Tăng giá trị để cho kết nối trực tiếp chậm thêm thời gian; giảm để chuyển sang trung chuyển sớm hơn trên các mạng không thể kết nối trực tiếp. Để trống để dùng giá trị mặc định 2.5 giây."), ].iter().cloned().collect(); }