|  |  | @ -1,4 +1,3 @@ | 
			
		
	
		
		
			
				
					
					|  |  |  | import 'package:collection/collection.dart'; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | import 'package:dde_gesture_manager/constants/sp_keys.dart'; |  |  |  | import 'package:dde_gesture_manager/constants/sp_keys.dart'; | 
			
		
	
		
		
			
				
					
					|  |  |  | import 'package:dde_gesture_manager/constants/supported_locales.dart'; |  |  |  | import 'package:dde_gesture_manager/constants/supported_locales.dart'; | 
			
		
	
		
		
			
				
					
					|  |  |  | import 'package:dde_gesture_manager/extensions.dart'; |  |  |  | import 'package:dde_gesture_manager/extensions.dart'; | 
			
		
	
	
		
		
			
				
					|  |  | @ -6,7 +5,6 @@ import 'package:dde_gesture_manager/generated/codegen_loader.g.dart'; | 
			
		
	
		
		
			
				
					
					|  |  |  | import 'package:dde_gesture_manager/generated/locale_keys.g.dart'; |  |  |  | import 'package:dde_gesture_manager/generated/locale_keys.g.dart'; | 
			
		
	
		
		
			
				
					
					|  |  |  | import 'package:dde_gesture_manager/models/local_schemes_provider.dart'; |  |  |  | import 'package:dde_gesture_manager/models/local_schemes_provider.dart'; | 
			
		
	
		
		
			
				
					
					|  |  |  | import 'package:dde_gesture_manager/utils/helper.dart'; |  |  |  | import 'package:dde_gesture_manager/utils/helper.dart'; | 
			
		
	
		
		
			
				
					
					|  |  |  | import 'package:flutter/cupertino.dart'; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | import 'package:flutter/foundation.dart'; |  |  |  | import 'package:flutter/foundation.dart'; | 
			
		
	
		
		
			
				
					
					|  |  |  | import 'package:flutter/material.dart'; |  |  |  | import 'package:flutter/material.dart'; | 
			
		
	
		
		
			
				
					
					|  |  |  | import 'package:window_manager/window_manager.dart'; |  |  |  | import 'package:window_manager/window_manager.dart'; | 
			
		
	
	
		
		
			
				
					|  |  | @ -18,7 +16,7 @@ class LanguageSwitcher extends StatelessWidget { | 
			
		
	
		
		
			
				
					
					|  |  |  |   @override |  |  |  |   @override | 
			
		
	
		
		
			
				
					
					|  |  |  |   Widget build(BuildContext context) { |  |  |  |   Widget build(BuildContext context) { | 
			
		
	
		
		
			
				
					
					|  |  |  |     var _locale = EasyLocalization.of(context)?.currentLocale; |  |  |  |     var _locale = EasyLocalization.of(context)?.currentLocale; | 
			
		
	
		
		
			
				
					
					|  |  |  |     var _supportedLocale = supportedLocales.firstWhereOrNull((element) => element == _locale); |  |  |  |     var _supportedLocale = getSupportedLocale(_locale) ?? SupportedLocale.zh_CN; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     return PopupMenuButton<SupportedLocale>( |  |  |  |     return PopupMenuButton<SupportedLocale>( | 
			
		
	
		
		
			
				
					
					|  |  |  |       tooltip: LocaleKeys.language_tip.tr(), |  |  |  |       tooltip: LocaleKeys.language_tip.tr(), | 
			
		
	
	
		
		
			
				
					|  |  | @ -31,19 +29,9 @@ class LanguageSwitcher extends StatelessWidget { | 
			
		
	
		
		
			
				
					
					|  |  |  |           ), |  |  |  |           ), | 
			
		
	
		
		
			
				
					
					|  |  |  |         ], |  |  |  |         ], | 
			
		
	
		
		
			
				
					
					|  |  |  |       ), |  |  |  |       ), | 
			
		
	
		
		
			
				
					
					|  |  |  |       itemBuilder: (BuildContext context) => supportedLocales |  |  |  |       initialValue: _supportedLocale, | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |           .map( |  |  |  |       onSelected: (value) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |             (locale) => PopupMenuItem( |  |  |  |         EasyLocalization.of(context)?.setLocale(transformSupportedLocale(value)).then((_) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |               value: SupportedLocale.zh_CN, |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |               child: ListTile( |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 leading: Visibility( |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                   child: Icon(CupertinoIcons.check_mark), |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                   visible: _supportedLocale == locale, |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 ), |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 title: Text(supportedLocaleNames[SupportedLocale.values[supportedLocales.indexOf(locale)]] ?? ''), |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |               ), |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |               onTap: () { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 EasyLocalization.of(context)?.setLocale(locale).then((_) { |  |  |  |  | 
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |           var localeMap = Translations(CodegenLoader.mapLocales[context.locale.toString()]!); |  |  |  |           var localeMap = Translations(CodegenLoader.mapLocales[context.locale.toString()]!); | 
			
		
	
		
		
			
				
					
					|  |  |  |           if (!kIsWeb) WindowManager.instance.setTitle(localeMap.get(LocaleKeys.app_name)!); |  |  |  |           if (!kIsWeb) WindowManager.instance.setTitle(localeMap.get(LocaleKeys.app_name)!); | 
			
		
	
		
		
			
				
					
					|  |  |  |           var localSchemesProvider = context.read<LocalSchemesProvider>(); |  |  |  |           var localSchemesProvider = context.read<LocalSchemesProvider>(); | 
			
		
	
	
		
		
			
				
					|  |  | @ -56,8 +44,14 @@ class LanguageSwitcher extends StatelessWidget { | 
			
		
	
		
		
			
				
					
					|  |  |  |           ]; |  |  |  |           ]; | 
			
		
	
		
		
			
				
					
					|  |  |  |           localSchemesProvider.setProps(schemes: newSchemes); |  |  |  |           localSchemesProvider.setProps(schemes: newSchemes); | 
			
		
	
		
		
			
				
					
					|  |  |  |         }); |  |  |  |         }); | 
			
		
	
		
		
			
				
					
					|  |  |  |                 H().sp.setInt(SPKeys.userLanguage, supportedLocales.indexOf(locale)); |  |  |  |         H().sp.setInt(SPKeys.userLanguage, value.index); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |       }, |  |  |  |       }, | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       itemBuilder: (BuildContext context) => SupportedLocale.values | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |           .map( | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             (supportedLocale) => CheckedPopupMenuItem( | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |               value: supportedLocale, | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |               checked: EasyLocalization.of(context)?.locale == transformSupportedLocale(supportedLocale), | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |               child: Text(supportedLocaleNames[supportedLocale] ?? ''), | 
			
		
	
		
		
			
				
					
					|  |  |  |             ), |  |  |  |             ), | 
			
		
	
		
		
			
				
					
					|  |  |  |           ) |  |  |  |           ) | 
			
		
	
		
		
			
				
					
					|  |  |  |           .toList(), |  |  |  |           .toList(), | 
			
		
	
	
		
		
			
				
					|  |  | 
 |