Fix/custom client styles (#7373)

* Fix. qs styles

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* custom client, options

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Move logo.svg to icon.svg

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Refact. Custom client, connection status ui.

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Custom client ui. Disable settings, hide "Change password"

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Custom client, logo align center

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Custom client, refact, outgoing ui

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Custom client, outgoing, settings icon

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Custom client, powered by RustDesk

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Custom client, remove unused SizeBox

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Update config.rs

* Update flutter_ffi.rs

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
This commit is contained in:
fufesou 2024-03-14 11:36:14 +08:00 committed by GitHub
parent a314f59db9
commit 5253d67e04
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
49 changed files with 350 additions and 124 deletions

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1522,7 +1522,10 @@ class LastWindowPosition {
} }
String get windowFramePrefix => String get windowFramePrefix =>
bind.isIncomingOnly() ? "${kWindowPrefix}qs_" : kWindowPrefix; kWindowPrefix +
(bind.isIncomingOnly()
? "incoming_"
: (bind.isOutgoingOnly() ? "outgoing_" : ""));
/// Save window position and size on exit /// Save window position and size on exit
/// Note that windowId must be provided if it's subwindow /// Note that windowId must be provided if it's subwindow
@ -1793,11 +1796,11 @@ Future<bool> restoreWindowPosition(WindowType type,
} }
if (lpos.isMaximized == true) { if (lpos.isMaximized == true) {
await restorePos(); await restorePos();
if (!bind.isIncomingOnly()) { if (!(bind.isIncomingOnly() || bind.isOutgoingOnly())) {
await windowManager.maximize(); await windowManager.maximize();
} }
} else { } else {
if (!bind.isIncomingOnly()) { if (!bind.isIncomingOnly() || bind.isOutgoingOnly()) {
await windowManager.setSize(size); await windowManager.setSize(size);
} }
await restorePos(); await restorePos();
@ -3079,25 +3082,46 @@ Color? disabledTextColor(BuildContext context, bool enabled) {
: Theme.of(context).textTheme.titleLarge?.color?.withOpacity(0.6); : Theme.of(context).textTheme.titleLarge?.color?.withOpacity(0.6);
} }
Widget loadLogo(double size) { // max 200 x 40
return Image.asset('assets/logo.png', Widget? loadLogo() {
bool isFound = true;
final image = Image.asset(
'assets/logo.png',
fit: BoxFit.contain,
errorBuilder: (ctx, error, stackTrace) {
isFound = false;
return Container();
},
);
if (isFound) {
return Container(
constraints: BoxConstraints(maxWidth: 200, maxHeight: 40),
child: image,
).marginOnly(bottom: 10);
} else {
return null;
}
}
Widget loadIcon(double size) {
return Image.asset('assets/icon.png',
width: size, width: size,
height: size, height: size,
errorBuilder: (ctx, error, stackTrace) => SvgPicture.asset( errorBuilder: (ctx, error, stackTrace) => SvgPicture.asset(
'assets/logo.svg', 'assets/icon.svg',
width: size, width: size,
height: size, height: size,
)); ));
} }
var desktopQsHomeLeftPaneSize = Size(280, 300); var imcomingOnlyHomeSize = Size(280, 300);
Size getDesktopQsHomeSize() { Size getIncomingOnlyHomeSize() {
final magicWidth = 11.0; final magicWidth = Platform.isWindows ? 11.0 : 0.0;
final magicHeight = 8.0; final magicHeight = 8.0;
return desktopQsHomeLeftPaneSize + return imcomingOnlyHomeSize +
Offset(magicWidth, kDesktopRemoteTabBarHeight + magicHeight); Offset(magicWidth, kDesktopRemoteTabBarHeight + magicHeight);
} }
Size getDesktopQsSettingsSize() { Size getIncomingOnlySettingsSize() {
return Size(768, 600); return Size(768, 600);
} }

View File

@ -21,7 +21,10 @@ import '../../models/platform_model.dart';
import '../widgets/button.dart'; import '../widgets/button.dart';
class OnlineStatusWidget extends StatefulWidget { class OnlineStatusWidget extends StatefulWidget {
const OnlineStatusWidget({Key? key}) : super(key: key); const OnlineStatusWidget({Key? key, this.onSvcStatusChanged})
: super(key: key);
final VoidCallback? onSvcStatusChanged;
@override @override
State<OnlineStatusWidget> createState() => _OnlineStatusWidgetState(); State<OnlineStatusWidget> createState() => _OnlineStatusWidgetState();
@ -34,7 +37,7 @@ class _OnlineStatusWidgetState extends State<OnlineStatusWidget> {
Timer? _updateTimer; Timer? _updateTimer;
double get em => 14.0; double get em => 14.0;
double get height => em * 3; double? get height => bind.isIncomingOnly() ? null : em * 3;
void onUsePublicServerGuide() { void onUsePublicServerGuide() {
const url = "https://rustdesk.com/pricing.html"; const url = "https://rustdesk.com/pricing.html";
@ -79,15 +82,10 @@ class _OnlineStatusWidgetState extends State<OnlineStatusWidget> {
: Color.fromARGB(255, 224, 79, 95)), : Color.fromARGB(255, 224, 79, 95)),
), ),
).marginSymmetric(horizontal: em), ).marginSymmetric(horizontal: em),
Text( Container(
_svcStopped.value width: bind.isIncomingOnly() ? 240 : null,
? translate("Service is not running") child: _buildConnStatusMsg(),
: stateGlobal.svcStatus.value == SvcStatus.connecting ),
? translate("connecting_status")
: stateGlobal.svcStatus.value == SvcStatus.notReady
? translate("not_ready_status")
: translate('Ready'),
style: TextStyle(fontSize: em)),
// stop // stop
Offstage( Offstage(
offstage: !_svcStopped.value, offstage: !_svcStopped.value,
@ -102,7 +100,8 @@ class _OnlineStatusWidgetState extends State<OnlineStatusWidget> {
.marginOnly(left: em), .marginOnly(left: em),
), ),
// ready && public // ready && public
Flexible( // No need to show the guide if is custom client.
if (!bind.isIncomingOnly()) Flexible(
child: Offstage( child: Offstage(
offstage: !(!_svcStopped.value && offstage: !(!_svcStopped.value &&
stateGlobal.svcStatus.value == SvcStatus.ready && stateGlobal.svcStatus.value == SvcStatus.ready &&
@ -137,6 +136,20 @@ class _OnlineStatusWidgetState extends State<OnlineStatusWidget> {
).paddingOnly(right: bind.isIncomingOnly() ? 8 : 0); ).paddingOnly(right: bind.isIncomingOnly() ? 8 : 0);
} }
_buildConnStatusMsg() {
widget.onSvcStatusChanged?.call();
return Text(
_svcStopped.value
? translate("Service is not running")
: stateGlobal.svcStatus.value == SvcStatus.connecting
? translate("connecting_status")
: stateGlobal.svcStatus.value == SvcStatus.notReady
? translate("not_ready_status")
: translate('Ready'),
style: TextStyle(fontSize: em),
);
}
updateStatus() async { updateStatus() async {
final status = final status =
jsonDecode(await bind.mainGetConnectStatus()) as Map<String, dynamic>; jsonDecode(await bind.mainGetConnectStatus()) as Map<String, dynamic>;
@ -260,8 +273,8 @@ class _ConnectionPageState extends State<ConnectionPage>
Expanded(child: PeerTabPage()), Expanded(child: PeerTabPage()),
], ],
).paddingOnly(left: 12.0)), ).paddingOnly(left: 12.0)),
const Divider(height: 1), if (!bind.isOutgoingOnly()) const Divider(height: 1),
OnlineStatusWidget() if (!bind.isOutgoingOnly()) OnlineStatusWidget()
], ],
); );
} }

View File

