mirror of
https://github.com/rustdesk/rustdesk.git
synced 2026-06-23 01:13:59 +08:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 16570ee34f | |||
| 2b40c61d8e | |||
| dcc64cdeae | |||
| 2747d3d8b4 |
@@ -598,22 +598,6 @@ class MyTheme {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Applies [fallbacks] as fontFamilyFallback to every text style in both
|
|
||||||
/// themes. Called once at startup on ARM64 Linux after a CJK font has been
|
|
||||||
/// loaded via FontLoader (see flutter/flutter#139293).
|
|
||||||
static void applyFontFallback(List<String> fallbacks) {
|
|
||||||
lightTheme = lightTheme.copyWith(
|
|
||||||
textTheme: lightTheme.textTheme.apply(fontFamilyFallback: fallbacks),
|
|
||||||
primaryTextTheme:
|
|
||||||
lightTheme.primaryTextTheme.apply(fontFamilyFallback: fallbacks),
|
|
||||||
);
|
|
||||||
darkTheme = darkTheme.copyWith(
|
|
||||||
textTheme: darkTheme.textTheme.apply(fontFamilyFallback: fallbacks),
|
|
||||||
primaryTextTheme:
|
|
||||||
darkTheme.primaryTextTheme.apply(fontFamilyFallback: fallbacks),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
static ThemeMode currentThemeMode() {
|
static ThemeMode currentThemeMode() {
|
||||||
final preference = getThemeModePreference();
|
final preference = getThemeModePreference();
|
||||||
if (preference == ThemeMode.system) {
|
if (preference == ThemeMode.system) {
|
||||||
|
|||||||
@@ -1167,8 +1167,8 @@ class _MonitorMenu extends StatelessWidget {
|
|||||||
tooltip: isMulti
|
tooltip: isMulti
|
||||||
? ''
|
? ''
|
||||||
: isAllMonitors
|
: isAllMonitors
|
||||||
? 'all monitors'
|
? 'All monitors'
|
||||||
: '#${i + 1} monitor',
|
: '#{${i + 1}} monitor',
|
||||||
hMargin: isMulti ? null : 6,
|
hMargin: isMulti ? null : 6,
|
||||||
vMargin: isMulti ? null : 12,
|
vMargin: isMulti ? null : 12,
|
||||||
topLevel: false,
|
topLevel: false,
|
||||||
@@ -2852,7 +2852,7 @@ class _IconMenuButtonState extends State<_IconMenuButton> {
|
|||||||
horizontal: widget.hMargin ?? _ToolbarTheme.buttonHMargin,
|
horizontal: widget.hMargin ?? _ToolbarTheme.buttonHMargin,
|
||||||
vertical: widget.vMargin ?? _ToolbarTheme.buttonVMargin);
|
vertical: widget.vMargin ?? _ToolbarTheme.buttonVMargin);
|
||||||
button = Tooltip(
|
button = Tooltip(
|
||||||
message: widget.tooltip,
|
message: translate(widget.tooltip),
|
||||||
child: button,
|
child: button,
|
||||||
);
|
);
|
||||||
if (widget.topLevel) {
|
if (widget.topLevel) {
|
||||||
|
|||||||
@@ -29,8 +29,6 @@ import 'mobile/pages/home_page.dart';
|
|||||||
import 'mobile/pages/server_page.dart';
|
import 'mobile/pages/server_page.dart';
|
||||||
import 'mobile/widgets/deploy_dialog.dart';
|
import 'mobile/widgets/deploy_dialog.dart';
|
||||||
import 'models/platform_model.dart';
|
import 'models/platform_model.dart';
|
||||||
import 'native/font_manager.dart'
|
|
||||||
if (dart.library.html) 'web/font_manager.dart';
|
|
||||||
|
|
||||||
import 'package:flutter_hbb/plugin/handlers.dart'
|
import 'package:flutter_hbb/plugin/handlers.dart'
|
||||||
if (dart.library.html) 'package:flutter_hbb/web/plugin/handlers.dart';
|
if (dart.library.html) 'package:flutter_hbb/web/plugin/handlers.dart';
|
||||||
@@ -39,15 +37,10 @@ import 'package:flutter_hbb/plugin/handlers.dart'
|
|||||||
int? kWindowId;
|
int? kWindowId;
|
||||||
WindowType? kWindowType;
|
WindowType? kWindowType;
|
||||||
late List<String> kBootArgs;
|
late List<String> kBootArgs;
|
||||||
bool _cjkFontLoaded = false;
|
|
||||||
|
|
||||||
Future<void> main(List<String> args) async {
|
Future<void> main(List<String> args) async {
|
||||||
earlyAssert();
|
earlyAssert();
|
||||||
WidgetsFlutterBinding.ensureInitialized();
|
WidgetsFlutterBinding.ensureInitialized();
|
||||||
_cjkFontLoaded = await loadSystemCJKFonts();
|
|
||||||
if (_cjkFontLoaded) {
|
|
||||||
MyTheme.applyFontFallback([kLinuxCjkFontFamily]);
|
|
||||||
}
|
|
||||||
|
|
||||||
debugPrint("launch args: $args");
|
debugPrint("launch args: $args");
|
||||||
kBootArgs = List.from(args);
|
kBootArgs = List.from(args);
|
||||||
@@ -390,7 +383,6 @@ void _runApp(
|
|||||||
builder: (context, child) {
|
builder: (context, child) {
|
||||||
child = _keepScaleBuilder(context, child);
|
child = _keepScaleBuilder(context, child);
|
||||||
child = botToastBuilder(context, child);
|
child = botToastBuilder(context, child);
|
||||||
if (_cjkFontLoaded) child = _mergeCjkFallback(context, child);
|
|
||||||
return child;
|
return child;
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
@@ -541,7 +533,6 @@ class _AppState extends State<App> with WidgetsBindingObserver {
|
|||||||
: (context, child) {
|
: (context, child) {
|
||||||
child = _keepScaleBuilder(context, child);
|
child = _keepScaleBuilder(context, child);
|
||||||
child = botToastBuilder(context, child);
|
child = botToastBuilder(context, child);
|
||||||
if (_cjkFontLoaded) child = _mergeCjkFallback(context, child);
|
|
||||||
if ((isDesktop && desktopType == DesktopType.main) ||
|
if ((isDesktop && desktopType == DesktopType.main) ||
|
||||||
isWebDesktop) {
|
isWebDesktop) {
|
||||||
child = keyListenerBuilder(context, child);
|
child = keyListenerBuilder(context, child);
|
||||||
@@ -595,19 +586,6 @@ _registerEventHandler() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Merges the theme's fontFamilyFallback into [DefaultTextStyle] so that
|
|
||||||
/// bare [Text] widgets (and those with inherit:true styles) also pick up the
|
|
||||||
/// CJK fallback font loaded on ARM64 Linux.
|
|
||||||
Widget _mergeCjkFallback(BuildContext context, Widget? child) {
|
|
||||||
final result = child ?? Container();
|
|
||||||
final fallback = Theme.of(context).textTheme.bodyMedium?.fontFamilyFallback;
|
|
||||||
if (fallback == null || fallback.isEmpty) return result;
|
|
||||||
return DefaultTextStyle.merge(
|
|
||||||
style: TextStyle(fontFamilyFallback: fallback),
|
|
||||||
child: result,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
Widget keyListenerBuilder(BuildContext context, Widget? child) {
|
Widget keyListenerBuilder(BuildContext context, Widget? child) {
|
||||||
return RawKeyboardListener(
|
return RawKeyboardListener(
|
||||||
focusNode: FocusNode(),
|
focusNode: FocusNode(),
|
||||||
|
|||||||
@@ -1,109 +0,0 @@
|
|||||||
import 'dart:ffi' show Abi;
|
|
||||||
import 'dart:io';
|
|
||||||
import 'dart:typed_data';
|
|
||||||
|
|
||||||
import 'package:flutter/foundation.dart';
|
|
||||||
import 'package:flutter/services.dart';
|
|
||||||
|
|
||||||
/// Font family name registered with [FontLoader] when a system CJK font is
|
|
||||||
/// successfully loaded on ARM64 Linux.
|
|
||||||
const kLinuxCjkFontFamily = 'SystemCJK';
|
|
||||||
|
|
||||||
const _kFontSearchPaths = [
|
|
||||||
// Debian / Ubuntu (noto-fonts / fonts-noto-cjk)
|
|
||||||
'/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc',
|
|
||||||
'/usr/share/fonts/truetype/noto/NotoSansCJK-Regular.ttc',
|
|
||||||
'/usr/share/fonts/opentype/noto/NotoSansCJKsc-Regular.otf',
|
|
||||||
// Fedora / RHEL / Rocky (google-noto-sans-cjk-fonts)
|
|
||||||
'/usr/share/fonts/google-noto-cjk/NotoSansCJK-Regular.ttc',
|
|
||||||
'/usr/share/fonts/google-noto-sans-cjk-fonts/NotoSansCJK-Regular.ttc',
|
|
||||||
// Arch Linux (noto-fonts-cjk)
|
|
||||||
'/usr/share/fonts/noto-cjk/NotoSansCJK-Regular.ttc',
|
|
||||||
'/usr/share/fonts/noto-cjk/NotoSansCJKsc-Regular.otf',
|
|
||||||
// Generic fallback paths
|
|
||||||
'/usr/share/fonts/noto/NotoSansCJK-Regular.ttc',
|
|
||||||
'/usr/share/fonts/noto/NotoSansCJKsc-Regular.otf',
|
|
||||||
// WenQuanYi — commonly pre-installed on CJK-locale systems
|
|
||||||
'/usr/share/fonts/truetype/wqy/wqy-microhei.ttc',
|
|
||||||
'/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc',
|
|
||||||
'/usr/share/fonts/wqy-microhei/wqy-microhei.ttc',
|
|
||||||
'/usr/share/fonts/wqy-zenhei/wqy-zenhei.ttc',
|
|
||||||
];
|
|
||||||
|
|
||||||
/// Loads a system CJK font on ARM64 Linux into Flutter's font registry via
|
|
||||||
/// [FontLoader], working around the missing fontconfig support in the
|
|
||||||
/// flutter-elinux engine (https://github.com/flutter/flutter/issues/139293).
|
|
||||||
///
|
|
||||||
/// Returns true if a CJK font was successfully loaded; false otherwise.
|
|
||||||
/// On all other platforms this is a no-op and returns false immediately.
|
|
||||||
Future<bool> loadSystemCJKFonts() async {
|
|
||||||
if (Abi.current() != Abi.linuxArm64) return false;
|
|
||||||
|
|
||||||
final path = await _findCjkFontPath();
|
|
||||||
if (path == null) {
|
|
||||||
debugPrint('ARM64 Linux: no CJK font found; CJK text may not render');
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
final loader = FontLoader(kLinuxCjkFontFamily);
|
|
||||||
final bytes = await File(path).readAsBytes();
|
|
||||||
loader.addFont(Future.value(ByteData.view(bytes.buffer, bytes.offsetInBytes, bytes.lengthInBytes)));
|
|
||||||
await loader.load();
|
|
||||||
debugPrint('ARM64 Linux: loaded CJK font from $path');
|
|
||||||
return true;
|
|
||||||
} catch (e) {
|
|
||||||
debugPrint('ARM64 Linux: failed to load CJK font: $e');
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Future<String?> _findCjkFontPath() async {
|
|
||||||
// Query fc-list for each CJK script separately. Fonts present in all three
|
|
||||||
// sets (zh ∩ ja ∩ ko) are true pan-CJK fonts; prefer them so we don't
|
|
||||||
// accidentally pick a Chinese-only font that lacks Japanese kana or Korean
|
|
||||||
// hangul glyphs. fc-list is a fontconfig CLI tool available on most Linux
|
|
||||||
// systems independent of whether the Flutter engine was built with fontconfig.
|
|
||||||
final byLang = <String, Set<String>>{};
|
|
||||||
for (final lang in const ['zh', 'ja', 'ko']) {
|
|
||||||
final paths = <String>{};
|
|
||||||
try {
|
|
||||||
final r =
|
|
||||||
await Process.run('fc-list', [':lang=$lang', '--format=%{file}\n']);
|
|
||||||
if (r.exitCode == 0) {
|
|
||||||
for (final line in r.stdout.toString().split('\n')) {
|
|
||||||
final p = line.trim();
|
|
||||||
if (p.isNotEmpty && File(p).existsSync()) paths.add(p);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
debugPrint('ARM64 Linux: fc-list failed for lang=$lang: $e');
|
|
||||||
}
|
|
||||||
byLang[lang] = paths;
|
|
||||||
}
|
|
||||||
|
|
||||||
final panCjk = byLang['zh']!
|
|
||||||
.intersection(byLang['ja']!)
|
|
||||||
.intersection(byLang['ko']!);
|
|
||||||
final anyCjk =
|
|
||||||
byLang.values.fold(<String>{}, (acc, s) => acc..addAll(s));
|
|
||||||
|
|
||||||
// Among candidates, prefer well-known pan-CJK font families.
|
|
||||||
String? pick(Iterable<String> pool) {
|
|
||||||
const preferred = ['notosanscjk', 'sourcehansans', 'sourcehanserif'];
|
|
||||||
for (final name in preferred) {
|
|
||||||
for (final p in pool) {
|
|
||||||
if (p.toLowerCase().contains(name)) return p;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return pool.isNotEmpty ? pool.first : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
final found = pick(panCjk) ?? pick(anyCjk);
|
|
||||||
if (found != null) return found;
|
|
||||||
|
|
||||||
for (final p in _kFontSearchPaths) {
|
|
||||||
if (File(p).existsSync()) return p;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
/// Web stub for `native/font_manager.dart`.
|
|
||||||
///
|
|
||||||
/// The native implementation depends on `dart:io` (Process/File/Platform) to
|
|
||||||
/// load a system CJK font on ARM64 Linux, which cannot compile for the web
|
|
||||||
/// target. The web build has no such fontconfig limitation, so this is a no-op.
|
|
||||||
const kLinuxCjkFontFamily = 'SystemCJK';
|
|
||||||
|
|
||||||
Future<bool> loadSystemCJKFonts() async => false;
|
|
||||||
@@ -113,11 +113,11 @@ pub enum MouseButton {
|
|||||||
|
|
||||||
/// Scroll up button
|
/// Scroll up button
|
||||||
ScrollUp,
|
ScrollUp,
|
||||||
/// Left right button
|
/// Scroll down button
|
||||||
ScrollDown,
|
ScrollDown,
|
||||||
/// Left right button
|
/// Scroll left button
|
||||||
ScrollLeft,
|
ScrollLeft,
|
||||||
/// Left right button
|
/// Scroll right button
|
||||||
ScrollRight,
|
ScrollRight,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -223,7 +223,7 @@ impl KeyboardControllable for Enigo {
|
|||||||
// Windows uses uft-16 encoding. We need to check
|
// Windows uses uft-16 encoding. We need to check
|
||||||
// for variable length characters. As such some
|
// for variable length characters. As such some
|
||||||
// characters can be 32 bit long and those are
|
// characters can be 32 bit long and those are
|
||||||
// encoded in such called hight and low surrogates
|
// encoded in so-called high and low surrogates
|
||||||
// each 16 bit wide that needs to be send after
|
// each 16 bit wide that needs to be send after
|
||||||
// another to the SendInput function without
|
// another to the SendInput function without
|
||||||
// being interrupted by "keyup"
|
// being interrupted by "keyup"
|
||||||
|
|||||||
+1
-1
Submodule libs/hbb_common updated: 387603f47c...e50ac3cd48
+1
-1
@@ -45,7 +45,7 @@ pre_start()
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
# When loging out from the interactive shell, the execution sequence is:
|
# When logging out from the interactive shell, the execution sequence is:
|
||||||
#
|
#
|
||||||
# IF ~/.bash_logout exists THEN
|
# IF ~/.bash_logout exists THEN
|
||||||
# execute ~/.bash_logout
|
# execute ~/.bash_logout
|
||||||
|
|||||||
+67
-7
@@ -103,15 +103,29 @@ pub const LANGS: &[(&str, &str)] = &[
|
|||||||
("gu", "ગુજરાતી"),
|
("gu", "ગુજરાતી"),
|
||||||
];
|
];
|
||||||
|
|
||||||
#[cfg(not(any(target_os = "android", target_os = "ios")))]
|
pub(crate) fn cjk_ui_unavailable() -> bool {
|
||||||
pub fn translate(name: String) -> String {
|
cfg!(all(
|
||||||
let locale = sys_locale::get_locale().unwrap_or_default();
|
target_os = "linux",
|
||||||
translate_locale(name, &locale)
|
target_arch = "aarch64",
|
||||||
|
feature = "flutter"
|
||||||
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn translate_locale(name: String, locale: &str) -> String {
|
pub(crate) fn is_cjk_lang(lang_or_locale: &str) -> bool {
|
||||||
|
let lang = lang_or_locale
|
||||||
|
.split(|c| c == '-' || c == '_')
|
||||||
|
.next()
|
||||||
|
.unwrap_or_default()
|
||||||
|
.to_lowercase();
|
||||||
|
matches!(lang.as_str(), "zh" | "ja" | "ko")
|
||||||
|
}
|
||||||
|
|
||||||
|
fn resolve_lang(saved_lang: &str, locale: &str, cjk_fallback: bool) -> String {
|
||||||
let locale = locale.to_lowercase();
|
let locale = locale.to_lowercase();
|
||||||
let mut lang = hbb_common::config::LocalConfig::get_option("lang").to_lowercase();
|
let mut lang = saved_lang.to_lowercase();
|
||||||
|
if cjk_fallback && is_cjk_lang(&lang) {
|
||||||
|
return "en".to_owned();
|
||||||
|
}
|
||||||
if lang.is_empty() {
|
if lang.is_empty() {
|
||||||
// zh_CN on Linux, zh-Hans-CN on mac, zh_CN_#Hans on Android
|
// zh_CN on Linux, zh-Hans-CN on mac, zh_CN_#Hans on Android
|
||||||
if locale.starts_with("zh") {
|
if locale.starts_with("zh") {
|
||||||
@@ -131,7 +145,25 @@ pub fn translate_locale(name: String, locale: &str) -> String {
|
|||||||
.unwrap_or_default()
|
.unwrap_or_default()
|
||||||
.to_owned();
|
.to_owned();
|
||||||
}
|
}
|
||||||
let lang = lang.to_lowercase();
|
if cjk_fallback && is_cjk_lang(&lang) {
|
||||||
|
"en".to_owned()
|
||||||
|
} else {
|
||||||
|
lang
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(not(any(target_os = "android", target_os = "ios")))]
|
||||||
|
pub fn translate(name: String) -> String {
|
||||||
|
let locale = sys_locale::get_locale().unwrap_or_default();
|
||||||
|
translate_locale(name, &locale)
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn translate_locale(name: String, locale: &str) -> String {
|
||||||
|
let lang = resolve_lang(
|
||||||
|
&hbb_common::config::LocalConfig::get_option("lang"),
|
||||||
|
locale,
|
||||||
|
cjk_ui_unavailable(),
|
||||||
|
);
|
||||||
let m = match lang.as_str() {
|
let m = match lang.as_str() {
|
||||||
"fr" => fr::T.deref(),
|
"fr" => fr::T.deref(),
|
||||||
"zh-cn" => cn::T.deref(),
|
"zh-cn" => cn::T.deref(),
|
||||||
@@ -275,4 +307,32 @@ mod test {
|
|||||||
("{} times {4} makes {8}".to_string(), Some("2".to_string()))
|
("{} times {4} makes {8}".to_string(), Some("2".to_string()))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_resolve_lang_forces_english_for_saved_cjk_when_target_disables_cjk() {
|
||||||
|
use super::resolve_lang as f;
|
||||||
|
|
||||||
|
assert_eq!(f("zh-cn", "en-US", true), "en");
|
||||||
|
assert_eq!(f("zh-tw", "en-US", true), "en");
|
||||||
|
assert_eq!(f("ja", "en-US", true), "en");
|
||||||
|
assert_eq!(f("ko", "en-US", true), "en");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_resolve_lang_forces_english_for_cjk_locale_when_target_disables_cjk() {
|
||||||
|
use super::resolve_lang as f;
|
||||||
|
|
||||||
|
assert_eq!(f("", "zh_CN", true), "en");
|
||||||
|
assert_eq!(f("", "ja-JP", true), "en");
|
||||||
|
assert_eq!(f("", "ko_KR", true), "en");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_resolve_lang_preserves_cjk_when_target_allows_cjk() {
|
||||||
|
use super::resolve_lang as f;
|
||||||
|
|
||||||
|
assert_eq!(f("zh-cn", "en-US", false), "zh-cn");
|
||||||
|
assert_eq!(f("", "zh_TW", false), "zh-tw");
|
||||||
|
assert_eq!(f("", "ja-JP", false), "ja");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "تبديل الشاشة"),
|
("Switch display", "تبديل الشاشة"),
|
||||||
("Show monitor switch button on the main toolbar", "إظهار زر تبديل الشاشة على شريط الأدوات الرئيسي"),
|
("Show monitor switch button on the main toolbar", "إظهار زر تبديل الشاشة على شريط الأدوات الرئيسي"),
|
||||||
("Show on the minimized toolbar", "الإظهار على شريط الأدوات المُصغّر"),
|
("Show on the minimized toolbar", "الإظهار على شريط الأدوات المُصغّر"),
|
||||||
|
("All monitors", "جميع الشاشات"),
|
||||||
|
("#{} monitor", "الشاشة رقم {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Пераключыць дысплэй"),
|
("Switch display", "Пераключыць дысплэй"),
|
||||||
("Show monitor switch button on the main toolbar", "Паказваць кнопку пераключэння манітора на галоўнай панэлі інструментаў"),
|
("Show monitor switch button on the main toolbar", "Паказваць кнопку пераключэння манітора на галоўнай панэлі інструментаў"),
|
||||||
("Show on the minimized toolbar", "Паказваць на згорнутай панэлі інструментаў"),
|
("Show on the minimized toolbar", "Паказваць на згорнутай панэлі інструментаў"),
|
||||||
|
("All monitors", "Усе манітори"),
|
||||||
|
("#{} monitor", "Манітор {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Превключване на дисплея"),
|
("Switch display", "Превключване на дисплея"),
|
||||||
("Show monitor switch button on the main toolbar", "Показване на бутона за превключване на монитора в главната лента с инструменти"),
|
("Show monitor switch button on the main toolbar", "Показване на бутона за превключване на монитора в главната лента с инструменти"),
|
||||||
("Show on the minimized toolbar", "Показване в минимизираната лента с инструменти"),
|
("Show on the minimized toolbar", "Показване в минимизираната лента с инструменти"),
|
||||||
|
("All monitors", "Всички монитори"),
|
||||||
|
("#{} monitor", "Монитор {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Canvia de pantalla"),
|
("Switch display", "Canvia de pantalla"),
|
||||||
("Show monitor switch button on the main toolbar", "Mostra el botó de canvi de monitor a la barra d’eines principal"),
|
("Show monitor switch button on the main toolbar", "Mostra el botó de canvi de monitor a la barra d’eines principal"),
|
||||||
("Show on the minimized toolbar", "Mostra a la barra d’eines minimitzada"),
|
("Show on the minimized toolbar", "Mostra a la barra d’eines minimitzada"),
|
||||||
|
("All monitors", "Tots els monitors"),
|
||||||
|
("#{} monitor", "Monitor {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "切换显示器"),
|
("Switch display", "切换显示器"),
|
||||||
("Show monitor switch button on the main toolbar", "在主工具栏上显示显示器切换按钮"),
|
("Show monitor switch button on the main toolbar", "在主工具栏上显示显示器切换按钮"),
|
||||||
("Show on the minimized toolbar", "在最小化工具栏上显示"),
|
("Show on the minimized toolbar", "在最小化工具栏上显示"),
|
||||||
|
("All monitors", "所有显示器"),
|
||||||
|
("#{} monitor", "{}号显示器"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Přepnout obrazovku"),
|
("Switch display", "Přepnout obrazovku"),
|
||||||
("Show monitor switch button on the main toolbar", "Zobrazit tlačítko přepnutí monitoru na hlavním panelu nástrojů"),
|
("Show monitor switch button on the main toolbar", "Zobrazit tlačítko přepnutí monitoru na hlavním panelu nástrojů"),
|
||||||
("Show on the minimized toolbar", "Zobrazit na minimalizovaném panelu nástrojů"),
|
("Show on the minimized toolbar", "Zobrazit na minimalizovaném panelu nástrojů"),
|
||||||
|
("All monitors", "Všechny monitory"),
|
||||||
|
("#{} monitor", "Monitor č. {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Skift skærm"),
|
("Switch display", "Skift skærm"),
|
||||||
("Show monitor switch button on the main toolbar", "Vis knap til skærmskift på hovedværktøjslinjen"),
|
("Show monitor switch button on the main toolbar", "Vis knap til skærmskift på hovedværktøjslinjen"),
|
||||||
("Show on the minimized toolbar", "Vis på den minimerede værktøjslinje"),
|
("Show on the minimized toolbar", "Vis på den minimerede værktøjslinje"),
|
||||||
|
("All monitors", "Alle skærme"),
|
||||||
|
("#{} monitor", "Skærm {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Anzeige wechseln"),
|
("Switch display", "Anzeige wechseln"),
|
||||||
("Show monitor switch button on the main toolbar", "Schaltfläche zum Monitorwechsel in der Haupt-Symbolleiste anzeigen"),
|
("Show monitor switch button on the main toolbar", "Schaltfläche zum Monitorwechsel in der Haupt-Symbolleiste anzeigen"),
|
||||||
("Show on the minimized toolbar", "In der minimierten Symbolleiste anzeigen"),
|
("Show on the minimized toolbar", "In der minimierten Symbolleiste anzeigen"),
|
||||||
|
("All monitors", "Alle Bildschirme"),
|
||||||
|
("#{} monitor", "Bildschirm {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Εναλλαγή οθόνης"),
|
("Switch display", "Εναλλαγή οθόνης"),
|
||||||
("Show monitor switch button on the main toolbar", "Εμφάνιση κουμπιού εναλλαγής οθόνης στην κύρια γραμμή εργαλείων"),
|
("Show monitor switch button on the main toolbar", "Εμφάνιση κουμπιού εναλλαγής οθόνης στην κύρια γραμμή εργαλείων"),
|
||||||
("Show on the minimized toolbar", "Εμφάνιση στην ελαχιστοποιημένη γραμμή εργαλείων"),
|
("Show on the minimized toolbar", "Εμφάνιση στην ελαχιστοποιημένη γραμμή εργαλείων"),
|
||||||
|
("All monitors", "Όλες οι οθόνες"),
|
||||||
|
("#{} monitor", "Οθόνη {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Ŝalti ekranon"),
|
("Switch display", "Ŝalti ekranon"),
|
||||||
("Show monitor switch button on the main toolbar", "Montri ekran-ŝaltan butonon en la ĉefa ilobreto"),
|
("Show monitor switch button on the main toolbar", "Montri ekran-ŝaltan butonon en la ĉefa ilobreto"),
|
||||||
("Show on the minimized toolbar", "Montri en la minimumigita ilobreto"),
|
("Show on the minimized toolbar", "Montri en la minimumigita ilobreto"),
|
||||||
|
("All monitors", "Ĉiuj monitoroj"),
|
||||||
|
("#{} monitor", "Monitoro {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Cambiar de pantalla"),
|
("Switch display", "Cambiar de pantalla"),
|
||||||
("Show monitor switch button on the main toolbar", "Mostrar el botón de cambio de monitor en la barra de herramientas principal"),
|
("Show monitor switch button on the main toolbar", "Mostrar el botón de cambio de monitor en la barra de herramientas principal"),
|
||||||
("Show on the minimized toolbar", "Mostrar en la barra de herramientas minimizada"),
|
("Show on the minimized toolbar", "Mostrar en la barra de herramientas minimizada"),
|
||||||
|
("All monitors", "Todos los monitores"),
|
||||||
|
("#{} monitor", "Monitor {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Vaheta kuva"),
|
("Switch display", "Vaheta kuva"),
|
||||||
("Show monitor switch button on the main toolbar", "Näita monitori vahetamise nuppu peamisel tööriistaribal"),
|
("Show monitor switch button on the main toolbar", "Näita monitori vahetamise nuppu peamisel tööriistaribal"),
|
||||||
("Show on the minimized toolbar", "Näita minimeeritud tööriistaribal"),
|
("Show on the minimized toolbar", "Näita minimeeritud tööriistaribal"),
|
||||||
|
("All monitors", "Kõik kuvarid"),
|
||||||
|
("#{} monitor", "Kuvar {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Aldatu pantaila"),
|
("Switch display", "Aldatu pantaila"),
|
||||||
("Show monitor switch button on the main toolbar", "Erakutsi monitorea aldatzeko botoia tresna-barra nagusian"),
|
("Show monitor switch button on the main toolbar", "Erakutsi monitorea aldatzeko botoia tresna-barra nagusian"),
|
||||||
("Show on the minimized toolbar", "Erakutsi minimizatutako tresna-barran"),
|
("Show on the minimized toolbar", "Erakutsi minimizatutako tresna-barran"),
|
||||||
|
("All monitors", "Monitore guztiak"),
|
||||||
|
("#{} monitor", "{}. monitorea"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "تعویض نمایشگر"),
|
("Switch display", "تعویض نمایشگر"),
|
||||||
("Show monitor switch button on the main toolbar", "نمایش دکمه تعویض نمایشگر در نوار ابزار اصلی"),
|
("Show monitor switch button on the main toolbar", "نمایش دکمه تعویض نمایشگر در نوار ابزار اصلی"),
|
||||||
("Show on the minimized toolbar", "نمایش در نوار ابزار کوچکشده"),
|
("Show on the minimized toolbar", "نمایش در نوار ابزار کوچکشده"),
|
||||||
|
("All monitors", "همه نمایشگرها"),
|
||||||
|
("#{} monitor", "نمایشگر {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Vaihda näyttöä"),
|
("Switch display", "Vaihda näyttöä"),
|
||||||
("Show monitor switch button on the main toolbar", "Näytä näytön vaihtopainike päätyökalurivillä"),
|
("Show monitor switch button on the main toolbar", "Näytä näytön vaihtopainike päätyökalurivillä"),
|
||||||
("Show on the minimized toolbar", "Näytä pienennetyssä työkalurivissä"),
|
("Show on the minimized toolbar", "Näytä pienennetyssä työkalurivissä"),
|
||||||
|
("All monitors", "Kaikki näytöt"),
|
||||||
|
("#{} monitor", "Näyttö {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Changer d’écran"),
|
("Switch display", "Changer d’écran"),
|
||||||
("Show monitor switch button on the main toolbar", "Afficher le bouton de changement d’écran dans la barre d’outils principale"),
|
("Show monitor switch button on the main toolbar", "Afficher le bouton de changement d’écran dans la barre d’outils principale"),
|
||||||
("Show on the minimized toolbar", "Afficher dans la barre d’outils réduite"),
|
("Show on the minimized toolbar", "Afficher dans la barre d’outils réduite"),
|
||||||
|
("All monitors", "Tous les moniteurs"),
|
||||||
|
("#{} monitor", "Moniteur {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "ეკრანის გადართვა"),
|
("Switch display", "ეკრანის გადართვა"),
|
||||||
("Show monitor switch button on the main toolbar", "მონიტორის გადართვის ღილაკის ჩვენება მთავარ ხელსაწყოთა ზოლზე"),
|
("Show monitor switch button on the main toolbar", "მონიტორის გადართვის ღილაკის ჩვენება მთავარ ხელსაწყოთა ზოლზე"),
|
||||||
("Show on the minimized toolbar", "ჩვენება ჩაკეცილ ხელსაწყოთა ზოლზე"),
|
("Show on the minimized toolbar", "ჩვენება ჩაკეცილ ხელსაწყოთა ზოლზე"),
|
||||||
|
("All monitors", "ყველა მონიტორი"),
|
||||||
|
("#{} monitor", "მონიტორი {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "ડિસ્પ્લે બદલો"),
|
("Switch display", "ડિસ્પ્લે બદલો"),
|
||||||
("Show monitor switch button on the main toolbar", "મુખ્ય ટૂલબાર પર મોનિટર સ્વિચ બટન બતાવો"),
|
("Show monitor switch button on the main toolbar", "મુખ્ય ટૂલબાર પર મોનિટર સ્વિચ બટન બતાવો"),
|
||||||
("Show on the minimized toolbar", "ન્યૂનતમ કરેલા ટૂલબાર પર બતાવો"),
|
("Show on the minimized toolbar", "ન્યૂનતમ કરેલા ટૂલબાર પર બતાવો"),
|
||||||
|
("All monitors", "બધા મોનિટર"),
|
||||||
|
("#{} monitor", "મોનિટર {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "החלפת צג"),
|
("Switch display", "החלפת צג"),
|
||||||
("Show monitor switch button on the main toolbar", "הצגת לחצן החלפת צג בסרגל הכלים הראשי"),
|
("Show monitor switch button on the main toolbar", "הצגת לחצן החלפת צג בסרגל הכלים הראשי"),
|
||||||
("Show on the minimized toolbar", "הצגה בסרגל הכלים הממוזער"),
|
("Show on the minimized toolbar", "הצגה בסרגל הכלים הממוזער"),
|
||||||
|
("All monitors", "כל המסכים"),
|
||||||
|
("#{} monitor", "מסך {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "डिस्प्ले बदलें"),
|
("Switch display", "डिस्प्ले बदलें"),
|
||||||
("Show monitor switch button on the main toolbar", "मुख्य टूलबार पर मॉनिटर स्विच बटन दिखाएं"),
|
("Show monitor switch button on the main toolbar", "मुख्य टूलबार पर मॉनिटर स्विच बटन दिखाएं"),
|
||||||
("Show on the minimized toolbar", "न्यूनतम किए गए टूलबार पर दिखाएं"),
|
("Show on the minimized toolbar", "न्यूनतम किए गए टूलबार पर दिखाएं"),
|
||||||
|
("All monitors", "सभी मॉनिटर"),
|
||||||
|
("#{} monitor", "मॉनिटर {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Promijeni zaslon"),
|
("Switch display", "Promijeni zaslon"),
|
||||||
("Show monitor switch button on the main toolbar", "Prikaži gumb za prebacivanje monitora na glavnoj alatnoj traci"),
|
("Show monitor switch button on the main toolbar", "Prikaži gumb za prebacivanje monitora na glavnoj alatnoj traci"),
|
||||||
("Show on the minimized toolbar", "Prikaži na minimiziranoj alatnoj traci"),
|
("Show on the minimized toolbar", "Prikaži na minimiziranoj alatnoj traci"),
|
||||||
|
("All monitors", "Svi monitori"),
|
||||||
|
("#{} monitor", "Monitor {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Kijelző váltása"),
|
("Switch display", "Kijelző váltása"),
|
||||||
("Show monitor switch button on the main toolbar", "Monitorváltó gomb megjelenítése a fő eszköztáron"),
|
("Show monitor switch button on the main toolbar", "Monitorváltó gomb megjelenítése a fő eszköztáron"),
|
||||||
("Show on the minimized toolbar", "Megjelenítés a kis méretű eszköztáron"),
|
("Show on the minimized toolbar", "Megjelenítés a kis méretű eszköztáron"),
|
||||||
|
("All monitors", "Minden monitor"),
|
||||||
|
("#{} monitor", "{}. monitor"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Ganti tampilan"),
|
("Switch display", "Ganti tampilan"),
|
||||||
("Show monitor switch button on the main toolbar", "Tampilkan tombol pengalih monitor di bilah alat utama"),
|
("Show monitor switch button on the main toolbar", "Tampilkan tombol pengalih monitor di bilah alat utama"),
|
||||||
("Show on the minimized toolbar", "Tampilkan di bilah alat yang diperkecil"),
|
("Show on the minimized toolbar", "Tampilkan di bilah alat yang diperkecil"),
|
||||||
|
("All monitors", "Semua monitor"),
|
||||||
|
("#{} monitor", "Monitor {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Cambia schermo"),
|
("Switch display", "Cambia schermo"),
|
||||||
("Show monitor switch button on the main toolbar", "Visualizza nella barra strumenti principale il pulsante per il cambio schermo"),
|
("Show monitor switch button on the main toolbar", "Visualizza nella barra strumenti principale il pulsante per il cambio schermo"),
|
||||||
("Show on the minimized toolbar", "Visualizza nella barra strumenti ridotta a icona"),
|
("Show on the minimized toolbar", "Visualizza nella barra strumenti ridotta a icona"),
|
||||||
|
("All monitors", "Tutti gli schermi"),
|
||||||
|
("#{} monitor", "Schermo {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "ディスプレイを切り替え"),
|
("Switch display", "ディスプレイを切り替え"),
|
||||||
("Show monitor switch button on the main toolbar", "メインツールバーにモニター切り替えボタンを表示"),
|
("Show monitor switch button on the main toolbar", "メインツールバーにモニター切り替えボタンを表示"),
|
||||||
("Show on the minimized toolbar", "最小化したツールバーに表示"),
|
("Show on the minimized toolbar", "最小化したツールバーに表示"),
|
||||||
|
("All monitors", "すべてのディスプレイ"),
|
||||||
|
("#{} monitor", "ディスプレイ {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "디스플레이 전환"),
|
("Switch display", "디스플레이 전환"),
|
||||||
("Show monitor switch button on the main toolbar", "기본 도구 모음에 모니터 전환 버튼 표시"),
|
("Show monitor switch button on the main toolbar", "기본 도구 모음에 모니터 전환 버튼 표시"),
|
||||||
("Show on the minimized toolbar", "최소화된 도구 모음에 표시"),
|
("Show on the minimized toolbar", "최소화된 도구 모음에 표시"),
|
||||||
|
("All monitors", "모든 모니터"),
|
||||||
|
("#{} monitor", "{}번 모니터"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Дисплейді ауыстыру"),
|
("Switch display", "Дисплейді ауыстыру"),
|
||||||
("Show monitor switch button on the main toolbar", "Негізгі құралдар тақтасында мониторды ауыстыру түймесін көрсету"),
|
("Show monitor switch button on the main toolbar", "Негізгі құралдар тақтасында мониторды ауыстыру түймесін көрсету"),
|
||||||
("Show on the minimized toolbar", "Кішірейтілген құралдар тақтасында көрсету"),
|
("Show on the minimized toolbar", "Кішірейтілген құралдар тақтасында көрсету"),
|
||||||
|
("All monitors", "Барлық мониторлар"),
|
||||||
|
("#{} monitor", "Монитор {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Perjungti ekraną"),
|
("Switch display", "Perjungti ekraną"),
|
||||||
("Show monitor switch button on the main toolbar", "Rodyti monitoriaus perjungimo mygtuką pagrindinėje įrankių juostoje"),
|
("Show monitor switch button on the main toolbar", "Rodyti monitoriaus perjungimo mygtuką pagrindinėje įrankių juostoje"),
|
||||||
("Show on the minimized toolbar", "Rodyti sumažintoje įrankių juostoje"),
|
("Show on the minimized toolbar", "Rodyti sumažintoje įrankių juostoje"),
|
||||||
|
("All monitors", "Visi monitoriai"),
|
||||||
|
("#{} monitor", "Monitorius {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Pārslēgt displeju"),
|
("Switch display", "Pārslēgt displeju"),
|
||||||
("Show monitor switch button on the main toolbar", "Rādīt monitora pārslēgšanas pogu galvenajā rīkjoslā"),
|
("Show monitor switch button on the main toolbar", "Rādīt monitora pārslēgšanas pogu galvenajā rīkjoslā"),
|
||||||
("Show on the minimized toolbar", "Rādīt minimizētajā rīkjoslā"),
|
("Show on the minimized toolbar", "Rādīt minimizētajā rīkjoslā"),
|
||||||
|
("All monitors", "Visi monitori"),
|
||||||
|
("#{} monitor", "Monitors {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "ഡിസ്പ്ലേ മാറ്റുക"),
|
("Switch display", "ഡിസ്പ്ലേ മാറ്റുക"),
|
||||||
("Show monitor switch button on the main toolbar", "പ്രധാന ടൂൾബാറിൽ മോണിറ്റർ സ്വിച്ച് ബട്ടൺ കാണിക്കുക"),
|
("Show monitor switch button on the main toolbar", "പ്രധാന ടൂൾബാറിൽ മോണിറ്റർ സ്വിച്ച് ബട്ടൺ കാണിക്കുക"),
|
||||||
("Show on the minimized toolbar", "ചെറുതാക്കിയ ടൂൾബാറിൽ കാണിക്കുക"),
|
("Show on the minimized toolbar", "ചെറുതാക്കിയ ടൂൾബാറിൽ കാണിക്കുക"),
|
||||||
|
("All monitors", "എല്ലാ മോണിറ്ററുകളും"),
|
||||||
|
("#{} monitor", "മോണിറ്റർ {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Bytt skjerm"),
|
("Switch display", "Bytt skjerm"),
|
||||||
("Show monitor switch button on the main toolbar", "Vis knapp for skjermbytte på hovedverktøylinjen"),
|
("Show monitor switch button on the main toolbar", "Vis knapp for skjermbytte på hovedverktøylinjen"),
|
||||||
("Show on the minimized toolbar", "Vis på den minimerte verktøylinjen"),
|
("Show on the minimized toolbar", "Vis på den minimerte verktøylinjen"),
|
||||||
|
("All monitors", "Alle skjermer"),
|
||||||
|
("#{} monitor", "Skjerm {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Beeldscherm wisselen"),
|
("Switch display", "Beeldscherm wisselen"),
|
||||||
("Show monitor switch button on the main toolbar", "Knop voor monitorwisseling weergeven op de hoofdwerkbalk"),
|
("Show monitor switch button on the main toolbar", "Knop voor monitorwisseling weergeven op de hoofdwerkbalk"),
|
||||||
("Show on the minimized toolbar", "Weergeven op de geminimaliseerde werkbalk"),
|
("Show on the minimized toolbar", "Weergeven op de geminimaliseerde werkbalk"),
|
||||||
|
("All monitors", "Alle monitoren"),
|
||||||
|
("#{} monitor", "Monitor {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Przełącz ekran"),
|
("Switch display", "Przełącz ekran"),
|
||||||
("Show monitor switch button on the main toolbar", "Pokaż przycisk przełączania monitora na głównym pasku narzędzi"),
|
("Show monitor switch button on the main toolbar", "Pokaż przycisk przełączania monitora na głównym pasku narzędzi"),
|
||||||
("Show on the minimized toolbar", "Pokaż na zminimalizowanym pasku narzędzi"),
|
("Show on the minimized toolbar", "Pokaż na zminimalizowanym pasku narzędzi"),
|
||||||
|
("All monitors", "Wszystkie ekrany"),
|
||||||
|
("#{} monitor", "Ekran {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Trocar de ecrã"),
|
("Switch display", "Trocar de ecrã"),
|
||||||
("Show monitor switch button on the main toolbar", "Mostrar o botão de troca de monitor na barra de ferramentas principal"),
|
("Show monitor switch button on the main toolbar", "Mostrar o botão de troca de monitor na barra de ferramentas principal"),
|
||||||
("Show on the minimized toolbar", "Mostrar na barra de ferramentas minimizada"),
|
("Show on the minimized toolbar", "Mostrar na barra de ferramentas minimizada"),
|
||||||
|
("All monitors", "Todos os monitores"),
|
||||||
|
("#{} monitor", "Monitor {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Trocar de tela"),
|
("Switch display", "Trocar de tela"),
|
||||||
("Show monitor switch button on the main toolbar", "Mostrar botão de troca de tela na barra de ferramentas"),
|
("Show monitor switch button on the main toolbar", "Mostrar botão de troca de tela na barra de ferramentas"),
|
||||||
("Show on the minimized toolbar", "Mostrar na barra de ferramentas minimizada"),
|
("Show on the minimized toolbar", "Mostrar na barra de ferramentas minimizada"),
|
||||||
|
("All monitors", "Todas as telas"),
|
||||||
|
("#{} monitor", "Tela {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Comută afișajul"),
|
("Switch display", "Comută afișajul"),
|
||||||
("Show monitor switch button on the main toolbar", "Afișează butonul de comutare a monitorului în bara de instrumente principală"),
|
("Show monitor switch button on the main toolbar", "Afișează butonul de comutare a monitorului în bara de instrumente principală"),
|
||||||
("Show on the minimized toolbar", "Afișează în bara de instrumente minimizată"),
|
("Show on the minimized toolbar", "Afișează în bara de instrumente minimizată"),
|
||||||
|
("All monitors", "Toate monitoarele"),
|
||||||
|
("#{} monitor", "Monitor {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Переключить дисплей"),
|
("Switch display", "Переключить дисплей"),
|
||||||
("Show monitor switch button on the main toolbar", "Показывать кнопку переключения монитора на главной панели инструментов"),
|
("Show monitor switch button on the main toolbar", "Показывать кнопку переключения монитора на главной панели инструментов"),
|
||||||
("Show on the minimized toolbar", "Показывать на свёрнутой панели инструментов"),
|
("Show on the minimized toolbar", "Показывать на свёрнутой панели инструментов"),
|
||||||
|
("All monitors", "Все мониторы"),
|
||||||
|
("#{} monitor", "Монитор {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Càmbia ischermu"),
|
("Switch display", "Càmbia ischermu"),
|
||||||
("Show monitor switch button on the main toolbar", "Mustra su butone de càmbiu de monitor in sa barra de aina printzipale"),
|
("Show monitor switch button on the main toolbar", "Mustra su butone de càmbiu de monitor in sa barra de aina printzipale"),
|
||||||
("Show on the minimized toolbar", "Mustra in sa barra de aina minimizada"),
|
("Show on the minimized toolbar", "Mustra in sa barra de aina minimizada"),
|
||||||
|
("All monitors", "Totu sos ischermos"),
|
||||||
|
("#{} monitor", "Ischermu {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Prepnúť obrazovku"),
|
("Switch display", "Prepnúť obrazovku"),
|
||||||
("Show monitor switch button on the main toolbar", "Zobraziť tlačidlo prepnutia monitora na hlavnom paneli nástrojov"),
|
("Show monitor switch button on the main toolbar", "Zobraziť tlačidlo prepnutia monitora na hlavnom paneli nástrojov"),
|
||||||
("Show on the minimized toolbar", "Zobraziť na minimalizovanom paneli nástrojov"),
|
("Show on the minimized toolbar", "Zobraziť na minimalizovanom paneli nástrojov"),
|
||||||
|
("All monitors", "Všetky monitory"),
|
||||||
|
("#{} monitor", "Monitor {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Preklopi zaslon"),
|
("Switch display", "Preklopi zaslon"),
|
||||||
("Show monitor switch button on the main toolbar", "Pokaži gumb za preklop monitorja v glavni orodni vrstici"),
|
("Show monitor switch button on the main toolbar", "Pokaži gumb za preklop monitorja v glavni orodni vrstici"),
|
||||||
("Show on the minimized toolbar", "Pokaži v pomanjšani orodni vrstici"),
|
("Show on the minimized toolbar", "Pokaži v pomanjšani orodni vrstici"),
|
||||||
|
("All monitors", "Vsi zasloni"),
|
||||||
|
("#{} monitor", "Zaslon {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Ndërro ekranin"),
|
("Switch display", "Ndërro ekranin"),
|
||||||
("Show monitor switch button on the main toolbar", "Shfaq butonin e ndërrimit të monitorit te shiriti kryesor i veglave"),
|
("Show monitor switch button on the main toolbar", "Shfaq butonin e ndërrimit të monitorit te shiriti kryesor i veglave"),
|
||||||
("Show on the minimized toolbar", "Shfaq te shiriti i minimizuar i veglave"),
|
("Show on the minimized toolbar", "Shfaq te shiriti i minimizuar i veglave"),
|
||||||
|
("All monitors", "Të gjithë monitorët"),
|
||||||
|
("#{} monitor", "Monitori {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Промени екран"),
|
("Switch display", "Промени екран"),
|
||||||
("Show monitor switch button on the main toolbar", "Прикажи дугме за пребацивање монитора на главној траци са алаткама"),
|
("Show monitor switch button on the main toolbar", "Прикажи дугме за пребацивање монитора на главној траци са алаткама"),
|
||||||
("Show on the minimized toolbar", "Прикажи на умањеној траци са алаткама"),
|
("Show on the minimized toolbar", "Прикажи на умањеној траци са алаткама"),
|
||||||
|
("All monitors", "Svi monitori"),
|
||||||
|
("#{} monitor", "Monitor {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Växla skärm"),
|
("Switch display", "Växla skärm"),
|
||||||
("Show monitor switch button on the main toolbar", "Visa knapp för skärmväxling i huvudverktygsfältet"),
|
("Show monitor switch button on the main toolbar", "Visa knapp för skärmväxling i huvudverktygsfältet"),
|
||||||
("Show on the minimized toolbar", "Visa i det minimerade verktygsfältet"),
|
("Show on the minimized toolbar", "Visa i det minimerade verktygsfältet"),
|
||||||
|
("All monitors", "Alla skärmar"),
|
||||||
|
("#{} monitor", "Skärm {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "திரையை மாற்று"),
|
("Switch display", "திரையை மாற்று"),
|
||||||
("Show monitor switch button on the main toolbar", "முதன்மை கருவிப்பட்டையில் திரை மாற்று பொத்தானைக் காட்டு"),
|
("Show monitor switch button on the main toolbar", "முதன்மை கருவிப்பட்டையில் திரை மாற்று பொத்தானைக் காட்டு"),
|
||||||
("Show on the minimized toolbar", "சிறிதாக்கப்பட்ட கருவிப்பட்டையில் காட்டு"),
|
("Show on the minimized toolbar", "சிறிதாக்கப்பட்ட கருவிப்பட்டையில் காட்டு"),
|
||||||
|
("All monitors", "அனைத்து மானிட்டர்களும்"),
|
||||||
|
("#{} monitor", "மானிட்டர் {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", ""),
|
("Switch display", ""),
|
||||||
("Show monitor switch button on the main toolbar", ""),
|
("Show monitor switch button on the main toolbar", ""),
|
||||||
("Show on the minimized toolbar", ""),
|
("Show on the minimized toolbar", ""),
|
||||||
|
("All monitors", ""),
|
||||||
|
("#{} monitor", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "สลับจอแสดงผล"),
|
("Switch display", "สลับจอแสดงผล"),
|
||||||
("Show monitor switch button on the main toolbar", "แสดงปุ่มสลับจอภาพบนแถบเครื่องมือหลัก"),
|
("Show monitor switch button on the main toolbar", "แสดงปุ่มสลับจอภาพบนแถบเครื่องมือหลัก"),
|
||||||
("Show on the minimized toolbar", "แสดงบนแถบเครื่องมือที่ย่อเล็กสุด"),
|
("Show on the minimized toolbar", "แสดงบนแถบเครื่องมือที่ย่อเล็กสุด"),
|
||||||
|
("All monitors", "จอภาพทั้งหมด"),
|
||||||
|
("#{} monitor", "จอภาพ {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Ekranı değiştir"),
|
("Switch display", "Ekranı değiştir"),
|
||||||
("Show monitor switch button on the main toolbar", "Ana araç çubuğunda monitör değiştirme düğmesini göster"),
|
("Show monitor switch button on the main toolbar", "Ana araç çubuğunda monitör değiştirme düğmesini göster"),
|
||||||
("Show on the minimized toolbar", "Simge durumuna küçültülmüş araç çubuğunda göster"),
|
("Show on the minimized toolbar", "Simge durumuna küçültülmüş araç çubuğunda göster"),
|
||||||
|
("All monitors", "Tüm monitörler"),
|
||||||
|
("#{} monitor", "Monitör {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "切換螢幕"),
|
("Switch display", "切換螢幕"),
|
||||||
("Show monitor switch button on the main toolbar", "在主工具列上顯示螢幕切換按鈕"),
|
("Show monitor switch button on the main toolbar", "在主工具列上顯示螢幕切換按鈕"),
|
||||||
("Show on the minimized toolbar", "在最小化工具列上顯示"),
|
("Show on the minimized toolbar", "在最小化工具列上顯示"),
|
||||||
|
("All monitors", "所有顯示器"),
|
||||||
|
("#{} monitor", "{}號顯示器"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Перемкнути дисплей"),
|
("Switch display", "Перемкнути дисплей"),
|
||||||
("Show monitor switch button on the main toolbar", "Показувати кнопку перемикання монітора на головній панелі інструментів"),
|
("Show monitor switch button on the main toolbar", "Показувати кнопку перемикання монітора на головній панелі інструментів"),
|
||||||
("Show on the minimized toolbar", "Показувати на згорнутій панелі інструментів"),
|
("Show on the minimized toolbar", "Показувати на згорнутій панелі інструментів"),
|
||||||
|
("All monitors", "Усі монітори"),
|
||||||
|
("#{} monitor", "Монітор {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,5 +761,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Chuyển màn hình"),
|
("Switch display", "Chuyển màn hình"),
|
||||||
("Show monitor switch button on the main toolbar", "Hiển thị nút chuyển đổi màn hình trên thanh công cụ chính"),
|
("Show monitor switch button on the main toolbar", "Hiển thị nút chuyển đổi màn hình trên thanh công cụ chính"),
|
||||||
("Show on the minimized toolbar", "Hiển thị trên thanh công cụ thu nhỏ"),
|
("Show on the minimized toolbar", "Hiển thị trên thanh công cụ thu nhỏ"),
|
||||||
|
("All monitors", "Tất cả màn hình"),
|
||||||
|
("#{} monitor", "Màn hình {}"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
/// Url handler based on dbus
|
/// Url handler based on dbus
|
||||||
///
|
///
|
||||||
/// Note:
|
/// Note:
|
||||||
/// On linux, we use dbus to communicate multiple rustdesk process.
|
/// On linux, we use dbus to communicate between multiple rustdesk processes.
|
||||||
/// [Flutter]: handle uni links for linux
|
/// [Flutter]: handle uni links for linux
|
||||||
use dbus::blocking::Connection;
|
use dbus::blocking::Connection;
|
||||||
use dbus_crossroads::{Crossroads, IfaceBuilder};
|
use dbus_crossroads::{Crossroads, IfaceBuilder};
|
||||||
|
|||||||
@@ -902,8 +902,10 @@ pub fn get_async_job_status() -> String {
|
|||||||
#[inline]
|
#[inline]
|
||||||
pub fn get_langs() -> String {
|
pub fn get_langs() -> String {
|
||||||
use serde_json::json;
|
use serde_json::json;
|
||||||
|
let hide_cjk = crate::lang::cjk_ui_unavailable();
|
||||||
let mut x: Vec<(&str, String)> = crate::lang::LANGS
|
let mut x: Vec<(&str, String)> = crate::lang::LANGS
|
||||||
.iter()
|
.iter()
|
||||||
|
.filter(|a| !hide_cjk || !crate::lang::is_cjk_lang(a.0))
|
||||||
.map(|a| (a.0, format!("{} ({})", a.1, a.0)))
|
.map(|a| (a.0, format!("{} ({})", a.1, a.0)))
|
||||||
.collect();
|
.collect();
|
||||||
x.sort_by(|a, b| a.0.cmp(b.0));
|
x.sort_by(|a, b| a.0.cmp(b.0));
|
||||||
|
|||||||
Reference in New Issue
Block a user