import 'package:get/get.dart'; import '../../../../config/translations/localization_service.dart'; class LanguageInfo { final String code; final String name; final String nativeName; LanguageInfo({ required this.code, required this.name, required this.nativeName, }); } class LanguageController extends GetxController { // 当前选中的语言,默认为英语 final selectedLanguage = 'en'.obs; // 支持的语言列表 final List languages = [ LanguageInfo(code: 'en', name: 'English', nativeName: '英语'), // LanguageInfo( // code: 'zh', // name: 'Chinese (Simplified)', // nativeName: '中文 (简体)', // ), LanguageInfo(code: 'es', name: 'Español', nativeName: '西班牙语'), LanguageInfo(code: 'fr', name: 'Français', nativeName: '法语'), LanguageInfo(code: 'de', name: 'Deutsch', nativeName: '德语'), LanguageInfo(code: 'ja', name: '日本語', nativeName: '日语'), LanguageInfo(code: 'ko', name: '한국어', nativeName: '韩语'), LanguageInfo(code: 'fa', name: 'فارسی', nativeName: '波斯语'), LanguageInfo(code: 'my', name: 'မြန်မာဘာသာ', nativeName: '缅甸语'), LanguageInfo(code: 'ar', name: 'عربي', nativeName: '阿拉伯语'), LanguageInfo(code: 'ru', name: 'Русский', nativeName: '俄语'), ]; @override void onInit() { super.onInit(); selectedLanguage.value = LocalizationService.getCurrentLocal().languageCode; } /// 选择语言 void selectLanguage(String languageCode) { selectedLanguage.value = languageCode; LocalizationService.updateLanguage(languageCode); } /// 获取当前选中的语言信息 LanguageInfo? get currentLanguage { try { return languages.firstWhere( (lang) => lang.code == selectedLanguage.value, ); } catch (e) { return languages.first; // 默认返回第一个 } } }