t method
Implementation
String t(
String key, {
String? keyPlural,
List<Object>? pArgs,
Map<String, Object>? nArgs,
String? domain,
String msgctxt = '',
}) {
assert(
pArgs == null || nArgs == null,
'You can only use one of pArgs (position arguments) or nArgs (named arguments)',
);
late String message;
if (keyPlural != null) {
// final num? count = nArgs != null ? nArgs.values.firstWhereOrNull((e) => e is num) : pArgs?[0];
final num? count = nArgs?.values.whereType<num?>().firstOrNull ?? pArgs?.whereType<num?>().firstOrNull;
if (count == null) {
throw ArgumentError(
'You must provide a count argument as a number. Either as a named argument or as a positional argument',
);
}
message = _gt.ngettext(
key,
keyPlural,
count.toInt(),
domain: domain,
msgctxt: msgctxt,
);
} else {
message = _gt.gettext(
key,
domain: domain,
msgctxt: msgctxt,
);
}
if (nArgs != null) {
for (final entry in nArgs.entries) {
message = message.replaceAll('{${entry.key}}', entry.value.toString());
}
} else if (pArgs != null) {
for (var i = 0; i < pArgs.length; i++) {
message = message.replaceAll('{$i}', pArgs[i].toString());
}
}
return message;
}