Unverified Commit 3b309bda authored by Jonah Williams's avatar Jonah Williams Committed by GitHub

Add a localization for counter text, separate into own semantic node (#21029)

parent 1c2d3f32
......@@ -1813,10 +1813,14 @@ class _InputDecoratorState extends State<InputDecorator> with TickerProviderStat
);
final Widget counter = decoration.counterText == null ? null :
new Text(
new Semantics(
container: true,
child: new Text(
decoration.counterText,
style: _getHelperStyle(themeData).merge(decoration.counterStyle),
overflow: TextOverflow.ellipsis,
semanticsLabel: decoration.semanticCounterText,
),
);
// The _Decoration widget and _RenderDecoration assume that contentPadding
......@@ -1940,6 +1944,7 @@ class InputDecoration {
this.enabledBorder,
this.border,
this.enabled = true,
this.semanticCounterText,
}) : assert(enabled != null),
assert(!(prefix != null && prefixText != null), 'Declaring both prefix and prefixText is not allowed'),
assert(!(suffix != null && suffixText != null), 'Declaring both suffix and suffixText is not allowed'),
......@@ -1983,7 +1988,8 @@ class InputDecoration {
focusedBorder = null,
focusedErrorBorder = null,
disabledBorder = null,
enabledBorder = null;
enabledBorder = null,
semanticCounterText = null;
/// An icon to show before the input field and outside of the decoration's
/// container.
......@@ -2197,6 +2203,8 @@ class InputDecoration {
///
/// Rendered using [counterStyle]. Uses [helperStyle] if [counterStyle] is
/// null.
///
/// The semantic label can be replaced by providing a [semanticCounterText].
final String counterText;
/// The style to use for the [counterText].
......@@ -2380,6 +2388,13 @@ class InputDecoration {
/// This property is true by default.
final bool enabled;
/// A semantic label for the [counterText].
///
/// Defaults to null.
///
/// If provided, this replaces the semantic label of the [counterText].
final String semanticCounterText;
/// Creates a copy of this input decoration with the given fields replaced
/// by the new values.
///
......@@ -2416,6 +2431,7 @@ class InputDecoration {
InputBorder enabledBorder,
InputBorder border,
bool enabled,
String semanticCounterText,
}) {
return new InputDecoration(
icon: icon ?? this.icon,
......@@ -2449,6 +2465,7 @@ class InputDecoration {
enabledBorder: enabledBorder ?? this.enabledBorder,
border: border ?? this.border,
enabled: enabled ?? this.enabled,
semanticCounterText: semanticCounterText ?? this.semanticCounterText,
);
}
......@@ -2518,7 +2535,8 @@ class InputDecoration {
&& typedOther.disabledBorder == disabledBorder
&& typedOther.enabledBorder == enabledBorder
&& typedOther.border == border
&& typedOther.enabled == enabled;
&& typedOther.enabled == enabled
&& typedOther.semanticCounterText == semanticCounterText;
}
@override
......@@ -2565,6 +2583,7 @@ class InputDecoration {
enabledBorder,
border,
enabled,
semanticCounterText,
),
);
}
......@@ -2630,6 +2649,8 @@ class InputDecoration {
description.add('border: $border');
if (!enabled)
description.add('enabled: false');
if (semanticCounterText != null)
description.add('semanticCounterText: $semanticCounterText');
return 'InputDecoration(${description.join(', ')})';
}
}
......
......@@ -307,6 +307,9 @@ abstract class MaterialLocalizations {
/// The semantics hint to describe the tap action on a collapsed [ExpandIcon].
String get collapsedIconTapHint => 'Expand';
/// The label for the [TextField]'s character counter.
String remainingTextFieldCharacterCount(int remaining);
/// The `MaterialLocalizations` from the closest [Localizations] instance
/// that encloses the given context.
///
......@@ -709,4 +712,16 @@ class DefaultMaterialLocalizations implements MaterialLocalizations {
///
/// [MaterialApp] automatically adds this value to [MaterialApp.localizationsDelegates].
static const LocalizationsDelegate<MaterialLocalizations> delegate = _MaterialLocalizationsDelegate();
@override
String remainingTextFieldCharacterCount(int remaining) {
switch (remaining) {
case 0:
return 'No characters remaining';
case 1:
return '1 character remaining';
default:
return '$remaining characters remaining';
}
}
}
......@@ -14,6 +14,7 @@ import 'feedback.dart';
import 'ink_well.dart' show InteractiveInkFeature;
import 'input_decorator.dart';
import 'material.dart';
import 'material_localizations.dart';
import 'text_selection.dart';
import 'theme.dart';
......@@ -379,6 +380,7 @@ class _TextFieldState extends State<TextField> with AutomaticKeepAliveClientMixi
&& widget.decoration.counterText == null;
InputDecoration _getEffectiveDecoration() {
final MaterialLocalizations localizations = MaterialLocalizations.of(context);
final InputDecoration effectiveDecoration = (widget.decoration ?? const InputDecoration())
.applyDefaults(Theme.of(context).inputDecorationTheme)
.copyWith(
......@@ -388,7 +390,10 @@ class _TextFieldState extends State<TextField> with AutomaticKeepAliveClientMixi
if (!needsCounter)
return effectiveDecoration;
final String counterText = '${_effectiveController.value.text.runes.length}/${widget.maxLength}';
final int currentLength = _effectiveController.value.text.runes.length;
final String counterText = '$currentLength/${widget.maxLength}';
final int remaining = (widget.maxLength - currentLength).clamp(0, widget.maxLength);
final String semanticCounterText = localizations.remainingTextFieldCharacterCount(remaining);
if (_effectiveController.value.text.runes.length > widget.maxLength) {
final ThemeData themeData = Theme.of(context);
return effectiveDecoration.copyWith(
......@@ -396,9 +401,13 @@ class _TextFieldState extends State<TextField> with AutomaticKeepAliveClientMixi
counterStyle: effectiveDecoration.errorStyle
?? themeData.textTheme.caption.copyWith(color: themeData.errorColor),
counterText: counterText,
semanticCounterText: semanticCounterText,
);
}
return effectiveDecoration.copyWith(counterText: counterText);
return effectiveDecoration.copyWith(
counterText: counterText,
semanticCounterText: semanticCounterText,
);
}
@override
......
......@@ -2580,11 +2580,11 @@ void main() {
child: new TextField(
key: key,
controller: controller,
maxLength: 10,
decoration: const InputDecoration(
labelText: 'label',
hintText: 'hint',
helperText: 'helper',
counterText: 'counter',
),
),
),
......@@ -2593,7 +2593,7 @@ void main() {
expect(semantics, hasSemantics(new TestSemantics.root(
children: <TestSemantics>[
new TestSemantics.rootChild(
label: 'label\nhelper\ncounter',
label: 'label\nhelper',
id: 1,
textDirection: TextDirection.ltr,
actions: <SemanticsAction>[
......@@ -2602,6 +2602,13 @@ void main() {
flags: <SemanticsFlag>[
SemanticsFlag.isTextField,
],
children: <TestSemantics>[
new TestSemantics(
id: 2,
label: '10 characters remaining',
textDirection: TextDirection.ltr,
),
],
),
],
), ignoreTransform: true, ignoreRect: true));
......@@ -2612,7 +2619,7 @@ void main() {
expect(semantics, hasSemantics(new TestSemantics.root(
children: <TestSemantics>[
new TestSemantics.rootChild(
label: 'hint\nhelper\ncounter',
label: 'hint\nhelper',
id: 1,
textDirection: TextDirection.ltr,
textSelection: const TextSelection(baseOffset: 0, extentOffset: 0),
......@@ -2625,6 +2632,13 @@ void main() {
SemanticsFlag.isTextField,
SemanticsFlag.isFocused,
],
children: <TestSemantics>[
new TestSemantics(
id: 2,
label: '10 characters remaining',
textDirection: TextDirection.ltr,
),
],
),
],
), ignoreTransform: true, ignoreRect: true));
......@@ -2634,4 +2648,49 @@ void main() {
semantics.dispose();
});
testWidgets('InputDecoration counterText can have a semanticCounterText', (WidgetTester tester) async {
final SemanticsTester semantics = new SemanticsTester(tester);
final TextEditingController controller = new TextEditingController();
final Key key = new UniqueKey();
await tester.pumpWidget(
overlay(
child: new TextField(
key: key,
controller: controller,
decoration: const InputDecoration(
labelText: 'label',
hintText: 'hint',
helperText: 'helper',
counterText: '0/10',
semanticCounterText: '0 out of 10',
),
),
),
);
expect(semantics, hasSemantics(new TestSemantics.root(
children: <TestSemantics>[
new TestSemantics.rootChild(
label: 'label\nhelper',
id: 1,
textDirection: TextDirection.ltr,
actions: <SemanticsAction>[
SemanticsAction.tap,
],
flags: <SemanticsFlag>[
SemanticsFlag.isTextField,
],
children: <TestSemantics>[
new TestSemantics(
label: '0 out of 10',
textDirection: TextDirection.ltr,
),
],
),
],
), ignoreTransform: true, ignoreRect: true, ignoreId: true));
semantics.dispose();
});
}
......@@ -131,6 +131,15 @@ class MaterialLocalizationAr extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'الصفحة السابقة';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -314,6 +323,15 @@ class MaterialLocalizationBg extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'Предишната страница';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -497,6 +515,15 @@ class MaterialLocalizationBs extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'Prethodna stranica';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -680,6 +707,15 @@ class MaterialLocalizationCa extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'Pàgina anterior';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -863,6 +899,15 @@ class MaterialLocalizationCs extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'Předchozí stránka';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -1046,6 +1091,15 @@ class MaterialLocalizationDa extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'Forrige side';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -1229,6 +1283,15 @@ class MaterialLocalizationDe extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'Vorherige Seite';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -1442,6 +1505,15 @@ class MaterialLocalizationEl extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'Προηγούμενη σελίδα';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -1625,6 +1697,15 @@ class MaterialLocalizationEn extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'Previous page';
@override
String get remainingTextFieldCharacterCountOne => r'1 character remaining';
@override
String get remainingTextFieldCharacterCountOther => r'$remainingCount characters remaining';
@override
String get remainingTextFieldCharacterCountZero => r'No characters remaining';
@override
String get reorderItemDown => r'Move down';
......@@ -2069,6 +2150,15 @@ class MaterialLocalizationEs extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'Página anterior';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -3575,6 +3665,15 @@ class MaterialLocalizationEt extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'Eelmine leht';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -3758,6 +3857,15 @@ class MaterialLocalizationFa extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'صفحه قبل';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -3941,6 +4049,15 @@ class MaterialLocalizationFi extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'Edellinen sivu';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -4124,6 +4241,15 @@ class MaterialLocalizationFil extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'Nakaraang page';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -4307,6 +4433,15 @@ class MaterialLocalizationFr extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'Page précédente';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -4517,6 +4652,15 @@ class MaterialLocalizationGsw extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'Vorherige Seite';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -4700,6 +4844,15 @@ class MaterialLocalizationHe extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'הדף הקודם';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -4883,6 +5036,15 @@ class MaterialLocalizationHi extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'पिछला पेज';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -5066,6 +5228,15 @@ class MaterialLocalizationHr extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'Prethodna stranica';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -5249,6 +5420,15 @@ class MaterialLocalizationHu extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'Előző oldal';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -5432,6 +5612,15 @@ class MaterialLocalizationId extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'Halaman sebelumnya';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -5615,6 +5804,15 @@ class MaterialLocalizationIt extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'Pagina precedente';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -5798,6 +5996,15 @@ class MaterialLocalizationJa extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'前のページ';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -5981,6 +6188,15 @@ class MaterialLocalizationKo extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'이전 페이지';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -6164,6 +6380,15 @@ class MaterialLocalizationLt extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'Ankstesnis puslapis';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -6347,6 +6572,15 @@ class MaterialLocalizationLv extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'Iepriekšējā lapa';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -6530,6 +6764,15 @@ class MaterialLocalizationMs extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'Halaman sebelumnya';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -6713,6 +6956,15 @@ class MaterialLocalizationNb extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'Forrige side';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -6896,6 +7148,15 @@ class MaterialLocalizationNl extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'Vorige pagina';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -7079,6 +7340,15 @@ class MaterialLocalizationPl extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'Poprzednia strona';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -7262,6 +7532,15 @@ class MaterialLocalizationPs extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'مخکینی مخ';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -7445,6 +7724,15 @@ class MaterialLocalizationPt extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'Página anterior';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -7697,6 +7985,15 @@ class MaterialLocalizationRo extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'Pagina anterioară';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -7880,6 +8177,15 @@ class MaterialLocalizationRu extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'Предыдущая страница';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -8063,6 +8369,15 @@ class MaterialLocalizationSk extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'Predchádzajúca stránka';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -8246,6 +8561,15 @@ class MaterialLocalizationSl extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'Prejšnja stran';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -8429,6 +8753,15 @@ class MaterialLocalizationSr extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'Претходна страница';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -8750,6 +9083,15 @@ class MaterialLocalizationSv extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'Föregående sida';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -8933,6 +9275,15 @@ class MaterialLocalizationTh extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'หน้าก่อน';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -9116,6 +9467,15 @@ class MaterialLocalizationTl extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'Nakaraang page';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -9299,6 +9659,15 @@ class MaterialLocalizationTr extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'Önceki sayfa';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -9482,6 +9851,15 @@ class MaterialLocalizationUk extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'Попередня сторінка';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -9665,6 +10043,15 @@ class MaterialLocalizationUr extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'گزشتہ صفحہ';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -9848,6 +10235,15 @@ class MaterialLocalizationVi extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'Trang trước';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......@@ -10031,6 +10427,15 @@ class MaterialLocalizationZh extends GlobalMaterialLocalizations {
@override
String get previousPageTooltip => r'上一页';
@override
String get remainingTextFieldCharacterCountOne => r'TBD';
@override
String get remainingTextFieldCharacterCountOther => r'TBD';
@override
String get remainingTextFieldCharacterCountZero => r'TBD';
@override
String get reorderItemDown => r'TBD';
......
......@@ -51,5 +51,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -47,5 +47,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -48,5 +48,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
\ No newline at end of file
......@@ -47,5 +47,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -49,5 +49,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -47,5 +47,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -48,5 +48,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -47,5 +47,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -47,5 +47,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -245,5 +245,13 @@
"collapsedIconTapHint": "Expand",
"@collapsedIconTapHint": {
"description": "The verb which describes what happens when a collapsed ExpandIcon toggle button is pressed. This is used by TalkBack on Android to replace the default hint on the accessibility action. The verb will be concatenated with a prefix string which describes how to perform the action, which by default is 'double tap to activate'. In the case of US english, this would be 'double tap to expand.' The exact phrasing of the hint will vary based on locale"
},
"remainingTextFieldCharacterCountZero": "No characters remaining",
"remainingTextFieldCharacterCountOne": "1 character remaining",
"remainingTextFieldCharacterCountOther": "$remainingCount characters remaining",
"@remainingTextFieldCharacterCount": {
"description": "The label for the TextField's character counter. remainingCharacters is a integer representing how many more characters the user can type into the text field before using up a given budget. All values are greater than or equal to zero.",
"plural": "remainingCount"
}
}
......@@ -47,5 +47,8 @@
"reorderItemLeft": "Move left",
"reorderItemRight": "Move right",
"expandedIconTapHint": "Collapse",
"collapsedIconTapHint": "Expand"
"collapsedIconTapHint": "Expand",
"remainingTextFieldCharacterCountZero": "No characters remaining",
"remainingTextFieldCharacterCountOne": "1 character remaining",
"remainingTextFieldCharacterCountOther": "$remainingCount characters remaining"
}
......@@ -47,5 +47,8 @@
"reorderItemLeft": "Move left",
"reorderItemRight": "Move right",
"expandedIconTapHint": "Collapse",
"collapsedIconTapHint": "Expand"
"collapsedIconTapHint": "Expand",
"remainingTextFieldCharacterCountZero": "No characters remaining",
"remainingTextFieldCharacterCountOne": "1 character remaining",
"remainingTextFieldCharacterCountOther": "$remainingCount characters remaining"
}
......@@ -47,5 +47,8 @@
"reorderItemLeft": "Move left",
"reorderItemRight": "Move right",
"expandedIconTapHint": "Collapse",
"collapsedIconTapHint": "Expand"
"collapsedIconTapHint": "Expand",
"remainingTextFieldCharacterCountZero": "No characters remaining",
"remainingTextFieldCharacterCountOne": "1 character remaining",
"remainingTextFieldCharacterCountOther": "$remainingCount characters remaining"
}
......@@ -47,5 +47,8 @@
"reorderItemLeft": "Move left",
"reorderItemRight": "Move right",
"expandedIconTapHint": "Collapse",
"collapsedIconTapHint": "Expand"
"collapsedIconTapHint": "Expand",
"remainingTextFieldCharacterCountZero": "No characters remaining",
"remainingTextFieldCharacterCountOne": "1 character remaining",
"remainingTextFieldCharacterCountOther": "$remainingCount characters remaining"
}
......@@ -47,5 +47,8 @@
"reorderItemLeft": "Move left",
"reorderItemRight": "Move right",
"expandedIconTapHint": "Collapse",
"collapsedIconTapHint": "Expand"
"collapsedIconTapHint": "Expand",
"remainingTextFieldCharacterCountZero": "No characters remaining",
"remainingTextFieldCharacterCountOne": "1 character remaining",
"remainingTextFieldCharacterCountOther": "$remainingCount characters remaining"
}
......@@ -47,5 +47,8 @@
"reorderItemLeft": "Move left",
"reorderItemRight": "Move right",
"expandedIconTapHint": "Collapse",
"collapsedIconTapHint": "Expand"
"collapsedIconTapHint": "Expand",
"remainingTextFieldCharacterCountZero": "No characters remaining",
"remainingTextFieldCharacterCountOne": "1 character remaining",
"remainingTextFieldCharacterCountOther": "$remainingCount characters remaining"
}
......@@ -47,5 +47,8 @@
"reorderItemLeft": "Move left",
"reorderItemRight": "Move right",
"expandedIconTapHint": "Collapse",
"collapsedIconTapHint": "Expand"
"collapsedIconTapHint": "Expand",
"remainingTextFieldCharacterCountZero": "No characters remaining",
"remainingTextFieldCharacterCountOne": "1 character remaining",
"remainingTextFieldCharacterCountOther": "$remainingCount characters remaining"
}
......@@ -48,5 +48,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -47,5 +47,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -47,5 +47,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -41,5 +41,8 @@
"alertDialogLabel": "Alerta",
"searchFieldLabel": "Buscar",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -41,5 +41,8 @@
"alertDialogLabel": "Alerta",
"searchFieldLabel": "Buscar",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -41,5 +41,8 @@
"alertDialogLabel": "Alerta",
"searchFieldLabel": "Buscar",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -41,5 +41,8 @@
"alertDialogLabel": "Alerta",
"searchFieldLabel": "Buscar",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -41,5 +41,8 @@
"alertDialogLabel": "Alerta",
"searchFieldLabel": "Buscar",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -41,5 +41,8 @@
"alertDialogLabel": "Alerta",
"searchFieldLabel": "Buscar",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -41,5 +41,8 @@
"alertDialogLabel": "Alerta",
"searchFieldLabel": "Buscar",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -41,5 +41,8 @@
"alertDialogLabel": "Alerta",
"searchFieldLabel": "Buscar",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -41,5 +41,8 @@
"alertDialogLabel": "Alerta",
"searchFieldLabel": "Buscar",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -41,5 +41,8 @@
"alertDialogLabel": "Alerta",
"searchFieldLabel": "Buscar",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -41,5 +41,8 @@
"alertDialogLabel": "Alerta",
"searchFieldLabel": "Buscar",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -41,5 +41,8 @@
"alertDialogLabel": "Alerta",
"searchFieldLabel": "Buscar",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -41,5 +41,8 @@
"alertDialogLabel": "Alerta",
"searchFieldLabel": "Buscar",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -41,5 +41,8 @@
"alertDialogLabel": "Alerta",
"searchFieldLabel": "Buscar",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -41,5 +41,8 @@
"alertDialogLabel": "Alerta",
"searchFieldLabel": "Buscar",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -41,5 +41,8 @@
"alertDialogLabel": "Alerta",
"searchFieldLabel": "Buscar",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -41,5 +41,8 @@
"alertDialogLabel": "Alerta",
"searchFieldLabel": "Buscar",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -41,5 +41,8 @@
"alertDialogLabel": "Alerta",
"searchFieldLabel": "Buscar",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -47,5 +47,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -47,5 +47,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -47,5 +47,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -47,5 +47,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -48,5 +48,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -47,5 +47,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -49,5 +49,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -47,5 +47,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -48,5 +48,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -47,5 +47,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -47,5 +47,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -47,5 +47,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -47,5 +47,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -47,5 +47,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -49,5 +49,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -48,5 +48,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -48,5 +48,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -47,5 +47,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -47,5 +47,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -49,5 +49,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -46,5 +46,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -49,5 +49,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -47,5 +47,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -49,5 +49,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -50,5 +50,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -49,5 +49,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -49,5 +49,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -48,5 +48,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -48,5 +48,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -47,5 +47,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -47,5 +47,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -47,5 +47,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -47,5 +47,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -49,5 +49,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -47,5 +47,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -47,5 +47,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -47,5 +47,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -47,5 +47,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -47,5 +47,8 @@
"reorderItemLeft": "TBD",
"reorderItemRight": "TBD",
"expandedIconTapHint": "TBD",
"collapsedIconTapHint": "TBD"
"collapsedIconTapHint": "TBD",
"remainingTextFieldCharacterCountZero": "TBD",
"remainingTextFieldCharacterCountOne": "TBD",
"remainingTextFieldCharacterCountOther": "TBD"
}
......@@ -393,6 +393,56 @@ abstract class GlobalMaterialLocalizations implements MaterialLocalizations {
return timeOfDayFormatRaw;
}
/// The "zero" form of [remainingTextFieldCharacterCount].
///
/// This form is required.
///
/// See also:
///
/// * [Intl.plural], to which this form is passed.
/// * [remainingTextFieldCharacterCountZero], the "zero" form
/// * [remainingTextFieldCharacterCountOne], the "one" form
/// * [remainingTextFieldCharacterCountOther], the "other" form
@protected
String get remainingTextFieldCharacterCountZero;
/// The "one" form of [remainingTextFieldCharacterCount].
///
/// This form is optional.
///
/// See also:
///
/// * [Intl.plural], to which this form is passed.
/// * [remainingTextFieldCharacterCountZero], the "zero" form
/// * [remainingTextFieldCharacterCountOne], the "one" form
/// * [remainingTextFieldCharacterCountOther], the "other" form
@protected
String get remainingTextFieldCharacterCountOne => null;
/// The "other" form of [remainingTextFieldCharacterCount].
///
/// This form is required.
///
/// See also:
///
/// * [Intl.plural], to which this form is passed.
/// * [remainingTextFieldCharacterCountZero], the "zero" form
/// * [remainingTextFieldCharacterCountOne], the "one" form
/// * [remainingTextFieldCharacterCountOther], the "other" form
@protected
String get remainingTextFieldCharacterCountOther;
@override
String remainingTextFieldCharacterCount(int remainingCount) {
return intl.Intl.pluralLogic(
remainingCount,
zero: remainingTextFieldCharacterCountZero,
one: remainingTextFieldCharacterCountOne,
other: remainingTextFieldCharacterCountOther,
locale: _localeName,
).replaceFirst(r'$remainingCount', formatDecimal(remainingCount));
}
/// The script category used by [localTextGeometry]. Must be one of the strings
/// declared in [MaterialTextGeometry].
//
......
......@@ -41,6 +41,13 @@ void main() {
expect(localizations.collapsedIconTapHint, isNotNull);
expect(localizations.expandedIconTapHint, isNotNull);
expect(localizations.remainingTextFieldCharacterCount(0), isNotNull);
expect(localizations.remainingTextFieldCharacterCount(1), isNotNull);
expect(localizations.remainingTextFieldCharacterCount(10), isNotNull);
expect(localizations.remainingTextFieldCharacterCount(0), isNot(contains(r'$remainingCount')));
expect(localizations.remainingTextFieldCharacterCount(1), isNot(contains(r'$remainingCount')));
expect(localizations.remainingTextFieldCharacterCount(10), isNot(contains(r'$remainingCount')));
expect(localizations.aboutListTileTitle('FOO'), isNotNull);
expect(localizations.aboutListTileTitle('FOO'), contains('FOO'));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment