mirror of
https://github.com/stonega/tsacdop
synced 2025-02-17 20:10:37 +01:00
Add franch support, thanks ppp.
This commit is contained in:
parent
d7b6212cac
commit
964c927286
BIN
assets/fr.png
Normal file
BIN
assets/fr.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 193 B |
BIN
assets/no.png
Normal file
BIN
assets/no.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 285 B |
@ -16,11 +16,13 @@ import 'package:intl/message_lookup_by_library.dart';
|
||||
import 'package:intl/src/intl_helpers.dart';
|
||||
|
||||
import 'messages_en.dart' as messages_en;
|
||||
import 'messages_fr.dart' as messages_fr;
|
||||
import 'messages_zh-Hans.dart' as messages_zh_hans;
|
||||
|
||||
typedef Future<dynamic> LibraryLoader();
|
||||
Map<String, LibraryLoader> _deferredLibraries = {
|
||||
'en': () => new Future.value(null),
|
||||
'fr': () => new Future.value(null),
|
||||
'zh_Hans': () => new Future.value(null),
|
||||
};
|
||||
|
||||
@ -28,6 +30,8 @@ MessageLookupByLibrary _findExact(String localeName) {
|
||||
switch (localeName) {
|
||||
case 'en':
|
||||
return messages_en.messages;
|
||||
case 'fr':
|
||||
return messages_fr.messages;
|
||||
case 'zh_Hans':
|
||||
return messages_zh_hans.messages;
|
||||
default:
|
||||
|
@ -197,6 +197,10 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"popupMenuPlayDes" : MessageLookupByLibrary.simpleMessage("Play the episode"),
|
||||
"privacyPolicy" : MessageLookupByLibrary.simpleMessage("Privacy Policy"),
|
||||
"published" : m20,
|
||||
"publishedDaily" : MessageLookupByLibrary.simpleMessage("Published daily"),
|
||||
"publishedMonthly" : MessageLookupByLibrary.simpleMessage("Published monthly"),
|
||||
"publishedWeekly" : MessageLookupByLibrary.simpleMessage("Published weekly"),
|
||||
"publishedYearly" : MessageLookupByLibrary.simpleMessage("Published yearly"),
|
||||
"recoverSubscribe" : MessageLookupByLibrary.simpleMessage("Recover subscribe"),
|
||||
"refreshArtwork" : MessageLookupByLibrary.simpleMessage("Update artwork"),
|
||||
"remove" : MessageLookupByLibrary.simpleMessage("Remove"),
|
||||
@ -293,6 +297,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"toastSettingSaved" : MessageLookupByLibrary.simpleMessage("Setting saved"),
|
||||
"toastTimeEqualEnd" : MessageLookupByLibrary.simpleMessage("Time is equal to end time"),
|
||||
"toastTimeEqualStart" : MessageLookupByLibrary.simpleMessage("Time is equal to start time"),
|
||||
"translators" : MessageLookupByLibrary.simpleMessage("Translators"),
|
||||
"understood" : MessageLookupByLibrary.simpleMessage("Understood"),
|
||||
"undo" : MessageLookupByLibrary.simpleMessage("UNDO"),
|
||||
"unlike" : MessageLookupByLibrary.simpleMessage("Unlike"),
|
||||
|
310
lib/generated/intl/messages_fr.dart
Normal file
310
lib/generated/intl/messages_fr.dart
Normal file
@ -0,0 +1,310 @@
|
||||
// DO NOT EDIT. This is code generated via package:intl/generate_localized.dart
|
||||
// This is a library that provides messages for a fr locale. All the
|
||||
// messages from the main program should be duplicated here with the same
|
||||
// function name.
|
||||
|
||||
// Ignore issues from commonly used lints in this file.
|
||||
// ignore_for_file:unnecessary_brace_in_string_interps, unnecessary_new
|
||||
// ignore_for_file:prefer_single_quotes,comment_references, directives_ordering
|
||||
// ignore_for_file:annotate_overrides,prefer_generic_function_type_aliases
|
||||
// ignore_for_file:unused_import, file_names
|
||||
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:intl/message_lookup_by_library.dart';
|
||||
|
||||
final messages = new MessageLookup();
|
||||
|
||||
typedef String MessageIfAbsent(String messageStr, List<dynamic> args);
|
||||
|
||||
class MessageLookup extends MessageLookupByLibrary {
|
||||
String get localeName => 'fr';
|
||||
|
||||
static m0(groupName, count) => "${Intl.plural(count, zero: '', one: '${count} épisode de ${groupName} ajouté à la playlist.', other: '${count} épisodes de ${groupName} ajoutés à la playlist.')}";
|
||||
|
||||
static m1(count) => "${Intl.plural(count, zero: '', one: '${count} épisode ajouté à la playlist.', other: '${count} épisodes ajoutés à la playlist.')}";
|
||||
|
||||
static m2(count) => "${Intl.plural(count, zero: 'Aujourd\'hui', one: 'Il y a ${count} jour', other: 'Il y a ${count} jours')}";
|
||||
|
||||
static m3(count) => "${Intl.plural(count, zero: 'Jamais', one: '${count} jour', other: '${count} jours')}";
|
||||
|
||||
static m4(count) => "${Intl.plural(count, zero: '', one: 'Épisode', other: 'Épisodes ')}";
|
||||
|
||||
static m5(time) => "De ${time}";
|
||||
|
||||
static m6(count) => "${Intl.plural(count, zero: 'Groupe', one: 'Groupe', other: 'Groupes')}";
|
||||
|
||||
static m7(host) => "Hébergé par ${host}";
|
||||
|
||||
static m8(count) => "${Intl.plural(count, zero: 'A l\'instant', one: 'Il y a ${count} heure', other: 'Il y a ${count} heures')}";
|
||||
|
||||
static m9(count) => "${Intl.plural(count, zero: '0 heure', one: '${count} heure', other: '${count} heures')}";
|
||||
|
||||
static m10(count) => "${Intl.plural(count, zero: 'A l\'instant', one: 'Il y a ${count} minute', other: 'Il y a ${count} minutes')}";
|
||||
|
||||
static m11(count) => "${Intl.plural(count, zero: '0 min', one: '${count} min', other: '${count} mins')}";
|
||||
|
||||
static m12(title) => "Accès aux données ${title} ";
|
||||
|
||||
static m13(title) => "Échec de l’abonnement, erreur réseau ${title} ";
|
||||
|
||||
static m14(title) => "S\'abonner";
|
||||
|
||||
static m15(title) => "Échec de l’abonnement, le podcast existe déjà ${title}";
|
||||
|
||||
static m16(title) => "Abonnement réussi.";
|
||||
|
||||
static m17(title) => "Mise à jour ${title}";
|
||||
|
||||
static m18(title) => "Échec de la mise à jour ${title}";
|
||||
|
||||
static m19(count) => "${Intl.plural(count, zero: '', one: 'Podcast', other: 'Podcasts')}";
|
||||
|
||||
static m20(date) => "Publié le ${date}";
|
||||
|
||||
static m21(date) => "Supprimé le ${date}";
|
||||
|
||||
static m22(count) => "${Intl.plural(count, zero: 'A l\'instant', one: 'Il y a ${count} seconde', other: 'Il y a ${count} secondes')}";
|
||||
|
||||
static m23(time) => "Dernière écoute à ${time}";
|
||||
|
||||
static m24(time) => "${time} Restant";
|
||||
|
||||
static m25(time) => "Jusqu\'à ${time}";
|
||||
|
||||
static m26(count) => "${Intl.plural(count, zero: 'Aucune mise à jour.', one: 'Mise à jour d\'${count} épisode.', other: 'Mise à jour de ${count} épisodes.')}";
|
||||
|
||||
static m27(version) => "Version : ${version}";
|
||||
|
||||
final messages = _notInlinedMessages(_notInlinedMessages);
|
||||
static _notInlinedMessages(_) => <String, Function> {
|
||||
"add" : MessageLookupByLibrary.simpleMessage("Ajouter"),
|
||||
"addEpisodeGroup" : m0,
|
||||
"addNewEpisodeAll" : m1,
|
||||
"addNewEpisodeTooltip" : MessageLookupByLibrary.simpleMessage("Ajouter de nouveaux épisodes à la playlist."),
|
||||
"addSomeGroups" : MessageLookupByLibrary.simpleMessage("Ajouter des groupes"),
|
||||
"all" : MessageLookupByLibrary.simpleMessage("Tout"),
|
||||
"autoDownload" : MessageLookupByLibrary.simpleMessage("Téléchargement automatique"),
|
||||
"back" : MessageLookupByLibrary.simpleMessage("Retour"),
|
||||
"buffering" : MessageLookupByLibrary.simpleMessage("Buffering"),
|
||||
"cancel" : MessageLookupByLibrary.simpleMessage("ANNULER"),
|
||||
"changeLayout" : MessageLookupByLibrary.simpleMessage("Modifier l\'interface"),
|
||||
"changelog" : MessageLookupByLibrary.simpleMessage("Historique des modifications"),
|
||||
"chooseA" : MessageLookupByLibrary.simpleMessage("Choisir un"),
|
||||
"clear" : MessageLookupByLibrary.simpleMessage("Effacer"),
|
||||
"color" : MessageLookupByLibrary.simpleMessage("Couleur"),
|
||||
"confirm" : MessageLookupByLibrary.simpleMessage("CONFIRMER"),
|
||||
"darkMode" : MessageLookupByLibrary.simpleMessage("Mode sombre"),
|
||||
"daysAgo" : m2,
|
||||
"daysCount" : m3,
|
||||
"delete" : MessageLookupByLibrary.simpleMessage("Effacer"),
|
||||
"developer" : MessageLookupByLibrary.simpleMessage("Développeur"),
|
||||
"dismiss" : MessageLookupByLibrary.simpleMessage("Rejeter"),
|
||||
"done" : MessageLookupByLibrary.simpleMessage("Fait"),
|
||||
"download" : MessageLookupByLibrary.simpleMessage("Télécharger"),
|
||||
"downloaded" : MessageLookupByLibrary.simpleMessage("Téléchargé"),
|
||||
"editGroupName" : MessageLookupByLibrary.simpleMessage("Modifier le nom du groupe"),
|
||||
"endOfEpisode" : MessageLookupByLibrary.simpleMessage("Fin de l\'épisode"),
|
||||
"episode" : m4,
|
||||
"featureDiscoveryEditGroup" : MessageLookupByLibrary.simpleMessage("Appuyez pour éditer le groupe"),
|
||||
"featureDiscoveryEditGroupDes" : MessageLookupByLibrary.simpleMessage("Vous pouvez supprimer ou modifier le nom du groupe, le groupe Home ne peut être modifié ni supprimé."),
|
||||
"featureDiscoveryEpisode" : MessageLookupByLibrary.simpleMessage("Vue épisode"),
|
||||
"featureDiscoveryEpisodeDes" : MessageLookupByLibrary.simpleMessage("Vous pouvez effectuer un appui long pour jouer un épisode ou l\'ajouter à la playlist."),
|
||||
"featureDiscoveryEpisodeTitle" : MessageLookupByLibrary.simpleMessage("Effectuez un appui long pour jouer un épisode immédiatement"),
|
||||
"featureDiscoveryGroup" : MessageLookupByLibrary.simpleMessage("Appuyez pour ajouter un groupe."),
|
||||
"featureDiscoveryGroupDes" : MessageLookupByLibrary.simpleMessage("Pour les nouveaux podcasts le groupe par défaut est Home. Vous pouvez créer de nouveaux groupes et y déplacer vos podcasts. Un podcast peut être associé à plusieurs groupes."),
|
||||
"featureDiscoveryGroupPodcast" : MessageLookupByLibrary.simpleMessage("Un appui long pour classer les podcasts"),
|
||||
"featureDiscoveryGroupPodcastDes" : MessageLookupByLibrary.simpleMessage("Appuyez pour accéder à plus d\'options, un appui long permet de classer les podcasts du groupe."),
|
||||
"featureDiscoveryOMPL" : MessageLookupByLibrary.simpleMessage("Appuyez pour importer un fichier OPML"),
|
||||
"featureDiscoveryOMPLDes" : MessageLookupByLibrary.simpleMessage("Vous pouvez importer un fichier OPML, accéder aux paramètres ou actualiser tous les podcasts."),
|
||||
"featureDiscoveryPlaylist" : MessageLookupByLibrary.simpleMessage("Appuyez pour ouvrir la playlist"),
|
||||
"featureDiscoveryPlaylistDes" : MessageLookupByLibrary.simpleMessage("Vous pouvez ajouter des épisodes dans la playlist. Ils seront automatiquement retirés l\'écoute finie."),
|
||||
"featureDiscoveryPodcast" : MessageLookupByLibrary.simpleMessage("Vue podcasts"),
|
||||
"featureDiscoveryPodcastDes" : MessageLookupByLibrary.simpleMessage("Vous pouvez appuyer sur Tout Voir pour ajouter des groupes ou gérer les podcasts."),
|
||||
"featureDiscoveryPodcastTitle" : MessageLookupByLibrary.simpleMessage("Effectuez un défilement vertical pour changer de groupe."),
|
||||
"featureDiscoverySearch" : MessageLookupByLibrary.simpleMessage("Appuyez pour chercher un podcast"),
|
||||
"featureDiscoverySearchDes" : MessageLookupByLibrary.simpleMessage("Vous pouvez effectuer une recherche par titre, mots clés ou lien RSS pour vous abonner à un nouveau podcast."),
|
||||
"feedbackEmail" : MessageLookupByLibrary.simpleMessage("Me contacter"),
|
||||
"feedbackGithub" : MessageLookupByLibrary.simpleMessage("Soumettre un problème"),
|
||||
"feedbackPlay" : MessageLookupByLibrary.simpleMessage("Noter sur le PlayStore"),
|
||||
"feedbackTelegram" : MessageLookupByLibrary.simpleMessage("Joindre le groupe"),
|
||||
"fonts" : MessageLookupByLibrary.simpleMessage("Polices"),
|
||||
"from" : m5,
|
||||
"goodNight" : MessageLookupByLibrary.simpleMessage("Bonne nuit"),
|
||||
"groupExisted" : MessageLookupByLibrary.simpleMessage("Ce groupe existe déjà"),
|
||||
"groupFilter" : MessageLookupByLibrary.simpleMessage("Filtrer par groupe"),
|
||||
"groupRemoveConfirm" : MessageLookupByLibrary.simpleMessage("Êtes-vous sûr de vouloir supprimer ce groupe ? Les podcasts seront déplacés vers le groupe Home."),
|
||||
"groups" : m6,
|
||||
"homeGroupsSeeAll" : MessageLookupByLibrary.simpleMessage("Tout Voir"),
|
||||
"homeMenuPlaylist" : MessageLookupByLibrary.simpleMessage("Playlist"),
|
||||
"homeSubMenuSortBy" : MessageLookupByLibrary.simpleMessage("Classé par"),
|
||||
"homeTabMenuFavotite" : MessageLookupByLibrary.simpleMessage("Favoris"),
|
||||
"homeTabMenuRecent" : MessageLookupByLibrary.simpleMessage("Récent"),
|
||||
"homeToprightMenuAbout" : MessageLookupByLibrary.simpleMessage("À propos"),
|
||||
"homeToprightMenuImportOMPL" : MessageLookupByLibrary.simpleMessage("Importer le fichier OPML"),
|
||||
"homeToprightMenuRefreshAll" : MessageLookupByLibrary.simpleMessage("Tout actualiser"),
|
||||
"hostedOn" : m7,
|
||||
"hoursAgo" : m8,
|
||||
"hoursCount" : m9,
|
||||
"import" : MessageLookupByLibrary.simpleMessage("Importer"),
|
||||
"introFourthPage" : MessageLookupByLibrary.simpleMessage("Vous pouvez effectuer un appui long sur un épisode pour accéder aux actions rapides."),
|
||||
"introSecondPage" : MessageLookupByLibrary.simpleMessage("Souscrivez aux podcasts via la section recherche ou importez un fichier OPML."),
|
||||
"introThirdPage" : MessageLookupByLibrary.simpleMessage("Vous pouvez créer un nouveau groupe de podcasts."),
|
||||
"later" : MessageLookupByLibrary.simpleMessage("Plus tard"),
|
||||
"lightMode" : MessageLookupByLibrary.simpleMessage("Mode clair"),
|
||||
"like" : MessageLookupByLibrary.simpleMessage("Like"),
|
||||
"likeDate" : MessageLookupByLibrary.simpleMessage("Date du like"),
|
||||
"liked" : MessageLookupByLibrary.simpleMessage("Liké"),
|
||||
"listen" : MessageLookupByLibrary.simpleMessage("Écoutés"),
|
||||
"listened" : MessageLookupByLibrary.simpleMessage("Écouté "),
|
||||
"loadMore" : MessageLookupByLibrary.simpleMessage("Voir plus"),
|
||||
"mark" : MessageLookupByLibrary.simpleMessage("Marqué"),
|
||||
"markConfirm" : MessageLookupByLibrary.simpleMessage("Marquage effectué"),
|
||||
"markConfirmContent" : MessageLookupByLibrary.simpleMessage("Marquer tous les épisodes comme lus ?"),
|
||||
"markListened" : MessageLookupByLibrary.simpleMessage("Marquer comme lu"),
|
||||
"menu" : MessageLookupByLibrary.simpleMessage("Menu"),
|
||||
"menuAllPodcasts" : MessageLookupByLibrary.simpleMessage("Tous les podcasts"),
|
||||
"menuMarkAllListened" : MessageLookupByLibrary.simpleMessage("Marquer comme tous lu"),
|
||||
"menuViewRSS" : MessageLookupByLibrary.simpleMessage("Accéder au flux RSS"),
|
||||
"menuVisitSite" : MessageLookupByLibrary.simpleMessage("Accéder au site"),
|
||||
"minsAgo" : m10,
|
||||
"minsCount" : m11,
|
||||
"network" : MessageLookupByLibrary.simpleMessage("Réseau"),
|
||||
"newGroup" : MessageLookupByLibrary.simpleMessage("Créer un nouveau groupe"),
|
||||
"newestFirst" : MessageLookupByLibrary.simpleMessage("Le plus récent en premier."),
|
||||
"next" : MessageLookupByLibrary.simpleMessage("Suivant"),
|
||||
"noEpisodeDownload" : MessageLookupByLibrary.simpleMessage("Aucun épisode n\'a encore été téléchargé"),
|
||||
"noEpisodeFavorite" : MessageLookupByLibrary.simpleMessage("Aucun épisode ajouté"),
|
||||
"noEpisodeRecent" : MessageLookupByLibrary.simpleMessage("Aucun épisode reçu"),
|
||||
"noPodcastGroup" : MessageLookupByLibrary.simpleMessage("Ce groupe ne contient aucun podcast"),
|
||||
"noShownote" : MessageLookupByLibrary.simpleMessage("Notes de l\'épisode manquantes."),
|
||||
"notificaitonFatch" : m12,
|
||||
"notificationNetworkError" : m13,
|
||||
"notificationSubscribe" : m14,
|
||||
"notificationSubscribeExisted" : m15,
|
||||
"notificationSuccess" : m16,
|
||||
"notificationUpdate" : m17,
|
||||
"notificationUpdateError" : m18,
|
||||
"oldestFirst" : MessageLookupByLibrary.simpleMessage("Le plus ancien en premier."),
|
||||
"play" : MessageLookupByLibrary.simpleMessage("Lecture"),
|
||||
"playing" : MessageLookupByLibrary.simpleMessage("En cours"),
|
||||
"plugins" : MessageLookupByLibrary.simpleMessage("Plugins"),
|
||||
"podcast" : m19,
|
||||
"podcastSubscribed" : MessageLookupByLibrary.simpleMessage("Abonnements"),
|
||||
"popupMenuDownloadDes" : MessageLookupByLibrary.simpleMessage("Télécharger l\'épisode"),
|
||||
"popupMenuLaterDes" : MessageLookupByLibrary.simpleMessage("Ajouter l\'épisode à la playlist"),
|
||||
"popupMenuLikeDes" : MessageLookupByLibrary.simpleMessage("Ajouter l\'épisode aux favoris"),
|
||||
"popupMenuMarkDes" : MessageLookupByLibrary.simpleMessage("Marquer l\'épisode comme lu"),
|
||||
"popupMenuPlayDes" : MessageLookupByLibrary.simpleMessage("Jouer l\'épisode"),
|
||||
"privacyPolicy" : MessageLookupByLibrary.simpleMessage("Politique relative aux données personnelles."),
|
||||
"published" : m20,
|
||||
"publishedDaily" : MessageLookupByLibrary.simpleMessage("Published daily"),
|
||||
"publishedMonthly" : MessageLookupByLibrary.simpleMessage("Published monthly"),
|
||||
"publishedWeekly" : MessageLookupByLibrary.simpleMessage("Published weekly"),
|
||||
"publishedYearly" : MessageLookupByLibrary.simpleMessage("Published yearly"),
|
||||
"recoverSubscribe" : MessageLookupByLibrary.simpleMessage("Restaurer l\'abonnement"),
|
||||
"refreshArtwork" : MessageLookupByLibrary.simpleMessage("Update artwork"),
|
||||
"remove" : MessageLookupByLibrary.simpleMessage("Supprimer"),
|
||||
"removeConfirm" : MessageLookupByLibrary.simpleMessage("Confirmer la suppression"),
|
||||
"removePodcastDes" : MessageLookupByLibrary.simpleMessage("Êtes-vous sûr de vouloir vous désabonner ?"),
|
||||
"removedAt" : m21,
|
||||
"save" : MessageLookupByLibrary.simpleMessage("Sauvegarder"),
|
||||
"schedule" : MessageLookupByLibrary.simpleMessage("Programmation"),
|
||||
"searchInvalidRss" : MessageLookupByLibrary.simpleMessage("Lien RSS invalide"),
|
||||
"searchPodcast" : MessageLookupByLibrary.simpleMessage("Chercher un podcast"),
|
||||
"secondsAgo" : m22,
|
||||
"settingStorage" : MessageLookupByLibrary.simpleMessage("Espace de stockage"),
|
||||
"settings" : MessageLookupByLibrary.simpleMessage("Paramètres"),
|
||||
"settingsAccentColor" : MessageLookupByLibrary.simpleMessage("Couleur principale"),
|
||||
"settingsAccentColorDes" : MessageLookupByLibrary.simpleMessage("Inclure la couleur de superposition"),
|
||||
"settingsAppIntro" : MessageLookupByLibrary.simpleMessage("App intro"),
|
||||
"settingsAppearance" : MessageLookupByLibrary.simpleMessage("Apparence"),
|
||||
"settingsAppearanceDes" : MessageLookupByLibrary.simpleMessage("Couleurs et thèmes"),
|
||||
"settingsAudioCache" : MessageLookupByLibrary.simpleMessage("Cache audio"),
|
||||
"settingsAudioCacheDes" : MessageLookupByLibrary.simpleMessage("Taille maximum du cache audio"),
|
||||
"settingsAutoDelete" : MessageLookupByLibrary.simpleMessage("Supprimer automatiquement les téléchargement après"),
|
||||
"settingsAutoDeleteDes" : MessageLookupByLibrary.simpleMessage("30 jours par défaut"),
|
||||
"settingsAutoPlayDes" : MessageLookupByLibrary.simpleMessage("Lancer automatiquement l\'épisode suivant"),
|
||||
"settingsBackup" : MessageLookupByLibrary.simpleMessage("Backup"),
|
||||
"settingsBackupDes" : MessageLookupByLibrary.simpleMessage("Sauvegarder les données de l\'application"),
|
||||
"settingsDefaultGrid" : MessageLookupByLibrary.simpleMessage("Vue par défaut"),
|
||||
"settingsDefaultGridDownload" : MessageLookupByLibrary.simpleMessage("Onglet téléchargement"),
|
||||
"settingsDefaultGridFavorite" : MessageLookupByLibrary.simpleMessage("Onglet favoris"),
|
||||
"settingsDefaultGridPodcast" : MessageLookupByLibrary.simpleMessage("Page du podcast"),
|
||||
"settingsDefaultGridRecent" : MessageLookupByLibrary.simpleMessage("Onglet récents"),
|
||||
"settingsDiscovery" : MessageLookupByLibrary.simpleMessage("Revoir le tutoriel"),
|
||||
"settingsEnableSyncing" : MessageLookupByLibrary.simpleMessage("Activer la synchronisation"),
|
||||
"settingsEnableSyncingDes" : MessageLookupByLibrary.simpleMessage("Actualisez tous les podcasts en arrière-plan pour toujours afficher les derniers épisodes"),
|
||||
"settingsExportDes" : MessageLookupByLibrary.simpleMessage("Exporter et importer les paramètres de l\'application"),
|
||||
"settingsFeedback" : MessageLookupByLibrary.simpleMessage("Feedback"),
|
||||
"settingsFeedbackDes" : MessageLookupByLibrary.simpleMessage("Report de bugs et demande d\'ajout de fonction"),
|
||||
"settingsHistory" : MessageLookupByLibrary.simpleMessage("Historique"),
|
||||
"settingsHistoryDes" : MessageLookupByLibrary.simpleMessage("Données d\'écoutes"),
|
||||
"settingsInfo" : MessageLookupByLibrary.simpleMessage("Infos"),
|
||||
"settingsInterface" : MessageLookupByLibrary.simpleMessage("Interface"),
|
||||
"settingsLanguages" : MessageLookupByLibrary.simpleMessage("Langues"),
|
||||
"settingsLanguagesDes" : MessageLookupByLibrary.simpleMessage("Changer la langue"),
|
||||
"settingsLayout" : MessageLookupByLibrary.simpleMessage("Style"),
|
||||
"settingsLayoutDes" : MessageLookupByLibrary.simpleMessage("Style de l\'application"),
|
||||
"settingsLibraries" : MessageLookupByLibrary.simpleMessage("Librairies"),
|
||||
"settingsLibrariesDes" : MessageLookupByLibrary.simpleMessage("Les librairies open source utilisées"),
|
||||
"settingsManageDownload" : MessageLookupByLibrary.simpleMessage("Gérer les téléchargements"),
|
||||
"settingsManageDownloadDes" : MessageLookupByLibrary.simpleMessage("Gérer les fichiers audio téléchargés"),
|
||||
"settingsMenuAutoPlay" : MessageLookupByLibrary.simpleMessage("Jouer automatiquement le suivant."),
|
||||
"settingsNetworkCellular" : MessageLookupByLibrary.simpleMessage("Demander avant l\'utilisation du réseau mobile"),
|
||||
"settingsNetworkCellularAuto" : MessageLookupByLibrary.simpleMessage("Téléchargement automatique sur réseau mobile."),
|
||||
"settingsNetworkCellularAutoDes" : MessageLookupByLibrary.simpleMessage("Vous pouvez utiliser le téléchargement automatique du podcast sur la page de gestion des groupes."),
|
||||
"settingsNetworkCellularDes" : MessageLookupByLibrary.simpleMessage("Si connecté à un réseau mobile, demander une confirmation avant le téléchargement."),
|
||||
"settingsPlayDes" : MessageLookupByLibrary.simpleMessage("Playlist et lecteur"),
|
||||
"settingsPopupMenu" : MessageLookupByLibrary.simpleMessage("Menu popup des épisodes"),
|
||||
"settingsPopupMenuDes" : MessageLookupByLibrary.simpleMessage("Modifier le menu popup de l\'épisode"),
|
||||
"settingsPrefrence" : MessageLookupByLibrary.simpleMessage("Préférences"),
|
||||
"settingsRealDark" : MessageLookupByLibrary.simpleMessage("Noir profond"),
|
||||
"settingsRealDarkDes" : MessageLookupByLibrary.simpleMessage("Activez pour un mode sombre accentué"),
|
||||
"settingsSTAuto" : MessageLookupByLibrary.simpleMessage("Activation automatique de la minuterie"),
|
||||
"settingsSTAutoDes" : MessageLookupByLibrary.simpleMessage("Démarrer la minuterie à l\'horaire programmé"),
|
||||
"settingsSTDefaultTime" : MessageLookupByLibrary.simpleMessage("Temps par défaut"),
|
||||
"settingsSTDefautTimeDes" : MessageLookupByLibrary.simpleMessage("Temps par défaut de la minuterie"),
|
||||
"settingsSTMode" : MessageLookupByLibrary.simpleMessage("Mode minuterie automatique"),
|
||||
"settingsStorageDes" : MessageLookupByLibrary.simpleMessage("Gérer le cache et l\'espace de stockage"),
|
||||
"settingsSyncing" : MessageLookupByLibrary.simpleMessage("Synchronisation"),
|
||||
"settingsSyncingDes" : MessageLookupByLibrary.simpleMessage("Actualiser les podcasts en arrière-plan"),
|
||||
"settingsTapToOpenPopupMenu" : MessageLookupByLibrary.simpleMessage("Appuyer pour ouvrir le menu"),
|
||||
"settingsTapToOpenPopupMenuDes" : MessageLookupByLibrary.simpleMessage("Vous devez effectuer un appui long pour ouvrir la page de l\'épisode"),
|
||||
"settingsTheme" : MessageLookupByLibrary.simpleMessage("Thème"),
|
||||
"settingsUpdateInterval" : MessageLookupByLibrary.simpleMessage("Intervalle de mise à jour"),
|
||||
"settingsUpdateIntervalDes" : MessageLookupByLibrary.simpleMessage("24 heures par défaut"),
|
||||
"share" : MessageLookupByLibrary.simpleMessage("Partager"),
|
||||
"size" : MessageLookupByLibrary.simpleMessage("Taille"),
|
||||
"skipSecondsAtStart" : MessageLookupByLibrary.simpleMessage("Passer les premières secondes du début"),
|
||||
"sleepTimer" : MessageLookupByLibrary.simpleMessage("Minuterie"),
|
||||
"subscribe" : MessageLookupByLibrary.simpleMessage("Abonnements"),
|
||||
"subscribeExportDes" : MessageLookupByLibrary.simpleMessage("Exporter le fichier OPML de tous les podcasts"),
|
||||
"systemDefault" : MessageLookupByLibrary.simpleMessage("Valeur du système par défaut"),
|
||||
"timeLastPlayed" : m23,
|
||||
"timeLeft" : m24,
|
||||
"to" : m25,
|
||||
"toastAddPlaylist" : MessageLookupByLibrary.simpleMessage("Ajouté à la playlist."),
|
||||
"toastDiscovery" : MessageLookupByLibrary.simpleMessage("Tutoriel réinitialisé, veuillez redémarrer l\'application."),
|
||||
"toastFileError" : MessageLookupByLibrary.simpleMessage("Erreur du fichier, échec de l\'abonnement."),
|
||||
"toastFileNotValid" : MessageLookupByLibrary.simpleMessage("Fichier invalide."),
|
||||
"toastHomeGroupNotSupport" : MessageLookupByLibrary.simpleMessage("Le groupe Home n\'est pas pris en charge"),
|
||||
"toastImportSettingsSuccess" : MessageLookupByLibrary.simpleMessage("Importation des paramètres effectuée"),
|
||||
"toastOneGroup" : MessageLookupByLibrary.simpleMessage("Sélectionnez au moins un groupe"),
|
||||
"toastPodcastRecovering" : MessageLookupByLibrary.simpleMessage("Récupération en cours, patientez un instant."),
|
||||
"toastReadFile" : MessageLookupByLibrary.simpleMessage("Lecture du fichier réussie"),
|
||||
"toastRecoverFailed" : MessageLookupByLibrary.simpleMessage("Échec de la récupération du podcast"),
|
||||
"toastRemovePlaylist" : MessageLookupByLibrary.simpleMessage("L\'épisode a été supprimé de la playlist."),
|
||||
"toastSettingSaved" : MessageLookupByLibrary.simpleMessage("Paramètres sauvegardés"),
|
||||
"toastTimeEqualEnd" : MessageLookupByLibrary.simpleMessage("Heure de fin"),
|
||||
"toastTimeEqualStart" : MessageLookupByLibrary.simpleMessage("Heure de démarrage"),
|
||||
"translators" : MessageLookupByLibrary.simpleMessage("Translators"),
|
||||
"understood" : MessageLookupByLibrary.simpleMessage("Compris"),
|
||||
"undo" : MessageLookupByLibrary.simpleMessage("ANNULER"),
|
||||
"unlike" : MessageLookupByLibrary.simpleMessage("Dislike"),
|
||||
"unliked" : MessageLookupByLibrary.simpleMessage("L\'épisode a été supprimé des favoris."),
|
||||
"updateDate" : MessageLookupByLibrary.simpleMessage("Date de mise à jour"),
|
||||
"updateEpisodesCount" : m26,
|
||||
"updateFailed" : MessageLookupByLibrary.simpleMessage("Échec de la mise à jour, erreur de réseau"),
|
||||
"version" : m27
|
||||
};
|
||||
}
|
@ -197,6 +197,10 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"popupMenuPlayDes" : MessageLookupByLibrary.simpleMessage("播放节目"),
|
||||
"privacyPolicy" : MessageLookupByLibrary.simpleMessage("隐私条款"),
|
||||
"published" : m20,
|
||||
"publishedDaily" : MessageLookupByLibrary.simpleMessage("每日更新"),
|
||||
"publishedMonthly" : MessageLookupByLibrary.simpleMessage("每月更新"),
|
||||
"publishedWeekly" : MessageLookupByLibrary.simpleMessage("每周更新"),
|
||||
"publishedYearly" : MessageLookupByLibrary.simpleMessage("每年更新"),
|
||||
"recoverSubscribe" : MessageLookupByLibrary.simpleMessage("恢复订阅"),
|
||||
"refreshArtwork" : MessageLookupByLibrary.simpleMessage("更新头像"),
|
||||
"remove" : MessageLookupByLibrary.simpleMessage("移除"),
|
||||
@ -293,6 +297,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"toastSettingSaved" : MessageLookupByLibrary.simpleMessage("设置已保存"),
|
||||
"toastTimeEqualEnd" : MessageLookupByLibrary.simpleMessage("与结束时刻相同"),
|
||||
"toastTimeEqualStart" : MessageLookupByLibrary.simpleMessage("与起始时刻相同"),
|
||||
"translators" : MessageLookupByLibrary.simpleMessage("翻译者"),
|
||||
"understood" : MessageLookupByLibrary.simpleMessage("了解"),
|
||||
"undo" : MessageLookupByLibrary.simpleMessage("撤销"),
|
||||
"unlike" : MessageLookupByLibrary.simpleMessage("取消喜欢"),
|
||||
|
@ -1266,6 +1266,46 @@ class S {
|
||||
);
|
||||
}
|
||||
|
||||
/// `Published daily`
|
||||
String get publishedDaily {
|
||||
return Intl.message(
|
||||
'Published daily',
|
||||
name: 'publishedDaily',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Published monthly`
|
||||
String get publishedMonthly {
|
||||
return Intl.message(
|
||||
'Published monthly',
|
||||
name: 'publishedMonthly',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Published weekly`
|
||||
String get publishedWeekly {
|
||||
return Intl.message(
|
||||
'Published weekly',
|
||||
name: 'publishedWeekly',
|
||||
desc: 'In search podcast detail page.',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Published yearly`
|
||||
String get publishedYearly {
|
||||
return Intl.message(
|
||||
'Published yearly',
|
||||
name: 'publishedYearly',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Recover subscribe`
|
||||
String get recoverSubscribe {
|
||||
return Intl.message(
|
||||
@ -2229,6 +2269,16 @@ class S {
|
||||
);
|
||||
}
|
||||
|
||||
/// `Translators`
|
||||
String get translators {
|
||||
return Intl.message(
|
||||
'Translators',
|
||||
name: 'translators',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Understood`
|
||||
String get understood {
|
||||
return Intl.message(
|
||||
@ -2319,6 +2369,7 @@ class AppLocalizationDelegate extends LocalizationsDelegate<S> {
|
||||
List<Locale> get supportedLocales {
|
||||
return const <Locale>[
|
||||
Locale.fromSubtags(languageCode: 'en'),
|
||||
Locale.fromSubtags(languageCode: 'fr'),
|
||||
Locale.fromSubtags(languageCode: 'zh', scriptCode: 'Hans'),
|
||||
];
|
||||
}
|
||||
|
@ -1,26 +1,17 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:tsacdop/util/custompaint.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
import 'package:line_icons/line_icons.dart';
|
||||
|
||||
import '../util/extension_helper.dart';
|
||||
|
||||
const String version = '0.4.7';
|
||||
const String version = '0.4.8';
|
||||
|
||||
class AboutApp extends StatelessWidget {
|
||||
_launchUrl(String url) async {
|
||||
if (await canLaunch(url)) {
|
||||
await launch(url);
|
||||
} else {
|
||||
throw 'Could not launch $url';
|
||||
}
|
||||
}
|
||||
|
||||
Widget _listItem(
|
||||
BuildContext context, String text, IconData icons, String url) =>
|
||||
InkWell(
|
||||
onTap: () => _launchUrl(url),
|
||||
onTap: () => url.launchUrl,
|
||||
child: Container(
|
||||
height: 50.0,
|
||||
padding: EdgeInsets.symmetric(horizontal: 20.0),
|
||||
@ -112,8 +103,9 @@ class AboutApp extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
FlatButton(
|
||||
onPressed: () => _launchUrl(
|
||||
'https://tsacdop.stonegate.me/#/privacy'),
|
||||
onPressed: () =>
|
||||
'https://tsacdop.stonegate.me/#/privacy'
|
||||
.launchUrl,
|
||||
child: Text(s.privacyPolicy,
|
||||
style: TextStyle(color: context.accentColor)),
|
||||
),
|
||||
@ -126,8 +118,9 @@ class AboutApp extends StatelessWidget {
|
||||
shape: BoxShape.circle),
|
||||
),
|
||||
FlatButton(
|
||||
onPressed: () => _launchUrl(
|
||||
'https://tsacdop.stonegate.me/#/changelog'),
|
||||
onPressed: () =>
|
||||
'https://tsacdop.stonegate.me/#/changelog'
|
||||
.launchUrl,
|
||||
child: Text(s.changelog,
|
||||
style: TextStyle(color: context.accentColor)),
|
||||
),
|
||||
@ -160,8 +153,9 @@ class AboutApp extends StatelessWidget {
|
||||
),
|
||||
Spacer(),
|
||||
InkWell(
|
||||
onTap: () => _launchUrl(
|
||||
'https://www.buymeacoffee.com/stonegate'),
|
||||
onTap: () =>
|
||||
'https://www.buymeacoffee.com/stonegate'
|
||||
.launchUrl,
|
||||
child: Container(
|
||||
height: 30.0,
|
||||
padding:
|
||||
@ -199,6 +193,75 @@ class AboutApp extends StatelessWidget {
|
||||
],
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsets.all(10.0),
|
||||
),
|
||||
Container(
|
||||
padding: EdgeInsets.only(top: 20.0, bottom: 10.0),
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.all(Radius.circular(10)),
|
||||
border:
|
||||
Border.all(color: context.accentColor, width: 1),
|
||||
),
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: <Widget>[
|
||||
Padding(
|
||||
padding: EdgeInsets.only(left: 20.0),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
s.translators,
|
||||
style: TextStyle(
|
||||
color: Theme.of(context).accentColor,
|
||||
fontWeight: FontWeight.bold),
|
||||
),
|
||||
SizedBox(width: 2),
|
||||
Icon(Icons.favorite,
|
||||
color: Colors.red, size: 20),
|
||||
],
|
||||
),
|
||||
),
|
||||
Container(
|
||||
height: 50.0,
|
||||
padding: EdgeInsets.symmetric(horizontal: 20.0),
|
||||
alignment: Alignment.centerLeft,
|
||||
decoration: BoxDecoration(
|
||||
border: Border(
|
||||
bottom: Divider.createBorderSide(context),
|
||||
),
|
||||
),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: <Widget>[
|
||||
Icon(LineIcons.user,
|
||||
color: Theme.of(context).accentColor),
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 10),
|
||||
),
|
||||
Expanded(
|
||||
child: Text(
|
||||
'ppp(oza987@protonmail.com)',
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.fade,
|
||||
)),
|
||||
ClipRRect(
|
||||
borderRadius: BorderRadius.circular(4),
|
||||
child: Image(
|
||||
image: AssetImage('assets/fr.png'),
|
||||
height: 20,
|
||||
fit: BoxFit.fitHeight,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
//Spacer(),
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(vertical: 50),
|
||||
|
@ -296,6 +296,16 @@
|
||||
"date": {}
|
||||
}
|
||||
},
|
||||
"publishedDaily": "Published daily",
|
||||
"@publishedDaily": {},
|
||||
"publishedMonthly": "Published monthly",
|
||||
"@publishedMonthly": {},
|
||||
"publishedWeekly": "Published weekly",
|
||||
"@publishedWeekly": {
|
||||
"description": "In search podcast detail page."
|
||||
},
|
||||
"publishedYearly": "Published yearly",
|
||||
"@publishedYearly": {},
|
||||
"recoverSubscribe": "Recover subscribe",
|
||||
"@recoverSubscribe": {
|
||||
"description": "User can recover subscribe podcast after remove it in subscribe history page."
|
||||
@ -524,6 +534,8 @@
|
||||
"@toastTimeEqualStart": {
|
||||
"description": "User can't choose the same time as schedule start time."
|
||||
},
|
||||
"translators": "Translators",
|
||||
"@translators": {},
|
||||
"understood": "Understood",
|
||||
"@understood": {},
|
||||
"undo": "UNDO",
|
||||
|
559
lib/l10n/intl_fr.arb
Normal file
559
lib/l10n/intl_fr.arb
Normal file
@ -0,0 +1,559 @@
|
||||
{
|
||||
"@@locale": "fr",
|
||||
"add": "Ajouter",
|
||||
"@add": {
|
||||
"description": "Subscribe new podcast"
|
||||
},
|
||||
"addEpisodeGroup": "{count, plural, zero{} one{{count} épisode de {groupName} ajouté à la playlist.} other{{count} épisodes de {groupName} ajoutés à la playlist.}}",
|
||||
"@addEpisodeGroup": {
|
||||
"placeholders": {
|
||||
"groupName": {}
|
||||
}
|
||||
},
|
||||
"addNewEpisodeAll": "{count, plural, zero{} one{{count} épisode ajouté à la playlist.} other{{count} épisodes ajoutés à la playlist.}}",
|
||||
"@addNewEpisodeAll": {},
|
||||
"addNewEpisodeTooltip": "Ajouter de nouveaux épisodes à la playlist.",
|
||||
"@addNewEpisodeTooltip": {},
|
||||
"addSomeGroups": "Ajouter des groupes",
|
||||
"@addSomeGroups": {
|
||||
"description": "Please add new groups"
|
||||
},
|
||||
"all": "Tout",
|
||||
"@all": {},
|
||||
"autoDownload": "Téléchargement automatique",
|
||||
"@autoDownload": {},
|
||||
"back": "Retour",
|
||||
"@back": {},
|
||||
"buffering": "Buffering",
|
||||
"@buffering": {},
|
||||
"cancel": "ANNULER",
|
||||
"@cancel": {},
|
||||
"changeLayout": "Modifier l'interface",
|
||||
"@changeLayout": {},
|
||||
"changelog": "Historique des modifications",
|
||||
"@changelog": {},
|
||||
"chooseA": "Choisir un",
|
||||
"@chooseA": {},
|
||||
"clear": "Effacer",
|
||||
"@clear": {},
|
||||
"color": "Couleur",
|
||||
"@color": {},
|
||||
"confirm": "CONFIRMER",
|
||||
"@confirm": {},
|
||||
"darkMode": "Mode sombre",
|
||||
"@darkMode": {},
|
||||
"daysAgo": "{count, plural, zero{Aujourd'hui} one{Il y a {count} jour} other{Il y a {count} jours}}",
|
||||
"@daysAgo": {},
|
||||
"daysCount": "{count, plural, zero{Jamais} one{{count} jour} other{{count} jours}}",
|
||||
"@daysCount": {},
|
||||
"delete": "Effacer",
|
||||
"@delete": {},
|
||||
"developer": "Développeur",
|
||||
"@developer": {
|
||||
"description": "Can also translate to About me"
|
||||
},
|
||||
"dismiss": "Rejeter",
|
||||
"@dismiss": {},
|
||||
"done": "Fait",
|
||||
"@done": {},
|
||||
"download": "Télécharger",
|
||||
"@download": {},
|
||||
"downloaded": "Téléchargé",
|
||||
"@downloaded": {},
|
||||
"editGroupName": "Modifier le nom du groupe",
|
||||
"@editGroupName": {},
|
||||
"endOfEpisode": "Fin de l'épisode",
|
||||
"@endOfEpisode": {},
|
||||
"episode": "{count, plural, zero{} one{Épisode} other{Épisodes }}",
|
||||
"@episode": {},
|
||||
"featureDiscoveryEditGroup": "Appuyez pour éditer le groupe",
|
||||
"@featureDiscoveryEditGroup": {},
|
||||
"featureDiscoveryEditGroupDes": "Vous pouvez supprimer ou modifier le nom du groupe, le groupe Home ne peut être modifié ni supprimé.",
|
||||
"@featureDiscoveryEditGroupDes": {},
|
||||
"featureDiscoveryEpisode": "Vue épisode",
|
||||
"@featureDiscoveryEpisode": {},
|
||||
"featureDiscoveryEpisodeDes": "Vous pouvez effectuer un appui long pour jouer un épisode ou l'ajouter à la playlist.",
|
||||
"@featureDiscoveryEpisodeDes": {},
|
||||
"featureDiscoveryEpisodeTitle": "Effectuez un appui long pour jouer un épisode immédiatement",
|
||||
"@featureDiscoveryEpisodeTitle": {},
|
||||
"featureDiscoveryGroup": "Appuyez pour ajouter un groupe.",
|
||||
"@featureDiscoveryGroup": {},
|
||||
"featureDiscoveryGroupDes": "Pour les nouveaux podcasts le groupe par défaut est Home. Vous pouvez créer de nouveaux groupes et y déplacer vos podcasts. Un podcast peut être associé à plusieurs groupes.",
|
||||
"@featureDiscoveryGroupDes": {},
|
||||
"featureDiscoveryGroupPodcast": "Un appui long pour classer les podcasts",
|
||||
"@featureDiscoveryGroupPodcast": {},
|
||||
"featureDiscoveryGroupPodcastDes": "Appuyez pour accéder à plus d'options, un appui long permet de classer les podcasts du groupe.",
|
||||
"@featureDiscoveryGroupPodcastDes": {},
|
||||
"featureDiscoveryOMPL": "Appuyez pour importer un fichier OPML",
|
||||
"@featureDiscoveryOMPL": {},
|
||||
"featureDiscoveryOMPLDes": "Vous pouvez importer un fichier OPML, accéder aux paramètres ou actualiser tous les podcasts.",
|
||||
"@featureDiscoveryOMPLDes": {},
|
||||
"featureDiscoveryPlaylist": "Appuyez pour ouvrir la playlist",
|
||||
"@featureDiscoveryPlaylist": {},
|
||||
"featureDiscoveryPlaylistDes": "Vous pouvez ajouter des épisodes dans la playlist. Ils seront automatiquement retirés l'écoute finie.",
|
||||
"@featureDiscoveryPlaylistDes": {},
|
||||
"featureDiscoveryPodcast": "Vue podcasts",
|
||||
"@featureDiscoveryPodcast": {},
|
||||
"featureDiscoveryPodcastDes": "Vous pouvez appuyer sur Tout Voir pour ajouter des groupes ou gérer les podcasts.",
|
||||
"@featureDiscoveryPodcastDes": {},
|
||||
"featureDiscoveryPodcastTitle": "Effectuez un défilement vertical pour changer de groupe.",
|
||||
"@featureDiscoveryPodcastTitle": {},
|
||||
"featureDiscoverySearch": "Appuyez pour chercher un podcast",
|
||||
"@featureDiscoverySearch": {},
|
||||
"featureDiscoverySearchDes": "Vous pouvez effectuer une recherche par titre, mots clés ou lien RSS pour vous abonner à un nouveau podcast.",
|
||||
"@featureDiscoverySearchDes": {},
|
||||
"feedbackEmail": "Me contacter",
|
||||
"@feedbackEmail": {},
|
||||
"feedbackGithub": "Soumettre un problème",
|
||||
"@feedbackGithub": {},
|
||||
"feedbackPlay": "Noter sur le PlayStore",
|
||||
"@feedbackPlay": {
|
||||
"description": "Rate on Google Play Store.\nUser can tap to open play link."
|
||||
},
|
||||
"feedbackTelegram": "Joindre le groupe",
|
||||
"@feedbackTelegram": {},
|
||||
"fonts": "Polices",
|
||||
"@fonts": {},
|
||||
"from": "De {time}",
|
||||
"@from": {
|
||||
"placeholders": {
|
||||
"time": {}
|
||||
}
|
||||
},
|
||||
"goodNight": "Bonne nuit",
|
||||
"@goodNight": {},
|
||||
"groupExisted": "Ce groupe existe déjà",
|
||||
"@groupExisted": {
|
||||
"description": "Group name validate in add group dialog. User can't add group with same name."
|
||||
},
|
||||
"groupFilter": "Filtrer par groupe",
|
||||
"@groupFilter": {},
|
||||
"groupRemoveConfirm": "Êtes-vous sûr de vouloir supprimer ce groupe ? Les podcasts seront déplacés vers le groupe Home.",
|
||||
"@groupRemoveConfirm": {},
|
||||
"groups": "{count, plural, zero{Groupe} one{Groupe} other{Groupes}}",
|
||||
"@groups": {},
|
||||
"homeGroupsSeeAll": "Tout Voir",
|
||||
"@homeGroupsSeeAll": {},
|
||||
"homeMenuPlaylist": "Playlist",
|
||||
"@homeMenuPlaylist": {},
|
||||
"homeSubMenuSortBy": "Classé par",
|
||||
"@homeSubMenuSortBy": {},
|
||||
"homeTabMenuFavotite": "Favoris",
|
||||
"@homeTabMenuFavotite": {},
|
||||
"homeTabMenuRecent": "Récent",
|
||||
"@homeTabMenuRecent": {},
|
||||
"homeToprightMenuAbout": "À propos",
|
||||
"@homeToprightMenuAbout": {},
|
||||
"homeToprightMenuImportOMPL": "Importer le fichier OPML",
|
||||
"@homeToprightMenuImportOMPL": {},
|
||||
"homeToprightMenuRefreshAll": "Tout actualiser",
|
||||
"@homeToprightMenuRefreshAll": {},
|
||||
"hostedOn": "Hébergé par {host}",
|
||||
"@hostedOn": {
|
||||
"placeholders": {
|
||||
"host": {}
|
||||
}
|
||||
},
|
||||
"hoursAgo": "{count, plural, zero{A l'instant} one{Il y a {count} heure} other{Il y a {count} heures}}",
|
||||
"@hoursAgo": {},
|
||||
"hoursCount": "{count, plural, zero{0 heure} one{{count} heure} other{{count} heures}}",
|
||||
"@hoursCount": {},
|
||||
"import": "Importer",
|
||||
"@import": {},
|
||||
"introFourthPage": "Vous pouvez effectuer un appui long sur un épisode pour accéder aux actions rapides.",
|
||||
"@introFourthPage": {},
|
||||
"introSecondPage": "Souscrivez aux podcasts via la section recherche ou importez un fichier OPML.",
|
||||
"@introSecondPage": {},
|
||||
"introThirdPage": "Vous pouvez créer un nouveau groupe de podcasts.",
|
||||
"@introThirdPage": {},
|
||||
"later": "Plus tard",
|
||||
"@later": {},
|
||||
"lightMode": "Mode clair",
|
||||
"@lightMode": {},
|
||||
"like": "Like",
|
||||
"@like": {},
|
||||
"liked": "Liké",
|
||||
"@liked": {},
|
||||
"likeDate": "Date du like",
|
||||
"@likeDate": {
|
||||
"description": "Favorite tab, sort by like date."
|
||||
},
|
||||
"listen": "Écoutés",
|
||||
"@listen": {},
|
||||
"listened": "Écouté ",
|
||||
"@listened": {},
|
||||
"loadMore": "Voir plus",
|
||||
"@loadMore": {},
|
||||
"mark": "Marqué",
|
||||
"@mark": {
|
||||
"description": "In listen history page, if a episode is marked as listened."
|
||||
},
|
||||
"markConfirm": "Marquage effectué",
|
||||
"@markConfirm": {},
|
||||
"markConfirmContent": "Marquer tous les épisodes comme lus ?",
|
||||
"@markConfirmContent": {},
|
||||
"markListened": "Marquer comme lu",
|
||||
"@markListened": {},
|
||||
"menu": "Menu",
|
||||
"@menu": {},
|
||||
"menuAllPodcasts": "Tous les podcasts",
|
||||
"@menuAllPodcasts": {},
|
||||
"menuMarkAllListened": "Marquer comme tous lu",
|
||||
"@menuMarkAllListened": {},
|
||||
"menuViewRSS": "Accéder au flux RSS",
|
||||
"@menuViewRSS": {},
|
||||
"menuVisitSite": "Accéder au site",
|
||||
"@menuVisitSite": {},
|
||||
"minsAgo": "{count, plural, zero{A l'instant} one{Il y a {count} minute} other{Il y a {count} minutes}}",
|
||||
"@minsAgo": {},
|
||||
"minsCount": "{count, plural, zero{0 min} one{{count} min} other{{count} mins}}",
|
||||
"@minsCount": {},
|
||||
"network": "Réseau",
|
||||
"@network": {},
|
||||
"newestFirst": "Le plus récent en premier.",
|
||||
"@newestFirst": {},
|
||||
"newGroup": "Créer un nouveau groupe",
|
||||
"@newGroup": {},
|
||||
"next": "Suivant",
|
||||
"@next": {},
|
||||
"noEpisodeDownload": "Aucun épisode n'a encore été téléchargé",
|
||||
"@noEpisodeDownload": {},
|
||||
"noEpisodeFavorite": "Aucun épisode ajouté",
|
||||
"@noEpisodeFavorite": {},
|
||||
"noEpisodeRecent": "Aucun épisode reçu",
|
||||
"@noEpisodeRecent": {},
|
||||
"noPodcastGroup": "Ce groupe ne contient aucun podcast",
|
||||
"@noPodcastGroup": {},
|
||||
"noShownote": "Notes de l'épisode manquantes.",
|
||||
"@noShownote": {
|
||||
"description": "Means this episode have no show notes."
|
||||
},
|
||||
"notificaitonFatch": "Accès aux données {title} ",
|
||||
"@notificaitonFatch": {},
|
||||
"notificationNetworkError": "Échec de l’abonnement, erreur réseau {title} ",
|
||||
"@notificationNetworkError": {
|
||||
"placeholders": {
|
||||
"title": {}
|
||||
}
|
||||
},
|
||||
"notificationSubscribe": "S'abonner",
|
||||
"@notificationSubscribe": {
|
||||
"placeholders": {
|
||||
"title": {}
|
||||
}
|
||||
},
|
||||
"notificationSubscribeExisted": "Échec de l’abonnement, le podcast existe déjà {title}",
|
||||
"@notificationSubscribeExisted": {
|
||||
"placeholders": {
|
||||
"title": {}
|
||||
}
|
||||
},
|
||||
"notificationSuccess": "Abonnement réussi.",
|
||||
"@notificationSuccess": {
|
||||
"placeholders": {
|
||||
"title": {}
|
||||
}
|
||||
},
|
||||
"notificationUpdate": "Mise à jour {title}",
|
||||
"@notificationUpdate": {
|
||||
"placeholders": {
|
||||
"title": {}
|
||||
}
|
||||
},
|
||||
"notificationUpdateError": "Échec de la mise à jour {title}",
|
||||
"@notificationUpdateError": {
|
||||
"placeholders": {
|
||||
"title": {}
|
||||
}
|
||||
},
|
||||
"oldestFirst": "Le plus ancien en premier.",
|
||||
"@oldestFirst": {},
|
||||
"play": "Lecture",
|
||||
"@play": {},
|
||||
"playing": "En cours",
|
||||
"@playing": {},
|
||||
"plugins": "Plugins",
|
||||
"@plugins": {},
|
||||
"podcast": "{count, plural, zero{} one{Podcast} other{Podcasts}}",
|
||||
"@podcast": {},
|
||||
"podcastSubscribed": "Abonnements",
|
||||
"@podcastSubscribed": {},
|
||||
"popupMenuDownloadDes": "Télécharger l'épisode",
|
||||
"@popupMenuDownloadDes": {},
|
||||
"popupMenuLaterDes": "Ajouter l'épisode à la playlist",
|
||||
"@popupMenuLaterDes": {},
|
||||
"popupMenuLikeDes": "Ajouter l'épisode aux favoris",
|
||||
"@popupMenuLikeDes": {},
|
||||
"popupMenuMarkDes": "Marquer l'épisode comme lu",
|
||||
"@popupMenuMarkDes": {},
|
||||
"popupMenuPlayDes": "Jouer l'épisode",
|
||||
"@popupMenuPlayDes": {},
|
||||
"privacyPolicy": "Politique relative aux données personnelles.",
|
||||
"@privacyPolicy": {},
|
||||
"published": "Publié le {date}",
|
||||
"@published": {
|
||||
"placeholders": {
|
||||
"date": {}
|
||||
}
|
||||
},
|
||||
"publishedDaily": "Published daily",
|
||||
"@publishedDaily": {},
|
||||
"publishedMonthly": "Published monthly",
|
||||
"@publishedMonthly": {},
|
||||
"publishedWeekly": "Published weekly",
|
||||
"@publishedWeekly": {
|
||||
"description": "In search podcast detail page."
|
||||
},
|
||||
"publishedYearly": "Published yearly",
|
||||
"@publishedYearly": {},
|
||||
"recoverSubscribe": "Restaurer l'abonnement",
|
||||
"@recoverSubscribe": {
|
||||
"description": "User can recover subscribe podcast after remove it in subscribe history page."
|
||||
},
|
||||
"refreshArtwork": "Update artwork",
|
||||
"@refreshArtwork": {},
|
||||
"remove": "Supprimer",
|
||||
"@remove": {
|
||||
"description": "Remove not \"removed\". \nRemove a podcast or a group."
|
||||
},
|
||||
"removeConfirm": "Confirmer la suppression",
|
||||
"@removeConfirm": {
|
||||
"description": "unsubscribe podcast dialog"
|
||||
},
|
||||
"removedAt": "Supprimé le {date}",
|
||||
"@removedAt": {
|
||||
"description": "For example :Removed at 2020.10.10",
|
||||
"placeholders": {
|
||||
"date": {}
|
||||
}
|
||||
},
|
||||
"removePodcastDes": "Êtes-vous sûr de vouloir vous désabonner ?",
|
||||
"@removePodcastDes": {},
|
||||
"save": "Sauvegarder",
|
||||
"@save": {},
|
||||
"schedule": "Programmation",
|
||||
"@schedule": {},
|
||||
"searchInvalidRss": "Lien RSS invalide",
|
||||
"@searchInvalidRss": {},
|
||||
"searchPodcast": "Chercher un podcast",
|
||||
"@searchPodcast": {},
|
||||
"secondsAgo": "{count, plural, zero{A l'instant} one{Il y a {count} seconde} other{Il y a {count} secondes}}",
|
||||
"@secondsAgo": {},
|
||||
"settings": "Paramètres",
|
||||
"@settings": {},
|
||||
"settingsAccentColor": "Couleur principale",
|
||||
"@settingsAccentColor": {},
|
||||
"settingsAccentColorDes": "Inclure la couleur de superposition",
|
||||
"@settingsAccentColorDes": {},
|
||||
"settingsAppearance": "Apparence",
|
||||
"@settingsAppearance": {},
|
||||
"settingsAppearanceDes": "Couleurs et thèmes",
|
||||
"@settingsAppearanceDes": {},
|
||||
"settingsAppIntro": "App intro",
|
||||
"@settingsAppIntro": {},
|
||||
"settingsAudioCache": "Cache audio",
|
||||
"@settingsAudioCache": {},
|
||||
"settingsAudioCacheDes": "Taille maximum du cache audio",
|
||||
"@settingsAudioCacheDes": {},
|
||||
"settingsAutoDelete": "Supprimer automatiquement les téléchargement après",
|
||||
"@settingsAutoDelete": {},
|
||||
"settingsAutoDeleteDes": "30 jours par défaut",
|
||||
"@settingsAutoDeleteDes": {},
|
||||
"settingsAutoPlayDes": "Lancer automatiquement l'épisode suivant",
|
||||
"@settingsAutoPlayDes": {},
|
||||
"settingsBackup": "Backup",
|
||||
"@settingsBackup": {},
|
||||
"settingsBackupDes": "Sauvegarder les données de l'application",
|
||||
"@settingsBackupDes": {},
|
||||
"settingsDefaultGrid": "Vue par défaut",
|
||||
"@settingsDefaultGrid": {},
|
||||
"settingsDefaultGridDownload": "Onglet téléchargement",
|
||||
"@settingsDefaultGridDownload": {},
|
||||
"settingsDefaultGridFavorite": "Onglet favoris",
|
||||
"@settingsDefaultGridFavorite": {},
|
||||
"settingsDefaultGridPodcast": "Page du podcast",
|
||||
"@settingsDefaultGridPodcast": {},
|
||||
"settingsDefaultGridRecent": "Onglet récents",
|
||||
"@settingsDefaultGridRecent": {},
|
||||
"settingsDiscovery": "Revoir le tutoriel",
|
||||
"@settingsDiscovery": {
|
||||
"description": "Reset feature discovery state. User tap it and restart app, will see features tutorial again."
|
||||
},
|
||||
"settingsEnableSyncing": "Activer la synchronisation",
|
||||
"@settingsEnableSyncing": {},
|
||||
"settingsEnableSyncingDes": "Actualisez tous les podcasts en arrière-plan pour toujours afficher les derniers épisodes",
|
||||
"@settingsEnableSyncingDes": {},
|
||||
"settingsExportDes": "Exporter et importer les paramètres de l'application",
|
||||
"@settingsExportDes": {},
|
||||
"settingsFeedback": "Feedback",
|
||||
"@settingsFeedback": {},
|
||||
"settingsFeedbackDes": "Report de bugs et demande d'ajout de fonction",
|
||||
"@settingsFeedbackDes": {},
|
||||
"settingsHistory": "Historique",
|
||||
"@settingsHistory": {},
|
||||
"settingsHistoryDes": "Données d'écoutes",
|
||||
"@settingsHistoryDes": {},
|
||||
"settingsInfo": "Infos",
|
||||
"@settingsInfo": {},
|
||||
"settingsInterface": "Interface",
|
||||
"@settingsInterface": {},
|
||||
"settingsLanguages": "Langues",
|
||||
"@settingsLanguages": {},
|
||||
"settingsLanguagesDes": "Changer la langue",
|
||||
"@settingsLanguagesDes": {},
|
||||
"settingsLayout": "Style",
|
||||
"@settingsLayout": {},
|
||||
"settingsLayoutDes": "Style de l'application",
|
||||
"@settingsLayoutDes": {},
|
||||
"settingsLibraries": "Librairies",
|
||||
"@settingsLibraries": {},
|
||||
"settingsLibrariesDes": "Les librairies open source utilisées",
|
||||
"@settingsLibrariesDes": {},
|
||||
"settingsManageDownload": "Gérer les téléchargements",
|
||||
"@settingsManageDownload": {},
|
||||
"settingsManageDownloadDes": "Gérer les fichiers audio téléchargés",
|
||||
"@settingsManageDownloadDes": {},
|
||||
"settingsMenuAutoPlay": "Jouer automatiquement le suivant.",
|
||||
"@settingsMenuAutoPlay": {},
|
||||
"settingsNetworkCellular": "Demander avant l'utilisation du réseau mobile",
|
||||
"@settingsNetworkCellular": {},
|
||||
"settingsNetworkCellularAuto": "Téléchargement automatique sur réseau mobile.",
|
||||
"@settingsNetworkCellularAuto": {},
|
||||
"settingsNetworkCellularAutoDes": "Vous pouvez utiliser le téléchargement automatique du podcast sur la page de gestion des groupes.",
|
||||
"@settingsNetworkCellularAutoDes": {},
|
||||
"settingsNetworkCellularDes": "Si connecté à un réseau mobile, demander une confirmation avant le téléchargement.",
|
||||
"@settingsNetworkCellularDes": {},
|
||||
"settingsPlayDes": "Playlist et lecteur",
|
||||
"@settingsPlayDes": {},
|
||||
"settingsPopupMenu": "Menu popup des épisodes",
|
||||
"@settingsPopupMenu": {},
|
||||
"settingsPopupMenuDes": "Modifier le menu popup de l'épisode",
|
||||
"@settingsPopupMenuDes": {},
|
||||
"settingsPrefrence": "Préférences",
|
||||
"@settingsPrefrence": {},
|
||||
"settingsRealDark": "Noir profond",
|
||||
"@settingsRealDark": {},
|
||||
"settingsRealDarkDes": "Activez pour un mode sombre accentué",
|
||||
"@settingsRealDarkDes": {},
|
||||
"settingsSTAuto": "Activation automatique de la minuterie",
|
||||
"@settingsSTAuto": {},
|
||||
"settingsSTAutoDes": "Démarrer la minuterie à l'horaire programmé",
|
||||
"@settingsSTAutoDes": {},
|
||||
"settingsSTDefaultTime": "Temps par défaut",
|
||||
"@settingsSTDefaultTime": {},
|
||||
"settingsSTDefautTimeDes": "Temps par défaut de la minuterie",
|
||||
"@settingsSTDefautTimeDes": {},
|
||||
"settingsSTMode": "Mode minuterie automatique",
|
||||
"@settingsSTMode": {},
|
||||
"settingsStorageDes": "Gérer le cache et l'espace de stockage",
|
||||
"@settingsStorageDes": {},
|
||||
"settingsSyncing": "Synchronisation",
|
||||
"@settingsSyncing": {},
|
||||
"settingsSyncingDes": "Actualiser les podcasts en arrière-plan",
|
||||
"@settingsSyncingDes": {},
|
||||
"settingsTapToOpenPopupMenu": "Appuyer pour ouvrir le menu",
|
||||
"@settingsTapToOpenPopupMenu": {},
|
||||
"settingsTapToOpenPopupMenuDes": "Vous devez effectuer un appui long pour ouvrir la page de l'épisode",
|
||||
"@settingsTapToOpenPopupMenuDes": {},
|
||||
"settingsTheme": "Thème",
|
||||
"@settingsTheme": {},
|
||||
"settingStorage": "Espace de stockage",
|
||||
"@settingStorage": {},
|
||||
"settingsUpdateInterval": "Intervalle de mise à jour",
|
||||
"@settingsUpdateInterval": {},
|
||||
"settingsUpdateIntervalDes": "24 heures par défaut",
|
||||
"@settingsUpdateIntervalDes": {},
|
||||
"share": "Partager",
|
||||
"@share": {},
|
||||
"size": "Taille",
|
||||
"@size": {},
|
||||
"skipSecondsAtStart": "Passer les premières secondes du début",
|
||||
"@skipSecondsAtStart": {},
|
||||
"sleepTimer": "Minuterie",
|
||||
"@sleepTimer": {},
|
||||
"subscribe": "Abonnements",
|
||||
"@subscribe": {},
|
||||
"subscribeExportDes": "Exporter le fichier OPML de tous les podcasts",
|
||||
"@subscribeExportDes": {},
|
||||
"systemDefault": "Valeur du système par défaut",
|
||||
"@systemDefault": {},
|
||||
"timeLastPlayed": "Dernière écoute à {time}",
|
||||
"@timeLastPlayed": {
|
||||
"description": "Show last time stop position in player when a episode have been played.",
|
||||
"placeholders": {
|
||||
"time": {}
|
||||
}
|
||||
},
|
||||
"timeLeft": "{time} Restant",
|
||||
"@timeLeft": {
|
||||
"placeholders": {
|
||||
"time": {}
|
||||
}
|
||||
},
|
||||
"to": "Jusqu'à {time}",
|
||||
"@to": {
|
||||
"placeholders": {
|
||||
"time": {}
|
||||
}
|
||||
},
|
||||
"toastAddPlaylist": "Ajouté à la playlist.",
|
||||
"@toastAddPlaylist": {},
|
||||
"toastDiscovery": "Tutoriel réinitialisé, veuillez redémarrer l'application.",
|
||||
"@toastDiscovery": {
|
||||
"description": "Toast displayed when user tap Discovery Features Again in settings page."
|
||||
},
|
||||
"toastFileError": "Erreur du fichier, échec de l'abonnement.",
|
||||
"@toastFileError": {},
|
||||
"toastFileNotValid": "Fichier invalide.",
|
||||
"@toastFileNotValid": {},
|
||||
"toastHomeGroupNotSupport": "Le groupe Home n'est pas pris en charge",
|
||||
"@toastHomeGroupNotSupport": {},
|
||||
"toastImportSettingsSuccess": "Importation des paramètres effectuée",
|
||||
"@toastImportSettingsSuccess": {},
|
||||
"toastOneGroup": "Sélectionnez au moins un groupe",
|
||||
"@toastOneGroup": {},
|
||||
"toastPodcastRecovering": "Récupération en cours, patientez un instant.",
|
||||
"@toastPodcastRecovering": {
|
||||
"description": "Resubscribe removed podcast"
|
||||
},
|
||||
"toastReadFile": "Lecture du fichier réussie",
|
||||
"@toastReadFile": {},
|
||||
"toastRecoverFailed": "Échec de la récupération du podcast",
|
||||
"@toastRecoverFailed": {
|
||||
"description": "Resubscribe removed podast"
|
||||
},
|
||||
"toastRemovePlaylist": "L'épisode a été supprimé de la playlist.",
|
||||
"@toastRemovePlaylist": {},
|
||||
"toastSettingSaved": "Paramètres sauvegardés",
|
||||
"@toastSettingSaved": {},
|
||||
"toastTimeEqualEnd": "Heure de fin",
|
||||
"@toastTimeEqualEnd": {
|
||||
"description": "User can't choose the same time as schedule end time."
|
||||
},
|
||||
"toastTimeEqualStart": "Heure de démarrage",
|
||||
"@toastTimeEqualStart": {
|
||||
"description": "User can't choose the same time as schedule start time."
|
||||
},
|
||||
"translators": "Translators",
|
||||
"@translators": {},
|
||||
"understood": "Compris",
|
||||
"@understood": {},
|
||||
"undo": "ANNULER",
|
||||
"@undo": {},
|
||||
"unlike": "Dislike",
|
||||
"@unlike": {},
|
||||
"unliked": "L'épisode a été supprimé des favoris.",
|
||||
"@unliked": {},
|
||||
"updateDate": "Date de mise à jour",
|
||||
"@updateDate": {},
|
||||
"updateEpisodesCount": "{count, plural, zero{Aucune mise à jour.} one{Mise à jour d'{count} épisode.} other{Mise à jour de {count} épisodes.}}",
|
||||
"@updateEpisodesCount": {},
|
||||
"updateFailed": "Échec de la mise à jour, erreur de réseau",
|
||||
"@updateFailed": {},
|
||||
"version": "Version : {version}",
|
||||
"@version": {
|
||||
"placeholders": {
|
||||
"version": {}
|
||||
}
|
||||
}
|
||||
}
|
@ -296,6 +296,16 @@
|
||||
"date": {}
|
||||
}
|
||||
},
|
||||
"publishedDaily": "每日更新",
|
||||
"@publishedDaily": {},
|
||||
"publishedMonthly": "每月更新",
|
||||
"@publishedMonthly": {},
|
||||
"publishedWeekly": "每周更新",
|
||||
"@publishedWeekly": {
|
||||
"description": "In search podcast detail page."
|
||||
},
|
||||
"publishedYearly": "每年更新",
|
||||
"@publishedYearly": {},
|
||||
"recoverSubscribe": "恢复订阅",
|
||||
"@recoverSubscribe": {
|
||||
"description": "User can recover subscribe podcast after remove it in subscribe history page."
|
||||
@ -524,6 +534,8 @@
|
||||
"@toastTimeEqualStart": {
|
||||
"description": "User can't choose the same time as schedule start time."
|
||||
},
|
||||
"translators": "翻译者",
|
||||
"@translators": {},
|
||||
"understood": "了解",
|
||||
"@understood": {},
|
||||
"undo": "撤销",
|
||||
|
@ -91,6 +91,22 @@ class _LanguagesSettingState extends State<LanguagesSetting> {
|
||||
}),
|
||||
),
|
||||
Divider(height: 2),
|
||||
ListTile(
|
||||
title: Text('LE françAIS'),
|
||||
onTap: () async {
|
||||
await S.load(Locale('fr'));
|
||||
setState(() {});
|
||||
},
|
||||
contentPadding: const EdgeInsets.only(left: 75, right: 20),
|
||||
trailing: Radio<Locale>(
|
||||
value: Locale('fr'),
|
||||
groupValue: Locale(Intl.getCurrentLocale()),
|
||||
onChanged: (Locale locale) async {
|
||||
await S.load(locale);
|
||||
setState(() {});
|
||||
}),
|
||||
),
|
||||
Divider(height: 2),
|
||||
ListTile(
|
||||
onTap: () => _launchUrl(
|
||||
'mailto:<tsacdop.app@gmail.com>?subject=Tsacdop localization project'),
|
||||
@ -106,10 +122,6 @@ class _LanguagesSettingState extends State<LanguagesSetting> {
|
||||
),
|
||||
subtitle: Text(
|
||||
"If you'd like to contribute to support more languages, please contact me."),
|
||||
// trailing: IconButton(
|
||||
// icon: Icon(LineIcons.heart),
|
||||
// onPressed: () => _launchUrl(
|
||||
// 'mailto:<tsacdop.app@gmail.com>?subject=Tsacdop localization project')),
|
||||
),
|
||||
],
|
||||
))),
|
||||
|
@ -42,13 +42,13 @@ extension IntExtension on int {
|
||||
final s = context.s;
|
||||
var interval = Duration(milliseconds: this);
|
||||
if (interval.inHours <= 48)
|
||||
return 'Published daily';
|
||||
return s.publishedDaily;
|
||||
else if (interval.inDays > 2 && interval.inDays <= 14)
|
||||
return 'Published weekly';
|
||||
return s.publishedWeekly;
|
||||
else if (interval.inDays > 14 && interval.inDays < 60)
|
||||
return 'Published monthly';
|
||||
return s.publishedMonthly;
|
||||
else
|
||||
return 'Published yearly';
|
||||
return s.publishedYearly;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
name: tsacdop
|
||||
description: An easy-use podacasts player.
|
||||
|
||||
version: 0.4.7+23
|
||||
version: 0.4.8+24
|
||||
|
||||
environment:
|
||||
sdk: ">=2.6.0 <3.0.0"
|
||||
|
Loading…
x
Reference in New Issue
Block a user