mymuseum-visitapp/lib/Helpers/translationHelper.dart

45 lines
1.8 KiB
Dart

import 'package:manager_api_new/api.dart';
import 'package:mymuseum_visitapp/Models/visitContext.dart';
import 'package:mymuseum_visitapp/translations.dart';
class TranslationHelper {
static String get(List<TranslationDTO>? translationDTO, VisitAppContext visitAppContext) {
try {
return translationDTO!.where((element) => element.language == visitAppContext.language).first.value!;
} catch (_) {
return "";
}
}
static String getWithResource(List<TranslationAndResourceDTO>? translationAndResourceDTO, VisitAppContext visitAppContext) {
try {
return translationAndResourceDTO!.where((element) => element.language == visitAppContext.language).first.value!;
} catch (_) {
return "";
}
}
/// Tous les champs traduits sont saisis dans l'éditeur riche du manager :
/// leur valeur est du HTML. À utiliser quand le rendu ne peut pas être un
/// HtmlWidget — texte interpolé dans une phrase, comparaison, recherche.
static String stripHtml(String html) => html
.replaceAll(RegExp(r'<[^>]*>', multiLine: true), ' ')
.replaceAll('&nbsp;', ' ')
.replaceAll(RegExp(r'\s+'), ' ')
.trim();
static String getPlain(List<TranslationDTO>? translationDTO, VisitAppContext visitAppContext) =>
stripHtml(get(translationDTO, visitAppContext));
static String getWithResourcePlain(List<TranslationAndResourceDTO>? translationAndResourceDTO, VisitAppContext visitAppContext) =>
stripHtml(getWithResource(translationAndResourceDTO, visitAppContext));
static String getFromLocale(String valueToGet, VisitAppContext visitAppContext) {
try {
return translations.where((element) => element.language == visitAppContext.language).first.data![valueToGet]!;
} catch (_) {
return "";
}
}
}