3 changed files with 191 additions and 3 deletions
Split 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