@ -13,6 +13,7 @@ import 'package:flutter_hbb/desktop/pages/connection_page.dart';
import 'package:flutter_hbb/desktop/pages/desktop_setting_page.dart'; import 'package:flutter_hbb/desktop/pages/desktop_setting_page.dart';
import 'package:flutter_hbb/desktop/pages/desktop_tab_page.dart'; import 'package:flutter_hbb/desktop/pages/desktop_tab_page.dart';
import 'package:flutter_hbb/desktop/widgets/scroll_wrapper.dart'; import 'package:flutter_hbb/desktop/widgets/scroll_wrapper.dart';
import 'package:flutter_hbb/desktop/widgets/tabbar_widget.dart';
import 'package:flutter_hbb/models/platform_model.dart'; import 'package:flutter_hbb/models/platform_model.dart';
import 'package:flutter_hbb/models/server_model.dart'; import 'package:flutter_hbb/models/server_model.dart';
import 'package:flutter_hbb/plugin/ui_manager.dart'; import 'package:flutter_hbb/plugin/ui_manager.dart';
@ -51,38 +52,43 @@ class _DesktopHomePageState extends State<DesktopHomePage>
Timer? _updateTimer; Timer? _updateTimer;
bool isCardClosed = false; bool isCardClosed = false;
RxBool _editHover = false.obs;
final GlobalKey _childKey = GlobalKey(); final GlobalKey _childKey = GlobalKey();
bool _isInHomePage() {
final controller = Get.find<DesktopTabController>();
return controller.state.value.selected == 0;
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
super.build(context); super.build(context);
final children = [buildLeftPane(context)];
if (!bind.isIncomingOnly()) {
children.addAll([
const VerticalDivider(width: 1),
Expanded(child: buildRightPane(context)),
]);
}
return Row( return Row(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: children, children: [
buildLeftPane(context),
if (!bind.isIncomingOnly()) const VerticalDivider(width: 1),
if (!bind.isIncomingOnly()) Expanded(child: buildRightPane(context)),
],
); );
} }
Widget buildLeftPane(BuildContext context) { Widget buildLeftPane(BuildContext context) {
final children = <Widget>[ final children = <Widget>[
buildTip(context), buildTip(context),
buildIDBoard(context), if (!bind.isOutgoingOnly()) buildIDBoard(context),
buildPasswordBoard(context), if (!bind.isOutgoingOnly()) buildPasswordBoard(context),
FutureBuilder<Widget>( FutureBuilder<Widget>(
future: buildHelpCards(), future: buildHelpCards(),
builder: (_, data) { builder: (_, data) {
if (data.hasData) { if (data.hasData) {
if (bind.isIncomingOnly()) { if (bind.isIncomingOnly()) {
Future.delayed(Duration(milliseconds: 300), () { if (_isInHomePage()) {
_updateWindowSize(); Future.delayed(Duration(milliseconds: 300), () {
}); _updateWindowSize();
});
}
} }
return data.data!; return data.data!;
} else { } else {
@ -97,10 +103,19 @@ class _DesktopHomePageState extends State<DesktopHomePage>
Divider(), Divider(),
Container( Container(
margin: EdgeInsets.fromLTRB(0, 0, 8, 6), margin: EdgeInsets.fromLTRB(0, 0, 8, 6),
child: OnlineStatusWidget(), child: OnlineStatusWidget(
onSvcStatusChanged: () {
if (_isInHomePage()) {
Future.delayed(Duration(milliseconds: 300), () {
_updateWindowSize();
});
}
},
),
), ),
]); ]);
} }
final textColor = Theme.of(context).textTheme.titleLarge?.color;
return ChangeNotifierProvider.value( return ChangeNotifierProvider.value(
value: gFFI.serverModel, value: gFFI.serverModel,
child: Container( child: Container(
@ -108,13 +123,45 @@ class _DesktopHomePageState extends State<DesktopHomePage>
color: Theme.of(context).colorScheme.background, color: Theme.of(context).colorScheme.background,
child: DesktopScrollWrapper( child: DesktopScrollWrapper(
scrollController: _leftPaneScrollController, scrollController: _leftPaneScrollController,
child: SingleChildScrollView( child: Stack(
controller: _leftPaneScrollController, children: [
physics: DraggableNeverScrollableScrollPhysics(), SingleChildScrollView(
child: Column( controller: _leftPaneScrollController,
key: _childKey, physics: DraggableNeverScrollableScrollPhysics(),
children: children, child: Column(
), key: _childKey,
children: children,
),
),
if (bind.isOutgoingOnly() && !bind.isDisableSettings())
Positioned(
child: Divider(),
bottom: 26,
left: 0,
right: 0,
),
if (bind.isOutgoingOnly() && !bind.isDisableSettings())
Positioned(
bottom: 6,
left: 12,
child: Align(
alignment: Alignment.centerLeft,
child: InkWell(
child: Obx(
() => Icon(
Icons.settings,
color: _editHover.value
? textColor
: Colors.grey.withOpacity(0.5),
size: 22,
),
),
onTap: () => DesktopSettingPage.switch2page(1),
onHover: (value) => _editHover.value = value,
),
),
)
],
), ),
), ),
), ),
@ -197,6 +244,10 @@ class _DesktopHomePageState extends State<DesktopHomePage>
} }
Widget buildPopupMenu(BuildContext context) { Widget buildPopupMenu(BuildContext context) {
if (bind.isDisableSettings()) {
return Offstage();
}
final textColor = Theme.of(context).textTheme.titleLarge?.color; final textColor = Theme.of(context).textTheme.titleLarge?.color;
RxBool hover = false.obs; RxBool hover = false.obs;
return InkWell( return InkWell(
@ -287,21 +338,22 @@ class _DesktopHomePageState extends State<DesktopHomePage>
)))), )))),
onHover: (value) => refreshHover.value = value, onHover: (value) => refreshHover.value = value,
).marginOnly(right: 8, top: 4), ).marginOnly(right: 8, top: 4),
InkWell( if (!bind.isDisableSettings())
child: Obx( InkWell(
() => Tooltip( child: Obx(
message: translate('Change Password'), () => Tooltip(
child: Icon( message: translate('Change Password'),
Icons.edit, child: Icon(
color: editHover.value Icons.edit,
? textColor color: editHover.value
: Color(0xFFDDDDDD), ? textColor
size: 22, : Color(0xFFDDDDDD),
)).marginOnly(right: 8, top: 4), size: 22,
)).marginOnly(right: 8, top: 4),
),
onTap: () => DesktopSettingPage.switch2page(1),
onHover: (value) => editHover.value = value,
), ),
onTap: () => DesktopSettingPage.switch2page(1),
onHover: (value) => editHover.value = value,
),
], ],
), ),
], ],
@ -314,6 +366,7 @@ class _DesktopHomePageState extends State<DesktopHomePage>
} }
buildTip(BuildContext context) { buildTip(BuildContext context) {
final logo = loadLogo();
return Padding( return Padding(
padding: padding:
const EdgeInsets.only(left: 20.0, right: 16, top: 16.0, bottom: 5), const EdgeInsets.only(left: 20.0, right: 16, top: 16.0, bottom: 5),
@ -321,29 +374,68 @@ class _DesktopHomePageState extends State<DesktopHomePage>
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Text( Align(
translate("Your Desktop"), alignment: Alignment.center,
style: Theme.of(context).textTheme.titleLarge, child: logo == null ? Offstage() : logo.marginOnly(bottom: 0.0),
// style: TextStyle( ),
// // color: MyTheme.color(context).text, Column(
// fontWeight: FontWeight.normal, children: [
// fontSize: 19), Align(
alignment: Alignment.centerLeft,
child: Text(
translate("Your Desktop"),
style: Theme.of(context).textTheme.titleLarge,
// style: TextStyle(
// // color: MyTheme.color(context).text,
// fontWeight: FontWeight.normal,
// fontSize: 19),
),
),
if (bind.isCustomClient())
Align(
alignment: Alignment.centerRight,
child: MouseRegion(
cursor: SystemMouseCursors.click,
child: GestureDetector(
onTap: () {
launchUrl(Uri.parse('https://rustdesk.com'));
},
child: Text(
translate("powered by RustDesk"),
overflow: TextOverflow.clip,
style: Theme.of(context)
.textTheme
.bodySmall
?.copyWith(color: Colors.grey.withOpacity(0.7)),
),
),
),
),
],
), ),
SizedBox( SizedBox(
height: 10.0, height: 10.0,
), ),
Text( if (!bind.isOutgoingOnly())
translate("desk_tip"), Text(
overflow: TextOverflow.clip, translate("desk_tip"),
style: Theme.of(context).textTheme.bodySmall, overflow: TextOverflow.clip,
) style: Theme.of(context).textTheme.bodySmall,
),
if (bind.isOutgoingOnly())
Text(
translate("outgoing_only_desk_tip"),
overflow: TextOverflow.clip,
style: Theme.of(context).textTheme.bodySmall,
),
], ],
), ),
); );
} }
Future<Widget> buildHelpCards() async { Future<Widget> buildHelpCards() async {
if (updateUrl.isNotEmpty && if (!bind.isCustomClient() &&
updateUrl.isNotEmpty &&
!isCardClosed && !isCardClosed &&
bind.mainUriPrefixSync().contains('rustdesk')) { bind.mainUriPrefixSync().contains('rustdesk')) {
return buildInstallCard( return buildInstallCard(
@ -357,7 +449,7 @@ class _DesktopHomePageState extends State<DesktopHomePage>
if (systemError.isNotEmpty) { if (systemError.isNotEmpty) {
return buildInstallCard("", systemError, "", () {}); return buildInstallCard("", systemError, "", () {});
} }
if (Platform.isWindows) { if (Platform.isWindows && !bind.isDisableInstallation()) {
if (!bind.mainIsInstalled()) { if (!bind.mainIsInstalled()) {
return buildInstallCard("", "install_tip", "Install", () async { return buildInstallCard("", "install_tip", "Install", () async {
await rustDeskWinManager.closeAllSubWindows(); await rustDeskWinManager.closeAllSubWindows();
@ -372,7 +464,8 @@ class _DesktopHomePageState extends State<DesktopHomePage>
}); });
} }
} else if (Platform.isMacOS) { } else if (Platform.isMacOS) {
if (!bind.mainIsCanScreenRecording(prompt: false)) { if (!(bind.isOutgoingOnly() ||
bind.mainIsCanScreenRecording(prompt: false))) {
return buildInstallCard("Permissions", "config_screen", "Configure", return buildInstallCard("Permissions", "config_screen", "Configure",
() async { () async {
bind.mainIsCanScreenRecording(prompt: true); bind.mainIsCanScreenRecording(prompt: true);
@ -407,6 +500,9 @@ class _DesktopHomePageState extends State<DesktopHomePage>
// }); // });
// } // }
} else if (Platform.isLinux) { } else if (Platform.isLinux) {
if (bind.isOutgoingOnly()) {
return Container();
}
final LinuxCards = <Widget>[]; final LinuxCards = <Widget>[];
if (bind.isSelinuxEnforcing()) { if (bind.isSelinuxEnforcing()) {
// Check is SELinux enforcing, but show user a tip of is SELinux enabled for simple. // Check is SELinux enforcing, but show user a tip of is SELinux enabled for simple.
@ -473,8 +569,8 @@ class _DesktopHomePageState extends State<DesktopHomePage>
return Stack( return Stack(
children: [ children: [
Container( Container(
margin: margin: EdgeInsets.fromLTRB(
EdgeInsets.fromLTRB(0, marginTop, 0, bind.isIncomingOnly() ? marginTop : 0), 0, marginTop, 0, bind.isIncomingOnly() ? marginTop : 0),
child: Container( child: Container(
decoration: BoxDecoration( decoration: BoxDecoration(
gradient: LinearGradient( gradient: LinearGradient(
@ -701,10 +797,17 @@ class _DesktopHomePageState extends State<DesktopHomePage>
} }
_updateWindowSize() { _updateWindowSize() {
RenderBox renderBox = RenderObject? renderObject = _childKey.currentContext?.findRenderObject();
_childKey.currentContext?.findRenderObject() as RenderBox; if (renderObject == null) {
desktopQsHomeLeftPaneSize = renderBox.size; return;
windowManager.setSize(getDesktopQsHomeSize()); }
if (renderObject is RenderBox) {
final size = renderObject.size;
if (size != imcomingOnlyHomeSize) {
imcomingOnlyHomeSize = size;
windowManager.setSize(getIncomingOnlyHomeSize());
}
}
} }
@override @override

View File

@ -106,39 +106,32 @@ class _DesktopSettingPageState extends State<DesktopSettingPage>
List<_TabInfo> _settingTabs() { List<_TabInfo> _settingTabs() {
final List<_TabInfo> settingTabs = <_TabInfo>[ final List<_TabInfo> settingTabs = <_TabInfo>[
_TabInfo('General', Icons.settings_outlined, Icons.settings), _TabInfo('General', Icons.settings_outlined, Icons.settings),
_TabInfo('Security', Icons.enhanced_encryption_outlined, if (!bind.isOutgoingOnly())
Icons.enhanced_encryption), _TabInfo('Security', Icons.enhanced_encryption_outlined,
Icons.enhanced_encryption),
_TabInfo('Network', Icons.link_outlined, Icons.link), _TabInfo('Network', Icons.link_outlined, Icons.link),
_TabInfo('Account', Icons.person_outline, Icons.person), if (!bind.isIncomingOnly())
_TabInfo(
'Display', Icons.desktop_windows_outlined, Icons.desktop_windows),
if (!bind.isIncomingOnly() && bind.pluginFeatureIsEnabled())
_TabInfo('Plugin', Icons.extension_outlined, Icons.extension),
if (!bind.isDisableAccount())
_TabInfo('Account', Icons.person_outline, Icons.person),
_TabInfo('About', Icons.info_outline, Icons.info) _TabInfo('About', Icons.info_outline, Icons.info)
]; ];
if (!bind.isIncomingOnly()) {
settingTabs.insert(
3,
_TabInfo('Display', Icons.desktop_windows_outlined,
Icons.desktop_windows));
if (bind.pluginFeatureIsEnabled()) {
settingTabs.insert(
4, _TabInfo('Plugin', Icons.extension_outlined, Icons.extension));
}
}
return settingTabs; return settingTabs;
} }
List<Widget> _children() { List<Widget> _children() {
final children = [ final children = [
_General(), _General(),
_Safety(), if (!bind.isOutgoingOnly()) _Safety(),
_Network(), _Network(),
_Account(), if (!bind.isIncomingOnly()) _Display(),
if (!bind.isIncomingOnly() && bind.pluginFeatureIsEnabled()) _Plugin(),
if (!bind.isDisableAccount()) _Account(),
_About(), _About(),
]; ];
if (!bind.isIncomingOnly()) {
children.insert(3, _Display());
if (bind.pluginFeatureIsEnabled()) {
children.insert(4, _Plugin());
}
}
return children; return children;
} }
@ -309,6 +302,10 @@ class _GeneralState extends State<_General> {
} }
Widget service() { Widget service() {
if (bind.isOutgoingOnly()) {
return const Offstage();
}
return _Card(title: 'Service', children: [ return _Card(title: 'Service', children: [
Obx(() => _Button(serviceStop.value ? 'Start' : 'Stop', () { Obx(() => _Button(serviceStop.value ? 'Start' : 'Stop', () {
() async { () async {
@ -324,18 +321,14 @@ class _GeneralState extends State<_General> {
} }
Widget other() { Widget other() {
final children = <Widget>[]; final children = <Widget>[
if (!bind.isIncomingOnly()) { if (!bind.isIncomingOnly())
children.add(_OptionCheckBox(context, _OptionCheckBox(context, 'Confirm before closing multiple tabs',
'Confirm before closing multiple tabs', 'enable-confirm-closing-tabs', 'enable-confirm-closing-tabs',
isServer: false)); isServer: false),
}
children.addAll([
_OptionCheckBox(context, 'Adaptive bitrate', 'enable-abr'), _OptionCheckBox(context, 'Adaptive bitrate', 'enable-abr'),
wallpaper() wallpaper(),
]); if (!bind.isIncomingOnly()) ...[
if (!bind.isIncomingOnly()) {
children.addAll([
_OptionCheckBox( _OptionCheckBox(
context, context,
'Open connection in new tab', 'Open connection in new tab',
@ -354,8 +347,8 @@ class _GeneralState extends State<_General> {
'enable-check-update', 'enable-check-update',
isServer: false, isServer: false,
) )
]); ],
} ];
if (bind.mainShowOption(key: 'allow-linux-headless')) { if (bind.mainShowOption(key: 'allow-linux-headless')) {
children.add(_OptionCheckBox( children.add(_OptionCheckBox(
context, 'Allow linux headless', 'allow-linux-headless')); context, 'Allow linux headless', 'allow-linux-headless'));
@ -364,6 +357,10 @@ class _GeneralState extends State<_General> {
} }
Widget wallpaper() { Widget wallpaper() {
if (bind.isOutgoingOnly()) {
return const Offstage();
}
return futureBuilder(future: () async { return futureBuilder(future: () async {
final support = await bind.mainSupportRemoveWallpaper(); final support = await bind.mainSupportRemoveWallpaper();
return support; return support;
@ -411,6 +408,10 @@ class _GeneralState extends State<_General> {
} }
Widget audio(BuildContext context) { Widget audio(BuildContext context) {
if (bind.isOutgoingOnly()) {
return const Offstage();
}
String getDefault() { String getDefault() {
if (Platform.isWindows) return translate('System Sound'); if (Platform.isWindows) return translate('System Sound');
return ''; return '';

View File

@ -57,10 +57,10 @@ class _DesktopTabPageState extends State<DesktopTabPage> {
if (bind.isIncomingOnly()) { if (bind.isIncomingOnly()) {
tabController.onSelected = (key) { tabController.onSelected = (key) {
if (key == kTabLabelHomePage) { if (key == kTabLabelHomePage) {
windowManager.setSize(getDesktopQsHomeSize()); windowManager.setSize(getIncomingOnlyHomeSize());
windowManager.setResizable(false); windowManager.setResizable(false);
} else { } else {
windowManager.setSize(getDesktopQsSettingsSize()); windowManager.setSize(getIncomingOnlySettingsSize());
windowManager.setResizable(true); windowManager.setResizable(true);
} }
}; };
@ -81,7 +81,7 @@ class _DesktopTabPageState extends State<DesktopTabPage> {
body: DesktopTab( body: DesktopTab(
controller: tabController, controller: tabController,
tail: Offstage( tail: Offstage(
offstage: bind.isIncomingOnly(), offstage: bind.isIncomingOnly() || bind.isDisableSettings(),
child: ActionIcon( child: ActionIcon(
message: 'Settings', message: 'Settings',
icon: IconFont.menu, icon: IconFont.menu,

View File

@ -327,7 +327,7 @@ class _AppIcon extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Container( return Container(
margin: EdgeInsets.symmetric(horizontal: 4.0), margin: EdgeInsets.symmetric(horizontal: 4.0),
child: loadLogo(30), child: loadIcon(30),
); );
} }
} }

View File

@ -165,7 +165,8 @@ class DesktopTabController {
})); }));
} }
}); });
if ((isDesktop && bind.isIncomingOnly()) || callOnSelected) { if ((isDesktop && (bind.isIncomingOnly() || bind.isOutgoingOnly())) ||
callOnSelected) {
if (state.value.tabs.length > index) { if (state.value.tabs.length > index) {
final key = state.value.tabs[index].key; final key = state.value.tabs[index].key;
onSelected?.call(key); onSelected?.call(key);
@ -399,7 +400,7 @@ class DesktopTab extends StatelessWidget {
child: Row(children: [ child: Row(children: [
Offstage( Offstage(
offstage: !showLogo, offstage: !showLogo,
child: loadLogo(16), child: loadIcon(16),
), ),
Offstage( Offstage(
offstage: !showTitle, offstage: !showTitle,

View File

@ -25,8 +25,6 @@ class PeerTabModel with ChangeNotifier {
'Recent sessions', 'Recent sessions',
'Favorites', 'Favorites',
'Discovered', 'Discovered',
'Address book',
'Group',
]; ];
final List<IconData> icons = [ final List<IconData> icons = [
Icons.access_time_filled, Icons.access_time_filled,
@ -51,6 +49,13 @@ class PeerTabModel with ChangeNotifier {
String get lastId => _lastId; String get lastId => _lastId;
PeerTabModel(this.parent) { PeerTabModel(this.parent) {
if (!(bind.isDisableAb() || bind.isDisableAccount())) {
tabNames.add('Address book');
}
if (!bind.isDisableAccount()) {
tabNames.add('Group');
}
// visible // visible
try { try {
final option = bind.getLocalFlutterOption(k: 'peer-tab-visible'); final option = bind.getLocalFlutterOption(k: 'peer-tab-visible');

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", "الحالة"), ("Status", "الحالة"),
("Your Desktop", "سطح مكتبك"), ("Your Desktop", "سطح مكتبك"),
("desk_tip", "يمكن الوصول لسطح مكتبك بهذا المعرف والرقم السري."), ("desk_tip", "يمكن الوصول لسطح مكتبك بهذا المعرف والرقم السري."),
("outgoing_only_desk_tip", ""),
("Password", "كلمة المرور"), ("Password", "كلمة المرور"),
("Ready", "جاهز"), ("Ready", "جاهز"),
("Established", "تم الانشاء"), ("Established", "تم الانشاء"),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", ""), ("2FA code must be 6 digits.", ""),
("Multiple Windows sessions found", ""), ("Multiple Windows sessions found", ""),
("Please select the session you want to connect to", ""), ("Please select the session you want to connect to", ""),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", ""), ("Status", ""),
("Your Desktop", ""), ("Your Desktop", ""),
("desk_tip", "Вашият работен плот може да бъде достъпен с този идентификационен код и парола."), ("desk_tip", "Вашият работен плот може да бъде достъпен с този идентификационен код и парола."),
("outgoing_only_desk_tip", ""),
("Password", ""), ("Password", ""),
("Ready", ""), ("Ready", ""),
("Established", ""), ("Established", ""),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", ""), ("2FA code must be 6 digits.", ""),
("Multiple Windows sessions found", ""), ("Multiple Windows sessions found", ""),
("Please select the session you want to connect to", ""), ("Please select the session you want to connect to", ""),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", "Estat"), ("Status", "Estat"),
("Your Desktop", "EL teu escriptori"), ("Your Desktop", "EL teu escriptori"),
("desk_tip", "Pots accedir al teu escriptori amb aquest ID i contrasenya."), ("desk_tip", "Pots accedir al teu escriptori amb aquest ID i contrasenya."),
("outgoing_only_desk_tip", ""),
("Password", "Contrasenya"), ("Password", "Contrasenya"),
("Ready", "Llest"), ("Ready", "Llest"),
("Established", "Establert"), ("Established", "Establert"),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", ""), ("2FA code must be 6 digits.", ""),
("Multiple Windows sessions found", ""), ("Multiple Windows sessions found", ""),
("Please select the session you want to connect to", ""), ("Please select the session you want to connect to", ""),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", "状态"), ("Status", "状态"),
("Your Desktop", "你的桌面"), ("Your Desktop", "你的桌面"),
("desk_tip", "你的桌面可以通过下面的 ID 和密码访问。"), ("desk_tip", "你的桌面可以通过下面的 ID 和密码访问。"),
("outgoing_only_desk_tip", "当前版本的软件是定制版本。\n您可以连接其他设备,但是其他设备无法连接您的设备。"),
("Password", "密码"), ("Password", "密码"),
("Ready", "就绪"), ("Ready", "就绪"),
("Established", "已建立"), ("Established", "已建立"),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", "双重认证代码必须是 6 位数字。"), ("2FA code must be 6 digits.", "双重认证代码必须是 6 位数字。"),
("Multiple Windows sessions found", "发现多个 Windows 会话"), ("Multiple Windows sessions found", "发现多个 Windows 会话"),
("Please select the session you want to connect to", "请选择您要连接的会话"), ("Please select the session you want to connect to", "请选择您要连接的会话"),
("powered by RustDesk", "由 RustDesk 提供支持"),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", "Stav"), ("Status", "Stav"),
("Your Desktop", "Vaše plocha"), ("Your Desktop", "Vaše plocha"),
("desk_tip", "Pomocí tohoto ID a hesla lze přistupovat k pracovní ploše."), ("desk_tip", "Pomocí tohoto ID a hesla lze přistupovat k pracovní ploše."),
("outgoing_only_desk_tip", ""),
("Password", "Heslo"), ("Password", "Heslo"),
("Ready", "Připraveno"), ("Ready", "Připraveno"),
("Established", "Navázáno"), ("Established", "Navázáno"),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", "Kód 2FA musí mít 6 číslic."), ("2FA code must be 6 digits.", "Kód 2FA musí mít 6 číslic."),
("Multiple Windows sessions found", "Bylo nalezeno více relací Windows"), ("Multiple Windows sessions found", "Bylo nalezeno více relací Windows"),
("Please select the session you want to connect to", "Vyberte relaci, ke které se chcete připojit"), ("Please select the session you want to connect to", "Vyberte relaci, ke které se chcete připojit"),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", "Status"), ("Status", "Status"),
("Your Desktop", "Dit skrivebord"), ("Your Desktop", "Dit skrivebord"),
("desk_tip", "Du kan få adgang til dit skrivebord med dette ID og adgangskode."), ("desk_tip", "Du kan få adgang til dit skrivebord med dette ID og adgangskode."),
("outgoing_only_desk_tip", ""),
("Password", "Adgangskode"), ("Password", "Adgangskode"),
("Ready", "Klar"), ("Ready", "Klar"),
("Established", "Etableret"), ("Established", "Etableret"),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", ""), ("2FA code must be 6 digits.", ""),
("Multiple Windows sessions found", ""), ("Multiple Windows sessions found", ""),
("Please select the session you want to connect to", ""), ("Please select the session you want to connect to", ""),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", "Status"), ("Status", "Status"),
("Your Desktop", "Ihr Desktop"), ("Your Desktop", "Ihr Desktop"),
("desk_tip", "Mit dieser ID und diesem Passwort kann auf Ihren Desktop zugegriffen werden."), ("desk_tip", "Mit dieser ID und diesem Passwort kann auf Ihren Desktop zugegriffen werden."),
("outgoing_only_desk_tip", ""),
("Password", "Passwort"), ("Password", "Passwort"),
("Ready", "Bereit"), ("Ready", "Bereit"),
("Established", "Verbunden"), ("Established", "Verbunden"),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", "Der 2FA-Code muss 6 Ziffern haben."), ("2FA code must be 6 digits.", "Der 2FA-Code muss 6 Ziffern haben."),
("Multiple Windows sessions found", "Mehrere Windows-Sitzungen gefunden"), ("Multiple Windows sessions found", "Mehrere Windows-Sitzungen gefunden"),
("Please select the session you want to connect to", "Bitte wählen Sie die Sitzung, mit der Sie sich verbinden möchten"), ("Please select the session you want to connect to", "Bitte wählen Sie die Sitzung, mit der Sie sich verbinden möchten"),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", "Κατάσταση"), ("Status", "Κατάσταση"),
("Your Desktop", "Ο σταθμός εργασίας σας"), ("Your Desktop", "Ο σταθμός εργασίας σας"),
("desk_tip", "Η πρόσβαση στον σταθμό εργασίας σας είναι δυνατή με αυτό το αναγνωριστικό και τον κωδικό πρόσβασης."), ("desk_tip", "Η πρόσβαση στον σταθμό εργασίας σας είναι δυνατή με αυτό το αναγνωριστικό και τον κωδικό πρόσβασης."),
("outgoing_only_desk_tip", ""),
("Password", "Κωδικός πρόσβασης"), ("Password", "Κωδικός πρόσβασης"),
("Ready", "Έτοιμο"), ("Ready", "Έτοιμο"),
("Established", "Συνδέθηκε"), ("Established", "Συνδέθηκε"),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", ""), ("2FA code must be 6 digits.", ""),
("Multiple Windows sessions found", ""), ("Multiple Windows sessions found", ""),
("Please select the session you want to connect to", ""), ("Please select the session you want to connect to", ""),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -2,6 +2,7 @@ lazy_static::lazy_static! {
pub static ref T: std::collections::HashMap<&'static str, &'static str> = pub static ref T: std::collections::HashMap<&'static str, &'static str> =
[ [
("desk_tip", "Your desktop can be accessed with this ID and password."), ("desk_tip", "Your desktop can be accessed with this ID and password."),
("outgoing_only_desk_tip", "This is a customized edition.\nYou can connect other devices, but other devices cannot connect to your device."),
("connecting_status", "Connecting to the RustDesk network..."), ("connecting_status", "Connecting to the RustDesk network..."),
("not_ready_status", "Not ready. Please check your connection"), ("not_ready_status", "Not ready. Please check your connection"),
("ID/Relay Server", "ID/Relay server"), ("ID/Relay Server", "ID/Relay server"),

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", "Stato"), ("Status", "Stato"),
("Your Desktop", "Via aparato"), ("Your Desktop", "Via aparato"),
("desk_tip", "Via aparato povas esti alirita kun tiu identigilo kaj pasvorto"), ("desk_tip", "Via aparato povas esti alirita kun tiu identigilo kaj pasvorto"),
("outgoing_only_desk_tip", ""),
("Password", "Pasvorto"), ("Password", "Pasvorto"),
("Ready", "Preta"), ("Ready", "Preta"),
("Established", ""), ("Established", ""),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", ""), ("2FA code must be 6 digits.", ""),
("Multiple Windows sessions found", ""), ("Multiple Windows sessions found", ""),
("Please select the session you want to connect to", ""), ("Please select the session you want to connect to", ""),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", "Estado"), ("Status", "Estado"),
("Your Desktop", "Tu escritorio"), ("Your Desktop", "Tu escritorio"),
("desk_tip", "Puedes acceder a tu escritorio con esta ID y contraseña."), ("desk_tip", "Puedes acceder a tu escritorio con esta ID y contraseña."),
("outgoing_only_desk_tip", ""),
("Password", "Contraseña"), ("Password", "Contraseña"),
("Ready", "Listo"), ("Ready", "Listo"),
("Established", "Establecido"), ("Established", "Establecido"),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", "El cóidigo 2FA debe tener 6 dígitos"), ("2FA code must be 6 digits.", "El cóidigo 2FA debe tener 6 dígitos"),
("Multiple Windows sessions found", "Encontradas sesiones de múltiples ventanas"), ("Multiple Windows sessions found", "Encontradas sesiones de múltiples ventanas"),
("Please select the session you want to connect to", "Por favor, seleccione la sesión a la que se desea conectar"), ("Please select the session you want to connect to", "Por favor, seleccione la sesión a la que se desea conectar"),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", ""), ("Status", ""),
("Your Desktop", ""), ("Your Desktop", ""),
("desk_tip", "Sinu töölauale saab selle ID ja parooliga ligi pääseda."), ("desk_tip", "Sinu töölauale saab selle ID ja parooliga ligi pääseda."),
("outgoing_only_desk_tip", ""),
("Password", ""), ("Password", ""),
("Ready", ""), ("Ready", ""),
("Established", ""), ("Established", ""),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", ""), ("2FA code must be 6 digits.", ""),
("Multiple Windows sessions found", ""), ("Multiple Windows sessions found", ""),
("Please select the session you want to connect to", ""), ("Please select the session you want to connect to", ""),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", "وضعیت"), ("Status", "وضعیت"),
("Your Desktop", "دسکتاپ شما"), ("Your Desktop", "دسکتاپ شما"),
("desk_tip", "دسکتاپ شما با این شناسه و رمز عبور قابل دسترسی است"), ("desk_tip", "دسکتاپ شما با این شناسه و رمز عبور قابل دسترسی است"),
("outgoing_only_desk_tip", ""),
("Password", "رمز عبور"), ("Password", "رمز عبور"),
("Ready", "آماده به کار"), ("Ready", "آماده به کار"),
("Established", "اتصال برقرار شد"), ("Established", "اتصال برقرار شد"),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", "کد احراز هویت دو مرحله ای باید 6 رقم باشد"), ("2FA code must be 6 digits.", "کد احراز هویت دو مرحله ای باید 6 رقم باشد"),
("Multiple Windows sessions found", "چندین جلسه پیدا شد"), ("Multiple Windows sessions found", "چندین جلسه پیدا شد"),
("Please select the session you want to connect to", "لطفاً جلسه ای را که می خواهید به آن متصل شوید انتخاب کنید"), ("Please select the session you want to connect to", "لطفاً جلسه ای را که می خواهید به آن متصل شوید انتخاب کنید"),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", "Statut"), ("Status", "Statut"),
("Your Desktop", "Votre bureau"), ("Your Desktop", "Votre bureau"),
("desk_tip", "Votre bureau est accessible via l'identifiant et le mot de passe ci-dessous."), ("desk_tip", "Votre bureau est accessible via l'identifiant et le mot de passe ci-dessous."),
("outgoing_only_desk_tip", ""),
("Password", "Mot de passe"), ("Password", "Mot de passe"),
("Ready", "Prêt"), ("Ready", "Prêt"),
("Established", "Établi"), ("Established", "Établi"),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", ""), ("2FA code must be 6 digits.", ""),
("Multiple Windows sessions found", ""), ("Multiple Windows sessions found", ""),
("Please select the session you want to connect to", ""), ("Please select the session you want to connect to", ""),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", "Státusz"), ("Status", "Státusz"),
("Your Desktop", "Saját asztal"), ("Your Desktop", "Saját asztal"),
("desk_tip", "A számítógép ezzel a jelszóval és azonosítóval érhető el távolról."), ("desk_tip", "A számítógép ezzel a jelszóval és azonosítóval érhető el távolról."),
("outgoing_only_desk_tip", ""),
("Password", "Jelszó"), ("Password", "Jelszó"),
("Ready", "Kész"), ("Ready", "Kész"),
("Established", "Létrejött"), ("Established", "Létrejött"),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", ""), ("2FA code must be 6 digits.", ""),
("Multiple Windows sessions found", ""), ("Multiple Windows sessions found", ""),
("Please select the session you want to connect to", ""), ("Please select the session you want to connect to", ""),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", "Status"), ("Status", "Status"),
("Your Desktop", "Desktop Anda"), ("Your Desktop", "Desktop Anda"),
("desk_tip", "Desktop Anda dapat diakses dengan ID dan kata sandi ini."), ("desk_tip", "Desktop Anda dapat diakses dengan ID dan kata sandi ini."),
("outgoing_only_desk_tip", ""),
("Password", "Kata sandi"), ("Password", "Kata sandi"),
("Ready", "Sudah siap"), ("Ready", "Sudah siap"),
("Established", "Didirikan"), ("Established", "Didirikan"),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", ""), ("2FA code must be 6 digits.", ""),
("Multiple Windows sessions found", ""), ("Multiple Windows sessions found", ""),
("Please select the session you want to connect to", ""), ("Please select the session you want to connect to", ""),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", "Stato"), ("Status", "Stato"),
("Your Desktop", "Questo desktop"), ("Your Desktop", "Questo desktop"),
("desk_tip", "Puoi accedere a questo desktop usando l'ID e la password indicati qui sotto."), ("desk_tip", "Puoi accedere a questo desktop usando l'ID e la password indicati qui sotto."),
("outgoing_only_desk_tip", ""),
("Password", "Password"), ("Password", "Password"),
("Ready", "Pronto"), ("Ready", "Pronto"),
("Established", "Stabilita"), ("Established", "Stabilita"),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", "Il codice 2FA deve essere composto da 6 cifre."), ("2FA code must be 6 digits.", "Il codice 2FA deve essere composto da 6 cifre."),
("Multiple Windows sessions found", "Rilevate sessioni Windows multiple"), ("Multiple Windows sessions found", "Rilevate sessioni Windows multiple"),
("Please select the session you want to connect to", "Seleziona la sessione a cui connetterti"), ("Please select the session you want to connect to", "Seleziona la sessione a cui connetterti"),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", "状態"), ("Status", "状態"),
("Your Desktop", "デスクトップ"), ("Your Desktop", "デスクトップ"),
("desk_tip", "このIDとパスワードであなたのデスクトップにアクセスできます。"), ("desk_tip", "このIDとパスワードであなたのデスクトップにアクセスできます。"),
("outgoing_only_desk_tip", ""),
("Password", "パスワード"), ("Password", "パスワード"),
("Ready", "準備完了"), ("Ready", "準備完了"),
("Established", "接続完了"), ("Established", "接続完了"),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", ""), ("2FA code must be 6 digits.", ""),
("Multiple Windows sessions found", ""), ("Multiple Windows sessions found", ""),
("Please select the session you want to connect to", ""), ("Please select the session you want to connect to", ""),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", "상태"), ("Status", "상태"),
("Your Desktop", "내 데스크탑"), ("Your Desktop", "내 데스크탑"),
("desk_tip", "아래의 ID와 비밀번호로 연결할수 있습니다"), ("desk_tip", "아래의 ID와 비밀번호로 연결할수 있습니다"),
("outgoing_only_desk_tip", ""),
("Password", "비밀번호"), ("Password", "비밀번호"),
("Ready", "준비"), ("Ready", "준비"),
("Established", "연결됨"), ("Established", "연결됨"),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", ""), ("2FA code must be 6 digits.", ""),
("Multiple Windows sessions found", ""), ("Multiple Windows sessions found", ""),
("Please select the session you want to connect to", ""), ("Please select the session you want to connect to", ""),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", "Күй"), ("Status", "Күй"),
("Your Desktop", "Сіздің Жұмыс үстеліңіз"), ("Your Desktop", "Сіздің Жұмыс үстеліңіз"),
("desk_tip", "Сіздің Жұмыс үстеліңіз осы ID мен құпия сөз арқылы қолжетімді"), ("desk_tip", "Сіздің Жұмыс үстеліңіз осы ID мен құпия сөз арқылы қолжетімді"),
("outgoing_only_desk_tip", ""),
("Password", "Құпия сөз"), ("Password", "Құпия сөз"),
("Ready", "Дайын"), ("Ready", "Дайын"),
("Established", "Қосылды"), ("Established", "Қосылды"),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", ""), ("2FA code must be 6 digits.", ""),
("Multiple Windows sessions found", ""), ("Multiple Windows sessions found", ""),
("Please select the session you want to connect to", ""), ("Please select the session you want to connect to", ""),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", "Būsena"), ("Status", "Būsena"),
("Your Desktop", "Jūsų darbalaukis"), ("Your Desktop", "Jūsų darbalaukis"),
("desk_tip", "Jūsų darbalaukis pasiekiamas naudojant šį ID ir slaptažodį"), ("desk_tip", "Jūsų darbalaukis pasiekiamas naudojant šį ID ir slaptažodį"),
("outgoing_only_desk_tip", ""),
("Password", "Slaptažodis"), ("Password", "Slaptažodis"),
("Ready", "Pasiruošęs"), ("Ready", "Pasiruošęs"),
("Established", "Įsteigta"), ("Established", "Įsteigta"),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", ""), ("2FA code must be 6 digits.", ""),
("Multiple Windows sessions found", ""), ("Multiple Windows sessions found", ""),
("Please select the session you want to connect to", ""), ("Please select the session you want to connect to", ""),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", "Statuss"), ("Status", "Statuss"),
("Your Desktop", "Jūsu darbvirsma"), ("Your Desktop", "Jūsu darbvirsma"),
("desk_tip", "Jūsu darbvirsmai var piekļūt ar šo ID un paroli."), ("desk_tip", "Jūsu darbvirsmai var piekļūt ar šo ID un paroli."),
("outgoing_only_desk_tip", ""),
("Password", "Parole"), ("Password", "Parole"),
("Ready", "Gatavs"), ("Ready", "Gatavs"),
("Established", "Izveidots"), ("Established", "Izveidots"),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", "2FA kodam ir jābūt ar 6 cipariem."), ("2FA code must be 6 digits.", "2FA kodam ir jābūt ar 6 cipariem."),
("Multiple Windows sessions found", "Atrastas vairākas Windows sesijas"), ("Multiple Windows sessions found", "Atrastas vairākas Windows sesijas"),
("Please select the session you want to connect to", "Lūdzu, atlasiet sesiju, ar kuru vēlaties izveidot savienojumu"), ("Please select the session you want to connect to", "Lūdzu, atlasiet sesiju, ar kuru vēlaties izveidot savienojumu"),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", "Status"), ("Status", "Status"),
("Your Desktop", "Ditt skrivebord"), ("Your Desktop", "Ditt skrivebord"),
("desk_tip", "Du kan få adgang til ditt skrivebord med denne ID og passord."), ("desk_tip", "Du kan få adgang til ditt skrivebord med denne ID og passord."),
("outgoing_only_desk_tip", ""),
("Password", "Passord"), ("Password", "Passord"),
("Ready", "Klar"), ("Ready", "Klar"),
("Established", "Etablert"), ("Established", "Etablert"),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", ""), ("2FA code must be 6 digits.", ""),
("Multiple Windows sessions found", ""), ("Multiple Windows sessions found", ""),
("Please select the session you want to connect to", ""), ("Please select the session you want to connect to", ""),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", "Status"), ("Status", "Status"),
("Your Desktop", "Uw Bureaublad"), ("Your Desktop", "Uw Bureaublad"),
("desk_tip", "Uw bureaublad is toegankelijk via de ID en het wachtwoord hieronder."), ("desk_tip", "Uw bureaublad is toegankelijk via de ID en het wachtwoord hieronder."),
("outgoing_only_desk_tip", ""),
("Password", "Wachtwoord"), ("Password", "Wachtwoord"),
("Ready", "Klaar"), ("Ready", "Klaar"),
("Established", "Opgezet"), ("Established", "Opgezet"),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", "2FA-code moet 6 cijfers lang zijn."), ("2FA code must be 6 digits.", "2FA-code moet 6 cijfers lang zijn."),
("Multiple Windows sessions found", "Meerdere Windows-sessies gevonden"), ("Multiple Windows sessions found", "Meerdere Windows-sessies gevonden"),
("Please select the session you want to connect to", "Selecteer de sessie waarmee je verbinding wilt maken"), ("Please select the session you want to connect to", "Selecteer de sessie waarmee je verbinding wilt maken"),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", "Status"), ("Status", "Status"),
("Your Desktop", "Twój pulpit"), ("Your Desktop", "Twój pulpit"),
("desk_tip", "Aby połączyć się z tym urządzeniem, użyj poniższego ID i hasła"), ("desk_tip", "Aby połączyć się z tym urządzeniem, użyj poniższego ID i hasła"),
("outgoing_only_desk_tip", ""),
("Password", "Hasło"), ("Password", "Hasło"),
("Ready", "Gotowe"), ("Ready", "Gotowe"),
("Established", "Nawiązano"), ("Established", "Nawiązano"),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", "Kod 2FA musi zawierać 6 cyfr."), ("2FA code must be 6 digits.", "Kod 2FA musi zawierać 6 cyfr."),
("Multiple Windows sessions found", "Znaleziono wiele sesji Windows"), ("Multiple Windows sessions found", "Znaleziono wiele sesji Windows"),
("Please select the session you want to connect to", "Wybierz sesję, do której chcesz się podłączyć"), ("Please select the session you want to connect to", "Wybierz sesję, do której chcesz się podłączyć"),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", "Estado"), ("Status", "Estado"),
("Your Desktop", "Ambiente de Trabalho"), ("Your Desktop", "Ambiente de Trabalho"),
("desk_tip", "O seu Ambiente de Trabalho pode ser acedido com este ID e palavra-passe."), ("desk_tip", "O seu Ambiente de Trabalho pode ser acedido com este ID e palavra-passe."),
("outgoing_only_desk_tip", ""),
("Password", "Senha"), ("Password", "Senha"),
("Ready", "Pronto"), ("Ready", "Pronto"),
("Established", "Estabelecido"), ("Established", "Estabelecido"),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", ""), ("2FA code must be 6 digits.", ""),
("Multiple Windows sessions found", ""), ("Multiple Windows sessions found", ""),
("Please select the session you want to connect to", ""), ("Please select the session you want to connect to", ""),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", "Status"), ("Status", "Status"),
("Your Desktop", "Seu Computador"), ("Your Desktop", "Seu Computador"),
("desk_tip", "Seu computador pode ser acessado com este ID e senha."), ("desk_tip", "Seu computador pode ser acessado com este ID e senha."),
("outgoing_only_desk_tip", ""),
("Password", "Senha"), ("Password", "Senha"),
("Ready", "Pronto"), ("Ready", "Pronto"),
("Established", "Estabelecido"), ("Established", "Estabelecido"),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", ""), ("2FA code must be 6 digits.", ""),
("Multiple Windows sessions found", ""), ("Multiple Windows sessions found", ""),
("Please select the session you want to connect to", ""), ("Please select the session you want to connect to", ""),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", "Stare"), ("Status", "Stare"),
("Your Desktop", "Desktopul tău"), ("Your Desktop", "Desktopul tău"),
("desk_tip", "Desktopul tău poate fi accesat folosind ID-ul și parola de mai jos."), ("desk_tip", "Desktopul tău poate fi accesat folosind ID-ul și parola de mai jos."),
("outgoing_only_desk_tip", ""),
("Password", "Parolă"), ("Password", "Parolă"),
("Ready", "Pregătit"), ("Ready", "Pregătit"),
("Established", "Stabilit"), ("Established", "Stabilit"),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", ""), ("2FA code must be 6 digits.", ""),
("Multiple Windows sessions found", ""), ("Multiple Windows sessions found", ""),
("Please select the session you want to connect to", ""), ("Please select the session you want to connect to", ""),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", "Статус"), ("Status", "Статус"),
("Your Desktop", "Ваш рабочий стол"), ("Your Desktop", "Ваш рабочий стол"),
("desk_tip", "Ваш рабочий стол доступен с этим ID и паролем"), ("desk_tip", "Ваш рабочий стол доступен с этим ID и паролем"),
("outgoing_only_desk_tip", ""),
("Password", "Пароль"), ("Password", "Пароль"),
("Ready", "Готов"), ("Ready", "Готов"),
("Established", "Установлено"), ("Established", "Установлено"),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", "Код двухфакторной аутентификации должен состоять из 6 цифр."), ("2FA code must be 6 digits.", "Код двухфакторной аутентификации должен состоять из 6 цифр."),
("Multiple Windows sessions found", "Обнаружено несколько сеансов Windows"), ("Multiple Windows sessions found", "Обнаружено несколько сеансов Windows"),
("Please select the session you want to connect to", "Выберите сеанс, к которому хотите подключиться"), ("Please select the session you want to connect to", "Выберите сеанс, к которому хотите подключиться"),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", "Stav"), ("Status", "Stav"),
("Your Desktop", "Vaša plocha"), ("Your Desktop", "Vaša plocha"),
("desk_tip", "K svojej ploche sa môžete pripojiť pomocou zobrazeného ID a hesla."), ("desk_tip", "K svojej ploche sa môžete pripojiť pomocou zobrazeného ID a hesla."),
("outgoing_only_desk_tip", ""),
("Password", "Heslo"), ("Password", "Heslo"),
("Ready", "Pripravené"), ("Ready", "Pripravené"),
("Established", "Nadviazané"), ("Established", "Nadviazané"),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", "Kód 2FA musí obsahovať 6 číslic."), ("2FA code must be 6 digits.", "Kód 2FA musí obsahovať 6 číslic."),
("Multiple Windows sessions found", "Našlo sa viacero relácií systému Windows"), ("Multiple Windows sessions found", "Našlo sa viacero relácií systému Windows"),
("Please select the session you want to connect to", "Vyberte reláciu, ku ktorej sa chcete pripojiť"), ("Please select the session you want to connect to", "Vyberte reláciu, ku ktorej sa chcete pripojiť"),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", "Stanje"), ("Status", "Stanje"),
("Your Desktop", "Vaše namizje"), ("Your Desktop", "Vaše namizje"),
("desk_tip", "Do vašega namizja lahko dostopate s spodnjim IDjem in geslom"), ("desk_tip", "Do vašega namizja lahko dostopate s spodnjim IDjem in geslom"),
("outgoing_only_desk_tip", ""),
("Password", "Geslo"), ("Password", "Geslo"),
("Ready", "Pripravljen"), ("Ready", "Pripravljen"),
("Established", "Povezava vzpostavljena"), ("Established", "Povezava vzpostavljena"),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", ""), ("2FA code must be 6 digits.", ""),
("Multiple Windows sessions found", ""), ("Multiple Windows sessions found", ""),
("Please select the session you want to connect to", ""), ("Please select the session you want to connect to", ""),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", "Statusi"), ("Status", "Statusi"),
("Your Desktop", "Desktopi juaj"), ("Your Desktop", "Desktopi juaj"),
("desk_tip", "Desktopi juaj mund të aksesohet me këtë ID dhe fjalëkalim."), ("desk_tip", "Desktopi juaj mund të aksesohet me këtë ID dhe fjalëkalim."),
("outgoing_only_desk_tip", ""),
("Password", "fjalëkalimi"), ("Password", "fjalëkalimi"),
("Ready", "Gati"), ("Ready", "Gati"),
("Established", "I themeluar"), ("Established", "I themeluar"),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", ""), ("2FA code must be 6 digits.", ""),
("Multiple Windows sessions found", ""), ("Multiple Windows sessions found", ""),
("Please select the session you want to connect to", ""), ("Please select the session you want to connect to", ""),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", "Status"), ("Status", "Status"),
("Your Desktop", "Vaša radna površina"), ("Your Desktop", "Vaša radna površina"),
("desk_tip", "Vašoj radnoj površini se može pristupiti ovim ID i lozinkom."), ("desk_tip", "Vašoj radnoj površini se može pristupiti ovim ID i lozinkom."),
("outgoing_only_desk_tip", ""),
("Password", "Lozinka"), ("Password", "Lozinka"),
("Ready", "Spremno"), ("Ready", "Spremno"),
("Established", "Uspostavljeno"), ("Established", "Uspostavljeno"),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", ""), ("2FA code must be 6 digits.", ""),
("Multiple Windows sessions found", ""), ("Multiple Windows sessions found", ""),
("Please select the session you want to connect to", ""), ("Please select the session you want to connect to", ""),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", "Status"), ("Status", "Status"),
("Your Desktop", "Ditt skrivbord"), ("Your Desktop", "Ditt skrivbord"),
("desk_tip", "Ditt skrivbord kan delas med hjälp av detta ID och lösenord"), ("desk_tip", "Ditt skrivbord kan delas med hjälp av detta ID och lösenord"),
("outgoing_only_desk_tip", ""),
("Password", "Lösenord"), ("Password", "Lösenord"),
("Ready", "Redo"), ("Ready", "Redo"),
("Established", "Uppkopplad"), ("Established", "Uppkopplad"),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", ""), ("2FA code must be 6 digits.", ""),
("Multiple Windows sessions found", ""), ("Multiple Windows sessions found", ""),
("Please select the session you want to connect to", ""), ("Please select the session you want to connect to", ""),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", ""), ("Status", ""),
("Your Desktop", ""), ("Your Desktop", ""),
("desk_tip", ""), ("desk_tip", ""),
("outgoing_only_desk_tip", ""),
("Password", ""), ("Password", ""),
("Ready", ""), ("Ready", ""),
("Established", ""), ("Established", ""),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", ""), ("2FA code must be 6 digits.", ""),
("Multiple Windows sessions found", ""), ("Multiple Windows sessions found", ""),
("Please select the session you want to connect to", ""), ("Please select the session you want to connect to", ""),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", "สถานะ"), ("Status", "สถานะ"),
("Your Desktop", "หน้าจอของคุณ"), ("Your Desktop", "หน้าจอของคุณ"),
("desk_tip", "คุณสามารถเข้าถึงเดสก์ท็อปของคุณได้ด้วย ID และรหัสผ่านต่อไปนี้"), ("desk_tip", "คุณสามารถเข้าถึงเดสก์ท็อปของคุณได้ด้วย ID และรหัสผ่านต่อไปนี้"),
("outgoing_only_desk_tip", ""),
("Password", "รหัสผ่าน"), ("Password", "รหัสผ่าน"),
("Ready", "พร้อม"), ("Ready", "พร้อม"),
("Established", "เชื่อมต่อแล้ว"), ("Established", "เชื่อมต่อแล้ว"),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", ""), ("2FA code must be 6 digits.", ""),
("Multiple Windows sessions found", ""), ("Multiple Windows sessions found", ""),
("Please select the session you want to connect to", ""), ("Please select the session you want to connect to", ""),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", "Durum"), ("Status", "Durum"),
("Your Desktop", "Sizin Masaüstünüz"), ("Your Desktop", "Sizin Masaüstünüz"),
("desk_tip", "Masaüstünüze bu ID ve şifre ile erişilebilir"), ("desk_tip", "Masaüstünüze bu ID ve şifre ile erişilebilir"),
("outgoing_only_desk_tip", ""),
("Password", "Şifre"), ("Password", "Şifre"),
("Ready", "Hazır"), ("Ready", "Hazır"),
("Established", "Bağlantı sağlandı"), ("Established", "Bağlantı sağlandı"),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", ""), ("2FA code must be 6 digits.", ""),
("Multiple Windows sessions found", ""), ("Multiple Windows sessions found", ""),
("Please select the session you want to connect to", ""), ("Please select the session you want to connect to", ""),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", "狀態"), ("Status", "狀態"),
("Your Desktop", "您的桌面"), ("Your Desktop", "您的桌面"),
("desk_tip", "您可以透過此 ID 及密碼存取您的桌面"), ("desk_tip", "您可以透過此 ID 及密碼存取您的桌面"),
("outgoing_only_desk_tip", ""),
("Password", "密碼"), ("Password", "密碼"),
("Ready", "就緒"), ("Ready", "就緒"),
("Established", "已建立"), ("Established", "已建立"),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", "二步驟驗證碼必須是 6 位數字。"), ("2FA code must be 6 digits.", "二步驟驗證碼必須是 6 位數字。"),
("Multiple Windows sessions found", "發現多個 Windows 工作階段"), ("Multiple Windows sessions found", "發現多個 Windows 工作階段"),
("Please select the session you want to connect to", "請選擇您想要連結的工作階段"), ("Please select the session you want to connect to", "請選擇您想要連結的工作階段"),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", "Статус"), ("Status", "Статус"),
("Your Desktop", "Ваша стільниця"), ("Your Desktop", "Ваша стільниця"),
("desk_tip", "Ваша стільниця доступна з цим ідентифікатором і паролем"), ("desk_tip", "Ваша стільниця доступна з цим ідентифікатором і паролем"),
("outgoing_only_desk_tip", ""),
("Password", "Пароль"), ("Password", "Пароль"),
("Ready", "Готово"), ("Ready", "Готово"),
("Established", "Встановлено"), ("Established", "Встановлено"),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", "Код двофакторної автентифікації повинен складатися з 6 символів."), ("2FA code must be 6 digits.", "Код двофакторної автентифікації повинен складатися з 6 символів."),
("Multiple Windows sessions found", "Виявлено декілька сеансів Windows"), ("Multiple Windows sessions found", "Виявлено декілька сеансів Windows"),
("Please select the session you want to connect to", "Будь ласка, оберіть сеанс, до якого ви хочете підключитися"), ("Please select the session you want to connect to", "Будь ласка, оберіть сеанс, до якого ви хочете підключитися"),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -4,6 +4,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Status", "Trạng thái hiện tại"), ("Status", "Trạng thái hiện tại"),
("Your Desktop", "Desktop của bạn"), ("Your Desktop", "Desktop của bạn"),
("desk_tip", "Desktop của bạn có thể đuợc truy cập bằng ID và mật khẩu này."), ("desk_tip", "Desktop của bạn có thể đuợc truy cập bằng ID và mật khẩu này."),
("outgoing_only_desk_tip", ""),
("Password", "Mật khẩu"), ("Password", "Mật khẩu"),
("Ready", "Sẵn sàng"), ("Ready", "Sẵn sàng"),
("Established", "Đã đuợc thiết lập"), ("Established", "Đã đuợc thiết lập"),
@ -586,5 +587,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("2FA code must be 6 digits.", ""), ("2FA code must be 6 digits.", ""),
("Multiple Windows sessions found", ""), ("Multiple Windows sessions found", ""),
("Please select the session you want to connect to", ""), ("Please select the session you want to connect to", ""),
("powered by RustDesk", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }