Merge pull request #3453 from grummbeer/mobile-server-page

Rework on Mobile (UI). Share Screen
This commit is contained in:
RustDesk 2023-03-10 20:42:10 +08:00 committed by GitHub
commit 2d11a12cf4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
36 changed files with 312 additions and 363 deletions

View File

@ -1,7 +1,9 @@
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_hbb/mobile/widgets/dialog.dart';
import 'package:get/get.dart';
import 'package:provider/provider.dart';
import '../../common.dart';
@ -139,9 +141,11 @@ class _ServerPageState extends State<ServerPage> {
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
children: [
ServerInfo(),
const PermissionChecker(),
gFFI.serverModel.isStart
? ServerInfo()
: ServiceNotRunningNotification(),
const ConnectionManager(),
const PermissionChecker(),
SizedBox.fromSize(size: const Size(0, 15.0)),
],
),
@ -160,6 +164,33 @@ void checkService() async {
}
}
class ServiceNotRunningNotification extends StatelessWidget {
ServiceNotRunningNotification({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
final serverModel = Provider.of<ServerModel>(context);
return PaddingCard(
title: translate("Service is not running"),
titleIcon:
const Icon(Icons.warning_amber_sharp, color: Colors.redAccent),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(translate("android_start_service_tip"),
style:
const TextStyle(fontSize: 12, color: MyTheme.darkGray))
.marginOnly(bottom: 8),
ElevatedButton.icon(
icon: const Icon(Icons.play_arrow),
onPressed: serverModel.toggleService,
label: Text(translate("Start Service")))
],
));
}
}
class ServerInfo extends StatelessWidget {
final model = gFFI.serverModel;
final emptyController = TextEditingController(text: "-");
@ -169,78 +200,104 @@ class ServerInfo extends StatelessWidget {
@override
Widget build(BuildContext context) {
final isPermanent = model.verificationMethod == kUsePermanentPassword;
return model.isStart
? PaddingCard(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
TextFormField(
readOnly: true,
style: const TextStyle(
fontSize: 25.0,
fontWeight: FontWeight.bold,
color: MyTheme.accent),
controller: model.serverId,
decoration: InputDecoration(
icon: const Icon(Icons.perm_identity),
labelText: translate("ID"),
labelStyle: const TextStyle(
fontWeight: FontWeight.bold, color: MyTheme.accent80),
),
onSaved: (String? value) {},
final serverModel = Provider.of<ServerModel>(context);
const Color colorPositive = Colors.green;
const Color colorNegative = Colors.red;
const double iconMarginRight = 15;
const double iconSize = 24;
const TextStyle textStyleHeading = TextStyle(
fontSize: 16.0, fontWeight: FontWeight.bold, color: Colors.grey);
const TextStyle textStyleValue =
TextStyle(fontSize: 25.0, fontWeight: FontWeight.bold);
void copyToClipboard(String value) {
Clipboard.setData(ClipboardData(text: value));
showToast(translate('Copied'));
}
Widget ConnectionStateNotification() {
if (serverModel.connectStatus == -1) {
return Row(children: [
const Icon(Icons.warning_amber_sharp,
color: colorNegative, size: iconSize)
.marginOnly(right: iconMarginRight),
Expanded(child: Text(translate('not_ready_status')))
]);
} else if (serverModel.connectStatus == 0) {
return Row(children: [
SizedBox(width: 20, height: 20, child: CircularProgressIndicator())
.marginOnly(left: 4, right: iconMarginRight),
Expanded(child: Text(translate('connecting_status')))
]);
} else {
return Row(children: [
const Icon(Icons.check, color: colorPositive, size: iconSize)
.marginOnly(right: iconMarginRight),
Expanded(child: Text(translate('Ready')))
]);
}
}
return PaddingCard(
title: translate('Your Device'),
child: Column(
// ID
children: [
Row(children: [
const Icon(Icons.perm_identity,
color: Colors.grey, size: iconSize)
.marginOnly(right: iconMarginRight),
Text(
translate('ID'),
style: textStyleHeading,
)
]),
Row(mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [
Text(
model.serverId.value.text,
style: textStyleValue,
),
TextFormField(
readOnly: true,
style: const TextStyle(
fontSize: 25.0,
fontWeight: FontWeight.bold,
color: MyTheme.accent),
controller: isPermanent ? emptyController : model.serverPasswd,
decoration: InputDecoration(
icon: const Icon(Icons.lock),
labelText: translate("Password"),
labelStyle: const TextStyle(
fontWeight: FontWeight.bold, color: MyTheme.accent80),
suffix: isPermanent
? null
: IconButton(
icon: const Icon(Icons.refresh),
onPressed: () =>
bind.mainUpdateTemporaryPassword())),
onSaved: (String? value) {},
IconButton(
visualDensity: VisualDensity.compact,
icon: Icon(Icons.copy_outlined),
onPressed: () {
copyToClipboard(model.serverId.value.text.trim());
})
]).marginOnly(left: 39, bottom: 10),
// Password
Row(children: [
const Icon(Icons.lock_outline, color: Colors.grey, size: iconSize)
.marginOnly(right: iconMarginRight),
Text(
translate('One-time Password'),
style: textStyleHeading,
)
]),
Row(mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [
Text(
isPermanent ? '-' : model.serverPasswd.value.text,
style: textStyleValue,
),
],
))
: PaddingCard(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Center(
child: Row(
children: [
const Icon(Icons.warning_amber_sharp,
color: Colors.redAccent, size: 24),
const SizedBox(width: 10),
Expanded(
child: Text(
translate("Service is not running"),
style: const TextStyle(
fontFamily: 'WorkSans',
fontWeight: FontWeight.bold,
fontSize: 18,
color: MyTheme.accent,
),
))
],
)),
const SizedBox(height: 5),
Center(
child: Text(
translate("android_start_service_tip"),
style: const TextStyle(fontSize: 12, color: MyTheme.darkGray),
))
],
));
isPermanent
? SizedBox.shrink()
: Row(children: [
IconButton(
visualDensity: VisualDensity.compact,
icon: const Icon(Icons.refresh),
onPressed: () => bind.mainUpdateTemporaryPassword()),
IconButton(
visualDensity: VisualDensity.compact,
icon: Icon(Icons.copy_outlined),
onPressed: () {
copyToClipboard(
model.serverPasswd.value.text.trim());
})
])
]).marginOnly(left: 40, bottom: 15),
ConnectionStateNotification()
],
));
}
}
@ -256,78 +313,37 @@ class _PermissionCheckerState extends State<PermissionChecker> {
Widget build(BuildContext context) {
final serverModel = Provider.of<ServerModel>(context);
final hasAudioPermission = androidVersion >= 30;
final String status;
if (serverModel.connectStatus == -1) {
status = 'not_ready_status';
} else if (serverModel.connectStatus == 0) {
status = 'connecting_status';
} else {
status = 'Ready';
}
return PaddingCard(
title: translate("Permissions"),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
PermissionRow(translate("Screen Capture"), serverModel.mediaOk,
serverModel.toggleService),
PermissionRow(translate("Input Control"), serverModel.inputOk,
serverModel.toggleInput),
PermissionRow(translate("Transfer File"), serverModel.fileOk,
serverModel.toggleFile),
hasAudioPermission
? PermissionRow(translate("Audio Capture"), serverModel.audioOk,
serverModel.toggleAudio)
: Text(
"* ${translate("android_version_audio_tip")}",
child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
serverModel.mediaOk
? ElevatedButton.icon(
style: ButtonStyle(
backgroundColor:
MaterialStateProperty.all(Colors.red)),
icon: const Icon(Icons.stop),
onPressed: serverModel.toggleService,
label: Text(translate("Stop service")))
.marginOnly(bottom: 8)
: SizedBox.shrink(),
PermissionRow(translate("Screen Capture"), serverModel.mediaOk,
serverModel.toggleService),
PermissionRow(translate("Input Control"), serverModel.inputOk,
serverModel.toggleInput),
PermissionRow(translate("Transfer File"), serverModel.fileOk,
serverModel.toggleFile),
hasAudioPermission
? PermissionRow(translate("Audio Capture"), serverModel.audioOk,
serverModel.toggleAudio)
: Row(children: [
Icon(Icons.info_outline).marginOnly(right: 15),
Expanded(
child: Text(
translate("android_version_audio_tip"),
style: const TextStyle(color: MyTheme.darkGray),
),
const SizedBox(height: 8),
Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Expanded(
flex: 0,
child: serverModel.mediaOk
? ElevatedButton.icon(
style: ButtonStyle(
backgroundColor:
MaterialStateProperty.all(Colors.red)),
icon: const Icon(Icons.stop),
onPressed: serverModel.toggleService,
label: Text(translate("Stop service")))
: ElevatedButton.icon(
icon: const Icon(Icons.play_arrow),
onPressed: serverModel.toggleService,
label: Text(translate("Start Service")))),
Expanded(
child: serverModel.mediaOk
? Row(
children: [
Expanded(
flex: 0,
child: Padding(
padding: const EdgeInsets.only(
left: 20, right: 5),
child: Icon(Icons.circle,
color: serverModel.connectStatus > 0
? Colors.greenAccent
: Colors.deepOrangeAccent,
size: 10))),
Expanded(
child: Text(translate(status),
softWrap: true,
style: const TextStyle(
fontSize: 14.0,
fontWeight: FontWeight.w500,
color: MyTheme.accent80)))
],
)
: const SizedBox.shrink())
],
),
],
));
))
])
]));
}
}
@ -341,37 +357,14 @@ class PermissionRow extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Row(
children: [
Expanded(
flex: 5,
child: FittedBox(
fit: BoxFit.scaleDown,
alignment: Alignment.centerLeft,
child:
Text(name, style: Theme.of(context).textTheme.labelLarge))),
Expanded(
flex: 2,
child: FittedBox(
fit: BoxFit.scaleDown,
child: Text(isOk ? translate("ON") : translate("OFF"),
style: TextStyle(
fontSize: 16.0,
color: isOk ? Colors.green : Colors.grey))),
),
Expanded(
flex: 3,
child: FittedBox(
fit: BoxFit.scaleDown,
alignment: Alignment.centerRight,
child: TextButton(
onPressed: onPressed,
child: Text(
translate(isOk ? "CLOSE" : "OPEN"),
style: const TextStyle(fontWeight: FontWeight.bold),
)))),
],
);
return SwitchListTile(
visualDensity: VisualDensity.compact,
contentPadding: EdgeInsets.all(0),
title: Text(name),
value: isOk,
onChanged: (bool value) {
onPressed();
});
}
}
@ -388,70 +381,66 @@ class ConnectionManager extends StatelessWidget {
? "File Connection"
: "Screen Connection"),
titleIcon: client.isFileTransfer
? Icons.folder_outlined
: Icons.mobile_screen_share,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Expanded(child: ClientInfo(client)),
Expanded(
flex: -1,
child: client.isFileTransfer || !client.authorized
? const SizedBox.shrink()
: IconButton(
onPressed: () {
gFFI.chatModel.changeCurrentID(client.id);
final bar =
navigationBarKey.currentWidget;
if (bar != null) {
bar as BottomNavigationBar;
bar.onTap!(1);
}
},
icon: const Icon(
Icons.chat,
color: MyTheme.accent,
)))
],
),
client.authorized
? const SizedBox.shrink()
: Text(
translate("android_new_connection_tip"),
style: Theme.of(globalKey.currentContext!)
.textTheme
.bodyMedium,
),
client.authorized
? ElevatedButton.icon(
style: ButtonStyle(
backgroundColor:
MaterialStatePropertyAll(Colors.red)),
icon: const Icon(Icons.close),
onPressed: () {
bind.cmCloseConnection(connId: client.id);
gFFI.invokeMethod(
"cancel_notification", client.id);
},
label: Text(translate("Close")))
: Row(children: [
TextButton(
child: Text(translate("Dismiss")),
onPressed: () {
serverModel.sendLoginResponse(client, false);
}),
const SizedBox(width: 20),
ElevatedButton(
child: Text(translate("Accept")),
onPressed: () {
serverModel.sendLoginResponse(client, true);
}),
]),
],
)))
? Icon(Icons.folder_outlined)
: Icon(Icons.mobile_screen_share),
child: Column(children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Expanded(child: ClientInfo(client)),
Expanded(
flex: -1,
child: client.isFileTransfer || !client.authorized
? const SizedBox.shrink()
: IconButton(
onPressed: () {
gFFI.chatModel.changeCurrentID(client.id);
final bar = navigationBarKey.currentWidget;
if (bar != null) {
bar as BottomNavigationBar;
bar.onTap!(1);
}
},
icon: const Icon(Icons.chat)))
],
),
client.authorized
? const SizedBox.shrink()
: Text(
translate("android_new_connection_tip"),
style: Theme.of(context).textTheme.bodyMedium,
).marginOnly(bottom: 5),
client.authorized
? Container(
alignment: Alignment.centerRight,
child: ElevatedButton.icon(
style: ButtonStyle(
backgroundColor:
MaterialStatePropertyAll(Colors.red)),
icon: const Icon(Icons.close),
onPressed: () {
bind.cmCloseConnection(connId: client.id);
gFFI.invokeMethod(
"cancel_notification", client.id);
},
label: Text(translate("Disconnect"))))
: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
TextButton(
child: Text(translate("Dismiss")),
onPressed: () {
serverModel.sendLoginResponse(
client, false);
}).marginOnly(right: 15),
ElevatedButton.icon(
icon: const Icon(Icons.check),
label: Text(translate("Accept")),
onPressed: () {
serverModel.sendLoginResponse(client, true);
}),
]),
])))
.toList());
}
}
@ -461,7 +450,7 @@ class PaddingCard extends StatelessWidget {
: super(key: key);
final String? title;
final IconData? titleIcon;
final Icon? titleIcon;
final Widget child;
@override
@ -471,23 +460,16 @@ class PaddingCard extends StatelessWidget {
children.insert(
0,
Padding(
padding: const EdgeInsets.symmetric(vertical: 5.0),
padding: const EdgeInsets.fromLTRB(0, 5, 0, 8),
child: Row(
children: [
titleIcon != null
? Padding(
padding: const EdgeInsets.only(right: 10),
child:
Icon(titleIcon, color: MyTheme.accent, size: 30))
: const SizedBox.shrink(),
Text(
title!,
style: const TextStyle(
fontFamily: 'WorkSans',
fontWeight: FontWeight.bold,
fontSize: 20,
color: MyTheme.accent,
),
titleIcon?.marginOnly(right: 10) ?? const SizedBox.shrink(),
Expanded(
child: Text(title!,
style: Theme.of(context)
.textTheme
.titleLarge
?.merge(TextStyle(fontWeight: FontWeight.bold))),
)
],
)));
@ -495,12 +477,14 @@ class PaddingCard extends StatelessWidget {
return SizedBox(
width: double.maxFinite,
child: Card(
margin: const EdgeInsets.fromLTRB(15.0, 15.0, 15.0, 0),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(13),
),
margin: const EdgeInsets.fromLTRB(12.0, 10.0, 12.0, 0),
child: Padding(
padding:
const EdgeInsets.symmetric(vertical: 15.0, horizontal: 30.0),
const EdgeInsets.symmetric(vertical: 15.0, horizontal: 20.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: children,
),
),
@ -516,7 +500,7 @@ class ClientInfo extends StatelessWidget {
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.symmetric(vertical: 8),
child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
child: Column(children: [
Row(
children: [
Expanded(
@ -524,21 +508,19 @@ class ClientInfo extends StatelessWidget {
child: Padding(
padding: const EdgeInsets.only(right: 12),
child: CircleAvatar(
backgroundColor:
str2color(client.name).withOpacity(0.7),
backgroundColor: str2color(
client.name,
Theme.of(context).brightness == Brightness.light
? 255
: 150),
child: Text(client.name[0])))),
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(client.name,
style: const TextStyle(
color: MyTheme.idColor, fontSize: 18)),
Text(client.name, style: const TextStyle(fontSize: 18)),
const SizedBox(width: 8),
Text(client.peerId,
style: const TextStyle(
color: MyTheme.idColor, fontSize: 10))
Text(client.peerId, style: const TextStyle(fontSize: 10))
]))
],
),

View File

@ -289,7 +289,7 @@ class ServerModel with ChangeNotifier {
content: Text(translate("android_stop_service_tip")),
actions: [
TextButton(onPressed: close, child: Text(translate("Cancel"))),
ElevatedButton(onPressed: submit, child: Text(translate("OK"))),
TextButton(onPressed: submit, child: Text(translate("OK"))),
],
onSubmit: submit,
onCancel: close,

View File

@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Note", "Nota"),
("Connection", "connexió"),
("Share Screen", "Compartir pantalla"),
("CLOSE", "TANCAR"),
("OPEN", "OBRIR"),
("Chat", "Xat"),
("Total", "Total"),
("items", "ítems"),
@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("android_service_will_start_tip", "Habilitar la captura de pantalla iniciarà el servei automàticament, i permetrà que altres dispositius sol·licitin una connexió des d'aquest dispositiu."),
("android_stop_service_tip", "Tancar el servei tancarà totes les connexions establertes."),
("android_version_audio_tip", "La versión actual de Android no admet la captura d'àudio, actualizi a Android 10 o superior."),
("android_start_service_tip", "Toqui el permís [Iniciar servei] o OBRIR [Captura de pantalla] per iniciar el servei d'ús compartit de pantalla."),
("android_start_service_tip", ""),
("Account", "Compte"),
("Overwrite", "Sobreescriure"),
("This file exists, skip or overwrite this file?", "Aquest arxiu ja existeix, ometre o sobreescriure l'arxiu?"),
@ -469,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Restore", ""),
("Minimize", ""),
("Maximize", ""),
("Your Device", ""),
].iter().cloned().collect();
}

View File

@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Note", "备注"),
("Connection", "连接"),
("Share Screen", "共享屏幕"),
("CLOSE", "关闭"),
("OPEN", "开启"),
("Chat", "聊天消息"),
("Total", "总计"),
("items", "个项目"),
@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("android_service_will_start_tip", "开启录屏权限将自动开启服务,允许其他设备向此设备请求建立连接。"),
("android_stop_service_tip", "关闭服务将自动关闭所有已建立的连接。"),
("android_version_audio_tip", "当前安卓版本不支持音频录制,请升级至安卓 10 或更高。"),
("android_start_service_tip", "点击 [启动服务] 或打开 [屏幕录制] 权限开启手机屏幕共享服务。"),
("android_start_service_tip", ""),
("Account", "账户"),
("Overwrite", "覆盖"),
("This file exists, skip or overwrite this file?", "这个文件/文件夹已存在,跳过/覆盖?"),
@ -469,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Restore", ""),
("Minimize", ""),
("Maximize", ""),
("Your Device", ""),
].iter().cloned().collect();
}

View File

@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Note", "Poznámka"),
("Connection", "Připojení"),
("Share Screen", "Nasdílet obrazovku"),
("CLOSE", "ZAVŘÍT"),
("OPEN", "OTEVŘÍT"),
("Chat", "Chat"),
("Total", "Celkem"),
("items", "Položek"),
@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("android_service_will_start_tip", "Zapnutí „Zachytávání obsahu obrazovky“ automaticky spustí službu, což umožní ostatním zařízením žádat o připojení k vašemu zařízení."),
("android_stop_service_tip", "Zastavení služby automaticky ukončí veškerá navázaná spojení."),
("android_version_audio_tip", "Vámi nyní používaná verze systému Android nepodporuje zachytávání zvuku přejděte na Android 10 nebo novější."),
("android_start_service_tip", "Službu pro sdílení obrazovky spustíte klepnutím na [Spustit službu] nebo UDĚLTE pověření pro [Zachytávání obsahu obrazovky]."),
("android_start_service_tip", ""),
("Account", ""),
("Overwrite", "Přepsat"),
("This file exists, skip or overwrite this file?", "Tento soubor existuje přeskočit ho nebo přepsat?"),
@ -469,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Restore", ""),
("Minimize", ""),
("Maximize", ""),
("Your Device", ""),
].iter().cloned().collect();
}

View File

@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Note", "Note"),
("Connection", "Forbindelse"),
("Share Screen", "Del skærmen"),
("CLOSE", "LUK"),
("OPEN", "ÅBEN"),
("Chat", "Chat"),
("Total", "Total"),
("items", "artikel"),
@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("android_service_will_start_tip", "Ved at tænde for skærmoptagelsen startes tjenesten automatisk, så andre enheder kan anmode om en forbindelse fra denne enhed."),
("android_stop_service_tip", "Ved at lukke tjenesten lukkes alle fremstillede forbindelser automatisk."),
("android_version_audio_tip", "Den aktuelle Android -version understøtter ikke lydoptagelse, skal du opdatere om Android 10 eller højere."),
("android_start_service_tip", "Tryk på [Start Service] eller åbn autorisationen [skærmoptagelse] for at starte skærmudgivelsen."),
("android_start_service_tip", ""),
("Account", "Konto"),
("Overwrite", "Overskriv"),
("This file exists, skip or overwrite this file?", "Denne fil findes, springer over denne fil eller overskriver?"),
@ -469,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Restore", ""),
("Minimize", ""),
("Maximize", ""),
("Your Device", ""),
].iter().cloned().collect();
}

