diff --git a/Cargo.toml b/Cargo.toml index 95ae98409..f3a0377d4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,6 +21,7 @@ hbbs = [] cli = [] with_rc = ["simple_rc"] appimage = [] +flatpak = [] use_samplerate = ["samplerate"] use_rubato = ["rubato"] use_dasp = ["dasp"] diff --git a/README.md b/README.md index 8abfbc9d3..8e484ef86 100644 --- a/README.md +++ b/README.md @@ -65,8 +65,8 @@ Please download sciter dynamic library yourself. ### Ubuntu 18 (Debian 10) ```sh -sudo apt install -y g++ gcc git curl wget nasm yasm libgtk-3-dev clang libxcb-randr0-dev libxdo-dev \ - libxfixes-dev libxcb-shape0-dev libxcb-xfixes0-dev libasound2-dev libpulse-dev cmake \ +sudo apt install -y zip g++ gcc git curl wget nasm yasm libgtk-3-dev clang libxcb-randr0-dev libxdo-dev \ + libxfixes-dev libxcb-shape0-dev libxcb-xfixes0-dev libasound2-dev libpulse-dev cmake make \ libclang-dev ninja-build libayatana-appindicator3-1 libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libayatana-appindicator3-dev ``` diff --git a/build.py b/build.py index e56d6a41e..27b5af744 100755 --- a/build.py +++ b/build.py @@ -71,7 +71,7 @@ def make_parser(): parser.add_argument( '--hwcodec', action='store_true', - help='Enable feature hwcodec, windows only.' + help='Enable feature hwcodec' ) return parser diff --git a/com.rustdesk.RustDesk.policy b/com.rustdesk.RustDesk.policy new file mode 100644 index 000000000..a77223120 --- /dev/null +++ b/com.rustdesk.RustDesk.policy @@ -0,0 +1,22 @@ + + + + RustDesk + https://rustdesk.com/ + rustdesk + + Change RustDesk options + Authentication is required to change RustDesk options + 要更改RustDesk选项, 需要您先通过身份验证 + 要變更RustDesk選項, 需要您先通過身份驗證 + /usr/share/rustdesk/files/polkit + true + + auth_admin + auth_admin + auth_admin + + + diff --git a/flutter/lib/desktop/pages/desktop_setting_page.dart b/flutter/lib/desktop/pages/desktop_setting_page.dart index 9aae9dc29..effc26b39 100644 --- a/flutter/lib/desktop/pages/desktop_setting_page.dart +++ b/flutter/lib/desktop/pages/desktop_setting_page.dart @@ -265,22 +265,14 @@ class _GeneralState extends State<_General> { if (devices.isEmpty) { return const Offstage(); } - List keys = devices.toList(); - List values = devices.toList(); - // TODO - if (!devices.contains(currentDevice)) { - currentDevice = ""; - keys.insert(0, currentDevice); - values.insert(0, 'default'); - } return _Card(title: 'Audio Input Device', children: [ - _ComboBox( - keys: keys, - values: values, - initialKey: currentDevice, - onChanged: (key) { - setDevice(key); - }).marginOnly(left: _kContentHMargin), + ...devices.map((device) => _Radio(context, + value: device, + groupValue: currentDevice, + label: device, onChanged: (value) { + setDevice(value); + setState(() {}); + })) ]); }); } @@ -876,6 +868,8 @@ Widget _Radio(BuildContext context, Radio(value: value, groupValue: groupValue, onChanged: onChange), Expanded( child: Text(translate(label), + maxLines: 1, + overflow: TextOverflow.ellipsis, style: TextStyle( fontSize: _kContentFontSize, color: _disabledTextColor(context, enabled))) diff --git a/flutter/pubspec.lock b/flutter/pubspec.lock index e6fa83b1d..251d3dacb 100644 --- a/flutter/pubspec.lock +++ b/flutter/pubspec.lock @@ -5,245 +5,245 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted - version: "46.0.0" + version: "47.0.0" after_layout: dependency: transitive description: name: after_layout - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.2.0" analyzer: dependency: transitive description: name: analyzer - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted - version: "4.6.0" + version: "4.7.0" animations: dependency: transitive description: name: animations - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.4" archive: dependency: transitive description: name: archive - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "3.3.1" args: dependency: transitive description: name: args - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.3.1" async: dependency: transitive description: name: async - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.8.2" back_button_interceptor: dependency: "direct main" description: name: back_button_interceptor - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "6.0.1" boolean_selector: dependency: transitive description: name: boolean_selector - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.1.0" build: dependency: transitive description: name: build - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.3.0" build_config: dependency: transitive description: name: build_config - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.1.0" build_daemon: dependency: transitive description: name: build_daemon - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "3.1.0" build_resolvers: dependency: transitive description: name: build_resolvers - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.9" build_runner: dependency: "direct dev" description: name: build_runner - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.2.0" build_runner_core: dependency: transitive description: name: build_runner_core - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "7.2.3" built_collection: dependency: transitive description: name: built_collection - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "5.1.1" built_value: dependency: transitive description: name: built_value - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "8.4.1" cached_network_image: dependency: transitive description: name: cached_network_image - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "3.2.1" cached_network_image_platform_interface: dependency: transitive description: name: cached_network_image_platform_interface - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.0.0" cached_network_image_web: dependency: transitive description: name: cached_network_image_web - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.0.1" characters: dependency: transitive description: name: characters - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.2.0" charcode: dependency: transitive description: name: charcode - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.3.1" checked_yaml: dependency: transitive description: name: checked_yaml - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.1" clock: dependency: transitive description: name: clock - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.1.0" code_builder: dependency: transitive description: name: code_builder - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "4.2.0" collection: dependency: transitive description: name: collection - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.16.0" contextmenu: dependency: "direct main" description: name: contextmenu - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "3.0.0" convert: dependency: transitive description: name: convert - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "3.0.2" cross_file: dependency: transitive description: name: cross_file - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.3.3+1" crypto: dependency: transitive description: name: crypto - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "3.0.2" csslib: dependency: transitive description: name: csslib - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.17.2" cupertino_icons: dependency: "direct main" description: name: cupertino_icons - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.0.5" dart_style: dependency: transitive description: name: dart_style - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted - version: "2.2.3" + version: "2.2.4" dash_chat_2: dependency: "direct main" description: name: dash_chat_2 - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.0.14" desktop_drop: dependency: "direct main" description: name: desktop_drop - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.3.3" desktop_multi_window: @@ -259,133 +259,133 @@ packages: dependency: "direct main" description: name: device_info_plus - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "4.1.2" device_info_plus_linux: dependency: transitive description: name: device_info_plus_linux - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "3.0.0" device_info_plus_macos: dependency: transitive description: name: device_info_plus_macos - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "3.0.0" device_info_plus_platform_interface: dependency: transitive description: name: device_info_plus_platform_interface - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "3.0.0" device_info_plus_web: dependency: transitive description: name: device_info_plus_web - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "3.0.0" device_info_plus_windows: dependency: transitive description: name: device_info_plus_windows - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted - version: "4.0.0" + version: "4.1.0" draggable_float_widget: dependency: "direct main" description: name: draggable_float_widget - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.0.2" event_bus: dependency: transitive description: name: event_bus - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.0" external_path: dependency: "direct main" description: name: external_path - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted - version: "1.0.1" + version: "1.0.3" fake_async: dependency: transitive description: name: fake_async - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.3.0" ffi: dependency: "direct main" description: name: ffi - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.1" file: dependency: transitive description: name: file - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "6.1.4" firebase_analytics: dependency: "direct main" description: name: firebase_analytics - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted - version: "9.3.3" + version: "9.3.4" firebase_analytics_platform_interface: dependency: transitive description: name: firebase_analytics_platform_interface - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted - version: "3.3.3" + version: "3.3.4" firebase_analytics_web: dependency: transitive description: name: firebase_analytics_web - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted - version: "0.4.2+3" + version: "0.4.2+4" firebase_core: dependency: transitive description: name: firebase_core - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted - version: "1.21.1" + version: "1.22.0" firebase_core_platform_interface: dependency: transitive description: name: firebase_core_platform_interface - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "4.5.1" firebase_core_web: dependency: transitive description: name: firebase_core_web - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.7.2" fixnum: dependency: transitive description: name: fixnum - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.0.1" flutter: @@ -397,21 +397,21 @@ packages: dependency: transitive description: name: flutter_blurhash - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.7.0" flutter_breadcrumb: dependency: "direct main" description: name: flutter_breadcrumb - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.0.1" flutter_cache_manager: dependency: transitive description: name: flutter_cache_manager - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "3.3.0" flutter_custom_cursor: @@ -427,28 +427,28 @@ packages: dependency: "direct dev" description: name: flutter_launcher_icons - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.9.3" flutter_lints: dependency: "direct dev" description: name: flutter_lints - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.1" flutter_parsed_text: dependency: transitive description: name: flutter_parsed_text - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.2.1" flutter_plugin_android_lifecycle: dependency: transitive description: name: flutter_plugin_android_lifecycle - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.7" flutter_rust_bridge: @@ -474,392 +474,392 @@ packages: dependency: "direct dev" description: name: freezed - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.1.0+1" freezed_annotation: dependency: "direct main" description: name: freezed_annotation - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.1.0" frontend_server_client: dependency: transitive description: name: frontend_server_client - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.1.3" get: dependency: "direct main" description: name: get - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "4.6.5" glob: dependency: transitive description: name: glob - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.1.0" graphs: dependency: transitive description: name: graphs - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.1.0" html: dependency: transitive description: name: html - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.15.0" http: dependency: "direct main" description: name: http - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.13.5" http_multi_server: dependency: transitive description: name: http_multi_server - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "3.2.1" http_parser: dependency: transitive description: name: http_parser - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "4.0.1" image: dependency: "direct main" description: name: image - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "3.2.0" image_picker: dependency: "direct main" description: name: image_picker - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.8.5+3" image_picker_android: dependency: transitive description: name: image_picker_android - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted - version: "0.8.5+2" + version: "0.8.5+3" image_picker_for_web: dependency: transitive description: name: image_picker_for_web - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.1.8" image_picker_ios: dependency: transitive description: name: image_picker_ios - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted - version: "0.8.5+6" + version: "0.8.6" image_picker_platform_interface: dependency: transitive description: name: image_picker_platform_interface - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.6.1" intl: dependency: transitive description: name: intl - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.17.0" io: dependency: transitive description: name: io - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.0.3" js: dependency: transitive description: name: js - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.6.4" json_annotation: dependency: transitive description: name: json_annotation - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "4.6.0" lints: dependency: transitive description: name: lints - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.0" logging: dependency: transitive description: name: logging - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.0.2" matcher: dependency: transitive description: name: matcher - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.12.11" material_color_utilities: dependency: transitive description: name: material_color_utilities - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.1.4" menu_base: dependency: transitive description: name: menu_base - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.1.1" meta: dependency: transitive description: name: meta - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.7.0" mime: dependency: transitive description: name: mime - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.0.2" nested: dependency: transitive description: name: nested - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.0.0" octo_image: dependency: transitive description: name: octo_image - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.0.2" package_config: dependency: transitive description: name: package_config - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.1.0" package_info_plus: dependency: "direct main" description: name: package_info_plus - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.4.3+1" package_info_plus_linux: dependency: transitive description: name: package_info_plus_linux - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.0.5" package_info_plus_macos: dependency: transitive description: name: package_info_plus_macos - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.3.0" package_info_plus_platform_interface: dependency: transitive description: name: package_info_plus_platform_interface - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.0.2" package_info_plus_web: dependency: transitive description: name: package_info_plus_web - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.0.5" package_info_plus_windows: dependency: transitive description: name: package_info_plus_windows - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.1.0" path: dependency: transitive description: name: path - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.8.1" path_provider: dependency: "direct main" description: name: path_provider - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.11" path_provider_android: dependency: transitive description: name: path_provider_android - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.20" path_provider_ios: dependency: transitive description: name: path_provider_ios - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.11" path_provider_linux: dependency: transitive description: name: path_provider_linux - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.1.7" path_provider_macos: dependency: transitive description: name: path_provider_macos - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.6" path_provider_platform_interface: dependency: transitive description: name: path_provider_platform_interface - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.4" path_provider_windows: dependency: transitive description: name: path_provider_windows - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted - version: "2.1.2" + version: "2.1.3" pedantic: dependency: transitive description: name: pedantic - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.11.1" petitparser: dependency: transitive description: name: petitparser - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "5.0.0" platform: dependency: transitive description: name: platform - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "3.1.0" plugin_platform_interface: dependency: transitive description: name: plugin_platform_interface - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.1.2" pool: dependency: transitive description: name: pool - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.5.1" process: dependency: transitive description: name: process - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "4.2.4" provider: dependency: "direct main" description: name: provider - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "6.0.3" pub_semver: dependency: transitive description: name: pub_semver - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.1.1" pubspec_parse: dependency: transitive description: name: pubspec_parse - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.2.1" qr_code_scanner: dependency: "direct main" description: name: qr_code_scanner - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.0.1" quiver: dependency: transitive description: name: quiver - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "3.1.0" rxdart: dependency: "direct main" description: name: rxdart - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.27.5" screen_retriever: @@ -875,91 +875,91 @@ packages: dependency: "direct main" description: name: scroll_pos - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.3.0" settings_ui: dependency: "direct main" description: name: settings_ui - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.2" shared_preferences: dependency: "direct main" description: name: shared_preferences - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.15" shared_preferences_android: dependency: transitive description: name: shared_preferences_android - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted - version: "2.0.12" + version: "2.0.13" shared_preferences_ios: dependency: transitive description: name: shared_preferences_ios - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.1.1" shared_preferences_linux: dependency: transitive description: name: shared_preferences_linux - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.1.1" shared_preferences_macos: dependency: transitive description: name: shared_preferences_macos - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.4" shared_preferences_platform_interface: dependency: transitive description: name: shared_preferences_platform_interface - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.1.0" shared_preferences_web: dependency: transitive description: name: shared_preferences_web - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.4" shared_preferences_windows: dependency: transitive description: name: shared_preferences_windows - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.1.1" shelf: dependency: transitive description: name: shelf - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.3.2" shelf_web_socket: dependency: transitive description: name: shelf_web_socket - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.0.2" shortid: dependency: transitive description: name: shortid - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.1.2" sky_engine: @@ -971,91 +971,91 @@ packages: dependency: transitive description: name: source_gen - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.2.2" source_span: dependency: transitive description: name: source_span - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.8.2" sqflite: dependency: transitive description: name: sqflite - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.3+1" sqflite_common: dependency: transitive description: name: sqflite_common - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.2.1+1" stack_trace: dependency: transitive description: name: stack_trace - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.10.0" stream_channel: dependency: transitive description: name: stream_channel - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.1.0" stream_transform: dependency: transitive description: name: stream_transform - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.0" string_scanner: dependency: transitive description: name: string_scanner - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.1.0" synchronized: dependency: transitive description: name: synchronized - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted - version: "3.0.0+2" + version: "3.0.0+3" term_glyph: dependency: transitive description: name: term_glyph - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.2.0" test_api: dependency: transitive description: name: test_api - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.4.9" timing: dependency: transitive description: name: timing - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.0.0" toggle_switch: dependency: "direct main" description: name: toggle_switch - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.4.0" tray_manager: @@ -1071,184 +1071,184 @@ packages: dependency: "direct main" description: name: tuple - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.0" typed_data: dependency: transitive description: name: typed_data - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.3.1" url_launcher: dependency: "direct main" description: name: url_launcher - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "6.1.5" url_launcher_android: dependency: transitive description: name: url_launcher_android - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted - version: "6.0.17" + version: "6.0.19" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "6.0.17" url_launcher_linux: dependency: transitive description: name: url_launcher_linux - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "3.0.1" url_launcher_macos: dependency: transitive description: name: url_launcher_macos - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "3.0.1" url_launcher_platform_interface: dependency: transitive description: name: url_launcher_platform_interface - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.1.0" url_launcher_web: dependency: transitive description: name: url_launcher_web - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.13" url_launcher_windows: dependency: transitive description: name: url_launcher_windows - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "3.0.1" uuid: dependency: transitive description: name: uuid - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "3.0.6" vector_math: dependency: transitive description: name: vector_math - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.1.2" video_player: dependency: transitive description: name: video_player - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.4.7" video_player_android: dependency: transitive description: name: video_player_android - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.3.9" video_player_avfoundation: dependency: transitive description: name: video_player_avfoundation - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.3.5" video_player_platform_interface: dependency: transitive description: name: video_player_platform_interface - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "5.1.4" video_player_web: dependency: transitive description: name: video_player_web - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.0.12" visibility_detector: dependency: "direct main" description: name: visibility_detector - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.3.3" wakelock: dependency: "direct main" description: name: wakelock - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.5.6" wakelock_macos: dependency: transitive description: name: wakelock_macos - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.4.0" wakelock_platform_interface: dependency: transitive description: name: wakelock_platform_interface - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.3.0" wakelock_web: dependency: transitive description: name: wakelock_web - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.4.0" wakelock_windows: dependency: transitive description: name: wakelock_windows - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted - version: "0.2.0" + version: "0.2.1" watcher: dependency: transitive description: name: watcher - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "1.0.1" web_socket_channel: dependency: transitive description: name: web_socket_channel - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "2.2.0" win32: dependency: transitive description: name: win32 - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted - version: "2.7.0" + version: "3.0.0" window_manager: dependency: "direct main" description: @@ -1262,28 +1262,28 @@ packages: dependency: transitive description: name: xdg_directories - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.2.0+2" xml: dependency: transitive description: name: xml - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "6.1.0" yaml: dependency: transitive description: name: yaml - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "3.1.1" zxing2: dependency: "direct main" description: name: zxing2 - url: "https://pub.flutter-io.cn" + url: "https://pub.dartlang.org" source: hosted version: "0.1.0" sdks: diff --git a/src/lang.rs b/src/lang.rs index 7157f9b42..7ac893ca8 100644 --- a/src/lang.rs +++ b/src/lang.rs @@ -21,6 +21,7 @@ mod sk; mod tr; mod tw; mod vn; +mod kz; lazy_static::lazy_static! { pub static ref LANGS: Value = @@ -45,6 +46,7 @@ lazy_static::lazy_static! { ("pl", "Polski"), ("ja", "日本語"), ("ko", "한국어"), + ("kz", "Қазақша"), ]); } @@ -93,6 +95,7 @@ pub fn translate_locale(name: String, locale: &str) -> String { "pl" => pl::T.deref(), "ja" => ja::T.deref(), "ko" => ko::T.deref(), + "kz" => kz::T.deref(), _ => en::T.deref(), }; if let Some(v) = m.get(&name as &str) { diff --git a/src/lang/kz.rs b/src/lang/kz.rs new file mode 100644 index 000000000..8b7b3402d --- /dev/null +++ b/src/lang/kz.rs @@ -0,0 +1,323 @@ +lazy_static::lazy_static! { + pub static ref T: std::collections::HashMap<&'static str, &'static str> = + [ + ("Status", "Күй"), + ("Your Desktop", "Сіздің Жұмыс үстеліңіз"), + ("desk_tip", "Сіздің Жұмыс үстеліңіз осы ID мен құпия сөз арқылы қолжетімді"), + ("Password", "Құпия сөз"), + ("Ready", "Дайын"), + ("Established", "Қосылды"), + ("connecting_status", "RustDesk желісіне қосылуда..."), + ("Enable Service", "Сербесті қосу"), + ("Start Service", "Сербесті іске қосу"), + ("Service is running", "Сербес істеуде"), + ("Service is not running", "Сербес істемеуде"), + ("not_ready_status", "Дайын емес. Қосылымды тексеруді өтінеміз"), + ("Control Remote Desktop", "Қашықтағы Жұмыс үстелін Басқару"), + ("Transfer File", "Файыл Тасымалдау"), + ("Connect", "Қосылу"), + ("Recent Sessions", "Соңғы Сештер"), + ("Address Book", "Мекенжай Кітабы"), + ("Confirmation", "Мақұлдау"), + ("TCP Tunneling", "TCP тунелдеу"), + ("Remove", "Жою"), + ("Refresh random password", "Кездейсоқ құпия сөзді жаңарту"), + ("Set your own password", "Өз құпия сөзіңізді орнатыңыз"), + ("Enable Keyboard/Mouse", "Пернетақта/Тінтуірді қосу"), + ("Enable Clipboard", "Көшіру-тақтасын қосу"), + ("Enable File Transfer", "Файыл Тасымалдауды қосу"), + ("Enable TCP Tunneling", "TCP тунелдеуді қосу"), + ("IP Whitelisting", "IP Ақ-тізімі"), + ("ID/Relay Server", "ID/Relay сербері"), + ("Stop service", "Сербесті тоқтату"), + ("Change ID", "ID ауыстыру"), + ("Website", "Web-сайт"), + ("About", "Туралы"), + ("Mute", "Дыбыссыздандыру"), + ("Audio Input", "Аудио Еңгізу"), + ("Enhancements", "Жақсартулар"), + ("Hardware Codec", "Hardware Codec"), + ("Adaptive Bitrate", "Adaptive Bitrate"), + ("ID Server", "ID Сербері"), + ("Relay Server", "Relay Сербері"), + ("API Server", "API Сербері"), + ("invalid_http", "http:// немесе https://'пен басталуы қажет"), + ("Invalid IP", "Бұрыс IP-Мекенжай"), + ("id_change_tip", "Тек a-z, A-Z, 0-9 және _ (астынғы-сызық) таңбалары рұқсат етілген. Бірінші таңба a-z, A-Z болуы қажет. Ұзындығы 6 мен 16 арасы."), + ("Invalid format", "Бұрыс формат"), + ("server_not_support", "Сербер әзірше қолдамайды"), + ("Not available", "Қолжетімсіз"), + ("Too frequent", "Тым жиі"), + ("Cancel", "Болдырмау"), + ("Skip", "Өткізіп жіберу"), + ("Close", "Жабу"), + ("Retry", "Қайтадан көру"), + ("OK", "OK"), + ("Password Required", "Құпия сөз Қажет"), + ("Please enter your password", "Құпия сөзіңізді еңгізуді өтінеміз"), + ("Remember password", "Құпия сөзді есте сақтау"), + ("Wrong Password", "Бұрыс Құпия сөз"), + ("Do you want to enter again?", "Қайтадан кіргіңіз келеді ме?"), + ("Connection Error", "Қосылым Қатесі"), + ("Error", "Қате"), + ("Reset by the peer", "Пир қалпына келтірді"), + ("Connecting...", "Қосылуда..."), + ("Connection in progress. Please wait.", "Қосылым барысында. Күтуді өтінеміз"), + ("Please try 1 minute later", "1 минуттан соң қайта көріңіз"), + ("Login Error", "Кіру Қатесі"), + ("Successful", "Сәтті"), + ("Connected, waiting for image...", "Қосылды, сурет күтілуде..."), + ("Name", "Ат"), + ("Type", "Түр"), + ("Modified", "Өзгертілді"), + ("Size", "Өлшем"), + ("Show Hidden Files", "Жасырын Файылдарды Көрсету"), + ("Receive", "Қабылдау"), + ("Send", "Жіберу"), + ("Refresh File", "Файылды жаңарту"), + ("Local", "Лақал"), + ("Remote", "Қашықтағы"), + ("Remote Computer", "Қашықтағы Қампұтыр"), + ("Local Computer", "Лақал Қампұтыр"), + ("Confirm Delete", "Жоюды Растау"), + ("Delete", "Жою"), + ("Properties", "Қасиеттер"), + ("Multi Select", "Көптік таңдау"), + ("Empty Directory", "Бос Бума"), + ("Not an empty directory", "Бос бума емес"), + ("Are you sure you want to delete this file?", "Бұл файылды жоюға сенімдісіз бе?"), + ("Are you sure you want to delete this empty directory?", "Бұл бос буманы жоюға сенімдісіз бе?"), + ("Are you sure you want to delete the file of this directory?", "Бұл буманың файылын жоюға сенімдісіз бе?"), + ("Do this for all conflicts", "Мұны барлық қанпілектер үшін жасау"), + ("This is irreversible!", "Бұл қайтымсыз!"), + ("Deleting", "Жойылу"), + ("files", "файылдар"), + ("Waiting", "Күту"), + ("Finished", "Аяқталды"), + ("Speed", "Жылдамдық"), + ("Custom Image Quality", "Теңшеулі Сурет Сапасы"), + ("Privacy mode", "Құпиялылық Модасы"), + ("Block user input", "Қолданушы еңгізуін бұғаттау"), + ("Unblock user input", "Қолданушы еңгізуін бұғаттан шығару"), + ("Adjust Window", "Терезені Реттеу"), + ("Original", "Түпнұсқа"), + ("Shrink", "Қысу"), + ("Stretch", "Созу"), + ("Scrollbar", "Scrollbar"), + ("ScrollAuto", "ScrollAuto"), + ("Good image quality", "Жақсы сурет сапасы"), + ("Balanced", "Теңдестірілген"), + ("Optimize reaction time", "Реакция уақытын оңтайландыру"), + ("Custom", "Теңшеулі"), + ("Show remote cursor", "Қашықтағы курсорды көрсету"), + ("Show quality monitor", "Сапа мониторын көрсету"), + ("Disable clipboard", "Көшіру-тақтасын өшіру"), + ("Lock after session end", "Сеш аяқталған соң құлыптау"), + ("Insert", "Кірістіру"), + ("Insert Lock", "Кірістіруді Құлыптау"), + ("Refresh", "Жаңарту"), + ("ID does not exist", "ID табылмады"), + ("Failed to connect to rendezvous server", "Rendezvous серберіне қосылу сәтсіз"), + ("Please try later", "Кейінірек қайта көруді өтінеміз"), + ("Remote desktop is offline", "Қашықтағы жұмыс үстелі офлайн күйінде"), + ("Key mismatch", "Кілт сәйкессіздігі"), + ("Timeout", "Үзіліс"), + ("Failed to connect to relay server", "Relay серберіне қосылу сәтсіз"), + ("Failed to connect via rendezvous server", "Rendezvous сербері арқылы қосылу сәтсіз"), + ("Failed to connect via relay server", "Relay сербері арқылы қосылу сәтсіз"), + ("Failed to make direct connection to remote desktop", "Қашықтағы жұмыс үстеліне тікелей қосылым жасау сәтсіз"), + ("Set Password", "Құпия сөзді Орнату"), + ("OS Password", "OS Құпия сөзі"), + ("install_tip", "UAC кесірінен, RustDesk кейбірде қашықтағы жақ ретінде дұрыс жұмыс істей алмайды. UAC'пен қиындықты болдырмау үшін, төмендегі батырманы басып RustDesk'ті жүйеге орнатыңыз."), + ("Click to upgrade", "Жаңғырту үшін басыңыз"), + ("Click to download", "Жүктеу үшін басыңыз"), + ("Click to update", "Жаңарту үшін басыңыз"), + ("Configure", "Қалыптау"), + ("config_acc", "Сіздің Жұмыс үстеліңізді қашықтан басқару үшін, RustDesk'ке \"Қолжетімділік\" рұқсаттарын беруіңіз керек."), + ("config_screen", "Сіздің Жұмыс үстеліңізге қашықтан қол жеткізу үшін, RustDesk'ке \"Екіренді Жазу\" рұқсаттарын беруіңіз керек."), + ("Installing ...", "Орнатылу..."), + ("Install", "Орнату"), + ("Installation", "Орнатылу"), + ("Installation Path", "Орнатылу Жолы"), + ("Create start menu shortcuts", "Бастау мәзірі белгішесің жасау"), + ("Create desktop icon", "Жұмыс үстелі белгішесің жасау"), + ("agreement_tip", "Орнатуды бастасаңыз, сіз лисензе келісімін қабылдайсыз."), + ("Accept and Install", "Қабылдау және Орнату"), + ("End-user license agreement", "Түпкі қолданушының лисензе келісімі"), + ("Generating ...", "Генератталуда..."), + ("Your installation is lower version.", "Сіздің орнатуыныз төменгі нұсқа."), + ("not_close_tcp_tip", "Тунел қолдану кезінде бұл терезені жаппаңыз"), + ("Listening ...", "Тыңдау ..."), + ("Remote Host", "Қашықтағы Хост"), + ("Remote Port", "Қашықтағы Порт"), + ("Action", "Әрекет"), + ("Add", "Қосу"), + ("Local Port", "Лақал Порт"), + ("setup_server_tip", "Тез қосылым үшін өз серберіңізді орнатуды өтінеміз"), + ("Too short, at least 6 characters.", "Тым қысқа, кемінде 6 таңба."), + ("The confirmation is not identical.", "Растау сәйкес келмейді."), + ("Permissions", "Рұқсаттар"), + ("Accept", "Қабылдау"), + ("Dismiss", "Босату"), + ("Disconnect", "Ажырату"), + ("Allow using keyboard and mouse", "Пернетақта мен тінтуірді қолдануды рұқсат ету"), + ("Allow using clipboard", "Көшіру-тақтасын рұқсат ету"), + ("Allow hearing sound", "Дыбыс естуді рұқсат ету"), + ("Allow file copy and paste", "Файылды көшіру мен қоюды рұқсат ету"), + ("Connected", "Қосылды"), + ("Direct and encrypted connection", "Тікелей және кіриптелген қосылым"), + ("Relayed and encrypted connection", "Релайданған және кіриптелген қосылым"), + ("Direct and unencrypted connection", "Тікелей және кіриптелмеген қосылым"), + ("Relayed and unencrypted connection", "Релайданған және кіриптелмеген қосылым"), + ("Enter Remote ID", "Қашықтағы ID еңгізіңіз"), + ("Enter your password", "Құпия сөзіңізді енгізіңіз"), + ("Logging in...", "Кіруде..."), + ("Enable RDP session sharing", "RDP сешті бөлісуді іске қосу"), + ("Auto Login", "Ауты Кіру (\"Сеш аяқталған соң құлыптау\"'ды орнатқанда ғана жарамды)"), + ("Enable Direct IP Access", "Тікелей IP Қолжетімді іске қосу"), + ("Rename", "Атын өзгерту"), + ("Space", "Орын"), + ("Create Desktop Shortcut", "Жұмыс үстелі Таңбашасын Жасау"), + ("Change Path", "Жолды өзгерту"), + ("Create Folder", "Бума жасау"), + ("Please enter the folder name", "Буманың атауын еңгізуді өтінеміз"), + ("Fix it", "Түзету"), + ("Warning", "Ескерту"), + ("Login screen using Wayland is not supported", "Wayland қолданған Кіру екіреніне қолдау көрсетілмейді"), + ("Reboot required", "Қайта-қосу қажет"), + ("Unsupported display server ", "Қолдаусыз дисплей сербері"), + ("x11 expected", "x11 күтілген"), + ("Port", "Порт"), + ("Settings", "Орнатпалар"), + ("Username", "Қолданушы аты"), + ("Invalid port", "Бұрыс порт"), + ("Closed manually by the peer", "Пир қолымен жабылған"), + ("Enable remote configuration modification", "Қашықтан қалыптарды өзгертуді іске қосу"), + ("Run without install", "Орнатпай-ақ Іске қосу"), + ("Always connected via relay", "Әрқашан да релай сербері арқылы қосулы"), + ("Always connect via relay", "Әрқашан да релай сербері арқылы қосылу"), + ("whitelist_tip", "Маған тек ақ-тізімделген IP қол жеткізе алады"), + ("Login", "Кіру"), + ("Logout", "Шығу"), + ("Tags", "Тақтар"), + ("Search ID", "ID Іздеу"), + ("Current Wayland display server is not supported", "Ағымдағы Wayland дисплей серберіне қолдау көрсетілмейді"), + ("whitelist_sep", "Үтір, нүктелі үтір, бос орын және жаңа жолал арқылы бөлінеді"), + ("Add ID", "ID Қосу"), + ("Add Tag", "Тақ Қосу"), + ("Unselect all tags", "Барлық тақтардың таңдауын алып тастау"), + ("Network error", "Желі қатесі"), + ("Username missed", "Қолданушы аты бос"), + ("Password missed", "Құпия сөз бос"), + ("Wrong credentials", "Бұрыс тіркелгі деректер"), + ("Edit Tag", "Тақты Өндеу"), + ("Unremember Password", "Құпия сөзді Ұмыту"), + ("Favorites", "Таңдаулылар"), + ("Add to Favorites", "Таңдаулыларға Қосу"), + ("Remove from Favorites", "Таңдаулылардан алып тастау"), + ("Empty", "Бос"), + ("Invalid folder name", "Бұрыс бума атауы"), + ("Socks5 Proxy", "Socks5 Proxy"), + ("Hostname", "Хост атауы"), + ("Discovered", "Табылды"), + ("install_daemon_tip", "Бут кезінде қосылу үшін жүйелік сербесті орнатуыныз керек."), + ("Remote ID", "Қашықтағы ID"), + ("Paste", "Қою"), + ("Paste here?", "Осында қою керек пе?"), + ("Are you sure to close the connection?", "Қосылымды жабуға сенімдісіз бе?"), + ("Download new version", "Жаңа нұсқаны жүктеу"), + ("Touch mode", "Жанасатын мода"), + ("Mouse mode", "Тінтуірлі мода"), + ("One-Finger Tap", "Бір-Саусақпен Түрту"), + ("Left Mouse", "Солақ Тінтуір"), + ("One-Long Tap", "Бір-Ұзақ Түрту"), + ("Two-Finger Tap", "Екі-Саусақпен Түрту"), + ("Right Mouse", "Оңақ Тінтуір"), + ("One-Finger Move", "Бір-Саусақпен Жылжыту"), + ("Double Tap & Move", "Екі-рет Түртіп Жылжыту"), + ("Mouse Drag", "Тінтуір Тартуы"), + ("Three-Finger vertically", "Үш-Саусақпен тік-бағытты"), + ("Mouse Wheel", "Тінтуір Дөңгелегі"), + ("Two-Finger Move", "Екі-Саусақпен Жылжыту"), + ("Canvas Move", "Кенеп Жылжуы"), + ("Pinch to Zoom", "Зумдау үшін Шымшыңыз"), + ("Canvas Zoom", "Кенеп Зумы"), + ("Reset canvas", "Кенепті қалпына келтіру"), + ("No permission of file transfer", "Файыл алмасуға рұқсат берілмеген"), + ("Note", "Нота"), + ("Connection", "Қосылым"), + ("Share Screen", "Екіренді Бөлісу"), + ("CLOSE", "ЖАБУ"), + ("OPEN", "АШУ"), + ("Chat", "Чат"), + ("Total", "Барлығы"), + ("items", "зат"), + ("Selected", "Таңдалған"), + ("Screen Capture", "Екіренді Түсіру"), + ("Input Control", "Еңгізуді Басқару/Қадағалау"), + ("Audio Capture", "Аудио Түсіру"), + ("File Connection", "Файыл Қосылымы"), + ("Screen Connection", "Екірен Қосылымы"), + ("Do you accept?", "Қабылдайсыз ба?"), + ("Open System Setting", "Жүйе Орнатпаларын Ашу"), + ("How to get Android input permission?", "Android еңгізу рұқсатын қалай алуға болады?"), + ("android_input_permission_tip1", "Қашықтағы құрылғы сіздің Android құрылғыңызды тінтуір немесе түрту арқылы басқару үшін, RustDesk'ке \"Қолжетімділік\" сербесін қолдануға рұқсат беруініз керек."), + ("android_input_permission_tip2", "Келесі Жүйе Орнатпалары бетіне барып, [Орнатылған Сербестер]'ді тауып кіріңіз, сосын [RustDesk Еңгізу] сербесін іске қосыңыз."), + ("android_new_connection_tip", "Сіздің ағымдағы құрылғыңызды басқаруды қалайтын жаңа басқару сұранысы түсті."), + ("android_service_will_start_tip", "\"Екіренді Тұсіру\" қосылған кезде сербес аутыматты іске қосылып, басқа құрылғыларға сіздің құрылғыға қосылым сұраныстауға мүмкіндің береді."), + ("android_stop_service_tip", "Сербесті жабу аутыматты түрде барлық орнатылған қосылымдарды жабады."), + ("android_version_audio_tip", "Ағымдағы Android нұсқасы аудионы түсіруді қолдамайды, Android 10 не жоғарғысына жаңғыртуды өтінеміз."), + ("android_start_service_tip", "[Сербесті Іске қосу]'ды түртіңіз не [Екіренді Түсіру] рұқсатын АШУ арқылы екіренді бөлісу сербесін іске қосыңыз."), + ("Account", "Есепкі"), + ("Overwrite", "Үстінен қайта жазу"), + ("This file exists, skip or overwrite this file?", "Бұл файыл бар, өткізіп жіберу әлде үстінен қайта жазу керек пе?"), + ("Quit", "Шығу"), + ("doc_mac_permission", ""), + ("Help", "Көмек"), + ("Failed", "Сәтсіз"), + ("Succeeded", "Сәтті"), + ("Someone turns on privacy mode, exit", "Біреу құпиялылық модасын қосты, шығу"), + ("Unsupported", "Қолдаусыз"), + ("Peer denied", "Пир қабылдамады"), + ("Please install plugins", "Плагиндерді орнатуды өтінеміз"), + ("Peer exit", "Пирдің шығуы"), + ("Failed to turn off", "Сөндіру сәтсіз болды"), + ("Turned off", "Өшірілген"), + ("In privacy mode", "Құпиялылық модасында"), + ("Out privacy mode", "Құпиялылық модасынан Шығу"), + ("Language", "Тіл"), + ("Keep RustDesk background service", "Артжақтағы RustDesk сербесін сақтап тұру"), + ("Ignore Battery Optimizations", "Бәтері Оңтайландыруларын Елемеу"), + ("android_open_battery_optimizations_tip", "Егер де бұл ерекшелікті өшіруді қаласаңыз, келесі RustDesk апылқат орнатпалары бетіне барып, [Бәтері]'ні тауып кіріңіз де [Шектеусіз]'ден құсбелгіні алып тастауды өтінеміз"), + ("Connection not allowed", "Қосылу рұқсат етілмеген"), + ("Use temporary password", "Уақытша құпия сөзді қолдану"), + ("Use permanent password", "Тұрақты құпия сөзді қолдану"), + ("Use both passwords", "Қос құпия сөзді қолдану"), + ("Set permanent password", "Тұрақты құпия сөзді орнату"), + ("Set temporary password length", "Уақытша құпия сөздің ұзындығын орнату"), + ("Enable Remote Restart", "Қашықтан қайта-қосуды іске қосу"), + ("Allow remote restart", "Қашықтан қайта-қосуды рұқсат ету"), + ("Restart Remote Device", "Қашықтағы құрылғыны қайта-қосу"), + ("Are you sure you want to restart", "Қайта-қосуға сенімдісіз бе?"), + ("Restarting Remote Device", "Қашықтағы Құрылғыны қайта-қосуда"), + ("remote_restarting_tip", "Қашықтағы құрылғы қайта-қосылуда, бұл хабар терезесін жабып, біраздан соң тұрақты құпия сөзбен қайта қосылуды өтінеміз"), + ("Copied", "Көшірілді"), + ("Exit Fullscreen", "Толық екіреннен Шығу"), + ("Fullscreen", "Толық екірен"), + ("Mobile Actions", "Мабыл Әрекеттері"), + ("Select Monitor", "Мониторды Таңдау"), + ("Control Actions", "Басқару Әрекеттері"), + ("Display Settings", "Дисплей Орнатпалары"), + ("Ratio", "Арақатынас"), + ("Image Quality", "Сурет Сапасы"), + ("Scroll Style", "Scroll Теңшетұрі"), + ("Show Menubar", "Мәзір жолағын көрсету"), + ("Hide Menubar", "Мәзір жолағын жасыру"), + ("Direct Connection", "Тікелей Қосылым"), + ("Relay Connection", "Релай Қосылым"), + ("Secure Connection", "Қауіпсіз Қосылым"), + ("Insecure Connection", "Қатерлі Қосылым"), + ("Scale original", "Scale original"), + ("Scale adaptive", "Scale adaptive"), + ].iter().cloned().collect(); + } diff --git a/src/platform/linux.rs b/src/platform/linux.rs index fe2673832..89e2d296d 100644 --- a/src/platform/linux.rs +++ b/src/platform/linux.rs @@ -638,7 +638,13 @@ pub fn quit_gui() { } pub fn check_super_user_permission() -> ResultType { - // TODO: replace echo with a rustdesk's program, which is location-fixed and non-gui. - let status = std::process::Command::new("pkexec").arg("echo").status()?; + let file = "/usr/share/rustdesk/files/polkit"; + let arg; + if std::path::Path::new(file).is_file() { + arg = file; + } else { + arg = "echo"; + } + let status = std::process::Command::new("pkexec").arg(arg).status()?; Ok(status.success() && status.code() == Some(0)) } diff --git a/src/ui.rs b/src/ui.rs index fd4bfe1a8..77d983e56 100644 --- a/src/ui.rs +++ b/src/ui.rs @@ -93,7 +93,11 @@ pub fn start(args: &mut [String]) { let prefix = std::env::var("APPDIR").unwrap_or("".to_string()); #[cfg(not(feature = "appimage"))] let prefix = "".to_string(); - sciter::set_library(&(prefix + "/usr/lib/rustdesk/libsciter-gtk.so")).ok(); + #[cfg(feature = "flatpak")] + let dir = "/app"; + #[cfg(not(feature = "flatpak"))] + let dir = "/usr"; + sciter::set_library(&(prefix + dir + "/lib/rustdesk/libsciter-gtk.so")).ok(); } // https://github.com/c-smile/sciter-sdk/blob/master/include/sciter-x-types.h // https://github.com/rustdesk/rustdesk/issues/132#issuecomment-886069737