[framework] Add Look Up to selection controls for iOS (#131798)

This PR adds framework support for the Look Up feature in iOS. 

https://github.com/flutter/flutter/assets/36148254/d301df79-4e23-454f-8742-2f8e39c2960c

The corresponding merged engine PR can be found [here](https://github.com/flutter/engine/pull/43308).
This PR addresses https://github.com/flutter/flutter/issues/82907 
More details are available in this [design doc.](flutter.dev/go/add-missing-features-to-selection-controls)

This is the same PR as https://github.com/flutter/flutter/pull/130532, this is an attempt to fix the Google Testing issue
This commit is contained in:
LouiseHsu 2023-08-02 13:20:39 -07:00 committed by GitHub
parent 00a8323533
commit f019789565
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
175 changed files with 1094 additions and 246 deletions

View File

@ -94,6 +94,7 @@ class CupertinoAdaptiveTextSelectionToolbar extends StatelessWidget {
required VoidCallback? onCut,
required VoidCallback? onPaste,
required VoidCallback? onSelectAll,
required VoidCallback? onLookUp,
required VoidCallback? onLiveTextInput,
required this.anchors,
}) : children = null,
@ -103,6 +104,7 @@ class CupertinoAdaptiveTextSelectionToolbar extends StatelessWidget {
onCut: onCut,
onPaste: onPaste,
onSelectAll: onSelectAll,
onLookUp: onLookUp,
onLiveTextInput: onLiveTextInput
);

View File

@ -245,6 +245,10 @@ abstract class CupertinoLocalizations {
// The global version uses the translated string from the arb file.
String get selectAllButtonLabel;
/// The term used for looking up a selection.
// The global version uses the translated string from the arb file.
String get lookUpButtonLabel;
/// The default placeholder used in [CupertinoSearchTextField].
// The global version uses the translated string from the arb file.
String get searchTextFieldPlaceholderLabel;
@ -455,6 +459,9 @@ class DefaultCupertinoLocalizations implements CupertinoLocalizations {
@override
String get selectAllButtonLabel => 'Select All';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get searchTextFieldPlaceholderLabel => 'Search';

View File

@ -105,6 +105,8 @@ class CupertinoTextSelectionToolbarButton extends StatefulWidget {
return localizations.pasteButtonLabel;
case ContextMenuButtonType.selectAll:
return localizations.selectAllButtonLabel;
case ContextMenuButtonType.lookUp:
return localizations.lookUpButtonLabel;
case ContextMenuButtonType.liveTextInput:
case ContextMenuButtonType.delete:
case ContextMenuButtonType.custom:
@ -189,6 +191,7 @@ class _CupertinoTextSelectionToolbarButtonState extends State<CupertinoTextSelec
case ContextMenuButtonType.paste:
case ContextMenuButtonType.selectAll:
case ContextMenuButtonType.delete:
case ContextMenuButtonType.lookUp:
case ContextMenuButtonType.custom:
return textWidget;
case ContextMenuButtonType.liveTextInput:

View File

@ -103,6 +103,7 @@ class AdaptiveTextSelectionToolbar extends StatelessWidget {
required VoidCallback? onCut,
required VoidCallback? onPaste,
required VoidCallback? onSelectAll,
required VoidCallback? onLookUp,
required VoidCallback? onLiveTextInput,
required this.anchors,
}) : children = null,
@ -112,6 +113,7 @@ class AdaptiveTextSelectionToolbar extends StatelessWidget {
onCut: onCut,
onPaste: onPaste,
onSelectAll: onSelectAll,
onLookUp: onLookUp,
onLiveTextInput: onLiveTextInput
);
@ -215,6 +217,8 @@ class AdaptiveTextSelectionToolbar extends StatelessWidget {
return localizations.selectAllButtonLabel;
case ContextMenuButtonType.delete:
return localizations.deleteButtonTooltip.toUpperCase();
case ContextMenuButtonType.lookUp:
return localizations.lookUpButtonLabel;
case ContextMenuButtonType.liveTextInput:
return localizations.scanTextButtonLabel;
case ContextMenuButtonType.custom:

View File

@ -115,6 +115,9 @@ abstract class MaterialLocalizations {
/// Label for "select all" edit buttons and menu items.
String get selectAllButtonLabel;
/// Label for "look up" edit buttons and menu items.
String get lookUpButtonLabel;
/// Label for the [AboutDialog] button that shows the [LicensePage].
String get viewLicensesButtonLabel;
@ -1178,6 +1181,9 @@ class DefaultMaterialLocalizations implements MaterialLocalizations {
@override
String get selectAllButtonLabel => 'Select all';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get viewLicensesButtonLabel => 'View licenses';

View File

@ -1050,6 +1050,9 @@ mixin TextSelectionDelegate {
/// Whether select all is enabled, must not be null.
bool get selectAllEnabled => true;
/// Whether look up is enabled, must not be null.
bool get lookUpEnabled => true;
/// Whether Live Text input is enabled.
///
/// See also:

View File

@ -26,6 +26,9 @@ enum ContextMenuButtonType {
/// A button that deletes the current text selection.
delete,
/// A button that looks up the current text selection.
lookUp,
/// A button for starting Live Text input.
///
/// See also:

View File

@ -1852,6 +1852,7 @@ class EditableText extends StatefulWidget {
required final VoidCallback? onCut,
required final VoidCallback? onPaste,
required final VoidCallback? onSelectAll,
required final VoidCallback? onLookUp,
required final VoidCallback? onLiveTextInput,
}) {
final List<ContextMenuButtonItem> resultButtonItem = <ContextMenuButtonItem>[];
@ -1882,6 +1883,11 @@ class EditableText extends StatefulWidget {
onPressed: onSelectAll,
type: ContextMenuButtonType.selectAll,
),
if (onLookUp != null)
ContextMenuButtonItem(
onPressed: onLookUp,
type: ContextMenuButtonType.lookUp,
),
]);
}
@ -2232,6 +2238,15 @@ class EditableTextState extends State<EditableText> with AutomaticKeepAliveClien
}
}
@override
bool get lookUpEnabled {
if (defaultTargetPlatform != TargetPlatform.iOS) {
return false;
}
return !widget.obscureText
&& !textEditingValue.selection.isCollapsed;
}
@override
bool get liveTextInputEnabled {
return _liveTextInputStatus?.value == LiveTextInputStatus.enabled &&
@ -2397,6 +2412,22 @@ class EditableTextState extends State<EditableText> with AutomaticKeepAliveClien
}
}
/// Look up the current selection, as in the "Look Up" edit menu button on iOS.
/// Currently this is only implemented for iOS.
/// Throws an error if the selection is empty or collapsed.
Future<void> lookUpSelection(SelectionChangedCause cause) async {
assert(!widget.obscureText);
final String text = textEditingValue.selection.textInside(textEditingValue.text);
if (widget.obscureText || text.isEmpty) {
return;
}
await SystemChannels.platform.invokeMethod(
'LookUp.invoke',
text,
);
}
void _startLiveTextInput(SelectionChangedCause cause) {
if (!liveTextInputEnabled) {
return;
@ -2623,6 +2654,9 @@ class EditableTextState extends State<EditableText> with AutomaticKeepAliveClien
onSelectAll: selectAllEnabled
? () => selectAll(SelectionChangedCause.toolbar)
: null,
onLookUp: lookUpEnabled
? () => lookUpSelection(SelectionChangedCause.toolbar)
: null,
onLiveTextInput: liveTextInputEnabled
? () => _startLiveTextInput(SelectionChangedCause.toolbar)
: null,

View File

@ -168,6 +168,7 @@ void main() {
onPaste: () {},
onSelectAll: () {},
onLiveTextInput: () {},
onLookUp: () {},
),
),
));
@ -180,16 +181,16 @@ void main() {
switch (defaultTargetPlatform) {
case TargetPlatform.android:
expect(find.byType(CupertinoTextSelectionToolbarButton), findsNWidgets(5));
expect(find.byType(CupertinoTextSelectionToolbarButton), findsNWidgets(6));
case TargetPlatform.fuchsia:
expect(find.byType(CupertinoTextSelectionToolbarButton), findsNWidgets(5));
expect(find.byType(CupertinoTextSelectionToolbarButton), findsNWidgets(6));
case TargetPlatform.iOS:
expect(find.byType(CupertinoTextSelectionToolbarButton), findsNWidgets(5));
expect(find.byType(CupertinoTextSelectionToolbarButton), findsNWidgets(6));
expect(findLiveTextButton(), findsOneWidget);
case TargetPlatform.macOS:
case TargetPlatform.linux:
case TargetPlatform.windows:
expect(find.byType(CupertinoDesktopTextSelectionToolbarButton), findsNWidgets(5));
expect(find.byType(CupertinoDesktopTextSelectionToolbarButton), findsNWidgets(6));
}
},
skip: kIsWeb, // [intended] on web the browser handles the context menu.

View File

@ -201,6 +201,7 @@ void main() {
setUp(() async {
TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(SystemChannels.platform, mockClipboard.handleMethodCall);
EditableText.debugDeterministicCursor = false;
// Fill the clipboard so that the Paste option is available in the text
// selection menu.
@ -250,6 +251,104 @@ void main() {
},
);
testWidgets('Look Up shows up on iOS only (CupertinoTextField)', (WidgetTester tester) async {
String? lastLookUp;
TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger
.setMockMethodCallHandler(SystemChannels.platform, (MethodCall methodCall) async {
if (methodCall.method == 'LookUp.invoke') {
expect(methodCall.arguments, isA<String>());
lastLookUp = methodCall.arguments as String;
}
return null;
});
final TextEditingController controller = TextEditingController(
text: 'Test',
);
await tester.pumpWidget(
CupertinoApp(
home: Center(
child: CupertinoTextField(
controller: controller,
),
),
),
);
final bool isTargetPlatformiOS = defaultTargetPlatform == TargetPlatform.iOS;
// Long press to put the cursor after the "s".
const int index = 3;
await tester.longPressAt(textOffsetToPosition(tester, index));
await tester.pump();
// Double tap on the same location to select the word around the cursor.
await tester.tapAt(textOffsetToPosition(tester, index));
await tester.pump(const Duration(milliseconds: 50));
await tester.tapAt(textOffsetToPosition(tester, index));
await tester.pumpAndSettle();
expect(controller.selection, const TextSelection(baseOffset: 0, extentOffset: 4));
expect(find.text('Look Up'), isTargetPlatformiOS? findsOneWidget : findsNothing);
if (isTargetPlatformiOS) {
await tester.tap(find.text('Look Up'));
expect(lastLookUp, 'Test');
}
},
variant: const TargetPlatformVariant(<TargetPlatform>{ TargetPlatform.iOS, TargetPlatform.android }),
skip: isContextMenuProvidedByPlatform, // [intended] only applies to platforms where we supply the context menu.
);
testWidgets('Look Up shows up on iOS only (TextField)', (WidgetTester tester) async {
String? lastLookUp;
TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger
.setMockMethodCallHandler(SystemChannels.platform, (MethodCall methodCall) async {
if (methodCall.method == 'LookUp.invoke') {
expect(methodCall.arguments, isA<String>());
lastLookUp = methodCall.arguments as String;
}
return null;
});
final TextEditingController controller = TextEditingController(
text: 'Test ',
);
await tester.pumpWidget(
MaterialApp(
home: Material(
child: TextField(
controller: controller,
),
),
),
);
final bool isTargetPlatformiOS = defaultTargetPlatform == TargetPlatform.iOS;
// Long press to put the cursor after the "s".
const int index = 3;
await tester.longPressAt(textOffsetToPosition(tester, index));
await tester.pump();
// Double tap on the same location to select the word around the cursor.
await tester.tapAt(textOffsetToPosition(tester, index));
await tester.pump(const Duration(milliseconds: 50));
await tester.tapAt(textOffsetToPosition(tester, index));
await tester.pumpAndSettle();
expect(controller.selection, const TextSelection(baseOffset: 0, extentOffset: 4));
expect(find.text('Look Up'), isTargetPlatformiOS? findsOneWidget : findsNothing);
if (isTargetPlatformiOS) {
await tester.tap(find.text('Look Up'));
expect(lastLookUp, 'Test');
}
},
variant: const TargetPlatformVariant(<TargetPlatform>{ TargetPlatform.iOS, TargetPlatform.android }),
skip: isContextMenuProvidedByPlatform, // [intended] only applies to platforms where we supply the context menu.
);
testWidgets('can use the desktop cut/copy/paste buttons on Mac', (WidgetTester tester) async {
final TextEditingController controller = TextEditingController(
text: 'blah1 blah2',
@ -1859,7 +1958,7 @@ void main() {
);
// On iOS/iPadOS, during a tap we select the edge of the word closest to the tap.
// On macOS, we select the precise position of the tap.
final bool isTargetPlatformMobile = defaultTargetPlatform == TargetPlatform.iOS;
final bool isTargetPlatformIOS = defaultTargetPlatform == TargetPlatform.iOS;
await tester.pumpWidget(
CupertinoApp(
home: Center(
@ -1879,10 +1978,10 @@ void main() {
// Plain collapsed selection.
expect(controller.selection.isCollapsed, isTrue);
expect(controller.selection.baseOffset, isTargetPlatformMobile ? 7 : 6);
expect(controller.selection.baseOffset, isTargetPlatformIOS ? 7 : 6);
// Toolbar shows on mobile.
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : isTargetPlatformMobile ? findsNWidgets(2) : findsNothing);
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : isTargetPlatformIOS ? findsNWidgets(2) : findsNothing);
}, variant: const TargetPlatformVariant(<TargetPlatform>{ TargetPlatform.iOS, TargetPlatform.macOS }));
testWidgets(
@ -2014,7 +2113,7 @@ void main() {
);
// Selected text shows 3 toolbar buttons.
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(3));
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(4));
// Tap the selected word to hide the toolbar and retain the selection.
await tester.tapAt(vPos);
@ -2032,7 +2131,7 @@ void main() {
controller.selection,
const TextSelection(baseOffset: 24, extentOffset: 35),
);
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(3));
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(4));
// Tap past the selected word to move the cursor and hide the toolbar.
await tester.tapAt(ePos);
@ -2145,8 +2244,8 @@ void main() {
} else {
switch (defaultTargetPlatform) {
case TargetPlatform.macOS:
case TargetPlatform.iOS:
expect(find.byType(CupertinoButton), findsNWidgets(3));
case TargetPlatform.iOS:
case TargetPlatform.android:
case TargetPlatform.fuchsia:
case TargetPlatform.linux:
@ -2329,7 +2428,7 @@ void main() {
);
// On iOS/iPadOS, during a tap we select the edge of the word closest to the tap.
// On macOS, we select the precise position of the tap.
final bool isTargetPlatformMobile = defaultTargetPlatform == TargetPlatform.iOS;
final bool isTargetPlatformIOS = defaultTargetPlatform == TargetPlatform.iOS;
await tester.pumpWidget(
CupertinoApp(
home: Center(
@ -2351,7 +2450,7 @@ void main() {
await tester.pump(const Duration(milliseconds: 50));
// First tap moved the cursor.
expect(controller.selection.isCollapsed, isTrue);
expect(controller.selection.baseOffset, isTargetPlatformMobile ? 12 : 9);
expect(controller.selection.baseOffset, isTargetPlatformIOS ? 12 : 9);
await tester.tapAt(pPos);
await tester.pumpAndSettle();
@ -2363,7 +2462,7 @@ void main() {
);
// Selected text shows 3 toolbar buttons.
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(3));
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : (isTargetPlatformIOS ? findsNWidgets(4) : findsNWidgets(3)));
}, variant: const TargetPlatformVariant(<TargetPlatform>{ TargetPlatform.iOS, TargetPlatform.macOS }));
testWidgets(
@ -2433,7 +2532,7 @@ void main() {
);
// On iOS/iPadOS, during a tap we select the edge of the word closest to the tap.
// On macOS, we select the precise position of the tap.
final bool isTargetPlatformMobile = defaultTargetPlatform == TargetPlatform.iOS;
final bool isTargetPlatformIOS = defaultTargetPlatform == TargetPlatform.iOS;
await tester.pumpWidget(
CupertinoApp(
home: Center(
@ -2451,7 +2550,7 @@ void main() {
await tester.pump(const Duration(milliseconds: 50));
// First tap moved the cursor.
expect(controller.selection.isCollapsed, isTrue);
expect(controller.selection.baseOffset, isTargetPlatformMobile ? 12 : 9);
expect(controller.selection.baseOffset, isTargetPlatformIOS ? 12 : 9);
await tester.tapAt(pPos);
await tester.pump(const Duration(milliseconds: 500));
@ -2464,7 +2563,7 @@ void main() {
// you tapped instead of the edge like every other single tap. This is
// likely a bug in iOS 12 and not present in other versions.
expect(controller.selection.isCollapsed, isTrue);
expect(controller.selection.baseOffset, isTargetPlatformMobile ? 7 : 6);
expect(controller.selection.baseOffset, isTargetPlatformIOS ? 7 : 6);
// No toolbar.
expect(find.byType(CupertinoButton), findsNothing);
@ -2949,18 +3048,18 @@ void main() {
await tester.longPressAt(ePos);
await tester.pump(const Duration(milliseconds: 50));
final bool isTargetPlatformMobile = defaultTargetPlatform == TargetPlatform.iOS;
final bool isTargetPlatformIOS = defaultTargetPlatform == TargetPlatform.iOS;
if (kIsWeb) {
expect(find.byType(CupertinoButton), findsNothing);
} else {
expect(find.byType(CupertinoButton), findsNWidgets(isTargetPlatformMobile ? 2 : 1));
expect(find.byType(CupertinoButton), findsNWidgets(isTargetPlatformIOS ? 2 : 1));
}
expect(controller.selection.isCollapsed, isTrue);
expect(controller.selection.baseOffset, 6);
// Tap in a slightly different position to avoid hitting the context menu
// on desktop.
final Offset secondTapPos = isTargetPlatformMobile
final Offset secondTapPos = isTargetPlatformIOS
? ePos
: ePos + const Offset(-1.0, 0.0);
await tester.tapAt(secondTapPos);
@ -3308,7 +3407,7 @@ void main() {
);
// On iOS/iPadOS, during a tap we select the edge of the word closest to the tap.
// On macOS, we select the precise position of the tap.
final bool isTargetPlatformMobile = defaultTargetPlatform == TargetPlatform.iOS;
final bool isTargetPlatformIOS = defaultTargetPlatform == TargetPlatform.iOS;
await tester.pumpWidget(
CupertinoApp(
home: Center(
@ -3326,7 +3425,7 @@ void main() {
await tester.pump(const Duration(milliseconds: 50));
// First tap moved the cursor to the beginning of the second word.
expect(controller.selection.isCollapsed, isTrue);
expect(controller.selection.baseOffset, isTargetPlatformMobile ? 12 : 9);
expect(controller.selection.baseOffset, isTargetPlatformIOS ? 12 : 9);
await tester.tapAt(pPos);
await tester.pump(const Duration(milliseconds: 500));
@ -3360,7 +3459,7 @@ void main() {
);
// On iOS/iPadOS, during a tap we select the edge of the word closest to the tap.
// On macOS, we select the precise position of the tap.
final bool isTargetPlatformMobile = defaultTargetPlatform == TargetPlatform.iOS;
final bool isTargetPlatformIOS = defaultTargetPlatform == TargetPlatform.iOS;
await tester.pumpWidget(
CupertinoApp(
home: Center(
@ -3388,7 +3487,7 @@ void main() {
if (isContextMenuProvidedByPlatform) {
expect(find.byType(CupertinoButton), findsNothing);
} else {
expect(find.byType(CupertinoButton), isTargetPlatformMobile ? findsNWidgets(2) : findsNWidgets(1));
expect(find.byType(CupertinoButton), isTargetPlatformIOS ? findsNWidgets(2) : findsNWidgets(1));
}
await tester.tapAt(pPos);
@ -3397,7 +3496,7 @@ void main() {
// First tap moved the cursor.
expect(find.byType(CupertinoButton), findsNothing);
expect(controller.selection.isCollapsed, isTrue);
expect(controller.selection.baseOffset, isTargetPlatformMobile ? 12 : 9);
expect(controller.selection.baseOffset, isTargetPlatformIOS ? 12 : 9);
await tester.tapAt(pPos);
await tester.pumpAndSettle();
@ -3408,7 +3507,7 @@ void main() {
const TextSelection(baseOffset: 8, extentOffset: 12),
);
// Shows toolbar.
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(3));
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : (isTargetPlatformIOS ? findsNWidgets(4) : findsNWidgets(3)));
}, variant: const TargetPlatformVariant(<TargetPlatform>{ TargetPlatform.iOS, TargetPlatform.macOS }));
testWidgets(
@ -3428,6 +3527,7 @@ void main() {
);
final Offset textFieldStart = tester.getTopLeft(find.byType(CupertinoTextField));
final bool isTargetPlatformIOS = defaultTargetPlatform == TargetPlatform.iOS;
await tester.tapAt(textFieldStart + const Offset(50.0, 5.0));
await tester.pump(const Duration(milliseconds: 50));
@ -3441,7 +3541,7 @@ void main() {
controller.selection,
const TextSelection(baseOffset: 0, extentOffset: 7),
);
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(3));
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(4));
// Double tap selecting the same word somewhere else is fine.
await tester.tapAt(textFieldStart + const Offset(100.0, 5.0));
@ -3461,7 +3561,7 @@ void main() {
controller.selection,
const TextSelection(baseOffset: 0, extentOffset: 7),
);
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(3));
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : (isTargetPlatformIOS ? findsNWidgets(4) : findsNWidgets(3)));
await tester.tapAt(textFieldStart + const Offset(150.0, 5.0));
await tester.pump(const Duration(milliseconds: 50));
@ -3477,7 +3577,7 @@ void main() {
controller.selection,
const TextSelection(baseOffset: 8, extentOffset: 12),
);
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(3));
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : (isTargetPlatformIOS ? findsNWidgets(4) : findsNWidgets(3)));
}, variant: const TargetPlatformVariant(<TargetPlatform>{ TargetPlatform.iOS }));
group('Triple tap/click', () {
@ -3717,6 +3817,7 @@ void main() {
);
final Offset textfieldStart = tester.getTopLeft(find.byType(CupertinoTextField));
final bool isTargetPlatformIOS = defaultTargetPlatform == TargetPlatform.iOS;
await tester.tapAt(textfieldStart + const Offset(50.0, 9.0));
await tester.pump(const Duration(milliseconds: 50));
@ -3729,7 +3830,7 @@ void main() {
controller.selection,
const TextSelection(baseOffset: 0, extentOffset: 7),
);
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(3));
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(4));
await tester.tapAt(textfieldStart + const Offset(50.0, 9.0));
await tester.pumpAndSettle(kDoubleTapTimeout);
@ -3755,7 +3856,7 @@ void main() {
controller.selection,
const TextSelection(baseOffset: 0, extentOffset: 7),
);
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(3));
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : (isTargetPlatformIOS ? findsNWidgets(4) : findsNWidgets(3)));
// Third tap shows the toolbar and selects the paragraph.
await tester.tapAt(textfieldStart + const Offset(100.0, 9.0));
@ -3764,7 +3865,7 @@ void main() {
controller.selection,
const TextSelection(baseOffset: 0, extentOffset: 36),
);
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(3));
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : (isTargetPlatformIOS ? findsNWidgets(4) : findsNWidgets(3)));
await tester.tapAt(textfieldStart + const Offset(150.0, 25.0));
await tester.pump(const Duration(milliseconds: 50));
@ -3782,7 +3883,7 @@ void main() {
controller.selection,
const TextSelection(baseOffset: 44, extentOffset: 50),
);
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(3));
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : (isTargetPlatformIOS ? findsNWidgets(4) : findsNWidgets(3)));
// Third tap selects the paragraph and shows the toolbar.
await tester.tapAt(textfieldStart + const Offset(150.0, 25.0));
@ -3791,7 +3892,7 @@ void main() {
controller.selection,
const TextSelection(baseOffset: 36, extentOffset: 66),
);
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(3));
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : (isTargetPlatformIOS ? findsNWidgets(4) : findsNWidgets(3)));
},
variant: const TargetPlatformVariant(<TargetPlatform>{ TargetPlatform.iOS }),
);
@ -4794,7 +4895,7 @@ void main() {
);
// On iOS/iPadOS, during a tap we select the edge of the word closest to the tap.
// On macOS, we select the precise position of the tap.
final bool isTargetPlatformMobile = defaultTargetPlatform == TargetPlatform.iOS;
final bool isTargetPlatformIOS = defaultTargetPlatform == TargetPlatform.iOS;
await tester.pumpWidget(
CupertinoApp(
home: Center(
@ -4824,7 +4925,7 @@ void main() {
// Fall back to a single tap which selects the edge of the word on iOS, and
// a precise position on macOS.
expect(controller.selection.isCollapsed, isTrue);
expect(controller.selection.baseOffset, isTargetPlatformMobile ? 12 : 9);
expect(controller.selection.baseOffset, isTargetPlatformIOS ? 12 : 9);
await tester.pump();
// Falling back to a single tap doesn't trigger a toolbar.
@ -4837,7 +4938,7 @@ void main() {
);
// On iOS/iPadOS, during a tap we select the edge of the word closest to the tap.
// On macOS, we select the precise position of the tap.
final bool isTargetPlatformMobile = defaultTargetPlatform == TargetPlatform.iOS;
final bool isTargetPlatformIOS = defaultTargetPlatform == TargetPlatform.iOS;
await tester.pumpWidget(
CupertinoApp(
@ -4856,7 +4957,7 @@ void main() {
await tester.tapAt(ePos, pointer: 7);
await tester.pump(const Duration(milliseconds: 50));
expect(controller.selection.isCollapsed, isTrue);
expect(controller.selection.baseOffset, isTargetPlatformMobile ? 7 : 5);
expect(controller.selection.baseOffset, isTargetPlatformIOS ? 7 : 5);
await tester.tapAt(ePos, pointer: 7);
await tester.pumpAndSettle();
expect(controller.selection.baseOffset, 4);
@ -8142,7 +8243,7 @@ void main() {
final TextEditingController controller = TextEditingController(
text: 'Atwater Peel Sherbrooke Bonaventure',
);
final bool isTargetPlatformMobile = defaultTargetPlatform == TargetPlatform.iOS;
final bool isTargetPlatformIOS = defaultTargetPlatform == TargetPlatform.iOS;
await tester.pumpWidget(
CupertinoApp(
home: Center(
@ -8167,7 +8268,7 @@ void main() {
kind: PointerDeviceKind.mouse,
);
await tester.pumpAndSettle();
if (isTargetPlatformMobile) {
if (isTargetPlatformIOS) {
await gesture.up();
// Not a double tap + drag.
await tester.pumpAndSettle(kDoubleTapTimeout);
@ -8176,7 +8277,7 @@ void main() {
expect(controller.selection.extentOffset, 23);
// Expand the selection a bit.
if (isTargetPlatformMobile) {
if (isTargetPlatformIOS) {
await gesture.down(textOffsetToPosition(tester, 24));
await tester.pumpAndSettle();
}
@ -8355,7 +8456,7 @@ void main() {
final TextEditingController controller = TextEditingController(
text: 'Atwater Peel Sherbrooke Bonaventure',
);
final bool isTargetPlatformMobile = defaultTargetPlatform == TargetPlatform.iOS;
final bool isTargetPlatformIOS = defaultTargetPlatform == TargetPlatform.iOS;
await tester.pumpWidget(
CupertinoApp(
home: Center(
@ -8380,7 +8481,7 @@ void main() {
kind: PointerDeviceKind.mouse,
);
await tester.pumpAndSettle();
if (isTargetPlatformMobile) {
if (isTargetPlatformIOS) {
await gesture.up();
// Not a double tap + drag.
await tester.pumpAndSettle(kDoubleTapTimeout);
@ -8390,7 +8491,7 @@ void main() {
expect(controller.selection.extentOffset, 8);
// Expand the selection a bit.
if (isTargetPlatformMobile) {
if (isTargetPlatformIOS) {
await gesture.down(textOffsetToPosition(tester, 7));
await tester.pumpAndSettle();
}

View File

@ -247,7 +247,7 @@ void main() {
testWidgets("When a menu item doesn't fit, a second page is used.", (WidgetTester tester) async {
// Set the screen size to more narrow, so that Paste can't fit.
tester.view.physicalSize = const Size(800, 800);
tester.view.physicalSize = const Size(900, 800);
addTearDown(tester.view.reset);
final TextEditingController controller = TextEditingController(text: 'abc def ghi');
@ -270,6 +270,7 @@ void main() {
expect(find.text('Copy'), findsNothing);
expect(find.text('Paste'), findsNothing);
expect(find.text('Select All'), findsNothing);
expect(find.text('Look Up'), findsNothing);
expect(findOverflowBackButton(), findsNothing);
expect(findOverflowNextButton(), findsNothing);
@ -285,27 +286,43 @@ void main() {
expect(find.text('Copy'), findsOneWidget);
expect(find.text('Paste'), findsNothing);
expect(find.text('Select All'), findsNothing);
expect(find.text('Look Up'), findsNothing);
expect(findOverflowBackButton(), findsNothing);
expect(findOverflowNextButton(), findsOneWidget);
// Tapping the next button shows both the overflow, back, and next buttons.
await tester.tapAt(tester.getCenter(findOverflowNextButton()));
await tester.pumpAndSettle();
expect(find.text('Cut'), findsNothing);
expect(find.text('Copy'), findsNothing);
expect(find.text('Paste'), findsOneWidget);
expect(find.text('Select All'), findsNothing);
expect(find.text('Look Up'), findsNothing);
expect(findOverflowBackButton(), findsOneWidget);
expect(findOverflowNextButton(), findsOneWidget);
// Tapping the next button shows the overflowing button and the next
// button is hidden as the last page is shown.
await tester.tapAt(tester.getCenter(findOverflowNextButton()));
await tester.pumpAndSettle();
expect(find.text('Cut'), findsNothing);
expect(find.text('Copy'), findsNothing);
expect(find.text('Paste'), findsOneWidget);
expect(find.text('Paste'), findsNothing);
expect(find.text('Select All'), findsNothing);
expect(find.text('Look Up'), findsOneWidget);
expect(findOverflowBackButton(), findsOneWidget);
expect(findOverflowNextButton(), findsNothing);
// Tapping the back button shows the first page again with the next button.
await tester.tapAt(tester.getCenter(findOverflowBackButton()));
await tester.pumpAndSettle();
await tester.tapAt(tester.getCenter(findOverflowBackButton()));
await tester.pumpAndSettle();
expect(find.text('Cut'), findsOneWidget);
expect(find.text('Copy'), findsOneWidget);
expect(find.text('Paste'), findsNothing);
expect(find.text('Select All'), findsNothing);
expect(find.text('Look Up'), findsNothing);
expect(findOverflowBackButton(), findsNothing);
expect(findOverflowNextButton(), findsOneWidget);
},
@ -340,6 +357,7 @@ void main() {
expect(find.text('Copy'), findsNothing);
expect(find.text('Paste'), findsNothing);
expect(find.text('Select All'), findsNothing);
expect(find.text('Look Up'), findsNothing);
expect(findOverflowBackButton(), findsNothing);
expect(findOverflowNextButton(), findsNothing);
@ -356,6 +374,7 @@ void main() {
expect(find.text('Copy'), findsNothing);
expect(find.text('Paste'), findsNothing);
expect(find.text('Select All'), findsNothing);
expect(find.text('Look Up'), findsNothing);
expect(findOverflowBackButton(), findsNothing);
expect(findOverflowNextButton(), findsOneWidget);
@ -367,22 +386,36 @@ void main() {
expect(find.text('Copy'), findsOneWidget);
expect(find.text('Paste'), findsNothing);
expect(find.text('Select All'), findsNothing);
expect(find.text('Look Up'), findsNothing);
expect(findOverflowBackButton(), findsOneWidget);
expect(findOverflowNextButton(), findsOneWidget);
// Tapping the next button again shows Paste and hides the next button as
// the last page is shown.
// Tapping the next button again shows Paste
await tester.tapAt(tester.getCenter(findOverflowNextButton()));
await tester.pumpAndSettle();
expect(find.byType(CupertinoTextSelectionToolbarButton), findsNWidgets(2));
expect(find.byType(CupertinoTextSelectionToolbarButton), findsNWidgets(3));
expect(find.text('Cut'), findsNothing);
expect(find.text('Copy'), findsNothing);
expect(find.text('Paste'), findsOneWidget);
expect(find.text('Select All'), findsNothing);
expect(find.text('Look Up'), findsNothing);
expect(findOverflowBackButton(), findsOneWidget);
expect(findOverflowNextButton(), findsOneWidget);
// Tapping the next button again shows the last page.
await tester.tapAt(tester.getCenter(findOverflowNextButton()));
await tester.pumpAndSettle();
expect(find.text('Cut'), findsNothing);
expect(find.text('Copy'), findsNothing);
expect(find.text('Paste'), findsNothing);
expect(find.text('Select All'), findsNothing);
expect(find.text('Look Up'), findsOneWidget);
expect(findOverflowBackButton(), findsOneWidget);
expect(findOverflowNextButton(), findsNothing);
// Tapping the back button shows the second page again with the next button.
// Tapping the back button twice shows the second page again with the next button.
await tester.tapAt(tester.getCenter(findOverflowBackButton()));
await tester.pumpAndSettle();
await tester.tapAt(tester.getCenter(findOverflowBackButton()));
await tester.pumpAndSettle();
expect(find.byType(CupertinoTextSelectionToolbarButton), findsNWidgets(3));
@ -390,6 +423,7 @@ void main() {
expect(find.text('Copy'), findsOneWidget);
expect(find.text('Paste'), findsNothing);
expect(find.text('Select All'), findsNothing);
expect(find.text('Look Up'), findsNothing);
expect(findOverflowBackButton(), findsOneWidget);
expect(findOverflowNextButton(), findsOneWidget);
@ -401,6 +435,7 @@ void main() {
expect(find.text('Copy'), findsNothing);
expect(find.text('Paste'), findsNothing);
expect(find.text('Select All'), findsNothing);
expect(find.text('Look Up'), findsNothing);
expect(findOverflowBackButton(), findsNothing);
expect(findOverflowNextButton(), findsOneWidget);
},
@ -485,7 +520,7 @@ void main() {
expect(findOverflowBackButton(), findsOneWidget);
expect(findOverflowNextButton(), findsOneWidget);
// Tap next to go to the third and final page.
// Tap twice to go to the third page.
await tester.tapAt(tester.getCenter(findOverflowNextButton()));
await tester.pumpAndSettle();
expect(find.text(_longLocalizations.cutButtonLabel), findsNothing);
@ -493,7 +528,7 @@ void main() {
expect(find.text(_longLocalizations.pasteButtonLabel), findsOneWidget);
expect(find.text(_longLocalizations.selectAllButtonLabel), findsNothing);
expect(findOverflowBackButton(), findsOneWidget);
expect(findOverflowNextButton(), findsNothing);
expect(findOverflowNextButton(), findsOneWidget);
// Tap back to go to the second page again.
await tester.tapAt(tester.getCenter(findOverflowBackButton()));

View File

@ -186,6 +186,7 @@ void main() {
onPaste: () {},
onSelectAll: () {},
onLiveTextInput: () {},
onLookUp: () {},
),
),
),
@ -201,18 +202,18 @@ void main() {
case TargetPlatform.android:
case TargetPlatform.fuchsia:
expect(find.text('Select all'), findsOneWidget);
expect(find.byType(TextSelectionToolbarTextButton), findsNWidgets(5));
expect(find.byType(TextSelectionToolbarTextButton), findsNWidgets(6));
case TargetPlatform.iOS:
expect(find.text('Select All'), findsOneWidget);
expect(findLiveTextButton(), findsOneWidget);
expect(find.byType(CupertinoTextSelectionToolbarButton), findsNWidgets(5));
expect(find.byType(CupertinoTextSelectionToolbarButton), findsNWidgets(6));
case TargetPlatform.linux:
case TargetPlatform.windows:
expect(find.text('Select all'), findsOneWidget);
expect(find.byType(DesktopTextSelectionToolbarButton), findsNWidgets(5));
expect(find.byType(DesktopTextSelectionToolbarButton), findsNWidgets(6));
case TargetPlatform.macOS:
expect(find.text('Select All'), findsOneWidget);
expect(find.byType(CupertinoDesktopTextSelectionToolbarButton), findsNWidgets(5));
expect(find.byType(CupertinoDesktopTextSelectionToolbarButton), findsNWidgets(6));
}
},
skip: kIsWeb, // [intended] on web the browser handles the context menu.

View File

@ -31,6 +31,7 @@ void main() {
expect(localizations.copyButtonLabel, isNotNull);
expect(localizations.cutButtonLabel, isNotNull);
expect(localizations.scanTextButtonLabel, isNotNull);
expect(localizations.lookUpButtonLabel, isNotNull);
expect(localizations.okButtonLabel, isNotNull);
expect(localizations.pasteButtonLabel, isNotNull);
expect(localizations.selectAllButtonLabel, isNotNull);

View File

@ -9216,8 +9216,8 @@ void main() {
const TextSelection(baseOffset: 24, extentOffset: 35),
);
// Selected text shows 3 toolbar buttons.
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(3));
// Selected text shows 4 toolbar buttons.
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(4));
// Tap the selected word to hide the toolbar and retain the selection.
await tester.tapAt(vPos);
@ -9235,7 +9235,7 @@ void main() {
controller.selection,
const TextSelection(baseOffset: 24, extentOffset: 35),
);
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(3));
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(4));
// Tap past the selected word to move the cursor and hide the toolbar.
await tester.tapAt(ePos);
@ -9290,7 +9290,7 @@ void main() {
);
// Selected text shows 3 toolbar buttons.
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(3));
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(4));
},
variant: const TargetPlatformVariant(<TargetPlatform>{ TargetPlatform.iOS }),
);
@ -9859,7 +9859,7 @@ void main() {
controller.selection,
const TextSelection(baseOffset: 0, extentOffset: 7),
);
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(3));
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(4));
await tester.tapAt(textfieldStart + const Offset(50.0, 9.0));
await tester.pumpAndSettle(kDoubleTapTimeout);
@ -9883,7 +9883,7 @@ void main() {
controller.selection,
const TextSelection(baseOffset: 0, extentOffset: 7),
);
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(3));
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(4));
// Third tap shows the toolbar and selects the paragraph.
await tester.tapAt(textfieldStart + const Offset(100.0, 9.0));
@ -9892,7 +9892,7 @@ void main() {
controller.selection,
const TextSelection(baseOffset: 0, extentOffset: 36),
);
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(3));
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(4));
await tester.tapAt(textfieldStart + const Offset(150.0, 50.0));
await tester.pump(const Duration(milliseconds: 50));
@ -9909,7 +9909,7 @@ void main() {
controller.selection,
const TextSelection(baseOffset: 44, extentOffset: 50),
);
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(3));
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(4));
// Third tap selects the paragraph and shows the toolbar.
await tester.tapAt(textfieldStart + const Offset(150.0, 50.0));
@ -9918,7 +9918,7 @@ void main() {
controller.selection,
const TextSelection(baseOffset: 36, extentOffset: 66),
);
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(3));
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(4));
},
variant: const TargetPlatformVariant(<TargetPlatform>{ TargetPlatform.iOS }),
);
@ -11110,6 +11110,7 @@ void main() {
);
final Offset textfieldStart = tester.getTopLeft(find.byType(TextField));
final bool isTargetPlatformIOS = defaultTargetPlatform == TargetPlatform.iOS;
await tester.tapAt(textfieldStart + const Offset(150.0, 9.0));
await tester.pump(const Duration(milliseconds: 50));
@ -11123,8 +11124,8 @@ void main() {
const TextSelection(baseOffset: 8, extentOffset: 12),
);
// Selected text shows 3 toolbar buttons.
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(3));
// Selected text shows 4 toolbar buttons on iOS, and 3 on macOS.
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : isTargetPlatformIOS ? findsNWidgets(4) : findsNWidgets(3));
await gesture.up();
await tester.pump();
@ -11134,8 +11135,9 @@ void main() {
controller.selection,
const TextSelection(baseOffset: 8, extentOffset: 12),
);
// The toolbar is still showing.
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(3));
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : isTargetPlatformIOS ? findsNWidgets(4) : findsNWidgets(3));
},
variant: const TargetPlatformVariant(<TargetPlatform>{ TargetPlatform.iOS, TargetPlatform.macOS }),
);
@ -11253,6 +11255,7 @@ void main() {
);
final Offset textfieldStart = tester.getTopLeft(find.byType(TextField));
final bool isTargetPlatformIOS = defaultTargetPlatform == TargetPlatform.iOS;
await tester.longPressAt(textfieldStart + const Offset(50.0, 9.0));
await tester.pumpAndSettle();
@ -11266,7 +11269,7 @@ void main() {
// Collapsed toolbar shows 3 buttons.
expect(
find.byType(CupertinoButton),
isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(3),
isContextMenuProvidedByPlatform ? findsNothing : isTargetPlatformIOS ? findsNWidgets(4) : findsNWidgets(3)
);
},
variant: const TargetPlatformVariant(<TargetPlatform>{ TargetPlatform.iOS, TargetPlatform.macOS }),
@ -11525,6 +11528,7 @@ void main() {
);
final Offset textfieldStart = tester.getTopLeft(find.byType(TextField));
final bool isTargetPlatformIOS = defaultTargetPlatform == TargetPlatform.iOS;
final TestGesture gesture =
await tester.startGesture(textfieldStart + const Offset(50.0, 9.0));
@ -11569,10 +11573,7 @@ void main() {
const TextSelection(baseOffset: 0, extentOffset: 23),
);
// The toolbar now shows up.
expect(
find.byType(CupertinoButton),
isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(3),
);
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : isTargetPlatformIOS ? findsNWidgets(4) : findsNWidgets(3));
},
variant: const TargetPlatformVariant(<TargetPlatform>{ TargetPlatform.iOS, TargetPlatform.macOS }),
);
@ -11684,6 +11685,7 @@ void main() {
);
final RenderEditable renderEditable = findRenderEditable(tester);
final bool isTargetPlatformIOS = defaultTargetPlatform == TargetPlatform.iOS;
List<TextSelectionPoint> lastCharEndpoint = renderEditable.getEndpointsForSelection(
const TextSelection.collapsed(offset: 66), // Last character's position.
@ -11737,7 +11739,7 @@ void main() {
const TextSelection(baseOffset: 0, extentOffset: 66, affinity: TextAffinity.upstream),
);
// The toolbar now shows up.
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(3));
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : isTargetPlatformIOS ? findsNWidgets(4) : findsNWidgets(3));
lastCharEndpoint = renderEditable.getEndpointsForSelection(
const TextSelection.collapsed(offset: 66), // Last character's position.
@ -12330,7 +12332,7 @@ void main() {
controller.selection,
const TextSelection(baseOffset: 8, extentOffset: 12),
);
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(3));
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : isTargetPlatformMobile ? findsNWidgets(4) : findsNWidgets(3));
},
variant: const TargetPlatformVariant(<TargetPlatform>{ TargetPlatform.iOS, TargetPlatform.macOS }),
);
@ -12414,6 +12416,7 @@ void main() {
);
final Offset textfieldStart = tester.getTopLeft(find.byType(TextField));
final bool isTargetPlatformIOS = defaultTargetPlatform == TargetPlatform.iOS;
await tester.tapAt(textfieldStart + const Offset(50.0, 9.0));
await tester.pump(const Duration(milliseconds: 50));
@ -12427,7 +12430,7 @@ void main() {
controller.selection,
const TextSelection(baseOffset: 0, extentOffset: 7),
);
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(3));
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(4));
// Double tap selecting the same word somewhere else is fine.
await tester.tapAt(textfieldStart + const Offset(100.0, 9.0));
@ -12447,7 +12450,7 @@ void main() {
controller.selection,
const TextSelection(baseOffset: 0, extentOffset: 7),
);
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(3));
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : isTargetPlatformIOS ? findsNWidgets(4) : findsNWidgets(3));
await tester.tapAt(textfieldStart + const Offset(150.0, 9.0));
await tester.pump(const Duration(milliseconds: 50));
@ -12463,7 +12466,7 @@ void main() {
controller.selection,
const TextSelection(baseOffset: 8, extentOffset: 12),
);
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(3));
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : isTargetPlatformIOS ? findsNWidgets(4) : findsNWidgets(3));
},
variant: const TargetPlatformVariant(<TargetPlatform>{ TargetPlatform.iOS }),
);
@ -12890,7 +12893,7 @@ void main() {
await gesture.up();
await tester.pumpAndSettle();
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(3));
expect(find.byType(CupertinoButton), isContextMenuProvidedByPlatform ? findsNothing : findsNWidgets(4));
}, variant: const TargetPlatformVariant(<TargetPlatform>{ TargetPlatform.iOS }));
testWidgets('tap on non-force-press-supported devices work', (WidgetTester tester) async {

View File

@ -154,6 +154,7 @@ void main() {
onCut: null,
onPaste: null,
onSelectAll: null,
onLookUp: null,
onLiveTextInput: () {
invokedLiveTextInputSuccessfully = true;
},

View File

@ -2930,6 +2930,7 @@ void main() {
),
);
final bool isTargetPlatformIOS = defaultTargetPlatform == TargetPlatform.iOS;
final Offset selectableTextStart = tester.getTopLeft(find.byType(SelectableText));
// This tap just puts the cursor somewhere different than where the double
@ -2957,8 +2958,8 @@ void main() {
const TextSelection(baseOffset: 8, extentOffset: 12),
);
// Selected text shows 1 toolbar buttons.
expect(find.byType(CupertinoButton), findsNWidgets(1));
// Selected text shows 1 toolbar buttons on MacOS, 2 on iOS.
expect(find.byType(CupertinoButton), isTargetPlatformIOS ? findsNWidgets(2) : findsNWidgets(1));
},
variant: const TargetPlatformVariant(<TargetPlatform>{ TargetPlatform.iOS, TargetPlatform.macOS }),
);
@ -3071,6 +3072,7 @@ void main() {
);
final Offset selectableTextStart = tester.getTopLeft(find.byType(SelectableText));
final bool isTargetPlatformIOS = defaultTargetPlatform == TargetPlatform.iOS;
await tester.tapAt(selectableTextStart + const Offset(150.0, 5.0));
await tester.pump(const Duration(milliseconds: 50));
@ -3087,8 +3089,8 @@ void main() {
const TextSelection(baseOffset: 8, extentOffset: 12),
);
// Selected text shows 1 toolbar buttons.
expect(find.byType(CupertinoButton), findsNWidgets(1));
// Selected text shows 2 toolbar buttons for iOS, 1 for macOS.
expect(find.byType(CupertinoButton), isTargetPlatformIOS ? findsNWidgets(2) : findsNWidgets(1));
await gesture.up();
await tester.pump();
@ -3099,7 +3101,7 @@ void main() {
const TextSelection(baseOffset: 8, extentOffset: 12),
);
// The toolbar is still showing.
expect(find.byType(CupertinoButton), findsNWidgets(1));
expect(find.byType(CupertinoButton), isTargetPlatformIOS ? findsNWidgets(2) : findsNWidgets(1));
},
variant: const TargetPlatformVariant(<TargetPlatform>{ TargetPlatform.iOS, TargetPlatform.macOS }),
);
@ -3198,6 +3200,7 @@ void main() {
);
final Offset selectableTextStart = tester.getTopLeft(find.byType(SelectableText));
final bool isTargetPlatformIOS = defaultTargetPlatform == TargetPlatform.iOS;
await tester.longPressAt(selectableTextStart + const Offset(50.0, 5.0));
await tester.pump();
@ -3215,7 +3218,7 @@ void main() {
);
// Toolbar shows one button.
expect(find.byType(CupertinoButton), findsNWidgets(1));
expect(find.byType(CupertinoButton), isTargetPlatformIOS ? findsNWidgets(2) : findsNWidgets(1));
},
variant: const TargetPlatformVariant(<TargetPlatform>{ TargetPlatform.iOS, TargetPlatform.macOS }),
);
@ -3480,6 +3483,7 @@ void main() {
await tester.startGesture(textOffsetToPosition(tester, 18));
await tester.pump(const Duration(milliseconds: 500));
final bool isTargetPlatformIOS = defaultTargetPlatform == TargetPlatform.iOS;
final EditableText editableTextWidget = tester.widget(find.byType(EditableText).first);
final TextEditingController controller = editableTextWidget.controller;
@ -3550,7 +3554,7 @@ void main() {
),
);
// The toolbar now shows up.
expect(find.byType(CupertinoButton), findsNWidgets(1));
expect(find.byType(CupertinoButton), isTargetPlatformIOS ? findsNWidgets(2) : findsNWidgets(1));
},
variant: const TargetPlatformVariant(<TargetPlatform>{ TargetPlatform.iOS }),
);
@ -3778,7 +3782,7 @@ void main() {
);
// Long press toolbar.
expect(find.byType(CupertinoButton), findsNWidgets(1));
expect(find.byType(CupertinoButton), findsNWidgets(2));
},
variant: const TargetPlatformVariant(<TargetPlatform>{ TargetPlatform.iOS }),
);
@ -3841,6 +3845,7 @@ void main() {
);
final Offset selectableTextStart = tester.getTopLeft(find.byType(SelectableText));
final bool isTargetPlatformIOS = defaultTargetPlatform == TargetPlatform.iOS;
await tester.longPressAt(selectableTextStart + const Offset(50.0, 5.0));
await tester.pump(const Duration(milliseconds: 50));
@ -3870,7 +3875,8 @@ void main() {
controller.selection,
const TextSelection(baseOffset: 8, extentOffset: 12),
);
expect(find.byType(CupertinoButton), findsNWidgets(1));
expect(find.byType(CupertinoButton), isTargetPlatformIOS ? findsNWidgets(2) : findsNWidgets(1));
}, variant: const TargetPlatformVariant(<TargetPlatform>{ TargetPlatform.iOS, TargetPlatform.macOS }),
);
@ -3887,6 +3893,7 @@ void main() {
),
);
final Offset selectableTextStart = tester.getTopLeft(find.byType(SelectableText));
final bool isTargetPlatformIOS = defaultTargetPlatform == TargetPlatform.iOS;
await tester.tapAt(selectableTextStart + const Offset(50.0, 5.0));
await tester.pump(const Duration(milliseconds: 50));
@ -3904,7 +3911,7 @@ void main() {
controller.selection,
const TextSelection(baseOffset: 0, extentOffset: 7),
);
expect(find.byType(CupertinoButton), findsNWidgets(1));
expect(find.byType(CupertinoButton), isTargetPlatformIOS ? findsNWidgets(2) : findsNWidgets(1));
// Double tap selecting the same word somewhere else is fine.
await tester.pumpAndSettle(kDoubleTapTimeout);
@ -3921,7 +3928,7 @@ void main() {
controller.selection,
const TextSelection(baseOffset: 0, extentOffset: 7),
);
expect(find.byType(CupertinoButton), findsNWidgets(1));
expect(find.byType(CupertinoButton), isTargetPlatformIOS ? findsNWidgets(2) : findsNWidgets(1));
// Hide the toolbar so it doesn't interfere with taps on the text.
final EditableTextState editableTextState =
@ -3943,7 +3950,7 @@ void main() {
controller.selection,
const TextSelection(baseOffset: 8, extentOffset: 12),
);
expect(find.byType(CupertinoButton), findsNWidgets(1));
expect(find.byType(CupertinoButton), isTargetPlatformIOS ? findsNWidgets(2) : findsNWidgets(1));
},
variant: const TargetPlatformVariant(<TargetPlatform>{ TargetPlatform.iOS, TargetPlatform.macOS }),
);
@ -4022,7 +4029,7 @@ void main() {
await gesture.up();
await tester.pump();
expect(find.byType(CupertinoButton), findsNWidgets(1));
expect(find.byType(CupertinoButton), findsNWidgets(2));
}, variant: const TargetPlatformVariant(<TargetPlatform>{ TargetPlatform.iOS }));
testWidgets('tap on non-force-press-supported devices work', (WidgetTester tester) async {

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "Maak toe",
"searchTextFieldPlaceholderLabel": "Soek",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "አሰናብት",
"searchTextFieldPlaceholderLabel": "ፍለጋ",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -43,5 +43,6 @@
"modalBarrierDismissLabel": "رفض",
"searchTextFieldPlaceholderLabel": "بحث",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "অগ্ৰাহ্য কৰক",
"searchTextFieldPlaceholderLabel": "সন্ধান কৰক",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "İmtina edin",
"searchTextFieldPlaceholderLabel": "Axtarın",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -33,5 +33,6 @@
"modalBarrierDismissLabel": "Адхіліць",
"searchTextFieldPlaceholderLabel": "Пошук",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "Отхвърляне",
"searchTextFieldPlaceholderLabel": "Търсене",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "খারিজ করুন",
"searchTextFieldPlaceholderLabel": "সার্চ করুন",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -28,5 +28,6 @@
"modalBarrierDismissLabel": "Odbaci",
"searchTextFieldPlaceholderLabel": "Pretraživanje",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "Ignora",
"searchTextFieldPlaceholderLabel": "Cerca",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -33,5 +33,6 @@
"modalBarrierDismissLabel": "Zavřít",
"searchTextFieldPlaceholderLabel": "Hledat",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -43,5 +43,6 @@
"searchTextFieldPlaceholderLabel": "Chwilio",
"modalBarrierDismissLabel": "Diystyru",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "Afvis",
"searchTextFieldPlaceholderLabel": "Søg",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "Schließen",
"searchTextFieldPlaceholderLabel": "Suche",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "Παράβλεψη",
"searchTextFieldPlaceholderLabel": "Αναζήτηση",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -165,6 +165,11 @@
"description": "The label for select-all buttons and menu items. The reference abbreviation is what iOS shows on text selection toolbars."
},
"lookUpButtonLabel": "Look Up",
"@lookUpButtonLabel": {
"description": "The label for the Look Up button and menu items on iOS."
},
"noSpellCheckReplacementsLabel": "No Replacements Found",
"@noSpellCheckReplacementsLabel": {
"description": "The label shown in the text selection context menu on iOS when a misspelled word is tapped but the spell checker found no reasonable fixes for it."

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "Cerrar",
"searchTextFieldPlaceholderLabel": "Buscar",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "Loobu",
"searchTextFieldPlaceholderLabel": "Otsige",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "Baztertu",
"searchTextFieldPlaceholderLabel": "Bilatu",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "نپذیرفتن",
"searchTextFieldPlaceholderLabel": "جستجو",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "Ohita",
"searchTextFieldPlaceholderLabel": "Hae",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "I-dismiss",
"searchTextFieldPlaceholderLabel": "Hanapin",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "Ignorer",
"searchTextFieldPlaceholderLabel": "Rechercher",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "Ignorar",
"searchTextFieldPlaceholderLabel": "Fai unha busca",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "Schließen",
"searchTextFieldPlaceholderLabel": "Suche",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "છોડી દો",
"searchTextFieldPlaceholderLabel": "શોધો",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -33,5 +33,6 @@
"modalBarrierDismissLabel": "סגירה",
"searchTextFieldPlaceholderLabel": "חיפוש",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "खारिज करें",
"searchTextFieldPlaceholderLabel": "खोजें",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -28,5 +28,6 @@
"modalBarrierDismissLabel": "Odbaci",
"searchTextFieldPlaceholderLabel": "Pretraživanje",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "Elvetés",
"searchTextFieldPlaceholderLabel": "Keresés",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "Փակել",
"searchTextFieldPlaceholderLabel": "Որոնում",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "Tutup",
"searchTextFieldPlaceholderLabel": "Telusuri",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "Hunsa",
"searchTextFieldPlaceholderLabel": "Leit",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "Ignora",
"searchTextFieldPlaceholderLabel": "Cerca",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "閉じる",
"searchTextFieldPlaceholderLabel": "検索",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "დახურვა",
"searchTextFieldPlaceholderLabel": "ძიება",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "Жабу",
"searchTextFieldPlaceholderLabel": "Іздеу",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "ច្រាន​ចោល",
"searchTextFieldPlaceholderLabel": "ស្វែងរក",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"tabSemanticsLabel": "\u0024\u0074\u0061\u0062\u0043\u006f\u0075\u006e\u0074\u0020\u0cb0\u0cb2\u0ccd\u0cb2\u0cbf\u0ca8\u0020\u0024\u0074\u0061\u0062\u0049\u006e\u0064\u0065\u0078\u0020\u0c9f\u0ccd\u0caf\u0cbe\u0cac\u0ccd",
"searchTextFieldPlaceholderLabel": "\u0cb9\u0cc1\u0ca1\u0cc1\u0c95\u0cbf",
"noSpellCheckReplacementsLabel": "\u004e\u006f\u0020\u0052\u0065\u0070\u006c\u0061\u0063\u0065\u006d\u0065\u006e\u0074\u0073\u0020\u0046\u006f\u0075\u006e\u0064",
"menuDismissLabel": "\u0044\u0069\u0073\u006d\u0069\u0073\u0073\u0020\u006d\u0065\u006e\u0075"
"menuDismissLabel": "\u0044\u0069\u0073\u006d\u0069\u0073\u0073\u0020\u006d\u0065\u006e\u0075",
"lookUpButtonLabel": "\u004c\u006f\u006f\u006b\u0020\u0055\u0070"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "닫기",
"searchTextFieldPlaceholderLabel": "검색",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "Жабуу",
"searchTextFieldPlaceholderLabel": "Издөө",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "ປິດໄວ້",
"searchTextFieldPlaceholderLabel": "ຊອກຫາ",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -33,5 +33,6 @@
"modalBarrierDismissLabel": "Atsisakyti",
"searchTextFieldPlaceholderLabel": "Paieška",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -28,5 +28,6 @@
"modalBarrierDismissLabel": "Nerādīt",
"searchTextFieldPlaceholderLabel": "Meklēšana",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "Отфрли",
"searchTextFieldPlaceholderLabel": "Пребарувајте",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "നിരസിക്കുക",
"searchTextFieldPlaceholderLabel": "തിരയുക",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "Үл хэрэгсэх",
"searchTextFieldPlaceholderLabel": "Хайх",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "डिसमिस करा",
"searchTextFieldPlaceholderLabel": "शोधा",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "Tolak",
"searchTextFieldPlaceholderLabel": "Cari",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "ပယ်ရန်",
"searchTextFieldPlaceholderLabel": "ရှာရန်",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "Avvis",
"searchTextFieldPlaceholderLabel": "Søk",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "खारेज गर्नुहोस्",
"searchTextFieldPlaceholderLabel": "खोज्नुहोस्",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "Sluiten",
"searchTextFieldPlaceholderLabel": "Zoeken",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "Avvis",
"searchTextFieldPlaceholderLabel": "Søk",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "ଖାରଜ କରନ୍ତୁ",
"searchTextFieldPlaceholderLabel": "ସନ୍ଧାନ କରନ୍ତୁ",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "ਖਾਰਜ ਕਰੋ",
"searchTextFieldPlaceholderLabel": "ਖੋਜੋ",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -33,5 +33,6 @@
"modalBarrierDismissLabel": "Zamknij",
"searchTextFieldPlaceholderLabel": "Szukaj",
"noSpellCheckReplacementsLabel": "Nie znaleziono zastąpień",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "Dispensar",
"searchTextFieldPlaceholderLabel": "Pesquisar",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -28,5 +28,6 @@
"modalBarrierDismissLabel": "Închideți",
"searchTextFieldPlaceholderLabel": "Căutați",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -33,5 +33,6 @@
"modalBarrierDismissLabel": "Закрыть",
"searchTextFieldPlaceholderLabel": "Поиск",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "ඉවත ලන්න",
"searchTextFieldPlaceholderLabel": "සෙවීම",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -33,5 +33,6 @@
"modalBarrierDismissLabel": "Odmietnuť",
"searchTextFieldPlaceholderLabel": "Hľadať",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -33,5 +33,6 @@
"modalBarrierDismissLabel": "Opusti",
"searchTextFieldPlaceholderLabel": "Iskanje",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "Hiq",
"searchTextFieldPlaceholderLabel": "Kërko",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -28,5 +28,6 @@
"modalBarrierDismissLabel": "Одбаци",
"searchTextFieldPlaceholderLabel": "Претражите",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "Stäng",
"searchTextFieldPlaceholderLabel": "Sök",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "Ondoa",
"searchTextFieldPlaceholderLabel": "Tafuta",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "நிராகரிக்கும்",
"searchTextFieldPlaceholderLabel": "தேடுக",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "విస్మరించు",
"searchTextFieldPlaceholderLabel": "సెర్చ్ చేయి",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "ปิด",
"searchTextFieldPlaceholderLabel": "ค้นหา",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "I-dismiss",
"searchTextFieldPlaceholderLabel": "Hanapin",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "Kapat",
"searchTextFieldPlaceholderLabel": "Ara",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -33,5 +33,6 @@
"modalBarrierDismissLabel": "Закрити",
"searchTextFieldPlaceholderLabel": "Шукайте",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "برخاست کریں",
"searchTextFieldPlaceholderLabel": "تلاش کریں",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "Yopish",
"searchTextFieldPlaceholderLabel": "Qidiruv",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "Bỏ qua",
"searchTextFieldPlaceholderLabel": "Tìm kiếm",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "关闭",
"searchTextFieldPlaceholderLabel": "搜索",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "Cashisa",
"searchTextFieldPlaceholderLabel": "Sesha",
"noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -91,6 +91,9 @@ class CupertinoLocalizationAf extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -244,6 +247,9 @@ class CupertinoLocalizationAm extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -397,6 +403,9 @@ class CupertinoLocalizationAr extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => r'$minute دقيقة​';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -550,6 +559,9 @@ class CupertinoLocalizationAs extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -703,6 +715,9 @@ class CupertinoLocalizationAz extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -856,6 +871,9 @@ class CupertinoLocalizationBe extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -1009,6 +1027,9 @@ class CupertinoLocalizationBg extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -1162,6 +1183,9 @@ class CupertinoLocalizationBn extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -1315,6 +1339,9 @@ class CupertinoLocalizationBs extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -1468,6 +1495,9 @@ class CupertinoLocalizationCa extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -1621,6 +1651,9 @@ class CupertinoLocalizationCs extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -1774,6 +1807,9 @@ class CupertinoLocalizationCy extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => r'$minute munud';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -1927,6 +1963,9 @@ class CupertinoLocalizationDa extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -2080,6 +2119,9 @@ class CupertinoLocalizationDe extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -2254,6 +2296,9 @@ class CupertinoLocalizationEl extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -2407,6 +2452,9 @@ class CupertinoLocalizationEn extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -2752,6 +2800,9 @@ class CupertinoLocalizationEs extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -3565,6 +3616,9 @@ class CupertinoLocalizationEt extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -3718,6 +3772,9 @@ class CupertinoLocalizationEu extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -3871,6 +3928,9 @@ class CupertinoLocalizationFa extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -4024,6 +4084,9 @@ class CupertinoLocalizationFi extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -4177,6 +4240,9 @@ class CupertinoLocalizationFil extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -4330,6 +4396,9 @@ class CupertinoLocalizationFr extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -4525,6 +4594,9 @@ class CupertinoLocalizationGl extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -4678,6 +4750,9 @@ class CupertinoLocalizationGsw extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -4831,6 +4906,9 @@ class CupertinoLocalizationGu extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -4984,6 +5062,9 @@ class CupertinoLocalizationHe extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -5137,6 +5218,9 @@ class CupertinoLocalizationHi extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -5290,6 +5374,9 @@ class CupertinoLocalizationHr extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -5443,6 +5530,9 @@ class CupertinoLocalizationHu extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -5596,6 +5686,9 @@ class CupertinoLocalizationHy extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -5749,6 +5842,9 @@ class CupertinoLocalizationId extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -5902,6 +5998,9 @@ class CupertinoLocalizationIs extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -6055,6 +6154,9 @@ class CupertinoLocalizationIt extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -6208,6 +6310,9 @@ class CupertinoLocalizationJa extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -6361,6 +6466,9 @@ class CupertinoLocalizationKa extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -6514,6 +6622,9 @@ class CupertinoLocalizationKk extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -6667,6 +6778,9 @@ class CupertinoLocalizationKm extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -6820,6 +6934,9 @@ class CupertinoLocalizationKn extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -6973,6 +7090,9 @@ class CupertinoLocalizationKo extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -7126,6 +7246,9 @@ class CupertinoLocalizationKy extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -7279,6 +7402,9 @@ class CupertinoLocalizationLo extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -7432,6 +7558,9 @@ class CupertinoLocalizationLt extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -7585,6 +7714,9 @@ class CupertinoLocalizationLv extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => r'$minute minūtes';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -7738,6 +7870,9 @@ class CupertinoLocalizationMk extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -7891,6 +8026,9 @@ class CupertinoLocalizationMl extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -8044,6 +8182,9 @@ class CupertinoLocalizationMn extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -8197,6 +8338,9 @@ class CupertinoLocalizationMr extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -8350,6 +8494,9 @@ class CupertinoLocalizationMs extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -8503,6 +8650,9 @@ class CupertinoLocalizationMy extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -8656,6 +8806,9 @@ class CupertinoLocalizationNb extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -8809,6 +8962,9 @@ class CupertinoLocalizationNe extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -8962,6 +9118,9 @@ class CupertinoLocalizationNl extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -9115,6 +9274,9 @@ class CupertinoLocalizationNo extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -9268,6 +9430,9 @@ class CupertinoLocalizationOr extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -9421,6 +9586,9 @@ class CupertinoLocalizationPa extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -9574,6 +9742,9 @@ class CupertinoLocalizationPl extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -9727,6 +9898,9 @@ class CupertinoLocalizationPt extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -9916,6 +10090,9 @@ class CupertinoLocalizationRo extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -10069,6 +10246,9 @@ class CupertinoLocalizationRu extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -10222,6 +10402,9 @@ class CupertinoLocalizationSi extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -10375,6 +10558,9 @@ class CupertinoLocalizationSk extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -10528,6 +10714,9 @@ class CupertinoLocalizationSl extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -10681,6 +10870,9 @@ class CupertinoLocalizationSq extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -10834,6 +11026,9 @@ class CupertinoLocalizationSr extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -11101,6 +11296,9 @@ class CupertinoLocalizationSv extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -11254,6 +11452,9 @@ class CupertinoLocalizationSw extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -11407,6 +11608,9 @@ class CupertinoLocalizationTa extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -11560,6 +11764,9 @@ class CupertinoLocalizationTe extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -11713,6 +11920,9 @@ class CupertinoLocalizationTh extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -11866,6 +12076,9 @@ class CupertinoLocalizationTl extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -12019,6 +12232,9 @@ class CupertinoLocalizationTr extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -12172,6 +12388,9 @@ class CupertinoLocalizationUk extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -12325,6 +12544,9 @@ class CupertinoLocalizationUr extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -12478,6 +12700,9 @@ class CupertinoLocalizationUz extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -12631,6 +12856,9 @@ class CupertinoLocalizationVi extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -12784,6 +13012,9 @@ class CupertinoLocalizationZh extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';
@ -13084,6 +13315,9 @@ class CupertinoLocalizationZu extends GlobalCupertinoLocalizations {
@override
String? get datePickerMinuteSemanticsLabelZero => null;
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuDismissLabel => 'Dismiss menu';

View File

@ -329,6 +329,9 @@ class MaterialLocalizationAf extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Lisensies';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Kieslysbalkkieslys';
@ -810,6 +813,9 @@ class MaterialLocalizationAm extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'ፈቃዶች';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'የምናሌ አሞሌ ምናሌ';
@ -1291,6 +1297,9 @@ class MaterialLocalizationAr extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'التراخيص';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'قائمة شريط القوائم';
@ -1772,6 +1781,9 @@ class MaterialLocalizationAs extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'অনুজ্ঞাপত্ৰসমূহ';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'মেনু বাৰ মেনু';
@ -2253,6 +2265,9 @@ class MaterialLocalizationAz extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Lisenziyalar';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Menyu paneli menyusu';
@ -2734,6 +2749,9 @@ class MaterialLocalizationBe extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Ліцэнзіі';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Меню "Панэль меню"';
@ -3215,6 +3233,9 @@ class MaterialLocalizationBg extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Лицензи';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Меню на лентата с менюта';
@ -3696,6 +3717,9 @@ class MaterialLocalizationBn extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'লাইসেন্স';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'মেনু বার মেনু';
@ -4177,6 +4201,9 @@ class MaterialLocalizationBs extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Licence';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Meni trake menija';
@ -4658,6 +4685,9 @@ class MaterialLocalizationCa extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Llicències';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Menú de la barra de menú';
@ -5139,6 +5169,9 @@ class MaterialLocalizationCs extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Licence';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Nabídka na liště s nabídkou';
@ -5620,6 +5653,9 @@ class MaterialLocalizationCy extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Trwyddedau';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Dewislen bar dewislen';
@ -6101,6 +6137,9 @@ class MaterialLocalizationDa extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Licenser';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Menuen for menulinjen';
@ -6582,6 +6621,9 @@ class MaterialLocalizationDe extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Lizenzen';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Menü in der Menüleiste';
@ -7127,6 +7169,9 @@ class MaterialLocalizationEl extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Άδειες';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Μενού γραμμής μενού';
@ -7608,6 +7653,9 @@ class MaterialLocalizationEn extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Licenses';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Menu bar menu';
@ -8823,6 +8871,9 @@ class MaterialLocalizationEs extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Licencias';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Menú de la barra de menú';
@ -12687,6 +12738,9 @@ class MaterialLocalizationEt extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Litsentsid';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Menüüriba menüü';
@ -13168,6 +13222,9 @@ class MaterialLocalizationEu extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Lizentziak';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Menu-barraren menua';
@ -13649,6 +13706,9 @@ class MaterialLocalizationFa extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'مجوزها';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'منوی نوار منو';
@ -14130,6 +14190,9 @@ class MaterialLocalizationFi extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Lisenssit';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Valikkopalkki';
@ -14611,6 +14674,9 @@ class MaterialLocalizationFil extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Mga Lisensya';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Menu sa menu bar';
@ -15092,6 +15158,9 @@ class MaterialLocalizationFr extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Licences';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Menu de la barre de menu';
@ -15715,6 +15784,9 @@ class MaterialLocalizationGl extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Licenzas';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Menú da barra de menú';
@ -16196,6 +16268,9 @@ class MaterialLocalizationGsw extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Lizenzen';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Menü in der Menüleiste';
@ -16677,6 +16752,9 @@ class MaterialLocalizationGu extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'લાઇસન્સ';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'મેનૂ બાર મેનૂ';
@ -17158,6 +17236,9 @@ class MaterialLocalizationHe extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'רישיונות';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'תפריט בסרגל התפריטים';
@ -17639,6 +17720,9 @@ class MaterialLocalizationHi extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'लाइसेंस';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'मेन्यू बार का मेन्यू';
@ -18120,6 +18204,9 @@ class MaterialLocalizationHr extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Licence';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Izbornik trake izbornika';
@ -18601,6 +18688,9 @@ class MaterialLocalizationHu extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Licencek';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Menüsor menüje';
@ -19082,6 +19172,9 @@ class MaterialLocalizationHy extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Արտոնագրեր';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Ընտրացանկի գոտու ընտրացանկ';
@ -19563,6 +19656,9 @@ class MaterialLocalizationId extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Lisensi';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Menu panel menu';
@ -20044,6 +20140,9 @@ class MaterialLocalizationIs extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Leyfi';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Valmyndarstika';
@ -20525,6 +20624,9 @@ class MaterialLocalizationIt extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Licenze';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Menu barra dei menu';
@ -21006,6 +21108,9 @@ class MaterialLocalizationJa extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'ライセンス';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'メニューバーのメニュー';
@ -21487,6 +21592,9 @@ class MaterialLocalizationKa extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'ლიცენზიები';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'მენიუს ზოლის მენიუ';
@ -21968,6 +22076,9 @@ class MaterialLocalizationKk extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Лицензиялар';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Мәзір жолағының мәзірі';
@ -22449,6 +22560,9 @@ class MaterialLocalizationKm extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'អាជ្ញាបណ្ណ';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'ម៉ឺនុយរបារម៉ឺនុយ';
@ -22930,6 +23044,9 @@ class MaterialLocalizationKn extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => '\u{caa}\u{cb0}\u{cb5}\u{cbe}\u{ca8}\u{c97}\u{cbf}\u{c97}\u{cb3}\u{cc1}';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => '\u{cae}\u{cc6}\u{ca8}\u{cc1}\u{20}\u{cac}\u{cbe}\u{cb0}\u{ccd}\u{200c}\u{20}\u{cae}\u{cc6}\u{ca8}\u{cc1}';
@ -23411,6 +23528,9 @@ class MaterialLocalizationKo extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => '라이선스';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => '메뉴 바 메뉴';
@ -23892,6 +24012,9 @@ class MaterialLocalizationKy extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Уруксаттамалар';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Меню тилкеси менюсу';
@ -24373,6 +24496,9 @@ class MaterialLocalizationLo extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'ໃບອະນຸຍາດ';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'ເມນູແຖບເມນູ';
@ -24854,6 +24980,9 @@ class MaterialLocalizationLt extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Licencijos';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Meniu juostos meniu';
@ -25335,6 +25464,9 @@ class MaterialLocalizationLv extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Licences';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Izvēļņu joslas izvēlne';
@ -25816,6 +25948,9 @@ class MaterialLocalizationMk extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Лиценци';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Мени на лентата со мени';
@ -26297,6 +26432,9 @@ class MaterialLocalizationMl extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'ലൈസൻസുകൾ';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'മെനു ബാർ മെനു';
@ -26778,6 +26916,9 @@ class MaterialLocalizationMn extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Лиценз';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Цэсний талбарын цэс';
@ -27259,6 +27400,9 @@ class MaterialLocalizationMr extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'परवाने';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'मेनू बार मेनू';
@ -27740,6 +27884,9 @@ class MaterialLocalizationMs extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Lesen';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Menu bar menu';
@ -28221,6 +28368,9 @@ class MaterialLocalizationMy extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'လိုင်စင်များ';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'မီနူးဘား မီနူး';
@ -28702,6 +28852,9 @@ class MaterialLocalizationNb extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Lisenser';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Meny med menylinje';
@ -29183,6 +29336,9 @@ class MaterialLocalizationNe extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'इजाजतपत्रहरू';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => '"मेनु बार" मेनु';
@ -29664,6 +29820,9 @@ class MaterialLocalizationNl extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Licenties';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Menu van menubalk';
@ -30145,6 +30304,9 @@ class MaterialLocalizationNo extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Lisenser';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Meny med menylinje';
@ -30626,6 +30788,9 @@ class MaterialLocalizationOr extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'ଲାଇସେନ୍ସଗୁଡ଼କ';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'ମେନୁ ବାର ମେନୁ';
@ -31107,6 +31272,9 @@ class MaterialLocalizationPa extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'ਲਾਇਸੰਸ';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'ਮੀਨੂ ਬਾਰ ਮੀਨੂ';
@ -31588,6 +31756,9 @@ class MaterialLocalizationPl extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Licencje';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Pasek menu';
@ -32069,6 +32240,9 @@ class MaterialLocalizationPs extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'جوازونه';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Menu bar menu';
@ -32550,6 +32724,9 @@ class MaterialLocalizationPt extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Licenças';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Menu da barra de menus';
@ -33182,6 +33359,9 @@ class MaterialLocalizationRo extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Licențe';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Bară de meniu';
@ -33663,6 +33843,9 @@ class MaterialLocalizationRu extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Лицензии';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Строка меню';
@ -34144,6 +34327,9 @@ class MaterialLocalizationSi extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'බලපත්‍ර';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'මෙනු තීරු මෙනුව';
@ -34625,6 +34811,9 @@ class MaterialLocalizationSk extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Licencie';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Ponuka panela s ponukami';
@ -35106,6 +35295,9 @@ class MaterialLocalizationSl extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Licence';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Meni menijske vrstice';
@ -35587,6 +35779,9 @@ class MaterialLocalizationSq extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Licencat';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Menyja e shiritit të menysë';
@ -36068,6 +36263,9 @@ class MaterialLocalizationSr extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Лиценце';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Мени трака менија';
@ -36863,6 +37061,9 @@ class MaterialLocalizationSv extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Licenser';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Menyrad';
@ -37344,6 +37545,9 @@ class MaterialLocalizationSw extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Leseni';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Menyu ya upau wa menyu';
@ -37825,6 +38029,9 @@ class MaterialLocalizationTa extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'உரிமங்கள்';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'மெனு பட்டியின் மெனு';
@ -38306,6 +38513,9 @@ class MaterialLocalizationTe extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'లైసెన్స్‌లు';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'మెనూ బార్ మెనూ';
@ -38787,6 +38997,9 @@ class MaterialLocalizationTh extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'ใบอนุญาต';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'เมนูในแถบเมนู';
@ -39268,6 +39481,9 @@ class MaterialLocalizationTl extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Mga Lisensya';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Menu sa menu bar';
@ -39749,6 +39965,9 @@ class MaterialLocalizationTr extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Lisanslar';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Menü çubuğu menüsü';
@ -40230,6 +40449,9 @@ class MaterialLocalizationUk extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Ліцензії';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Панель меню';
@ -40711,6 +40933,9 @@ class MaterialLocalizationUr extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'لائسنسز';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'مینیو بار کا مینیو';
@ -41192,6 +41417,9 @@ class MaterialLocalizationUz extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Litsenziyalar';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Menyu paneli';
@ -41673,6 +41901,9 @@ class MaterialLocalizationVi extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Giấy phép';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Trình đơn của thanh trình đơn';
@ -42154,6 +42385,9 @@ class MaterialLocalizationZh extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => '许可';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => '菜单栏的菜单';
@ -43128,6 +43362,9 @@ class MaterialLocalizationZu extends GlobalMaterialLocalizations {
@override
String get licensesPageTitle => 'Amalayisense';
@override
String get lookUpButtonLabel => 'Look Up';
@override
String get menuBarMenuLabel => 'Imenyu yebha yemenyu';

View File

@ -141,5 +141,6 @@
"expansionTileCollapsedTapHint": "Expand for more details",
"expandedHint": "Collapsed",
"collapsedHint": "Expanded",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -141,5 +141,6 @@
"expansionTileCollapsedTapHint": "Expand for more details",
"expandedHint": "Collapsed",
"collapsedHint": "Expanded",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -152,5 +152,6 @@
"expansionTileCollapsedTapHint": "Expand for more details",
"expandedHint": "Collapsed",
"collapsedHint": "Expanded",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

View File

@ -141,5 +141,6 @@
"expansionTileCollapsedTapHint": "Expand for more details",
"expandedHint": "Collapsed",
"collapsedHint": "Expanded",
"menuDismissLabel": "Dismiss menu"
"menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
}

Some files were not shown because too many files have changed in this diff Show More