View File

@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Note", "Hinweis"),
("Connection", "Verbindung"),
("Share Screen", "Bildschirm freigeben"),
("CLOSE", "DEAKTIVIEREN"),
("OPEN", "AKTIVIEREN"),
("Chat", "Chat"),
("Total", "Gesamt"),
("items", "Einträge"),
@ -469,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Restore", "Verkleinern"),
("Minimize", "Minimieren"),
("Maximize", "Maximieren"),
("Your Device", "Ihr Gerät"),
].iter().cloned().collect();
}

View File

@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Note", "Σημείωση"),
("Connection", "Σύνδεση"),
("Share Screen", "Κοινή χρήση οθόνης"),
("CLOSE", "Απενεργοποίηση"),
("OPEN", "Ενεργοποίηση"),
("Chat", "Κουβέντα"),
("Total", "Σύνολο"),
("items", "στοιχεία"),
@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("android_service_will_start_tip", "Η ενεργοποίηση της κοινής χρήσης οθόνης θα ξεκινήσει αυτόματα την υπηρεσία, ώστε άλλες συσκευές να μπορούν να ελέγχουν αυτήν τη συσκευή Android."),
("android_stop_service_tip", "Η απενεργοποίηση της υπηρεσίας θα αποσυνδέσει αυτόματα όλες τις εγκατεστημένες συνδέσεις."),
("android_version_audio_tip", "Η έκδοση Android που διαθέτετε δεν υποστηρίζει εγγραφή ήχου, ενημερώστε το σε Android 10 ή νεότερη έκδοση, εάν είναι δυνατόν."),
("android_start_service_tip", "Πατήστε [Ενεργοποίηση υπηρεσίας] ή ενεργοποιήστε την άδεια [Πρόσβαση στην οθόνη] για να ξεκινήσετε την υπηρεσία κοινής χρήσης οθόνης."),
("android_start_service_tip", ""),
("Account", "Λογαριασμός"),
("Overwrite", "Αντικατάσταση"),
("This file exists, skip or overwrite this file?", "Αυτό το αρχείο υπάρχει, παράβλεψη ή αντικατάσταση αυτού του αρχείου;"),
@ -469,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Restore", ""),
("Minimize", ""),
("Maximize", ""),
("Your Device", ""),
].iter().cloned().collect();
}

View File

@ -23,7 +23,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("android_service_will_start_tip", "Turning on \"Screen Capture\" will automatically start the service, allowing other devices to request a connection to your device."),
("android_stop_service_tip", "Closing the service will automatically close all established connections."),
("android_version_audio_tip", "The current Android version does not support audio capture, please upgrade to Android 10 or higher."),
("android_start_service_tip", "Tap [Start Service] or OPEN [Screen Capture] permission to start the screen sharing service."),
("android_start_service_tip", "Tap [Start Service] or enable [Screen Capture] permission to start the screen sharing service."),
("doc_mac_permission", "https://rustdesk.com/docs/en/manual/mac/#enable-permissions"),
("doc_fix_wayland", "https://rustdesk.com/docs/en/manual/linux/#x11-required"),
("server_not_support", "Not yet supported by the server"),

View File

@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Note", "Notu"),
("Connection", ""),
("Share Screen", ""),
("CLOSE", ""),
("OPEN", ""),
("Chat", ""),
("Total", ""),
("items", ""),
@ -469,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Restore", ""),
("Minimize", ""),
("Maximize", ""),
("Your Device", ""),
].iter().cloned().collect();
}

View File

@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Note", "Nota"),
("Connection", "Conexión"),
("Share Screen", "Compartir pantalla"),
("CLOSE", "CERRAR"),
("OPEN", "ABRIR"),
("Chat", "Chat"),
("Total", "Total"),
("items", "items"),
@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("android_service_will_start_tip", "Habilitar la captura de pantalla iniciará automáticamente el servicio, lo que permitirá que otros dispositivos soliciten una conexión desde este dispositivo."),
("android_stop_service_tip", "Cerrar el servicio cerrará automáticamente todas las conexiones establecidas."),
("android_version_audio_tip", "La versión actual de Android no admite la captura de audio, actualice a Android 10 o posterior."),
("android_start_service_tip", "Toque el permiso [Iniciar servicio] o ABRIR [Captura de pantalla] para iniciar el servicio de uso compartido de pantalla."),
("android_start_service_tip", ""),
("Account", "Cuenta"),
("Overwrite", "Sobrescribir"),
("This file exists, skip or overwrite this file?", "Este archivo existe, ¿omitir o sobrescribir este archivo?"),
@ -469,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Restore", ""),
("Minimize", ""),
("Maximize", ""),
("Your Device", ""),
].iter().cloned().collect();
}

