You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
209 lines
6.0 KiB
209 lines
6.0 KiB
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();
|
|
|
|
@override
|
|
// TODO: implement collapsedHint
|
|
String get collapsedHint => throw UnimplementedError();
|
|
|
|
@override
|
|
// TODO: implement expandedHint
|
|
String get expandedHint => throw UnimplementedError();
|
|
|
|
@override
|
|
// TODO: implement expansionTileCollapsedHint
|
|
String get expansionTileCollapsedHint => throw UnimplementedError();
|
|
|
|
@override
|
|
// TODO: implement expansionTileCollapsedTapHint
|
|
String get expansionTileCollapsedTapHint => throw UnimplementedError();
|
|
|
|
@override
|
|
// TODO: implement expansionTileExpandedHint
|
|
String get expansionTileExpandedHint => throw UnimplementedError();
|
|
|
|
@override
|
|
// TODO: implement expansionTileExpandedTapHint
|
|
String get expansionTileExpandedTapHint => 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;
|
|
}
|