Unverified Commit 700de09f authored by Tae Hyung Kim's avatar Tae Hyung Kim Committed by GitHub

Change button and label text to sentence case for Material 3 (#115187)

* init

* upper case only when material 2

* fix test

* fix test

* fix tests again

* Add all tests

* analyze"

* fix stepper
parent 136b46ba
...@@ -318,22 +318,24 @@ class AboutDialog extends StatelessWidget { ...@@ -318,22 +318,24 @@ class AboutDialog extends StatelessWidget {
final String name = applicationName ?? _defaultApplicationName(context); final String name = applicationName ?? _defaultApplicationName(context);
final String version = applicationVersion ?? _defaultApplicationVersion(context); final String version = applicationVersion ?? _defaultApplicationVersion(context);
final Widget? icon = applicationIcon ?? _defaultApplicationIcon(context); final Widget? icon = applicationIcon ?? _defaultApplicationIcon(context);
final ThemeData themeData = Theme.of(context);
final MaterialLocalizations localizations = MaterialLocalizations.of(context);
return AlertDialog( return AlertDialog(
content: ListBody( content: ListBody(
children: <Widget>[ children: <Widget>[
Row( Row(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
if (icon != null) IconTheme(data: Theme.of(context).iconTheme, child: icon), if (icon != null) IconTheme(data: themeData.iconTheme, child: icon),
Expanded( Expanded(
child: Padding( child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 24.0), padding: const EdgeInsets.symmetric(horizontal: 24.0),
child: ListBody( child: ListBody(
children: <Widget>[ children: <Widget>[
Text(name, style: Theme.of(context).textTheme.headlineSmall), Text(name, style: themeData.textTheme.headlineSmall),
Text(version, style: Theme.of(context).textTheme.bodyMedium), Text(version, style: themeData.textTheme.bodyMedium),
const SizedBox(height: _textVerticalSeparation), const SizedBox(height: _textVerticalSeparation),
Text(applicationLegalese ?? '', style: Theme.of(context).textTheme.bodySmall), Text(applicationLegalese ?? '', style: themeData.textTheme.bodySmall),
], ],
), ),
), ),
...@@ -345,7 +347,11 @@ class AboutDialog extends StatelessWidget { ...@@ -345,7 +347,11 @@ class AboutDialog extends StatelessWidget {
), ),
actions: <Widget>[ actions: <Widget>[
TextButton( TextButton(
child: Text(MaterialLocalizations.of(context).viewLicensesButtonLabel), child: Text(
themeData.useMaterial3
? localizations.viewLicensesButtonLabel
: localizations.viewLicensesButtonLabel.toUpperCase()
),
onPressed: () { onPressed: () {
showLicensePage( showLicensePage(
context: context, context: context,
...@@ -357,7 +363,11 @@ class AboutDialog extends StatelessWidget { ...@@ -357,7 +363,11 @@ class AboutDialog extends StatelessWidget {
}, },
), ),
TextButton( TextButton(
child: Text(MaterialLocalizations.of(context).closeButtonLabel), child: Text(
themeData.useMaterial3
? localizations.closeButtonLabel
: localizations.closeButtonLabel.toUpperCase()
),
onPressed: () { onPressed: () {
Navigator.pop(context); Navigator.pop(context);
}, },
......
...@@ -479,7 +479,11 @@ class _DatePickerDialogState extends State<DatePickerDialog> with RestorationMix ...@@ -479,7 +479,11 @@ class _DatePickerDialogState extends State<DatePickerDialog> with RestorationMix
children: <Widget>[ children: <Widget>[
TextButton( TextButton(
onPressed: _handleCancel, onPressed: _handleCancel,
child: Text(widget.cancelText ?? localizations.cancelButtonLabel), child: Text(widget.cancelText ?? (
theme.useMaterial3
? localizations.cancelButtonLabel
: localizations.cancelButtonLabel.toUpperCase()
)),
), ),
TextButton( TextButton(
onPressed: _handleOk, onPressed: _handleOk,
...@@ -571,7 +575,11 @@ class _DatePickerDialogState extends State<DatePickerDialog> with RestorationMix ...@@ -571,7 +575,11 @@ class _DatePickerDialogState extends State<DatePickerDialog> with RestorationMix
} }
final Widget header = _DatePickerHeader( final Widget header = _DatePickerHeader(
helpText: widget.helpText ?? localizations.datePickerHelpText, helpText: widget.helpText ?? (
Theme.of(context).useMaterial3
? localizations.datePickerHelpText
: localizations.datePickerHelpText.toUpperCase()
),
titleText: dateText, titleText: dateText,
titleStyle: dateStyle, titleStyle: dateStyle,
orientation: orientation, orientation: orientation,
...@@ -1348,8 +1356,16 @@ class _DateRangePickerDialogState extends State<DateRangePickerDialog> with Rest ...@@ -1348,8 +1356,16 @@ class _DateRangePickerDialogState extends State<DateRangePickerDialog> with Rest
onPressed: _handleEntryModeToggle, onPressed: _handleEntryModeToggle,
) )
: null, : null,
confirmText: widget.saveText ?? localizations.saveButtonLabel, confirmText: widget.saveText ?? (
helpText: widget.helpText ?? localizations.dateRangePickerHelpText, Theme.of(context).useMaterial3
? localizations.saveButtonLabel
: localizations.saveButtonLabel.toUpperCase()
),
helpText: widget.helpText ?? (
Theme.of(context).useMaterial3
? localizations.dateRangePickerHelpText
: localizations.dateRangePickerHelpText.toUpperCase()
),
); );
size = mediaQuery.size; size = mediaQuery.size;
insetPadding = EdgeInsets.zero; insetPadding = EdgeInsets.zero;
...@@ -1406,8 +1422,16 @@ class _DateRangePickerDialogState extends State<DateRangePickerDialog> with Rest ...@@ -1406,8 +1422,16 @@ class _DateRangePickerDialogState extends State<DateRangePickerDialog> with Rest
) )
: null, : null,
confirmText: widget.confirmText ?? localizations.okButtonLabel, confirmText: widget.confirmText ?? localizations.okButtonLabel,
cancelText: widget.cancelText ?? localizations.cancelButtonLabel, cancelText: widget.cancelText ?? (
helpText: widget.helpText ?? localizations.dateRangePickerHelpText, Theme.of(context).useMaterial3
? localizations.cancelButtonLabel
: localizations.cancelButtonLabel.toUpperCase()
),
helpText: widget.helpText ?? (
Theme.of(context).useMaterial3
? localizations.dateRangePickerHelpText
: localizations.dateRangePickerHelpText.toUpperCase()
),
); );
final DialogTheme dialogTheme = Theme.of(context).dialogTheme; final DialogTheme dialogTheme = Theme.of(context).dialogTheme;
size = orientation == Orientation.portrait ? _inputPortraitDialogSize : _inputRangeLandscapeDialogSize; size = orientation == Orientation.portrait ? _inputPortraitDialogSize : _inputRangeLandscapeDialogSize;
...@@ -2613,7 +2637,11 @@ class _InputDateRangePickerDialog extends StatelessWidget { ...@@ -2613,7 +2637,11 @@ class _InputDateRangePickerDialog extends StatelessWidget {
: ''; : '';
final Widget header = _DatePickerHeader( final Widget header = _DatePickerHeader(
helpText: helpText ?? localizations.dateRangePickerHelpText, helpText: helpText ?? (
Theme.of(context).useMaterial3
? localizations.dateRangePickerHelpText
: localizations.dateRangePickerHelpText.toUpperCase()
),
titleText: dateText, titleText: dateText,
titleSemanticsLabel: semanticDateText, titleSemanticsLabel: semanticDateText,
titleStyle: dateStyle, titleStyle: dateStyle,
...@@ -2631,7 +2659,11 @@ class _InputDateRangePickerDialog extends StatelessWidget { ...@@ -2631,7 +2659,11 @@ class _InputDateRangePickerDialog extends StatelessWidget {
children: <Widget>[ children: <Widget>[
TextButton( TextButton(
onPressed: onCancel, onPressed: onCancel,
child: Text(cancelText ?? localizations.cancelButtonLabel), child: Text(cancelText ?? (
theme.useMaterial3
? localizations.cancelButtonLabel
: localizations.cancelButtonLabel.toUpperCase()
)),
), ),
TextButton( TextButton(
onPressed: onConfirm, onPressed: onConfirm,
......
...@@ -925,13 +925,13 @@ class DefaultMaterialLocalizations implements MaterialLocalizations { ...@@ -925,13 +925,13 @@ class DefaultMaterialLocalizations implements MaterialLocalizations {
String get dateOutOfRangeLabel => 'Out of range.'; String get dateOutOfRangeLabel => 'Out of range.';
@override @override
String get saveButtonLabel => 'SAVE'; String get saveButtonLabel => 'Save';
@override @override
String get datePickerHelpText => 'SELECT DATE'; String get datePickerHelpText => 'Select date';
@override @override
String get dateRangePickerHelpText => 'SELECT RANGE'; String get dateRangePickerHelpText => 'Select range';
@override @override
String get calendarModeButtonLabel => 'Switch to calendar'; String get calendarModeButtonLabel => 'Switch to calendar';
...@@ -940,10 +940,10 @@ class DefaultMaterialLocalizations implements MaterialLocalizations { ...@@ -940,10 +940,10 @@ class DefaultMaterialLocalizations implements MaterialLocalizations {
String get inputDateModeButtonLabel => 'Switch to input'; String get inputDateModeButtonLabel => 'Switch to input';
@override @override
String get timePickerDialHelpText => 'SELECT TIME'; String get timePickerDialHelpText => 'Select time';
@override @override
String get timePickerInputHelpText => 'ENTER TIME'; String get timePickerInputHelpText => 'Enter time';
@override @override
String get timePickerHourLabel => 'Hour'; String get timePickerHourLabel => 'Hour';
...@@ -1120,13 +1120,13 @@ class DefaultMaterialLocalizations implements MaterialLocalizations { ...@@ -1120,13 +1120,13 @@ class DefaultMaterialLocalizations implements MaterialLocalizations {
} }
@override @override
String get cancelButtonLabel => 'CANCEL'; String get cancelButtonLabel => 'Cancel';
@override @override
String get closeButtonLabel => 'CLOSE'; String get closeButtonLabel => 'Close';
@override @override
String get continueButtonLabel => 'CONTINUE'; String get continueButtonLabel => 'Continue';
@override @override
String get copyButtonLabel => 'Copy'; String get copyButtonLabel => 'Copy';
...@@ -1144,7 +1144,7 @@ class DefaultMaterialLocalizations implements MaterialLocalizations { ...@@ -1144,7 +1144,7 @@ class DefaultMaterialLocalizations implements MaterialLocalizations {
String get selectAllButtonLabel => 'Select all'; String get selectAllButtonLabel => 'Select all';
@override @override
String get viewLicensesButtonLabel => 'VIEW LICENSES'; String get viewLicensesButtonLabel => 'View licenses';
@override @override
String get anteMeridiemAbbreviation => 'AM'; String get anteMeridiemAbbreviation => 'AM';
......
...@@ -525,7 +525,11 @@ class _StepperState extends State<Stepper> with TickerProviderStateMixin { ...@@ -525,7 +525,11 @@ class _StepperState extends State<Stepper> with TickerProviderStateMixin {
padding: const MaterialStatePropertyAll<EdgeInsetsGeometry>(buttonPadding), padding: const MaterialStatePropertyAll<EdgeInsetsGeometry>(buttonPadding),
shape: const MaterialStatePropertyAll<OutlinedBorder>(buttonShape), shape: const MaterialStatePropertyAll<OutlinedBorder>(buttonShape),
), ),
child: Text(localizations.continueButtonLabel), child: Text(
themeData.useMaterial3
? localizations.continueButtonLabel
: localizations.continueButtonLabel.toUpperCase()
),
), ),
Container( Container(
margin: const EdgeInsetsDirectional.only(start: 8.0), margin: const EdgeInsetsDirectional.only(start: 8.0),
...@@ -536,7 +540,11 @@ class _StepperState extends State<Stepper> with TickerProviderStateMixin { ...@@ -536,7 +540,11 @@ class _StepperState extends State<Stepper> with TickerProviderStateMixin {
padding: buttonPadding, padding: buttonPadding,
shape: buttonShape, shape: buttonShape,
), ),
child: Text(localizations.cancelButtonLabel), child: Text(
themeData.useMaterial3
? localizations.cancelButtonLabel
: localizations.cancelButtonLabel.toUpperCase()
),
), ),
), ),
], ],
......
...@@ -151,6 +151,10 @@ class _TimePickerHeader extends StatelessWidget { ...@@ -151,6 +151,10 @@ class _TimePickerHeader extends StatelessWidget {
final TimeOfDayFormat timeOfDayFormat = MaterialLocalizations.of(context).timeOfDayFormat( final TimeOfDayFormat timeOfDayFormat = MaterialLocalizations.of(context).timeOfDayFormat(
alwaysUse24HourFormat: MediaQuery.of(context).alwaysUse24HourFormat, alwaysUse24HourFormat: MediaQuery.of(context).alwaysUse24HourFormat,
); );
final MaterialLocalizations localizations = MaterialLocalizations.of(context);
final String timePickerDialHelpText = themeData.useMaterial3
? localizations.timePickerDialHelpText
: localizations.timePickerDialHelpText.toUpperCase();
final _TimePickerFragmentContext fragmentContext = _TimePickerFragmentContext( final _TimePickerFragmentContext fragmentContext = _TimePickerFragmentContext(
selectedTime: selectedTime, selectedTime: selectedTime,
...@@ -255,7 +259,7 @@ class _TimePickerHeader extends StatelessWidget { ...@@ -255,7 +259,7 @@ class _TimePickerHeader extends StatelessWidget {
children: <Widget>[ children: <Widget>[
const SizedBox(height: 16.0), const SizedBox(height: 16.0),
Text( Text(
helpText ?? MaterialLocalizations.of(context).timePickerDialHelpText, helpText ?? timePickerDialHelpText,
style: TimePickerTheme.of(context).helpTextStyle ?? themeData.textTheme.labelSmall, style: TimePickerTheme.of(context).helpTextStyle ?? themeData.textTheme.labelSmall,
), ),
controls, controls,
...@@ -1495,6 +1499,10 @@ class _TimePickerInputState extends State<_TimePickerInput> with RestorationMixi ...@@ -1495,6 +1499,10 @@ class _TimePickerInputState extends State<_TimePickerInput> with RestorationMixi
final bool use24HourDials = hourFormat(of: timeOfDayFormat) != HourFormat.h; final bool use24HourDials = hourFormat(of: timeOfDayFormat) != HourFormat.h;
final ThemeData theme = Theme.of(context); final ThemeData theme = Theme.of(context);
final TextStyle hourMinuteStyle = TimePickerTheme.of(context).hourMinuteTextStyle ?? theme.textTheme.displayMedium!; final TextStyle hourMinuteStyle = TimePickerTheme.of(context).hourMinuteTextStyle ?? theme.textTheme.displayMedium!;
final MaterialLocalizations localizations = MaterialLocalizations.of(context);
final String timePickerInputHelpText = theme.useMaterial3
? localizations.timePickerInputHelpText
: localizations.timePickerInputHelpText.toUpperCase();
return Padding( return Padding(
padding: const EdgeInsets.symmetric(horizontal: 24.0, vertical: 16.0), padding: const EdgeInsets.symmetric(horizontal: 24.0, vertical: 16.0),
...@@ -1502,7 +1510,7 @@ class _TimePickerInputState extends State<_TimePickerInput> with RestorationMixi ...@@ -1502,7 +1510,7 @@ class _TimePickerInputState extends State<_TimePickerInput> with RestorationMixi
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
Text( Text(
widget.helpText ?? MaterialLocalizations.of(context).timePickerInputHelpText, widget.helpText ?? timePickerInputHelpText,
style: TimePickerTheme.of(context).helpTextStyle ?? theme.textTheme.labelSmall, style: TimePickerTheme.of(context).helpTextStyle ?? theme.textTheme.labelSmall,
), ),
const SizedBox(height: 16.0), const SizedBox(height: 16.0),
...@@ -2258,7 +2266,11 @@ class _TimePickerDialogState extends State<TimePickerDialog> with RestorationMix ...@@ -2258,7 +2266,11 @@ class _TimePickerDialogState extends State<TimePickerDialog> with RestorationMix
children: <Widget>[ children: <Widget>[
TextButton( TextButton(
onPressed: _handleCancel, onPressed: _handleCancel,
child: Text(widget.cancelText ?? localizations.cancelButtonLabel), child: Text(widget.cancelText ?? (
theme.useMaterial3
? localizations.cancelButtonLabel
: localizations.cancelButtonLabel.toUpperCase()
)),
), ),
TextButton( TextButton(
onPressed: _handleOk, onPressed: _handleOk,
......
...@@ -15,6 +15,46 @@ void main() { ...@@ -15,6 +15,46 @@ void main() {
LicenseRegistry.reset(); LicenseRegistry.reset();
}); });
testWidgets('Material3 has sentence case labels', (WidgetTester tester) async {
await tester.pumpWidget(MaterialApp(
theme: ThemeData(useMaterial3: true),
builder: (BuildContext context, Widget? child) {
return MediaQuery(
// Display has a vertical hinge down the middle
data: const MediaQueryData(
size: Size(800, 600),
displayFeatures: <DisplayFeature>[
DisplayFeature(
bounds: Rect.fromLTRB(390, 0, 410, 600),
type: DisplayFeatureType.hinge,
state: DisplayFeatureState.unknown,
),
],
),
child: child!,
);
},
home: Builder(
builder: (BuildContext context) => ElevatedButton(
onPressed: () {
showAboutDialog(
context: context,
useRootNavigator: false,
applicationName: 'A',
);
},
child: const Text('Show About Dialog'),
),
),
));
// Open the dialog.
await tester.tap(find.byType(ElevatedButton));
await tester.pumpAndSettle();
expect(find.text('Close'), findsOneWidget);
expect(find.text('View licenses'), findsOneWidget);
});
testWidgets('AboutListTile control test', (WidgetTester tester) async { testWidgets('AboutListTile control test', (WidgetTester tester) async {
const FlutterLogo logo = FlutterLogo(); const FlutterLogo logo = FlutterLogo();
......
...@@ -62,9 +62,11 @@ void main() { ...@@ -62,9 +62,11 @@ void main() {
WidgetTester tester, WidgetTester tester,
Future<void> Function(Future<DateTime?> date) callback, { Future<void> Function(Future<DateTime?> date) callback, {
TextDirection textDirection = TextDirection.ltr, TextDirection textDirection = TextDirection.ltr,
bool useMaterial3 = false,
}) async { }) async {
late BuildContext buttonContext; late BuildContext buttonContext;
await tester.pumpWidget(MaterialApp( await tester.pumpWidget(MaterialApp(
theme: ThemeData(useMaterial3: useMaterial3),
home: Material( home: Material(
child: Builder( child: Builder(
builder: (BuildContext context) { builder: (BuildContext context) {
...@@ -112,6 +114,11 @@ void main() { ...@@ -112,6 +114,11 @@ void main() {
} }
group('showDatePicker Dialog', () { group('showDatePicker Dialog', () {
testWidgets('Material3 uses sentence case labels', (WidgetTester tester) async {
await prepareDatePicker(tester, (Future<DateTime?> date) async {
expect(find.text('Select date'), findsOneWidget);
}, useMaterial3: true);
});
testWidgets('Cancel, confirm, and help text is used', (WidgetTester tester) async { testWidgets('Cancel, confirm, and help text is used', (WidgetTester tester) async {
cancelText = 'nope'; cancelText = 'nope';
confirmText = 'yep'; confirmText = 'yep';
......
...@@ -56,9 +56,11 @@ void main() { ...@@ -56,9 +56,11 @@ void main() {
WidgetTester tester, WidgetTester tester,
Future<void> Function(Future<DateTimeRange?> date) callback, { Future<void> Function(Future<DateTimeRange?> date) callback, {
TextDirection textDirection = TextDirection.ltr, TextDirection textDirection = TextDirection.ltr,
bool useMaterial3 = false,
}) async { }) async {
late BuildContext buttonContext; late BuildContext buttonContext;
await tester.pumpWidget(MaterialApp( await tester.pumpWidget(MaterialApp(
theme: ThemeData(useMaterial3: useMaterial3),
home: Material( home: Material(
child: Builder( child: Builder(
builder: (BuildContext context) { builder: (BuildContext context) {
...@@ -115,6 +117,13 @@ void main() { ...@@ -115,6 +117,13 @@ void main() {
}); });
}); });
testWidgets('Material3 has sentence case labels', (WidgetTester tester) async {
await preparePicker(tester, (Future<DateTimeRange?> range) async {
expect(find.text('Save'), findsOneWidget);
expect(find.text('Select range'), findsOneWidget);
}, useMaterial3: true);
});
testWidgets('Initial date is the default', (WidgetTester tester) async { testWidgets('Initial date is the default', (WidgetTester tester) async {
await preparePicker(tester, (Future<DateTimeRange?> range) async { await preparePicker(tester, (Future<DateTimeRange?> range) async {
await tester.tap(find.text('SAVE')); await tester.tap(find.text('SAVE'));
......
...@@ -7,6 +7,37 @@ import 'package:flutter/material.dart'; ...@@ -7,6 +7,37 @@ import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
void main() { void main() {
testWidgets('Material3 has sentence case labels', (WidgetTester tester) async {
await tester.pumpWidget(
MaterialApp(
theme: ThemeData(useMaterial3: true),
home: Material(
child: Stepper(
onStepTapped: (int i) {},
steps: const <Step>[
Step(
title: Text('Step 1'),
content: SizedBox(
width: 100.0,
height: 100.0,
),
),
Step(
title: Text('Step 2'),
content: SizedBox(
width: 100.0,
height: 100.0,
),
),
],
),
),
),
);
expect(find.text('Continue'), findsWidgets);
expect(find.text('Cancel'), findsWidgets);
});
testWidgets('Stepper tap callback test', (WidgetTester tester) async { testWidgets('Stepper tap callback test', (WidgetTester tester) async {
int index = 0; int index = 0;
......
...@@ -106,8 +106,10 @@ Future<Offset?> startPicker( ...@@ -106,8 +106,10 @@ Future<Offset?> startPicker(
ValueChanged<TimeOfDay?> onChanged, { ValueChanged<TimeOfDay?> onChanged, {
TimePickerEntryMode entryMode = TimePickerEntryMode.dial, TimePickerEntryMode entryMode = TimePickerEntryMode.dial,
String? restorationId, String? restorationId,
bool useMaterial3 = false,
}) async { }) async {
await tester.pumpWidget(MaterialApp( await tester.pumpWidget(MaterialApp(
theme: ThemeData(useMaterial3: useMaterial3),
restorationScopeId: 'app', restorationScopeId: 'app',
locale: const Locale('en', 'US'), locale: const Locale('en', 'US'),
home: _TimePickerLauncher( home: _TimePickerLauncher(
...@@ -138,6 +140,14 @@ void main() { ...@@ -138,6 +140,14 @@ void main() {
} }
void _tests() { void _tests() {
testWidgets('Material3 has sentence case labels', (WidgetTester tester) async {
await startPicker(tester, (TimeOfDay? time) {
expect(find.text('Select time'), findsOneWidget);
expect(find.text('Enter time'), findsOneWidget);
expect(find.text('Cancel'), findsOneWidget);
}, useMaterial3: true);
});
testWidgets('tap-select an hour', (WidgetTester tester) async { testWidgets('tap-select an hour', (WidgetTester tester) async {
TimeOfDay? result; TimeOfDay? result;
......
...@@ -151,17 +151,17 @@ ...@@ -151,17 +151,17 @@
"plural": "selectedRowCount" "plural": "selectedRowCount"
}, },
"cancelButtonLabel": "CANCEL", "cancelButtonLabel": "Cancel",
"@cancelButtonLabel": { "@cancelButtonLabel": {
"description": "The label for cancel buttons and menu items." "description": "The label for cancel buttons and menu items."
}, },
"closeButtonLabel": "CLOSE", "closeButtonLabel": "Close",
"@closeButtonLabel": { "@closeButtonLabel": {
"description": "The label for close buttons and menu items." "description": "The label for close buttons and menu items."
}, },
"continueButtonLabel": "CONTINUE", "continueButtonLabel": "Continue",
"@continueButtonLabel": { "@continueButtonLabel": {
"description": "The label for continue buttons and menu items." "description": "The label for continue buttons and menu items."
}, },
...@@ -191,7 +191,7 @@ ...@@ -191,7 +191,7 @@
"description": "The label for select-all buttons and menu items." "description": "The label for select-all buttons and menu items."
}, },
"viewLicensesButtonLabel": "VIEW LICENSES", "viewLicensesButtonLabel": "View licenses",
"@viewLicensesButtonLabel": { "@viewLicensesButtonLabel": {
"description": "The label for the button in the about box that leads the user to a list of all licenses that apply to the application." "description": "The label for the button in the about box that leads the user to a list of all licenses that apply to the application."
}, },
...@@ -288,17 +288,17 @@ ...@@ -288,17 +288,17 @@
"description": "Error message displayed to the user when they have entered a date that is outside the valid range for the date picker." "description": "Error message displayed to the user when they have entered a date that is outside the valid range for the date picker."
}, },
"saveButtonLabel": "SAVE", "saveButtonLabel": "Save",
"@saveButtonLabel": { "@saveButtonLabel": {
"description": "Label for a 'SAVE' button used in full screen dialogs." "description": "Label for a 'Save' button used in full screen dialogs."
}, },
"datePickerHelpText": "SELECT DATE", "datePickerHelpText": "Select date",
"@datePickerHelpText": { "@datePickerHelpText": {
"description": "Label used in the header of the date picker dialog" "description": "Label used in the header of the date picker dialog"
}, },
"dateRangePickerHelpText": "SELECT RANGE", "dateRangePickerHelpText": "Select range",
"@dateRangePickerHelpText": { "@dateRangePickerHelpText": {
"description": "Label used in the header of the date range picker dialog." "description": "Label used in the header of the date range picker dialog."
}, },
...@@ -313,12 +313,12 @@ ...@@ -313,12 +313,12 @@
"description": "Tooltip used for the text input mode button of the date pickers." "description": "Tooltip used for the text input mode button of the date pickers."
}, },
"timePickerDialHelpText": "SELECT TIME", "timePickerDialHelpText": "Select time",
"@timePickerDialHelpText": { "@timePickerDialHelpText": {
"description": "Label used in the header of the time picker dialog when using the clock dial to select a time." "description": "Label used in the header of the time picker dialog when using the clock dial to select a time."
}, },
"timePickerInputHelpText": "ENTER TIME", "timePickerInputHelpText": "Enter time",
"@timePickerInputHelpText": { "@timePickerInputHelpText": {
"description": "Label used in the header of the time picker dialog when using the text input to enter a time." "description": "Label used in the header of the time picker dialog when using the text input to enter a time."
}, },
......
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