View File

@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Note", "یادداشت"),
("Connection", "ارتباط"),
("Share Screen", "اشتراک گذاری صفحه"),
("CLOSE", "بستن"),
("OPEN", "باز کردن"),
("Chat", "چت"),
("Total", "مجموع"),
("items", "آیتم ها"),
@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("android_service_will_start_tip", "فعال کردن ضبط صفحه به طور خودکار سرویس را راه اندازی می کند و به دستگاه های دیگر امکان می دهد درخواست اتصال به آن دستگاه را داشته باشند."),
("android_stop_service_tip", "با بستن سرویس، تمام اتصالات برقرار شده به طور خودکار بسته می شود"),
("android_version_audio_tip", "نسخه فعلی اندروید از ضبط صدا پشتیبانی نمی‌کند، لطفاً به اندروید 10 یا بالاتر به‌روزرسانی کنید"),
("android_start_service_tip", "برای شروع سرویس اشتراک‌گذاری صفحه، روی مجوز \"شروع مرحله‌بندی سرور\" یا OPEN \"Screen Capture\" کلیک کنید."),
("android_start_service_tip", ""),
("Account", "حساب کاربری"),
("Overwrite", "بازنویسی"),
("This file exists, skip or overwrite this file?", "این فایل وجود دارد، از فایل رد شود یا آن را بازنویسی کند؟"),
@ -469,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Restore", ""),
("Minimize", ""),
("Maximize", ""),
("Your Device", ""),
].iter().cloned().collect();
}

View File

@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Note", "Noter"),
("Connection", "Connexion"),
("Share Screen", "Partager l'écran"),
("CLOSE", "FERMER"),
("OPEN", "OUVRIR"),
("Chat", "Discuter"),
("Total", "Total"),
("items", "éléments"),
@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("android_service_will_start_tip", "L'activation de la capture d'écran démarrera automatiquement le service, permettant à d'autres appareils de demander une connexion à partir de cet appareil."),
("android_stop_service_tip", "La fermeture du service fermera automatiquement toutes les connexions établies."),
("android_version_audio_tip", "La version actuelle d'Android ne prend pas en charge la capture audio, veuillez passer à Android 10 ou supérieur."),
("android_start_service_tip", "Appuyez sur [Démarrer le service] ou sur l'autorisation OUVRIR [Capture d'écran] pour démarrer le service de partage d'écran."),
("android_start_service_tip", ""),
("Account", "Compte"),
("Overwrite", "Écraser"),
("This file exists, skip or overwrite this file?", "Ce fichier existe, ignorer ou écraser ce fichier ?"),
@ -469,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Restore", ""),
("Minimize", ""),
("Maximize", ""),
("Your Device", ""),
].iter().cloned().collect();
}

View File

