From a9032aaef7755e07708994ca1102adee7baedadf Mon Sep 17 00:00:00 2001 From: Stonegate Date: Tue, 5 Jan 2021 23:16:10 +0800 Subject: [PATCH] Language update. --- lib/generated/intl/messages_en.dart | 29 ++++++---- lib/generated/intl/messages_es.dart | 29 ++++++---- lib/generated/intl/messages_fr.dart | 29 ++++++---- lib/generated/intl/messages_it.dart | 35 +++++++----- lib/generated/intl/messages_pt.dart | 29 ++++++---- lib/generated/intl/messages_zh-Hans.dart | 29 ++++++---- lib/generated/l10n.dart | 70 ++++++++++++++++++++++++ lib/l10n/intl_en.arb | 28 ++++++++++ lib/l10n/intl_es.arb | 28 ++++++++++ lib/l10n/intl_fr.arb | 28 ++++++++++ lib/l10n/intl_it.arb | 34 +++++++++++- lib/l10n/intl_pt.arb | 28 ++++++++++ lib/l10n/intl_zh_Hans.arb | 28 ++++++++++ lib/playlists/playlist_home.dart | 44 +++++++-------- lib/playlists/playlist_page.dart | 6 +- pubspec.yaml | 4 +- 16 files changed, 385 insertions(+), 93 deletions(-) diff --git a/lib/generated/intl/messages_en.dart b/lib/generated/intl/messages_en.dart index 00e6f7f..c763b75 100644 --- a/lib/generated/intl/messages_en.dart +++ b/lib/generated/intl/messages_en.dart @@ -71,15 +71,17 @@ class MessageLookup extends MessageLookupByLibrary { static m25(count) => "${Intl.plural(count, zero: 'Just now', one: '${count} second ago', other: '${count} seconds ago')}"; - static m26(time) => "Last time ${time}"; + static m26(count) => "${count} selected"; - static m27(time) => "${time} Left"; + static m27(time) => "Last time ${time}"; - static m28(time) => "To ${time}"; + static m28(time) => "${time} Left"; - static m29(count) => "${Intl.plural(count, zero: 'No update', one: 'Updated ${count} episode', other: 'Updated ${count} episodes')}"; + static m29(time) => "To ${time}"; - static m30(version) => "Version: ${version}"; + static m30(count) => "${Intl.plural(count, zero: 'No update', one: 'Updated ${count} episode', other: 'Updated ${count} episodes')}"; + + static m31(version) => "Version: ${version}"; final messages = _notInlinedMessages(_notInlinedMessages); static _notInlinedMessages(_) => { @@ -100,11 +102,14 @@ class MessageLookup extends MessageLookupByLibrary { "changelog" : MessageLookupByLibrary.simpleMessage("Changelog"), "chooseA" : MessageLookupByLibrary.simpleMessage("Choose a"), "clear" : MessageLookupByLibrary.simpleMessage("Clear"), + "clearAll" : MessageLookupByLibrary.simpleMessage("Clear all"), "color" : MessageLookupByLibrary.simpleMessage("color"), "confirm" : MessageLookupByLibrary.simpleMessage("CONFIRM"), + "createNewPlaylist" : MessageLookupByLibrary.simpleMessage("New playlist"), "darkMode" : MessageLookupByLibrary.simpleMessage("Dark mode"), "daysAgo" : m2, "daysCount" : m3, + "defaultQueueReminder" : MessageLookupByLibrary.simpleMessage("This is the default queue, can\'t be removed."), "defaultSearchEngine" : MessageLookupByLibrary.simpleMessage("Default podcast search engine"), "defaultSearchEngineDes" : MessageLookupByLibrary.simpleMessage("Choose the default podcast search engine"), "delete" : MessageLookupByLibrary.simpleMessage("Delete"), @@ -228,6 +233,9 @@ class MessageLookup extends MessageLookupByLibrary { "playerHeightShort" : MessageLookupByLibrary.simpleMessage("Low"), "playerHeightTall" : MessageLookupByLibrary.simpleMessage("High"), "playing" : MessageLookupByLibrary.simpleMessage("Playing"), + "playlistExisted" : MessageLookupByLibrary.simpleMessage("Playlist name existed"), + "playlistNameEmpty" : MessageLookupByLibrary.simpleMessage("Playlist name is empty"), + "playlists" : MessageLookupByLibrary.simpleMessage("Playlists"), "plugins" : MessageLookupByLibrary.simpleMessage("Plugins"), "podcast" : m21, "podcastSubscribed" : MessageLookupByLibrary.simpleMessage("Podcast subscribed"), @@ -261,6 +269,7 @@ class MessageLookup extends MessageLookupByLibrary { "searchPodcast" : MessageLookupByLibrary.simpleMessage("Search for podcasts"), "secCount" : m24, "secondsAgo" : m25, + "selected" : m26, "settingStorage" : MessageLookupByLibrary.simpleMessage("Storage"), "settings" : MessageLookupByLibrary.simpleMessage("Settings"), "settingsAccentColor" : MessageLookupByLibrary.simpleMessage("Accent color"), @@ -352,9 +361,9 @@ class MessageLookup extends MessageLookupByLibrary { "subscribeExportDes" : MessageLookupByLibrary.simpleMessage("Export OPML file of all podcasts"), "syncNow" : MessageLookupByLibrary.simpleMessage("Sync now"), "systemDefault" : MessageLookupByLibrary.simpleMessage("System default"), - "timeLastPlayed" : m26, - "timeLeft" : m27, - "to" : m28, + "timeLastPlayed" : m27, + "timeLeft" : m28, + "to" : m29, "toastAddPlaylist" : MessageLookupByLibrary.simpleMessage("Added to playlist"), "toastDiscovery" : MessageLookupByLibrary.simpleMessage("Discovery feature reenabled, please reopen the app"), "toastFileError" : MessageLookupByLibrary.simpleMessage("File error, subscribing failed"), @@ -375,10 +384,10 @@ class MessageLookup extends MessageLookupByLibrary { "unlike" : MessageLookupByLibrary.simpleMessage("Unlike"), "unliked" : MessageLookupByLibrary.simpleMessage("Episode removed from favorites"), "updateDate" : MessageLookupByLibrary.simpleMessage("Update date"), - "updateEpisodesCount" : m29, + "updateEpisodesCount" : m30, "updateFailed" : MessageLookupByLibrary.simpleMessage("Update failed, network error"), "username" : MessageLookupByLibrary.simpleMessage("Username"), "usernameRequired" : MessageLookupByLibrary.simpleMessage("Username required"), - "version" : m30 + "version" : m31 }; } diff --git a/lib/generated/intl/messages_es.dart b/lib/generated/intl/messages_es.dart index b7079ee..90b89e8 100644 --- a/lib/generated/intl/messages_es.dart +++ b/lib/generated/intl/messages_es.dart @@ -71,15 +71,17 @@ class MessageLookup extends MessageLookupByLibrary { static m25(count) => "${Intl.plural(count, zero: 'Justo ahora', one: 'Hace ${count} segundo ', other: 'Hace ${count} segundos')}"; - static m26(time) => "Tiempo previo ${time}"; + static m26(count) => "${count} selected"; - static m27(time) => "${time} Restante"; + static m27(time) => "Tiempo previo ${time}"; - static m28(time) => "A ${time}"; + static m28(time) => "${time} Restante"; - static m29(count) => "${Intl.plural(count, zero: 'No hay actualizaciones', one: 'Se actualizo ${count} episodio', other: 'Se actualizaron ${count} episodios')}"; + static m29(time) => "A ${time}"; - static m30(version) => "Versión: ${version}"; + static m30(count) => "${Intl.plural(count, zero: 'No hay actualizaciones', one: 'Se actualizo ${count} episodio', other: 'Se actualizaron ${count} episodios')}"; + + static m31(version) => "Versión: ${version}"; final messages = _notInlinedMessages(_notInlinedMessages); static _notInlinedMessages(_) => { @@ -100,11 +102,14 @@ class MessageLookup extends MessageLookupByLibrary { "changelog" : MessageLookupByLibrary.simpleMessage("Reporte de cambios"), "chooseA" : MessageLookupByLibrary.simpleMessage("Escoger un"), "clear" : MessageLookupByLibrary.simpleMessage("Limpiar"), + "clearAll" : MessageLookupByLibrary.simpleMessage("Clear all"), "color" : MessageLookupByLibrary.simpleMessage("color"), "confirm" : MessageLookupByLibrary.simpleMessage("ACEPTAR"), + "createNewPlaylist" : MessageLookupByLibrary.simpleMessage("New playlist"), "darkMode" : MessageLookupByLibrary.simpleMessage("Modo oscuro"), "daysAgo" : m2, "daysCount" : m3, + "defaultQueueReminder" : MessageLookupByLibrary.simpleMessage("This is the default queue, can\'t be removed."), "defaultSearchEngine" : MessageLookupByLibrary.simpleMessage("Default podcast search engine"), "defaultSearchEngineDes" : MessageLookupByLibrary.simpleMessage("Choose the default podcast search engine"), "delete" : MessageLookupByLibrary.simpleMessage("Eliminar"), @@ -228,6 +233,9 @@ class MessageLookup extends MessageLookupByLibrary { "playerHeightShort" : MessageLookupByLibrary.simpleMessage("Bajo"), "playerHeightTall" : MessageLookupByLibrary.simpleMessage("Alto"), "playing" : MessageLookupByLibrary.simpleMessage("Reproduciendo"), + "playlistExisted" : MessageLookupByLibrary.simpleMessage("Playlist name existed"), + "playlistNameEmpty" : MessageLookupByLibrary.simpleMessage("Playlist name is empty"), + "playlists" : MessageLookupByLibrary.simpleMessage("Playlists"), "plugins" : MessageLookupByLibrary.simpleMessage("Plugins"), "podcast" : m21, "podcastSubscribed" : MessageLookupByLibrary.simpleMessage("Podcast añadido"), @@ -261,6 +269,7 @@ class MessageLookup extends MessageLookupByLibrary { "searchPodcast" : MessageLookupByLibrary.simpleMessage("Buscar podcast"), "secCount" : m24, "secondsAgo" : m25, + "selected" : m26, "settingStorage" : MessageLookupByLibrary.simpleMessage("Almacenamiento"), "settings" : MessageLookupByLibrary.simpleMessage("Ajustes"), "settingsAccentColor" : MessageLookupByLibrary.simpleMessage("Color de acento "), @@ -352,9 +361,9 @@ class MessageLookup extends MessageLookupByLibrary { "subscribeExportDes" : MessageLookupByLibrary.simpleMessage("Exportar OPML de todos los podcasts"), "syncNow" : MessageLookupByLibrary.simpleMessage("Sync now"), "systemDefault" : MessageLookupByLibrary.simpleMessage("Acorde al sistema"), - "timeLastPlayed" : m26, - "timeLeft" : m27, - "to" : m28, + "timeLastPlayed" : m27, + "timeLeft" : m28, + "to" : m29, "toastAddPlaylist" : MessageLookupByLibrary.simpleMessage("Añadido a la lista de reproducción "), "toastDiscovery" : MessageLookupByLibrary.simpleMessage("El tutorial se ha reiniciado, reinicia la app porfavor"), "toastFileError" : MessageLookupByLibrary.simpleMessage("Error de archivo, suscripción fallida"), @@ -375,10 +384,10 @@ class MessageLookup extends MessageLookupByLibrary { "unlike" : MessageLookupByLibrary.simpleMessage("No me gusta"), "unliked" : MessageLookupByLibrary.simpleMessage("Episodio removido de favoritos"), "updateDate" : MessageLookupByLibrary.simpleMessage("Fecha de actualización "), - "updateEpisodesCount" : m29, + "updateEpisodesCount" : m30, "updateFailed" : MessageLookupByLibrary.simpleMessage("Actualización fallida, error de red"), "username" : MessageLookupByLibrary.simpleMessage("Username"), "usernameRequired" : MessageLookupByLibrary.simpleMessage("Username required"), - "version" : m30 + "version" : m31 }; } diff --git a/lib/generated/intl/messages_fr.dart b/lib/generated/intl/messages_fr.dart index affe69d..4c6f910 100644 --- a/lib/generated/intl/messages_fr.dart +++ b/lib/generated/intl/messages_fr.dart @@ -71,15 +71,17 @@ class MessageLookup extends MessageLookupByLibrary { static m25(count) => "${Intl.plural(count, zero: 'A l\'instant', one: 'Il y a ${count} seconde', other: 'Il y a ${count} secondes')}"; - static m26(time) => "Dernière écoute à ${time}"; + static m26(count) => "${count} selected"; - static m27(time) => "${time} Restant"; + static m27(time) => "Dernière écoute à ${time}"; - static m28(time) => "à ${time}"; + static m28(time) => "${time} Restant"; - static m29(count) => "${Intl.plural(count, zero: 'Aucune mise à jour.', one: 'Mise à jour d\'${count} épisode.', other: 'Mise à jour de ${count} épisodes.')}"; + static m29(time) => "à ${time}"; - static m30(version) => "Version : ${version}"; + static m30(count) => "${Intl.plural(count, zero: 'Aucune mise à jour.', one: 'Mise à jour d\'${count} épisode.', other: 'Mise à jour de ${count} épisodes.')}"; + + static m31(version) => "Version : ${version}"; final messages = _notInlinedMessages(_notInlinedMessages); static _notInlinedMessages(_) => { @@ -100,11 +102,14 @@ class MessageLookup extends MessageLookupByLibrary { "changelog" : MessageLookupByLibrary.simpleMessage("Changelog"), "chooseA" : MessageLookupByLibrary.simpleMessage("Choisir un"), "clear" : MessageLookupByLibrary.simpleMessage("Effacer"), + "clearAll" : MessageLookupByLibrary.simpleMessage("Clear all"), "color" : MessageLookupByLibrary.simpleMessage("Couleur"), "confirm" : MessageLookupByLibrary.simpleMessage("CONFIRMER"), + "createNewPlaylist" : MessageLookupByLibrary.simpleMessage("New playlist"), "darkMode" : MessageLookupByLibrary.simpleMessage("Mode sombre"), "daysAgo" : m2, "daysCount" : m3, + "defaultQueueReminder" : MessageLookupByLibrary.simpleMessage("This is the default queue, can\'t be removed."), "defaultSearchEngine" : MessageLookupByLibrary.simpleMessage("Default podcast search engine"), "defaultSearchEngineDes" : MessageLookupByLibrary.simpleMessage("Choose the default podcast search engine"), "delete" : MessageLookupByLibrary.simpleMessage("Effacer"), @@ -228,6 +233,9 @@ class MessageLookup extends MessageLookupByLibrary { "playerHeightShort" : MessageLookupByLibrary.simpleMessage("Petit"), "playerHeightTall" : MessageLookupByLibrary.simpleMessage("Grand"), "playing" : MessageLookupByLibrary.simpleMessage("En cours"), + "playlistExisted" : MessageLookupByLibrary.simpleMessage("Playlist name existed"), + "playlistNameEmpty" : MessageLookupByLibrary.simpleMessage("Playlist name is empty"), + "playlists" : MessageLookupByLibrary.simpleMessage("Playlists"), "plugins" : MessageLookupByLibrary.simpleMessage("Plugins"), "podcast" : m21, "podcastSubscribed" : MessageLookupByLibrary.simpleMessage("Abonné au podcast"), @@ -261,6 +269,7 @@ class MessageLookup extends MessageLookupByLibrary { "searchPodcast" : MessageLookupByLibrary.simpleMessage("Chercher un podcast"), "secCount" : m24, "secondsAgo" : m25, + "selected" : m26, "settingStorage" : MessageLookupByLibrary.simpleMessage("Espace de stockage"), "settings" : MessageLookupByLibrary.simpleMessage("Paramètres"), "settingsAccentColor" : MessageLookupByLibrary.simpleMessage("Couleur principale"), @@ -352,9 +361,9 @@ class MessageLookup extends MessageLookupByLibrary { "subscribeExportDes" : MessageLookupByLibrary.simpleMessage("Exporter le fichier OPML de tous les podcasts."), "syncNow" : MessageLookupByLibrary.simpleMessage("Sync now"), "systemDefault" : MessageLookupByLibrary.simpleMessage("Système par défaut"), - "timeLastPlayed" : m26, - "timeLeft" : m27, - "to" : m28, + "timeLastPlayed" : m27, + "timeLeft" : m28, + "to" : m29, "toastAddPlaylist" : MessageLookupByLibrary.simpleMessage("Ajouter l\'épisode à la playlist."), "toastDiscovery" : MessageLookupByLibrary.simpleMessage("Tutoriel réinitialisé, veuillez redémarrer l\'application."), "toastFileError" : MessageLookupByLibrary.simpleMessage("Erreur du fichier, échec de l\'abonnement."), @@ -375,10 +384,10 @@ class MessageLookup extends MessageLookupByLibrary { "unlike" : MessageLookupByLibrary.simpleMessage("Unlike"), "unliked" : MessageLookupByLibrary.simpleMessage("L\'épisode a été supprimé des favoris."), "updateDate" : MessageLookupByLibrary.simpleMessage("Date de mise à jour"), - "updateEpisodesCount" : m29, + "updateEpisodesCount" : m30, "updateFailed" : MessageLookupByLibrary.simpleMessage("Échec de la mise à jour, erreur réseau"), "username" : MessageLookupByLibrary.simpleMessage("Username"), "usernameRequired" : MessageLookupByLibrary.simpleMessage("Username required"), - "version" : m30 + "version" : m31 }; } diff --git a/lib/generated/intl/messages_it.dart b/lib/generated/intl/messages_it.dart index 5ad0560..1439f86 100644 --- a/lib/generated/intl/messages_it.dart +++ b/lib/generated/intl/messages_it.dart @@ -71,15 +71,17 @@ class MessageLookup extends MessageLookupByLibrary { static m25(count) => "${Intl.plural(count, zero: 'Adesso', one: '${count} secondo fa', other: '${count} secondi fa')}"; - static m26(time) => "Ultima riproduzione ${time}"; + static m26(count) => "${count} selected"; - static m27(time) => "${time} Restante"; + static m27(time) => "Ultima riproduzione ${time}"; - static m28(time) => "A ${time}"; + static m28(time) => "${time} Restante"; - static m29(count) => "${Intl.plural(count, zero: 'Nessun aggiornamento', one: 'Aggiornato ${count} episodio', other: 'Aggiornati ${count} episodi')}"; + static m29(time) => "A ${time}"; - static m30(version) => "Versione: ${version}"; + static m30(count) => "${Intl.plural(count, zero: 'Nessun aggiornamento', one: 'Aggiornato ${count} episodio', other: 'Aggiornati ${count} episodi')}"; + + static m31(version) => "Versione: ${version}"; final messages = _notInlinedMessages(_notInlinedMessages); static _notInlinedMessages(_) => { @@ -100,11 +102,14 @@ class MessageLookup extends MessageLookupByLibrary { "changelog" : MessageLookupByLibrary.simpleMessage("Novità"), "chooseA" : MessageLookupByLibrary.simpleMessage("Scegli un"), "clear" : MessageLookupByLibrary.simpleMessage("Pulisici"), + "clearAll" : MessageLookupByLibrary.simpleMessage("Azzera tutto"), "color" : MessageLookupByLibrary.simpleMessage("colore"), "confirm" : MessageLookupByLibrary.simpleMessage("CONFERMA"), + "createNewPlaylist" : MessageLookupByLibrary.simpleMessage("New playlist"), "darkMode" : MessageLookupByLibrary.simpleMessage("Tema scuro"), "daysAgo" : m2, "daysCount" : m3, + "defaultQueueReminder" : MessageLookupByLibrary.simpleMessage("This is the default queue, can\'t be removed."), "defaultSearchEngine" : MessageLookupByLibrary.simpleMessage("Motore di ricerca podcast predefinito"), "defaultSearchEngineDes" : MessageLookupByLibrary.simpleMessage("Scegli il motore di ricerca predefinito per i podcast"), "delete" : MessageLookupByLibrary.simpleMessage("Elimina"), @@ -228,6 +233,9 @@ class MessageLookup extends MessageLookupByLibrary { "playerHeightShort" : MessageLookupByLibrary.simpleMessage("Basso"), "playerHeightTall" : MessageLookupByLibrary.simpleMessage("Alto"), "playing" : MessageLookupByLibrary.simpleMessage("Riproducendo"), + "playlistExisted" : MessageLookupByLibrary.simpleMessage("Playlist name existed"), + "playlistNameEmpty" : MessageLookupByLibrary.simpleMessage("Playlist name is empty"), + "playlists" : MessageLookupByLibrary.simpleMessage("Playlists"), "plugins" : MessageLookupByLibrary.simpleMessage("Plugin"), "podcast" : m21, "podcastSubscribed" : MessageLookupByLibrary.simpleMessage("Iscritto al podcast"), @@ -242,14 +250,14 @@ class MessageLookup extends MessageLookupByLibrary { "publishedMonthly" : MessageLookupByLibrary.simpleMessage("Pubblicato mensilmente"), "publishedWeekly" : MessageLookupByLibrary.simpleMessage("Pubblicato settimanalmente"), "publishedYearly" : MessageLookupByLibrary.simpleMessage("Pubblicato annualmente"), - "queue" : MessageLookupByLibrary.simpleMessage("Queue"), + "queue" : MessageLookupByLibrary.simpleMessage("Coda"), "recoverSubscribe" : MessageLookupByLibrary.simpleMessage("Recupera iscrizione"), - "refresh" : MessageLookupByLibrary.simpleMessage("Refresh"), + "refresh" : MessageLookupByLibrary.simpleMessage("Ricarica"), "refreshArtwork" : MessageLookupByLibrary.simpleMessage("Aggiorna copertine"), "refreshStarted" : MessageLookupByLibrary.simpleMessage("Aggiornando"), "remove" : MessageLookupByLibrary.simpleMessage("Rimuovi"), "removeConfirm" : MessageLookupByLibrary.simpleMessage("Conferma la rimozione"), - "removeNewMark" : MessageLookupByLibrary.simpleMessage("Remove new mark"), + "removeNewMark" : MessageLookupByLibrary.simpleMessage("Rimuovi simbolo di \"nuovo\""), "removePodcastDes" : MessageLookupByLibrary.simpleMessage("Sei sicurǝ di volerti disiscrivere?"), "removedAt" : m23, "save" : MessageLookupByLibrary.simpleMessage("Salva"), @@ -261,6 +269,7 @@ class MessageLookup extends MessageLookupByLibrary { "searchPodcast" : MessageLookupByLibrary.simpleMessage("Cerca un podcast"), "secCount" : m24, "secondsAgo" : m25, + "selected" : m26, "settingStorage" : MessageLookupByLibrary.simpleMessage("Archiviazione"), "settings" : MessageLookupByLibrary.simpleMessage("Impostazioni"), "settingsAccentColor" : MessageLookupByLibrary.simpleMessage("Tinta colore"), @@ -352,9 +361,9 @@ class MessageLookup extends MessageLookupByLibrary { "subscribeExportDes" : MessageLookupByLibrary.simpleMessage("Esporta file OPML di tutti i podcast"), "syncNow" : MessageLookupByLibrary.simpleMessage("Sincronizza ora"), "systemDefault" : MessageLookupByLibrary.simpleMessage("Predefinito di sistema"), - "timeLastPlayed" : m26, - "timeLeft" : m27, - "to" : m28, + "timeLastPlayed" : m27, + "timeLeft" : m28, + "to" : m29, "toastAddPlaylist" : MessageLookupByLibrary.simpleMessage("Aggiunto alla playlist"), "toastDiscovery" : MessageLookupByLibrary.simpleMessage("Tutorial abilitato, riapri l\'applicazione per visualizzarlo"), "toastFileError" : MessageLookupByLibrary.simpleMessage("Errore file, iscrizione fallita"), @@ -375,10 +384,10 @@ class MessageLookup extends MessageLookupByLibrary { "unlike" : MessageLookupByLibrary.simpleMessage("Rimuovi like"), "unliked" : MessageLookupByLibrary.simpleMessage("Episodio rimosso dai preferiti"), "updateDate" : MessageLookupByLibrary.simpleMessage("Data di aggiornamento"), - "updateEpisodesCount" : m29, + "updateEpisodesCount" : m30, "updateFailed" : MessageLookupByLibrary.simpleMessage("Aggiornamento fallito, errore di rete"), "username" : MessageLookupByLibrary.simpleMessage("Nome utente"), "usernameRequired" : MessageLookupByLibrary.simpleMessage("Nome utente obbligatorio"), - "version" : m30 + "version" : m31 }; } diff --git a/lib/generated/intl/messages_pt.dart b/lib/generated/intl/messages_pt.dart index b27b851..b6c8ec2 100644 --- a/lib/generated/intl/messages_pt.dart +++ b/lib/generated/intl/messages_pt.dart @@ -71,15 +71,17 @@ class MessageLookup extends MessageLookupByLibrary { static m25(count) => "${Intl.plural(count, zero: 'Agora', one: 'Há ${count} segundo', other: 'Há ${count} segundos')}"; - static m26(time) => "Última vez ${time}"; + static m26(count) => "${count} selected"; - static m27(time) => "${time} Restante"; + static m27(time) => "Última vez ${time}"; - static m28(time) => "Para ${time}"; + static m28(time) => "${time} Restante"; - static m29(count) => "${Intl.plural(count, zero: 'Sem atualizações', one: '${count} episódio atualizado', other: '${count} episódios atualizados')}"; + static m29(time) => "Para ${time}"; - static m30(version) => "Versão: ${version}"; + static m30(count) => "${Intl.plural(count, zero: 'Sem atualizações', one: '${count} episódio atualizado', other: '${count} episódios atualizados')}"; + + static m31(version) => "Versão: ${version}"; final messages = _notInlinedMessages(_notInlinedMessages); static _notInlinedMessages(_) => { @@ -100,11 +102,14 @@ class MessageLookup extends MessageLookupByLibrary { "changelog" : MessageLookupByLibrary.simpleMessage("Registo de mudanças"), "chooseA" : MessageLookupByLibrary.simpleMessage("Escolher um"), "clear" : MessageLookupByLibrary.simpleMessage("Limpar"), + "clearAll" : MessageLookupByLibrary.simpleMessage("Clear all"), "color" : MessageLookupByLibrary.simpleMessage("Cor"), "confirm" : MessageLookupByLibrary.simpleMessage("CONFIRMAR"), + "createNewPlaylist" : MessageLookupByLibrary.simpleMessage("New playlist"), "darkMode" : MessageLookupByLibrary.simpleMessage("Modo escuro"), "daysAgo" : m2, "daysCount" : m3, + "defaultQueueReminder" : MessageLookupByLibrary.simpleMessage("This is the default queue, can\'t be removed."), "defaultSearchEngine" : MessageLookupByLibrary.simpleMessage("Default podcast search engine"), "defaultSearchEngineDes" : MessageLookupByLibrary.simpleMessage("Choose the default podcast search engine"), "delete" : MessageLookupByLibrary.simpleMessage("Eliminar"), @@ -228,6 +233,9 @@ class MessageLookup extends MessageLookupByLibrary { "playerHeightShort" : MessageLookupByLibrary.simpleMessage("Baixo"), "playerHeightTall" : MessageLookupByLibrary.simpleMessage("Alto"), "playing" : MessageLookupByLibrary.simpleMessage("Em reprodução"), + "playlistExisted" : MessageLookupByLibrary.simpleMessage("Playlist name existed"), + "playlistNameEmpty" : MessageLookupByLibrary.simpleMessage("Playlist name is empty"), + "playlists" : MessageLookupByLibrary.simpleMessage("Playlists"), "plugins" : MessageLookupByLibrary.simpleMessage("Plugins"), "podcast" : m21, "podcastSubscribed" : MessageLookupByLibrary.simpleMessage("Podcast subscrito"), @@ -261,6 +269,7 @@ class MessageLookup extends MessageLookupByLibrary { "searchPodcast" : MessageLookupByLibrary.simpleMessage("Procurar podcasts"), "secCount" : m24, "secondsAgo" : m25, + "selected" : m26, "settingStorage" : MessageLookupByLibrary.simpleMessage("Armazenamento"), "settings" : MessageLookupByLibrary.simpleMessage("Definições"), "settingsAccentColor" : MessageLookupByLibrary.simpleMessage("Cor de realce"), @@ -352,9 +361,9 @@ class MessageLookup extends MessageLookupByLibrary { "subscribeExportDes" : MessageLookupByLibrary.simpleMessage("Exportar ficheiro OPML de todos os podcasts"), "syncNow" : MessageLookupByLibrary.simpleMessage("Sync now"), "systemDefault" : MessageLookupByLibrary.simpleMessage("Predefinido do sistema"), - "timeLastPlayed" : m26, - "timeLeft" : m27, - "to" : m28, + "timeLastPlayed" : m27, + "timeLeft" : m28, + "to" : m29, "toastAddPlaylist" : MessageLookupByLibrary.simpleMessage("Adicionado à lista de reprodução"), "toastDiscovery" : MessageLookupByLibrary.simpleMessage("Característica \"Descobrir\" ligada, por favor reinicia a aplicação"), "toastFileError" : MessageLookupByLibrary.simpleMessage("Erro no ficheiro, subscrição falhou"), @@ -375,10 +384,10 @@ class MessageLookup extends MessageLookupByLibrary { "unlike" : MessageLookupByLibrary.simpleMessage("Não gosto"), "unliked" : MessageLookupByLibrary.simpleMessage("Episódio removido dos favoritos"), "updateDate" : MessageLookupByLibrary.simpleMessage("Atualizar data"), - "updateEpisodesCount" : m29, + "updateEpisodesCount" : m30, "updateFailed" : MessageLookupByLibrary.simpleMessage("Atuallização falhou, erro de conexão"), "username" : MessageLookupByLibrary.simpleMessage("Username"), "usernameRequired" : MessageLookupByLibrary.simpleMessage("Username requeired"), - "version" : m30 + "version" : m31 }; } diff --git a/lib/generated/intl/messages_zh-Hans.dart b/lib/generated/intl/messages_zh-Hans.dart index 7c11e2c..708b653 100644 --- a/lib/generated/intl/messages_zh-Hans.dart +++ b/lib/generated/intl/messages_zh-Hans.dart @@ -71,15 +71,17 @@ class MessageLookup extends MessageLookupByLibrary { static m25(count) => "${Intl.plural(count, zero: '刚刚', other: '${count}秒前')}"; - static m26(time) => "上次播放${time}"; + static m26(count) => "已选择 ${count} 项"; - static m27(time) => "剩余 ${time}"; + static m27(time) => "上次播放${time}"; - static m28(time) => "到${time}"; + static m28(time) => "剩余 ${time}"; - static m29(count) => "${Intl.plural(count, zero: '未有更新', other: '更新 ${count} 集节目')}"; + static m29(time) => "到${time}"; - static m30(version) => "版本:${version}"; + static m30(count) => "${Intl.plural(count, zero: '未有更新', other: '更新 ${count} 集节目')}"; + + static m31(version) => "版本:${version}"; final messages = _notInlinedMessages(_notInlinedMessages); static _notInlinedMessages(_) => { @@ -100,11 +102,14 @@ class MessageLookup extends MessageLookupByLibrary { "changelog" : MessageLookupByLibrary.simpleMessage("更新日志"), "chooseA" : MessageLookupByLibrary.simpleMessage("选择"), "clear" : MessageLookupByLibrary.simpleMessage("清除"), + "clearAll" : MessageLookupByLibrary.simpleMessage("清除全部"), "color" : MessageLookupByLibrary.simpleMessage("颜色"), "confirm" : MessageLookupByLibrary.simpleMessage("确认"), + "createNewPlaylist" : MessageLookupByLibrary.simpleMessage("创建播放列表"), "darkMode" : MessageLookupByLibrary.simpleMessage("夜晚模式"), "daysAgo" : m2, "daysCount" : m3, + "defaultQueueReminder" : MessageLookupByLibrary.simpleMessage("此为默认播放列表,无法删除。"), "defaultSearchEngine" : MessageLookupByLibrary.simpleMessage("默认播客搜索引擎"), "defaultSearchEngineDes" : MessageLookupByLibrary.simpleMessage("选择默认播客搜索引擎"), "delete" : MessageLookupByLibrary.simpleMessage("删除"), @@ -228,6 +233,9 @@ class MessageLookup extends MessageLookupByLibrary { "playerHeightShort" : MessageLookupByLibrary.simpleMessage("低"), "playerHeightTall" : MessageLookupByLibrary.simpleMessage("高"), "playing" : MessageLookupByLibrary.simpleMessage("正在播放"), + "playlistExisted" : MessageLookupByLibrary.simpleMessage("播放列表已存在"), + "playlistNameEmpty" : MessageLookupByLibrary.simpleMessage("播放列表名为空"), + "playlists" : MessageLookupByLibrary.simpleMessage("播放列表"), "plugins" : MessageLookupByLibrary.simpleMessage("插件"), "podcast" : m21, "podcastSubscribed" : MessageLookupByLibrary.simpleMessage("播客已订阅"), @@ -261,6 +269,7 @@ class MessageLookup extends MessageLookupByLibrary { "searchPodcast" : MessageLookupByLibrary.simpleMessage("搜索播客"), "secCount" : m24, "secondsAgo" : m25, + "selected" : m26, "settingStorage" : MessageLookupByLibrary.simpleMessage("储存空间"), "settings" : MessageLookupByLibrary.simpleMessage("设置"), "settingsAccentColor" : MessageLookupByLibrary.simpleMessage("次要颜色"), @@ -352,9 +361,9 @@ class MessageLookup extends MessageLookupByLibrary { "subscribeExportDes" : MessageLookupByLibrary.simpleMessage("导出 OPML 文件"), "syncNow" : MessageLookupByLibrary.simpleMessage("立即同步"), "systemDefault" : MessageLookupByLibrary.simpleMessage("系统默认"), - "timeLastPlayed" : m26, - "timeLeft" : m27, - "to" : m28, + "timeLastPlayed" : m27, + "timeLeft" : m28, + "to" : m29, "toastAddPlaylist" : MessageLookupByLibrary.simpleMessage("添加到播放列表"), "toastDiscovery" : MessageLookupByLibrary.simpleMessage("重启应用后可查看"), "toastFileError" : MessageLookupByLibrary.simpleMessage("文件错误,导入失败"), @@ -375,10 +384,10 @@ class MessageLookup extends MessageLookupByLibrary { "unlike" : MessageLookupByLibrary.simpleMessage("取消喜欢"), "unliked" : MessageLookupByLibrary.simpleMessage("从收藏移除"), "updateDate" : MessageLookupByLibrary.simpleMessage("更新日期"), - "updateEpisodesCount" : m29, + "updateEpisodesCount" : m30, "updateFailed" : MessageLookupByLibrary.simpleMessage("更新失败"), "username" : MessageLookupByLibrary.simpleMessage("用户名"), "usernameRequired" : MessageLookupByLibrary.simpleMessage("用户名为空"), - "version" : m30 + "version" : m31 }; } diff --git a/lib/generated/l10n.dart b/lib/generated/l10n.dart index 2aa77cd..f957267 100644 --- a/lib/generated/l10n.dart +++ b/lib/generated/l10n.dart @@ -211,6 +211,16 @@ class S { ); } + /// `Clear all` + String get clearAll { + return Intl.message( + 'Clear all', + name: 'clearAll', + desc: 'Clear all episodes in playlist.', + args: [], + ); + } + /// `color` String get color { return Intl.message( @@ -231,6 +241,16 @@ class S { ); } + /// `New playlist` + String get createNewPlaylist { + return Intl.message( + 'New playlist', + name: 'createNewPlaylist', + desc: '', + args: [], + ); + } + /// `Dark mode` String get darkMode { return Intl.message( @@ -267,6 +287,16 @@ class S { ); } + /// `This is the default queue, can't be removed.` + String get defaultQueueReminder { + return Intl.message( + 'This is the default queue, can\'t be removed.', + name: 'defaultQueueReminder', + desc: 'Remind user that default queue can\'t be removed.', + args: [], + ); + } + /// `Default podcast search engine` String get defaultSearchEngine { return Intl.message( @@ -1495,6 +1525,36 @@ class S { ); } + /// `Playlist name existed` + String get playlistExisted { + return Intl.message( + 'Playlist name existed', + name: 'playlistExisted', + desc: 'Error string when creating new playlist.', + args: [], + ); + } + + /// `Playlist name is empty` + String get playlistNameEmpty { + return Intl.message( + 'Playlist name is empty', + name: 'playlistNameEmpty', + desc: 'Error string when creating new playlist.', + args: [], + ); + } + + /// `Playlists` + String get playlists { + return Intl.message( + 'Playlists', + name: 'playlists', + desc: 'Title for playlists tab.', + args: [], + ); + } + /// `Play next` String get playNext { return Intl.message( @@ -1854,6 +1914,16 @@ class S { ); } + /// `{count} selected` + String selected(Object count) { + return Intl.message( + '$count selected', + name: 'selected', + desc: '', + args: [count], + ); + } + /// `Settings` String get settings { return Intl.message( diff --git a/lib/l10n/intl_en.arb b/lib/l10n/intl_en.arb index 5bb2c20..73dabe7 100644 --- a/lib/l10n/intl_en.arb +++ b/lib/l10n/intl_en.arb @@ -44,16 +44,26 @@ "@chooseA": {}, "clear": "Clear", "@clear": {}, + "clearAll": "Clear all", + "@clearAll": { + "description": "Clear all episodes in playlist." + }, "color": "color", "@color": {}, "confirm": "CONFIRM", "@confirm": {}, + "createNewPlaylist": "New playlist", + "@createNewPlaylist": {}, "darkMode": "Dark mode", "@darkMode": {}, "daysAgo": "{count, plural, zero{Today} one{{count} day ago} other{{count} days ago}}", "@daysAgo": {}, "daysCount": "{count, plural, zero{Never} one{{count} day} other{{count} days}}", "@daysCount": {}, + "defaultQueueReminder": "This is the default queue, can't be removed.", + "@defaultQueueReminder": { + "description": "Remind user that default queue can't be removed." + }, "defaultSearchEngine": "Default podcast search engine", "@defaultSearchEngine": {}, "defaultSearchEngineDes": "Choose the default podcast search engine", @@ -364,6 +374,18 @@ "@playerHeightTall": {}, "playing": "Playing", "@playing": {}, + "playlistExisted": "Playlist name existed", + "@playlistExisted": { + "description": "Error string when creating new playlist." + }, + "playlistNameEmpty": "Playlist name is empty", + "@playlistNameEmpty": { + "description": "Error string when creating new playlist." + }, + "playlists": "Playlists", + "@playlists": { + "description": "Title for playlists tab." + }, "playNext": "Play next", "@playNext": { "description": "Popup menu for episode." @@ -463,6 +485,12 @@ "@secCount": {}, "secondsAgo": "{count, plural, zero{Just now} one{{count} second ago} other{{count} seconds ago}}", "@secondsAgo": {}, + "selected": "{count} selected", + "@selected": { + "placeholders": { + "count": {} + } + }, "settings": "Settings", "@settings": {}, "settingsAccentColor": "Accent color", diff --git a/lib/l10n/intl_es.arb b/lib/l10n/intl_es.arb index e352e81..67f7b4e 100644 --- a/lib/l10n/intl_es.arb +++ b/lib/l10n/intl_es.arb @@ -44,16 +44,26 @@ "@chooseA": {}, "clear": "Limpiar", "@clear": {}, + "clearAll": "Clear all", + "@clearAll": { + "description": "Clear all episodes in playlist." + }, "color": "color", "@color": {}, "confirm": "ACEPTAR", "@confirm": {}, + "createNewPlaylist": "New playlist", + "@createNewPlaylist": {}, "darkMode": "Modo oscuro", "@darkMode": {}, "daysAgo": "{count, plural, zero{Hoy} one{Hace {count} dia} other{Hace {count} dias}}", "@daysAgo": {}, "daysCount": "{count, plural, zero{Nunca} one{{count} dia} other{{count} dias}}", "@daysCount": {}, + "defaultQueueReminder": "This is the default queue, can't be removed.", + "@defaultQueueReminder": { + "description": "Remind user that default queue can't be removed." + }, "defaultSearchEngine": "Default podcast search engine", "@defaultSearchEngine": {}, "defaultSearchEngineDes": "Choose the default podcast search engine", @@ -364,6 +374,18 @@ "@playerHeightTall": {}, "playing": "Reproduciendo", "@playing": {}, + "playlistExisted": "Playlist name existed", + "@playlistExisted": { + "description": "Error string when creating new playlist." + }, + "playlistNameEmpty": "Playlist name is empty", + "@playlistNameEmpty": { + "description": "Error string when creating new playlist." + }, + "playlists": "Playlists", + "@playlists": { + "description": "Title for playlists tab." + }, "playNext": "Play next", "@playNext": { "description": "Popup menu for episode." @@ -463,6 +485,12 @@ "@secCount": {}, "secondsAgo": "{count, plural, zero{Justo ahora} one{Hace {count} segundo } other{Hace {count} segundos}}", "@secondsAgo": {}, + "selected": "{count} selected", + "@selected": { + "placeholders": { + "count": {} + } + }, "settings": "Ajustes", "@settings": {}, "settingsAccentColor": "Color de acento ", diff --git a/lib/l10n/intl_fr.arb b/lib/l10n/intl_fr.arb index d284808..c666f6d 100644 --- a/lib/l10n/intl_fr.arb +++ b/lib/l10n/intl_fr.arb @@ -44,16 +44,26 @@ "@chooseA": {}, "clear": "Effacer", "@clear": {}, + "clearAll": "Clear all", + "@clearAll": { + "description": "Clear all episodes in playlist." + }, "color": "Couleur", "@color": {}, "confirm": "CONFIRMER", "@confirm": {}, + "createNewPlaylist": "New playlist", + "@createNewPlaylist": {}, "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": {}, + "defaultQueueReminder": "This is the default queue, can't be removed.", + "@defaultQueueReminder": { + "description": "Remind user that default queue can't be removed." + }, "defaultSearchEngine": "Default podcast search engine", "@defaultSearchEngine": {}, "defaultSearchEngineDes": "Choose the default podcast search engine", @@ -364,6 +374,18 @@ "@playerHeightTall": {}, "playing": "En cours", "@playing": {}, + "playlistExisted": "Playlist name existed", + "@playlistExisted": { + "description": "Error string when creating new playlist." + }, + "playlistNameEmpty": "Playlist name is empty", + "@playlistNameEmpty": { + "description": "Error string when creating new playlist." + }, + "playlists": "Playlists", + "@playlists": { + "description": "Title for playlists tab." + }, "playNext": "Play next", "@playNext": { "description": "Popup menu for episode." @@ -463,6 +485,12 @@ "@secCount": {}, "secondsAgo": "{count, plural, zero{A l'instant} one{Il y a {count} seconde} other{Il y a {count} secondes}}", "@secondsAgo": {}, + "selected": "{count} selected", + "@selected": { + "placeholders": { + "count": {} + } + }, "settings": "Paramètres", "@settings": {}, "settingsAccentColor": "Couleur principale", diff --git a/lib/l10n/intl_it.arb b/lib/l10n/intl_it.arb index ffdf922..5d49d97 100644 --- a/lib/l10n/intl_it.arb +++ b/lib/l10n/intl_it.arb @@ -44,16 +44,26 @@ "@chooseA": {}, "clear": "Pulisici", "@clear": {}, + "clearAll": "Azzera tutto", + "@clearAll": { + "description": "Clear all episodes in playlist." + }, "color": "colore", "@color": {}, "confirm": "CONFERMA", "@confirm": {}, + "createNewPlaylist": "New playlist", + "@createNewPlaylist": {}, "darkMode": "Tema scuro", "@darkMode": {}, "daysAgo": "{count, plural, zero{Oggi} one{{count} giorno fa} other{{count} giorni fa}}", "@daysAgo": {}, "daysCount": "{count, plural, zero{Mai} one{{count} giorno} other{{count} giorni}}", "@daysCount": {}, + "defaultQueueReminder": "This is the default queue, can't be removed.", + "@defaultQueueReminder": { + "description": "Remind user that default queue can't be removed." + }, "defaultSearchEngine": "Motore di ricerca podcast predefinito", "@defaultSearchEngine": {}, "defaultSearchEngineDes": "Scegli il motore di ricerca predefinito per i podcast", @@ -364,6 +374,18 @@ "@playerHeightTall": {}, "playing": "Riproducendo", "@playing": {}, + "playlistExisted": "Playlist name existed", + "@playlistExisted": { + "description": "Error string when creating new playlist." + }, + "playlistNameEmpty": "Playlist name is empty", + "@playlistNameEmpty": { + "description": "Error string when creating new playlist." + }, + "playlists": "Playlists", + "@playlists": { + "description": "Title for playlists tab." + }, "playNext": "Riproduci successivo", "@playNext": { "description": "Popup menu for episode." @@ -406,7 +428,7 @@ }, "publishedYearly": "Pubblicato annualmente", "@publishedYearly": {}, - "queue": "Queue", + "queue": "Coda", "@queue": { "description": "Queue" }, @@ -414,7 +436,7 @@ "@recoverSubscribe": { "description": "User can recover subscribe podcast after remove it in subscribe history page." }, - "refresh": "Refresh", + "refresh": "Ricarica", "@refresh": { "description": "Refresh" }, @@ -439,7 +461,7 @@ "date": {} } }, - "removeNewMark": "Remove new mark", + "removeNewMark": "Rimuovi simbolo di \"nuovo\"", "@removeNewMark": { "description": "Remove new mark for new episodes." }, @@ -463,6 +485,12 @@ "@secCount": {}, "secondsAgo": "{count, plural, zero{Adesso} one{{count} secondo fa} other{{count} secondi fa}}", "@secondsAgo": {}, + "selected": "{count} selected", + "@selected": { + "placeholders": { + "count": {} + } + }, "settings": "Impostazioni", "@settings": {}, "settingsAccentColor": "Tinta colore", diff --git a/lib/l10n/intl_pt.arb b/lib/l10n/intl_pt.arb index 86b9710..ba8d911 100644 --- a/lib/l10n/intl_pt.arb +++ b/lib/l10n/intl_pt.arb @@ -44,16 +44,26 @@ "@chooseA": {}, "clear": "Limpar", "@clear": {}, + "clearAll": "Clear all", + "@clearAll": { + "description": "Clear all episodes in playlist." + }, "color": "Cor", "@color": {}, "confirm": "CONFIRMAR", "@confirm": {}, + "createNewPlaylist": "New playlist", + "@createNewPlaylist": {}, "darkMode": "Modo escuro", "@darkMode": {}, "daysAgo": "{count, plural, zero{Hoje} one{Há {count} dia} other{Há {count} dias}}", "@daysAgo": {}, "daysCount": "{count, plural, zero{Nunca} one{{count} dia} other{{count} dias}}", "@daysCount": {}, + "defaultQueueReminder": "This is the default queue, can't be removed.", + "@defaultQueueReminder": { + "description": "Remind user that default queue can't be removed." + }, "defaultSearchEngine": "Default podcast search engine", "@defaultSearchEngine": {}, "defaultSearchEngineDes": "Choose the default podcast search engine", @@ -364,6 +374,18 @@ "@playerHeightTall": {}, "playing": "Em reprodução", "@playing": {}, + "playlistExisted": "Playlist name existed", + "@playlistExisted": { + "description": "Error string when creating new playlist." + }, + "playlistNameEmpty": "Playlist name is empty", + "@playlistNameEmpty": { + "description": "Error string when creating new playlist." + }, + "playlists": "Playlists", + "@playlists": { + "description": "Title for playlists tab." + }, "playNext": "Play next", "@playNext": { "description": "Popup menu for episode." @@ -463,6 +485,12 @@ "@secCount": {}, "secondsAgo": "{count, plural, zero{Agora} one{Há {count} segundo} other{Há {count} segundos}}", "@secondsAgo": {}, + "selected": "{count} selected", + "@selected": { + "placeholders": { + "count": {} + } + }, "settings": "Definições", "@settings": {}, "settingsAccentColor": "Cor de realce", diff --git a/lib/l10n/intl_zh_Hans.arb b/lib/l10n/intl_zh_Hans.arb index 9ed01f5..f899012 100644 --- a/lib/l10n/intl_zh_Hans.arb +++ b/lib/l10n/intl_zh_Hans.arb @@ -44,16 +44,26 @@ "@chooseA": {}, "clear": "清除", "@clear": {}, + "clearAll": "清除全部", + "@clearAll": { + "description": "Clear all episodes in playlist." + }, "color": "颜色", "@color": {}, "confirm": "确认", "@confirm": {}, + "createNewPlaylist": "创建播放列表", + "@createNewPlaylist": {}, "darkMode": "夜晚模式", "@darkMode": {}, "daysAgo": "{count, plural, zero{今天} other{{count}天前}}", "@daysAgo": {}, "daysCount": "{count, plural, zero{从不} other{{count}天}}", "@daysCount": {}, + "defaultQueueReminder": "此为默认播放列表,无法删除。", + "@defaultQueueReminder": { + "description": "Remind user that default queue can't be removed." + }, "defaultSearchEngine": "默认播客搜索引擎", "@defaultSearchEngine": {}, "defaultSearchEngineDes": "选择默认播客搜索引擎", @@ -364,6 +374,18 @@ "@playerHeightTall": {}, "playing": "正在播放", "@playing": {}, + "playlistExisted": "播放列表已存在", + "@playlistExisted": { + "description": "Error string when creating new playlist." + }, + "playlistNameEmpty": "播放列表名为空", + "@playlistNameEmpty": { + "description": "Error string when creating new playlist." + }, + "playlists": "播放列表", + "@playlists": { + "description": "Title for playlists tab." + }, "playNext": "下一首", "@playNext": { "description": "Popup menu for episode." @@ -463,6 +485,12 @@ "@secCount": {}, "secondsAgo": "{count, plural, zero{刚刚} other{{count}秒前}}", "@secondsAgo": {}, + "selected": "已选择 {count} 项", + "@selected": { + "placeholders": { + "count": {} + } + }, "settings": "设置", "@settings": {}, "settingsAccentColor": "次要颜色", diff --git a/lib/playlists/playlist_home.dart b/lib/playlists/playlist_home.dart index 8279a44..a0c7534 100644 --- a/lib/playlists/playlist_home.dart +++ b/lib/playlists/playlist_home.dart @@ -208,7 +208,7 @@ class _PlaylistHomeState extends State { children: [ _tabWidget( icon: Icon(Icons.queue_music_rounded), - label: 'Play Next', + label: s.playNext, color: Colors.blue, isSelected: _selected == 'PlayNext', onTap: () => setState(() { @@ -217,7 +217,7 @@ class _PlaylistHomeState extends State { })), _tabWidget( icon: Icon(Icons.history), - label: 'History', + label: s.settingsHistory, color: Colors.green, isSelected: _selected == 'History', onTap: () => setState(() { @@ -226,7 +226,7 @@ class _PlaylistHomeState extends State { })), _tabWidget( icon: Icon(Icons.playlist_play), - label: 'Playlists', + label: s.playlists, color: Colors.purple, isSelected: _selected == 'Playlists', onTap: () => setState(() { @@ -666,10 +666,10 @@ class __PlaylistsState extends State<_Playlists> { crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( - 'Queue', + s.queue, style: context.textTheme.headline6, ), - Text('${queue.episodes.length} episodes'), + Text('${queue.length} ${s.episode(queue.length).toLowerCase()}'), TextButton( style: OutlinedButton.styleFrom( side: BorderSide( @@ -726,9 +726,8 @@ class __PlaylistsState extends State<_Playlists> { }), ), title: Text(data[index].name), - subtitle: Text(episodeList.isNotEmpty - ? '${data[index].episodeList.length} episodes' - : '0 episode'), + subtitle: Text( + '${data[index].length} ${s.episode(data[index].length).toLowerCase()}'), trailing: IconButton( splashRadius: 20, icon: Icon(LineIcons.play_circle_solid, size: 30), @@ -759,7 +758,7 @@ class __PlaylistsState extends State<_Playlists> { color: context.primaryColorDark, child: Center(child: Icon(Icons.add)), ), - title: Text('Create new playlist'), + title: Text(s.createNewPlaylist), ); }), ); @@ -911,15 +910,15 @@ class __NewPlaylistState extends State<_NewPlaylist> { Text(s.confirm, style: TextStyle(color: context.accentColor)), ) ], - title: - SizedBox(width: context.width - 160, child: Text('New playlist')), + title: SizedBox( + width: context.width - 160, child: Text(s.createNewPlaylist)), content: Column( mainAxisSize: MainAxisSize.min, children: [ TextField( decoration: InputDecoration( contentPadding: EdgeInsets.symmetric(horizontal: 10), - hintText: 'New playlist', + hintText: s.createNewPlaylist, hintStyle: TextStyle(fontSize: 18), filled: true, focusedBorder: UnderlineInputBorder( @@ -942,19 +941,20 @@ class __NewPlaylistState extends State<_NewPlaylist> { alignment: Alignment.centerLeft, child: _error != null ? Text( - _error == 1 - ? 'Playlist existed' - : 'Playlist name is empty', + _error == 1 ? s.playlistExisted : s.playlistNameEmpty, style: TextStyle(color: Colors.red[400]), ) : Center()), - Row( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - _createOption(NewPlaylistOption.blank), - _createOption(NewPlaylistOption.randon10), - _createOption(NewPlaylistOption.latest10), - ], + SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + _createOption(NewPlaylistOption.blank), + _createOption(NewPlaylistOption.randon10), + _createOption(NewPlaylistOption.latest10), + ], + ), ), ], ), diff --git a/lib/playlists/playlist_page.dart b/lib/playlists/playlist_page.dart index c7bf4d6..34fc341 100644 --- a/lib/playlists/playlist_page.dart +++ b/lib/playlists/playlist_page.dart @@ -42,7 +42,7 @@ class _PlaylistDetailState extends State { ), title: Text(_selectedEpisodes.isEmpty ? widget.playlist.isQueue ? s.queue :widget.playlist.name - : '${_selectedEpisodes.length} selected'), + : s.selected(_selectedEpisodes.length)), actions: [ if (_selectedEpisodes.isNotEmpty) IconButton( @@ -320,7 +320,7 @@ class __PlaylistSettingState extends State<_PlaylistSetting> { children: [ Icon(Icons.clear_all_outlined, size: 18), SizedBox(width: 20), - Text('Clear all', style: textStyle), + Text(s.clearAll, style: textStyle), ], ), ), @@ -401,7 +401,7 @@ class __PlaylistSettingState extends State<_PlaylistSetting> { children: [ Icon(Icons.info_outline, size: 16, color: context.textColor.withAlpha(90)), - Text('This is the default queue, can\'t be removed.', + Text(s.defaultQueueReminder, style: TextStyle(color: context.textColor.withAlpha(90))), ], ), diff --git a/pubspec.yaml b/pubspec.yaml index f6f9916..f4b7da0 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -32,8 +32,8 @@ dependencies: flutter_html: ^0.11.1 fluttertoast: ^4.0.1 flutter_isolate: ^1.0.0+14 - flutter_linkify: ^3.1.3 - flutter_file_dialog: ^1.0.0 + flutter_linkify: ^4.0.2 + flutter_file_dialog: ^0.0.5 flare_flutter: ^2.0.6 fl_chart: ^0.12.2 marquee: ^1.6.1