t function

String t(
  1. Lang lang,
  2. String key, {
  3. Map<String, dynamic>? replacers,
})

Translates the sentence defined by the key set into the requested language. Replacement parameters can be injected.

final String sentence = t(Lang.enGB, 'foo.bar');
print(sentence) 👈 'Hello {user}'

final String sentence = t(Lang.enGB, 'foo.bar', { 'user': 'Freeze' });
print(sentence) 👈 'Hello Freeze'

Implementation

String t (Lang lang, String key, { Map<String, dynamic>? replacers }) {
  final I18n i18n = ioc.singleton(I18n.namespace);
  dynamic target = i18n.translation.cache[lang.normalize];

  for (final element in key.split('.')) {
    target = target[element];
  }

  if (replacers != null) {
    for (final replacer in replacers.entries) {
      target = target.toString().replaceAll('{${replacer.key}}', replacer.value);
    }
  }

  return target;
}