Fix multi-device EQ auto-switching by calling obtenerDispositivoActual() during cargarPersistido() to seed the initial device ID. Add device management modal with rename support, EQ preset editing, and connection status indicator. Translate device UI keys to all 13 locales.
1293 lines
30 KiB
Dart
1293 lines
30 KiB
Dart
// ignore: unused_import
|
||
import 'package:intl/intl.dart' as intl;
|
||
import 'app_localizations.dart';
|
||
|
||
// ignore_for_file: type=lint
|
||
|
||
/// The translations for French (`fr`).
|
||
class AppLocalizationsFr extends AppLocalizations {
|
||
AppLocalizationsFr([String locale = 'fr']) : super(locale);
|
||
|
||
@override
|
||
String get appTitle => 'PluriWave';
|
||
|
||
@override
|
||
String get navHome => 'Accueil';
|
||
|
||
@override
|
||
String get navSearch => 'Recherche';
|
||
|
||
@override
|
||
String get navFavorites => 'Favoris';
|
||
|
||
@override
|
||
String get navAlarms => 'Alarmes';
|
||
|
||
@override
|
||
String get navSettings => 'Paramètres';
|
||
|
||
@override
|
||
String get actionOk => 'OK';
|
||
|
||
@override
|
||
String get sleepTimer => 'Minuteur de sommeil';
|
||
|
||
@override
|
||
String get sleepTimerDescription =>
|
||
'Arrêt progressif de la radio avec compte à rebours précis.';
|
||
|
||
@override
|
||
String get cancelTimer => 'Annuler le minuteur';
|
||
|
||
@override
|
||
String get optionOther => 'Autre';
|
||
|
||
@override
|
||
String get customDurationTitle => 'Durée personnalisée';
|
||
|
||
@override
|
||
String get durationGreaterThanZero =>
|
||
'Choisissez une durée supérieure à zéro.';
|
||
|
||
@override
|
||
String get hoursLabel => 'Heures';
|
||
|
||
@override
|
||
String get minutesLabel => 'Minutes';
|
||
|
||
@override
|
||
String get secondsLabel => 'Secondes';
|
||
|
||
@override
|
||
String durationHoursMinutesSeconds(
|
||
Object hours,
|
||
Object minutes,
|
||
Object seconds,
|
||
) {
|
||
return '$hours h $minutes min $seconds s';
|
||
}
|
||
|
||
@override
|
||
String durationMinutesSeconds(Object minutes, Object seconds) {
|
||
return '$minutes min $seconds s';
|
||
}
|
||
|
||
@override
|
||
String durationMinutesOnly(Object minutes) {
|
||
return '$minutes min';
|
||
}
|
||
|
||
@override
|
||
String durationSecondsOnly(Object seconds) {
|
||
return '$seconds s';
|
||
}
|
||
|
||
@override
|
||
String get saveQuickAccess => 'Enregistrer comme raccourci';
|
||
|
||
@override
|
||
String get startTimer => 'Démarrer le minuteur';
|
||
|
||
@override
|
||
String skipCurrentAlarmExecution(Object alarmName) {
|
||
return 'Cette exécution de $alarmName a été ignorée.';
|
||
}
|
||
|
||
@override
|
||
String get settingsTitle => 'Paramètres';
|
||
|
||
@override
|
||
String get settingsSubtitle =>
|
||
'Réglage précis du son, sauvegardes et stations personnalisées.';
|
||
|
||
@override
|
||
String get languageSectionTitle => 'Langue';
|
||
|
||
@override
|
||
String get languageSectionDescription =>
|
||
'Choisissez le mode d’affichage de la langue de l’app.';
|
||
|
||
@override
|
||
String get languageSystemDefault => 'Système';
|
||
|
||
@override
|
||
String get languageSpanish => 'Espagnol';
|
||
|
||
@override
|
||
String get languageEnglish => 'Anglais';
|
||
|
||
@override
|
||
String languageUpdated(Object languageName) {
|
||
return 'Langue mise à jour : $languageName';
|
||
}
|
||
|
||
@override
|
||
String get languageUpdatedSystem => 'Langue mise à jour : Système';
|
||
|
||
@override
|
||
String get timerSectionTitle => 'Minuteur de sommeil';
|
||
|
||
@override
|
||
String get timerSectionAdd => 'Ajouter';
|
||
|
||
@override
|
||
String get timerSectionDescription =>
|
||
'Personnalisez les raccourcis affichés lors de l’arrêt automatique de la radio.';
|
||
|
||
@override
|
||
String get timerSectionRestoreRecommended =>
|
||
'Restaurer les durées recommandées';
|
||
|
||
@override
|
||
String get newQuickAccessTitle => 'Nouveau raccourci';
|
||
|
||
@override
|
||
String get saveQuickAccessButton => 'Enregistrer le raccourci';
|
||
|
||
@override
|
||
String get settingsSafeStatus => 'Sûr';
|
||
|
||
@override
|
||
String get recordingsSectionTitle => 'Enregistrements';
|
||
|
||
@override
|
||
String get recordingsFolderDialogTitle =>
|
||
'Sélectionnez le dossier d’enregistrement';
|
||
|
||
@override
|
||
String get recordingsPathUpdated => 'Chemin d’enregistrement mis à jour';
|
||
|
||
@override
|
||
String recordingsPathSaveError(Object error) {
|
||
return 'Impossible d’enregistrer le chemin : $error';
|
||
}
|
||
|
||
@override
|
||
String get recordingsDefaultFolderRestored =>
|
||
'Le dossier interne par défaut sera utilisé';
|
||
|
||
@override
|
||
String get recordingsFolderTitle => 'Dossier d’enregistrement';
|
||
|
||
@override
|
||
String get recordingsPathCalculating => 'Calcul du chemin...';
|
||
|
||
@override
|
||
String get recordingsChangePath => 'Changer le chemin';
|
||
|
||
@override
|
||
String get recordingsUseDefaultPath => 'Utiliser le chemin par défaut';
|
||
|
||
@override
|
||
String get recordingsOriginalStreamHint =>
|
||
'La radio est enregistrée depuis le flux original, sans recompression.';
|
||
|
||
@override
|
||
String get equalizerActive => 'Actif';
|
||
|
||
@override
|
||
String get equalizerDisabled => 'Désactivé';
|
||
|
||
@override
|
||
String get equalizerEnable => 'Activer l’égaliseur';
|
||
|
||
@override
|
||
String get equalizerRealtimeSubtitle =>
|
||
'Les changements s’appliquent en temps réel à la station actuelle.';
|
||
|
||
@override
|
||
String get equalizerPendingSubtitle =>
|
||
'Les changements sont enregistrés et s’appliqueront quand Android activera l’effet.';
|
||
|
||
@override
|
||
String get equalizerPerStationTitle => 'Utiliser un EQ propre pour ce favori';
|
||
|
||
@override
|
||
String equalizerPerStationActive(Object stationName) {
|
||
return 'Actif pour $stationName';
|
||
}
|
||
|
||
@override
|
||
String equalizerPerStationMain(Object stationName) {
|
||
return 'EQ principal utilisé pour $stationName';
|
||
}
|
||
|
||
@override
|
||
String get preferredStationTitle => 'Station préférée';
|
||
|
||
@override
|
||
String get preferredStationDescription =>
|
||
'Présélectionnée lors de la création d’alarmes et disponible en lecture rapide.';
|
||
|
||
@override
|
||
String get preferredStationNoStationsTitle =>
|
||
'Aucune station disponible pour le moment';
|
||
|
||
@override
|
||
String get preferredStationNoStationsSubtitle =>
|
||
'Enregistrez des favoris ou chargez des stations pour en choisir une préférée.';
|
||
|
||
@override
|
||
String get preferredStationAutomaticFallback => 'Repli automatique';
|
||
|
||
@override
|
||
String get preferredStationDefaultFavorite => 'Favori par défaut';
|
||
|
||
@override
|
||
String preferredStationCurrent(Object stationName) {
|
||
return 'Préférée actuelle : $stationName';
|
||
}
|
||
|
||
@override
|
||
String preferredStationAutoUsing(Object stationName) {
|
||
return 'Aucun favori : utilisation automatique de $stationName';
|
||
}
|
||
|
||
@override
|
||
String get preferredStationPlay => 'Lire la préférée';
|
||
|
||
@override
|
||
String get customStationsTitle => 'Stations personnalisées';
|
||
|
||
@override
|
||
String get customStationsAdd => 'Ajouter';
|
||
|
||
@override
|
||
String get customStationsEmpty => 'Aucune station personnalisée.';
|
||
|
||
@override
|
||
String get playAction => 'Lire';
|
||
|
||
@override
|
||
String get deleteAction => 'Supprimer';
|
||
|
||
@override
|
||
String get addStationTitle => 'Ajouter une station';
|
||
|
||
@override
|
||
String get stationNameLabel => 'Nom *';
|
||
|
||
@override
|
||
String get unnamedStation => 'Station sans nom';
|
||
|
||
@override
|
||
String get requiredField => 'Champ obligatoire';
|
||
|
||
@override
|
||
String get streamUrlLabel => 'URL du flux *';
|
||
|
||
@override
|
||
String get invalidUrl => 'URL non valide';
|
||
|
||
@override
|
||
String get countryOptionalLabel => 'Pays (facultatif)';
|
||
|
||
@override
|
||
String get saveStation => 'Enregistrer la station';
|
||
|
||
@override
|
||
String get backupSectionTitle => 'Sauvegarde';
|
||
|
||
@override
|
||
String get backupExportTitle => 'Exporter la configuration';
|
||
|
||
@override
|
||
String get backupExportSubtitle =>
|
||
'Favoris, stations personnalisées et préréglages d’EQ';
|
||
|
||
@override
|
||
String get backupImportTitle => 'Importer la configuration';
|
||
|
||
@override
|
||
String get backupImportSubtitle =>
|
||
'Restaurer depuis un fichier de sauvegarde';
|
||
|
||
@override
|
||
String get backupShareSubject => 'PluriWave — sauvegarde';
|
||
|
||
@override
|
||
String backupShareText(Object date) {
|
||
return 'Configuration de PluriWave exportée le $date';
|
||
}
|
||
|
||
@override
|
||
String backupExportError(Object error) {
|
||
return 'Erreur d’exportation : $error';
|
||
}
|
||
|
||
@override
|
||
String get backupImportConfirmMessage =>
|
||
'Cela ajoutera les favoris, stations et préréglages du fichier. Continuer ?';
|
||
|
||
@override
|
||
String get backupImportSuccess => 'Configuration importée avec succès';
|
||
|
||
@override
|
||
String backupImportError(Object error) {
|
||
return 'Erreur d’importation : $error';
|
||
}
|
||
|
||
@override
|
||
String get appVersionLoading => 'Chargement de la version...';
|
||
|
||
@override
|
||
String appVersionSubtitle(Object version) {
|
||
return '$version - Radio mondiale';
|
||
}
|
||
|
||
@override
|
||
String get savedFavoritesTitle => 'Favoris enregistrés';
|
||
|
||
@override
|
||
String get stationFilterTitle => 'Filtre de stations';
|
||
|
||
@override
|
||
String get stationFilterSubtitle =>
|
||
'Seulement les stations vérifiées comme actives';
|
||
|
||
@override
|
||
String get backgroundAudioTitle => 'Audio en arrière-plan';
|
||
|
||
@override
|
||
String get backgroundAudioSubtitle => 'Continue lorsque l’écran s’éteint';
|
||
|
||
@override
|
||
String get dash => '—';
|
||
|
||
@override
|
||
String get cancelAction => 'Annuler';
|
||
|
||
@override
|
||
String get equalizerTitle => 'Égaliseur';
|
||
|
||
@override
|
||
String get recordingsOpenFolder => 'Ouvrir le dossier';
|
||
|
||
@override
|
||
String recordingsOpenFolderError(Object error) {
|
||
return 'Impossible d’ouvrir le dossier : $error';
|
||
}
|
||
|
||
@override
|
||
String get recordingsMaxSizeTitle => 'Taille maximale d’enregistrement';
|
||
|
||
@override
|
||
String recordingsMaxSizeSubtitle(int size) {
|
||
return 'Limite actuelle : $size Mo';
|
||
}
|
||
|
||
@override
|
||
String get recordingsMaxSizeDialogTitle =>
|
||
'Taille maximale par enregistrement';
|
||
|
||
@override
|
||
String get recordingsMaxSizeMbLabel => 'Mégaoctets maximum';
|
||
|
||
@override
|
||
String recordingsMaxSizeSaved(int size) {
|
||
return 'Limite d’enregistrement mise à jour à $size Mo';
|
||
}
|
||
|
||
@override
|
||
String get stationOrderTitle => 'Ordre des stations';
|
||
|
||
@override
|
||
String get stationOrderByName => 'Par nom';
|
||
|
||
@override
|
||
String get stationOrderByQuality => 'Par qualité';
|
||
|
||
@override
|
||
String get stationOrderScopeDescription =>
|
||
'S’applique aux favoris, recherches, stations proches et listes rapides.';
|
||
|
||
@override
|
||
String get favoriteGroupsTitle => 'Listes de favoris';
|
||
|
||
@override
|
||
String get favoriteGroupsDescription =>
|
||
'Créez de courtes listes pour organiser vos stations enregistrées.';
|
||
|
||
@override
|
||
String get favoriteGroupsAdd => 'Ajouter une liste';
|
||
|
||
@override
|
||
String get favoriteGroupsEdit => 'Modifier la liste';
|
||
|
||
@override
|
||
String get favoriteGroupsDelete => 'Supprimer la liste';
|
||
|
||
@override
|
||
String get favoriteGroupsNameLabel => 'Nom de la liste';
|
||
|
||
@override
|
||
String get favoriteGroupsNameTooLong => 'Maximum 28 caractères.';
|
||
|
||
@override
|
||
String get favoriteGroupsUnassigned => 'Non assigné';
|
||
|
||
@override
|
||
String get favoriteGroupsProtectedHint =>
|
||
'Liste par défaut : elle ne peut être ni modifiée ni supprimée.';
|
||
|
||
@override
|
||
String get favoriteGroupsCreated => 'Liste créée';
|
||
|
||
@override
|
||
String get favoriteGroupsUpdated => 'Liste mise à jour';
|
||
|
||
@override
|
||
String get favoriteGroupsDeleted =>
|
||
'Liste supprimée ; ses stations retournent à Non assigné.';
|
||
|
||
@override
|
||
String get favoriteGroupsAssign => 'Déplacer vers une liste';
|
||
|
||
@override
|
||
String favoriteGroupsAssignSubtitle(Object groupName) {
|
||
return 'Liste actuelle : $groupName';
|
||
}
|
||
|
||
@override
|
||
String favoriteGroupsAssigned(Object stationName, Object groupName) {
|
||
return '$stationName déplacée vers $groupName';
|
||
}
|
||
|
||
@override
|
||
String get favoritesTitle => 'Favoris';
|
||
|
||
@override
|
||
String get favoritesEmptyTitle => 'Aucun favori pour le moment';
|
||
|
||
@override
|
||
String get favoritesEmptySubtitle =>
|
||
'Touchez le cœur sur n’importe quelle station pour l’enregistrer dans votre collection.';
|
||
|
||
@override
|
||
String get favoritesHeaderSubtitle =>
|
||
'Organisez votre collection par listes et gardez les radios importantes à portée de main.';
|
||
|
||
@override
|
||
String get favoritesCollection => 'Collection';
|
||
|
||
@override
|
||
String favoritesSavedCount(int count) {
|
||
return '$count enregistrés';
|
||
}
|
||
|
||
@override
|
||
String get favoritesRemoveTooltip => 'Retirer des favoris';
|
||
|
||
@override
|
||
String favoritesRemovedMessage(Object stationName) {
|
||
return '$stationName retirée des favoris';
|
||
}
|
||
|
||
@override
|
||
String get alarmPostponedCurrentExecution =>
|
||
'Alarme reportée pour cette exécution.';
|
||
|
||
@override
|
||
String get searchScreenTitle => 'Rechercher un signal';
|
||
|
||
@override
|
||
String get searchScreenSubtitle =>
|
||
'Trouvez des stations par nom, pays ou langue grâce à des filtres rapides et à un contraste élevé.';
|
||
|
||
@override
|
||
String get searchFiltersLabel => 'Filtres';
|
||
|
||
@override
|
||
String get searchHint => 'Radio Horizon, jazz, infos...';
|
||
|
||
@override
|
||
String get searchCountryFilterLabel => 'Pays';
|
||
|
||
@override
|
||
String get searchLanguageFilterLabel => 'Langue';
|
||
|
||
@override
|
||
String get searchMinQualityFilterLabel => 'Qualité minimale';
|
||
|
||
@override
|
||
String get searchEmptyTitle => 'Recherchez une station';
|
||
|
||
@override
|
||
String get searchNoResultsTitle => 'Aucun résultat';
|
||
|
||
@override
|
||
String get searchEmptySubtitle =>
|
||
'Utilisez la barre du haut ou les pastilles pour découvrir des stations du monde entier.';
|
||
|
||
@override
|
||
String get searchNoResultsSubtitle =>
|
||
'Essayez de retirer des filtres ou de saisir un autre nom pour trouver une station active.';
|
||
|
||
@override
|
||
String get countrySpain => 'Espagne';
|
||
|
||
@override
|
||
String get countryUsa => 'États-Unis';
|
||
|
||
@override
|
||
String get countryMexico => 'Mexique';
|
||
|
||
@override
|
||
String get countryArgentina => 'Argentine';
|
||
|
||
@override
|
||
String get countryUk => 'Royaume-Uni';
|
||
|
||
@override
|
||
String get countryFrance => 'France';
|
||
|
||
@override
|
||
String get countryGermany => 'Allemagne';
|
||
|
||
@override
|
||
String get countryItaly => 'Italie';
|
||
|
||
@override
|
||
String get countryBrazil => 'Brésil';
|
||
|
||
@override
|
||
String get countryJapan => 'Japon';
|
||
|
||
@override
|
||
String get languageNameSpanish => 'espagnol';
|
||
|
||
@override
|
||
String get languageNameEnglish => 'anglais';
|
||
|
||
@override
|
||
String get languageNameFrench => 'français';
|
||
|
||
@override
|
||
String get languageNameGerman => 'allemand';
|
||
|
||
@override
|
||
String get languageNamePortuguese => 'portugais';
|
||
|
||
@override
|
||
String get languageNameItalian => 'italien';
|
||
|
||
@override
|
||
String get languageNameJapanese => 'japonais';
|
||
|
||
@override
|
||
String get languageNameArabic => 'arabe';
|
||
|
||
@override
|
||
String get languageNameRussian => 'russe';
|
||
|
||
@override
|
||
String get homeScreenSubtitle =>
|
||
'Radio mondiale en direct avec des signaux clairs, des favoris intelligents et une expérience visuelle de jeu télévisé.';
|
||
|
||
@override
|
||
String get exploreStations => 'Explorer les stations';
|
||
|
||
@override
|
||
String stationsCount(int count) {
|
||
return '$count radios';
|
||
}
|
||
|
||
@override
|
||
String get qualityHd => 'Qualité HD';
|
||
|
||
@override
|
||
String get nearYou => 'Près de vous';
|
||
|
||
@override
|
||
String nearYouInCountry(Object country) {
|
||
return 'Près de vous · $country';
|
||
}
|
||
|
||
@override
|
||
String get detectAction => 'Détecter';
|
||
|
||
@override
|
||
String get liveRadar => 'Radar en direct';
|
||
|
||
@override
|
||
String get genresTitle => 'Genres';
|
||
|
||
@override
|
||
String get retryAction => 'Réessayer';
|
||
|
||
@override
|
||
String get noStationsAvailable => 'Aucune station disponible';
|
||
|
||
@override
|
||
String get noStationsAvailableSubtitle =>
|
||
'Essayez d’actualiser ou de choisir un autre genre pour capter à nouveau un signal.';
|
||
|
||
@override
|
||
String get genrePop => 'Pop';
|
||
|
||
@override
|
||
String get genreRock => 'Rock';
|
||
|
||
@override
|
||
String get genreJazz => 'Jazz';
|
||
|
||
@override
|
||
String get genreClassical => 'Classique';
|
||
|
||
@override
|
||
String get genreElectronic => 'Électronique';
|
||
|
||
@override
|
||
String get genreNews => 'Infos';
|
||
|
||
@override
|
||
String get genreTalk => 'Débat';
|
||
|
||
@override
|
||
String get genreHipHop => 'Hip-hop';
|
||
|
||
@override
|
||
String get genreCountry => 'Country';
|
||
|
||
@override
|
||
String get genreMetal => 'Metal';
|
||
|
||
@override
|
||
String get genreReggae => 'Reggae';
|
||
|
||
@override
|
||
String get genreLatin => 'Latino';
|
||
|
||
@override
|
||
String get alarmScreenTitle => 'Réveil musical';
|
||
|
||
@override
|
||
String get alarmScreenSubtitle =>
|
||
'Alarmes avec radio, son sécurisé, vacances intelligentes et prochaine exécution toujours visible.';
|
||
|
||
@override
|
||
String get createAlarmAction => 'Créer une alarme';
|
||
|
||
@override
|
||
String alarmsCount(int count) {
|
||
return '$count alarmes';
|
||
}
|
||
|
||
@override
|
||
String get activeAlarmsWithoutNextTitle =>
|
||
'Alarmes actives sans prochaine exécution';
|
||
|
||
@override
|
||
String get noActiveAlarms => 'Aucune alarme active';
|
||
|
||
@override
|
||
String get nextAlarmTitle => 'Prochaine alarme';
|
||
|
||
@override
|
||
String activeAlarmsWithoutNextSubtitle(int count) {
|
||
return 'Il y a $count alarme(s) active(s), mais elles n’ont actuellement aucune date future valide. Vérifiez la date, les jours et les vacances.';
|
||
}
|
||
|
||
@override
|
||
String get createAlarmHint =>
|
||
'Créez une alarme et PluriWave calculera automatiquement la prochaine exécution.';
|
||
|
||
@override
|
||
String get alarmVacationPlay => 'Sonne pendant les vacances';
|
||
|
||
@override
|
||
String get alarmVacationPause => 'En pause pendant les vacances';
|
||
|
||
@override
|
||
String alarmFadeInLabel(int seconds) {
|
||
return 'Fondu d’entrée $seconds s';
|
||
}
|
||
|
||
@override
|
||
String alarmNextExecution(Object date) {
|
||
return 'Prochaine exécution : $date';
|
||
}
|
||
|
||
@override
|
||
String get alarmNoNextExecution => 'Aucune prochaine exécution active.';
|
||
|
||
@override
|
||
String alarmSkippedExecution(Object date) {
|
||
return 'Une exécution a été ignorée : $date.';
|
||
}
|
||
|
||
@override
|
||
String get editAction => 'Modifier';
|
||
|
||
@override
|
||
String get skipNextAction => 'Ignorer la suivante';
|
||
|
||
@override
|
||
String get deleteTooltip => 'Supprimer';
|
||
|
||
@override
|
||
String get alarmSkippedNoNextSnackbar =>
|
||
'Alarme ignorée. Il ne reste aucune prochaine exécution.';
|
||
|
||
@override
|
||
String alarmSkippedReturnsSnackbar(Object date) {
|
||
return 'Alarme ignorée. Elle reviendra le $date.';
|
||
}
|
||
|
||
@override
|
||
String alarmVacationPausedNoNext(Object vacationName) {
|
||
return 'En pause pour vacances ($vacationName) et sans prochaine exécution.';
|
||
}
|
||
|
||
@override
|
||
String alarmVacationPausedReturns(Object vacationName, Object date) {
|
||
return 'En pause pour vacances ($vacationName) et revient le $date.';
|
||
}
|
||
|
||
@override
|
||
String alarmVacationReturns(Object date) {
|
||
return 'Avec les vacances actives, elle sonnera à nouveau le $date.';
|
||
}
|
||
|
||
@override
|
||
String get defaultAlarmName => 'Réveil musical';
|
||
|
||
@override
|
||
String get newAlarmTitle => 'Nouvelle alarme';
|
||
|
||
@override
|
||
String get editAlarmTitle => 'Modifier l’alarme';
|
||
|
||
@override
|
||
String get nameField => 'Nom';
|
||
|
||
@override
|
||
String get timeField => 'Heure';
|
||
|
||
@override
|
||
String get dateField => 'Date';
|
||
|
||
@override
|
||
String get onceOption => 'Une fois';
|
||
|
||
@override
|
||
String get dailyOption => 'Quotidienne';
|
||
|
||
@override
|
||
String get weekdaysOption => 'Jours';
|
||
|
||
@override
|
||
String get soundAndVolumeSection => 'Son et volume';
|
||
|
||
@override
|
||
String get alarmFadeInTitle => 'Fondu d’entrée de l’alarme';
|
||
|
||
@override
|
||
String get alarmFadeInOff => '0 s (sans transition)';
|
||
|
||
@override
|
||
String alarmFadeInSummary(int seconds) {
|
||
return '$seconds s (de 5 % au volume choisi)';
|
||
}
|
||
|
||
@override
|
||
String get internalSafeSoundLabel => 'Son sécurisé interne';
|
||
|
||
@override
|
||
String get soundWarmSunrise => 'Lever de soleil chaleureux';
|
||
|
||
@override
|
||
String get soundSoftBell => 'Cloche douce';
|
||
|
||
@override
|
||
String get soundDigitalPulse => 'Impulsion numérique';
|
||
|
||
@override
|
||
String get favoriteStationLabel => 'Station favorite';
|
||
|
||
@override
|
||
String get noStationUseInternalSound =>
|
||
'Aucune station : utiliser le son interne';
|
||
|
||
@override
|
||
String get alarmFallbackStationLabel => 'Station de secours';
|
||
|
||
@override
|
||
String get alarmStationPickerSearchHint => 'Rechercher une station par nom';
|
||
|
||
@override
|
||
String get alarmSnoozeDurationTitle => 'Durée de répétition';
|
||
|
||
@override
|
||
String get snoozeAction => 'Répéter';
|
||
|
||
@override
|
||
String alarmSnoozeOptionLabel(int minutes) {
|
||
return '$minutes min';
|
||
}
|
||
|
||
@override
|
||
String get saveFavoritesAlarmHint =>
|
||
'Enregistrez des stations dans les Favoris pour les utiliser comme alarme musicale.';
|
||
|
||
@override
|
||
String get useCurrentStationAction => 'Utiliser la station actuelle';
|
||
|
||
@override
|
||
String get playDuringVacations => 'Sonner pendant les vacances';
|
||
|
||
@override
|
||
String get playDuringVacationsHint =>
|
||
'Si vous désactivez cette option, la prochaine exécution passera au premier jour valide.';
|
||
|
||
@override
|
||
String get saveAlarmAction => 'Enregistrer l’alarme';
|
||
|
||
@override
|
||
String get chooseOneWeekdayError =>
|
||
'Choisissez au moins un jour de la semaine.';
|
||
|
||
@override
|
||
String get androidReliabilityReview => 'Vérifier la fiabilité Android';
|
||
|
||
@override
|
||
String get statusOk => 'OK';
|
||
|
||
@override
|
||
String get statusPending => 'en attente';
|
||
|
||
@override
|
||
String androidReliabilityStatus(
|
||
Object exact,
|
||
Object notifications,
|
||
Object screen,
|
||
) {
|
||
return 'Fiabilité : exactes $exact · notifications $notifications · écran $screen';
|
||
}
|
||
|
||
@override
|
||
String get vacationRangesTitle => 'Périodes de vacances';
|
||
|
||
@override
|
||
String get addAction => 'Ajouter';
|
||
|
||
@override
|
||
String get vacationRangesHint =>
|
||
'Si une alarme est en « pause pendant les vacances », ces périodes sont automatiquement ignorées.';
|
||
|
||
@override
|
||
String get noVacationRangesLoaded => 'Aucune période chargée.';
|
||
|
||
@override
|
||
String get deleteRangeTooltip => 'Supprimer la période';
|
||
|
||
@override
|
||
String get vacationsDefaultName => 'Vacances';
|
||
|
||
@override
|
||
String get newVacationRangeTitle => 'Nouvelle période de vacances';
|
||
|
||
@override
|
||
String get startField => 'Début';
|
||
|
||
@override
|
||
String get endField => 'Fin';
|
||
|
||
@override
|
||
String get saveRangeAction => 'Enregistrer la période';
|
||
|
||
@override
|
||
String get noAlarmsYetTitle => 'Il n’y a pas encore d’alarmes.';
|
||
|
||
@override
|
||
String get noAlarmsYetSubtitle =>
|
||
'Créez-en une pour concevoir votre réveil musical.';
|
||
|
||
@override
|
||
String get ringingInternalAudioActive => 'Son sécurisé interne en cours.';
|
||
|
||
@override
|
||
String get ringingPreparingInternalAudio =>
|
||
'Préparation du son sécurisé interne.';
|
||
|
||
@override
|
||
String get stopAlarmAction => 'Arrêter l’alarme';
|
||
|
||
@override
|
||
String get pauseAction => 'Pause';
|
||
|
||
@override
|
||
String miniPlayerOpenLabel(Object stationName) {
|
||
return 'Ouvrir le lecteur de $stationName';
|
||
}
|
||
|
||
@override
|
||
String get playerIconLabel => 'Lecteur';
|
||
|
||
@override
|
||
String get playbackStatusConnecting => 'Connexion...';
|
||
|
||
@override
|
||
String get playbackStatusLive => 'En direct';
|
||
|
||
@override
|
||
String get playbackStatusPaused => 'En pause';
|
||
|
||
@override
|
||
String get playbackStatusReconnecting => 'Reconnexion...';
|
||
|
||
@override
|
||
String get playbackStatusConnectionError => 'Erreur de connexion';
|
||
|
||
@override
|
||
String get playbackStatusStopped => 'Arrêté';
|
||
|
||
@override
|
||
String stationSemanticLabel(Object stationName) {
|
||
return 'Station $stationName';
|
||
}
|
||
|
||
@override
|
||
String get favoritesAddTooltip => 'Ajouter aux favoris';
|
||
|
||
@override
|
||
String favoritesAddedMessage(Object stationName) {
|
||
return '$stationName ajoutée aux favoris';
|
||
}
|
||
|
||
@override
|
||
String get stationIconLabel => 'Icône de station';
|
||
|
||
@override
|
||
String get liveNow => 'En direct';
|
||
|
||
@override
|
||
String equalizerBandLabel(Object band) {
|
||
return 'Bande $band';
|
||
}
|
||
|
||
@override
|
||
String equalizerBandValue(Object value) {
|
||
return '$value décibels';
|
||
}
|
||
|
||
@override
|
||
String get equalizerPresetFlat => 'Plat';
|
||
|
||
@override
|
||
String get equalizerPresetRock => 'Rock';
|
||
|
||
@override
|
||
String get equalizerPresetPop => 'Pop';
|
||
|
||
@override
|
||
String get equalizerPresetBassBoost => 'Renforcement des basses';
|
||
|
||
@override
|
||
String get equalizerPresetJazz => 'Jazz';
|
||
|
||
@override
|
||
String get equalizerPresetVoice => 'Voix';
|
||
|
||
@override
|
||
String get equalizerPresetCustom => 'Personnalisé';
|
||
|
||
@override
|
||
String get onboardingTitle => 'Bienvenue dans PluriWave';
|
||
|
||
@override
|
||
String get onboardingNewsTitle => 'Nouveautés';
|
||
|
||
@override
|
||
String get onboardingStartAction => 'Commencer';
|
||
|
||
@override
|
||
String get onboardingCloseTooltip => 'Fermer';
|
||
|
||
@override
|
||
String radioRecordingError(Object error) {
|
||
return 'Erreur lors de l\'enregistrement de la radio : $error';
|
||
}
|
||
|
||
@override
|
||
String get radioApiConnectionError => 'Aucune connexion à l\'API radio';
|
||
|
||
@override
|
||
String get radioSearchError =>
|
||
'Erreur de recherche. Vérifiez votre connexion.';
|
||
|
||
@override
|
||
String get radioLoadMoreStationsError =>
|
||
'Impossible de charger plus de stations.';
|
||
|
||
@override
|
||
String get radioNearbyStationsError =>
|
||
'Nous n\'avons pas pu détecter de stations proches. Utilisez les filtres par pays.';
|
||
|
||
@override
|
||
String radioCannotPlayStation(Object stationName) {
|
||
return 'Impossible de lire \"$stationName\"';
|
||
}
|
||
|
||
@override
|
||
String get recordingSelectStationFirst =>
|
||
'Sélectionnez d\'abord une station à enregistrer.';
|
||
|
||
@override
|
||
String recordingStartError(Object error) {
|
||
return 'Impossible de démarrer l\'enregistrement : $error';
|
||
}
|
||
|
||
@override
|
||
String get unsupportedConfigVersion =>
|
||
'Version de configuration non prise en charge';
|
||
|
||
@override
|
||
String get audioErrorGeneric => 'Erreur de lecture';
|
||
|
||
@override
|
||
String get audioErrorNoInternet => 'Aucune connexion Internet';
|
||
|
||
@override
|
||
String get audioErrorInvalidUrl => 'L\'URL de la radio n\'est pas valide';
|
||
|
||
@override
|
||
String get audioErrorNotFound =>
|
||
'La radio n\'est pas disponible (erreur 404)';
|
||
|
||
@override
|
||
String get audioErrorTimeout => 'Délai de connexion dépassé';
|
||
|
||
@override
|
||
String get audioErrorCannotConnect => 'Impossible de se connecter à la radio';
|
||
|
||
@override
|
||
String get audioErrorUnsupportedFormat => 'Format de flux non pris en charge';
|
||
|
||
@override
|
||
String get audioErrorDecode => 'Erreur lors du décodage du flux audio';
|
||
|
||
@override
|
||
String get audioErrorCleartext =>
|
||
'Cette radio utilise HTTP non chiffré, ce qui n\'est pas autorisé';
|
||
|
||
@override
|
||
String get audioErrorSsl => 'Certificat SSL invalide pour la radio';
|
||
|
||
@override
|
||
String get audioErrorCannotPlay => 'Impossible de lire cette radio';
|
||
|
||
@override
|
||
String get audioErrorUnexpectedPlayback => 'Erreur de lecture inattendue';
|
||
|
||
@override
|
||
String get androidExactAlarmScheduleError =>
|
||
'Android n\'a pas pu programmer une alarme exacte. Vérifiez l\'autorisation des alarmes exactes.';
|
||
|
||
@override
|
||
String get recordingPathEmptyError =>
|
||
'Le chemin d\'enregistrement ne peut pas être vide';
|
||
|
||
@override
|
||
String get recordingMaxSizeInvalidError =>
|
||
'La taille maximale doit être supérieure à zéro';
|
||
|
||
@override
|
||
String get recordingAlreadyActiveError =>
|
||
'Un enregistrement est déjà en cours';
|
||
|
||
@override
|
||
String get alarmRingingFallbackActive =>
|
||
'Lecture avec l’audio interne sécurisé.';
|
||
|
||
@override
|
||
String get alarmRingingPreparingFallback =>
|
||
'Préparation de l’audio interne sécurisé.';
|
||
|
||
@override
|
||
String get alarmRingingTryingStation =>
|
||
'Tentative de lecture de votre station avec la meilleure qualité disponible.';
|
||
|
||
@override
|
||
String alarmScheduleOnce(Object date) {
|
||
return 'Une fois · $date';
|
||
}
|
||
|
||
@override
|
||
String alarmScheduleWeekdays(Object days) {
|
||
return 'Jours : $days';
|
||
}
|
||
|
||
@override
|
||
String get androidReliabilityTitle => 'Vérifier la fiabilité Android';
|
||
|
||
@override
|
||
String get closeAction => 'Fermer';
|
||
|
||
@override
|
||
String get customOption => 'Personnalisée';
|
||
|
||
@override
|
||
String get endLabel => 'Fin';
|
||
|
||
@override
|
||
String get equalizerDisable => 'Désactiver l’égaliseur';
|
||
|
||
@override
|
||
String get helpTitle => 'Aide et tutoriel';
|
||
|
||
@override
|
||
String get helpSubtitle =>
|
||
'Revoyez les fonctions, conseils et nouveautés de PluriWave.';
|
||
|
||
@override
|
||
String get indefiniteOption => 'Indéfinie';
|
||
|
||
@override
|
||
String get invalidNumber => 'Nombre invalide';
|
||
|
||
@override
|
||
String get nameLabel => 'Nom';
|
||
|
||
@override
|
||
String get notPlaying => 'Lecture arrêtée';
|
||
|
||
@override
|
||
String get oneTimeOption => 'Une fois';
|
||
|
||
@override
|
||
String get pausePlaybackTooltip => 'Mettre en pause';
|
||
|
||
@override
|
||
String qualityOriginal(Object quality) {
|
||
return 'Qualité d’origine : $quality';
|
||
}
|
||
|
||
@override
|
||
String get qualityUnknown => 'Qualité non indiquée';
|
||
|
||
@override
|
||
String get recordAction => 'Enregistrer';
|
||
|
||
@override
|
||
String get recordDurationTitle => 'Durée d’enregistrement';
|
||
|
||
@override
|
||
String get recordRadioSubtitle => 'Choisissez la durée d’enregistrement.';
|
||
|
||
@override
|
||
String get recordRadioTitle => 'Enregistrer la radio';
|
||
|
||
@override
|
||
String get recordingActiveTitle => 'Enregistrement de la radio';
|
||
|
||
@override
|
||
String get recordingDirectTitle => 'Enregistrement direct';
|
||
|
||
@override
|
||
String get recordingsOpenFolderPlainError =>
|
||
'Impossible d’ouvrir le dossier des enregistrements';
|
||
|
||
@override
|
||
String get recordingsOpenLatest => 'Ouvrir le dernier enregistrement';
|
||
|
||
@override
|
||
String get recordingsOpenLatestError =>
|
||
'Impossible d’ouvrir le dernier enregistrement';
|
||
|
||
@override
|
||
String get startLabel => 'Début';
|
||
|
||
@override
|
||
String get startPlaybackTooltip => 'Démarrer la lecture';
|
||
|
||
@override
|
||
String get stopAction => 'Arrêter';
|
||
|
||
@override
|
||
String get stopPlaybackTooltip => 'Arrêter la lecture';
|
||
|
||
@override
|
||
String get weekdayShortMonday => 'Lun';
|
||
|
||
@override
|
||
String get weekdayShortTuesday => 'Mar';
|
||
|
||
@override
|
||
String get weekdayShortWednesday => 'Mer';
|
||
|
||
@override
|
||
String get weekdayShortThursday => 'Jeu';
|
||
|
||
@override
|
||
String get weekdayShortFriday => 'Ven';
|
||
|
||
@override
|
||
String get weekdayShortSaturday => 'Sam';
|
||
|
||
@override
|
||
String get weekdayShortSunday => 'Dim';
|
||
|
||
@override
|
||
String stationCount(int count) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
count,
|
||
locale: localeName,
|
||
other: '$count stations',
|
||
one: '1 station',
|
||
);
|
||
return '$_temp0';
|
||
}
|
||
|
||
@override
|
||
String get alarmIconLabel => 'Alarme musicale';
|
||
|
||
@override
|
||
String get vacationIconLabel => 'Mode vacances';
|
||
|
||
@override
|
||
String get streamUrlHint => 'https://stream.example.com:8000/radio';
|
||
|
||
@override
|
||
String get advancedEqSectionTitle => 'Options d\'égalisation avancées';
|
||
|
||
@override
|
||
String get advancedEqEnableToggle => 'Activer l\'EQ par appareil';
|
||
|
||
@override
|
||
String get advancedEqEnableToggleSubtitle =>
|
||
'Appliquez automatiquement un preset EQ différent lorsque votre sortie audio change.';
|
||
|
||
@override
|
||
String get advancedEqKnownDevicesTitle => 'Appareils audio connus';
|
||
|
||
@override
|
||
String get advancedEqKnownDevicesEmpty =>
|
||
'Aucun appareil audio enregistré pour l\'instant. Connectez un appareil pour commencer.';
|
||
|
||
@override
|
||
String advancedEqDevicePresetLabel(Object presetName) {
|
||
return 'Preset : $presetName';
|
||
}
|
||
|
||
@override
|
||
String preNoticeCountdown(int minutes) {
|
||
return 'Démarre dans $minutes min';
|
||
}
|
||
|
||
@override
|
||
String get eqDeviceEditTitle => 'Modifier l\'appareil';
|
||
|
||
@override
|
||
String get eqDeviceNameLabel => 'Nom de l\'appareil';
|
||
|
||
@override
|
||
String get eqDeviceNameHint => 'ex. : Enceinte salon';
|
||
|
||
@override
|
||
String get eqDeviceNameConfirm => 'Enregistrer';
|
||
|
||
@override
|
||
String get eqDeviceConnected => 'Connecté';
|
||
}
|