45 lines
1.8 KiB
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(' ', ' ')
|
|
.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 "";
|
|
}
|
|
}
|
|
}
|