translate method
Méthode pour obtenir une traduction
Implementation
@override
String translate(String key, {Map<String, String>? args}) {
final dynamic localization = Localizations.of(context, Object);
if (localization == null) {
return key;
}
try {
// Vérifie si l'instance possède la clé sous forme de getter et l'appelle dynamiquement
final dynamic translated = (localization as dynamic).noSuchMethod(
Invocation.getter(Symbol(key)),
returnValue: null,
);
if (translated is String) {
String translation = translated;
// Remplacement des variables dynamiques dans la traduction
args?.forEach((argKey, argValue) {
translation = translation.replaceAll('{$argKey}', argValue);
});
return translation;
}
} catch (e) {
debugPrint("[DEBUG] Erreur lors de la récupération de la clé $key : $e");
}
return key; // Retourne la clé brute si aucune traduction n'est trouvée
}