@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Note", "Megyjegyzés"),
("Connection", "Kapcsolat"),
("Share Screen", "Képernyőmegosztás"),
("CLOSE", "BEZÁRÁS"),
("OPEN", "MEGNYITÁS"),
("Chat", "Chat"),
("Total", "Összes"),
("items", "elemek"),
@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("android_service_will_start_tip", "A \"Képernyőrögzítés\" bekapcsolásával automatikus elindul a szolgáltatás, lehetővé téve, hogy más eszközök csatlakozási kérelmet küldhessenek"),
("android_stop_service_tip", "A szolgáltatás leállítása automatikusan szétkapcsol minden létező kapcsolatot."),
("android_version_audio_tip", "A jelenlegi Android verzió nem támogatja a hangrögzítést, frissítsen legalább Android 10-re, vagy egy újabb verzióra."),
("android_start_service_tip", "Nyomjon a [Szolgáltatás indítása] gombra, vagy adjon [Képernyőrözítési] engedélyt az applikációnak hogy elindítsa a képernyőmegosztó szolgáltatást."),
("android_start_service_tip", ""),
("Account", "Fiók"),
("Overwrite", "Felülírás"),
("This file exists, skip or overwrite this file?", "Ez a fájl már létezik, kihagyja vagy felülírja ezt a fájlt?"),
@ -469,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Restore", ""),
("Minimize", ""),
("Maximize", ""),
("Your Device", ""),
].iter().cloned().collect();
}

View File

@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Note", "Catatan"),
("Connection", "Koneksi"),
("Share Screen", "Bagikan Layar"),
("CLOSE", "TUTUP"),
("OPEN", "BUKA"),
("Chat", "Obrolan"),
("Total", "Total"),
("items", "item"),
@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("android_service_will_start_tip", "Mengaktifkan \"Tangkapan Layar\" akan memulai layanan secara otomatis, memungkinkan perangkat lain untuk meminta sambungan ke perangkat Anda."),
("android_stop_service_tip", "Menutup layanan akan secara otomatis menutup semua koneksi yang dibuat."),
("android_version_audio_tip", "Versi Android saat ini tidak mendukung pengambilan audio, harap tingkatkan ke Android 10 atau lebih tinggi."),
("android_start_service_tip", "Ketuk izin [Mulai Layanan] atau BUKA [Tangkapan Layar] untuk memulai layanan berbagi layar."),
("android_start_service_tip", ""),
("Account", "Akun"),
("Overwrite", "Timpa"),
("This file exists, skip or overwrite this file?", "File ini sudah ada, lewati atau timpa file ini?"),
@ -469,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Restore", ""),
("Minimize", ""),
("Maximize", ""),
("Your Device", ""),
].iter().cloned().collect();
}

View File

@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Note", "Nota"),
("Connection", "Connessione"),
("Share Screen", "Condividi schermo"),
("CLOSE", "CHIUDERE"),
("OPEN", "APRIRE"),
("Chat", "Chat"),
("Total", "Totale"),
("items", "Oggetti"),
@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("android_service_will_start_tip", "L'attivazione di Cattura schermo avvierà automaticamente il servizio, consentendo ad altri dispositivi di richiedere una connessione da questo dispositivo."),
("android_stop_service_tip", "La chiusura del servizio chiuderà automaticamente tutte le connessioni stabilite."),
("android_version_audio_tip", "L'attuale versione di Android non supporta l'acquisizione audio, esegui l'upgrade ad Android 10 o versioni successive."),
("android_start_service_tip", "Toccare [Avvia servizio] o APRI l'autorizzazione [Cattura schermo] per avviare il servizio di condivisione dello schermo."),
("android_start_service_tip", ""),
("Account", "Account"),
("Overwrite", "Sovrascrivi"),
("This file exists, skip or overwrite this file?", "Questo file esiste, saltare o sovrascrivere questo file?"),
@ -469,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Restore", ""),
("Minimize", ""),
("Maximize", ""),
("Your Device", ""),
].iter().cloned().collect();
}

View File

@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Note", "ノート"),
("Connection", "接続"),
("Share Screen", "画面を共有"),
("CLOSE", "閉じる"),
("OPEN", "開く"),
("Chat", "チャット"),
("Total", ""),
("items", "個のアイテム"),
@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("android_service_will_start_tip", "「画面キャプチャ」をオンにするとサービスが自動的に開始され、他の端末がこの端末への接続をリクエストできるようになります。"),
("android_stop_service_tip", "サービスを停止すると、現在確立されている接続が全て自動的に閉じられます。"),
("android_version_audio_tip", "現在のAndroidバージョンでは音声キャプチャはサポートされていません。Android 10以降にアップグレードしてください。"),
("android_start_service_tip", "「サービスを開始」をタップするか「画面キャプチャ」を開くと、画面共有サービスが開始されます。"),
("android_start_service_tip", ""),
("Account", ""),
("Overwrite", "上書き"),
("This file exists, skip or overwrite this file?", "このファイルは存在しています。スキップするか上書きしますか?"),
@ -469,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Restore", ""),
("Minimize", ""),
("Maximize", ""),
("Your Device", ""),
].iter().cloned().collect();
}

View File

@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Note", "노트"),
("Connection", "연결"),
("Share Screen", "화면 공유"),
("CLOSE", "종료"),
("OPEN", "열기"),
("Chat", "채팅"),
("Total", "총합"),
("items", "개체"),
@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("android_service_will_start_tip", "\"화면 캡처\"를 켜면 서비스가 자동으로 시작되어 다른 장치에서 사용자 장치에 대한 연결을 요청할 수 있습니다."),
("android_stop_service_tip", "서비스를 종료하면 모든 연결이 자동으로 닫힙니다."),
("android_version_audio_tip", "현재 Android 버전은 오디오 캡처를 지원하지 않습니다. Android 10 이상으로 업그레이드하십시오."),
("android_start_service_tip", "[서비스 시작] 또는 [화면 캡처] 권한을 눌러 화면 공유 서비스를 시작합니다."),
("android_start_service_tip", ""),
("Account", ""),
("Overwrite", "덮어쓰기"),
("This file exists, skip or overwrite this file?", "해당 파일이 이미 존재합니다, 넘어가거나 덮어쓰시겠습니까?"),
@ -469,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Restore", ""),
("Minimize", ""),
("Maximize", ""),
("Your Device", ""),
].iter().cloned().collect();
}

View File

@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Note", "Нота"),
("Connection", "Қосылым"),
("Share Screen", "Екіренді Бөлісу"),
("CLOSE", "ЖАБУ"),
("OPEN", "АШУ"),
("Chat", "Чат"),
("Total", "Барлығы"),
("items", "зат"),
@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("android_service_will_start_tip", "\"Екіренді Тұсіру\" қосылған кезде сербес аутыматты іске қосылып, басқа құрылғыларға сіздің құрылғыға қосылым сұраныстауға мүмкіндің береді."),
("android_stop_service_tip", "Сербесті жабу аутыматты түрде барлық орнатылған қосылымдарды жабады."),
("android_version_audio_tip", "Ағымдағы Android нұсқасы аудионы түсіруді қолдамайды, Android 10 не жоғарғысына жаңғыртуды өтінеміз."),
("android_start_service_tip", "[Сербесті Іске қосу]'ды түртіңіз не [Екіренді Түсіру] рұқсатын АШУ арқылы екіренді бөлісу сербесін іске қосыңыз."),
("android_start_service_tip", ""),
("Account", "Есепкі"),
("Overwrite", "Үстінен қайта жазу"),
("This file exists, skip or overwrite this file?", "Бұл файыл бар, өткізіп жіберу әлде үстінен қайта жазу керек пе?"),
@ -469,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Restore", ""),
("Minimize", ""),
("Maximize", ""),
("Your Device", ""),
].iter().cloned().collect();
}

