Merge remote-tracking branch 'upstream/master' into sort-favorites

This commit is contained in:
NicKoehler 2023-03-07 19:50:29 +01:00
commit d40aed6ac2
No known key found for this signature in database
GPG Key ID: BAE01394EB51AC58
50 changed files with 152 additions and 90 deletions

View File

@ -37,9 +37,9 @@ Below are the servers you are using for free, they may change over time. If you
| Seoul | AWS lightsail | 1 vCPU / 0.5GB RAM |
| Germany | Hetzner | 2 vCPU / 4GB RAM |
| Germany | Codext | 4 vCPU / 8GB RAM |
| Finland (Helsinki) | 0x101 Cyber Security | 4 vCPU / 8GB RAM |
| USA (Ashburn) | 0x101 Cyber Security | 4 vCPU / 8GB RAM |
| Ukraine (Kyiv) | dc.volia (2VM) | 2 vCPU / 4GB RAM |
| Finland (Helsinki) | [Netlock](https://netlockendpoint.com) | 4 vCPU / 8GB RAM |
| USA (Ashburn) | [Netlock](https://netlockendpoint.com) | 4 vCPU / 8GB RAM |
| Ukraine (Kyiv) | [dc.volia](https://dc.volia.com) | 2 vCPU / 4GB RAM |
## Dev Container

View File

@ -27,8 +27,9 @@ Malsupre estas la serviloj, kiuj vi uzas senpage, ĝi povas ŝanĝi laŭlonge de
| Seoul | AWS lightsail | 1 vCPU / 0.5GB RAM |
| Germany | Hetzner | 2 vCPU / 4GB RAM |
| Germany | Codext | 4 vCPU / 8GB RAM |
| Finland (Helsinki) | 0x101 Cyber Security | 4 vCPU / 8GB RAM |
| USA (Ashburn) | 0x101 Cyber Security | 4 vCPU / 8GB RAM |
| Finland (Helsinki) | [Netlock](https://netlockendpoint.com) | 4 vCPU / 8GB RAM |
| USA (Ashburn) | [Netlock](https://netlockendpoint.com) | 4 vCPU / 8GB RAM |
| Ukraine (Kyiv) | [dc.volia](https://dc.volia.com) | 2 vCPU / 4GB RAM |
## Dependantaĵoj

View File

@ -34,8 +34,9 @@ A continuación se muestran los servidores gratuitos, pueden cambiar a medida qu
| Seoul | AWS lightsail | 1 vCPU / 0.5GB RAM |
| Germany | Hetzner | 2 vCPU / 4GB RAM |
| Germany | Codext | 4 vCPU / 8GB RAM |
| Finland (Helsinki) | 0x101 Cyber Security | 4 vCPU / 8GB RAM |
| USA (Ashburn) | 0x101 Cyber Security | 4 vCPU / 8GB RAM |
| Finland (Helsinki) | [Netlock](https://netlockendpoint.com) | 4 vCPU / 8GB RAM |
| USA (Ashburn) | [Netlock](https://netlockendpoint.com) | 4 vCPU / 8GB RAM |
| Ukraine (Kyiv) | [dc.volia](https://dc.volia.com) | 2 vCPU / 4GB RAM |
## Dependencias

View File

@ -27,8 +27,9 @@ Alla on palvelimia, joita voit käyttää ilmaiseksi, ne saattavat muuttua ajan
| Seoul | AWS lightsail | 1 vCPU / 0.5GB RAM |
| Germany | Hetzner | 2 vCPU / 4GB RAM |
| Germany | Codext | 4 vCPU / 8GB RAM |
| Finland (Helsinki) | 0x101 Cyber Security | 4 vCPU / 8GB RAM |
| USA (Ashburn) | 0x101 Cyber Security | 4 vCPU / 8GB RAM |
| Finland (Helsinki) | [Netlock](https://netlockendpoint.com) | 4 vCPU / 8GB RAM |
| USA (Ashburn) | [Netlock](https://netlockendpoint.com) | 4 vCPU / 8GB RAM |
| Ukraine (Kyiv) | [dc.volia](https://dc.volia.com) | 2 vCPU / 4GB RAM |
## Riippuvuudet

View File

@ -35,8 +35,9 @@ Ezalatt az üzenet alatt találhatóak azok a publikus szerverek, amelyeket ingy
| Seoul | AWS lightsail | 1 vCPU / 0.5GB RAM |
| Germany | Hetzner | 2 vCPU / 4GB RAM |
| Germany | Codext | 4 vCPU / 8GB RAM |
| Finland (Helsinki) | 0x101 Cyber Security | 4 vCPU / 8GB RAM |
| USA (Ashburn) | 0x101 Cyber Security | 4 vCPU / 8GB RAM |
| Finland (Helsinki) | [Netlock](https://netlockendpoint.com) | 4 vCPU / 8GB RAM |
| USA (Ashburn) | [Netlock](https://netlockendpoint.com) | 4 vCPU / 8GB RAM |
| Ukraine (Kyiv) | [dc.volia](https://dc.volia.com) | 2 vCPU / 4GB RAM |
## Dependencies

View File

@ -27,8 +27,9 @@ Di bawah ini adalah server yang bisa Anda gunakan secara gratis, dapat berubah s
| Seoul | AWS lightsail | 1 vCPU / 0.5GB RAM |
| Germany | Hetzner | 2 vCPU / 4GB RAM |
| Germany | Codext | 4 vCPU / 8GB RAM |
| Finland (Helsinki) | 0x101 Cyber Security | 4 vCPU / 8GB RAM |
| USA (Ashburn) | 0x101 Cyber Security | 4 vCPU / 8GB RAM |
| Finland (Helsinki) | [Netlock](https://netlockendpoint.com) | 4 vCPU / 8GB RAM |
| USA (Ashburn) | [Netlock](https://netlockendpoint.com) | 4 vCPU / 8GB RAM |
| Ukraine (Kyiv) | [dc.volia](https://dc.volia.com) | 2 vCPU / 4GB RAM |
## Dependencies

View File

@ -27,8 +27,9 @@ Qui sotto trovate i server che possono essere usati gratuitamente, la lista potr
| Seoul | AWS lightsail | 1 vCPU / 0.5GB RAM |
| Germany | Hetzner | 2 vCPU / 4GB RAM |
| Germany | Codext | 4 vCPU / 8GB RAM |
| Finland (Helsinki) | 0x101 Cyber Security | 4 vCPU / 8GB RAM |
| USA (Ashburn) | 0x101 Cyber Security | 4 vCPU / 8GB RAM |
| Finland (Helsinki) | [Netlock](https://netlockendpoint.com) | 4 vCPU / 8GB RAM |
| USA (Ashburn) | [Netlock](https://netlockendpoint.com) | 4 vCPU / 8GB RAM |
| Ukraine (Kyiv) | [dc.volia](https://dc.volia.com) | 2 vCPU / 4GB RAM |
## Dipendenze

View File

@ -27,8 +27,9 @@ Onderstaande servers zijn de servers die je gratis kunt gebruiken, ze kunnen op
| Seoul | AWS lightsail | 1 vCPU / 0.5GB RAM |
| Germany | Hetzner | 2 vCPU / 4GB RAM |
| Germany | Codext | 4 vCPU / 8GB RAM |
| Finland (Helsinki) | 0x101 Cyber Security | 4 vCPU / 8GB RAM |
| USA (Ashburn) | 0x101 Cyber Security | 4 vCPU / 8GB RAM |
| Finland (Helsinki) | [Netlock](https://netlockendpoint.com) | 4 vCPU / 8GB RAM |
| USA (Ashburn) | [Netlock](https://netlockendpoint.com) | 4 vCPU / 8GB RAM |
| Ukraine (Kyiv) | [dc.volia](https://dc.volia.com) | 2 vCPU / 4GB RAM |
## Afhankelijkheden

View File

@ -27,8 +27,9 @@ Poniżej znajdują się serwery, z których można korzystać za darmo, może si
| Seoul | AWS lightsail | 1 vCPU / 0.5GB RAM |
| Germany | Hetzner | 2 vCPU / 4GB RAM |
| Germany | Codext | 4 vCPU / 8GB RAM |
| Finland (Helsinki) | 0x101 Cyber Security | 4 vCPU / 8GB RAM |
| USA (Ashburn) | 0x101 Cyber Security | 4 vCPU / 8GB RAM |
| Finland (Helsinki) | [Netlock](https://netlockendpoint.com) | 4 vCPU / 8GB RAM |
| USA (Ashburn) | [Netlock](https://netlockendpoint.com) | 4 vCPU / 8GB RAM |
| Ukraine (Kyiv) | [dc.volia](https://dc.volia.com) | 2 vCPU / 4GB RAM |
## Zależności

View File

@ -35,8 +35,9 @@ RustDesk вітає внесок кожного. Дивіться [`docs/CONTRIB
| Даллас | Vultr | 1 vCPU / 1GB RAM
Німеччина | Hetzner | 2 vCPU / 4GB RAM | 2 VCPU / 4GB RAM | Німеччина | Hetzner | 2 VCPU / 4GB RAM |
| Germany | Codext | 4 vCPU / 8GB RAM |
| Finland (Helsinki) | 0x101 Cyber Security | 4 vCPU / 8GB RAM |
| USA (Ashburn) | 0x101 Cyber Security | 4 vCPU / 8GB RAM |
| Finland (Helsinki) | [Netlock](https://netlockendpoint.com) | 4 vCPU / 8GB RAM |
| USA (Ashburn) | [Netlock](https://netlockendpoint.com) | 4 vCPU / 8GB RAM |
| Ukraine (Kyiv) | [dc.volia](https://dc.volia.com) | 2 vCPU / 4GB RAM |
## Залежності

View File

@ -73,7 +73,7 @@ class ChatPage extends StatelessWidget implements PageShape {
? InputDecoration(
isDense: true,
hintText:
"${translate('Write a message')}...",
"${translate('Write a message')}",
filled: true,
fillColor:
Theme.of(context).colorScheme.background,
@ -88,7 +88,7 @@ class ChatPage extends StatelessWidget implements PageShape {
)
: defaultInputDecoration(
hintText:
"${translate('Write a message')}...",
"${translate('Write a message')}",
fillColor:
Theme.of(context).colorScheme.background),
sendButtonBuilder: defaultSendButton(

View File

@ -890,13 +890,10 @@ class DiscoveredPeerCard extends BasePeerCard {
menuItems.add(_createShortCutAction(peer.id));
}
final inRecent = await bind.mainIsInRecentPeers(id: peer.id);
if (inRecent) {
if (!favs.contains(peer.id)) {
menuItems.add(_addFavAction(peer.id));
} else {
menuItems.add(_rmFavAction(peer.id, () async {}));
}
if (!favs.contains(peer.id)) {
menuItems.add(_addFavAction(peer.id));
} else {
menuItems.add(_rmFavAction(peer.id, () async {}));
}
if (gFFI.userModel.userName.isNotEmpty) {

View File

@ -509,7 +509,10 @@ class _MonitorMenu extends StatelessWidget {
@override
Widget build(BuildContext context) {
if (stateGlobal.displaysCount.value < 2) return Offstage();
if (PrivacyModeState.find(id).isTrue ||
stateGlobal.displaysCount.value < 2) {
return Offstage();
}
return _IconSubmenuButton(
icon: icon(),
ffi: ffi,
@ -1546,6 +1549,16 @@ class _DisplayMenuState extends State<_DisplayMenu> {
value: rxValue.value,
onChanged: (value) {
if (value == null) return;
if (widget.ffi.ffiModel.pi.currentDisplay != 0) {
msgBox(
widget.id,
'custom-nook-nocancel-hasclose',
'info',
'Please switch to Display 1 first',
'',
widget.ffi.dialogManager);
return;
}
bind.sessionToggleOption(id: widget.id, value: option);
},
ffi: widget.ffi,

View File

@ -456,7 +456,8 @@ class ServerModel with ChangeNotifier {
Future.delayed(Duration.zero, () async {
if (!hideCm) window_on_top(null);
});
if (client.authorized) {
// Only do the hidden task when on Desktop.
if (client.authorized && isDesktop) {
cmHiddenTimer = Timer(const Duration(seconds: 3), () {
if (!hideCm) windowManager.minimize();
cmHiddenTimer = null;

View File

@ -127,15 +127,6 @@ impl MagInterface {
};
s.init_succeeded = false;
unsafe {
if GetSystemMetrics(SM_CMONITORS) != 1 {
// Do not try to use the magnifier in multi-screen setup (where the API
// crashes sometimes).
return Err(Error::new(
ErrorKind::Other,
"Magnifier capturer cannot work on multi-screen system.",
));
}
// load lib
let lib_file_name = "Magnification.dll";
let lib_file_name_c = CString::new(lib_file_name).unwrap();

View File

@ -11,6 +11,7 @@
<message>Authentication is required to change RustDesk options</message>
<message xml:lang="zh_CN">要更改RustDesk选项, 需要您先通过身份验证</message>
<message xml:lang="zh_TW">要變更RustDesk選項, 需要您先通過身份驗證</message>
<message xml:lang="de">Authentifizierung zum Ändern der RustDesk-Optionen</message>
<annotate key="org.freedesktop.policykit.exec.path">/usr/share/rustdesk/files/polkit</annotate>
<annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
<defaults>

View File

@ -10,7 +10,7 @@ use crate::{
};
use flutter_rust_bridge::{StreamSink, SyncReturn};
use hbb_common::{
config::{self, LocalConfig, PeerConfig, ONLINE},
config::{self, LocalConfig, PeerConfig, PeerInfoSerde, ONLINE},
fs, log,
message_proto::KeyboardMode,
ResultType,
@ -21,6 +21,7 @@ use std::{
ffi::{CStr, CString},
os::raw::c_char,
str::FromStr,
time::SystemTime,
};
// use crate::hbbs_http::account::AuthResult;
@ -726,10 +727,6 @@ pub fn main_peer_has_password(id: String) -> bool {
peer_has_password(id)
}
pub fn main_is_in_recent_peers(id: String) -> bool {
PeerConfig::peers().iter().any(|e| e.0 == id)
}
pub fn main_load_recent_peers() {
if !config::APP_DIR.read().unwrap().is_empty() {
let peers: Vec<HashMap<&str, String>> = PeerConfig::peers()
@ -756,7 +753,28 @@ pub fn main_load_recent_peers() {
pub fn main_load_fav_peers() {
if !config::APP_DIR.read().unwrap().is_empty() {
let favs = get_fav();
let peers: Vec<HashMap<&str, String>> = PeerConfig::peers()
let mut recent = PeerConfig::peers();
let mut lan = config::LanPeers::load()
.peers
.iter()
.filter(|d| recent.iter().all(|r| r.0 != d.id))
.map(|d| {
(
d.id.clone(),
SystemTime::UNIX_EPOCH,
PeerConfig {
info: PeerInfoSerde {
username: d.username.clone(),
hostname: d.hostname.clone(),
platform: d.platform.clone(),
},
..Default::default()
},
)
})
.collect();
recent.append(&mut lan);
let peers: Vec<HashMap<&str, String>> = recent
.into_iter()
.filter_map(|(id, _, p)| {
if favs.contains(&id) {
@ -1361,7 +1379,7 @@ pub fn send_url_scheme(_url: String) {
#[cfg(target_os = "android")]
pub mod server_side {
use hbb_common::{log, config};
use hbb_common::{config, log};
use jni::{
objects::{JClass, JString},
sys::jstring,

View File

@ -460,5 +460,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Codec", ""),
("Resolution", ""),
("No transfers in progress", ""),
].iter().cloned().collect();
("Set one-time password length", ""),
].iter().cloned().collect();
}

View File

@ -460,5 +460,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Codec", "编解码"),
("Resolution", "分辨率"),
("No transfers in progress", ""),
].iter().cloned().collect();
("Set one-time password length", ""),
].iter().cloned().collect();
}

View File

@ -460,5 +460,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Codec", ""),
("Resolution", ""),
("No transfers in progress", ""),
].iter().cloned().collect();
("Set one-time password length", ""),
].iter().cloned().collect();
}

View File

@ -460,5 +460,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Codec", ""),
("Resolution", ""),
("No transfers in progress", ""),
].iter().cloned().collect();
("Set one-time password length", ""),
].iter().cloned().collect();
}

View File

@ -125,7 +125,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Good image quality", "Hohe Bildqualität"),
("Balanced", "Ausgeglichen"),
("Optimize reaction time", "Geschwindigkeit"),
("Custom", "Individuell"),
("Custom", "Benutzerdefiniert"),
("Show remote cursor", "Entfernten Cursor anzeigen"),
("Show quality monitor", "Qualitätsüberwachung anzeigen"),
("Disable clipboard", "Zwischenablage deaktivieren"),
@ -152,7 +152,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Configure", "Konfigurieren"),
("config_acc", "Um Ihren PC aus der Ferne zu steuern, müssen Sie RustDesk Zugriffsrechte erteilen."),
("config_screen", "Um aus der Ferne auf Ihren PC zugreifen zu können, müssen Sie RustDesk die Berechtigung \"Bildschirmaufnahme\" erteilen."),
("Installing ...", "Installiere"),
("Installing ...", " Wird installiert"),
("Install", "Installieren"),
("Installation", "Installation"),
("Installation Path", "Installationspfad"),
@ -230,8 +230,8 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Add Tag", "Stichwort hinzufügen"),
("Unselect all tags", "Alle Stichworte abwählen"),
("Network error", "Netzwerkfehler"),
("Username missed", "Benutzernamen vergessen"),
("Password missed", "Passwort vergessen"),
("Username missed", "Benutzername fehlt"),
("Password missed", "Passwort fehlt"),
("Wrong credentials", "Falsche Anmeldedaten"),
("Edit Tag", "Schlagwort bearbeiten"),
("Unremember Password", "Gespeichertes Passwort löschen"),
@ -299,7 +299,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Help", "Hilfe"),
("Failed", "Fehlgeschlagen"),
("Succeeded", "Erfolgreich"),
("Someone turns on privacy mode, exit", "Jemand hat den Datenschutzmodus aktiviert, beende …"),
("Someone turns on privacy mode, exit", "Jemand hat den Datenschutzmodus aktiviert, wird beendet"),
("Unsupported", "Nicht unterstützt"),
("Peer denied", "Die Gegenstelle hat die Verbindung abgelehnt."),
("Please install plugins", "Bitte installieren Sie Plugins"),
@ -407,7 +407,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("One-time Password", "Einmalpasswort"),
("Use one-time password", "Einmalpasswort verwenden"),
("One-time password length", "Länge des Einmalpassworts"),
("Request access to your device", "Zugriff zu Ihrem Gerät erbitten"),
("Request access to your device", "Zugriff auf Ihr Gerät anfordern"),
("Hide connection management window", "Fenster zur Verwaltung der Verbindung verstecken"),
("hide_cm_tip", "Dies ist nur möglich, wenn der Zugriff über ein permanentes Passwort erfolgt."),
("wayland_experiment_tip", "Die Unterstützung von Wayland ist nur experimentell. Bitte nutzen Sie X11, wenn Sie einen unbeaufsichtigten Zugriff benötigen."),
@ -442,7 +442,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Medium", "Mittel"),
("Strong", "Stark"),
("Switch Sides", "Seiten wechseln"),
("Please confirm if you want to share your desktop?", "Bitte bestätigen Sie, ob Sie Ihren Desktop freigeben möchten."),
("Please confirm if you want to share your desktop?", "Bitte bestätigen Sie, wenn Sie Ihren Desktop freigeben möchten."),
("Display", "Anzeige"),
("Default View Style", "Standard-Ansichtsstil"),
("Default Scroll Style", "Standard-Scroll-Stil"),
@ -460,5 +460,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Codec", "Codec"),
("Resolution", "Auflösung"),
("No transfers in progress", "Keine Übertragungen im Gange"),
].iter().cloned().collect();
("Set one-time password length", "Länge des Einmalpassworts festlegen"),
].iter().cloned().collect();
}

View File

@ -460,5 +460,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Codec", ""),
("Resolution", ""),
("No transfers in progress", ""),
].iter().cloned().collect();
("Set one-time password length", ""),
].iter().cloned().collect();
}

View File

@ -460,5 +460,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Codec", "Códec"),
("Resolution", "Resolución"),
("No transfers in progress", "No hay transferencias en curso"),
].iter().cloned().collect();
("Set one-time password length", "Establecer contraseña de un solo uso"),
].iter().cloned().collect();
}

View File

@ -460,5 +460,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Codec", "کدک"),
("Resolution", "وضوح"),
("No transfers in progress", "هیچ انتقالی در حال انجام نیست"),
].iter().cloned().collect();
("Set one-time password length", "طول رمز یکبار مصرف را تعیین کنید"),
].iter().cloned().collect();
}

View File

@ -460,5 +460,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Codec", ""),
("Resolution", ""),
("No transfers in progress", ""),
].iter().cloned().collect();
("Set one-time password length", ""),
].iter().cloned().collect();
}

View File

@ -460,5 +460,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Codec", "Κωδικοποίηση"),
("Resolution", "Ανάλυση"),
("No transfers in progress", "Δεν υπάρχει μεταφορά σε εξέλιξη"),
].iter().cloned().collect();
("Set one-time password length", ""),
].iter().cloned().collect();
}

View File

@ -460,5 +460,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Codec", ""),
("Resolution", ""),
("No transfers in progress", ""),
].iter().cloned().collect();
("Set one-time password length", ""),
].iter().cloned().collect();
}

View File

@ -460,5 +460,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Codec", ""),
("Resolution", ""),
("No transfers in progress", ""),
].iter().cloned().collect();
("Set one-time password length", ""),
].iter().cloned().collect();
}

View File

@ -460,5 +460,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Codec", "Codec"),
("Resolution", "Risoluzione"),
("No transfers in progress", "Nessun trasferimento in corso"),
].iter().cloned().collect();
("Set one-time password length", ""),
].iter().cloned().collect();
}

View File

@ -460,5 +460,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Codec", ""),
("Resolution", ""),
("No transfers in progress", ""),
].iter().cloned().collect();
("Set one-time password length", ""),
].iter().cloned().collect();
}

View File

@ -460,5 +460,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Codec", ""),
("Resolution", ""),
("No transfers in progress", ""),
].iter().cloned().collect();
("Set one-time password length", ""),
].iter().cloned().collect();
}

View File

@ -460,5 +460,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Codec", ""),
("Resolution", ""),
("No transfers in progress", ""),
].iter().cloned().collect();
("Set one-time password length", ""),
].iter().cloned().collect();
}

View File

@ -460,5 +460,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Codec", "Codec"),
("Resolution", "Resolutie"),
("No transfers in progress", "Geen overdrachten in uitvoering"),
].iter().cloned().collect();
("Set one-time password length", ""),
].iter().cloned().collect();
}

View File

@ -459,7 +459,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Reconnect", "Połącz ponownie"),
("Codec", "Kodek"),
("Resolution", "Rozdzielczość"),
("Key", "Klucz"),
("No transfers in progress", "Brak transferów w toku"),
].iter().cloned().collect();
("Set one-time password length", ""),
].iter().cloned().collect();
}

View File

@ -460,5 +460,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Codec", ""),
("Resolution", ""),
("No transfers in progress", ""),
].iter().cloned().collect();
("Set one-time password length", ""),
].iter().cloned().collect();
}

View File

@ -460,5 +460,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Codec", ""),
("Resolution", ""),
("No transfers in progress", ""),
].iter().cloned().collect();
("Set one-time password length", ""),
].iter().cloned().collect();
}

View File

@ -460,5 +460,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Codec", ""),
("Resolution", ""),
("No transfers in progress", ""),
].iter().cloned().collect();
("Set one-time password length", ""),
].iter().cloned().collect();
}

View File

@ -349,7 +349,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Security", "Безопасность"),
("Theme", "Тема"),
("Dark Theme", "Тёмная тема"),
("Light Theme", ""),
("Light Theme", "Светлая тема"),
("Dark", "Тёмная"),
("Light", "Светлая"),
("Follow System", "Системная"),
@ -460,5 +460,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Codec", "Кодек"),
("Resolution", "Разрешение"),
("No transfers in progress", "Передача не осуществляется"),
].iter().cloned().collect();
("Set one-time password length", "Установить длину одноразового пароля"),
].iter().cloned().collect();
}

View File

@ -460,5 +460,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Codec", ""),
("Resolution", ""),
("No transfers in progress", ""),
].iter().cloned().collect();
("Set one-time password length", ""),
].iter().cloned().collect();
}

View File

@ -460,5 +460,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Codec", ""),
("Resolution", ""),
("No transfers in progress", ""),
].iter().cloned().collect();
("Set one-time password length", ""),
].iter().cloned().collect();
}

View File

@ -460,5 +460,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Codec", ""),
("Resolution", ""),
("No transfers in progress", ""),
].iter().cloned().collect();
("Set one-time password length", ""),
].iter().cloned().collect();
}

View File

@ -460,5 +460,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Codec", ""),
("Resolution", ""),
("No transfers in progress", ""),
].iter().cloned().collect();
("Set one-time password length", ""),
].iter().cloned().collect();
}

View File

@ -460,5 +460,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Codec", ""),
("Resolution", ""),
("No transfers in progress", ""),
].iter().cloned().collect();
("Set one-time password length", ""),
].iter().cloned().collect();
}

View File

@ -460,5 +460,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Codec", ""),
("Resolution", ""),
("No transfers in progress", ""),
].iter().cloned().collect();
("Set one-time password length", ""),
].iter().cloned().collect();
}

View File

@ -460,5 +460,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Codec", ""),
("Resolution", ""),
("No transfers in progress", ""),
].iter().cloned().collect();
("Set one-time password length", ""),
].iter().cloned().collect();
}

View File

@ -460,5 +460,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Codec", ""),
("Resolution", ""),
("No transfers in progress", ""),
].iter().cloned().collect();
("Set one-time password length", ""),
].iter().cloned().collect();
}

View File

@ -460,5 +460,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Codec", "編解碼"),
("Resolution", "分辨率"),
("No transfers in progress", ""),
].iter().cloned().collect();
("Set one-time password length", ""),
].iter().cloned().collect();
}

View File

@ -460,5 +460,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Codec", ""),
("Resolution", ""),
("No transfers in progress", ""),
].iter().cloned().collect();
("Set one-time password length", ""),
].iter().cloned().collect();
}

View File

@ -460,5 +460,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Codec", ""),
("Resolution", ""),
("No transfers in progress", ""),
].iter().cloned().collect();
("Set one-time password length", ""),
].iter().cloned().collect();
}