3 changed files with 191 additions and 3 deletions
Unified View
Diff Options
-
185lib/extension/my_cupertino_localizations.dart
-
3lib/main.dart
-
6lib/pages/mine/edit_info_page.dart
@ -0,0 +1,185 @@ |
|||||
|
import 'package:flutter/cupertino.dart'; |
||||
|
import 'package:flutter_localizations/flutter_localizations.dart'; |
||||
|
|
||||
|
import 'package:flutter/cupertino.dart'; |
||||
|
|
||||
|
class MyCupertinoLocalizations implements CupertinoLocalizations { |
||||
|
final CupertinoLocalizations _base; |
||||
|
MyCupertinoLocalizations(this._base); |
||||
|
|
||||
|
// ✅ 只改这里:月份改阿拉伯数字 |
||||
|
@override |
||||
|
String datePickerMonth(int monthIndex) => '$monthIndex月'; |
||||
|
|
||||
|
// ✅ 关键:日期顺序等必须继续用 zh_CN 的实现 |
||||
|
@override |
||||
|
DatePickerDateOrder get datePickerDateOrder => _base.datePickerDateOrder; |
||||
|
|
||||
|
@override |
||||
|
DatePickerDateTimeOrder get datePickerDateTimeOrder => _base.datePickerDateTimeOrder; |
||||
|
|
||||
|
// ——下面全部转发给 _base(只列一部分示例,其余用 IDE 一键生成)—— |
||||
|
@override |
||||
|
String get todayLabel => _base.todayLabel; |
||||
|
|
||||
|
@override |
||||
|
String get alertDialogLabel => _base.alertDialogLabel; |
||||
|
|
||||
|
@override |
||||
|
String get anteMeridiemAbbreviation => _base.anteMeridiemAbbreviation; |
||||
|
|
||||
|
@override |
||||
|
String get postMeridiemAbbreviation => _base.postMeridiemAbbreviation; |
||||
|
|
||||
|
@override |
||||
|
String get copyButtonLabel => _base.copyButtonLabel; |
||||
|
|
||||
|
@override |
||||
|
String get cutButtonLabel => _base.cutButtonLabel; |
||||
|
|
||||
|
@override |
||||
|
String get pasteButtonLabel => _base.pasteButtonLabel; |
||||
|
|
||||
|
@override |
||||
|
String get selectAllButtonLabel => _base.selectAllButtonLabel; |
||||
|
|
||||
|
@override |
||||
|
String get modalBarrierDismissLabel => _base.modalBarrierDismissLabel; |
||||
|
|
||||
|
@override |
||||
|
String tabSemanticsLabel({required int tabIndex, required int tabCount}) => |
||||
|
_base.tabSemanticsLabel(tabIndex: tabIndex, tabCount: tabCount); |
||||
|
|
||||
|
@override |
||||
|
String datePickerDayOfMonth(int dayIndex, [int? weekDay]) => |
||||
|
_base.datePickerDayOfMonth(dayIndex, weekDay); |
||||
|
|
||||
|
@override |
||||
|
String datePickerYear(int yearIndex) => _base.datePickerYear(yearIndex); |
||||
|
|
||||
|
@override |
||||
|
String datePickerMediumDate(DateTime date) => _base.datePickerMediumDate(date); |
||||
|
|
||||
|
@override |
||||
|
String datePickerHour(int hour) => _base.datePickerHour(hour); |
||||
|
|
||||
|
@override |
||||
|
String datePickerMinute(int minute) => _base.datePickerMinute(minute); |
||||
|
|
||||
|
@override |
||||
|
String? datePickerHourSemanticsLabel(int hour) => |
||||
|
_base.datePickerHourSemanticsLabel(hour); |
||||
|
|
||||
|
@override |
||||
|
String? datePickerMinuteSemanticsLabel(int minute) => |
||||
|
_base.datePickerMinuteSemanticsLabel(minute); |
||||
|
|
||||
|
@override |
||||
|
String get searchTextFieldPlaceholderLabel => _base.searchTextFieldPlaceholderLabel; |
||||
|
|
||||
|
@override |
||||
|
String get cancelButtonLabel => _base.cancelButtonLabel; |
||||
|
|
||||
|
@override |
||||
|
// TODO: implement backButtonLabel |
||||
|
String get backButtonLabel => throw UnimplementedError(); |
||||
|
|
||||
|
@override |
||||
|
// TODO: implement clearButtonLabel |
||||
|
String get clearButtonLabel => throw UnimplementedError(); |
||||
|
|
||||
|
@override |
||||
|
String datePickerStandaloneMonth(int monthIndex) { |
||||
|
// TODO: implement datePickerStandaloneMonth |
||||
|
throw UnimplementedError(); |
||||
|
} |
||||
|
|
||||
|
@override |
||||
|
// TODO: implement lookUpButtonLabel |
||||
|
String get lookUpButtonLabel => throw UnimplementedError(); |
||||
|
|
||||
|
@override |
||||
|
// TODO: implement menuDismissLabel |
||||
|
String get menuDismissLabel => throw UnimplementedError(); |
||||
|
|
||||
|
@override |
||||
|
// TODO: implement noSpellCheckReplacementsLabel |
||||
|
String get noSpellCheckReplacementsLabel => throw UnimplementedError(); |
||||
|
|
||||
|
@override |
||||
|
// TODO: implement searchWebButtonLabel |
||||
|
String get searchWebButtonLabel => throw UnimplementedError(); |
||||
|
|
||||
|
@override |
||||
|
// TODO: implement shareButtonLabel |
||||
|
String get shareButtonLabel => throw UnimplementedError(); |
||||
|
|
||||
|
@override |
||||
|
String timerPickerHour(int hour) { |
||||
|
// TODO: implement timerPickerHour |
||||
|
throw UnimplementedError(); |
||||
|
} |
||||
|
|
||||
|
@override |
||||
|
String? timerPickerHourLabel(int hour) { |
||||
|
// TODO: implement timerPickerHourLabel |
||||
|
throw UnimplementedError(); |
||||
|
} |
||||
|
|
||||
|
@override |
||||
|
// TODO: implement timerPickerHourLabels |
||||
|
List<String> get timerPickerHourLabels => throw UnimplementedError(); |
||||
|
|
||||
|
@override |
||||
|
String timerPickerMinute(int minute) { |
||||
|
// TODO: implement timerPickerMinute |
||||
|
throw UnimplementedError(); |
||||
|
} |
||||
|
|
||||
|
@override |
||||
|
String? timerPickerMinuteLabel(int minute) { |
||||
|
// TODO: implement timerPickerMinuteLabel |
||||
|
throw UnimplementedError(); |
||||
|
} |
||||
|
|
||||
|
@override |
||||
|
// TODO: implement timerPickerMinuteLabels |
||||
|
List<String> get timerPickerMinuteLabels => throw UnimplementedError(); |
||||
|
|
||||
|
@override |
||||
|
String timerPickerSecond(int second) { |
||||
|
// TODO: implement timerPickerSecond |
||||
|
throw UnimplementedError(); |
||||
|
} |
||||
|
|
||||
|
@override |
||||
|
String? timerPickerSecondLabel(int second) { |
||||
|
// TODO: implement timerPickerSecondLabel |
||||
|
throw UnimplementedError(); |
||||
|
} |
||||
|
|
||||
|
@override |
||||
|
// TODO: implement timerPickerSecondLabels |
||||
|
List<String> get timerPickerSecondLabels => throw UnimplementedError(); |
||||
|
|
||||
|
// …其余所有成员:全部 `=> _base.xxx` |
||||
|
} |
||||
|
|
||||
|
|
||||
|
class ChineseArabicMonthDelegate extends LocalizationsDelegate<CupertinoLocalizations> { |
||||
|
const ChineseArabicMonthDelegate(); |
||||
|
|
||||
|
@override |
||||
|
bool isSupported(Locale locale) => locale.languageCode == 'zh'; |
||||
|
|
||||
|
@override |
||||
|
Future<CupertinoLocalizations> load(Locale locale) async { |
||||
|
// 这里的 GlobalCupertinoLocalizations.delegate 是 Flutter 官方提供的中文实现 |
||||
|
// 我们先加载它,然后用我们的类包装一层 |
||||
|
final CupertinoLocalizations delegate = await GlobalCupertinoLocalizations.delegate.load(locale); |
||||
|
return MyCupertinoLocalizations(delegate); |
||||
|
} |
||||
|
|
||||
|
@override |
||||
|
bool shouldReload(ChineseArabicMonthDelegate old) => false; |
||||
|
} |
||||
Write
Preview
Loading…
Cancel
Save