-
Notifications
You must be signed in to change notification settings - Fork 21
/
Copy pathChineseCupertinoLocalizations.dart
166 lines (127 loc) · 3.84 KB
/
ChineseCupertinoLocalizations.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
import 'package:flutter/cupertino.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
///
/// ChineseCupertinoLocalizations
class ChineseCupertinoLocalizations implements CupertinoLocalizations {
final materialDelegate = GlobalMaterialLocalizations.delegate;
final widgetsDelegate = GlobalWidgetsLocalizations.delegate;
final local = const Locale('zh');
late MaterialLocalizations ml;
Future init() async {
ml = await materialDelegate.load(local);
print(ml.pasteButtonLabel);
}
@override
String get alertDialogLabel => ml.alertDialogLabel;
@override
String get anteMeridiemAbbreviation => ml.anteMeridiemAbbreviation;
@override
String get copyButtonLabel => ml.copyButtonLabel;
@override
String get cutButtonLabel => ml.cutButtonLabel;
@override
DatePickerDateOrder get datePickerDateOrder => DatePickerDateOrder.ymd;
@override
DatePickerDateTimeOrder get datePickerDateTimeOrder => DatePickerDateTimeOrder.date_time_dayPeriod;
@override
String datePickerDayOfMonth(int dayIndex) {
return "${dayIndex.toString()}日";
}
@override
String datePickerHour(int hour) {
return hour.toString().padLeft(2, "0");
}
@override
String datePickerHourSemanticsLabel(int hour) {
return "$hour" + "时";
}
@override
String datePickerMediumDate(DateTime date) {
return ml.formatMediumDate(date);
}
@override
String datePickerMinute(int minute) {
return minute.toString().padLeft(2, '0');
}
@override
String datePickerMinuteSemanticsLabel(int minute) {
return "$minute" + "分";
}
@override
String datePickerMonth(int monthIndex) {
return "$monthIndex月";
}
@override
String datePickerYear(int yearIndex) {
return "${yearIndex.toString()}年";
}
@override
String get pasteButtonLabel => ml.pasteButtonLabel;
@override
String get postMeridiemAbbreviation => ml.postMeridiemAbbreviation;
@override
String get selectAllButtonLabel => ml.selectAllButtonLabel;
@override
String timerPickerHour(int hour) {
return hour.toString().padLeft(2, "0");
}
@override
String timerPickerHourLabel(int hour) {
return "时";
}
@override
String timerPickerMinute(int minute) {
return minute.toString().padLeft(2, "0");
}
@override
String timerPickerMinuteLabel(int minute) {
return "分";
}
@override
String timerPickerSecond(int second) {
return second.toString().padLeft(2, "0");
}
@override
String timerPickerSecondLabel(int second) {
return "秒";
}
static const LocalizationsDelegate<CupertinoLocalizations> delegate = _ChineseDelegate();
static Future<CupertinoLocalizations> load(Locale locale) async {
var localizaltions = ChineseCupertinoLocalizations();
await localizaltions.init();
return SynchronousFuture<CupertinoLocalizations>(localizaltions);
}
@override
String get todayLabel => "今天";
@override
String get modalBarrierDismissLabel => "取消";
@override
String tabSemanticsLabel({required int tabIndex, required int tabCount}) {
return "$tabIndex/$tabCount";
}
@override
List<String> get timerPickerHourLabels => ["时"];
@override
List<String> get timerPickerMinuteLabels => ["分"];
@override
List<String> get timerPickerSecondLabels => ["秒"];
@override
String get searchTextFieldPlaceholderLabel => "search label";
}
class _ChineseDelegate extends LocalizationsDelegate<CupertinoLocalizations> {
const _ChineseDelegate();
@override
bool isSupported(Locale locale) {
return locale.languageCode == 'zh';
}
@override
Future<CupertinoLocalizations> load(Locale locale) {
return ChineseCupertinoLocalizations.load(locale);
}
@override
bool shouldReload(LocalizationsDelegate<CupertinoLocalizations> old) {
return false;
}
}