fix(i18n): normalize translations and fallbacks
This commit is contained in:
+371
-197
@@ -5,103 +5,131 @@
|
||||
"navSearch": "Recherche",
|
||||
"navFavorites": "Favoris",
|
||||
"navAlarms": "Alarmes",
|
||||
"navSettings": "Settings",
|
||||
"navSettings": "Paramètres",
|
||||
"actionOk": "OK",
|
||||
"sleepTimer": "Minuteur de sommeil",
|
||||
"sleepTimerDescription": "Smooth radio shutdown with an exact countdown.",
|
||||
"cancelTimer": "Cancel timer",
|
||||
"optionOther": "Other",
|
||||
"customDurationTitle": "Custom duration",
|
||||
"durationGreaterThanZero": "Choose a duration greater than zero.",
|
||||
"hoursLabel": "Hours",
|
||||
"sleepTimerDescription": "Arrêt progressif de la radio avec compte à rebours précis.",
|
||||
"cancelTimer": "Annuler le minuteur",
|
||||
"optionOther": "Autre",
|
||||
"customDurationTitle": "Durée personnalisée",
|
||||
"durationGreaterThanZero": "Choisissez une durée supérieure à zéro.",
|
||||
"hoursLabel": "Heures",
|
||||
"minutesLabel": "Minutes",
|
||||
"secondsLabel": "Seconds",
|
||||
"saveQuickAccess": "Save as quick access",
|
||||
"startTimer": "Start timer",
|
||||
"skipCurrentAlarmExecution": "Skipped this execution of {alarmName}.",
|
||||
"secondsLabel": "Secondes",
|
||||
"durationHoursMinutesSeconds": "{hours} h {minutes} min {seconds} s",
|
||||
"@durationHoursMinutesSeconds": {
|
||||
"placeholders": {
|
||||
"hours": {},
|
||||
"minutes": {},
|
||||
"seconds": {}
|
||||
}
|
||||
},
|
||||
"durationMinutesSeconds": "{minutes} min {seconds} s",
|
||||
"@durationMinutesSeconds": {
|
||||
"placeholders": {
|
||||
"minutes": {},
|
||||
"seconds": {}
|
||||
}
|
||||
},
|
||||
"durationMinutesOnly": "{minutes} min",
|
||||
"@durationMinutesOnly": {
|
||||
"placeholders": {
|
||||
"minutes": {}
|
||||
}
|
||||
},
|
||||
"durationSecondsOnly": "{seconds} s",
|
||||
"@durationSecondsOnly": {
|
||||
"placeholders": {
|
||||
"seconds": {}
|
||||
}
|
||||
},
|
||||
"saveQuickAccess": "Enregistrer comme raccourci",
|
||||
"startTimer": "Démarrer le minuteur",
|
||||
"skipCurrentAlarmExecution": "Cette exécution de {alarmName} a été ignorée.",
|
||||
"@skipCurrentAlarmExecution": {
|
||||
"placeholders": {
|
||||
"alarmName": {}
|
||||
}
|
||||
},
|
||||
"settingsTitle": "Settings",
|
||||
"settingsSubtitle": "Fine-grained sound control, backups, and custom stations.",
|
||||
"settingsTitle": "Paramètres",
|
||||
"settingsSubtitle": "Réglage précis du son, sauvegardes et stations personnalisées.",
|
||||
"languageSectionTitle": "Langue",
|
||||
"languageSectionDescription": "Choose how the app language is displayed.",
|
||||
"languageSystemDefault": "System",
|
||||
"languageSectionDescription": "Choisissez le mode d’affichage de la langue de l’app.",
|
||||
"languageSystemDefault": "Système",
|
||||
"languageSpanish": "Espagnol",
|
||||
"languageEnglish": "Anglais",
|
||||
"languageUpdated": "Language updated: {languageName}",
|
||||
"languageUpdated": "Langue mise à jour : {languageName}",
|
||||
"@languageUpdated": {
|
||||
"placeholders": {
|
||||
"languageName": {}
|
||||
}
|
||||
},
|
||||
"languageUpdatedSystem": "Language updated: System",
|
||||
"timerSectionTitle": "Sleep timer",
|
||||
"timerSectionAdd": "Add",
|
||||
"timerSectionDescription": "Customize the quick presets shown when automatically stopping the radio.",
|
||||
"timerSectionRestoreRecommended": "Restore recommended times",
|
||||
"newQuickAccessTitle": "New quick access",
|
||||
"saveQuickAccessButton": "Save quick access",
|
||||
"settingsSafeStatus": "Safe",
|
||||
"recordingsSectionTitle": "Recordings",
|
||||
"recordingsFolderDialogTitle": "Select recordings folder",
|
||||
"recordingsPathUpdated": "Recording path updated",
|
||||
"recordingsPathSaveError": "Could not save the path: {error}",
|
||||
"recordingsDefaultFolderRestored": "The internal default folder will be used",
|
||||
"recordingsFolderTitle": "Recordings folder",
|
||||
"recordingsPathCalculating": "Calculating path...",
|
||||
"recordingsChangePath": "Change path",
|
||||
"recordingsUseDefaultPath": "Use default path",
|
||||
"recordingsOriginalStreamHint": "The radio is saved from the original stream, without recompressing.",
|
||||
"equalizerActive": "Active",
|
||||
"equalizerDisabled": "Disabled",
|
||||
"equalizerEnable": "Enable equalizer",
|
||||
"equalizerRealtimeSubtitle": "Changes are applied in real time to the current station.",
|
||||
"equalizerPendingSubtitle": "Changes are saved and will apply when Android enables the effect.",
|
||||
"equalizerPerStationTitle": "Use custom EQ for this favorite",
|
||||
"equalizerPerStationActive": "Active for {stationName}",
|
||||
"equalizerPerStationMain": "Using main EQ for {stationName}",
|
||||
"preferredStationTitle": "Preferred station",
|
||||
"preferredStationDescription": "Preselected for new alarms and available for quick playback.",
|
||||
"preferredStationNoStationsTitle": "No stations available yet",
|
||||
"preferredStationNoStationsSubtitle": "Save favorites or load stations to choose a preferred one.",
|
||||
"preferredStationAutomaticFallback": "Automatic fallback",
|
||||
"preferredStationDefaultFavorite": "Default favorite",
|
||||
"preferredStationCurrent": "Current preferred: {stationName}",
|
||||
"preferredStationAutoUsing": "No favorites: automatically using {stationName}",
|
||||
"preferredStationPlay": "Play preferred",
|
||||
"customStationsTitle": "Custom stations",
|
||||
"customStationsAdd": "Add",
|
||||
"customStationsEmpty": "No custom stations.",
|
||||
"playAction": "Play",
|
||||
"deleteAction": "Delete",
|
||||
"addStationTitle": "Add station",
|
||||
"stationNameLabel": "Name *",
|
||||
"requiredField": "Required field",
|
||||
"streamUrlLabel": "Stream URL *",
|
||||
"invalidUrl": "Invalid URL",
|
||||
"countryOptionalLabel": "Country (optional)",
|
||||
"saveStation": "Save station",
|
||||
"backupSectionTitle": "Backup",
|
||||
"backupExportTitle": "Export configuration",
|
||||
"backupExportSubtitle": "Favorites, custom stations, and EQ presets",
|
||||
"backupImportTitle": "Import configuration",
|
||||
"backupImportSubtitle": "Restore from a backup file",
|
||||
"backupShareSubject": "PluriWave — backup",
|
||||
"backupShareText": "PluriWave configuration exported on {date}",
|
||||
"backupExportError": "Export error: {error}",
|
||||
"backupImportConfirmMessage": "This will add favorites, stations, and presets from the file. Continue?",
|
||||
"backupImportSuccess": "Configuration imported successfully",
|
||||
"backupImportError": "Import error: {error}",
|
||||
"appVersionLoading": "Loading version...",
|
||||
"appVersionSubtitle": "{version} - World radio",
|
||||
"savedFavoritesTitle": "Saved favorites",
|
||||
"stationFilterTitle": "Station filter",
|
||||
"stationFilterSubtitle": "Only stations verified as active",
|
||||
"backgroundAudioTitle": "Background audio",
|
||||
"backgroundAudioSubtitle": "Continues when the screen turns off",
|
||||
"languageUpdatedSystem": "Langue mise à jour : Système",
|
||||
"timerSectionTitle": "Minuteur de sommeil",
|
||||
"timerSectionAdd": "Ajouter",
|
||||
"timerSectionDescription": "Personnalisez les raccourcis affichés lors de l’arrêt automatique de la radio.",
|
||||
"timerSectionRestoreRecommended": "Restaurer les durées recommandées",
|
||||
"newQuickAccessTitle": "Nouveau raccourci",
|
||||
"saveQuickAccessButton": "Enregistrer le raccourci",
|
||||
"settingsSafeStatus": "Sûr",
|
||||
"recordingsSectionTitle": "Enregistrements",
|
||||
"recordingsFolderDialogTitle": "Sélectionnez le dossier d’enregistrement",
|
||||
"recordingsPathUpdated": "Chemin d’enregistrement mis à jour",
|
||||
"recordingsPathSaveError": "Impossible d’enregistrer le chemin : {error}",
|
||||
"recordingsDefaultFolderRestored": "Le dossier interne par défaut sera utilisé",
|
||||
"recordingsFolderTitle": "Dossier d’enregistrement",
|
||||
"recordingsPathCalculating": "Calcul du chemin...",
|
||||
"recordingsChangePath": "Changer le chemin",
|
||||
"recordingsUseDefaultPath": "Utiliser le chemin par défaut",
|
||||
"recordingsOriginalStreamHint": "La radio est enregistrée depuis le flux original, sans recompression.",
|
||||
"equalizerActive": "Actif",
|
||||
"equalizerDisabled": "Désactivé",
|
||||
"equalizerEnable": "Activer l’égaliseur",
|
||||
"equalizerRealtimeSubtitle": "Les changements s’appliquent en temps réel à la station actuelle.",
|
||||
"equalizerPendingSubtitle": "Les changements sont enregistrés et s’appliqueront quand Android activera l’effet.",
|
||||
"equalizerPerStationTitle": "Utiliser un EQ propre pour ce favori",
|
||||
"equalizerPerStationActive": "Actif pour {stationName}",
|
||||
"equalizerPerStationMain": "EQ principal utilisé pour {stationName}",
|
||||
"preferredStationTitle": "Station préférée",
|
||||
"preferredStationDescription": "Présélectionnée lors de la création d’alarmes et disponible en lecture rapide.",
|
||||
"preferredStationNoStationsTitle": "Aucune station disponible pour le moment",
|
||||
"preferredStationNoStationsSubtitle": "Enregistrez des favoris ou chargez des stations pour en choisir une préférée.",
|
||||
"preferredStationAutomaticFallback": "Repli automatique",
|
||||
"preferredStationDefaultFavorite": "Favori par défaut",
|
||||
"preferredStationCurrent": "Préférée actuelle : {stationName}",
|
||||
"preferredStationAutoUsing": "Aucun favori : utilisation automatique de {stationName}",
|
||||
"preferredStationPlay": "Lire la préférée",
|
||||
"customStationsTitle": "Stations personnalisées",
|
||||
"customStationsAdd": "Ajouter",
|
||||
"customStationsEmpty": "Aucune station personnalisée.",
|
||||
"playAction": "Lire",
|
||||
"deleteAction": "Supprimer",
|
||||
"addStationTitle": "Ajouter une station",
|
||||
"stationNameLabel": "Nom *",
|
||||
"unnamedStation": "Station sans nom",
|
||||
"requiredField": "Champ obligatoire",
|
||||
"streamUrlLabel": "URL du flux *",
|
||||
"invalidUrl": "URL non valide",
|
||||
"countryOptionalLabel": "Pays (facultatif)",
|
||||
"saveStation": "Enregistrer la station",
|
||||
"backupSectionTitle": "Sauvegarde",
|
||||
"backupExportTitle": "Exporter la configuration",
|
||||
"backupExportSubtitle": "Favoris, stations personnalisées et préréglages d’EQ",
|
||||
"backupImportTitle": "Importer la configuration",
|
||||
"backupImportSubtitle": "Restaurer depuis un fichier de sauvegarde",
|
||||
"backupShareSubject": "PluriWave — sauvegarde",
|
||||
"backupShareText": "Configuration de PluriWave exportée le {date}",
|
||||
"backupExportError": "Erreur d’exportation : {error}",
|
||||
"backupImportConfirmMessage": "Cela ajoutera les favoris, stations et préréglages du fichier. Continuer ?",
|
||||
"backupImportSuccess": "Configuration importée avec succès",
|
||||
"backupImportError": "Erreur d’importation : {error}",
|
||||
"appVersionLoading": "Chargement de la version...",
|
||||
"appVersionSubtitle": "{version} - Radio mondiale",
|
||||
"savedFavoritesTitle": "Favoris enregistrés",
|
||||
"stationFilterTitle": "Filtre de stations",
|
||||
"stationFilterSubtitle": "Seulement les stations vérifiées comme actives",
|
||||
"backgroundAudioTitle": "Audio en arrière-plan",
|
||||
"backgroundAudioSubtitle": "Continue lorsque l’écran s’éteint",
|
||||
"dash": "—",
|
||||
"@recordingsPathSaveError": {
|
||||
"placeholders": {
|
||||
@@ -149,14 +177,14 @@
|
||||
}
|
||||
},
|
||||
"cancelAction": "Annuler",
|
||||
"equalizerTitle": "Equalizer",
|
||||
"recordingsOpenFolder": "Open folder",
|
||||
"recordingsOpenFolderError": "Could not open the folder: {error}",
|
||||
"recordingsMaxSizeTitle": "Maximum recording size",
|
||||
"recordingsMaxSizeSubtitle": "Current limit: {size} MB",
|
||||
"recordingsMaxSizeDialogTitle": "Maximum size per recording",
|
||||
"recordingsMaxSizeMbLabel": "Maximum megabytes",
|
||||
"recordingsMaxSizeSaved": "Recording limit updated to {size} MB",
|
||||
"equalizerTitle": "Égaliseur",
|
||||
"recordingsOpenFolder": "Ouvrir le dossier",
|
||||
"recordingsOpenFolderError": "Impossible d’ouvrir le dossier : {error}",
|
||||
"recordingsMaxSizeTitle": "Taille maximale d’enregistrement",
|
||||
"recordingsMaxSizeSubtitle": "Limite actuelle : {size} Mo",
|
||||
"recordingsMaxSizeDialogTitle": "Taille maximale par enregistrement",
|
||||
"recordingsMaxSizeMbLabel": "Mégaoctets maximum",
|
||||
"recordingsMaxSizeSaved": "Limite d’enregistrement mise à jour à {size} Mo",
|
||||
"@recordingsOpenFolderError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
@@ -176,33 +204,33 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"stationOrderTitle": "Station order",
|
||||
"stationOrderByName": "By name",
|
||||
"stationOrderByQuality": "By quality",
|
||||
"stationOrderScopeDescription": "Applies to favorites, searches, nearby stations and quick lists.",
|
||||
"favoriteGroupsTitle": "Favorite lists",
|
||||
"favoriteGroupsDescription": "Create short lists to organize your saved stations.",
|
||||
"favoriteGroupsAdd": "Add list",
|
||||
"favoriteGroupsEdit": "Edit list",
|
||||
"favoriteGroupsDelete": "Delete list",
|
||||
"favoriteGroupsNameLabel": "List name",
|
||||
"favoriteGroupsNameTooLong": "Maximum 28 characters.",
|
||||
"favoriteGroupsUnassigned": "Unassigned",
|
||||
"favoriteGroupsProtectedHint": "Default list: it cannot be edited or deleted.",
|
||||
"favoriteGroupsCreated": "List created",
|
||||
"favoriteGroupsUpdated": "List updated",
|
||||
"favoriteGroupsDeleted": "List deleted; its stations return to Unassigned.",
|
||||
"favoriteGroupsAssign": "Move to list",
|
||||
"favoriteGroupsAssignSubtitle": "Current list: {groupName}",
|
||||
"favoriteGroupsAssigned": "{stationName} moved to {groupName}",
|
||||
"favoritesTitle": "Favorites",
|
||||
"favoritesEmptyTitle": "No favorites yet",
|
||||
"favoritesEmptySubtitle": "Tap the heart on any station to save it to your collection.",
|
||||
"favoritesHeaderSubtitle": "Organize your collection by lists and keep important radios close.",
|
||||
"stationOrderTitle": "Ordre des stations",
|
||||
"stationOrderByName": "Par nom",
|
||||
"stationOrderByQuality": "Par qualité",
|
||||
"stationOrderScopeDescription": "S’applique aux favoris, recherches, stations proches et listes rapides.",
|
||||
"favoriteGroupsTitle": "Listes de favoris",
|
||||
"favoriteGroupsDescription": "Créez de courtes listes pour organiser vos stations enregistrées.",
|
||||
"favoriteGroupsAdd": "Ajouter une liste",
|
||||
"favoriteGroupsEdit": "Modifier la liste",
|
||||
"favoriteGroupsDelete": "Supprimer la liste",
|
||||
"favoriteGroupsNameLabel": "Nom de la liste",
|
||||
"favoriteGroupsNameTooLong": "Maximum 28 caractères.",
|
||||
"favoriteGroupsUnassigned": "Non assigné",
|
||||
"favoriteGroupsProtectedHint": "Liste par défaut : elle ne peut être ni modifiée ni supprimée.",
|
||||
"favoriteGroupsCreated": "Liste créée",
|
||||
"favoriteGroupsUpdated": "Liste mise à jour",
|
||||
"favoriteGroupsDeleted": "Liste supprimée ; ses stations retournent à Non assigné.",
|
||||
"favoriteGroupsAssign": "Déplacer vers une liste",
|
||||
"favoriteGroupsAssignSubtitle": "Liste actuelle : {groupName}",
|
||||
"favoriteGroupsAssigned": "{stationName} déplacée vers {groupName}",
|
||||
"favoritesTitle": "Favoris",
|
||||
"favoritesEmptyTitle": "Aucun favori pour le moment",
|
||||
"favoritesEmptySubtitle": "Touchez le cœur sur n’importe quelle station pour l’enregistrer dans votre collection.",
|
||||
"favoritesHeaderSubtitle": "Organisez votre collection par listes et gardez les radios importantes à portée de main.",
|
||||
"favoritesCollection": "Collection",
|
||||
"favoritesSavedCount": "{count} saved",
|
||||
"favoritesRemoveTooltip": "Remove from favorites",
|
||||
"favoritesRemovedMessage": "{stationName} removed from favorites",
|
||||
"favoritesSavedCount": "{count} enregistrés",
|
||||
"favoritesRemoveTooltip": "Retirer des favoris",
|
||||
"favoritesRemovedMessage": "{stationName} retirée des favoris",
|
||||
"@favoriteGroupsAssignSubtitle": {
|
||||
"placeholders": {
|
||||
"groupName": {}
|
||||
@@ -226,7 +254,7 @@
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"alarmPostponedCurrentExecution": "Alarm postponed for this occurrence.",
|
||||
"alarmPostponedCurrentExecution": "Alarme reportée pour cette exécution.",
|
||||
"searchScreenTitle": "Rechercher un signal",
|
||||
"searchScreenSubtitle": "Trouvez des stations par nom, pays ou langue grâce à des filtres rapides et à un contraste élevé.",
|
||||
"searchFiltersLabel": "Filtres",
|
||||
@@ -257,9 +285,9 @@
|
||||
"languageNameJapanese": "japonais",
|
||||
"languageNameArabic": "arabe",
|
||||
"languageNameRussian": "russe",
|
||||
"homeScreenSubtitle": "Live global radio with clean signals, smart favorites, and a show-style visual experience.",
|
||||
"exploreStations": "Explore stations",
|
||||
"stationsCount": "{count} stations",
|
||||
"homeScreenSubtitle": "Radio mondiale en direct avec des signaux clairs, des favoris intelligents et une expérience visuelle de jeu télévisé.",
|
||||
"exploreStations": "Explorer les stations",
|
||||
"stationsCount": "{count} radios",
|
||||
"@stationsCount": {
|
||||
"placeholders": {
|
||||
"count": {
|
||||
@@ -267,36 +295,36 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"qualityHd": "HD quality",
|
||||
"nearYou": "Near you",
|
||||
"nearYouInCountry": "Near you ? {country}",
|
||||
"qualityHd": "Qualité HD",
|
||||
"nearYou": "Près de vous",
|
||||
"nearYouInCountry": "Près de vous · {country}",
|
||||
"@nearYouInCountry": {
|
||||
"placeholders": {
|
||||
"country": {}
|
||||
}
|
||||
},
|
||||
"detectAction": "Detect",
|
||||
"liveRadar": "Live radar",
|
||||
"detectAction": "Détecter",
|
||||
"liveRadar": "Radar en direct",
|
||||
"genresTitle": "Genres",
|
||||
"retryAction": "Retry",
|
||||
"noStationsAvailable": "No stations available",
|
||||
"noStationsAvailableSubtitle": "Try refreshing or choosing another genre to capture a signal again.",
|
||||
"retryAction": "Réessayer",
|
||||
"noStationsAvailable": "Aucune station disponible",
|
||||
"noStationsAvailableSubtitle": "Essayez d’actualiser ou de choisir un autre genre pour capter à nouveau un signal.",
|
||||
"genrePop": "Pop",
|
||||
"genreRock": "Rock",
|
||||
"genreJazz": "Jazz",
|
||||
"genreClassical": "Classical",
|
||||
"genreElectronic": "Electronic",
|
||||
"genreNews": "News",
|
||||
"genreTalk": "Talk",
|
||||
"genreClassical": "Classique",
|
||||
"genreElectronic": "Électronique",
|
||||
"genreNews": "Infos",
|
||||
"genreTalk": "Débat",
|
||||
"genreHipHop": "Hip-hop",
|
||||
"genreCountry": "Country",
|
||||
"genreMetal": "Metal",
|
||||
"genreReggae": "Reggae",
|
||||
"genreLatin": "Latin",
|
||||
"alarmScreenTitle": "Music wake-up",
|
||||
"alarmScreenSubtitle": "Alarms with radio, safe fallback sound, smart vacations, and the next occurrence always visible.",
|
||||
"createAlarmAction": "Create alarm",
|
||||
"alarmsCount": "{count} alarms",
|
||||
"genreLatin": "Latino",
|
||||
"alarmScreenTitle": "Réveil musical",
|
||||
"alarmScreenSubtitle": "Alarmes avec radio, son sécurisé, vacances intelligentes et prochaine exécution toujours visible.",
|
||||
"createAlarmAction": "Créer une alarme",
|
||||
"alarmsCount": "{count} alarmes",
|
||||
"@alarmsCount": {
|
||||
"placeholders": {
|
||||
"count": {
|
||||
@@ -304,10 +332,10 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"activeAlarmsWithoutNextTitle": "Active alarms without a next occurrence",
|
||||
"noActiveAlarms": "No active alarms",
|
||||
"nextAlarmTitle": "Next alarm",
|
||||
"activeAlarmsWithoutNextSubtitle": "There are {count} active alarm(s), but they do not currently have a valid future date. Check date, weekdays, and vacations.",
|
||||
"activeAlarmsWithoutNextTitle": "Alarmes actives sans prochaine exécution",
|
||||
"noActiveAlarms": "Aucune alarme active",
|
||||
"nextAlarmTitle": "Prochaine alarme",
|
||||
"activeAlarmsWithoutNextSubtitle": "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.",
|
||||
"@activeAlarmsWithoutNextSubtitle": {
|
||||
"placeholders": {
|
||||
"count": {
|
||||
@@ -315,10 +343,10 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"createAlarmHint": "Create an alarm and PluriWave will calculate the next occurrence automatically.",
|
||||
"alarmVacationPlay": "Plays during vacations",
|
||||
"alarmVacationPause": "Paused during vacations",
|
||||
"alarmFadeInLabel": "Fade-in {seconds}s",
|
||||
"createAlarmHint": "Créez une alarme et PluriWave calculera automatiquement la prochaine exécution.",
|
||||
"alarmVacationPlay": "Sonne pendant les vacances",
|
||||
"alarmVacationPause": "En pause pendant les vacances",
|
||||
"alarmFadeInLabel": "Fondu d’entrée {seconds} s",
|
||||
"@alarmFadeInLabel": {
|
||||
"placeholders": {
|
||||
"seconds": {
|
||||
@@ -326,61 +354,61 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"alarmNextExecution": "Next occurrence: {date}",
|
||||
"alarmNextExecution": "Prochaine exécution : {date}",
|
||||
"@alarmNextExecution": {
|
||||
"placeholders": {
|
||||
"date": {}
|
||||
}
|
||||
},
|
||||
"alarmNoNextExecution": "It has no active next occurrence.",
|
||||
"alarmSkippedExecution": "One occurrence was skipped: {date}.",
|
||||
"alarmNoNextExecution": "Aucune prochaine exécution active.",
|
||||
"alarmSkippedExecution": "Une exécution a été ignorée : {date}.",
|
||||
"@alarmSkippedExecution": {
|
||||
"placeholders": {
|
||||
"date": {}
|
||||
}
|
||||
},
|
||||
"editAction": "Edit",
|
||||
"skipNextAction": "Skip next",
|
||||
"deleteTooltip": "Delete",
|
||||
"alarmSkippedNoNextSnackbar": "Alarm skipped. There is no next occurrence left.",
|
||||
"alarmSkippedReturnsSnackbar": "Alarm skipped. It will return on {date}.",
|
||||
"editAction": "Modifier",
|
||||
"skipNextAction": "Ignorer la suivante",
|
||||
"deleteTooltip": "Supprimer",
|
||||
"alarmSkippedNoNextSnackbar": "Alarme ignorée. Il ne reste aucune prochaine exécution.",
|
||||
"alarmSkippedReturnsSnackbar": "Alarme ignorée. Elle reviendra le {date}.",
|
||||
"@alarmSkippedReturnsSnackbar": {
|
||||
"placeholders": {
|
||||
"date": {}
|
||||
}
|
||||
},
|
||||
"alarmVacationPausedNoNext": "It is paused for vacations ({vacationName}) and has no next occurrence.",
|
||||
"alarmVacationPausedNoNext": "En pause pour vacances ({vacationName}) et sans prochaine exécution.",
|
||||
"@alarmVacationPausedNoNext": {
|
||||
"placeholders": {
|
||||
"vacationName": {}
|
||||
}
|
||||
},
|
||||
"alarmVacationPausedReturns": "It is paused for vacations ({vacationName}) and returns on {date}.",
|
||||
"alarmVacationPausedReturns": "En pause pour vacances ({vacationName}) et revient le {date}.",
|
||||
"@alarmVacationPausedReturns": {
|
||||
"placeholders": {
|
||||
"vacationName": {},
|
||||
"date": {}
|
||||
}
|
||||
},
|
||||
"alarmVacationReturns": "With vacations enabled, it will ring again on {date}.",
|
||||
"alarmVacationReturns": "Avec les vacances actives, elle sonnera à nouveau le {date}.",
|
||||
"@alarmVacationReturns": {
|
||||
"placeholders": {
|
||||
"date": {}
|
||||
}
|
||||
},
|
||||
"defaultAlarmName": "Music alarm",
|
||||
"newAlarmTitle": "New alarm",
|
||||
"editAlarmTitle": "Edit alarm",
|
||||
"nameField": "Name",
|
||||
"timeField": "Time",
|
||||
"defaultAlarmName": "Réveil musical",
|
||||
"newAlarmTitle": "Nouvelle alarme",
|
||||
"editAlarmTitle": "Modifier l’alarme",
|
||||
"nameField": "Nom",
|
||||
"timeField": "Heure",
|
||||
"dateField": "Date",
|
||||
"onceOption": "Once",
|
||||
"dailyOption": "Daily",
|
||||
"weekdaysOption": "Weekdays",
|
||||
"soundAndVolumeSection": "Sound and volume",
|
||||
"alarmFadeInTitle": "Alarm fade-in",
|
||||
"alarmFadeInOff": "0 s (no transition)",
|
||||
"alarmFadeInSummary": "{seconds} s (from 5% to the selected volume)",
|
||||
"onceOption": "Une fois",
|
||||
"dailyOption": "Quotidienne",
|
||||
"weekdaysOption": "Jours",
|
||||
"soundAndVolumeSection": "Son et volume",
|
||||
"alarmFadeInTitle": "Fondu d’entrée de l’alarme",
|
||||
"alarmFadeInOff": "0 s (sans transition)",
|
||||
"alarmFadeInSummary": "{seconds} s (de 5 % au volume choisi)",
|
||||
"@alarmFadeInSummary": {
|
||||
"placeholders": {
|
||||
"seconds": {
|
||||
@@ -388,22 +416,22 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"internalSafeSoundLabel": "Internal safe sound",
|
||||
"soundWarmSunrise": "Warm sunrise",
|
||||
"soundSoftBell": "Soft bell",
|
||||
"soundDigitalPulse": "Digital pulse",
|
||||
"favoriteStationLabel": "Favorite station",
|
||||
"noStationUseInternalSound": "No station: use internal sound",
|
||||
"saveFavoritesAlarmHint": "Save stations in Favorites to use them as a music alarm.",
|
||||
"useCurrentStationAction": "Use current station",
|
||||
"playDuringVacations": "Play during vacations",
|
||||
"playDuringVacationsHint": "If you turn this off, the next occurrence will jump to the first valid day.",
|
||||
"saveAlarmAction": "Save alarm",
|
||||
"chooseOneWeekdayError": "Choose at least one weekday.",
|
||||
"androidReliabilityReview": "Review Android reliability",
|
||||
"internalSafeSoundLabel": "Son sécurisé interne",
|
||||
"soundWarmSunrise": "Lever de soleil chaleureux",
|
||||
"soundSoftBell": "Cloche douce",
|
||||
"soundDigitalPulse": "Impulsion numérique",
|
||||
"favoriteStationLabel": "Station favorite",
|
||||
"noStationUseInternalSound": "Aucune station : utiliser le son interne",
|
||||
"saveFavoritesAlarmHint": "Enregistrez des stations dans les Favoris pour les utiliser comme alarme musicale.",
|
||||
"useCurrentStationAction": "Utiliser la station actuelle",
|
||||
"playDuringVacations": "Sonner pendant les vacances",
|
||||
"playDuringVacationsHint": "Si vous désactivez cette option, la prochaine exécution passera au premier jour valide.",
|
||||
"saveAlarmAction": "Enregistrer l’alarme",
|
||||
"chooseOneWeekdayError": "Choisissez au moins un jour de la semaine.",
|
||||
"androidReliabilityReview": "Vérifier la fiabilité Android",
|
||||
"statusOk": "OK",
|
||||
"statusPending": "pending",
|
||||
"androidReliabilityStatus": "Reliability: exact {exact} ? notifications {notifications} ? screen {screen}",
|
||||
"statusPending": "en attente",
|
||||
"androidReliabilityStatus": "Fiabilité : exactes {exact} · notifications {notifications} · écran {screen}",
|
||||
"@androidReliabilityStatus": {
|
||||
"placeholders": {
|
||||
"exact": {},
|
||||
@@ -411,19 +439,165 @@
|
||||
"screen": {}
|
||||
}
|
||||
},
|
||||
"vacationRangesTitle": "Vacation ranges",
|
||||
"addAction": "Add",
|
||||
"vacationRangesHint": "If an alarm is set to \"Paused during vacations\", it automatically skips these ranges.",
|
||||
"noVacationRangesLoaded": "No ranges loaded.",
|
||||
"deleteRangeTooltip": "Delete range",
|
||||
"vacationsDefaultName": "Vacation",
|
||||
"newVacationRangeTitle": "New vacation range",
|
||||
"startField": "Start",
|
||||
"endField": "End",
|
||||
"saveRangeAction": "Save range",
|
||||
"noAlarmsYetTitle": "There are no alarms yet.",
|
||||
"noAlarmsYetSubtitle": "Create one to design your musical wake-up.",
|
||||
"ringingInternalAudioActive": "Playing with internal safe audio.",
|
||||
"ringingPreparingInternalAudio": "Preparing internal safe audio.",
|
||||
"stopAlarmAction": "Stop alarm"
|
||||
"vacationRangesTitle": "Périodes de vacances",
|
||||
"addAction": "Ajouter",
|
||||
"vacationRangesHint": "Si une alarme est en « pause pendant les vacances », ces périodes sont automatiquement ignorées.",
|
||||
"noVacationRangesLoaded": "Aucune période chargée.",
|
||||
"deleteRangeTooltip": "Supprimer la période",
|
||||
"vacationsDefaultName": "Vacances",
|
||||
"newVacationRangeTitle": "Nouvelle période de vacances",
|
||||
"startField": "Début",
|
||||
"endField": "Fin",
|
||||
"saveRangeAction": "Enregistrer la période",
|
||||
"noAlarmsYetTitle": "Il n’y a pas encore d’alarmes.",
|
||||
"noAlarmsYetSubtitle": "Créez-en une pour concevoir votre réveil musical.",
|
||||
"ringingInternalAudioActive": "Son sécurisé interne en cours.",
|
||||
"ringingPreparingInternalAudio": "Préparation du son sécurisé interne.",
|
||||
"stopAlarmAction": "Arrêter l’alarme",
|
||||
"pauseAction": "Pause",
|
||||
"miniPlayerOpenLabel": "Ouvrir le lecteur de {stationName}",
|
||||
"@miniPlayerOpenLabel": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"playerIconLabel": "Lecteur",
|
||||
"playbackStatusConnecting": "Connexion...",
|
||||
"playbackStatusLive": "En direct",
|
||||
"playbackStatusPaused": "En pause",
|
||||
"playbackStatusConnectionError": "Erreur de connexion",
|
||||
"playbackStatusStopped": "Arrêté",
|
||||
"stationSemanticLabel": "Station {stationName}",
|
||||
"@stationSemanticLabel": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"favoritesAddTooltip": "Ajouter aux favoris",
|
||||
"favoritesAddedMessage": "{stationName} ajoutée aux favoris",
|
||||
"@favoritesAddedMessage": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"stationIconLabel": "Icône de station",
|
||||
"liveNow": "En direct",
|
||||
"equalizerBandLabel": "Bande {band}",
|
||||
"@equalizerBandLabel": {
|
||||
"placeholders": {
|
||||
"band": {}
|
||||
}
|
||||
},
|
||||
"equalizerBandValue": "{value} décibels",
|
||||
"@equalizerBandValue": {
|
||||
"placeholders": {
|
||||
"value": {}
|
||||
}
|
||||
},
|
||||
"equalizerPresetFlat": "Plat",
|
||||
"equalizerPresetRock": "Rock",
|
||||
"equalizerPresetPop": "Pop",
|
||||
"equalizerPresetBassBoost": "Renforcement des basses",
|
||||
"equalizerPresetJazz": "Jazz",
|
||||
"equalizerPresetVoice": "Voix",
|
||||
"equalizerPresetCustom": "Personnalisé",
|
||||
"onboardingTitle": "Bienvenue dans PluriWave",
|
||||
"onboardingNewsTitle": "Nouveautés",
|
||||
"onboardingStartAction": "Commencer",
|
||||
"onboardingCloseTooltip": "Fermer",
|
||||
"radioRecordingError": "Erreur lors de l'enregistrement de la radio : {error}",
|
||||
"@radioRecordingError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
},
|
||||
"radioApiConnectionError": "Aucune connexion à l'API radio",
|
||||
"radioSearchError": "Erreur de recherche. Vérifiez votre connexion.",
|
||||
"radioLoadMoreStationsError": "Impossible de charger plus de stations.",
|
||||
"radioNearbyStationsError": "Nous n'avons pas pu détecter de stations proches. Utilisez les filtres par pays.",
|
||||
"radioCannotPlayStation": "Impossible de lire \"{stationName}\"",
|
||||
"@radioCannotPlayStation": {
|
||||
"placeholders": {
|
||||
"stationName": {}
|
||||
}
|
||||
},
|
||||
"recordingSelectStationFirst": "Sélectionnez d'abord une station à enregistrer.",
|
||||
"recordingStartError": "Impossible de démarrer l'enregistrement : {error}",
|
||||
"@recordingStartError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
},
|
||||
"unsupportedConfigVersion": "Version de configuration non prise en charge",
|
||||
"audioErrorGeneric": "Erreur de lecture",
|
||||
"audioErrorNoInternet": "Aucune connexion Internet",
|
||||
"audioErrorInvalidUrl": "L'URL de la radio n'est pas valide",
|
||||
"audioErrorNotFound": "La radio n'est pas disponible (erreur 404)",
|
||||
"audioErrorTimeout": "Délai de connexion dépassé",
|
||||
"audioErrorCannotConnect": "Impossible de se connecter à la radio",
|
||||
"audioErrorUnsupportedFormat": "Format de flux non pris en charge",
|
||||
"audioErrorDecode": "Erreur lors du décodage du flux audio",
|
||||
"audioErrorCleartext": "Cette radio utilise HTTP non chiffré, ce qui n'est pas autorisé",
|
||||
"audioErrorSsl": "Certificat SSL invalide pour la radio",
|
||||
"audioErrorCannotPlay": "Impossible de lire cette radio",
|
||||
"audioErrorUnexpectedPlayback": "Erreur de lecture inattendue",
|
||||
"androidExactAlarmScheduleError": "Android n'a pas pu programmer une alarme exacte. Vérifiez l'autorisation des alarmes exactes.",
|
||||
"recordingPathEmptyError": "Le chemin d'enregistrement ne peut pas être vide",
|
||||
"recordingMaxSizeInvalidError": "La taille maximale doit être supérieure à zéro",
|
||||
"recordingAlreadyActiveError": "Un enregistrement est déjà en cours",
|
||||
"alarmRingingFallbackActive": "Lecture avec l’audio interne sécurisé.",
|
||||
"alarmRingingPreparingFallback": "Préparation de l’audio interne sécurisé.",
|
||||
"alarmRingingTryingStation": "Tentative de lecture de votre station avec la meilleure qualité disponible.",
|
||||
"alarmScheduleOnce": "Une fois · {date}",
|
||||
"@alarmScheduleOnce": {
|
||||
"placeholders": {
|
||||
"date": {}
|
||||
}
|
||||
},
|
||||
"alarmScheduleWeekdays": "Jours : {days}",
|
||||
"@alarmScheduleWeekdays": {
|
||||
"placeholders": {
|
||||
"days": {}
|
||||
}
|
||||
},
|
||||
"androidReliabilityTitle": "Vérifier la fiabilité Android",
|
||||
"closeAction": "Fermer",
|
||||
"customOption": "Personnalisée",
|
||||
"endLabel": "Fin",
|
||||
"equalizerDisable": "Désactiver l’égaliseur",
|
||||
"helpTitle": "Aide et tutoriel",
|
||||
"helpSubtitle": "Revoyez les fonctions, conseils et nouveautés de PluriWave.",
|
||||
"indefiniteOption": "Indéfinie",
|
||||
"invalidNumber": "Nombre invalide",
|
||||
"nameLabel": "Nom",
|
||||
"notPlaying": "Lecture arrêtée",
|
||||
"oneTimeOption": "Une fois",
|
||||
"pausePlaybackTooltip": "Mettre en pause",
|
||||
"qualityOriginal": "Qualité d’origine : {quality}",
|
||||
"@qualityOriginal": {
|
||||
"placeholders": {
|
||||
"quality": {}
|
||||
}
|
||||
},
|
||||
"qualityUnknown": "Qualité non indiquée",
|
||||
"recordAction": "Enregistrer",
|
||||
"recordDurationTitle": "Durée d’enregistrement",
|
||||
"recordRadioSubtitle": "Choisissez la durée d’enregistrement.",
|
||||
"recordRadioTitle": "Enregistrer la radio",
|
||||
"recordingActiveTitle": "Enregistrement de la radio",
|
||||
"recordingDirectTitle": "Enregistrement direct",
|
||||
"recordingsOpenFolderPlainError": "Impossible d’ouvrir le dossier des enregistrements",
|
||||
"recordingsOpenLatest": "Ouvrir le dernier enregistrement",
|
||||
"recordingsOpenLatestError": "Impossible d’ouvrir le dernier enregistrement",
|
||||
"startLabel": "Début",
|
||||
"startPlaybackTooltip": "Démarrer la lecture",
|
||||
"stopAction": "Arrêter",
|
||||
"stopPlaybackTooltip": "Arrêter la lecture",
|
||||
"weekdayShortMonday": "Lun",
|
||||
"weekdayShortTuesday": "Mar",
|
||||
"weekdayShortWednesday": "Mer",
|
||||
"weekdayShortThursday": "Jeu",
|
||||
"weekdayShortFriday": "Ven",
|
||||
"weekdayShortSaturday": "Sam",
|
||||
"weekdayShortSunday": "Dim"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user