diff --git a/lib/models/theme.dart b/lib/models/theme.dart
index c524e4e..6ef5d6e 100644
--- a/lib/models/theme.dart
+++ b/lib/models/theme.dart
@@ -166,10 +166,14 @@ class ThemeModel with ChangeNotifier {
   String? _locale;
   String? get locale => _locale;
 
-  Future<void> setLocale(String v) async {
+  Future<void> setLocale(String? v) async {
     _locale = v;
     final prefs = await SharedPreferences.getInstance();
-    await prefs.setString(StorageKeys.locale, v);
+    if (v == null) {
+      await prefs.remove(StorageKeys.locale);
+    } else {
+      await prefs.setString(StorageKeys.locale, v);
+    }
     notifyListeners();
   }
 
diff --git a/lib/screens/settings.dart b/lib/screens/settings.dart
index c229892..e2a6ca6 100644
--- a/lib/screens/settings.dart
+++ b/lib/screens/settings.dart
@@ -86,13 +86,13 @@ class SettingsScreen extends StatelessWidget {
                           ? AppLocalizations.of(context)!.followSystem
                           : localeNameMap[key],
                       onTap: (_) async {
-                        final res = await (theme.showConfirm(
+                        final res = await theme.showConfirm(
                           context,
                           Text(
                               'The app will reload to make the language setting take effect'),
-                        ) as Future<bool>);
-                        if (res && theme.locale != key) {
-                          await theme.setLocale(key!);
+                        );
+                        if (res == true && theme.locale != key) {
+                          await theme.setLocale(key);
                           auth.reloadApp();
                         }
                       },