Fix chinese typography bug
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import 'package:flutter_localized_locales/flutter_localized_locales.dart';
|
||||
import 'package:hiddify/data/data_providers.dart';
|
||||
import 'package:hiddify/gen/fonts.gen.dart';
|
||||
import 'package:hiddify/gen/translations.g.dart';
|
||||
@@ -14,7 +15,13 @@ class LocaleNotifier extends _$LocaleNotifier {
|
||||
ref.watch(sharedPreferencesProvider),
|
||||
"locale",
|
||||
AppLocaleUtils.findDeviceLocale(),
|
||||
mapFrom: AppLocale.values.byName,
|
||||
mapFrom: (String value) {
|
||||
// keep backward compatibility with chinese after changing zh to zh_CN
|
||||
if (value == "zh") {
|
||||
return AppLocale.zhCn;
|
||||
}
|
||||
return AppLocale.values.byName(value);
|
||||
},
|
||||
mapTo: (value) => value.name,
|
||||
);
|
||||
|
||||
@@ -30,4 +37,9 @@ class LocaleNotifier extends _$LocaleNotifier {
|
||||
extension AppLocaleX on AppLocale {
|
||||
String get preferredFontFamily =>
|
||||
this == AppLocale.fa ? FontFamily.shabnam : "";
|
||||
|
||||
String get localeName =>
|
||||
LocaleNamesLocalizationsDelegate
|
||||
.nativeLocaleNames[flutterLocale.toString()] ??
|
||||
name;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_localized_locales/flutter_localized_locales.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:hiddify/core/core_providers.dart';
|
||||
import 'package:hiddify/core/prefs/prefs.dart';
|
||||
@@ -17,10 +16,7 @@ class LocalePrefTile extends HookConsumerWidget {
|
||||
|
||||
return ListTile(
|
||||
title: Text(t.settings.general.locale),
|
||||
subtitle: Text(
|
||||
LocaleNamesLocalizationsDelegate.nativeLocaleNames[locale.name] ??
|
||||
locale.name,
|
||||
),
|
||||
subtitle: Text(locale.localeName),
|
||||
leading: const Icon(Icons.language),
|
||||
onTap: () async {
|
||||
final selectedLocale = await showDialog<AppLocale>(
|
||||
@@ -31,11 +27,7 @@ class LocalePrefTile extends HookConsumerWidget {
|
||||
children: AppLocale.values
|
||||
.map(
|
||||
(e) => RadioListTile(
|
||||
title: Text(
|
||||
LocaleNamesLocalizationsDelegate
|
||||
.nativeLocaleNames[e.name] ??
|
||||
e.name,
|
||||
),
|
||||
title: Text(e.localeName),
|
||||
value: e,
|
||||
groupValue: locale,
|
||||
onChanged: (e) => context.pop(e),
|
||||
|
||||
Reference in New Issue
Block a user