mirror of
https://github.com/revanced/revanced-manager.git
synced 2025-06-12 04:37:37 +02:00
feat: Improve language distinguishness and resolve language-specific issues (#1706)
This commit is contained in:
@ -1,6 +1,5 @@
|
||||
// ignore_for_file: use_build_context_synchronously
|
||||
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:language_code/language_code.dart';
|
||||
import 'package:revanced_manager/app/app.locator.dart';
|
||||
@ -35,8 +34,9 @@ class SUpdateLanguage extends BaseViewModel {
|
||||
}
|
||||
|
||||
Future<void> showLanguagesDialog(BuildContext parentContext) {
|
||||
final ValueNotifier<String> selectedLanguageCode =
|
||||
ValueNotifier(LocaleSettings.currentLocale.languageCode);
|
||||
final ValueNotifier<String> selectedLanguageCode = ValueNotifier(
|
||||
'${LocaleSettings.currentLocale.languageCode}-${LocaleSettings.currentLocale.countryCode}',
|
||||
);
|
||||
// initLang();
|
||||
|
||||
// Return a dialog with list for each language supported by the application.
|
||||
@ -55,30 +55,24 @@ class SUpdateLanguage extends BaseViewModel {
|
||||
child: ListBody(
|
||||
children: AppLocale.values.map(
|
||||
(locale) {
|
||||
LanguageCodes? languageCode;
|
||||
Text? languageNativeName;
|
||||
|
||||
try {
|
||||
languageCode =
|
||||
LanguageCodes.fromCode(locale.languageCode);
|
||||
} catch (e) {
|
||||
if (kDebugMode) {
|
||||
print(e);
|
||||
}
|
||||
}
|
||||
if (languageCode != null) {
|
||||
languageNativeName = Text(languageCode.nativeName);
|
||||
}
|
||||
final LanguageCodes languageCode = LanguageCodes.fromCode(
|
||||
'${locale.languageCode}_${locale.countryCode}',
|
||||
orElse: () => LanguageCodes.fromCode(locale.languageCode),
|
||||
);
|
||||
|
||||
return RadioListTile(
|
||||
title: Text(
|
||||
languageCode?.englishName ?? locale.languageCode,
|
||||
languageCode.englishName,
|
||||
),
|
||||
subtitle: languageNativeName,
|
||||
value: locale.languageCode == selectedLanguageCode.value,
|
||||
subtitle: Text(
|
||||
'${languageCode.nativeName} (${locale.languageCode}${locale.countryCode != null ? '-${locale.countryCode}' : ''})',
|
||||
),
|
||||
value: '${locale.languageCode}-${locale.countryCode}' ==
|
||||
selectedLanguageCode.value,
|
||||
groupValue: true,
|
||||
onChanged: (value) {
|
||||
selectedLanguageCode.value = locale.languageCode;
|
||||
selectedLanguageCode.value =
|
||||
'${locale.languageCode}-${locale.countryCode}';
|
||||
},
|
||||
);
|
||||
},
|
||||
|
Reference in New Issue
Block a user