View File

@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Note", "Opmerking"),
("Connection", "Verbinding"),
("Share Screen", "Scherm Delen"),
("CLOSE", "SLUITEN"),
("OPEN", "OPEN"),
("Chat", "Chat"),
("Total", "Totaal"),
("items", "items"),
@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("android_service_will_start_tip", "Als u \"Schermopname\" inschakelt, wordt de service automatisch gestart, zodat andere apparaten een verbinding met uw apparaat kunnen aanvragen."),
("android_stop_service_tip", "Het sluiten van de service zal automatisch alle gemaakte verbindingen sluiten."),
("android_version_audio_tip", "De huidige versie van Android ondersteunt geen audio-opname, upgrade naar Android 10 of hoger."),
("android_start_service_tip", "Druk op [Start Service] of op de permissie OPEN [Screenshot] om de service voor het overnemen van het scherm te starten."),
("android_start_service_tip", ""),
("Account", "Account"),
("Overwrite", "Overschrijven"),
("This file exists, skip or overwrite this file?", "Dit bestand bestaat reeds, overslaan of overschrijven?"),
@ -469,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Restore", ""),
("Minimize", ""),
("Maximize", ""),
("Your Device", ""),
].iter().cloned().collect();
}

View File

@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Note", "Notatka"),
("Connection", "Połączenie"),
("Share Screen", "Udostępnij ekran"),
("CLOSE", "Zamknij"),
("OPEN", "Otwórz"),
("Chat", "Czat"),
("Total", "Łącznie"),
("items", "elementów"),
@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("android_service_will_start_tip", "Włączenie opcji „Przechwytywanie ekranu” spowoduje automatyczne uruchomienie usługi, umożliwiając innym urządzeniom żądanie połączenia z Twoim urządzeniem."),
("android_stop_service_tip", "Zamknięcie usługi spowoduje automatyczne zamknięcie wszystkich nawiązanych połączeń."),
("android_version_audio_tip", "Bieżąca wersja systemu Android nie obsługuje przechwytywania dźwięku, zaktualizuj system do wersji Android 10 lub nowszej."),
("android_start_service_tip", "Kliknij [Uruchom usługę] lub Otwórz [Przechwytywanie ekranu], aby uruchomić usługę udostępniania ekranu."),
("android_start_service_tip", ""),
("Account", "Konto"),
("Overwrite", "Nadpisz"),
("This file exists, skip or overwrite this file?", "Ten plik istnieje, pominąć czy nadpisać ten plik?"),
@ -469,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Restore", ""),
("Minimize", ""),
("Maximize", ""),
("Your Device", ""),
].iter().cloned().collect();
}

View File

@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Note", "Nota"),
("Connection", "Ligação"),
("Share Screen", "Partilhar ecrã"),
("CLOSE", "FECHAR"),
("OPEN", "ABRIR"),
("Chat", "Conversar"),
("Total", "Total"),
("items", "itens"),
@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("android_service_will_start_tip", "Activar a Captura de Ecran irá automaticamente inicializar o serviço, permitindo que outros dispositivos solicitem uma ligação deste dispositivo."),
("android_stop_service_tip", "Fechar o serviço irá automaticamente fechar todas as ligações estabelecidas."),
("android_version_audio_tip", "A versão atual do Android não suporta captura de áudio, por favor actualize para o Android 10 ou maior."),
("android_start_service_tip", "Toque [Iniciar Serviço] ou abra a permissão [Captura de Ecran] para iniciar o serviço de partilha de ecran."),
("android_start_service_tip", ""),
("Account", ""),
("Overwrite", "Substituir"),
("This file exists, skip or overwrite this file?", "Este ficheiro já existe, ignorar ou substituir este ficheiro?"),
@ -469,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Restore", ""),
("Minimize", ""),
("Maximize", ""),
("Your Device", ""),
].iter().cloned().collect();
}

View File

@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Note", "Nota"),
("Connection", "Conexão"),
("Share Screen", "Compartilhar Tela"),
("CLOSE", "FECHAR"),
("OPEN", "ABRIR"),
("Chat", "Chat"),
("Total", "Total"),
("items", "itens"),
@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("android_service_will_start_tip", "Habilitar a Captura de Tela irá automaticamente inicalizar o serviço, permitindo que outros dispositivos solicitem uma conexão deste dispositivo."),
("android_stop_service_tip", "Fechar o serviço irá automaticamente fechar todas as conexões estabelecidas."),
("android_version_audio_tip", "A versão atual do Android não suporta captura de áudio, por favor atualize para o Android 10 ou superior."),
("android_start_service_tip", "Toque [Iniciar Serviço] ou abra a permissão [Captura de Tela] para iniciar o serviço de compartilhamento de tela."),
("android_start_service_tip", ""),
("Account", "Conta"),
("Overwrite", "Substituir"),
("This file exists, skip or overwrite this file?", "Este arquivo existe, pular ou substituir este arquivo?"),
@ -469,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Restore", ""),
("Minimize", ""),
("Maximize", ""),
("Your Device", ""),
].iter().cloned().collect();
}

View File

@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Note", "Reține"),
("Connection", "Conexiune"),
("Share Screen", "Partajează ecran"),
("CLOSE", "ÎNCHIDE"),
("OPEN", "DESCHIDE"),
("Chat", "Discută"),
("Total", "Total"),
("items", "elemente"),
@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("android_service_will_start_tip", "Activarea setării Captură ecran va porni automat serviciul, permițând altor dispozitive să solicite conectarea la dispozitivul tău."),
("android_stop_service_tip", "Închiderea serviciului va închide automat toate conexiunile stabilite."),
("android_version_audio_tip", "Versiunea actuală de Android nu suportă captura audio. Fă upgrade la Android 10 sau la o versiune superioară."),
("android_start_service_tip", "Apasă [Pornește serviciu] sau DESCHIDE [Captură ecran] pentru a porni serviciul de partajare a ecranului."),
("android_start_service_tip", ""),
("Account", "Cont"),
("Overwrite", "Suprascrie"),
("This file exists, skip or overwrite this file?", "Fișier deja existent. Omite sau suprascrie?"),
@ -469,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Restore", ""),
("Minimize", ""),
("Maximize", ""),
("Your Device", ""),
].iter().cloned().collect();
}

View File

