localizePlural method
Tries to localize text by given key
and plural
.
count: { "0": "zero", "1": "single", "2": "few", "5": "many" "other": "none of above" }
plural: 1 returns 'single' plural: 4 returns 'few' plural: 9 returns 'many' plural: -1 returns 'none of above'
Enable/Disable debug mode to show/hide missing localizations.
Implementation
String localizePlural(String key, int plural, [Map<String, String>? params]) {
if (_data.containsKey(key)) {
if (_data[key] is Map) {
final data = _data[key];
final nums = <int>[];
data.forEach(
(num, value) => nums.add(Parse.toInteger(num, defaultValue: -1)));
nums.sort();
String? output;
for (final num in nums.reversed) {
if (plural >= num) {
output = data[num.toString()];
break;
}
}
if (output == null && data.containsKey('other')) {
output = data['other'];
}
if (output != null) {
if (params != null) {
output = Parse.format(output, params, _paramDecorator);
}
return output;
}
}
return _data[key];
}
return debug ? '$key[$plural]_$_locale' : '';
}