Unverified Commit 2b498567 authored by Shi-Hao Hong's avatar Shi-Hao Hong Committed by GitHub

Sort Localization generation output (#44743)

* Sort Localization generation output

- When creating locales that were assumed from existing locales, the
file that is used is non-deterministic. This adds a sort to the iterator
to ensure that the same existing locale is used to generate the assumed
locale
- When generating material, cupertino and date localizations, the generated getters were not sorted. This
introduces an alphabetic sort

* remove main.dart.snapshot
parent d39e2bb7
......@@ -99,7 +99,7 @@ String generateArbBasedLocalizationSubclasses({
}
languageToLocales[locale.languageCode] ??= <LocaleInfo>[];
languageToLocales[locale.languageCode].add(locale);
allResourceIdentifiers.addAll(localeToResources[locale].keys);
allResourceIdentifiers.addAll(localeToResources[locale].keys.toList()..sort());
}
// We generate one class per supported language (e.g.
......@@ -155,7 +155,7 @@ String generateArbBasedLocalizationSubclasses({
));
output.writeln(generateConstructor(scriptBaseLocale));
final Map<String, String> scriptResources = localeToResources[scriptBaseLocale];
for (String key in scriptResources.keys) {
for (String key in scriptResources.keys.toList()..sort()) {
if (languageResources[key] == scriptResources[key])
continue;
final Map<String, dynamic> attributes = localeToResourceAttributes[canonicalLocale][key];
......
......@@ -12,6 +12,10 @@ import 'package:meta/meta.dart';
typedef HeaderGenerator = String Function(String regenerateInstructions);
typedef ConstructorGenerator = String Function(LocaleInfo locale);
int sortFilesByPath (FileSystemEntity a, FileSystemEntity b) {
return a.path.compareTo(b.path);
}
/// Simple data class to hold parsed locale. Does not promise validity of any data.
class LocaleInfo implements Comparable<LocaleInfo> {
LocaleInfo({
......@@ -153,7 +157,7 @@ void loadMatchingArbsIntoBundleMaps({
/// overwrite the existing assumed data.
final Set<LocaleInfo> assumedLocales = <LocaleInfo>{};
for (FileSystemEntity entity in directory.listSync()) {
for (FileSystemEntity entity in directory.listSync().toList()..sort(sortFilesByPath)) {
final String entityPath = entity.path;
if (FileSystemEntity.isFileSync(entityPath) && filenamePattern.hasMatch(entityPath)) {
final String localeString = filenamePattern.firstMatch(entityPath)[1];
......
......@@ -10685,19 +10685,19 @@ class CupertinoLocalizationSrLatn extends CupertinoLocalizationSr {
);
@override
String get datePickerHourSemanticsLabelFew => r'$hour sata';
String get alertDialogLabel => r'Obaveštenje';
@override
String get datePickerMinuteSemanticsLabelFew => r'$minute minuta';
String get anteMeridiemAbbreviation => r'pre podne';
@override
String get timerPickerHourLabelFew => r'sata';
String get copyButtonLabel => r'Kopiraj';
@override
String get timerPickerMinuteLabelFew => r'min';
String get cutButtonLabel => r'Iseci';
@override
String get timerPickerSecondLabelFew => r'sek';
String get datePickerHourSemanticsLabelFew => r'$hour sata';
@override
String get datePickerHourSemanticsLabelOne => r'$hour sat';
......@@ -10705,6 +10705,9 @@ class CupertinoLocalizationSrLatn extends CupertinoLocalizationSr {
@override
String get datePickerHourSemanticsLabelOther => r'$hour sati';
@override
String get datePickerMinuteSemanticsLabelFew => r'$minute minuta';
@override
String get datePickerMinuteSemanticsLabelOne => r'1 minut';
......@@ -10712,16 +10715,16 @@ class CupertinoLocalizationSrLatn extends CupertinoLocalizationSr {
String get datePickerMinuteSemanticsLabelOther => r'$minute minuta';
@override
String get anteMeridiemAbbreviation => r'pre podne';
String get pasteButtonLabel => r'Nalepi';
@override
String get postMeridiemAbbreviation => r'po podne';
@override
String get todayLabel => r'Danas';
String get selectAllButtonLabel => r'Izaberi sve';
@override
String get alertDialogLabel => r'Obaveštenje';
String get timerPickerHourLabelFew => r'sata';
@override
String get timerPickerHourLabelOne => r'sat';
......@@ -10730,28 +10733,25 @@ class CupertinoLocalizationSrLatn extends CupertinoLocalizationSr {
String get timerPickerHourLabelOther => r'sati';
@override
String get timerPickerMinuteLabelOne => r'min';
@override
String get timerPickerMinuteLabelOther => r'min';
String get timerPickerMinuteLabelFew => r'min';
@override
String get timerPickerSecondLabelOne => r'sek';
String get timerPickerMinuteLabelOne => r'min';
@override
String get timerPickerSecondLabelOther => r'sek';
String get timerPickerMinuteLabelOther => r'min';
@override
String get cutButtonLabel => r'Iseci';
String get timerPickerSecondLabelFew => r'sek';
@override
String get copyButtonLabel => r'Kopiraj';
String get timerPickerSecondLabelOne => r'sek';
@override
String get pasteButtonLabel => r'Nalepi';
String get timerPickerSecondLabelOther => r'sek';
@override
String get selectAllButtonLabel => r'Izaberi sve';
String get todayLabel => r'Danas';
}
/// The translations for Swedish (`sv`).
......@@ -12586,46 +12586,46 @@ class CupertinoLocalizationZhHant extends CupertinoLocalizationZh {
);
@override
String get datePickerHourSemanticsLabelOne => r'$hour 點';
String get alertDialogLabel => r'通知';
@override
String get datePickerHourSemanticsLabelOther => r'$hour 點';
String get copyButtonLabel => r'複製';
@override
String get datePickerMinuteSemanticsLabelOne => r'1 分鐘';
String get cutButtonLabel => r'剪下';
@override
String get datePickerMinuteSemanticsLabelOther => r'$minute 分鐘';
String get datePickerDateTimeOrderString => r'date_dayPeriod_time';
@override
String get datePickerDateTimeOrderString => r'date_dayPeriod_time';
String get datePickerHourSemanticsLabelOne => r'$hour 點';
@override
String get alertDialogLabel => r'通知';
String get datePickerHourSemanticsLabelOther => r'$hour 點';
@override
String get timerPickerHourLabelOne => r'小時';
String get datePickerMinuteSemanticsLabelOne => r'1 分鐘';
@override
String get timerPickerHourLabelOther => r'小時';
String get datePickerMinuteSemanticsLabelOther => r'$minute 分鐘';
@override
String get timerPickerMinuteLabelOne => r'分鐘';
String get pasteButtonLabel => r'貼上';
@override
String get timerPickerMinuteLabelOther => r'分鐘';
String get selectAllButtonLabel => r'全選';
@override
String get cutButtonLabel => r'剪下';
String get timerPickerHourLabelOne => r'小時';
@override
String get copyButtonLabel => r'複製';
String get timerPickerHourLabelOther => r'小時';
@override
String get pasteButtonLabel => r'貼上';
String get timerPickerMinuteLabelOne => r'分鐘';
@override
String get selectAllButtonLabel => r'全選';
String get timerPickerMinuteLabelOther => r'分鐘';
}
/// The translations for Chinese, as used in Hong Kong, using the Han script (`zh_Hant_HK`).
......
......@@ -15255,160 +15255,160 @@ class MaterialLocalizationSrLatn extends MaterialLocalizationSr {
);
@override
String get remainingTextFieldCharacterCountFew => r'Preostala su $remainingCount znaka';
String get aboutListTileTitleRaw => r'O aplikaciji $applicationName';
@override
String get selectedRowCountTitleFew => r'Izabrane su $selectedRowCount stavke';
String get alertDialogLabel => r'Obaveštenje';
@override
String get openAppDrawerTooltip => r'Otvorite meni za navigaciju';
String get anteMeridiemAbbreviation => r'pre podne';
@override
String get backButtonTooltip => r'Nazad';
@override
String get closeButtonTooltip => r'Zatvorite';
String get cancelButtonLabel => r'OTKAŽI';
@override
String get deleteButtonTooltip => r'Izbrišite';
String get closeButtonLabel => r'ZATVORI';
@override
String get nextMonthTooltip => r'Sledeći mesec';
String get closeButtonTooltip => r'Zatvorite';
@override
String get previousMonthTooltip => r'Prethodni mesec';
String get collapsedIconTapHint => r'Proširi';
@override
String get nextPageTooltip => r'Sledeća stranica';
String get continueButtonLabel => r'NASTAVI';
@override
String get previousPageTooltip => r'Prethodna stranica';
String get copyButtonLabel => r'KOPIRAJ';
@override
String get showMenuTooltip => r'Prikaži meni';
String get cutButtonLabel => r'ISECI';
@override
String get aboutListTileTitleRaw => r'O aplikaciji $applicationName';
String get deleteButtonTooltip => r'Izbrišite';
@override
String get licensesPageTitle => r'Licence';
String get dialogLabel => r'Dijalog';
@override
String get pageRowsInfoTitleRaw => r'$firstRow – $lastRow od $rowCount';
String get drawerLabel => r'Meni za navigaciju';
@override
String get pageRowsInfoTitleApproximateRaw => r'$firstRow – $lastRow od približno $rowCount';
String get expandedIconTapHint => r'Skupi';
@override
String get rowsPerPageTitle => r'Redova po stranici:';
String get hideAccountsLabel => r'Sakrij naloge';
@override
String get tabLabelRaw => r'$tabIndex. kartica od $tabCount';
String get licensesPageTitle => r'Licence';
@override
String get selectedRowCountTitleOne => r'Izabrana je 1 stavka';
String get modalBarrierDismissLabel => r'Odbaci';
@override
String get selectedRowCountTitleOther => r'Izabrano je $selectedRowCount stavki';
String get nextMonthTooltip => r'Sledeći mesec';
@override
String get cancelButtonLabel => r'OTKAŽI';
String get nextPageTooltip => r'Sledeća stranica';
@override
String get closeButtonLabel => r'ZATVORI';
String get okButtonLabel => r'Potvrdi';
@override
String get continueButtonLabel => r'NASTAVI';
String get openAppDrawerTooltip => r'Otvorite meni za navigaciju';
@override
String get copyButtonLabel => r'KOPIRAJ';
String get pageRowsInfoTitleRaw => r'$firstRow – $lastRow od $rowCount';
@override
String get cutButtonLabel => r'ISECI';
String get pageRowsInfoTitleApproximateRaw => r'$firstRow – $lastRow od približno $rowCount';
@override
String get okButtonLabel => r'Potvrdi';
String get pasteButtonLabel => r'NALEPI';
@override
String get pasteButtonLabel => r'NALEPI';
String get popupMenuLabel => r'Iskačući meni';
@override
String get selectAllButtonLabel => r'IZABERI SVE';
String get postMeridiemAbbreviation => r'po podne';
@override
String get viewLicensesButtonLabel => r'PRIKAŽI LICENCE';
String get previousMonthTooltip => r'Prethodni mesec';
@override
String get anteMeridiemAbbreviation => r'pre podne';
String get previousPageTooltip => r'Prethodna stranica';
@override
String get postMeridiemAbbreviation => r'po podne';
String get refreshIndicatorSemanticLabel => r'Osveži';
@override
String get timePickerHourModeAnnouncement => r'Izaberite sate';
String get remainingTextFieldCharacterCountFew => r'Preostala su $remainingCount znaka';
@override
String get timePickerMinuteModeAnnouncement => r'Izaberite minute';
String get remainingTextFieldCharacterCountOne => r'Preostao je 1 znak';
@override
String get modalBarrierDismissLabel => r'Odbaci';
String get remainingTextFieldCharacterCountOther => r'Preostalo je $remainingCount znakova';
@override
String get signedInLabel => r'Prijavljeni ste';
String get reorderItemDown => r'Pomerite nadole';
@override
String get hideAccountsLabel => r'Sakrij naloge';
String get reorderItemLeft => r'Pomerite ulevo';
@override
String get showAccountsLabel => r'Prikaži naloge';
String get reorderItemRight => r'Pomerite udesno';
@override
String get drawerLabel => r'Meni za navigaciju';
String get reorderItemToEnd => r'Pomerite na kraj';
@override
String get popupMenuLabel => r'Iskačući meni';
String get reorderItemToStart => r'Pomerite na početak';
@override
String get dialogLabel => r'Dijalog';
String get reorderItemUp => r'Pomerite nagore';
@override
String get alertDialogLabel => r'Obaveštenje';
String get rowsPerPageTitle => r'Redova po stranici:';
@override
String get searchFieldLabel => r'Pretražite';
@override
String get reorderItemToStart => r'Pomerite na početak';
String get selectAllButtonLabel => r'IZABERI SVE';
@override
String get reorderItemToEnd => r'Pomerite na kraj';
String get selectedRowCountTitleFew => r'Izabrane su $selectedRowCount stavke';
@override
String get reorderItemUp => r'Pomerite nagore';
String get selectedRowCountTitleOne => r'Izabrana je 1 stavka';
@override
String get reorderItemDown => r'Pomerite nadole';
String get selectedRowCountTitleOther => r'Izabrano je $selectedRowCount stavki';
@override
String get reorderItemLeft => r'Pomerite ulevo';
String get showAccountsLabel => r'Prikaži naloge';
@override
String get reorderItemRight => r'Pomerite udesno';
String get showMenuTooltip => r'Prikaži meni';
@override
String get expandedIconTapHint => r'Skupi';
String get signedInLabel => r'Prijavljeni ste';
@override
String get collapsedIconTapHint => r'Proširi';
String get tabLabelRaw => r'$tabIndex. kartica od $tabCount';
@override
String get remainingTextFieldCharacterCountOne => r'Preostao je 1 znak';
String get timePickerHourModeAnnouncement => r'Izaberite sate';
@override
String get remainingTextFieldCharacterCountOther => r'Preostalo je $remainingCount znakova';
String get timePickerMinuteModeAnnouncement => r'Izaberite minute';
@override
String get refreshIndicatorSemanticLabel => r'Osveži';
String get viewLicensesButtonLabel => r'PRIKAŽI LICENCE';
}
/// The translations for Swedish (`sv`).
......@@ -17907,142 +17907,142 @@ class MaterialLocalizationZhHant extends MaterialLocalizationZh {
);
@override
String get tabLabelRaw => r'第 $tabIndex 個分頁 (共 $tabCount 個)';
String get aboutListTileTitleRaw => r'關於$applicationName';
@override
String get showAccountsLabel => r'顯示帳戶';
String get alertDialogLabel => r'通知';
@override
String get modalBarrierDismissLabel => r'關閉';
String get closeButtonLabel => r'關閉';
@override
String get hideAccountsLabel => r'隱藏帳戶';
String get closeButtonTooltip => r'關閉';
@override
String get signedInLabel => r'已登入帳戶';
String get collapsedIconTapHint => r'展開';
@override
String get openAppDrawerTooltip => r'開啟導覽選單';
String get continueButtonLabel => r'繼續';
@override
String get closeButtonTooltip => r'關閉';
String get copyButtonLabel => r'複製';
@override
String get deleteButtonTooltip => r'刪除';
String get cutButtonLabel => r'剪下';
@override
String get nextMonthTooltip => r'下個月';
String get deleteButtonTooltip => r'刪除';
@override
String get previousMonthTooltip => r'上個月';
String get dialogLabel => r'對話方塊';
@override
String get nextPageTooltip => r'下一頁';
String get drawerLabel => r'導覽選單';
@override
String get previousPageTooltip => r'上一頁';
String get expandedIconTapHint => r'收合';
@override
String get showMenuTooltip => r'顯示選單';
String get hideAccountsLabel => r'隱藏帳戶';
@override
String get aboutListTileTitleRaw => r'關於「$applicationName」';
String get licensesPageTitle => r'授權';
@override
String get licensesPageTitle => r'授權';
String get modalBarrierDismissLabel => r'拒絕';
@override
String get pageRowsInfoTitleRaw => r'第 $firstRow - $lastRow 列 (總共 $rowCount 列)';
String get nextMonthTooltip => r'下個月';
@override
String get pageRowsInfoTitleApproximateRaw => r'第 $firstRow - $lastRow 列 (總共約 $rowCount 列)';
String get nextPageTooltip => r'下一頁';
@override
String get rowsPerPageTitle => r'每頁列數:';
String get okButtonLabel => r'確定';
@override
String get selectedRowCountTitleOne => r'已選取 1 個項目';
String get openAppDrawerTooltip => r'開啟導覽選單';
@override
String get selectedRowCountTitleOther => r'已選取 $selectedRowCount 個項目';
String get pageRowsInfoTitleRaw => r'第 $firstRow 至 $lastRow 列,共 $rowCount 列';
@override
String get closeButtonLabel => r'關閉';
String get pageRowsInfoTitleApproximateRaw => r'第 $firstRow 至 $lastRow 列,共約 $rowCount 列';
@override
String get continueButtonLabel => r'繼續';
String get pasteButtonLabel => r'貼上';
@override
String get copyButtonLabel => r'複製';
String get popupMenuLabel => r'彈出式選單';
@override
String get cutButtonLabel => r'剪下';
String get previousMonthTooltip => r'上個月';
@override
String get okButtonLabel => r'確定';
String get previousPageTooltip => r'上一頁';
@override
String get pasteButtonLabel => r'貼上';
String get refreshIndicatorSemanticLabel => r'重新整理';
@override
String get selectAllButtonLabel => r'全選';
String get remainingTextFieldCharacterCountOne => r'尚餘 1 個字元';
@override
String get viewLicensesButtonLabel => r'查看授權';
String get remainingTextFieldCharacterCountOther => r'尚餘 $remainingCount 個字元';
@override
String get timePickerHourModeAnnouncement => r'選取小時數';
String get reorderItemDown => r'向下移';
@override
String get timePickerMinuteModeAnnouncement => r'選取分鐘數';
String get reorderItemLeft => r'向左移';
@override
String get drawerLabel => r'導覽選單';
String get reorderItemRight => r'向右移';
@override
String get popupMenuLabel => r'彈出式選單';
String get reorderItemToEnd => r'移到最後';
@override
String get dialogLabel => r'對話方塊';
String get reorderItemToStart => r'移到開頭';
@override
String get alertDialogLabel => r'快訊';
String get reorderItemUp => r'向上移';
@override
String get searchFieldLabel => r'搜尋';
String get rowsPerPageTitle => r'每頁列數:';
@override
String get reorderItemToStart => r'移至開頭';
String get searchFieldLabel => r'搜尋';
@override
String get reorderItemToEnd => r'移至結尾';
String get selectAllButtonLabel => r'全選';
@override
String get reorderItemUp => r'向上移';
String get selectedRowCountTitleOne => r'已選取 1 個項目';
@override
String get reorderItemDown => r'向下移';
String get selectedRowCountTitleOther => r'已選取 $selectedRowCount 個項目';
@override
String get reorderItemLeft => r'向左移';
String get showAccountsLabel => r'顯示帳戶';
@override
String get reorderItemRight => r'向右移';
String get showMenuTooltip => r'顯示選單';
@override
String get expandedIconTapHint => r'收合';
String get signedInLabel => r'已登入';
@override
String get collapsedIconTapHint => r'展開';
String get tabLabelRaw => r'第 $tabIndex 個標籤,總共 $tabCount 個';
@override
String get remainingTextFieldCharacterCountOne => r'還可輸入 1 個字元';
String get timePickerHourModeAnnouncement => r'揀選小時';
@override
String get remainingTextFieldCharacterCountOther => r'還可輸入 $remainingCount 個字元';
String get timePickerMinuteModeAnnouncement => r'揀選分鐘';
@override
String get refreshIndicatorSemanticLabel => r'重新整理';
String get viewLicensesButtonLabel => r'查看授權';
}
/// The translations for Chinese, as used in Hong Kong, using the Han script (`zh_Hant_HK`).
......@@ -18067,69 +18067,69 @@ class MaterialLocalizationZhHantHk extends MaterialLocalizationZhHant {
decimalFormat: decimalFormat,
twoDigitZeroPaddedFormat: twoDigitZeroPaddedFormat,
);
}
@override
String get tabLabelRaw => r'第 $tabIndex 個標籤,總共 $tabCount 個';
/// The translations for Chinese, as used in Taiwan, using the Han script (`zh_Hant_TW`).
class MaterialLocalizationZhHantTw extends MaterialLocalizationZhHant {
/// Create an instance of the translation bundle for Chinese, as used in Taiwan, using the Han script.
///
/// For details on the meaning of the arguments, see [GlobalMaterialLocalizations].
const MaterialLocalizationZhHantTw({
String localeName = 'zh_Hant_TW',
@required intl.DateFormat fullYearFormat,
@required intl.DateFormat mediumDateFormat,
@required intl.DateFormat longDateFormat,
@required intl.DateFormat yearMonthFormat,
@required intl.NumberFormat decimalFormat,
@required intl.NumberFormat twoDigitZeroPaddedFormat,
}) : super(
localeName: localeName,
fullYearFormat: fullYearFormat,
mediumDateFormat: mediumDateFormat,
longDateFormat: longDateFormat,
yearMonthFormat: yearMonthFormat,
decimalFormat: decimalFormat,
twoDigitZeroPaddedFormat: twoDigitZeroPaddedFormat,
);
@override
String get modalBarrierDismissLabel => r'拒絕';
String get tabLabelRaw => r'第 $tabIndex 個分頁 (共 $tabCount 個)';
@override
String get signedInLabel => r'已登入';
String get modalBarrierDismissLabel => r'關閉';
@override
String get aboutListTileTitleRaw => r'關於$applicationName';
String get signedInLabel => r'已登入帳戶';
@override
String get pageRowsInfoTitleRaw => r'第 $firstRow 至 $lastRow 列,共 $rowCount 列';
String get aboutListTileTitleRaw => r'關於「$applicationName」';
@override
String get pageRowsInfoTitleApproximateRaw => r'第 $firstRow 至 $lastRow 列,共約 $rowCount 列';
String get pageRowsInfoTitleRaw => r'第 $firstRow - $lastRow 列 (總共 $rowCount 列)';
@override
String get timePickerHourModeAnnouncement => r'揀選小時';
String get pageRowsInfoTitleApproximateRaw => r'第 $firstRow - $lastRow 列 (總共約 $rowCount 列)';
@override
String get timePickerMinuteModeAnnouncement => r'揀選分鐘';
String get timePickerHourModeAnnouncement => r'選取小時數';
@override
String get alertDialogLabel => r'通知';
String get timePickerMinuteModeAnnouncement => r'選取分鐘數';
@override
String get reorderItemToStart => r'移到開頭';
String get alertDialogLabel => r'快訊';
@override
String get reorderItemToEnd => r'移到最後';
String get reorderItemToStart => r'移至開頭';
@override
String get remainingTextFieldCharacterCountOne => r'尚餘 1 個字元';
String get reorderItemToEnd => r'移至結尾';
@override
String get remainingTextFieldCharacterCountOther => r'尚餘 $remainingCount 個字元';
}
String get remainingTextFieldCharacterCountOne => r'還可輸入 1 個字元';
/// The translations for Chinese, as used in Taiwan, using the Han script (`zh_Hant_TW`).
class MaterialLocalizationZhHantTw extends MaterialLocalizationZhHant {
/// Create an instance of the translation bundle for Chinese, as used in Taiwan, using the Han script.
///
/// For details on the meaning of the arguments, see [GlobalMaterialLocalizations].
const MaterialLocalizationZhHantTw({
String localeName = 'zh_Hant_TW',
@required intl.DateFormat fullYearFormat,
@required intl.DateFormat mediumDateFormat,
@required intl.DateFormat longDateFormat,
@required intl.DateFormat yearMonthFormat,
@required intl.NumberFormat decimalFormat,
@required intl.NumberFormat twoDigitZeroPaddedFormat,
}) : super(
localeName: localeName,
fullYearFormat: fullYearFormat,
mediumDateFormat: mediumDateFormat,
longDateFormat: longDateFormat,
yearMonthFormat: yearMonthFormat,
decimalFormat: decimalFormat,
twoDigitZeroPaddedFormat: twoDigitZeroPaddedFormat,
);
@override
String get remainingTextFieldCharacterCountOther => r'還可輸入 $remainingCount 個字元';
}
/// The translations for Zulu (`zu`).
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment