translate method

String translate(
  1. String text, {
  2. Map<String, dynamic> params = const {},
  3. LanguageCodes? toCode,
})

Translate this text to the destination language

Implementation

String translate(
  /// Text that you want to translate
  String text, {
  /// Translate with parameters
  ///
  /// Ex: Your translated text is "Current number is @currentNumber"
  ///
  /// Your params = {'currentNumber' : '3'}
  ///
  /// => Result: "Current number is 3"
  Map<String, dynamic> params = const {},

  /// To specific [LanguageCodes] instead of the current [code]
  LanguageCodes? toCode,
}) {
  toCode ??= _currentCode;
  final stringParams = params.map((key, value) => MapEntry(key, '$value'));

  if (!codes.contains(toCode) && !codesOverrides.contains(toCode)) {
    printDebug(
        'Cannot translate this text because $toCode is not available in `data` and `dataOverrides` ($text)');
    return _replaceParams(text, stringParams);
  }

  final translated = _dataOverrides[toCode]?[text] ?? _data[toCode]![text];
  if (translated == null) {
    printDebug('This text is not contained in current $toCode ($text)');
    return _replaceParams(text, stringParams);
  }

  if (translated is LanguageConditions) {
    return _replaceParamsCondition(translated, stringParams, text);
  }

  return _replaceParams(translated, stringParams);
}