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/data/data_providers.dart';
|
||||||
import 'package:hiddify/gen/fonts.gen.dart';
|
import 'package:hiddify/gen/fonts.gen.dart';
|
||||||
import 'package:hiddify/gen/translations.g.dart';
|
import 'package:hiddify/gen/translations.g.dart';
|
||||||
@@ -14,7 +15,13 @@ class LocaleNotifier extends _$LocaleNotifier {
|
|||||||
ref.watch(sharedPreferencesProvider),
|
ref.watch(sharedPreferencesProvider),
|
||||||
"locale",
|
"locale",
|
||||||
AppLocaleUtils.findDeviceLocale(),
|
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,
|
mapTo: (value) => value.name,
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -30,4 +37,9 @@ class LocaleNotifier extends _$LocaleNotifier {
|
|||||||
extension AppLocaleX on AppLocale {
|
extension AppLocaleX on AppLocale {
|
||||||
String get preferredFontFamily =>
|
String get preferredFontFamily =>
|
||||||
this == AppLocale.fa ? FontFamily.shabnam : "";
|
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/material.dart';
|
||||||
import 'package:flutter_localized_locales/flutter_localized_locales.dart';
|
|
||||||
import 'package:go_router/go_router.dart';
|
import 'package:go_router/go_router.dart';
|
||||||
import 'package:hiddify/core/core_providers.dart';
|
import 'package:hiddify/core/core_providers.dart';
|
||||||
import 'package:hiddify/core/prefs/prefs.dart';
|
import 'package:hiddify/core/prefs/prefs.dart';
|
||||||
@@ -17,10 +16,7 @@ class LocalePrefTile extends HookConsumerWidget {
|
|||||||
|
|
||||||
return ListTile(
|
return ListTile(
|
||||||
title: Text(t.settings.general.locale),
|
title: Text(t.settings.general.locale),
|
||||||
subtitle: Text(
|
subtitle: Text(locale.localeName),
|
||||||
LocaleNamesLocalizationsDelegate.nativeLocaleNames[locale.name] ??
|
|
||||||
locale.name,
|
|
||||||
),
|
|
||||||
leading: const Icon(Icons.language),
|
leading: const Icon(Icons.language),
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
final selectedLocale = await showDialog<AppLocale>(
|
final selectedLocale = await showDialog<AppLocale>(
|
||||||
@@ -31,11 +27,7 @@ class LocalePrefTile extends HookConsumerWidget {
|
|||||||
children: AppLocale.values
|
children: AppLocale.values
|
||||||
.map(
|
.map(
|
||||||
(e) => RadioListTile(
|
(e) => RadioListTile(
|
||||||
title: Text(
|
title: Text(e.localeName),
|
||||||
LocaleNamesLocalizationsDelegate
|
|
||||||
.nativeLocaleNames[e.name] ??
|
|
||||||
e.name,
|
|
||||||
),
|
|
||||||
value: e,
|
value: e,
|
||||||
groupValue: locale,
|
groupValue: locale,
|
||||||
onChanged: (e) => context.pop(e),
|
onChanged: (e) => context.pop(e),
|
||||||
|
|||||||
Reference in New Issue
Block a user