translate method
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);
}