Unverified Commit 65550d0f authored by Tonic Artos's avatar Tonic Artos Committed by GitHub

New license page. (#57588)

This is a PR addressing #57226 - Proposal: New UI for Licenses Page.

This PR replaces the previous single panel license page with one that uses a master/detail flow (MDFlow) to display packages and their respective licenses.

The License Page API remains unchanged. The logic for processing the license data is kept largely the same. This PR changes how the licenses are displayed, by introducing a responsive UI using the master/detail UI pattern. For now I am calling it Master Detail Flow, or MDFlow.

MDFlow manifests as two layouts depending on the screen size. On small and medium displays, as determined by the breakpoints given by the Material Design Spec, MDFlow utilises a nested layout. On large displays, MDFlow uses a two panel (lateral) layout. MDFlow is implemented in this PR using a Navigator for the nested layout, and a Stack for the lateral layout. The master and detail views are built using builders. For the interactive component, detail pages are requested from the master view using a proxy obtained by a widget lookup on the build context; MasterDetailFlow.of(context).
parent 15a28159
...@@ -122,6 +122,9 @@ abstract class MaterialLocalizations { ...@@ -122,6 +122,9 @@ abstract class MaterialLocalizations {
/// Title for the [LicensePage] widget. /// Title for the [LicensePage] widget.
String get licensesPageTitle; String get licensesPageTitle;
/// Subtitle for a package in the [LicensePage] widget.
String licensesPackageDetailText(int licenseCount);
/// Title for the [PaginatedDataTable]'s row info footer. /// Title for the [PaginatedDataTable]'s row info footer.
String pageRowsInfoTitle(int firstRow, int lastRow, int rowCount, bool rowCountIsApproximate); String pageRowsInfoTitle(int firstRow, int lastRow, int rowCount, bool rowCountIsApproximate);
...@@ -860,6 +863,17 @@ class DefaultMaterialLocalizations implements MaterialLocalizations { ...@@ -860,6 +863,17 @@ class DefaultMaterialLocalizations implements MaterialLocalizations {
@override @override
String get licensesPageTitle => 'Licenses'; String get licensesPageTitle => 'Licenses';
@override
String licensesPackageDetailText(int licenseCount) {
assert (licenseCount >= 1);
switch (licenseCount) {
case 1:
return '1 license';
default:
return '$licenseCount licenses';
}
}
@override @override
String pageRowsInfoTitle(int firstRow, int lastRow, int rowCount, bool rowCountIsApproximate) { String pageRowsInfoTitle(int firstRow, int lastRow, int rowCount, bool rowCountIsApproximate) {
return rowCountIsApproximate return rowCountIsApproximate
......
...@@ -92,6 +92,8 @@ void main() { ...@@ -92,6 +92,8 @@ void main() {
find.text('I am the very model of a modern major general.'), find.text('I am the very model of a modern major general.'),
findsOneWidget, findsOneWidget,
); );
await tester.tap(find.text('Pirate package '));
await tester.pumpAndSettle(const Duration(milliseconds: 100));
expect(find.text('Pirate license'), findsOneWidget); expect(find.text('Pirate license'), findsOneWidget);
}, skip: isBrowser); // https://github.com/flutter/flutter/issues/54385 }, skip: isBrowser); // https://github.com/flutter/flutter/issues/54385
...@@ -136,9 +138,23 @@ void main() { ...@@ -136,9 +138,23 @@ void main() {
await tester.pumpAndSettle(); await tester.pumpAndSettle();
// Check for packages.
expect(find.text('AAA'), findsOneWidget); expect(find.text('AAA'), findsOneWidget);
expect(find.text('BBB'), findsOneWidget);
expect(find.text('Another package'), findsOneWidget); expect(find.text('Another package'), findsOneWidget);
// Check license is displayed after entering into license page for 'AAA'.
await tester.tap(find.text('AAA'));
await tester.pumpAndSettle(const Duration(milliseconds: 100));
expect(find.text('BBB'), findsOneWidget);
/// Go back to list of packages.
await tester.pageBack();
await tester.pumpAndSettle();
/// Check license is displayed after entering into license page for
/// 'Another package'.
await tester.tap(find.text('Another package'));
await tester.pumpAndSettle(const Duration(milliseconds: 100));
expect(find.text('Another license'), findsOneWidget); expect(find.text('Another license'), findsOneWidget);
}, skip: isBrowser); // https://github.com/flutter/flutter/issues/54385 }, skip: isBrowser); // https://github.com/flutter/flutter/issues/54385
...@@ -197,9 +213,24 @@ void main() { ...@@ -197,9 +213,24 @@ void main() {
find.text('I am the very model of a modern major general.'), find.text('I am the very model of a modern major general.'),
findsOneWidget, findsOneWidget,
); );
// Check for packages.
expect(find.text('AAA'), findsOneWidget); expect(find.text('AAA'), findsOneWidget);
expect(find.text('BBB'), findsOneWidget);
expect(find.text('Another package'), findsOneWidget); expect(find.text('Another package'), findsOneWidget);
// Check license is displayed after entering into license page for 'AAA'.
await tester.tap(find.text('AAA'));
await tester.pumpAndSettle(const Duration(milliseconds: 100));
expect(find.text('BBB'), findsOneWidget);
/// Go back to list of packages.
await tester.pageBack();
await tester.pumpAndSettle();
/// Check license is displayed after entering into license page for
/// 'Another package'.
await tester.tap(find.text('Another package'));
await tester.pumpAndSettle(const Duration(milliseconds: 100));
expect(find.text('Another license'), findsOneWidget); expect(find.text('Another license'), findsOneWidget);
}, skip: isBrowser); // https://github.com/flutter/flutter/issues/54385 }, skip: isBrowser); // https://github.com/flutter/flutter/issues/54385
...@@ -225,7 +256,12 @@ void main() { ...@@ -225,7 +256,12 @@ void main() {
await tester.pumpAndSettle(); await tester.pumpAndSettle();
expect(tester.getTopLeft(find.text('DEF')), const Offset(8.0 + safeareaPadding, 287.0)); // The position of the top left of app bar title should indicate whether
// the safe area is sufficiently respected.
expect(
tester.getTopLeft(find.text('Licenses')),
const Offset(16.0 + safeareaPadding, 18.0 + safeareaPadding),
);
}, skip: isBrowser); // https://github.com/flutter/flutter/issues/54385 }, skip: isBrowser); // https://github.com/flutter/flutter/issues/54385
testWidgets('LicensePage returns early if unmounted', (WidgetTester tester) async { testWidgets('LicensePage returns early if unmounted', (WidgetTester tester) async {
...@@ -250,7 +286,7 @@ void main() { ...@@ -250,7 +286,7 @@ void main() {
await tester.pumpAndSettle(); await tester.pumpAndSettle();
final FakeLicenseEntry licenseEntry = FakeLicenseEntry(); final FakeLicenseEntry licenseEntry = FakeLicenseEntry();
licenseCompleter.complete(licenseEntry); licenseCompleter.complete(licenseEntry);
expect(licenseEntry.paragraphsCalled, false); expect(licenseEntry.packagesCalled, false);
}); });
testWidgets('LicensePage returns late if unmounted', (WidgetTester tester) async { testWidgets('LicensePage returns late if unmounted', (WidgetTester tester) async {
...@@ -275,7 +311,7 @@ void main() { ...@@ -275,7 +311,7 @@ void main() {
); );
await tester.pumpAndSettle(); await tester.pumpAndSettle();
expect(licenseEntry.paragraphsCalled, true); expect(licenseEntry.packagesCalled, true);
}); });
testWidgets('LicensePage logic defaults to executable name for app name', (WidgetTester tester) async { testWidgets('LicensePage logic defaults to executable name for app name', (WidgetTester tester) async {
...@@ -524,16 +560,16 @@ void main() { ...@@ -524,16 +560,16 @@ void main() {
class FakeLicenseEntry extends LicenseEntry { class FakeLicenseEntry extends LicenseEntry {
FakeLicenseEntry(); FakeLicenseEntry();
bool get paragraphsCalled => _paragraphsCalled; bool get packagesCalled => _packagesCalled;
bool _paragraphsCalled = false; bool _packagesCalled = false;
@override @override
Iterable<String> packages = <String>[]; Iterable<LicenseParagraph> paragraphs = <LicenseParagraph>[];
@override @override
Iterable<LicenseParagraph> get paragraphs { Iterable<String> get packages {
_paragraphsCalled = true; _packagesCalled = true;
return <LicenseParagraph>[]; return <String>[];
} }
} }
......
...@@ -88,5 +88,13 @@ void main() { ...@@ -88,5 +88,13 @@ void main() {
expect(localizations.pageRowsInfoTitle(1, 10, 100, false).contains(r'$firstRow'), isFalse); expect(localizations.pageRowsInfoTitle(1, 10, 100, false).contains(r'$firstRow'), isFalse);
expect(localizations.pageRowsInfoTitle(1, 10, 100, false).contains(r'$lastRow'), isFalse); expect(localizations.pageRowsInfoTitle(1, 10, 100, false).contains(r'$lastRow'), isFalse);
expect(localizations.pageRowsInfoTitle(1, 10, 100, false).contains(r'$rowCount'), isFalse); expect(localizations.pageRowsInfoTitle(1, 10, 100, false).contains(r'$rowCount'), isFalse);
expect(() => localizations.licensesPackageDetailText(0), throwsAssertionError);
expect(localizations.licensesPackageDetailText(1), isNotNull);
expect(localizations.licensesPackageDetailText(2), isNotNull);
expect(localizations.licensesPackageDetailText(100), isNotNull);
expect(localizations.licensesPackageDetailText(1).contains(r'$licensesCount'), isFalse);
expect(localizations.licensesPackageDetailText(2).contains(r'$licensesCount'), isFalse);
expect(localizations.licensesPackageDetailText(100).contains(r'$licensesCount'), isFalse);
}); });
} }
...@@ -69,5 +69,7 @@ ...@@ -69,5 +69,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -69,5 +69,7 @@ ...@@ -69,5 +69,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -77,5 +77,7 @@ ...@@ -77,5 +77,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -69,5 +69,7 @@ ...@@ -69,5 +69,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -69,5 +69,7 @@ ...@@ -69,5 +69,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -73,5 +73,7 @@ ...@@ -73,5 +73,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -70,5 +70,7 @@ ...@@ -70,5 +70,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -69,5 +69,7 @@ ...@@ -69,5 +69,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -72,5 +72,7 @@ ...@@ -72,5 +72,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -70,5 +70,7 @@ ...@@ -70,5 +70,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -74,5 +74,7 @@ ...@@ -74,5 +74,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -70,5 +70,7 @@ ...@@ -70,5 +70,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -71,5 +71,7 @@ ...@@ -71,5 +71,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -70,5 +70,7 @@ ...@@ -70,5 +70,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -72,6 +72,13 @@ ...@@ -72,6 +72,13 @@
"description": "The title for the Flutter licenses page." "description": "The title for the Flutter licenses page."
}, },
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses",
"@licensesPackageDetailText": {
"description": "The subtitle and detail text for a package displayed on the Flutter licenses page. The value of $licenseCount is an integer which indicates the number of licenses the package has. A zero value is not allowed.",
"plural": "licenseCount"
},
"pageRowsInfoTitle": "$firstRow–$lastRow of $rowCount", "pageRowsInfoTitle": "$firstRow–$lastRow of $rowCount",
"@pageRowsInfoTitle": { "@pageRowsInfoTitle": {
"description": "The text shown in the footer of a paginated data table when the exact overall row count is known. This message describes an integer range where $firstRow is the index of the start of the range, $lastRow is the index of the end of the range, and $rowCount is the limit of the range. All values are greater than or equal to zero.", "description": "The text shown in the footer of a paginated data table when the exact overall row count is known. This message describes an integer range where $firstRow is the index of the start of the range, $lastRow is the index of the end of the range, and $rowCount is the limit of the range. All values are greater than or equal to zero.",
......
...@@ -19,6 +19,8 @@ ...@@ -19,6 +19,8 @@
"showMenuTooltip": "Show menu", "showMenuTooltip": "Show menu",
"aboutListTileTitle": "About $applicationName", "aboutListTileTitle": "About $applicationName",
"licensesPageTitle": "Licences", "licensesPageTitle": "Licences",
"licensesPackageDetailTextOne": "1 licence",
"licensesPackageDetailTextOther": "$licenseCount licences",
"pageRowsInfoTitle": "$firstRow–$lastRow of $rowCount", "pageRowsInfoTitle": "$firstRow–$lastRow of $rowCount",
"pageRowsInfoTitleApproximate": "$firstRow–$lastRow of about $rowCount", "pageRowsInfoTitleApproximate": "$firstRow–$lastRow of about $rowCount",
"rowsPerPageTitle": "Rows per page:", "rowsPerPageTitle": "Rows per page:",
......
...@@ -19,6 +19,8 @@ ...@@ -19,6 +19,8 @@
"showMenuTooltip": "Show menu", "showMenuTooltip": "Show menu",
"aboutListTileTitle": "About $applicationName", "aboutListTileTitle": "About $applicationName",
"licensesPageTitle": "Licences", "licensesPageTitle": "Licences",
"licensesPackageDetailTextOne": "1 licence",
"licensesPackageDetailTextOther": "$licenseCount licences",
"pageRowsInfoTitle": "$firstRow–$lastRow of $rowCount", "pageRowsInfoTitle": "$firstRow–$lastRow of $rowCount",
"pageRowsInfoTitleApproximate": "$firstRow–$lastRow of about $rowCount", "pageRowsInfoTitleApproximate": "$firstRow–$lastRow of about $rowCount",
"rowsPerPageTitle": "Rows per page:", "rowsPerPageTitle": "Rows per page:",
......
...@@ -19,6 +19,8 @@ ...@@ -19,6 +19,8 @@
"aboutListTileTitle": "About $applicationName", "aboutListTileTitle": "About $applicationName",
"backButtonTooltip": "Back", "backButtonTooltip": "Back",
"licensesPageTitle": "Licences", "licensesPageTitle": "Licences",
"licensesPackageDetailTextOne": "1 licence",
"licensesPackageDetailTextOther": "$licenseCount licences",
"okButtonLabel": "OK", "okButtonLabel": "OK",
"pasteButtonLabel": "PASTE", "pasteButtonLabel": "PASTE",
"previousMonthTooltip": "Previous month", "previousMonthTooltip": "Previous month",
......
...@@ -19,6 +19,8 @@ ...@@ -19,6 +19,8 @@
"aboutListTileTitle": "About $applicationName", "aboutListTileTitle": "About $applicationName",
"backButtonTooltip": "Back", "backButtonTooltip": "Back",
"licensesPageTitle": "Licences", "licensesPageTitle": "Licences",
"licensesPackageDetailTextOne": "1 licence",
"licensesPackageDetailTextOther": "$licenseCount licences",
"okButtonLabel": "OK", "okButtonLabel": "OK",
"pasteButtonLabel": "PASTE", "pasteButtonLabel": "PASTE",
"previousMonthTooltip": "Previous month", "previousMonthTooltip": "Previous month",
......
...@@ -19,6 +19,8 @@ ...@@ -19,6 +19,8 @@
"showMenuTooltip": "Show menu", "showMenuTooltip": "Show menu",
"aboutListTileTitle": "About $applicationName", "aboutListTileTitle": "About $applicationName",
"licensesPageTitle": "Licences", "licensesPageTitle": "Licences",
"licensesPackageDetailTextOne": "1 licence",
"licensesPackageDetailTextOther": "$licenseCount licences",
"pageRowsInfoTitle": "$firstRow–$lastRow of $rowCount", "pageRowsInfoTitle": "$firstRow–$lastRow of $rowCount",
"pageRowsInfoTitleApproximate": "$firstRow–$lastRow of about $rowCount", "pageRowsInfoTitleApproximate": "$firstRow–$lastRow of about $rowCount",
"rowsPerPageTitle": "Rows per page:", "rowsPerPageTitle": "Rows per page:",
......
...@@ -13,6 +13,8 @@ ...@@ -13,6 +13,8 @@
"showMenuTooltip": "Show menu", "showMenuTooltip": "Show menu",
"aboutListTileTitle": "About $applicationName", "aboutListTileTitle": "About $applicationName",
"licensesPageTitle": "Licences", "licensesPageTitle": "Licences",
"licensesPackageDetailTextOne": "1 licence",
"licensesPackageDetailTextOther": "$licenseCount licences",
"pageRowsInfoTitle": "$firstRow–$lastRow of $rowCount", "pageRowsInfoTitle": "$firstRow–$lastRow of $rowCount",
"pageRowsInfoTitleApproximate": "$firstRow–$lastRow of about $rowCount", "pageRowsInfoTitleApproximate": "$firstRow–$lastRow of about $rowCount",
"rowsPerPageTitle": "Rows per page:", "rowsPerPageTitle": "Rows per page:",
......
...@@ -19,6 +19,8 @@ ...@@ -19,6 +19,8 @@
"showMenuTooltip": "Show menu", "showMenuTooltip": "Show menu",
"aboutListTileTitle": "About $applicationName", "aboutListTileTitle": "About $applicationName",
"licensesPageTitle": "Licences", "licensesPageTitle": "Licences",
"licensesPackageDetailTextOne": "1 licence",
"licensesPackageDetailTextOther": "$licenseCount licences",
"pageRowsInfoTitle": "$firstRow–$lastRow of $rowCount", "pageRowsInfoTitle": "$firstRow–$lastRow of $rowCount",
"pageRowsInfoTitleApproximate": "$firstRow–$lastRow of about $rowCount", "pageRowsInfoTitleApproximate": "$firstRow–$lastRow of about $rowCount",
"rowsPerPageTitle": "Rows per page:", "rowsPerPageTitle": "Rows per page:",
......
...@@ -19,6 +19,8 @@ ...@@ -19,6 +19,8 @@
"aboutListTileTitle": "About $applicationName", "aboutListTileTitle": "About $applicationName",
"backButtonTooltip": "Back", "backButtonTooltip": "Back",
"licensesPageTitle": "Licences", "licensesPageTitle": "Licences",
"licensesPackageDetailTextOne": "1 licence",
"licensesPackageDetailTextOther": "$licenseCount licences",
"okButtonLabel": "OK", "okButtonLabel": "OK",
"pasteButtonLabel": "PASTE", "pasteButtonLabel": "PASTE",
"previousMonthTooltip": "Previous month", "previousMonthTooltip": "Previous month",
......
...@@ -71,5 +71,7 @@ ...@@ -71,5 +71,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -70,5 +70,7 @@ ...@@ -70,5 +70,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -69,5 +69,7 @@ ...@@ -69,5 +69,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -70,5 +70,7 @@ ...@@ -70,5 +70,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -70,5 +70,7 @@ ...@@ -70,5 +70,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -70,5 +70,7 @@ ...@@ -70,5 +70,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -71,5 +71,7 @@ ...@@ -71,5 +71,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -71,5 +71,7 @@ ...@@ -71,5 +71,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -70,5 +70,7 @@ ...@@ -70,5 +70,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -69,5 +69,7 @@ ...@@ -69,5 +69,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -74,5 +74,7 @@ ...@@ -74,5 +74,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -70,5 +70,7 @@ ...@@ -70,5 +70,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -72,5 +72,7 @@ ...@@ -72,5 +72,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -70,5 +70,7 @@ ...@@ -70,5 +70,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -75,5 +75,7 @@ ...@@ -75,5 +75,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -70,5 +70,7 @@ ...@@ -70,5 +70,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -69,5 +69,7 @@ ...@@ -69,5 +69,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -70,5 +70,7 @@ ...@@ -70,5 +70,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -70,5 +70,7 @@ ...@@ -70,5 +70,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -69,5 +69,7 @@ ...@@ -69,5 +69,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -71,5 +71,7 @@ ...@@ -71,5 +71,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -70,5 +70,7 @@ ...@@ -70,5 +70,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -69,5 +69,7 @@ ...@@ -69,5 +69,7 @@
"datePickerHelpText": "\u0053\u0045\u004c\u0045\u0043\u0054\u0020\u0044\u0041\u0054\u0045", "datePickerHelpText": "\u0053\u0045\u004c\u0045\u0043\u0054\u0020\u0044\u0041\u0054\u0045",
"dateRangePickerHelpText": "\u0053\u0045\u004c\u0045\u0043\u0054\u0020\u0052\u0041\u004e\u0047\u0045", "dateRangePickerHelpText": "\u0053\u0045\u004c\u0045\u0043\u0054\u0020\u0052\u0041\u004e\u0047\u0045",
"calendarModeButtonLabel": "\u0053\u0077\u0069\u0074\u0063\u0068\u0020\u0074\u006f\u0020\u0063\u0061\u006c\u0065\u006e\u0064\u0061\u0072", "calendarModeButtonLabel": "\u0053\u0077\u0069\u0074\u0063\u0068\u0020\u0074\u006f\u0020\u0063\u0061\u006c\u0065\u006e\u0064\u0061\u0072",
"inputDateModeButtonLabel": "\u0053\u0077\u0069\u0074\u0063\u0068\u0020\u0074\u006f\u0020\u0069\u006e\u0070\u0075\u0074" "inputDateModeButtonLabel": "\u0053\u0077\u0069\u0074\u0063\u0068\u0020\u0074\u006f\u0020\u0069\u006e\u0070\u0075\u0074",
"licensesPackageDetailTextOne": "\u0031\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065",
"licensesPackageDetailTextOther": "\u0024\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0043\u006f\u0075\u006e\u0074\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0073"
} }
...@@ -70,5 +70,7 @@ ...@@ -70,5 +70,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -69,5 +69,7 @@ ...@@ -69,5 +69,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -69,5 +69,7 @@ ...@@ -69,5 +69,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -74,5 +74,7 @@ ...@@ -74,5 +74,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -71,5 +71,7 @@ ...@@ -71,5 +71,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -69,5 +69,7 @@ ...@@ -69,5 +69,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -69,5 +69,7 @@ ...@@ -69,5 +69,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -71,5 +71,7 @@ ...@@ -71,5 +71,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -71,5 +71,7 @@ ...@@ -71,5 +71,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -71,5 +71,7 @@ ...@@ -71,5 +71,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -69,5 +69,7 @@ ...@@ -69,5 +69,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -69,5 +69,7 @@ ...@@ -69,5 +69,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -70,5 +70,7 @@ ...@@ -70,5 +70,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -70,5 +70,7 @@ ...@@ -70,5 +70,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -69,5 +69,7 @@ ...@@ -69,5 +69,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -69,5 +69,7 @@ ...@@ -69,5 +69,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -74,5 +74,7 @@ ...@@ -74,5 +74,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -69,5 +69,7 @@ ...@@ -69,5 +69,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -72,5 +72,7 @@ ...@@ -72,5 +72,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -73,5 +73,7 @@ ...@@ -73,5 +73,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -75,5 +75,7 @@ ...@@ -75,5 +75,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -69,5 +69,7 @@ ...@@ -69,5 +69,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -74,5 +74,7 @@ ...@@ -74,5 +74,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -74,5 +74,7 @@ ...@@ -74,5 +74,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -69,5 +69,7 @@ ...@@ -69,5 +69,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -72,5 +72,7 @@ ...@@ -72,5 +72,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -70,5 +70,7 @@ ...@@ -70,5 +70,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -71,5 +71,7 @@ ...@@ -71,5 +71,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -71,5 +71,7 @@ ...@@ -71,5 +71,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -69,5 +69,7 @@ ...@@ -69,5 +69,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -70,5 +70,7 @@ ...@@ -70,5 +70,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -70,5 +70,7 @@ ...@@ -70,5 +70,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -70,5 +70,7 @@ ...@@ -70,5 +70,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -74,5 +74,7 @@ ...@@ -74,5 +74,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -70,5 +70,7 @@ ...@@ -70,5 +70,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -69,5 +69,7 @@ ...@@ -69,5 +69,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -70,5 +70,7 @@ ...@@ -70,5 +70,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -70,5 +70,7 @@ ...@@ -70,5 +70,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -69,5 +69,7 @@ ...@@ -69,5 +69,7 @@
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "SELECT DATE",
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "SELECT RANGE",
"calendarModeButtonLabel": "Switch to calendar", "calendarModeButtonLabel": "Switch to calendar",
"inputDateModeButtonLabel": "Switch to input" "inputDateModeButtonLabel": "Switch to input",
"licensesPackageDetailTextOne": "1 license",
"licensesPackageDetailTextOther": "$licenseCount licenses"
} }
...@@ -446,6 +446,115 @@ abstract class GlobalMaterialLocalizations implements MaterialLocalizations { ...@@ -446,6 +446,115 @@ abstract class GlobalMaterialLocalizations implements MaterialLocalizations {
return timeOfDayFormatRaw; return timeOfDayFormatRaw;
} }
/// The "zero" form of [licensesPackageDetailText].
///
/// This form is optional.
///
/// See also:
///
/// * [Intl.plural], to which this form is passed.
/// * [licensesPackageDetailTextZero], the "zero" form
/// * [licensesPackageDetailTextOne], the "one" form
/// * [licensesPackageDetailTextTwo], the "two" form
/// * [licensesPackageDetailTextFew], the "few" form
/// * [licensesPackageDetailTextMany], the "many" form
/// * [licensesPackageDetailTextOther], the "other" form
@protected
String get licensesPackageDetailTextZero => null;
/// The "one" form of [licensesPackageDetailText].
///
/// This form is optional.
///
/// See also:
///
/// * [licensesPackageDetailTextZero], the "zero" form
/// * [licensesPackageDetailTextOne], the "one" form
/// * [licensesPackageDetailTextTwo], the "two" form
/// * [licensesPackageDetailTextFew], the "few" form
/// * [licensesPackageDetailTextMany], the "many" form
/// * [licensesPackageDetailTextOther], the "other" form
@protected
String get licensesPackageDetailTextOne => null;
/// The "two" form of [licensesPackageDetailText].
///
/// This form is optional.
///
/// See also:
///
/// * [Intl.plural], to which this form is passed.
/// * [licensesPackageDetailTextZero], the "zero" form
/// * [licensesPackageDetailTextOne], the "one" form
/// * [licensesPackageDetailTextTwo], the "two" form
/// * [licensesPackageDetailTextFew], the "few" form
/// * [licensesPackageDetailTextMany], the "many" form
/// * [licensesPackageDetailTextOther], the "other" form
@protected
String get licensesPackageDetailTextTwo => null;
/// The "many" form of [licensesPackageDetailText].
///
/// This form is optional.
///
/// See also:
///
/// * [Intl.plural], to which this form is passed.
/// * [licensesPackageDetailTextZero], the "zero" form
/// * [licensesPackageDetailTextOne], the "one" form
/// * [licensesPackageDetailTextTwo], the "two" form
/// * [licensesPackageDetailTextFew], the "few" form
/// * [licensesPackageDetailTextMany], the "many" form
/// * [licensesPackageDetailTextOther], the "other" form
@protected
String get licensesPackageDetailTextMany => null;
/// The "few" form of [licensesPackageDetailText].
///
/// This form is optional.
///
/// See also:
///
/// * [Intl.plural], to which this form is passed.
/// * [licensesPackageDetailTextZero], the "zero" form
/// * [licensesPackageDetailTextOne], the "one" form
/// * [licensesPackageDetailTextTwo], the "two" form
/// * [licensesPackageDetailTextFew], the "few" form
/// * [licensesPackageDetailTextMany], the "many" form
/// * [licensesPackageDetailTextOther], the "other" form
@protected
String get licensesPackageDetailTextFew => null;
/// The "other" form of [licensesPackageDetailText].
///
/// This form is required.
///
/// See also:
///
/// * [Intl.plural], to which this form is passed.
/// * [licensesPackageDetailTextZero], the "zero" form
/// * [licensesPackageDetailTextOne], the "one" form
/// * [licensesPackageDetailTextTwo], the "two" form
/// * [licensesPackageDetailTextFew], the "few" form
/// * [licensesPackageDetailTextMany], the "many" form
/// * [licensesPackageDetailTextOther], the "other" form
@protected
String get licensesPackageDetailTextOther;
@override
String licensesPackageDetailText(int licenseCount) {
return intl.Intl.pluralLogic(
licenseCount,
zero: licensesPackageDetailTextZero,
one: licensesPackageDetailTextOne,
two: licensesPackageDetailTextTwo,
many: licensesPackageDetailTextMany,
few: licensesPackageDetailTextFew,
other: licensesPackageDetailTextOther,
locale: _localeName,
).replaceFirst(r'$licenseCount', formatDecimal(licenseCount));
}
/// The "zero" form of [remainingTextFieldCharacterCount]. /// The "zero" form of [remainingTextFieldCharacterCount].
/// ///
/// This form is required. /// This form is required.
......
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