tr method

String tr(
  1. String key, {
  2. List<String>? args,
  3. Map<String, String>? namedArgs,
  4. String? gender,
})

An extension method for translating your language keys. Subscribes the widget on current Localization that provided from context. Throws exception if Localization was not found.

key Localization key args List of localized strings. Replaces {} left to right namedArgs Map of localized strings. Replaces the name keys {key_name} according to its name gender Gender switcher. Changes the localized string based on gender string

Example:

{
   "msg":"{} are written in the {} language",
   "msg_named":"Easy localization is written in the {lang} language",
   "msg_mixed":"{} are written in the {lang} language",
   "gender":{
      "male":"Hi man ;) {}",
      "female":"Hello girl :) {}",
      "other":"Hello {}"
   }
}
Text(context.tr('msg', args: ['Easy localization', 'Dart']), // args
Text(context.tr('msg_named', namedArgs: {'lang': 'Dart'}),   // namedArgs
Text(context.tr('msg_mixed', args: ['Easy localization'], namedArgs: {'lang': 'Dart'}), // args and namedArgs
Text(context.tr('gender', gender: _gender ? "female" : "male"), // gender

Implementation

String tr(
  String key, {
  List<String>? args,
  Map<String, String>? namedArgs,
  String? gender,
}) {
  final localization = Localization.of(this);

  if (localization == null) {
    throw const LocalizationNotFoundException();
  }

  return localization.tr(
    key,
    args: args,
    namedArgs: namedArgs,
    gender: gender,
  );
}