@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Note", "Примечание"),
("Connection", "Соединение"),
("Share Screen", "Демонстрация экрана"),
("CLOSE", "ЗАКРЫТЬ"),
("OPEN", "ОТКРЫТЬ"),
("Chat", "Чат"),
("Total", "Всего"),
("items", "элементы"),
@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("android_service_will_start_tip", "Включение захвата экрана автоматически запускает службу, позволяя другим устройствам запрашивать соединение с этим устройством."),
("android_stop_service_tip", "Закрытие службы автоматически закроет все установленные соединения."),
("android_version_audio_tip", "Текущая версия Android не поддерживает захват звука, обновите её до Android 10 или выше."),
("android_start_service_tip", "Нажмите \"Запуск промежуточного сервера\" или ОТКРЫТЬ разрешение \"Захват экрана\", чтобы запустить службу демонстрации экрана."),
("android_start_service_tip", ""),
("Account", "Аккаунт"),
("Overwrite", "Перезаписать"),
("This file exists, skip or overwrite this file?", "Этот файл существует, пропустить или перезаписать файл?"),
@ -469,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Restore", ""),
("Minimize", ""),
("Maximize", ""),
("Your Device", ""),
].iter().cloned().collect();
}

View File

@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Note", "Poznámka"),
("Connection", "Pripojenie"),
("Share Screen", "Zdielať obrazovku"),
("CLOSE", "ZATVORIŤ"),
("OPEN", "OTVORIŤ"),
("Chat", "Chat"),
("Total", "Celkom"),
("items", "položiek"),
@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("android_service_will_start_tip", "Zapnutie \"Zachytávanie obsahu obrazovky\" automaticky spistí službu, čo iným zariadeniam umožní požiadať o pripojenie k tomuto zariadeniu."),
("android_stop_service_tip", "Zastavenie služby automaticky ukončí všetky naviazané spojenia."),
("android_version_audio_tip", "Vaša verzia Androidu neumožňuje zaznamenávanie zvuku. Prejdite na verziu Android 10 alebo vyššiu."),
("android_start_service_tip", "Klepnite na [Spustiť službu] alebo OTVORTE oprávnenie [Zachytávanie obsahu obrazovky], aby sa aktivovala služba zdieľania obrazovky."),
("android_start_service_tip", ""),
("Account", ""),
("Overwrite", "Prepísať"),
("This file exists, skip or overwrite this file?", "Preskočiť alebo prepísať existujúci súbor?"),
@ -469,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Restore", ""),
("Minimize", ""),
("Maximize", ""),
("Your Device", ""),
].iter().cloned().collect();
}

View File

@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Note", "Opomba"),
("Connection", "Povezava"),
("Share Screen", "Deli zaslon"),
("CLOSE", "ZAPRI"),
("OPEN", "ODPRI"),
("Chat", "Pogovor"),
("Total", "Skupaj"),
("items", "elementi"),
@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("android_service_will_start_tip", "Z vklopom zajema zaslona se bo samodejno zagnala storitev, ki omogoča da oddaljene naprave pošljejo zahtevo za povezavo na vašo napravo."),
("android_stop_service_tip", "Z zaustavitvijo storitve bodo samodejno prekinjene vse oddaljene povezave."),
("android_version_audio_tip", "Trenutna različica Androida ne omogoča zajema zvoka. Za zajem zvoka nadgradite na Android 10 ali novejši."),
("android_start_service_tip", "Tapnite »Zaženi storitev« ali »ODPRI« pri dovoljenju za zajem zaslona da zaženete storitev deljenja zaslona."),
("android_start_service_tip", ""),
("Account", "Račun"),
("Overwrite", "Prepiši"),
("This file exists, skip or overwrite this file?", "Datoteka obstaja, izpusti ali prepiši?"),
@ -469,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Restore", ""),
("Minimize", ""),
("Maximize", ""),
("Your Device", ""),
].iter().cloned().collect();
}

View File

@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Note", "Shënime"),
("Connection", "Lidhja"),
("Share Screen", "Ndaj ekranin"),
("CLOSE", "Mbyll"),
("OPEN", "Hap"),
("Chat", "Biseda"),
("Total", "Total"),
("items", "artikuj"),
@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("android_service_will_start_tip", "Aktivizimi i \"Regjistrimi i ekranit\" do të nisë automatikisht shërbimin, duke lejuar pajisjet e tjera të kërkojnë një lidhje me pajisjen tuaj."),
("android_stop_service_tip", "Mbyllja e shërbimit do të mbyllë automatikisht të gjitha lidhjet e vendosura."),
("android_version_audio_tip", "Versioni aktual i Android nuk mbështet regjistrimin e audios, ju lutemi përmirësoni në Android 10 ose më të lartë."),
("android_start_service_tip", "Shtyp [Fillo Shërbimin] ose HAP lejen e [Kapjen e Ekranit] për të nisur shërbimin e ndarjes së ekranit."),
("android_start_service_tip", ""),
("Account", "Llogaria"),
("Overwrite", "Përshkruaj"),
("This file exists, skip or overwrite this file?", "Ky skedar ekziston , tejkalo ose përshkruaj këtë skedarë"),
@ -469,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Restore", ""),
("Minimize", ""),
("Maximize", ""),
("Your Device", ""),
].iter().cloned().collect();
}

View File

@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Note", "Primedba"),
("Connection", "Konekcija"),
("Share Screen", "Podeli ekran"),
("CLOSE", "ZATVORI"),
("OPEN", "OTVORI"),
("Chat", "Dopisivanje"),
("Total", "Ukupno"),
("items", "stavki"),
@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("android_service_will_start_tip", "Uključenje \"Screen Capture\" automatski će pokrenuti servis, dozvoljavajući drugim uređajima da zahtevaju spajanje na vaš uređaj."),
("android_stop_service_tip", "Zatvaranje servisa automatski će zatvoriti sve uspostavljene konekcije."),
("android_version_audio_tip", "Tekuća Android verzija ne podržava audio snimanje, molimo nadogradite na Android 10 ili veći."),
("android_start_service_tip", "Kliknite [Start Service] ili OPEN [Screen Capture] dozvolu da pokrenete servis deljenja ekrana."),
("android_start_service_tip", ""),
("Account", "Nalog"),
("Overwrite", "Prepiši preko"),
("This file exists, skip or overwrite this file?", "Ova datoteka postoji, preskoči ili prepiši preko?"),
@ -469,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Restore", ""),
("Minimize", ""),
("Maximize", ""),
("Your Device", ""),
].iter().cloned().collect();
}

View File

@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Note", "Notering"),
("Connection", "Anslutning"),
("Share Screen", "Dela skärm"),
("CLOSE", "STÄNG"),
("OPEN", "ÖPPNA"),
("Chat", "Chatt"),
("Total", "Totalt"),
("items", "föremål"),
@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("android_service_will_start_tip", "Sätter du på \"skärminspelning\" kommer tjänsten automatiskt att starta. Detta tillåter andra enheter att kontrollera din enhet."),
("android_stop_service_tip", "Genom att stänga av tjänsten kommer alla enheter att kopplas ifrån."),
("android_version_audio_tip", "Din version av Android stödjer inte ljudinspelning, Android 10 eller nyare krävs"),
("android_start_service_tip", "Tryck på [Starta tjänsten] eller tillåt [skärminspelning] för att starta skärmdelning."),
("android_start_service_tip", ""),
("Account", "Konto"),
("Overwrite", "Skriv över"),
("This file exists, skip or overwrite this file?", "Filen finns redan, hoppa över eller skriv över filen?"),
@ -469,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Restore", ""),
("Minimize", ""),
("Maximize", ""),
("Your Device", ""),
].iter().cloned().collect();
}

View File

