dev
dart 1,057 lines 24.6 KB
Raw
1 import 'dart:async';
2
3 import 'package:flutter/cupertino.dart';
4 import 'package:flutter/foundation.dart';
5 import 'package:flutter/material.dart';
6 import 'package:flutter_localizations/flutter_localizations.dart';
7 import 'package:intl/date_symbol_data_custom.dart' as date_symbol_data_custom;
8 import 'package:intl/date_symbols.dart' as intl;
9 import 'package:intl/intl.dart' as intl;
10
11 // #docregion Date
12 const haLocaleDatePatterns = {
13 'd': 'd.',
14 'E': 'ccc',
15 'EEEE': 'cccc',
16 'LLL': 'LLL',
17 // #enddocregion Date
18 'LLLL': 'LLLL',
19 'M': 'L.',
20 'Md': 'd.M.',
21 'MEd': 'EEE d.M.',
22 'MMM': 'LLL',
23 'MMMd': 'd. MMM',
24 'MMMEd': 'EEE d. MMM',
25 'MMMM': 'LLLL',
26 'MMMMd': 'd. MMMM',
27 'MMMMEEEEd': 'EEEE d. MMMM',
28 'QQQ': 'QQQ',
29 'QQQQ': 'QQQQ',
30 'y': 'y',
31 'yM': 'M.y',
32 'yMd': 'd.M.y',
33 'yMEd': 'EEE d.MM.y',
34 'yMMM': 'MMM y',
35 'yMMMd': 'd. MMM y',
36 'yMMMEd': 'EEE d. MMM y',
37 'yMMMM': 'MMMM y',
38 'yMMMMd': 'd. MMMM y',
39 'yMMMMEEEEd': 'EEEE d. MMMM y',
40 'yQQQ': 'QQQ y',
41 'yQQQQ': 'QQQQ y',
42 'H': 'HH',
43 'Hm': 'HH:mm',
44 'Hms': 'HH:mm:ss',
45 'j': 'HH',
46 'jm': 'HH:mm',
47 'jms': 'HH:mm:ss',
48 'jmv': 'HH:mm v',
49 'jmz': 'HH:mm z',
50 'jz': 'HH z',
51 'm': 'm',
52 'ms': 'mm:ss',
53 's': 's',
54 'v': 'v',
55 'z': 'z',
56 'zzzz': 'zzzz',
57 'ZZZZ': 'ZZZZ',
58 };
59
60 // #docregion Date2
61 const haDateSymbols = {
62 'NAME': 'ha',
63 'ERAS': <dynamic>[
64 'f.Kr.',
65 'e.Kr.',
66 ],
67 // #enddocregion Date2
68 'ERANAMES': <dynamic>[
69 'kafin Kristi',
70 'bayan Kristi',
71 ],
72 'NARROWMONTHS': <dynamic>[
73 'J',
74 'F',
75 'M',
76 'A',
77 'M',
78 'J',
79 'J',
80 'A',
81 'S',
82 'O',
83 'N',
84 'D',
85 ],
86 'STANDALONENARROWMONTHS': <dynamic>[
87 'J',
88 'F',
89 'M',
90 'A',
91 'M',
92 'J',
93 'J',
94 'A',
95 'S',
96 'O',
97 'N',
98 'D',
99 ],
100 'MONTHS': <dynamic>[
101 'janairu',
102 'faburairu',
103 'maris',
104 'afrilu',
105 'mayu',
106 'yuni',
107 'yuli',
108 'agusta',
109 'satumba',
110 'oktoba',
111 'nuwamba',
112 'disamba',
113 ],
114 'STANDALONEMONTHS': <dynamic>[
115 'janairu',
116 'faburairu',
117 'maris',
118 'afrilu',
119 'mayu',
120 'yuni',
121 'yuli',
122 'agusta',
123 'satumba',
124 'oktoba',
125 'nuwamba',
126 'disamba',
127 ],
128 'SHORTMONTHS': <dynamic>[
129 'jan.',
130 'feb.',
131 'mar.',
132 'apr.',
133 'mai',
134 'jun.',
135 'jul.',
136 'aug.',
137 'sep.',
138 'okt.',
139 'nov.',
140 'des.',
141 ],
142 'STANDALONESHORTMONTHS': <dynamic>[
143 'jan',
144 'feb',
145 'mar',
146 'apr',
147 'mai',
148 'jun',
149 'jul',
150 'aug',
151 'sep',
152 'okt',
153 'nov',
154 'des',
155 ],
156 'WEEKDAYS': <dynamic>[
157 'lahadi',
158 'litinin',
159 'talata',
160 'laraba',
161 'alhamis',
162 'jummaʼa',
163 'asabar',
164 ],
165 'STANDALONEWEEKDAYS': <dynamic>[
166 'lahadi',
167 'litinin',
168 'talata',
169 'laraba',
170 'alhamis',
171 'jummaʼa',
172 'asabar',
173 ],
174 'SHORTWEEKDAYS': <dynamic>[
175 'lah.',
176 'lit.',
177 'tal.',
178 'lar.',
179 'alh.',
180 'jum.',
181 'asa.',
182 ],
183 'STANDALONESHORTWEEKDAYS': <dynamic>[
184 'lah.',
185 'lit.',
186 'tal.',
187 'lar.',
188 'alh.',
189 'jum.',
190 'asa.',
191 ],
192 'NARROWWEEKDAYS': <dynamic>[
193 'L',
194 'L',
195 'T',
196 'L',
197 'A',
198 'J',
199 'A',
200 ],
201 'STANDALONENARROWWEEKDAYS': <dynamic>[
202 'L',
203 'L',
204 'T',
205 'L',
206 'A',
207 'J',
208 'A',
209 ],
210 'SHORTQUARTERS': <dynamic>[
211 'K1',
212 'K2',
213 'K3',
214 'K4',
215 ],
216 'QUARTERS': <dynamic>[
217 '1. quarter',
218 '2. quarter',
219 '3. quarter',
220 '4. quarter',
221 ],
222 'AMPMS': <dynamic>[
223 'a.m.',
224 'p.m.',
225 ],
226 'DATEFORMATS': <dynamic>[
227 'EEEE d. MMMM y',
228 'd. MMMM y',
229 'd. MMM y',
230 'dd.MM.y',
231 ],
232 'TIMEFORMATS': <dynamic>[
233 'HH:mm:ss zzzz',
234 'HH:mm:ss z',
235 'HH:mm:ss',
236 'HH:mm',
237 ],
238 'AVAILABLEFORMATS': null,
239 'FIRSTDAYOFWEEK': 0,
240 'WEEKENDRANGE': <dynamic>[
241 5,
242 6,
243 ],
244 'FIRSTWEEKCUTOFFDAY': 3,
245 'DATETIMEFORMATS': <dynamic>[
246 '{1} {0}',
247 '{1} \'kl\'. {0}',
248 '{1}, {0}',
249 '{1}, {0}',
250 ],
251 };
252
253 // #docregion Delegate
254 class _HaMaterialLocalizationsDelegate extends LocalizationsDelegate<MaterialLocalizations> {
255 const _HaMaterialLocalizationsDelegate();
256
257 @override
258 bool isSupported(Locale locale) => locale.languageCode == 'ha';
259
260 @override
261 Future<MaterialLocalizations> load(Locale locale) async {
262 final String localeName = intl.Intl.canonicalizedLocale(locale.toString());
263
264 // The locale (in this case `ha`) needs to be initialized into the custom
265 // date symbols and patterns setup that Flutter uses.
266 date_symbol_data_custom.initializeDateFormattingCustom(
267 locale: localeName,
268 patterns: haLocaleDatePatterns,
269 symbols: intl.DateSymbols.deserializeFromMap(haDateSymbols),
270 );
271
272 return SynchronousFuture<MaterialLocalizations>(
273 HaMaterialLocalizations(
274 localeName: localeName,
275 // The `intl` library's NumberFormat class is generated from CLDR data
276 // (see https://github.com/dart-lang/intl/blob/master/lib/number_symbols_data.dart).
277 // Unfortunately, there is no way to use a locale that isn't defined in
278 // this map and the only way to work around this is to use a listed
279 // locale's NumberFormat symbols. So, here we use the number formats
280 // for 'en_US' instead.
281 decimalFormat: intl.NumberFormat('#,##0.###', 'en_US'),
282 twoDigitZeroPaddedFormat: intl.NumberFormat('00', 'en_US'),
283 // DateFormat here will use the symbols and patterns provided in the
284 // `date_symbol_data_custom.initializeDateFormattingCustom` call above.
285 // However, an alternative is to simply use a supported locale's
286 // DateFormat symbols, similar to NumberFormat above.
287 fullYearFormat: intl.DateFormat('y', localeName),
288 compactDateFormat: intl.DateFormat('yMd', localeName),
289 shortDateFormat: intl.DateFormat('yMMMd', localeName),
290 mediumDateFormat: intl.DateFormat('EEE, MMM d', localeName),
291 longDateFormat: intl.DateFormat('EEEE, MMMM d, y', localeName),
292 yearMonthFormat: intl.DateFormat('MMMM y', localeName),
293 shortMonthDayFormat: intl.DateFormat('MMM d', localeName),
294 ),
295 );
296 }
297
298 @override
299 bool shouldReload(_HaMaterialLocalizationsDelegate old) => false;
300 }
301
302 // #enddocregion Delegate
303 class HaMaterialLocalizations extends GlobalMaterialLocalizations {
304 const HaMaterialLocalizations({
305 super.localeName = 'ha',
306 required super.fullYearFormat,
307 required super.compactDateFormat,
308 required super.shortDateFormat,
309 required super.mediumDateFormat,
310 required super.longDateFormat,
311 required super.yearMonthFormat,
312 required super.shortMonthDayFormat,
313 required super.decimalFormat,
314 required super.twoDigitZeroPaddedFormat,
315 });
316
317 // #docregion Getters
318 @override
319 String get moreButtonTooltip => r'Zaɓi';
320
321 @override
322 String get aboutListTileTitleRaw => r'Dake ɓoye $applicationname';
323
324 @override
325 String get alertDialogLabel => r'Alert';
326
327 // #enddocregion Getters
328
329 @override
330 String get anteMeridiemAbbreviation => r'AM';
331
332 @override
333 String get backButtonTooltip => r'Farawa';
334
335 @override
336 String get cancelButtonLabel => r'KANƘO';
337
338 @override
339 String get closeButtonLabel => r'SHIGA';
340
341 @override
342 String get closeButtonTooltip => r'Shiga';
343
344 @override
345 String get collapsedIconTapHint => r'Fara';
346
347 @override
348 String get continueButtonLabel => r'CI GABA';
349
350 @override
351 String get copyButtonLabel => r'KOPIYA';
352
353 @override
354 String get cutButtonLabel => r'ƘIRƘIRI';
355
356 @override
357 String get deleteButtonTooltip => r'Kashe';
358
359 @override
360 String get dialogLabel => r'Dialog';
361
362 @override
363 String get drawerLabel => r'Meniyar tebur';
364
365 @override
366 String get expandedIconTapHint => r'Faɗa';
367
368 @override
369 String get firstPageTooltip => r'Ta baya';
370
371 @override
372 String get hideAccountsLabel => r'Soke akaunti';
373
374 @override
375 String get lastPageTooltip => r'Ta gaba';
376
377 @override
378 String get licensesPageTitle => r'Lisansu';
379
380 @override
381 String get modalBarrierDismissLabel => r'So';
382
383 @override
384 String get nextMonthTooltip => r'Watan gobe';
385
386 @override
387 String get nextPageTooltip => r'Wani babban daidaita';
388
389 @override
390 String get okButtonLabel => r'OK';
391
392 @override
393 // A custom drawer tooltip message.
394 String get openAppDrawerTooltip => r'Taƙaitacciyar Menu na Nauyi';
395
396 // #docregion Raw
397 @override
398 String get pageRowsInfoTitleRaw => r'$firstRow–$lastRow daga $rowCount';
399
400 @override
401 String get pageRowsInfoTitleApproximateRaw => r'$firstRow–$lastRow daga takwas $rowCount';
402 // #enddocregion Raw
403
404 @override
405 String get pasteButtonLabel => r'BANDA';
406
407 @override
408 String get popupMenuLabel => r'Meniyar Kasuwa';
409
410 @override
411 String get menuBarMenuLabel => r'Gargajiya na menu';
412
413 @override
414 String get postMeridiemAbbreviation => r'PM';
415
416 @override
417 String get previousMonthTooltip => r'Watan gabas';
418
419 @override
420 String get previousPageTooltip => r'Wani babban hanya';
421
422 @override
423 String get refreshIndicatorSemanticLabel => r'Nada';
424
425 @override
426 String? get remainingTextFieldCharacterCountFew => null;
427
428 @override
429 String? get remainingTextFieldCharacterCountMany => null;
430
431 @override
432 String get remainingTextFieldCharacterCountOne => r'1 haruffa baki';
433
434 @override
435 String get remainingTextFieldCharacterCountOther => r'$remainingCount haruffa baki';
436
437 @override
438 String? get remainingTextFieldCharacterCountTwo => null;
439
440 @override
441 String get remainingTextFieldCharacterCountZero => r'Ba a nan rubutu sosai';
442
443 @override
444 String get reorderItemDown => r'A sake ƙasa';
445
446 @override
447 String get reorderItemLeft => r'A sake hagu';
448
449 @override
450 String get reorderItemRight => r'A sake dama';
451
452 @override
453 String get reorderItemToEnd => r'A sake zuwa tamu';
454
455 @override
456 String get reorderItemToStart => r'A sake zuwa farko';
457
458 @override
459 String get reorderItemUp => r'A sake sama';
460
461 @override
462 String get rowsPerPageTitle => r'Lambar Fasali:';
463
464 @override
465 ScriptCategory get scriptCategory => ScriptCategory.englishLike;
466
467 @override
468 String get searchFieldLabel => 'Binciken';
469
470 @override
471 String get selectAllButtonLabel => 'DUBA DUK';
472
473 @override
474 String? get selectedRowCountTitleFew => null;
475
476 @override
477 String? get selectedRowCountTitleMany => null;
478
479 @override
480 String get selectedRowCountTitleOne => '1 kaya';
481
482 @override
483 String get selectedRowCountTitleOther => r'$selectedRowCount kayayyaki';
484
485 @override
486 String? get selectedRowCountTitleTwo => null;
487
488 @override
489 String get selectedRowCountTitleZero => 'Babu kaya da aka zabi';
490
491 @override
492 String get showAccountsLabel => 'Nuna Hisobin';
493
494 @override
495 String get showMenuTooltip => 'Nuna Menu';
496
497 @override
498 String get signedInLabel => 'Kasance';
499
500 @override
501 String get tabLabelRaw => r'Tabin $tabIndex daga $tabCount';
502
503 @override
504 TimeOfDayFormat get timeOfDayFormatRaw => TimeOfDayFormat.h_colon_mm_space_a;
505
506 @override
507 String get timePickerHourModeAnnouncement => 'Zaɓi saʼoɗin lokaci';
508
509 @override
510 String get timePickerMinuteModeAnnouncement => 'Zaɓi minti';
511
512 @override
513 String get viewLicensesButtonLabel => 'DUBA LAYINSU';
514
515 @override
516 List<String> get narrowWeekdays => const <String>['L', 'L', 'M', 'K', 'J', 'A', 'A'];
517
518 @override
519 int get firstDayOfWeekIndex => 0;
520
521 static const LocalizationsDelegate<MaterialLocalizations> delegate =
522 _HaMaterialLocalizationsDelegate();
523
524 @override
525 String get calendarModeButtonLabel => 'Canza zuwa kalendar';
526
527 @override
528 String get dateHelpText => 'mm/dd/yyyy';
529
530 @override
531 String get dateInputLabel => 'Shigar Daƙin';
532
533 @override
534 String get dateOutOfRangeLabel => 'A cikin jerin';
535
536 @override
537 String get datePickerHelpText => 'ZAƘA TALATA';
538
539 @override
540 String get dateRangeEndDateSemanticLabelRaw => r'Aikin da ya ƙarshe $fullDate';
541
542 @override
543 String get dateRangeEndLabel => 'Aikin da ya ƙarshe';
544
545 @override
546 String get dateRangePickerHelpText => 'ZAƘA HALIN RANAR';
547
548 @override
549 String get dateRangeStartDateSemanticLabelRaw => 'Aikin da ya gabata \$fullDate';
550
551 @override
552 String get dateRangeStartLabel => 'Aikin da ya gabata';
553
554 @override
555 String get dateSeparator => '/';
556
557 @override
558 String get dialModeButtonLabel => 'Canza zuwa jerin';
559
560 @override
561 String get inputDateModeButtonLabel => 'Canza zuwa shigar';
562
563 @override
564 String get inputTimeModeButtonLabel => 'Canza zuwa jerin bayanin rubutu';
565
566 @override
567 String get invalidDateFormatLabel => 'Tarihin ba daidai ba';
568
569 @override
570 String get invalidDateRangeLabel => 'Siffar saƙo ba tare da hukunci ba';
571
572 @override
573 String get invalidTimeLabel => 'Kasancewa aikin lokaci mai kyau';
574
575 @override
576 String get licensesPackageDetailTextOther => r'$licenseCount layinsu';
577
578 @override
579 String get saveButtonLabel => 'Aji';
580
581 @override
582 String get selectYearSemanticsLabel => 'Zaɓi shekara';
583
584 @override
585 String get timePickerDialHelpText => 'ZAƘA LOKACI';
586
587 @override
588 String get timePickerHourLabel => 'Auren lokaci';
589
590 @override
591 String get timePickerInputHelpText => 'Shigar lokaci';
592
593 @override
594 String get timePickerMinuteLabel => 'Minti';
595
596 @override
597 String get unspecifiedDate => 'Ranar';
598
599 @override
600 String get unspecifiedDateRange => 'Ranar Ayyuka';
601
602 @override
603 String get keyboardKeyAlt => 'Alt';
604
605 @override
606 String get keyboardKeyAltGraph => 'AltGraph';
607
608 @override
609 String get keyboardKeyBackspace => 'BayaRubuta';
610
611 @override
612 String get keyboardKeyCapsLock => 'Caps Lock';
613
614 @override
615 String get keyboardKeyChannelDown => 'BayaKammalaSake';
616
617 @override
618 String get keyboardKeyChannelUp => 'YiKammalaSake';
619
620 @override
621 String get keyboardKeyControl => 'Tsara';
622
623 @override
624 String get keyboardKeyDelete => 'Share';
625
626 @override
627 String get keyboardKeyEject => 'Eject';
628
629 @override
630 String get keyboardKeyEnd => 'Tare';
631
632 @override
633 String get keyboardKeyEscape => 'Goge';
634
635 @override
636 String get keyboardKeyFn => 'Fn';
637
638 @override
639 String get keyboardKeyHome => 'Home';
640
641 @override
642 String get keyboardKeyInsert => 'Shirya';
643
644 @override
645 String get keyboardKeyMeta => 'Meta';
646
647 @override
648 String get keyboardKeyMetaMacOs => 'Amfani da Command';
649
650 @override
651 String get keyboardKeyMetaWindows => 'Windows';
652
653 @override
654 String get keyboardKeyNumLock => 'Num Lock';
655
656 @override
657 String get keyboardKeyNumpad0 => 'Numpad 0';
658
659 @override
660 String get keyboardKeyNumpad1 => 'Numpad 1';
661
662 @override
663 String get keyboardKeyNumpad2 => 'Numpad 2';
664
665 @override
666 String get keyboardKeyNumpad3 => 'Numpad 3';
667
668 @override
669 String get keyboardKeyNumpad4 => 'Numpad 4';
670
671 @override
672 String get keyboardKeyNumpad5 => 'Numpad 5';
673
674 @override
675 String get keyboardKeyNumpad6 => 'Numpad 6';
676
677 @override
678 String get keyboardKeyNumpad7 => 'Numpad 7';
679
680 @override
681 String get keyboardKeyNumpad8 => 'Numpad 8';
682
683 @override
684 String get keyboardKeyNumpad9 => 'Numpad 9';
685
686 @override
687 String get keyboardKeyNumpadAdd => 'Numpad +';
688
689 @override
690 String get keyboardKeyNumpadComma => 'Numpad ,';
691
692 @override
693 String get keyboardKeyNumpadDecimal => 'Numpad .';
694
695 @override
696 String get keyboardKeyNumpadDivide => 'Numpad /';
697
698 @override
699 String get keyboardKeyNumpadEnter => 'Numpad Enter';
700
701 @override
702 String get keyboardKeyNumpadEqual => 'Numpad =';
703
704 @override
705 String get keyboardKeyNumpadMultiply => 'Numpad *';
706
707 @override
708 String get keyboardKeyNumpadParenLeft => 'Numpad (';
709
710 @override
711 String get keyboardKeyNumpadParenRight => 'Numpad )';
712
713 @override
714 String get keyboardKeyNumpadSubtract => 'Numpad -';
715
716 @override
717 String get keyboardKeyPageDown => 'Page Down';
718
719 @override
720 String get keyboardKeyPageUp => 'Page Up';
721
722 @override
723 String get keyboardKeyPower => 'Power';
724
725 @override
726 String get keyboardKeyPowerOff => 'Power Off';
727
728 @override
729 String get keyboardKeyPrintScreen => 'Print Screen';
730
731 @override
732 String get keyboardKeyScrollLock => 'Scroll Lock';
733
734 @override
735 String get keyboardKeySelect => 'Zabi';
736
737 @override
738 String get keyboardKeySpace => 'Space';
739
740 @override
741 String get bottomSheetLabel => "Bottom Sheet";
742
743 @override
744 String get currentDateLabel => "Current Date";
745
746 @override
747 String get keyboardKeyShift => "Shift";
748
749 @override
750 String get scrimLabel => "Scrim";
751
752 @override
753 String get scrimOnTapHintRaw => "Scrip on Tap";
754
755 @override
756 // TODO: implement collapsedHint
757 String get collapsedHint => "collapsedHint";
758
759 @override
760 // TODO: implement expandedHint
761 String get expandedHint => "expandedHint";
762
763 @override
764 // TODO: implement expansionTileCollapsedHint
765 String get expansionTileCollapsedHint => "expansionTileCollapsedHint";
766
767 @override
768 // TODO: implement expansionTileCollapsedTapHint
769 String get expansionTileCollapsedTapHint => "expansionTileCollapsedTapHint";
770
771 @override
772 // TODO: implement expansionTileExpandedHint
773 String get expansionTileExpandedHint => "expansionTileExpandedHint";
774
775 @override
776 // TODO: implement expansionTileExpandedTapHint
777 String get expansionTileExpandedTapHint => "expansionTileExpandedTapHint";
778
779 @override
780 // TODO: implement scanTextButtonLabel
781 String get scanTextButtonLabel => "scanTextButtonLabel";
782
783 @override
784 // TODO: implement lookUpButtonLabel
785 String get lookUpButtonLabel => "lookUpButtonLabel";
786
787 @override
788 // TODO: implement menuDismissLabel
789 String get menuDismissLabel => "menuDismissLabel";
790
791 @override
792 // TODO: implement searchWebButtonLabel
793 String get searchWebButtonLabel => "searchWebButtonLabel";
794
795 @override
796 // TODO: implement shareButtonLabel
797 String get shareButtonLabel => "shareButtonLabel";
798
799 @override
800 // TODO: implement clearButtonTooltip
801 String get clearButtonTooltip => "clearButtonTooltip";
802
803 @override
804 // TODO: implement selectedDateLabel
805 String get selectedDateLabel => "selectedDateLabel";
806 }
807
808 /// Cupertino Support
809 /// Strings Copied from "https://github.com/flutter/flutter/blob/master/packages/flutter_localizations/lib/src/l10n/generated_cupertino_localizations.dart"
810
811 class _HaCupertinoLocalizationsDelegate extends LocalizationsDelegate<CupertinoLocalizations> {
812 const _HaCupertinoLocalizationsDelegate();
813
814 @override
815 bool isSupported(Locale locale) => locale.languageCode == 'ha';
816
817 @override
818 Future<CupertinoLocalizations> load(Locale locale) async {
819 final String localeName = intl.Intl.canonicalizedLocale(locale.toString());
820
821 // The locale (in this case `ha`) needs to be initialized into the custom =>> `ha`
822 // date symbols and patterns setup that Flutter uses.
823 date_symbol_data_custom.initializeDateFormattingCustom(
824 locale: localeName,
825 patterns: haLocaleDatePatterns,
826 symbols: intl.DateSymbols.deserializeFromMap(haDateSymbols),
827 );
828 return SynchronousFuture<CupertinoLocalizations>(
829 HaCupertinoLocalizations(
830 localeName: localeName,
831 // The `intl` library's NumberFormat class is generated from CLDR data
832 // (see https://github.com/dart-lang/intl/blob/master/lib/number_symbols_data.dart).
833 // Unfortunately, there is no way to use a locale that isn't defined in
834 // this map and the only way to work around this is to use a listed
835 // locale's NumberFormat symbols. So, here we use the number formats
836 // for 'en_US' instead.
837 decimalFormat: intl.NumberFormat('#,##0.###', 'en_US'),
838 // DateFormat here will use the symbols and patterns provided in the
839 // `date_symbol_data_custom.initializeDateFormattingCustom` call above.
840 // However, an alternative is to simply use a supported locale's
841 // DateFormat symbols, similar to NumberFormat above.
842 fullYearFormat: intl.DateFormat('y', localeName),
843 mediumDateFormat: intl.DateFormat('EEE, MMM d', localeName),
844 dayFormat: intl.DateFormat('d', localeName),
845 doubleDigitMinuteFormat: intl.DateFormat('mm', localeName),
846 singleDigitHourFormat: intl.DateFormat('j', localeName),
847 singleDigitMinuteFormat: intl.DateFormat.m(localeName),
848 singleDigitSecondFormat: intl.DateFormat.s(localeName),
849 weekdayFormat: intl.DateFormat.E(localeName),
850 ),
851 );
852 }
853
854 @override
855 bool shouldReload(_HaCupertinoLocalizationsDelegate old) => false;
856 }
857 // #enddocregion Delegate
858
859 /// A custom set of localizations for the 'nn' locale. In this example, only =>> `ha`
860 /// the value for openAppDrawerTooltip was modified to use a custom message as
861 /// an example. Everything else uses the American English (en_US) messages
862 /// and formatting.
863 class HaCupertinoLocalizations extends GlobalCupertinoLocalizations {
864 const HaCupertinoLocalizations({
865 super.localeName = 'ha',
866 required super.fullYearFormat,
867 required super.mediumDateFormat,
868 required super.decimalFormat,
869 required super.dayFormat,
870 required super.singleDigitHourFormat,
871 required super.singleDigitMinuteFormat,
872 required super.doubleDigitMinuteFormat,
873 required super.singleDigitSecondFormat,
874 required super.weekdayFormat,
875 });
876
877 @override
878 String get alertDialogLabel => 'Fadakarwa';
879
880 @override
881 String get anteMeridiemAbbreviation => 'AM';
882
883 @override
884 String get copyButtonLabel => 'Kwafa';
885
886 @override
887 String get cutButtonLabel => 'yanke';
888
889 @override
890 String get datePickerDateOrderString => 'mdy';
891
892 @override
893 String get datePickerDateTimeOrderString => 'date_time_dayPeriod';
894
895 @override
896 String? get datePickerHourSemanticsLabelFew => null;
897
898 @override
899 String? get datePickerHourSemanticsLabelMany => null;
900
901 @override
902 String? get datePickerHourSemanticsLabelOne => r"$hour o'clock";
903
904 @override
905 String get datePickerHourSemanticsLabelOther => r"$hour o'clock";
906
907 @override
908 String? get datePickerHourSemanticsLabelTwo => null;
909
910 @override
911 String? get datePickerHourSemanticsLabelZero => null;
912
913 @override
914 String? get datePickerMinuteSemanticsLabelFew => null;
915
916 @override
917 String? get datePickerMinuteSemanticsLabelMany => null;
918
919 @override
920 String? get datePickerMinuteSemanticsLabelOne => '1 minti';
921
922 @override
923 String get datePickerMinuteSemanticsLabelOther => r'$minute minti';
924
925 @override
926 String? get datePickerMinuteSemanticsLabelTwo => null;
927
928 @override
929 String? get datePickerMinuteSemanticsLabelZero => null;
930
931 @override
932 String get modalBarrierDismissLabel => 'Korar';
933
934 @override
935 String get pasteButtonLabel => 'Liƙa';
936
937 @override
938 String get postMeridiemAbbreviation => 'PM';
939
940 @override
941 String get searchTextFieldPlaceholderLabel => 'Bincika';
942
943 @override
944 String get selectAllButtonLabel => 'Zaɓi Duk';
945
946 @override
947 String get tabSemanticsLabelRaw => r'Tab $tabIndex cikin $tabCount';
948
949 @override
950 String? get timerPickerHourLabelFew => null;
951
952 @override
953 String? get timerPickerHourLabelMany => null;
954
955 @override
956 String? get timerPickerHourLabelOne => 'awa';
957
958 @override
959 String get timerPickerHourLabelOther => 'awa';
960
961 @override
962 String? get timerPickerHourLabelTwo => null;
963
964 @override
965 String? get timerPickerHourLabelZero => null;
966
967 @override
968 String? get timerPickerMinuteLabelFew => null;
969
970 @override
971 String? get timerPickerMinuteLabelMany => null;
972
973 @override
974 String? get timerPickerMinuteLabelOne => 'minti.';
975
976 @override
977 String get timerPickerMinuteLabelOther => 'minti.';
978
979 @override
980 String? get timerPickerMinuteLabelTwo => null;
981
982 @override
983 String? get timerPickerMinuteLabelZero => null;
984
985 @override
986 String? get timerPickerSecondLabelFew => null;
987
988 @override
989 String? get timerPickerSecondLabelMany => null;
990
991 @override
992 String? get timerPickerSecondLabelOne => 'dakika.';
993
994 @override
995 String get timerPickerSecondLabelOther => 'dakika.';
996
997 @override
998 String? get timerPickerSecondLabelTwo => null;
999
1000 @override
1001 String? get timerPickerSecondLabelZero => null;
1002
1003 @override
1004 String get todayLabel => 'Yau';
1005
1006 static const LocalizationsDelegate<CupertinoLocalizations> delegate =
1007 _HaCupertinoLocalizationsDelegate();
1008
1009 @override
1010 String get noSpellCheckReplacementsLabel => "";
1011
1012 @override
1013 // TODO: implement clearButtonLabel
1014 String get clearButtonLabel => "clearButtonLabel";
1015
1016 @override
1017 // TODO: implement lookUpButtonLabel
1018 String get lookUpButtonLabel => "lookUpButtonLabel";
1019
1020 @override
1021 // TODO: implement menuDismissLabel
1022 String get menuDismissLabel => "menuDismissLabel";
1023
1024 @override
1025 // TODO: implement searchWebButtonLabel
1026 String get searchWebButtonLabel => "searchWebButtonLabel";
1027
1028 @override
1029 // TODO: implement shareButtonLabel
1030 String get shareButtonLabel => "shareButtonLabel";
1031
1032 @override
1033 // TODO: implement backButtonLabel
1034 String get backButtonLabel => "backButtonLabel";
1035
1036 @override
1037 // TODO: implement cancelButtonLabel
1038 String get cancelButtonLabel => "cancelButtonLabel";
1039
1040 @override
1041 String get collapsedHint => "collapsedHint";
1042
1043 @override
1044 String get expandedHint => "expandedHint";
1045
1046 @override
1047 String get expansionTileCollapsedHint => "expansionTileCollapsedHint";
1048
1049 @override
1050 String get expansionTileCollapsedTapHint => "expansionTileCollapsedTapHint";
1051
1052 @override
1053 String get expansionTileExpandedHint => "expansionTileExpandedHint";
1054
1055 @override
1056 String get expansionTileExpandedTapHint => "expansionTileExpandedTapHint";
1057 }