Merge pull request #1581 from Kingtous/master

opt: add support locales
This commit is contained in:
RustDesk 2022-09-19 16:02:07 +08:00 committed by GitHub
commit bf1314f91f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 63 additions and 5 deletions

View File

@ -244,6 +244,31 @@ final ButtonStyle flatButtonStyle = TextButton.styleFrom(
), ),
); );
List<Locale> supportedLocales = const [
// specify CN/TW to fix CJK issue in flutter
Locale('zh', 'CN'),
Locale('zh', 'TW'),
Locale('fr'),
Locale('de'),
Locale('it'),
Locale('ja'),
Locale('cs'),
Locale('pl'),
Locale('ko'),
Locale('hu'),
Locale('pt'),
Locale('ru'),
Locale('sk'),
Locale('id'),
Locale('da'),
Locale('eo'),
Locale('tr'),
Locale('vi'),
Locale('pl'),
Locale('kz'),
Locale('en', 'US'),
];
String formatDurationToTime(Duration duration) { String formatDurationToTime(Duration duration) {
var totalTime = duration.inSeconds; var totalTime = duration.inSeconds;
final secs = totalTime % 60; final secs = totalTime % 60;

View File

@ -8,6 +8,7 @@ import 'package:flutter_hbb/desktop/screen/desktop_file_transfer_screen.dart';
import 'package:flutter_hbb/desktop/screen/desktop_port_forward_screen.dart'; import 'package:flutter_hbb/desktop/screen/desktop_port_forward_screen.dart';
import 'package:flutter_hbb/desktop/screen/desktop_remote_screen.dart'; import 'package:flutter_hbb/desktop/screen/desktop_remote_screen.dart';
import 'package:flutter_hbb/utils/multi_window_manager.dart'; import 'package:flutter_hbb/utils/multi_window_manager.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:shared_preferences/shared_preferences.dart'; import 'package:shared_preferences/shared_preferences.dart';
@ -123,6 +124,12 @@ void runRemoteScreen(Map<String, dynamic> argument) async {
home: DesktopRemoteScreen( home: DesktopRemoteScreen(
params: argument, params: argument,
), ),
localizationsDelegates: const [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
supportedLocales: supportedLocales,
navigatorObservers: const [ navigatorObservers: const [
// FirebaseAnalyticsObserver(analytics: analytics), // FirebaseAnalyticsObserver(analytics: analytics),
], ],
@ -141,6 +148,12 @@ void runFileTransferScreen(Map<String, dynamic> argument) async {
darkTheme: MyTheme.darkTheme, darkTheme: MyTheme.darkTheme,
themeMode: MyTheme.initialThemeMode(), themeMode: MyTheme.initialThemeMode(),
home: DesktopFileTransferScreen(params: argument), home: DesktopFileTransferScreen(params: argument),
localizationsDelegates: const [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
supportedLocales: supportedLocales,
navigatorObservers: const [ navigatorObservers: const [
// FirebaseAnalyticsObserver(analytics: analytics), // FirebaseAnalyticsObserver(analytics: analytics),
], ],
@ -160,6 +173,12 @@ void runPortForwardScreen(Map<String, dynamic> argument) async {
darkTheme: MyTheme.darkTheme, darkTheme: MyTheme.darkTheme,
themeMode: MyTheme.initialThemeMode(), themeMode: MyTheme.initialThemeMode(),
home: DesktopPortForwardScreen(params: argument), home: DesktopPortForwardScreen(params: argument),
localizationsDelegates: const [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
supportedLocales: supportedLocales,
navigatorObservers: const [ navigatorObservers: const [
// FirebaseAnalyticsObserver(analytics: analytics), // FirebaseAnalyticsObserver(analytics: analytics),
], ],
@ -178,6 +197,12 @@ void runConnectionManagerScreen() async {
theme: MyTheme.lightTheme, theme: MyTheme.lightTheme,
darkTheme: MyTheme.darkTheme, darkTheme: MyTheme.darkTheme,
themeMode: MyTheme.initialThemeMode(), themeMode: MyTheme.initialThemeMode(),
localizationsDelegates: const [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
supportedLocales: supportedLocales,
home: const DesktopServerPage(), home: const DesktopServerPage(),
builder: _keepScaleBuilder())); builder: _keepScaleBuilder()));
windowManager.waitUntilReadyToShow(windowOptions, () async { windowManager.waitUntilReadyToShow(windowOptions, () async {
@ -247,6 +272,12 @@ class _AppState extends State<App> {
navigatorObservers: const [ navigatorObservers: const [
// FirebaseAnalyticsObserver(analytics: analytics), // FirebaseAnalyticsObserver(analytics: analytics),
], ],
localizationsDelegates: const [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
supportedLocales: supportedLocales,
builder: isAndroid builder: isAndroid
? (context, child) => AccessibilityListener( ? (context, child) => AccessibilityListener(
child: MediaQuery( child: MediaQuery(

View File

@ -24,6 +24,8 @@ environment:
dependencies: dependencies:
flutter: flutter:
sdk: flutter sdk: flutter
flutter_localizations:
sdk: flutter
# The following adds the Cupertino Icons font to your application. # The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons. # Use with the CupertinoIcons class for iOS style icons.