@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Note", ""),
("Connection", ""),
("Share Screen", ""),
("CLOSE", ""),
("OPEN", ""),
("Chat", ""),
("Total", ""),
("items", ""),
@ -469,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Restore", ""),
("Minimize", ""),
("Maximize", ""),
("Your Device", ""),
].iter().cloned().collect();
}

View File

@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Note", "บันทึกข้อความ"),
("Connection", "การเชื่อมต่อ"),
("Share Screen", "แชร์หน้าจอ"),
("CLOSE", "ปิด"),
("OPEN", "เปิด"),
("Chat", "แชท"),
("Total", "รวม"),
("items", "รายการ"),
@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("android_service_will_start_tip", "การเปิดการใช้งาน \"การบันทึกหน้าจอ\" จะเป็นการเริ่มต้นการทำงานของเซอร์วิสโดยอัตโนมัติ ที่จะอนุญาตให้อุปกรณ์อื่นๆ ส่งคำขอเข้าถึงมายังอุปกรณ์ของคุณได้"),
("android_stop_service_tip", "การปิดการใช้งานเซอร์วิสจะปิดการเชื่อมต่อทั้งหมดโดยอัตโนมัติ"),
("android_version_audio_tip", "เวอร์ชั่นแอนดรอยด์ปัจจุบันของคุณไม่รองรับการบันทึกข้อมูลเสียง กรุณาอัปเกรดเป็นแอนดรอยด์เวอร์ชั่น 10 หรือสูงกว่า"),
("android_start_service_tip", "แตะ [เริ่มต้นใช้งานเซอร์วิส] หรือเปิดสิทธิ์ [การบันทึกหน้าจอ] เพื่อเริ่มเซอร์วิสการแชร์หน้าจอ"),
("android_start_service_tip", ""),
("Account", "บัญชี"),
("Overwrite", "เขียนทับ"),
("This file exists, skip or overwrite this file?", "พบไฟล์ที่มีอยู่แล้ว ต้องการเขียนทับหรือไม่?"),
@ -469,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Restore", ""),
("Minimize", ""),
("Maximize", ""),
("Your Device", ""),
].iter().cloned().collect();
}

View File

@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Note", "Not"),
("Connection", "Bağlantı"),
("Share Screen", "Ekranı Paylaş"),
("CLOSE", "KAPAT"),
("OPEN", ""),
("Chat", "Mesajlaş"),
("Total", "Toplam"),
("items", "öğeler"),
@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("android_service_will_start_tip", "Ekran Yakalamanın etkinleştirilmesi, hizmeti otomatik olarak başlatacak ve diğer cihazların bu cihazdan bağlantı talep etmesine izin verecektir."),
("android_stop_service_tip", "Hizmetin kapatılması, kurulan tüm bağlantıları otomatik olarak kapatacaktır."),
("android_version_audio_tip", "Mevcut Android sürümü ses yakalamayı desteklemiyor, lütfen Android 10 veya sonraki bir sürüme yükseltin."),
("android_start_service_tip", "Ekran paylaşım hizmetini başlatmak için [Hizmeti Başlat] veya AÇ [Ekran Yakalama] iznine dokunun."),
("android_start_service_tip", ""),
("Account", "Hesap"),
("Overwrite", "üzerine yaz"),
("This file exists, skip or overwrite this file?", "Bu dosya var, bu dosya atlansın veya üzerine yazılsın mı?"),
@ -469,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Restore", ""),
("Minimize", ""),
("Maximize", ""),
("Your Device", ""),
].iter().cloned().collect();
}

View File

@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Note", "備註"),
("Connection", "連接"),
("Share Screen", "共享畫面"),
("CLOSE", "關閉"),
("OPEN", "開啟"),
("Chat", "聊天消息"),
("Total", "總計"),
("items", "個項目"),
@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("android_service_will_start_tip", "開啟畫面錄製權限將自動開啟服務,允許其他裝置向此裝置請求建立連接。"),
("android_stop_service_tip", "關閉服務將自動關閉所有已建立的連接。"),
("android_version_audio_tip", "目前的 Android 版本不支持音訊錄製,請升級至 Android 10 或以上版本。"),
("android_start_service_tip", "點擊 「啟動服務」 或啟用 「畫面錄製」 權限以開啟手機畫面共享服務。"),
("android_start_service_tip", ""),
("Account", "賬戶"),
("Overwrite", "覆寫"),
("This file exists, skip or overwrite this file?", "此檔案/資料夾已存在,要跳過或是覆寫此檔案嗎?"),
@ -469,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Restore", ""),
("Minimize", ""),
("Maximize", ""),
("Your Device", ""),
].iter().cloned().collect();
}

View File

@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Note", "Примітка"),
("Connection", "З'єднання"),
("Share Screen", "Поділитися екраном"),
("CLOSE", "ЗАКРИТИ"),
("OPEN", "ВІДКРИТИ"),
("Chat", "Чат"),
("Total", "Всього"),
("items", "елементи"),
@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("android_service_will_start_tip", "Увімкнення захоплення екрана автоматично запускає службу, дозволяючи іншим пристроям запитувати з'єднання з цього пристрою."),
("android_stop_service_tip", "Закриття служби автоматично закриє всі встановлені з'єднання."),
("android_version_audio_tip", "Поточна версія Android не підтримує захоплення звуку, оновіть її до Android 10 або вище."),
("android_start_service_tip", "Натисніть [Запуск проміжного сервера] або ВІДКРИТИ роздільну здатність [Захоплення екрана], щоб запустити службу демонстрації екрана."),
("android_start_service_tip", ""),
("Account", "Акаунт"),
("Overwrite", "Перезаписати"),
("This file exists, skip or overwrite this file?", "Цей файл існує, пропустити або перезаписати файл?"),
@ -469,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Restore", ""),
("Minimize", ""),
("Maximize", ""),
("Your Device", ""),
].iter().cloned().collect();
}

View File

@ -270,8 +270,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Note", "Ghi nhớ"),
("Connection", "Kết nối"),
("Share Screen", "Chia sẻ màn hình"),
("CLOSE", "ĐÓNG"),
("OPEN", "MỞ"),
("Chat", "Chat"),
("Total", "Tổng"),
("items", "items"),
@ -290,7 +288,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("android_service_will_start_tip", "Bật \"Ghi màn hình\" sẽ tự động khởi động dịch vụ, cho phép các thiết bị khác yêu cầu kết nối với thiết bị của bạn."),
("android_stop_service_tip", "Đóng dịch vụ sẽ tự động đóng tất cả các kết nối đã thiết lập."),
("android_version_audio_tip", "Phiên bản Android hiện tại không hỗ trợ ghi âm, vui lòng nâng cấp lên Android 10 trở lên."),
("android_start_service_tip", "Nhấn vào [Bắt đầu dịch vụ] hoặc MỞ quyền [Ghi màn hình] để bắt đầu dịch vụ chia sẻ màn hình."),
("android_start_service_tip", ""),
("Account", ""),
("Overwrite", "Ghi đè"),
("This file exists, skip or overwrite this file?", "Tệp tin này đã tồn tại, bạn có muốn bỏ qua hay ghi đè lên tệp tin này?"),
@ -469,5 +467,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Restore", ""),
("Minimize", ""),
("Maximize", ""),
("Your Device", ""),
].iter().cloned().collect();
}