[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? onCut,
required VoidCallback? onPaste, required VoidCallback? onPaste,
required VoidCallback? onSelectAll, required VoidCallback? onSelectAll,
required VoidCallback? onLookUp,
required VoidCallback? onLiveTextInput, required VoidCallback? onLiveTextInput,
required this.anchors, required this.anchors,
}) : children = null, }) : children = null,
@ -103,6 +104,7 @@ class CupertinoAdaptiveTextSelectionToolbar extends StatelessWidget {
onCut: onCut, onCut: onCut,
onPaste: onPaste, onPaste: onPaste,
onSelectAll: onSelectAll, onSelectAll: onSelectAll,
onLookUp: onLookUp,
onLiveTextInput: onLiveTextInput onLiveTextInput: onLiveTextInput
); );

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1852,6 +1852,7 @@ class EditableText extends StatefulWidget {
required final VoidCallback? onCut, required final VoidCallback? onCut,
required final VoidCallback? onPaste, required final VoidCallback? onPaste,
required final VoidCallback? onSelectAll, required final VoidCallback? onSelectAll,
required final VoidCallback? onLookUp,
required final VoidCallback? onLiveTextInput, required final VoidCallback? onLiveTextInput,
}) { }) {
final List<ContextMenuButtonItem> resultButtonItem = <ContextMenuButtonItem>[]; final List<ContextMenuButtonItem> resultButtonItem = <ContextMenuButtonItem>[];
@ -1882,6 +1883,11 @@ class EditableText extends StatefulWidget {
onPressed: onSelectAll, onPressed: onSelectAll,
type: ContextMenuButtonType.selectAll, 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 @override
bool get liveTextInputEnabled { bool get liveTextInputEnabled {
return _liveTextInputStatus?.value == LiveTextInputStatus.enabled && 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) { void _startLiveTextInput(SelectionChangedCause cause) {
if (!liveTextInputEnabled) { if (!liveTextInputEnabled) {
return; return;
@ -2623,6 +2654,9 @@ class EditableTextState extends State<EditableText> with AutomaticKeepAliveClien
onSelectAll: selectAllEnabled onSelectAll: selectAllEnabled
? () => selectAll(SelectionChangedCause.toolbar) ? () => selectAll(SelectionChangedCause.toolbar)
: null, : null,
onLookUp: lookUpEnabled
? () => lookUpSelection(SelectionChangedCause.toolbar)
: null,
onLiveTextInput: liveTextInputEnabled onLiveTextInput: liveTextInputEnabled
? () => _startLiveTextInput(SelectionChangedCause.toolbar) ? () => _startLiveTextInput(SelectionChangedCause.toolbar)
: null, : null,

View File

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

View File

@ -201,6 +201,7 @@ void main() {
setUp(() async { setUp(() async {
TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(SystemChannels.platform, mockClipboard.handleMethodCall); TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(SystemChannels.platform, mockClipboard.handleMethodCall);
EditableText.debugDeterministicCursor = false; EditableText.debugDeterministicCursor = false;
// Fill the clipboard so that the Paste option is available in the text // Fill the clipboard so that the Paste option is available in the text
// selection menu. // 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 { testWidgets('can use the desktop cut/copy/paste buttons on Mac', (WidgetTester tester) async {
final TextEditingController controller = TextEditingController( final TextEditingController controller = TextEditingController(
text: 'blah1 blah2', 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 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. // 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( await tester.pumpWidget(
CupertinoApp( CupertinoApp(
home: Center( home: Center(
@ -1879,10 +1978,10 @@ void main() {
// Plain collapsed selection. // Plain collapsed selection.
expect(controller.selection.isCollapsed, isTrue); expect(controller.selection.isCollapsed, isTrue);
expect(controller.selection.baseOffset, isTargetPlatformMobile ? 7 : 6); expect(controller.selection.baseOffset, isTargetPlatformIOS ? 7 : 6);
// Toolbar shows on mobile. // 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 })); }, variant: const TargetPlatformVariant(<TargetPlatform>{ TargetPlatform.iOS, TargetPlatform.macOS }));
testWidgets( testWidgets(
@ -2014,7 +2113,7 @@ void main() {
); );
// Selected text shows 3 toolbar buttons. // 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. // Tap the selected word to hide the toolbar and retain the selection.
await tester.tapAt(vPos); await tester.tapAt(vPos);
@ -2032,7 +2131,7 @@ void main() {
controller.selection, controller.selection,
const TextSelection(baseOffset: 24, extentOffset: 35), 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. // Tap past the selected word to move the cursor and hide the toolbar.
await tester.tapAt(ePos); await tester.tapAt(ePos);
@ -2145,8 +2244,8 @@ void main() {
} else { } else {
switch (defaultTargetPlatform) { switch (defaultTargetPlatform) {
case TargetPlatform.macOS: case TargetPlatform.macOS:
case TargetPlatform.iOS:
expect(find.byType(CupertinoButton), findsNWidgets(3)); expect(find.byType(CupertinoButton), findsNWidgets(3));
case TargetPlatform.iOS:
case TargetPlatform.android: case TargetPlatform.android:
case TargetPlatform.fuchsia: case TargetPlatform.fuchsia:
case TargetPlatform.linux: 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 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. // 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( await tester.pumpWidget(
CupertinoApp( CupertinoApp(
home: Center( home: Center(
@ -2351,7 +2450,7 @@ void main() {
await tester.pump(const Duration(milliseconds: 50)); await tester.pump(const Duration(milliseconds: 50));
// First tap moved the cursor. // First tap moved the cursor.
expect(controller.selection.isCollapsed, isTrue); 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.tapAt(pPos);
await tester.pumpAndSettle(); await tester.pumpAndSettle();
@ -2363,7 +2462,7 @@ void main() {
); );
// Selected text shows 3 toolbar buttons. // 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 })); }, variant: const TargetPlatformVariant(<TargetPlatform>{ TargetPlatform.iOS, TargetPlatform.macOS }));
testWidgets( 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 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. // 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( await tester.pumpWidget(
CupertinoApp( CupertinoApp(
home: Center( home: Center(
@ -2451,7 +2550,7 @@ void main() {
await tester.pump(const Duration(milliseconds: 50)); await tester.pump(const Duration(milliseconds: 50));
// First tap moved the cursor. // First tap moved the cursor.
expect(controller.selection.isCollapsed, isTrue); 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.tapAt(pPos);
await tester.pump(const Duration(milliseconds: 500)); 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 // 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. // likely a bug in iOS 12 and not present in other versions.
expect(controller.selection.isCollapsed, isTrue); expect(controller.selection.isCollapsed, isTrue);
expect(controller.selection.baseOffset, isTargetPlatformMobile ? 7 : 6); expect(controller.selection.baseOffset, isTargetPlatformIOS ? 7 : 6);
// No toolbar. // No toolbar.
expect(find.byType(CupertinoButton), findsNothing); expect(find.byType(CupertinoButton), findsNothing);
@ -2949,18 +3048,18 @@ void main() {
await tester.longPressAt(ePos); await tester.longPressAt(ePos);
await tester.pump(const Duration(milliseconds: 50)); await tester.pump(const Duration(milliseconds: 50));
final bool isTargetPlatformMobile = defaultTargetPlatform == TargetPlatform.iOS; final bool isTargetPlatformIOS = defaultTargetPlatform == TargetPlatform.iOS;
if (kIsWeb) { if (kIsWeb) {
expect(find.byType(CupertinoButton), findsNothing); expect(find.byType(CupertinoButton), findsNothing);
} else { } 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.isCollapsed, isTrue);
expect(controller.selection.baseOffset, 6); expect(controller.selection.baseOffset, 6);
// Tap in a slightly different position to avoid hitting the context menu // Tap in a slightly different position to avoid hitting the context menu
// on desktop. // on desktop.
final Offset secondTapPos = isTargetPlatformMobile final Offset secondTapPos = isTargetPlatformIOS
? ePos ? ePos
: ePos + const Offset(-1.0, 0.0); : ePos + const Offset(-1.0, 0.0);
await tester.tapAt(secondTapPos); 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 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. // 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( await tester.pumpWidget(
CupertinoApp( CupertinoApp(
home: Center( home: Center(
@ -3326,7 +3425,7 @@ void main() {
await tester.pump(const Duration(milliseconds: 50)); await tester.pump(const Duration(milliseconds: 50));
// First tap moved the cursor to the beginning of the second word. // First tap moved the cursor to the beginning of the second word.
expect(controller.selection.isCollapsed, isTrue); 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.tapAt(pPos);
await tester.pump(const Duration(milliseconds: 500)); 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 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. // 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( await tester.pumpWidget(
CupertinoApp( CupertinoApp(
home: Center( home: Center(
@ -3388,7 +3487,7 @@ void main() {
if (isContextMenuProvidedByPlatform) { if (isContextMenuProvidedByPlatform) {
expect(find.byType(CupertinoButton), findsNothing); expect(find.byType(CupertinoButton), findsNothing);
} else { } else {
expect(find.byType(CupertinoButton), isTargetPlatformMobile ? findsNWidgets(2) : findsNWidgets(1)); expect(find.byType(CupertinoButton), isTargetPlatformIOS ? findsNWidgets(2) : findsNWidgets(1));
} }
await tester.tapAt(pPos); await tester.tapAt(pPos);
@ -3397,7 +3496,7 @@ void main() {
// First tap moved the cursor. // First tap moved the cursor.
expect(find.byType(CupertinoButton), findsNothing); expect(find.byType(CupertinoButton), findsNothing);
expect(controller.selection.isCollapsed, isTrue); 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.tapAt(pPos);
await tester.pumpAndSettle(); await tester.pumpAndSettle();
@ -3408,7 +3507,7 @@ void main() {
const TextSelection(baseOffset: 8, extentOffset: 12), const TextSelection(baseOffset: 8, extentOffset: 12),
); );
// Shows toolbar. // 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 })); }, variant: const TargetPlatformVariant(<TargetPlatform>{ TargetPlatform.iOS, TargetPlatform.macOS }));
testWidgets( testWidgets(
@ -3428,6 +3527,7 @@ void main() {
); );
final Offset textFieldStart = tester.getTopLeft(find.byType(CupertinoTextField)); 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.tapAt(textFieldStart + const Offset(50.0, 5.0));
await tester.pump(const Duration(milliseconds: 50)); await tester.pump(const Duration(milliseconds: 50));
@ -3441,7 +3541,7 @@ void main() {
controller.selection, controller.selection,
const TextSelection(baseOffset: 0, extentOffset: 7), 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. // Double tap selecting the same word somewhere else is fine.
await tester.tapAt(textFieldStart + const Offset(100.0, 5.0)); await tester.tapAt(textFieldStart + const Offset(100.0, 5.0));
@ -3461,7 +3561,7 @@ void main() {
controller.selection, controller.selection,
const TextSelection(baseOffset: 0, extentOffset: 7), 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.tapAt(textFieldStart + const Offset(150.0, 5.0));
await tester.pump(const Duration(milliseconds: 50)); await tester.pump(const Duration(milliseconds: 50));
@ -3477,7 +3577,7 @@ void main() {
controller.selection, controller.selection,
const TextSelection(baseOffset: 8, extentOffset: 12), 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 })); }, variant: const TargetPlatformVariant(<TargetPlatform>{ TargetPlatform.iOS }));
group('Triple tap/click', () { group('Triple tap/click', () {
@ -3717,6 +3817,7 @@ void main() {
); );
final Offset textfieldStart = tester.getTopLeft(find.byType(CupertinoTextField)); 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.tapAt(textfieldStart + const Offset(50.0, 9.0));
await tester.pump(const Duration(milliseconds: 50)); await tester.pump(const Duration(milliseconds: 50));
@ -3729,7 +3830,7 @@ void main() {
controller.selection, controller.selection,
const TextSelection(baseOffset: 0, extentOffset: 7), 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.tapAt(textfieldStart + const Offset(50.0, 9.0));
await tester.pumpAndSettle(kDoubleTapTimeout); await tester.pumpAndSettle(kDoubleTapTimeout);
@ -3755,7 +3856,7 @@ void main() {
controller.selection, controller.selection,
const TextSelection(baseOffset: 0, extentOffset: 7), 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. // Third tap shows the toolbar and selects the paragraph.
await tester.tapAt(textfieldStart + const Offset(100.0, 9.0)); await tester.tapAt(textfieldStart + const Offset(100.0, 9.0));
@ -3764,7 +3865,7 @@ void main() {
controller.selection, controller.selection,
const TextSelection(baseOffset: 0, extentOffset: 36), 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.tapAt(textfieldStart + const Offset(150.0, 25.0));
await tester.pump(const Duration(milliseconds: 50)); await tester.pump(const Duration(milliseconds: 50));
@ -3782,7 +3883,7 @@ void main() {
controller.selection, controller.selection,
const TextSelection(baseOffset: 44, extentOffset: 50), 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. // Third tap selects the paragraph and shows the toolbar.
await tester.tapAt(textfieldStart + const Offset(150.0, 25.0)); await tester.tapAt(textfieldStart + const Offset(150.0, 25.0));
@ -3791,7 +3892,7 @@ void main() {
controller.selection, controller.selection,
const TextSelection(baseOffset: 36, extentOffset: 66), 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 }), 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 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. // 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( await tester.pumpWidget(
CupertinoApp( CupertinoApp(
home: Center( home: Center(
@ -4824,7 +4925,7 @@ void main() {
// Fall back to a single tap which selects the edge of the word on iOS, and // Fall back to a single tap which selects the edge of the word on iOS, and
// a precise position on macOS. // a precise position on macOS.
expect(controller.selection.isCollapsed, isTrue); expect(controller.selection.isCollapsed, isTrue);
expect(controller.selection.baseOffset, isTargetPlatformMobile ? 12 : 9); expect(controller.selection.baseOffset, isTargetPlatformIOS ? 12 : 9);
await tester.pump(); await tester.pump();
// Falling back to a single tap doesn't trigger a toolbar. // 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 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. // 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( await tester.pumpWidget(
CupertinoApp( CupertinoApp(
@ -4856,7 +4957,7 @@ void main() {
await tester.tapAt(ePos, pointer: 7); await tester.tapAt(ePos, pointer: 7);
await tester.pump(const Duration(milliseconds: 50)); await tester.pump(const Duration(milliseconds: 50));
expect(controller.selection.isCollapsed, isTrue); 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.tapAt(ePos, pointer: 7);
await tester.pumpAndSettle(); await tester.pumpAndSettle();
expect(controller.selection.baseOffset, 4); expect(controller.selection.baseOffset, 4);
@ -8142,7 +8243,7 @@ void main() {
final TextEditingController controller = TextEditingController( final TextEditingController controller = TextEditingController(
text: 'Atwater Peel Sherbrooke Bonaventure', text: 'Atwater Peel Sherbrooke Bonaventure',
); );
final bool isTargetPlatformMobile = defaultTargetPlatform == TargetPlatform.iOS; final bool isTargetPlatformIOS = defaultTargetPlatform == TargetPlatform.iOS;
await tester.pumpWidget( await tester.pumpWidget(
CupertinoApp( CupertinoApp(
home: Center( home: Center(
@ -8167,7 +8268,7 @@ void main() {
kind: PointerDeviceKind.mouse, kind: PointerDeviceKind.mouse,
); );
await tester.pumpAndSettle(); await tester.pumpAndSettle();
if (isTargetPlatformMobile) { if (isTargetPlatformIOS) {
await gesture.up(); await gesture.up();
// Not a double tap + drag. // Not a double tap + drag.
await tester.pumpAndSettle(kDoubleTapTimeout); await tester.pumpAndSettle(kDoubleTapTimeout);
@ -8176,7 +8277,7 @@ void main() {
expect(controller.selection.extentOffset, 23); expect(controller.selection.extentOffset, 23);
// Expand the selection a bit. // Expand the selection a bit.
if (isTargetPlatformMobile) { if (isTargetPlatformIOS) {
await gesture.down(textOffsetToPosition(tester, 24)); await gesture.down(textOffsetToPosition(tester, 24));
await tester.pumpAndSettle(); await tester.pumpAndSettle();
} }
@ -8355,7 +8456,7 @@ void main() {
final TextEditingController controller = TextEditingController( final TextEditingController controller = TextEditingController(
text: 'Atwater Peel Sherbrooke Bonaventure', text: 'Atwater Peel Sherbrooke Bonaventure',
); );
final bool isTargetPlatformMobile = defaultTargetPlatform == TargetPlatform.iOS; final bool isTargetPlatformIOS = defaultTargetPlatform == TargetPlatform.iOS;
await tester.pumpWidget( await tester.pumpWidget(
CupertinoApp( CupertinoApp(
home: Center( home: Center(
@ -8380,7 +8481,7 @@ void main() {
kind: PointerDeviceKind.mouse, kind: PointerDeviceKind.mouse,
); );
await tester.pumpAndSettle(); await tester.pumpAndSettle();
if (isTargetPlatformMobile) { if (isTargetPlatformIOS) {
await gesture.up(); await gesture.up();
// Not a double tap + drag. // Not a double tap + drag.
await tester.pumpAndSettle(kDoubleTapTimeout); await tester.pumpAndSettle(kDoubleTapTimeout);
@ -8390,7 +8491,7 @@ void main() {
expect(controller.selection.extentOffset, 8); expect(controller.selection.extentOffset, 8);
// Expand the selection a bit. // Expand the selection a bit.
if (isTargetPlatformMobile) { if (isTargetPlatformIOS) {
await gesture.down(textOffsetToPosition(tester, 7)); await gesture.down(textOffsetToPosition(tester, 7));
await tester.pumpAndSettle(); 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 { 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. // 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); addTearDown(tester.view.reset);
final TextEditingController controller = TextEditingController(text: 'abc def ghi'); final TextEditingController controller = TextEditingController(text: 'abc def ghi');
@ -270,6 +270,7 @@ void main() {
expect(find.text('Copy'), findsNothing); expect(find.text('Copy'), findsNothing);
expect(find.text('Paste'), findsNothing); expect(find.text('Paste'), findsNothing);
expect(find.text('Select All'), findsNothing); expect(find.text('Select All'), findsNothing);
expect(find.text('Look Up'), findsNothing);
expect(findOverflowBackButton(), findsNothing); expect(findOverflowBackButton(), findsNothing);
expect(findOverflowNextButton(), findsNothing); expect(findOverflowNextButton(), findsNothing);
@ -285,27 +286,43 @@ void main() {
expect(find.text('Copy'), findsOneWidget); expect(find.text('Copy'), findsOneWidget);
expect(find.text('Paste'), findsNothing); expect(find.text('Paste'), findsNothing);
expect(find.text('Select All'), findsNothing); expect(find.text('Select All'), findsNothing);
expect(find.text('Look Up'), findsNothing);
expect(findOverflowBackButton(), findsNothing); expect(findOverflowBackButton(), findsNothing);
expect(findOverflowNextButton(), findsOneWidget); 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 // Tapping the next button shows the overflowing button and the next
// button is hidden as the last page is shown. // button is hidden as the last page is shown.
await tester.tapAt(tester.getCenter(findOverflowNextButton())); await tester.tapAt(tester.getCenter(findOverflowNextButton()));
await tester.pumpAndSettle(); await tester.pumpAndSettle();
expect(find.text('Cut'), findsNothing); expect(find.text('Cut'), findsNothing);
expect(find.text('Copy'), 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('Select All'), findsNothing);
expect(find.text('Look Up'), findsOneWidget);
expect(findOverflowBackButton(), findsOneWidget); expect(findOverflowBackButton(), findsOneWidget);
expect(findOverflowNextButton(), findsNothing); expect(findOverflowNextButton(), findsNothing);
// Tapping the back button shows the first page again with the next button. // Tapping the back button shows the first page again with the next button.
await tester.tapAt(tester.getCenter(findOverflowBackButton())); await tester.tapAt(tester.getCenter(findOverflowBackButton()));
await tester.pumpAndSettle(); await tester.pumpAndSettle();
await tester.tapAt(tester.getCenter(findOverflowBackButton()));
await tester.pumpAndSettle();
expect(find.text('Cut'), findsOneWidget); expect(find.text('Cut'), findsOneWidget);
expect(find.text('Copy'), findsOneWidget); expect(find.text('Copy'), findsOneWidget);
expect(find.text('Paste'), findsNothing); expect(find.text('Paste'), findsNothing);
expect(find.text('Select All'), findsNothing); expect(find.text('Select All'), findsNothing);
expect(find.text('Look Up'), findsNothing);
expect(findOverflowBackButton(), findsNothing); expect(findOverflowBackButton(), findsNothing);
expect(findOverflowNextButton(), findsOneWidget); expect(findOverflowNextButton(), findsOneWidget);
}, },
@ -340,6 +357,7 @@ void main() {
expect(find.text('Copy'), findsNothing); expect(find.text('Copy'), findsNothing);
expect(find.text('Paste'), findsNothing); expect(find.text('Paste'), findsNothing);
expect(find.text('Select All'), findsNothing); expect(find.text('Select All'), findsNothing);
expect(find.text('Look Up'), findsNothing);
expect(findOverflowBackButton(), findsNothing); expect(findOverflowBackButton(), findsNothing);
expect(findOverflowNextButton(), findsNothing); expect(findOverflowNextButton(), findsNothing);
@ -356,6 +374,7 @@ void main() {
expect(find.text('Copy'), findsNothing); expect(find.text('Copy'), findsNothing);
expect(find.text('Paste'), findsNothing); expect(find.text('Paste'), findsNothing);
expect(find.text('Select All'), findsNothing); expect(find.text('Select All'), findsNothing);
expect(find.text('Look Up'), findsNothing);
expect(findOverflowBackButton(), findsNothing); expect(findOverflowBackButton(), findsNothing);
expect(findOverflowNextButton(), findsOneWidget); expect(findOverflowNextButton(), findsOneWidget);
@ -367,22 +386,36 @@ void main() {
expect(find.text('Copy'), findsOneWidget); expect(find.text('Copy'), findsOneWidget);
expect(find.text('Paste'), findsNothing); expect(find.text('Paste'), findsNothing);
expect(find.text('Select All'), findsNothing); expect(find.text('Select All'), findsNothing);
expect(find.text('Look Up'), findsNothing);
expect(findOverflowBackButton(), findsOneWidget); expect(findOverflowBackButton(), findsOneWidget);
expect(findOverflowNextButton(), findsOneWidget); expect(findOverflowNextButton(), findsOneWidget);
// Tapping the next button again shows Paste and hides the next button as // Tapping the next button again shows Paste
// the last page is shown.
await tester.tapAt(tester.getCenter(findOverflowNextButton())); await tester.tapAt(tester.getCenter(findOverflowNextButton()));
await tester.pumpAndSettle(); await tester.pumpAndSettle();
expect(find.byType(CupertinoTextSelectionToolbarButton), findsNWidgets(2)); expect(find.byType(CupertinoTextSelectionToolbarButton), findsNWidgets(3));
expect(find.text('Cut'), findsNothing); expect(find.text('Cut'), findsNothing);
expect(find.text('Copy'), findsNothing); expect(find.text('Copy'), findsNothing);
expect(find.text('Paste'), findsOneWidget); expect(find.text('Paste'), findsOneWidget);
expect(find.text('Select All'), 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 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(findOverflowBackButton(), findsOneWidget);
expect(findOverflowNextButton(), findsNothing); 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.tapAt(tester.getCenter(findOverflowBackButton()));
await tester.pumpAndSettle(); await tester.pumpAndSettle();
expect(find.byType(CupertinoTextSelectionToolbarButton), findsNWidgets(3)); expect(find.byType(CupertinoTextSelectionToolbarButton), findsNWidgets(3));
@ -390,6 +423,7 @@ void main() {
expect(find.text('Copy'), findsOneWidget); expect(find.text('Copy'), findsOneWidget);
expect(find.text('Paste'), findsNothing); expect(find.text('Paste'), findsNothing);
expect(find.text('Select All'), findsNothing); expect(find.text('Select All'), findsNothing);
expect(find.text('Look Up'), findsNothing);
expect(findOverflowBackButton(), findsOneWidget); expect(findOverflowBackButton(), findsOneWidget);
expect(findOverflowNextButton(), findsOneWidget); expect(findOverflowNextButton(), findsOneWidget);
@ -401,6 +435,7 @@ void main() {
expect(find.text('Copy'), findsNothing); expect(find.text('Copy'), findsNothing);
expect(find.text('Paste'), findsNothing); expect(find.text('Paste'), findsNothing);
expect(find.text('Select All'), findsNothing); expect(find.text('Select All'), findsNothing);
expect(find.text('Look Up'), findsNothing);
expect(findOverflowBackButton(), findsNothing); expect(findOverflowBackButton(), findsNothing);
expect(findOverflowNextButton(), findsOneWidget); expect(findOverflowNextButton(), findsOneWidget);
}, },
@ -485,7 +520,7 @@ void main() {
expect(findOverflowBackButton(), findsOneWidget); expect(findOverflowBackButton(), findsOneWidget);
expect(findOverflowNextButton(), 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.tapAt(tester.getCenter(findOverflowNextButton()));
await tester.pumpAndSettle(); await tester.pumpAndSettle();
expect(find.text(_longLocalizations.cutButtonLabel), findsNothing); expect(find.text(_longLocalizations.cutButtonLabel), findsNothing);
@ -493,7 +528,7 @@ void main() {
expect(find.text(_longLocalizations.pasteButtonLabel), findsOneWidget); expect(find.text(_longLocalizations.pasteButtonLabel), findsOneWidget);
expect(find.text(_longLocalizations.selectAllButtonLabel), findsNothing); expect(find.text(_longLocalizations.selectAllButtonLabel), findsNothing);
expect(findOverflowBackButton(), findsOneWidget); expect(findOverflowBackButton(), findsOneWidget);
expect(findOverflowNextButton(), findsNothing); expect(findOverflowNextButton(), findsOneWidget);
// Tap back to go to the second page again. // Tap back to go to the second page again.
await tester.tapAt(tester.getCenter(findOverflowBackButton())); await tester.tapAt(tester.getCenter(findOverflowBackButton()));

View File

@ -186,6 +186,7 @@ void main() {
onPaste: () {}, onPaste: () {},
onSelectAll: () {}, onSelectAll: () {},
onLiveTextInput: () {}, onLiveTextInput: () {},
onLookUp: () {},
), ),
), ),
), ),
@ -201,18 +202,18 @@ void main() {
case TargetPlatform.android: case TargetPlatform.android:
case TargetPlatform.fuchsia: case TargetPlatform.fuchsia:
expect(find.text('Select all'), findsOneWidget); expect(find.text('Select all'), findsOneWidget);
expect(find.byType(TextSelectionToolbarTextButton), findsNWidgets(5)); expect(find.byType(TextSelectionToolbarTextButton), findsNWidgets(6));
case TargetPlatform.iOS: case TargetPlatform.iOS:
expect(find.text('Select All'), findsOneWidget); expect(find.text('Select All'), findsOneWidget);
expect(findLiveTextButton(), findsOneWidget); expect(findLiveTextButton(), findsOneWidget);
expect(find.byType(CupertinoTextSelectionToolbarButton), findsNWidgets(5)); expect(find.byType(CupertinoTextSelectionToolbarButton), findsNWidgets(6));
case TargetPlatform.linux: case TargetPlatform.linux:
case TargetPlatform.windows: case TargetPlatform.windows:
expect(find.text('Select all'), findsOneWidget); expect(find.text('Select all'), findsOneWidget);
expect(find.byType(DesktopTextSelectionToolbarButton), findsNWidgets(5)); expect(find.byType(DesktopTextSelectionToolbarButton), findsNWidgets(6));
case TargetPlatform.macOS: case TargetPlatform.macOS:
expect(find.text('Select All'), findsOneWidget); 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. 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.copyButtonLabel, isNotNull);
expect(localizations.cutButtonLabel, isNotNull); expect(localizations.cutButtonLabel, isNotNull);
expect(localizations.scanTextButtonLabel, isNotNull); expect(localizations.scanTextButtonLabel, isNotNull);
expect(localizations.lookUpButtonLabel, isNotNull);
expect(localizations.okButtonLabel, isNotNull); expect(localizations.okButtonLabel, isNotNull);
expect(localizations.pasteButtonLabel, isNotNull); expect(localizations.pasteButtonLabel, isNotNull);
expect(localizations.selectAllButtonLabel, isNotNull); expect(localizations.selectAllButtonLabel, isNotNull);

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "Παράβλεψη", "modalBarrierDismissLabel": "Παράβλεψη",
"searchTextFieldPlaceholderLabel": "Αναζήτηση", "searchTextFieldPlaceholderLabel": "Αναζήτηση",
"noSpellCheckReplacementsLabel": "No Replacements Found", "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." "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": "No Replacements Found",
"@noSpellCheckReplacementsLabel": { "@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." "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", "modalBarrierDismissLabel": "Cerrar",
"searchTextFieldPlaceholderLabel": "Buscar", "searchTextFieldPlaceholderLabel": "Buscar",
"noSpellCheckReplacementsLabel": "No Replacements Found", "noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu" "menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
} }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -23,5 +23,6 @@
"modalBarrierDismissLabel": "ច្រាន​ចោល", "modalBarrierDismissLabel": "ច្រាន​ចោល",
"searchTextFieldPlaceholderLabel": "ស្វែងរក", "searchTextFieldPlaceholderLabel": "ស្វែងរក",
"noSpellCheckReplacementsLabel": "No Replacements Found", "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", "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", "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", "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": "닫기", "modalBarrierDismissLabel": "닫기",
"searchTextFieldPlaceholderLabel": "검색", "searchTextFieldPlaceholderLabel": "검색",
"noSpellCheckReplacementsLabel": "No Replacements Found", "noSpellCheckReplacementsLabel": "No Replacements Found",
"menuDismissLabel": "Dismiss menu" "menuDismissLabel": "Dismiss menu",
"lookUpButtonLabel": "Look Up"
} }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -141,5 +141,6 @@
"expansionTileCollapsedTapHint": "Expand for more details", "expansionTileCollapsedTapHint": "Expand for more details",
"expandedHint": "Collapsed", "expandedHint": "Collapsed",
"collapsedHint": "Expanded", "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