APP_NEW/lib/Provider/Language/language_provider.dart
2025-03-11 21:17:14 +08:00

56 lines
1.9 KiB
Dart

import 'package:flutter/material.dart';
import 'package:lamiter/l10n/l10n.dart';
import 'package:pinyin/pinyin.dart';
import 'package:shared_preferences/shared_preferences.dart';
class LanguageProvider extends ChangeNotifier {
Locale _locale = L10n.locales.first;
Locale get locale => _locale;
LanguageProvider() {
loadLanguage();
}
// 初始化語言設定
Future<void> loadLanguage() async {
final prefs = await SharedPreferences.getInstance();
String? languageCode = prefs.getString('languageCode');
String? countryCode = prefs.getString('countryCode');
if (languageCode != null && countryCode != null) {
_locale = Locale(languageCode, countryCode);
}
notifyListeners();
}
// 設定語言
Future<void> setLocale(Locale value) async {
if (!L10n.locales.contains(value)) return;
final prefs = await SharedPreferences.getInstance();
await prefs.setString('languageCode', value.languageCode);
await prefs.setString('countryCode', value.countryCode ?? '');
_locale = value;
notifyListeners();
}
String getLocaleString(String string) {
ChineseHelper.addTradToSimpMap({'': ''});
ChineseHelper.addSimpToTradMap({'': ''});
ChineseHelper.addTradToSimpMap({'': ''});
ChineseHelper.addSimpToTradMap({'': ''});
ChineseHelper.addTradToSimpMap({'': ''});
ChineseHelper.addSimpToTradMap({'': ''});
ChineseHelper.addTradToSimpMap({'': ''});
ChineseHelper.addSimpToTradMap({'': ''});
ChineseHelper.addTradToSimpMap({'': ''});
ChineseHelper.addSimpToTradMap({'': ''});
ChineseHelper.addTradToSimpMap({'': ''});
ChineseHelper.addSimpToTradMap({'': ''});
if (_locale == const Locale('zh', 'TW')) {
return ChineseHelper.convertToTraditionalChinese(string);
} else if (_locale == const Locale('zh')) {
return ChineseHelper.convertToSimplifiedChinese(string);
}
return string;
}
}