Localize support, add zh_hans support
This commit is contained in:
parent
6ad2c7dc44
commit
7e365dbb87
|
@ -16,16 +16,20 @@ import 'package:intl/message_lookup_by_library.dart';
|
|||
import 'package:intl/src/intl_helpers.dart';
|
||||
|
||||
import 'messages_en.dart' as messages_en;
|
||||
import 'messages_zh-Hans.dart' as messages_zh_hans;
|
||||
|
||||
typedef Future<dynamic> LibraryLoader();
|
||||
Map<String, LibraryLoader> _deferredLibraries = {
|
||||
'en': () => new Future.value(null),
|
||||
'zh_Hans': () => new Future.value(null),
|
||||
};
|
||||
|
||||
MessageLookupByLibrary _findExact(String localeName) {
|
||||
switch (localeName) {
|
||||
case 'en':
|
||||
return messages_en.messages;
|
||||
case 'zh_Hans':
|
||||
return messages_zh_hans.messages;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -21,18 +21,124 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||
|
||||
final messages = _notInlinedMessages(_notInlinedMessages);
|
||||
static _notInlinedMessages(_) => <String, Function> {
|
||||
"all" : MessageLookupByLibrary.simpleMessage("All"),
|
||||
"cancel" : MessageLookupByLibrary.simpleMessage("Cancel"),
|
||||
"chooseA" : MessageLookupByLibrary.simpleMessage("Choose a"),
|
||||
"color" : MessageLookupByLibrary.simpleMessage("color"),
|
||||
"confirm" : MessageLookupByLibrary.simpleMessage("Confirm"),
|
||||
"darkMode" : MessageLookupByLibrary.simpleMessage("Dark mode"),
|
||||
"delete" : MessageLookupByLibrary.simpleMessage("Delete"),
|
||||
"download" : MessageLookupByLibrary.simpleMessage("Download"),
|
||||
"editName" : MessageLookupByLibrary.simpleMessage("Edit name"),
|
||||
"endOfEpisode" : MessageLookupByLibrary.simpleMessage("End of Episode"),
|
||||
"feedbackEmail" : MessageLookupByLibrary.simpleMessage("Write to me"),
|
||||
"feedbackGithub" : MessageLookupByLibrary.simpleMessage("Submit issue"),
|
||||
"feedbackPlay" : MessageLookupByLibrary.simpleMessage("Rate on Play"),
|
||||
"feedbackTelegram" : MessageLookupByLibrary.simpleMessage("Join group"),
|
||||
"from" : MessageLookupByLibrary.simpleMessage("From"),
|
||||
"groups" : MessageLookupByLibrary.simpleMessage("Groups"),
|
||||
"homeGroupsSeeAll" : MessageLookupByLibrary.simpleMessage("See All"),
|
||||
"homeMenuPlaylist" : MessageLookupByLibrary.simpleMessage("Playlist"),
|
||||
"homeSubMenuDownloaded" : MessageLookupByLibrary.simpleMessage("Downloaded"),
|
||||
"homeSubMenuLikeData" : MessageLookupByLibrary.simpleMessage("Like Date"),
|
||||
"homeSubMenuSortBy" : MessageLookupByLibrary.simpleMessage("Sort by"),
|
||||
"homeSubMenuUpdateDate" : MessageLookupByLibrary.simpleMessage("UpdateDate"),
|
||||
"homeTabMenuDownload" : MessageLookupByLibrary.simpleMessage("Download"),
|
||||
"homeSubMenuUpdateDate" : MessageLookupByLibrary.simpleMessage("Update Date"),
|
||||
"homeTabMenuFavotite" : MessageLookupByLibrary.simpleMessage("Favorite"),
|
||||
"homeTabMenuRecent" : MessageLookupByLibrary.simpleMessage("Recent"),
|
||||
"homeToprightMenuAbout" : MessageLookupByLibrary.simpleMessage("About"),
|
||||
"homeToprightMenuImportOMPL" : MessageLookupByLibrary.simpleMessage("Import OMPL"),
|
||||
"homeToprightMenuRefreshAll" : MessageLookupByLibrary.simpleMessage("Refresh all"),
|
||||
"homeToprightMenuSettings" : MessageLookupByLibrary.simpleMessage("Settings")
|
||||
"homeToprightMenuSettings" : MessageLookupByLibrary.simpleMessage("Settings"),
|
||||
"later" : MessageLookupByLibrary.simpleMessage("Later"),
|
||||
"lightMode" : MessageLookupByLibrary.simpleMessage("Light mode"),
|
||||
"like" : MessageLookupByLibrary.simpleMessage("Like"),
|
||||
"liked" : MessageLookupByLibrary.simpleMessage("Liked"),
|
||||
"listen" : MessageLookupByLibrary.simpleMessage("Listen"),
|
||||
"listened" : MessageLookupByLibrary.simpleMessage("Listened"),
|
||||
"markListened" : MessageLookupByLibrary.simpleMessage("Mark listened"),
|
||||
"menu" : MessageLookupByLibrary.simpleMessage("Menu"),
|
||||
"menuAllPodcasts" : MessageLookupByLibrary.simpleMessage("All podcasts"),
|
||||
"menuMarkAllListened" : MessageLookupByLibrary.simpleMessage("Mark All Listened"),
|
||||
"menuMarkListened" : MessageLookupByLibrary.simpleMessage("Mark Listened"),
|
||||
"menuViewRSS" : MessageLookupByLibrary.simpleMessage("Visit RSS Feed"),
|
||||
"menuVisitSite" : MessageLookupByLibrary.simpleMessage("Visit Site"),
|
||||
"network" : MessageLookupByLibrary.simpleMessage("Network"),
|
||||
"newGroup" : MessageLookupByLibrary.simpleMessage("Create new group"),
|
||||
"play" : MessageLookupByLibrary.simpleMessage("Play"),
|
||||
"popupMenuDownloadDes" : MessageLookupByLibrary.simpleMessage("Download episode"),
|
||||
"popupMenuLaterDes" : MessageLookupByLibrary.simpleMessage("Add episode to playlist"),
|
||||
"popupMenuLikeDes" : MessageLookupByLibrary.simpleMessage("Add episode to favorite"),
|
||||
"popupMenuMarkDes" : MessageLookupByLibrary.simpleMessage("Mark episode as listened"),
|
||||
"popupMenuPlayDes" : MessageLookupByLibrary.simpleMessage("Play the episode"),
|
||||
"remove" : MessageLookupByLibrary.simpleMessage("Remove"),
|
||||
"schedule" : MessageLookupByLibrary.simpleMessage("Schedule"),
|
||||
"searchPodcast" : MessageLookupByLibrary.simpleMessage("Search podcast"),
|
||||
"settingStorage" : MessageLookupByLibrary.simpleMessage("Storage"),
|
||||
"settingsAccentColor" : MessageLookupByLibrary.simpleMessage("Accent color"),
|
||||
"settingsAccentColorDes" : MessageLookupByLibrary.simpleMessage("Include the ovelay color"),
|
||||
"settingsAppIntro" : MessageLookupByLibrary.simpleMessage("App Intro"),
|
||||
"settingsAppearance" : MessageLookupByLibrary.simpleMessage("Appearance"),
|
||||
"settingsAppearanceDes" : MessageLookupByLibrary.simpleMessage("Colors and themes"),
|
||||
"settingsAudioCache" : MessageLookupByLibrary.simpleMessage("Audio cache"),
|
||||
"settingsAudioCacheDes" : MessageLookupByLibrary.simpleMessage("Audio cache max size"),
|
||||
"settingsAutoDelete" : MessageLookupByLibrary.simpleMessage("Auto delete downloads after"),
|
||||
"settingsAutoDeleteDes" : MessageLookupByLibrary.simpleMessage("Default 30 days"),
|
||||
"settingsAutoPlayDes" : MessageLookupByLibrary.simpleMessage("Auto play next episode in playlist"),
|
||||
"settingsDefaultGrid" : MessageLookupByLibrary.simpleMessage("Default grid view"),
|
||||
"settingsDefaultGridDownload" : MessageLookupByLibrary.simpleMessage("Download tab"),
|
||||
"settingsDefaultGridFavorite" : MessageLookupByLibrary.simpleMessage("Favorite tab"),
|
||||
"settingsDefaultGridPodcast" : MessageLookupByLibrary.simpleMessage("Podcast page"),
|
||||
"settingsDefaultGridRecent" : MessageLookupByLibrary.simpleMessage("Recent tab"),
|
||||
"settingsDiscovery" : MessageLookupByLibrary.simpleMessage("Discovery Features Again"),
|
||||
"settingsEnableSyncing" : MessageLookupByLibrary.simpleMessage("Enable Syncing"),
|
||||
"settingsEnableSyncingDes" : MessageLookupByLibrary.simpleMessage("Refresh all podcasts in the background to get leatest episodes"),
|
||||
"settingsExport" : MessageLookupByLibrary.simpleMessage("Export"),
|
||||
"settingsExportDes" : MessageLookupByLibrary.simpleMessage("Export OMPL file of all podcasts"),
|
||||
"settingsFeedback" : MessageLookupByLibrary.simpleMessage("Feedback"),
|
||||
"settingsFeedbackDes" : MessageLookupByLibrary.simpleMessage("Bugs and feature request"),
|
||||
"settingsHistory" : MessageLookupByLibrary.simpleMessage("History"),
|
||||
"settingsHistoryDes" : MessageLookupByLibrary.simpleMessage("Listen date"),
|
||||
"settingsInfo" : MessageLookupByLibrary.simpleMessage("Info"),
|
||||
"settingsInterface" : MessageLookupByLibrary.simpleMessage("Interface"),
|
||||
"settingsLayout" : MessageLookupByLibrary.simpleMessage("Layout"),
|
||||
"settingsLayoutDes" : MessageLookupByLibrary.simpleMessage("App layout"),
|
||||
"settingsLibraries" : MessageLookupByLibrary.simpleMessage("Libraries"),
|
||||
"settingsLibrariesDes" : MessageLookupByLibrary.simpleMessage("Open source libraries used in app"),
|
||||
"settingsManageDownload" : MessageLookupByLibrary.simpleMessage("Manage download"),
|
||||
"settingsManageDownloadDes" : MessageLookupByLibrary.simpleMessage("Manage downloaded audio files"),
|
||||
"settingsMenuAutoPlay" : MessageLookupByLibrary.simpleMessage("Auto play next"),
|
||||
"settingsNetworkCellular" : MessageLookupByLibrary.simpleMessage("Ask before using cellular data"),
|
||||
"settingsNetworkCellularAuto" : MessageLookupByLibrary.simpleMessage("Auto download using cellular data"),
|
||||
"settingsNetworkCellularAutoDes" : MessageLookupByLibrary.simpleMessage("You can set podcast auto download in group manage page"),
|
||||
"settingsNetworkCellularDes" : MessageLookupByLibrary.simpleMessage("Ask to confirm when using cellulae data to download episodes"),
|
||||
"settingsPlayDes" : MessageLookupByLibrary.simpleMessage("Playlist and player"),
|
||||
"settingsPopupMenu" : MessageLookupByLibrary.simpleMessage("Episodes popup menu"),
|
||||
"settingsPopupMenuDes" : MessageLookupByLibrary.simpleMessage("Change the popup menu of episode"),
|
||||
"settingsPrefrence" : MessageLookupByLibrary.simpleMessage("Prefrence"),
|
||||
"settingsRealDark" : MessageLookupByLibrary.simpleMessage("Real dark"),
|
||||
"settingsRealDarkDes" : MessageLookupByLibrary.simpleMessage("Turn on if you think the night is not dark enough"),
|
||||
"settingsSTAuto" : MessageLookupByLibrary.simpleMessage("Auto turn on sleep timer"),
|
||||
"settingsSTAutoDes" : MessageLookupByLibrary.simpleMessage("Auto start sleep timer at scheduled time"),
|
||||
"settingsSTDefaultTime" : MessageLookupByLibrary.simpleMessage("Default time"),
|
||||
"settingsSTDefautTimeDes" : MessageLookupByLibrary.simpleMessage("Default time for sleep timer"),
|
||||
"settingsSTMode" : MessageLookupByLibrary.simpleMessage("Auto sleep timer mode"),
|
||||
"settingsStorageDes" : MessageLookupByLibrary.simpleMessage("Manange cache and download storage"),
|
||||
"settingsSyncing" : MessageLookupByLibrary.simpleMessage("Syncing"),
|
||||
"settingsSyncingDes" : MessageLookupByLibrary.simpleMessage("Refresh podcasts in the background"),
|
||||
"settingsTheme" : MessageLookupByLibrary.simpleMessage("Theme"),
|
||||
"settingsUpdateInterval" : MessageLookupByLibrary.simpleMessage("Update interval"),
|
||||
"settingsUpdateIntervalDes" : MessageLookupByLibrary.simpleMessage("Default 24 hours"),
|
||||
"sleepTimer" : MessageLookupByLibrary.simpleMessage("Sleep timer"),
|
||||
"subscribe" : MessageLookupByLibrary.simpleMessage("Subscribe"),
|
||||
"systemDefault" : MessageLookupByLibrary.simpleMessage("System default"),
|
||||
"to" : MessageLookupByLibrary.simpleMessage("To"),
|
||||
"toastAddPlaylist" : MessageLookupByLibrary.simpleMessage("Added to playlist"),
|
||||
"toastDescovery" : MessageLookupByLibrary.simpleMessage("Discovery feature reopened, pleast restart the app"),
|
||||
"toastFileError" : MessageLookupByLibrary.simpleMessage("File error, Subscribe failed"),
|
||||
"toastFileNotVilid" : MessageLookupByLibrary.simpleMessage("File not vilid"),
|
||||
"toastReadFile" : MessageLookupByLibrary.simpleMessage("Read file successfully"),
|
||||
"toastRemovePlaylist" : MessageLookupByLibrary.simpleMessage("Removed from playlist"),
|
||||
"unlike" : MessageLookupByLibrary.simpleMessage("Unlike"),
|
||||
"unliked" : MessageLookupByLibrary.simpleMessage("Unliked")
|
||||
};
|
||||
}
|
||||
|
|
|
@ -0,0 +1,144 @@
|
|||
// DO NOT EDIT. This is code generated via package:intl/generate_localized.dart
|
||||
// This is a library that provides messages for a zh_Hans 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 => 'zh_Hans';
|
||||
|
||||
final messages = _notInlinedMessages(_notInlinedMessages);
|
||||
static _notInlinedMessages(_) => <String, Function> {
|
||||
"all" : MessageLookupByLibrary.simpleMessage("全部"),
|
||||
"cancel" : MessageLookupByLibrary.simpleMessage("取消"),
|
||||
"chooseA" : MessageLookupByLibrary.simpleMessage("选择"),
|
||||
"color" : MessageLookupByLibrary.simpleMessage("颜色"),
|
||||
"confirm" : MessageLookupByLibrary.simpleMessage("确认"),
|
||||
"darkMode" : MessageLookupByLibrary.simpleMessage("夜晚模式"),
|
||||
"delete" : MessageLookupByLibrary.simpleMessage("删除"),
|
||||
"download" : MessageLookupByLibrary.simpleMessage("下载"),
|
||||
"editName" : MessageLookupByLibrary.simpleMessage("修改组名"),
|
||||
"endOfEpisode" : MessageLookupByLibrary.simpleMessage("节目结束"),
|
||||
"feedbackEmail" : MessageLookupByLibrary.simpleMessage("发送邮件"),
|
||||
"feedbackGithub" : MessageLookupByLibrary.simpleMessage("提交Issue"),
|
||||
"feedbackPlay" : MessageLookupByLibrary.simpleMessage("Play评价"),
|
||||
"feedbackTelegram" : MessageLookupByLibrary.simpleMessage("加入小组"),
|
||||
"from" : MessageLookupByLibrary.simpleMessage("自"),
|
||||
"groups" : MessageLookupByLibrary.simpleMessage("分组"),
|
||||
"homeGroupsSeeAll" : MessageLookupByLibrary.simpleMessage("查看全部"),
|
||||
"homeMenuPlaylist" : MessageLookupByLibrary.simpleMessage("播放列表"),
|
||||
"homeSubMenuDownloaded" : MessageLookupByLibrary.simpleMessage("已下载"),
|
||||
"homeSubMenuLikeData" : MessageLookupByLibrary.simpleMessage("添加日期"),
|
||||
"homeSubMenuSortBy" : MessageLookupByLibrary.simpleMessage("排序"),
|
||||
"homeSubMenuUpdateDate" : MessageLookupByLibrary.simpleMessage("更新日期"),
|
||||
"homeTabMenuFavotite" : MessageLookupByLibrary.simpleMessage("收藏"),
|
||||
"homeTabMenuRecent" : MessageLookupByLibrary.simpleMessage("最近更新"),
|
||||
"homeToprightMenuAbout" : MessageLookupByLibrary.simpleMessage("关于"),
|
||||
"homeToprightMenuImportOMPL" : MessageLookupByLibrary.simpleMessage("导入OMPL"),
|
||||
"homeToprightMenuRefreshAll" : MessageLookupByLibrary.simpleMessage("全部刷新"),
|
||||
"homeToprightMenuSettings" : MessageLookupByLibrary.simpleMessage("设置"),
|
||||
"later" : MessageLookupByLibrary.simpleMessage("稍后"),
|
||||
"lightMode" : MessageLookupByLibrary.simpleMessage("明亮模式"),
|
||||
"like" : MessageLookupByLibrary.simpleMessage("喜欢"),
|
||||
"liked" : MessageLookupByLibrary.simpleMessage("已收藏"),
|
||||
"listen" : MessageLookupByLibrary.simpleMessage("收听"),
|
||||
"listened" : MessageLookupByLibrary.simpleMessage("已收听"),
|
||||
"markListened" : MessageLookupByLibrary.simpleMessage("标记已收听"),
|
||||
"menu" : MessageLookupByLibrary.simpleMessage("菜单"),
|
||||
"menuAllPodcasts" : MessageLookupByLibrary.simpleMessage("所有订阅"),
|
||||
"menuMarkAllListened" : MessageLookupByLibrary.simpleMessage("标记所有已收听"),
|
||||
"menuMarkListened" : MessageLookupByLibrary.simpleMessage("标记已收听"),
|
||||
"menuViewRSS" : MessageLookupByLibrary.simpleMessage("查看 RSS"),
|
||||
"menuVisitSite" : MessageLookupByLibrary.simpleMessage("访问网站"),
|
||||
"network" : MessageLookupByLibrary.simpleMessage("网络"),
|
||||
"newGroup" : MessageLookupByLibrary.simpleMessage("创建分组"),
|
||||
"play" : MessageLookupByLibrary.simpleMessage("播放"),
|
||||
"popupMenuDownloadDes" : MessageLookupByLibrary.simpleMessage("下载节目"),
|
||||
"popupMenuLaterDes" : MessageLookupByLibrary.simpleMessage("添加到播放列表"),
|
||||
"popupMenuLikeDes" : MessageLookupByLibrary.simpleMessage("添加到收藏"),
|
||||
"popupMenuMarkDes" : MessageLookupByLibrary.simpleMessage("设置为已收听"),
|
||||
"popupMenuPlayDes" : MessageLookupByLibrary.simpleMessage("播放节目"),
|
||||
"remove" : MessageLookupByLibrary.simpleMessage("移除"),
|
||||
"schedule" : MessageLookupByLibrary.simpleMessage("定时"),
|
||||
"searchPodcast" : MessageLookupByLibrary.simpleMessage("搜索播客"),
|
||||
"settingStorage" : MessageLookupByLibrary.simpleMessage("储存空间"),
|
||||
"settingsAccentColor" : MessageLookupByLibrary.simpleMessage("次要颜色"),
|
||||
"settingsAccentColorDes" : MessageLookupByLibrary.simpleMessage("包括溢出颜色"),
|
||||
"settingsAppIntro" : MessageLookupByLibrary.simpleMessage("引导页"),
|
||||
"settingsAppearance" : MessageLookupByLibrary.simpleMessage("界面"),
|
||||
"settingsAppearanceDes" : MessageLookupByLibrary.simpleMessage("颜色与主题"),
|
||||
"settingsAudioCache" : MessageLookupByLibrary.simpleMessage("播放缓存"),
|
||||
"settingsAudioCacheDes" : MessageLookupByLibrary.simpleMessage("播放缓存设置"),
|
||||
"settingsAutoDelete" : MessageLookupByLibrary.simpleMessage("自动删除下载节目"),
|
||||
"settingsAutoDeleteDes" : MessageLookupByLibrary.simpleMessage("默认 30 天"),
|
||||
"settingsAutoPlayDes" : MessageLookupByLibrary.simpleMessage("自动播放下一节目"),
|
||||
"settingsDefaultGrid" : MessageLookupByLibrary.simpleMessage("默认布局"),
|
||||
"settingsDefaultGridDownload" : MessageLookupByLibrary.simpleMessage("下载页"),
|
||||
"settingsDefaultGridFavorite" : MessageLookupByLibrary.simpleMessage("收藏页"),
|
||||
"settingsDefaultGridPodcast" : MessageLookupByLibrary.simpleMessage("播客页"),
|
||||
"settingsDefaultGridRecent" : MessageLookupByLibrary.simpleMessage("最近页"),
|
||||
"settingsDiscovery" : MessageLookupByLibrary.simpleMessage("再次功能介绍"),
|
||||
"settingsEnableSyncing" : MessageLookupByLibrary.simpleMessage("开启自动更新"),
|
||||
"settingsEnableSyncingDes" : MessageLookupByLibrary.simpleMessage("在后台更新所有订阅播客"),
|
||||
"settingsExport" : MessageLookupByLibrary.simpleMessage("导出"),
|
||||
"settingsExportDes" : MessageLookupByLibrary.simpleMessage("导出 OMPL 文件"),
|
||||
"settingsFeedback" : MessageLookupByLibrary.simpleMessage("反馈"),
|
||||
"settingsFeedbackDes" : MessageLookupByLibrary.simpleMessage("意见与建议"),
|
||||
"settingsHistory" : MessageLookupByLibrary.simpleMessage("历史记录"),
|
||||
"settingsHistoryDes" : MessageLookupByLibrary.simpleMessage("播放日期"),
|
||||
"settingsInfo" : MessageLookupByLibrary.simpleMessage("信息"),
|
||||
"settingsInterface" : MessageLookupByLibrary.simpleMessage("界面"),
|
||||
"settingsLayout" : MessageLookupByLibrary.simpleMessage("布局"),
|
||||
"settingsLayoutDes" : MessageLookupByLibrary.simpleMessage("应用布局"),
|
||||
"settingsLibraries" : MessageLookupByLibrary.simpleMessage("开源"),
|
||||
"settingsLibrariesDes" : MessageLookupByLibrary.simpleMessage("使用开源项目"),
|
||||
"settingsManageDownload" : MessageLookupByLibrary.simpleMessage("下载管理"),
|
||||
"settingsManageDownloadDes" : MessageLookupByLibrary.simpleMessage("管理下载节目文件"),
|
||||
"settingsMenuAutoPlay" : MessageLookupByLibrary.simpleMessage("自动播放下一节目"),
|
||||
"settingsNetworkCellular" : MessageLookupByLibrary.simpleMessage("蜂窝数据确认"),
|
||||
"settingsNetworkCellularAuto" : MessageLookupByLibrary.simpleMessage("是否用蜂窝数据自动下载"),
|
||||
"settingsNetworkCellularAutoDes" : MessageLookupByLibrary.simpleMessage("你可以在分组管理页面设置自动下载"),
|
||||
"settingsNetworkCellularDes" : MessageLookupByLibrary.simpleMessage("在使用蜂窝数据下载前确认"),
|
||||
"settingsPlayDes" : MessageLookupByLibrary.simpleMessage("播放列表和播放器"),
|
||||
"settingsPopupMenu" : MessageLookupByLibrary.simpleMessage("节目弹出菜单"),
|
||||
"settingsPopupMenuDes" : MessageLookupByLibrary.simpleMessage("修改节目弹出菜单"),
|
||||
"settingsPrefrence" : MessageLookupByLibrary.simpleMessage("首选项"),
|
||||
"settingsRealDark" : MessageLookupByLibrary.simpleMessage("真的黑"),
|
||||
"settingsRealDarkDes" : MessageLookupByLibrary.simpleMessage("如果夜不够黑,请开启"),
|
||||
"settingsSTAuto" : MessageLookupByLibrary.simpleMessage("自动睡眠模式"),
|
||||
"settingsSTAutoDes" : MessageLookupByLibrary.simpleMessage("定期开启睡眠模式"),
|
||||
"settingsSTDefaultTime" : MessageLookupByLibrary.simpleMessage("默认时长"),
|
||||
"settingsSTDefautTimeDes" : MessageLookupByLibrary.simpleMessage("睡眠模式默认时长"),
|
||||
"settingsSTMode" : MessageLookupByLibrary.simpleMessage("自动睡眠模式默认时长"),
|
||||
"settingsStorageDes" : MessageLookupByLibrary.simpleMessage("管理缓存和下载空间"),
|
||||
"settingsSyncing" : MessageLookupByLibrary.simpleMessage("同步"),
|
||||
"settingsSyncingDes" : MessageLookupByLibrary.simpleMessage("在后台更新播客"),
|
||||
"settingsTheme" : MessageLookupByLibrary.simpleMessage("主题"),
|
||||
"settingsUpdateInterval" : MessageLookupByLibrary.simpleMessage("更新频率"),
|
||||
"settingsUpdateIntervalDes" : MessageLookupByLibrary.simpleMessage("默认 24 小时"),
|
||||
"sleepTimer" : MessageLookupByLibrary.simpleMessage("睡眠模式"),
|
||||
"subscribe" : MessageLookupByLibrary.simpleMessage("订阅"),
|
||||
"systemDefault" : MessageLookupByLibrary.simpleMessage("系统默认"),
|
||||
"to" : MessageLookupByLibrary.simpleMessage("到"),
|
||||
"toastAddPlaylist" : MessageLookupByLibrary.simpleMessage("添加到播放列表"),
|
||||
"toastDescovery" : MessageLookupByLibrary.simpleMessage("重启应用后可查看"),
|
||||
"toastFileError" : MessageLookupByLibrary.simpleMessage("文件错误,导入失败"),
|
||||
"toastFileNotVilid" : MessageLookupByLibrary.simpleMessage("文件错误"),
|
||||
"toastReadFile" : MessageLookupByLibrary.simpleMessage("读取文件成功"),
|
||||
"toastRemovePlaylist" : MessageLookupByLibrary.simpleMessage("从播放列表移除"),
|
||||
"unlike" : MessageLookupByLibrary.simpleMessage("取消喜欢"),
|
||||
"unliked" : MessageLookupByLibrary.simpleMessage("从收藏移除")
|
||||
};
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -20,7 +20,6 @@ import '../util/customslider.dart';
|
|||
import '../episodes/episodedetail.dart';
|
||||
import 'playlist.dart';
|
||||
import 'audiopanel.dart';
|
||||
import 'share.dart';
|
||||
|
||||
final List<BoxShadow> _customShadow = [
|
||||
BoxShadow(blurRadius: 26, offset: Offset(-6, -6), color: Colors.white),
|
||||
|
|
|
@ -94,6 +94,7 @@ class _HomeState extends State<Home> with SingleTickerProviderStateMixin {
|
|||
Widget build(BuildContext context) {
|
||||
double width = MediaQuery.of(context).size.width;
|
||||
double height = (width - 20) / 3 + 140;
|
||||
final s = context.s;
|
||||
return AnnotatedRegion<SystemUiOverlayStyle>(
|
||||
value: SystemUiOverlayStyle(
|
||||
systemNavigationBarIconBrightness:
|
||||
|
@ -342,13 +343,13 @@ class _HomeState extends State<Home> with SingleTickerProviderStateMixin {
|
|||
controller: _controller,
|
||||
tabs: <Widget>[
|
||||
Tab(
|
||||
child: Text('Recent'),
|
||||
child: Text(s.homeTabMenuRecent),
|
||||
),
|
||||
Tab(
|
||||
child: Text('Favorite'),
|
||||
child: Text(s.homeTabMenuFavotite),
|
||||
),
|
||||
Tab(
|
||||
child: Text('Download'),
|
||||
child: Text(s.download),
|
||||
)
|
||||
],
|
||||
),
|
||||
|
@ -547,6 +548,7 @@ class PlaylistButtonState extends State<PlaylistButton> {
|
|||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var audio = Provider.of<AudioPlayerNotifier>(context, listen: false);
|
||||
final s = context.s;
|
||||
return MyPopupMenuButton<int>(
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.all(Radius.circular(10))),
|
||||
|
@ -651,7 +653,7 @@ class PlaylistButtonState extends State<PlaylistButton> {
|
|||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 5.0),
|
||||
),
|
||||
Text('Playlist'),
|
||||
Text(s.homeMenuPlaylist),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
@ -727,6 +729,7 @@ class _RecentUpdateState extends State<_RecentUpdate>
|
|||
Widget build(BuildContext context) {
|
||||
super.build(context);
|
||||
var audio = Provider.of<AudioPlayerNotifier>(context, listen: false);
|
||||
final s = context.s;
|
||||
return Selector<SubscribeWorker, bool>(
|
||||
selector: (_, worker) => worker.created,
|
||||
builder: (context, created, child) {
|
||||
|
@ -1050,6 +1053,7 @@ class _MyFavoriteState extends State<_MyFavorite>
|
|||
@override
|
||||
Widget build(BuildContext context) {
|
||||
super.build(context);
|
||||
final s = context.s;
|
||||
return Selector<AudioPlayerNotifier, bool>(
|
||||
selector: (_, audio) => audio.episodeState,
|
||||
builder: (context, episodeState, child) {
|
||||
|
@ -1108,7 +1112,7 @@ class _MyFavoriteState extends State<_MyFavorite>
|
|||
mainAxisSize:
|
||||
MainAxisSize.min,
|
||||
children: <Widget>[
|
||||
Text('Sory by'),
|
||||
Text(s.homeSubMenuSortBy),
|
||||
Padding(
|
||||
padding:
|
||||
EdgeInsets.symmetric(
|
||||
|
@ -1259,6 +1263,7 @@ class _MyDownloadState extends State<_MyDownload>
|
|||
@override
|
||||
Widget build(BuildContext context) {
|
||||
super.build(context);
|
||||
final s = context.s;
|
||||
return CustomScrollView(
|
||||
key: PageStorageKey<String>('download_list'),
|
||||
slivers: <Widget>[
|
||||
|
@ -1273,7 +1278,7 @@ class _MyDownloadState extends State<_MyDownload>
|
|||
children: <Widget>[
|
||||
Container(
|
||||
padding: EdgeInsets.symmetric(horizontal: 20),
|
||||
child: Text('Downloaded')),
|
||||
child: Text(s.homeSubMenuDownloaded)),
|
||||
Spacer(),
|
||||
Material(
|
||||
color: Colors.transparent,
|
||||
|
|
|
@ -7,7 +7,6 @@ import 'package:focused_menu/focused_menu.dart';
|
|||
import 'package:focused_menu/modals.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fluttertoast/fluttertoast.dart';
|
||||
import 'package:tsacdop/util/episodegrid.dart';
|
||||
import 'package:tuple/tuple.dart';
|
||||
import 'package:line_icons/line_icons.dart';
|
||||
|
||||
|
|
|
@ -15,6 +15,7 @@ import 'package:intl/intl.dart';
|
|||
import '../settings/settting.dart';
|
||||
import '../state/refresh_podcast.dart';
|
||||
import '../state/subscribe_podcast.dart';
|
||||
import '../util/context_extension.dart';
|
||||
import 'about.dart';
|
||||
|
||||
class OmplOutline {
|
||||
|
@ -70,7 +71,7 @@ class _PopupMenuState extends State<PopupMenu> {
|
|||
Widget build(BuildContext context) {
|
||||
var refreshWorker = Provider.of<RefreshWorker>(context, listen: false);
|
||||
var subscribeWorker = Provider.of<SubscribeWorker>(context, listen: false);
|
||||
|
||||
final s = context.s;
|
||||
void _saveOmpl(String path) async {
|
||||
File file = File(path);
|
||||
try {
|
||||
|
@ -150,7 +151,7 @@ class _PopupMenuState extends State<PopupMenu> {
|
|||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: <Widget>[
|
||||
Text(
|
||||
'Refresh All',
|
||||
s.homeToprightMenuRefreshAll,
|
||||
),
|
||||
FutureBuilder<String>(
|
||||
future: _getRefreshDate(),
|
||||
|
@ -179,7 +180,7 @@ class _PopupMenuState extends State<PopupMenu> {
|
|||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 5.0),
|
||||
),
|
||||
Text('Import OMPL'),
|
||||
Text(s.homeToprightMenuImportOMPL),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
@ -194,7 +195,7 @@ class _PopupMenuState extends State<PopupMenu> {
|
|||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 5.0),
|
||||
),
|
||||
Text('Settings'),
|
||||
Text(s.homeToprightMenuSettings),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
@ -209,7 +210,7 @@ class _PopupMenuState extends State<PopupMenu> {
|
|||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 5.0),
|
||||
),
|
||||
Text('About'),
|
||||
Text(s.homeToprightMenuAbout),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
|
|
@ -1,15 +1,241 @@
|
|||
{
|
||||
"homeToprightMenuRefreshAll": "Refresh all",
|
||||
"homeToprightMenuImportOMPL": "Import OMPL",
|
||||
"homeToprightMenuSettings": "Settings",
|
||||
"homeToprightMenuAbout": "About",
|
||||
"homeGroupsSeeAll": "See All",
|
||||
"homeTabMenuRecent": "Recent",
|
||||
"homeTabMenuFavotite": "Favorite",
|
||||
"homeTabMenuDownload": "Download",
|
||||
"homeMenuPlaylist": "Playlist",
|
||||
"homeSubMenuSortBy": "Sort by",
|
||||
"homeSubMenuUpdateDate": "UpdateDate",
|
||||
"homeSubMenuLikeData": "Like Date",
|
||||
"homeSubMenuDownloaded": "Downloaded"
|
||||
"@@locale": "en",
|
||||
"all": "All",
|
||||
"@all": {},
|
||||
"cancel": "Cancel",
|
||||
"@cancel": {},
|
||||
"chooseA": "Choose a",
|
||||
"@chooseA": {},
|
||||
"color": "color",
|
||||
"@color": {},
|
||||
"confirm": "Confirm",
|
||||
"@confirm": {},
|
||||
"darkMode": "Dark mode",
|
||||
"@darkMode": {},
|
||||
"delete": "Delete",
|
||||
"@delete": {},
|
||||
"download": "Download",
|
||||
"@download": {},
|
||||
"editName": "Edit name",
|
||||
"@editName": {},
|
||||
"endOfEpisode": "End of Episode",
|
||||
"@endOfEpisode": {},
|
||||
"feedbackEmail": "Write to me",
|
||||
"@feedbackEmail": {},
|
||||
"feedbackGithub": "Submit issue",
|
||||
"@feedbackGithub": {},
|
||||
"feedbackPlay": "Rate on Play",
|
||||
"@feedbackPlay": {},
|
||||
"feedbackTelegram": "Join group",
|
||||
"@feedbackTelegram": {},
|
||||
"from": "From",
|
||||
"@from": {},
|
||||
"groups": "Groups",
|
||||
"@groups": {},
|
||||
"homeGroupsSeeAll": "See All",
|
||||
"@homeGroupsSeeAll": {},
|
||||
"homeMenuPlaylist": "Playlist",
|
||||
"@homeMenuPlaylist": {},
|
||||
"homeSubMenuDownloaded": "Downloaded",
|
||||
"@homeSubMenuDownloaded": {},
|
||||
"homeSubMenuLikeData": "Like Date",
|
||||
"@homeSubMenuLikeData": {},
|
||||
"homeSubMenuSortBy": "Sort by",
|
||||
"@homeSubMenuSortBy": {},
|
||||
"homeSubMenuUpdateDate": "Update Date",
|
||||
"@homeSubMenuUpdateDate": {},
|
||||
"homeTabMenuFavotite": "Favorite",
|
||||
"@homeTabMenuFavotite": {},
|
||||
"homeTabMenuRecent": "Recent",
|
||||
"@homeTabMenuRecent": {},
|
||||
"homeToprightMenuAbout": "About",
|
||||
"@homeToprightMenuAbout": {},
|
||||
"homeToprightMenuImportOMPL": "Import OMPL",
|
||||
"@homeToprightMenuImportOMPL": {},
|
||||
"homeToprightMenuRefreshAll": "Refresh all",
|
||||
"@homeToprightMenuRefreshAll": {},
|
||||
"homeToprightMenuSettings": "Settings",
|
||||
"@homeToprightMenuSettings": {},
|
||||
"later": "Later",
|
||||
"@later": {},
|
||||
"lightMode": "Light mode",
|
||||
"@lightMode": {},
|
||||
"like": "Like",
|
||||
"@like": {},
|
||||
"liked": "Liked",
|
||||
"@liked": {},
|
||||
"listen": "Listen",
|
||||
"@listen": {},
|
||||
"listened": "Listened",
|
||||
"@listened": {},
|
||||
"markListened": "Mark listened",
|
||||
"@markListened": {},
|
||||
"menu": "Menu",
|
||||
"@menu": {},
|
||||
"menuAllPodcasts": "All podcasts",
|
||||
"@menuAllPodcasts": {},
|
||||
"menuMarkAllListened": "Mark All Listened",
|
||||
"@menuMarkAllListened": {},
|
||||
"menuMarkListened": "Mark Listened",
|
||||
"@menuMarkListened": {},
|
||||
"menuViewRSS": "Visit RSS Feed",
|
||||
"@menuViewRSS": {},
|
||||
"menuVisitSite": "Visit Site",
|
||||
"@menuVisitSite": {},
|
||||
"network": "Network",
|
||||
"@network": {},
|
||||
"newGroup": "Create new group",
|
||||
"@newGroup": {},
|
||||
"play": "Play",
|
||||
"@play": {},
|
||||
"popupMenuDownloadDes": "Download episode",
|
||||
"@popupMenuDownloadDes": {},
|
||||
"popupMenuLaterDes": "Add episode to playlist",
|
||||
"@popupMenuLaterDes": {},
|
||||
"popupMenuLikeDes": "Add episode to favorite",
|
||||
"@popupMenuLikeDes": {},
|
||||
"popupMenuMarkDes": "Mark episode as listened",
|
||||
"@popupMenuMarkDes": {},
|
||||
"popupMenuPlayDes": "Play the episode",
|
||||
"@popupMenuPlayDes": {},
|
||||
"remove": "Remove",
|
||||
"@remove": {},
|
||||
"schedule": "Schedule",
|
||||
"@schedule": {},
|
||||
"searchPodcast": "Search podcast",
|
||||
"@searchPodcast": {},
|
||||
"settingsAccentColor": "Accent color",
|
||||
"@settingsAccentColor": {},
|
||||
"settingsAccentColorDes": "Include the ovelay color",
|
||||
"@settingsAccentColorDes": {},
|
||||
"settingsAppearance": "Appearance",
|
||||
"@settingsAppearance": {},
|
||||
"settingsAppearanceDes": "Colors and themes",
|
||||
"@settingsAppearanceDes": {},
|
||||
"settingsAppIntro": "App Intro",
|
||||
"@settingsAppIntro": {},
|
||||
"settingsAudioCache": "Audio cache",
|
||||
"@settingsAudioCache": {},
|
||||
"settingsAudioCacheDes": "Audio cache max size",
|
||||
"@settingsAudioCacheDes": {},
|
||||
"settingsAutoDelete": "Auto delete downloads after",
|
||||
"@settingsAutoDelete": {},
|
||||
"settingsAutoDeleteDes": "Default 30 days",
|
||||
"@settingsAutoDeleteDes": {},
|
||||
"settingsAutoPlayDes": "Auto play next episode in playlist",
|
||||
"@settingsAutoPlayDes": {},
|
||||
"settingsDefaultGrid": "Default grid view",
|
||||
"@settingsDefaultGrid": {},
|
||||
"settingsDefaultGridDownload": "Download tab",
|
||||
"@settingsDefaultGridDownload": {},
|
||||
"settingsDefaultGridFavorite": "Favorite tab",
|
||||
"@settingsDefaultGridFavorite": {},
|
||||
"settingsDefaultGridPodcast": "Podcast page",
|
||||
"@settingsDefaultGridPodcast": {},
|
||||
"settingsDefaultGridRecent": "Recent tab",
|
||||
"@settingsDefaultGridRecent": {},
|
||||
"settingsDiscovery": "Discovery Features Again",
|
||||
"@settingsDiscovery": {},
|
||||
"settingsEnableSyncing": "Enable Syncing",
|
||||
"@settingsEnableSyncing": {},
|
||||
"settingsEnableSyncingDes": "Refresh all podcasts in the background to get leatest episodes",
|
||||
"@settingsEnableSyncingDes": {},
|
||||
"settingsExport": "Export",
|
||||
"@settingsExport": {},
|
||||
"settingsExportDes": "Export OMPL file of all podcasts",
|
||||
"@settingsExportDes": {},
|
||||
"settingsFeedback": "Feedback",
|
||||
"@settingsFeedback": {},
|
||||
"settingsFeedbackDes": "Bugs and feature request",
|
||||
"@settingsFeedbackDes": {},
|
||||
"settingsHistory": "History",
|
||||
"@settingsHistory": {},
|
||||
"settingsHistoryDes": "Listen date",
|
||||
"@settingsHistoryDes": {},
|
||||
"settingsInfo": "Info",
|
||||
"@settingsInfo": {},
|
||||
"settingsInterface": "Interface",
|
||||
"@settingsInterface": {},
|
||||
"settingsLayout": "Layout",
|
||||
"@settingsLayout": {},
|
||||
"settingsLayoutDes": "App layout",
|
||||
"@settingsLayoutDes": {},
|
||||
"settingsLibraries": "Libraries",
|
||||
"@settingsLibraries": {},
|
||||
"settingsLibrariesDes": "Open source libraries used in app",
|
||||
"@settingsLibrariesDes": {},
|
||||
"settingsManageDownload": "Manage download",
|
||||
"@settingsManageDownload": {},
|
||||
"settingsManageDownloadDes": "Manage downloaded audio files",
|
||||
"@settingsManageDownloadDes": {},
|
||||
"settingsMenuAutoPlay": "Auto play next",
|
||||
"@settingsMenuAutoPlay": {},
|
||||
"settingsNetworkCellular": "Ask before using cellular data",
|
||||
"@settingsNetworkCellular": {},
|
||||
"settingsNetworkCellularAuto": "Auto download using cellular data",
|
||||
"@settingsNetworkCellularAuto": {},
|
||||
"settingsNetworkCellularAutoDes": "You can set podcast auto download in group manage page",
|
||||
"@settingsNetworkCellularAutoDes": {},
|
||||
"settingsNetworkCellularDes": "Ask to confirm when using cellulae data to download episodes",
|
||||
"@settingsNetworkCellularDes": {},
|
||||
"settingsPlayDes": "Playlist and player",
|
||||
"@settingsPlayDes": {},
|
||||
"settingsPopupMenu": "Episodes popup menu",
|
||||
"@settingsPopupMenu": {},
|
||||
"settingsPopupMenuDes": "Change the popup menu of episode",
|
||||
"@settingsPopupMenuDes": {},
|
||||
"settingsPrefrence": "Prefrence",
|
||||
"@settingsPrefrence": {},
|
||||
"settingsRealDark": "Real dark",
|
||||
"@settingsRealDark": {},
|
||||
"settingsRealDarkDes": "Turn on if you think the night is not dark enough",
|
||||
"@settingsRealDarkDes": {},
|
||||
"settingsSTAuto": "Auto turn on sleep timer",
|
||||
"@settingsSTAuto": {},
|
||||
"settingsSTAutoDes": "Auto start sleep timer at scheduled time",
|
||||
"@settingsSTAutoDes": {},
|
||||
"settingsSTDefaultTime": "Default time",
|
||||
"@settingsSTDefaultTime": {},
|
||||
"settingsSTDefautTimeDes": "Default time for sleep timer",
|
||||
"@settingsSTDefautTimeDes": {},
|
||||
"settingsSTMode": "Auto sleep timer mode",
|
||||
"@settingsSTMode": {},
|
||||
"settingsStorageDes": "Manange cache and download storage",
|
||||
"@settingsStorageDes": {},
|
||||
"settingsSyncing": "Syncing",
|
||||
"@settingsSyncing": {},
|
||||
"settingsSyncingDes": "Refresh podcasts in the background",
|
||||
"@settingsSyncingDes": {},
|
||||
"settingsTheme": "Theme",
|
||||
"@settingsTheme": {},
|
||||
"settingStorage": "Storage",
|
||||
"@settingStorage": {},
|
||||
"settingsUpdateInterval": "Update interval",
|
||||
"@settingsUpdateInterval": {},
|
||||
"settingsUpdateIntervalDes": "Default 24 hours",
|
||||
"@settingsUpdateIntervalDes": {},
|
||||
"sleepTimer": "Sleep timer",
|
||||
"@sleepTimer": {},
|
||||
"subscribe": "Subscribe",
|
||||
"@subscribe": {},
|
||||
"systemDefault": "System default",
|
||||
"@systemDefault": {},
|
||||
"to": "To",
|
||||
"@to": {},
|
||||
"toastAddPlaylist": "Added to playlist",
|
||||
"@toastAddPlaylist": {},
|
||||
"toastDescovery": "Discovery feature reopened, pleast restart the app",
|
||||
"@toastDescovery": {},
|
||||
"toastFileError": "File error, Subscribe failed",
|
||||
"@toastFileError": {},
|
||||
"toastFileNotVilid": "File not vilid",
|
||||
"@toastFileNotVilid": {},
|
||||
"toastReadFile": "Read file successfully",
|
||||
"@toastReadFile": {},
|
||||
"toastRemovePlaylist": "Removed from playlist",
|
||||
"@toastRemovePlaylist": {},
|
||||
"unlike": "Unlike",
|
||||
"@unlike": {},
|
||||
"unliked": "Unliked",
|
||||
"@unliked": {}
|
||||
}
|
|
@ -0,0 +1,241 @@
|
|||
{
|
||||
"@@locale": "zh-Hans",
|
||||
"all": "全部",
|
||||
"@all": {},
|
||||
"cancel": "取消",
|
||||
"@cancel": {},
|
||||
"chooseA": "选择",
|
||||
"@chooseA": {},
|
||||
"color": "颜色",
|
||||
"@color": {},
|
||||
"confirm": "确认",
|
||||
"@confirm": {},
|
||||
"darkMode": "夜晚模式",
|
||||
"@darkMode": {},
|
||||
"delete": "删除",
|
||||
"@delete": {},
|
||||
"download": "下载",
|
||||
"@download": {},
|
||||
"editName": "修改组名",
|
||||
"@editName": {},
|
||||
"endOfEpisode": "节目结束",
|
||||
"@endOfEpisode": {},
|
||||
"feedbackEmail": "发送邮件",
|
||||
"@feedbackEmail": {},
|
||||
"feedbackGithub": "提交Issue",
|
||||
"@feedbackGithub": {},
|
||||
"feedbackPlay": "Play评价",
|
||||
"@feedbackPlay": {},
|
||||
"feedbackTelegram": "加入小组",
|
||||
"@feedbackTelegram": {},
|
||||
"from": "自",
|
||||
"@from": {},
|
||||
"groups": "分组",
|
||||
"@groups": {},
|
||||
"homeGroupsSeeAll": "查看全部",
|
||||
"@homeGroupsSeeAll": {},
|
||||
"homeMenuPlaylist": "播放列表",
|
||||
"@homeMenuPlaylist": {},
|
||||
"homeSubMenuDownloaded": "已下载",
|
||||
"@homeSubMenuDownloaded": {},
|
||||
"homeSubMenuLikeData": "添加日期",
|
||||
"@homeSubMenuLikeData": {},
|
||||
"homeSubMenuSortBy": "排序",
|
||||
"@homeSubMenuSortBy": {},
|
||||
"homeSubMenuUpdateDate": "更新日期",
|
||||
"@homeSubMenuUpdateDate": {},
|
||||
"homeTabMenuFavotite": "收藏",
|
||||
"@homeTabMenuFavotite": {},
|
||||
"homeTabMenuRecent": "最近更新",
|
||||
"@homeTabMenuRecent": {},
|
||||
"homeToprightMenuAbout": "关于",
|
||||
"@homeToprightMenuAbout": {},
|
||||
"homeToprightMenuImportOMPL": "导入OMPL",
|
||||
"@homeToprightMenuImportOMPL": {},
|
||||
"homeToprightMenuRefreshAll": "全部刷新",
|
||||
"@homeToprightMenuRefreshAll": {},
|
||||
"homeToprightMenuSettings": "设置",
|
||||
"@homeToprightMenuSettings": {},
|
||||
"later": "稍后",
|
||||
"@later": {},
|
||||
"lightMode": "明亮模式",
|
||||
"@lightMode": {},
|
||||
"like": "喜欢",
|
||||
"@like": {},
|
||||
"liked": "已收藏",
|
||||
"@liked": {},
|
||||
"listen": "收听",
|
||||
"@listen": {},
|
||||
"listened": "已收听",
|
||||
"@listened": {},
|
||||
"markListened": "标记已收听",
|
||||
"@markListened": {},
|
||||
"menu": "菜单",
|
||||
"@menu": {},
|
||||
"menuAllPodcasts": "所有订阅",
|
||||
"@menuAllPodcasts": {},
|
||||
"menuMarkAllListened": "标记所有已收听",
|
||||
"@menuMarkAllListened": {},
|
||||
"menuMarkListened": "标记已收听",
|
||||
"@menuMarkListened": {},
|
||||
"menuViewRSS": "查看 RSS",
|
||||
"@menuViewRSS": {},
|
||||
"menuVisitSite": "访问网站",
|
||||
"@menuVisitSite": {},
|
||||
"network": "网络",
|
||||
"@network": {},
|
||||
"newGroup": "创建分组",
|
||||
"@newGroup": {},
|
||||
"play": "播放",
|
||||
"@play": {},
|
||||
"popupMenuDownloadDes": "下载节目",
|
||||
"@popupMenuDownloadDes": {},
|
||||
"popupMenuLaterDes": "添加到播放列表",
|
||||
"@popupMenuLaterDes": {},
|
||||
"popupMenuLikeDes": "添加到收藏",
|
||||
"@popupMenuLikeDes": {},
|
||||
"popupMenuMarkDes": "设置为已收听",
|
||||
"@popupMenuMarkDes": {},
|
||||
"popupMenuPlayDes": "播放节目",
|
||||
"@popupMenuPlayDes": {},
|
||||
"remove": "移除",
|
||||
"@remove": {},
|
||||
"schedule": "定时",
|
||||
"@schedule": {},
|
||||
"searchPodcast": "搜索播客",
|
||||
"@searchPodcast": {},
|
||||
"settingsAccentColor": "次要颜色",
|
||||
"@settingsAccentColor": {},
|
||||
"settingsAccentColorDes": "包括溢出颜色",
|
||||
"@settingsAccentColorDes": {},
|
||||
"settingsAppearance": "界面",
|
||||
"@settingsAppearance": {},
|
||||
"settingsAppearanceDes": "颜色与主题",
|
||||
"@settingsAppearanceDes": {},
|
||||
"settingsAppIntro": "引导页",
|
||||
"@settingsAppIntro": {},
|
||||
"settingsAudioCache": "播放缓存",
|
||||
"@settingsAudioCache": {},
|
||||
"settingsAudioCacheDes": "播放缓存设置",
|
||||
"@settingsAudioCacheDes": {},
|
||||
"settingsAutoDelete": "自动删除下载节目",
|
||||
"@settingsAutoDelete": {},
|
||||
"settingsAutoDeleteDes": "默认 30 天",
|
||||
"@settingsAutoDeleteDes": {},
|
||||
"settingsAutoPlayDes": "自动播放下一节目",
|
||||
"@settingsAutoPlayDes": {},
|
||||
"settingsDefaultGrid": "默认布局",
|
||||
"@settingsDefaultGrid": {},
|
||||
"settingsDefaultGridDownload": "下载页",
|
||||
"@settingsDefaultGridDownload": {},
|
||||
"settingsDefaultGridFavorite": "收藏页",
|
||||
"@settingsDefaultGridFavorite": {},
|
||||
"settingsDefaultGridPodcast": "播客页",
|
||||
"@settingsDefaultGridPodcast": {},
|
||||
"settingsDefaultGridRecent": "最近页",
|
||||
"@settingsDefaultGridRecent": {},
|
||||
"settingsDiscovery": "再次功能介绍",
|
||||
"@settingsDiscovery": {},
|
||||
"settingsEnableSyncing": "开启自动更新",
|
||||
"@settingsEnableSyncing": {},
|
||||
"settingsEnableSyncingDes": "在后台更新所有订阅播客",
|
||||
"@settingsEnableSyncingDes": {},
|
||||
"settingsExport": "导出",
|
||||
"@settingsExport": {},
|
||||
"settingsExportDes": "导出 OMPL 文件",
|
||||
"@settingsExportDes": {},
|
||||
"settingsFeedback": "反馈",
|
||||
"@settingsFeedback": {},
|
||||
"settingsFeedbackDes": "意见与建议",
|
||||
"@settingsFeedbackDes": {},
|
||||
"settingsHistory": "历史记录",
|
||||
"@settingsHistory": {},
|
||||
"settingsHistoryDes": "播放日期",
|
||||
"@settingsHistoryDes": {},
|
||||
"settingsInfo": "信息",
|
||||
"@settingsInfo": {},
|
||||
"settingsInterface": "界面",
|
||||
"@settingsInterface": {},
|
||||
"settingsLayout": "布局",
|
||||
"@settingsLayout": {},
|
||||
"settingsLayoutDes": "应用布局",
|
||||
"@settingsLayoutDes": {},
|
||||
"settingsLibraries": "开源",
|
||||
"@settingsLibraries": {},
|
||||
"settingsLibrariesDes": "使用开源项目",
|
||||
"@settingsLibrariesDes": {},
|
||||
"settingsManageDownload": "下载管理",
|
||||
"@settingsManageDownload": {},
|
||||
"settingsManageDownloadDes": "管理下载节目文件",
|
||||
"@settingsManageDownloadDes": {},
|
||||
"settingsMenuAutoPlay": "自动播放下一节目",
|
||||
"@settingsMenuAutoPlay": {},
|
||||
"settingsNetworkCellular": "蜂窝数据确认",
|
||||
"@settingsNetworkCellular": {},
|
||||
"settingsNetworkCellularAuto": "是否用蜂窝数据自动下载",
|
||||
"@settingsNetworkCellularAuto": {},
|
||||
"settingsNetworkCellularAutoDes": "你可以在分组管理页面设置自动下载",
|
||||
"@settingsNetworkCellularAutoDes": {},
|
||||
"settingsNetworkCellularDes": "在使用蜂窝数据下载前确认",
|
||||
"@settingsNetworkCellularDes": {},
|
||||
"settingsPlayDes": "播放列表和播放器",
|
||||
"@settingsPlayDes": {},
|
||||
"settingsPopupMenu": "节目弹出菜单",
|
||||
"@settingsPopupMenu": {},
|
||||
"settingsPopupMenuDes": "修改节目弹出菜单",
|
||||
"@settingsPopupMenuDes": {},
|
||||
"settingsPrefrence": "首选项",
|
||||
"@settingsPrefrence": {},
|
||||
"settingsRealDark": "真的黑",
|
||||
"@settingsRealDark": {},
|
||||
"settingsRealDarkDes": "如果夜不够黑,请开启",
|
||||
"@settingsRealDarkDes": {},
|
||||
"settingsSTAuto": "自动睡眠模式",
|
||||
"@settingsSTAuto": {},
|
||||
"settingsSTAutoDes": "定期开启睡眠模式",
|
||||
"@settingsSTAutoDes": {},
|
||||
"settingsSTDefaultTime": "默认时长",
|
||||
"@settingsSTDefaultTime": {},
|
||||
"settingsSTDefautTimeDes": "睡眠模式默认时长",
|
||||
"@settingsSTDefautTimeDes": {},
|
||||
"settingsSTMode": "自动睡眠模式默认时长",
|
||||
"@settingsSTMode": {},
|
||||
"settingsStorageDes": "管理缓存和下载空间",
|
||||
"@settingsStorageDes": {},
|
||||
"settingsSyncing": "同步",
|
||||
"@settingsSyncing": {},
|
||||
"settingsSyncingDes": "在后台更新播客",
|
||||
"@settingsSyncingDes": {},
|
||||
"settingsTheme": "主题",
|
||||
"@settingsTheme": {},
|
||||
"settingStorage": "储存空间",
|
||||
"@settingStorage": {},
|
||||
"settingsUpdateInterval": "更新频率",
|
||||
"@settingsUpdateInterval": {},
|
||||
"settingsUpdateIntervalDes": "默认 24 小时",
|
||||
"@settingsUpdateIntervalDes": {},
|
||||
"sleepTimer": "睡眠模式",
|
||||
"@sleepTimer": {},
|
||||
"subscribe": "订阅",
|
||||
"@subscribe": {},
|
||||
"systemDefault": "系统默认",
|
||||
"@systemDefault": {},
|
||||
"to": "到",
|
||||
"@to": {},
|
||||
"toastAddPlaylist": "添加到播放列表",
|
||||
"@toastAddPlaylist": {},
|
||||
"toastDescovery": "重启应用后可查看",
|
||||
"@toastDescovery": {},
|
||||
"toastFileError": "文件错误,导入失败",
|
||||
"@toastFileError": {},
|
||||
"toastFileNotVilid": "文件错误",
|
||||
"@toastFileNotVilid": {},
|
||||
"toastReadFile": "读取文件成功",
|
||||
"@toastReadFile": {},
|
||||
"toastRemovePlaylist": "从播放列表移除",
|
||||
"@toastRemovePlaylist": {},
|
||||
"unlike": "取消喜欢",
|
||||
"@unlike": {},
|
||||
"unliked": "从收藏移除",
|
||||
"@unliked": {}
|
||||
}
|
|
@ -276,6 +276,7 @@ class _PodcastDetailState extends State<PodcastDetail> {
|
|||
@override
|
||||
Widget build(BuildContext context) {
|
||||
Color _color = widget.podcastLocal.primaryColor.colorizedark();
|
||||
final s = context.s;
|
||||
return AnnotatedRegion<SystemUiOverlayStyle>(
|
||||
value: SystemUiOverlayStyle(
|
||||
statusBarIconBrightness: Brightness.dark,
|
||||
|
@ -366,7 +367,7 @@ class _PodcastDetailState extends State<PodcastDetail> {
|
|||
horizontal:
|
||||
5.0),
|
||||
),
|
||||
Text('Visit Site'),
|
||||
Text(s.menuVisitSite),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
@ -390,7 +391,7 @@ class _PodcastDetailState extends State<PodcastDetail> {
|
|||
EdgeInsets.symmetric(
|
||||
horizontal: 5.0),
|
||||
),
|
||||
Text('View Rss Feed'),
|
||||
Text(s.menuViewRSS),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
@ -422,7 +423,7 @@ class _PodcastDetailState extends State<PodcastDetail> {
|
|||
horizontal: 5.0),
|
||||
),
|
||||
Text(
|
||||
'Mark All Listened',
|
||||
s.menuMarkAllListened,
|
||||
),
|
||||
],
|
||||
),
|
||||
|
@ -555,7 +556,7 @@ class _PodcastDetailState extends State<PodcastDetail> {
|
|||
Radius.circular(
|
||||
10))),
|
||||
elevation: 1,
|
||||
tooltip: 'Sort By',
|
||||
tooltip: s.homeSubMenuSortBy,
|
||||
child: Container(
|
||||
height: 30,
|
||||
padding:
|
||||
|
@ -565,7 +566,8 @@ class _PodcastDetailState extends State<PodcastDetail> {
|
|||
mainAxisSize:
|
||||
MainAxisSize.min,
|
||||
children: <Widget>[
|
||||
Text('Sort by'),
|
||||
Text(s
|
||||
.homeSubMenuSortBy),
|
||||
Padding(
|
||||
padding: EdgeInsets
|
||||
.symmetric(
|
||||
|
|
|
@ -97,6 +97,7 @@ class _DownloadsManageState extends State<DownloadsManage> {
|
|||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final s = context.s;
|
||||
return AnnotatedRegion<SystemUiOverlayStyle>(
|
||||
value: SystemUiOverlayStyle(
|
||||
statusBarIconBrightness: Theme.of(context).accentColorBrightness,
|
||||
|
@ -190,7 +191,7 @@ class _DownloadsManageState extends State<DownloadsManage> {
|
|||
child: Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: <Widget>[
|
||||
Text('Sory by'),
|
||||
Text(s.homeSubMenuSortBy),
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(
|
||||
horizontal: 5),
|
||||
|
|
|
@ -111,6 +111,7 @@ class _PlayedHistoryState extends State<PlayedHistory>
|
|||
double top = 0;
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final s = context.s;
|
||||
return AnnotatedRegion<SystemUiOverlayStyle>(
|
||||
value: SystemUiOverlayStyle(
|
||||
statusBarIconBrightness: Theme.of(context).accentColorBrightness,
|
||||
|
@ -137,7 +138,7 @@ class _PlayedHistoryState extends State<PlayedHistory>
|
|||
return FlexibleSpaceBar(
|
||||
title: top < 70 + MediaQuery.of(context).padding.top
|
||||
? Text(
|
||||
'History',
|
||||
s.settingsHistory,
|
||||
)
|
||||
: Center(),
|
||||
background: Padding(
|
||||
|
@ -162,11 +163,11 @@ class _PlayedHistoryState extends State<PlayedHistory>
|
|||
indicatorColor: context.accentColor,
|
||||
tabs: <Widget>[
|
||||
Tab(
|
||||
child: Text('Listen',
|
||||
child: Text(s.listen,
|
||||
style: context.textTheme.headline6),
|
||||
),
|
||||
Tab(
|
||||
child: Text('Subscribe',
|
||||
child: Text(s.subscribe,
|
||||
style: context.textTheme.headline6),
|
||||
)
|
||||
],
|
||||
|
|
|
@ -111,6 +111,7 @@ class _LayoutSettingState extends State<LayoutSetting> {
|
|||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final s = context.s;
|
||||
return AnnotatedRegion<SystemUiOverlayStyle>(
|
||||
value: SystemUiOverlayStyle(
|
||||
statusBarIconBrightness: Theme.of(context).accentColorBrightness,
|
||||
|
@ -120,7 +121,7 @@ class _LayoutSettingState extends State<LayoutSetting> {
|
|||
),
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
title: Text('Layout'),
|
||||
title: Text(s.settingsLayout),
|
||||
elevation: 0,
|
||||
backgroundColor: context.primaryColor,
|
||||
),
|
||||
|
@ -135,7 +136,7 @@ class _LayoutSettingState extends State<LayoutSetting> {
|
|||
height: 30.0,
|
||||
padding: EdgeInsets.symmetric(horizontal: 70),
|
||||
alignment: Alignment.centerLeft,
|
||||
child: Text('Episode popup menu',
|
||||
child: Text(s.settingsPopupMenu,
|
||||
style: Theme.of(context)
|
||||
.textTheme
|
||||
.bodyText1
|
||||
|
@ -152,8 +153,8 @@ class _LayoutSettingState extends State<LayoutSetting> {
|
|||
MaterialPageRoute(
|
||||
builder: (context) => PopupMenuSetting())),
|
||||
contentPadding: EdgeInsets.only(left: 80.0, right: 20),
|
||||
title: Text('Episode popup menu'),
|
||||
subtitle: Text('Change the menu when long tap episode'),
|
||||
title: Text(s.settingsPopupMenu),
|
||||
subtitle: Text(s.settingsPopupMenuDes),
|
||||
),
|
||||
Divider(height: 2),
|
||||
Padding(
|
||||
|
@ -163,7 +164,7 @@ class _LayoutSettingState extends State<LayoutSetting> {
|
|||
height: 30.0,
|
||||
padding: EdgeInsets.symmetric(horizontal: 70),
|
||||
alignment: Alignment.centerLeft,
|
||||
child: Text('Default grid view',
|
||||
child: Text(s.settingsDefaultGrid,
|
||||
style: Theme.of(context)
|
||||
.textTheme
|
||||
.bodyText1
|
||||
|
@ -176,13 +177,17 @@ class _LayoutSettingState extends State<LayoutSetting> {
|
|||
scrollDirection: Axis.vertical,
|
||||
children: <Widget>[
|
||||
_setDefaultGridView(context,
|
||||
text: 'Podcast page', key: podcastLayoutKey),
|
||||
text: s.settingsDefaultGridPodcast,
|
||||
key: podcastLayoutKey),
|
||||
_setDefaultGridView(context,
|
||||
text: 'Recent tab', key: recentLayoutKey),
|
||||
text: s.settingsDefaultGridRecent,
|
||||
key: recentLayoutKey),
|
||||
_setDefaultGridView(context,
|
||||
text: 'Favorite tab', key: favLayoutKey),
|
||||
text: s.settingsDefaultGridFavorite,
|
||||
key: favLayoutKey),
|
||||
_setDefaultGridView(context,
|
||||
text: 'Downlaod tab', key: downloadLayoutKey),
|
||||
text: s.settingsDefaultGridDownload,
|
||||
key: downloadLayoutKey),
|
||||
]),
|
||||
Divider(height: 2)
|
||||
]),
|
||||
|
|
|
@ -207,6 +207,7 @@ class PlaySetting extends StatelessWidget {
|
|||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var settings = Provider.of<SettingState>(context, listen: false);
|
||||
final s = context.s;
|
||||
return AnnotatedRegion<SystemUiOverlayStyle>(
|
||||
value: SystemUiOverlayStyle(
|
||||
statusBarIconBrightness: Theme.of(context).accentColorBrightness,
|
||||
|
@ -216,7 +217,7 @@ class PlaySetting extends StatelessWidget {
|
|||
),
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
title: Text('Player Setting'),
|
||||
title: Text(s.play),
|
||||
elevation: 0,
|
||||
backgroundColor: Theme.of(context).primaryColor,
|
||||
),
|
||||
|
@ -237,7 +238,7 @@ class PlaySetting extends StatelessWidget {
|
|||
height: 30.0,
|
||||
padding: EdgeInsets.symmetric(horizontal: 70),
|
||||
alignment: Alignment.centerLeft,
|
||||
child: Text('Playlist',
|
||||
child: Text(s.homeMenuPlaylist,
|
||||
style: Theme.of(context)
|
||||
.textTheme
|
||||
.bodyText1
|
||||
|
@ -254,8 +255,8 @@ class PlaySetting extends StatelessWidget {
|
|||
onTap: () => settings.setAutoPlay = !data,
|
||||
contentPadding:
|
||||
EdgeInsets.only(left: 80.0, right: 20),
|
||||
title: Text('Autoplay'),
|
||||
subtitle: Text('Autoplay next episode in playlist'),
|
||||
title: Text('Auto play next'),
|
||||
subtitle: Text(s.settingsAutoPlayDes),
|
||||
trailing: Transform.scale(
|
||||
scale: 0.9,
|
||||
child: Switch(
|
||||
|
@ -274,10 +275,8 @@ class PlaySetting extends StatelessWidget {
|
|||
height: 30.0,
|
||||
padding: EdgeInsets.symmetric(horizontal: 70),
|
||||
alignment: Alignment.centerLeft,
|
||||
child: Text('Sleep timer',
|
||||
style: Theme.of(context)
|
||||
.textTheme
|
||||
.bodyText1
|
||||
child: Text(s.sleepTimer,
|
||||
style: context.textTheme.bodyText1
|
||||
.copyWith(color: Theme.of(context).accentColor)),
|
||||
),
|
||||
ListView(
|
||||
|
@ -287,8 +286,8 @@ class PlaySetting extends StatelessWidget {
|
|||
children: <Widget>[
|
||||
ListTile(
|
||||
contentPadding: EdgeInsets.only(left: 80.0, right: 20),
|
||||
title: Text('Default time'),
|
||||
subtitle: Text('Default time for sleep timer'),
|
||||
title: Text(s.settingsSTDefaultTime),
|
||||
subtitle: Text(s.settingsSTDefautTimeDes),
|
||||
trailing: Selector<SettingState, int>(
|
||||
selector: (_, settings) => settings.defaultSleepTimer,
|
||||
builder: (_, data, __) => DropdownButton(
|
||||
|
@ -313,9 +312,8 @@ class PlaySetting extends StatelessWidget {
|
|||
onTap: () => settings.setAutoSleepTimer = !data,
|
||||
contentPadding: const EdgeInsets.only(
|
||||
left: 80.0, right: 20.0, bottom: 10.0, top: 10.0),
|
||||
title: Text('Auto turn on sleep timer'),
|
||||
subtitle:
|
||||
Text('Auto start sleep timer at scheduled time'),
|
||||
title: Text(s.settingsSTAuto),
|
||||
subtitle: Text(s.settingsSTAutoDes),
|
||||
trailing: Transform.scale(
|
||||
scale: 0.9,
|
||||
child: Switch(
|
||||
|
@ -328,7 +326,7 @@ class PlaySetting extends StatelessWidget {
|
|||
ListTile(
|
||||
contentPadding: const EdgeInsets.only(
|
||||
left: 80.0, right: 20.0, bottom: 10.0, top: 10.0),
|
||||
title: Text('Auto sleep timer mode'),
|
||||
title: Text(s.settingsSTMode),
|
||||
subtitle:
|
||||
context.width > 360 ? null : _modeWidget(context),
|
||||
trailing: context.width > 360
|
||||
|
@ -337,7 +335,7 @@ class PlaySetting extends StatelessWidget {
|
|||
ListTile(
|
||||
contentPadding:
|
||||
EdgeInsets.only(left: 80.0, right: 20),
|
||||
title: Text('Schedule'),
|
||||
title: Text(s.schedule),
|
||||
subtitle: context.width > 360
|
||||
? null
|
||||
: _scheduleWidget(context),
|
||||
|
|
|
@ -102,6 +102,7 @@ class _SettingsState extends State<Settings>
|
|||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final s = context.s;
|
||||
return AnnotatedRegion<SystemUiOverlayStyle>(
|
||||
value: SystemUiOverlayStyle(
|
||||
statusBarIconBrightness: Theme.of(context).accentColorBrightness,
|
||||
|
@ -111,7 +112,7 @@ class _SettingsState extends State<Settings>
|
|||
),
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
title: Text('Settings'),
|
||||
title: Text(s.homeToprightMenuSettings),
|
||||
elevation: 0,
|
||||
backgroundColor: context.primaryColor,
|
||||
),
|
||||
|
@ -134,7 +135,7 @@ class _SettingsState extends State<Settings>
|
|||
height: 30.0,
|
||||
padding: EdgeInsets.symmetric(horizontal: 70),
|
||||
alignment: Alignment.centerLeft,
|
||||
child: Text('Prefrence',
|
||||
child: Text(s.settingsPrefrence,
|
||||
style: Theme.of(context)
|
||||
.textTheme
|
||||
.bodyText1
|
||||
|
@ -153,8 +154,8 @@ class _SettingsState extends State<Settings>
|
|||
contentPadding:
|
||||
EdgeInsets.symmetric(horizontal: 25.0),
|
||||
leading: Icon(LineIcons.adjust_solid),
|
||||
title: Text('Appearance'),
|
||||
subtitle: Text('Colors and themes'),
|
||||
title: Text(s.settingsAppearance),
|
||||
subtitle: Text(s.settingsAppearanceDes),
|
||||
),
|
||||
Divider(height: 2),
|
||||
ListTile(
|
||||
|
@ -165,8 +166,8 @@ class _SettingsState extends State<Settings>
|
|||
contentPadding:
|
||||
EdgeInsets.symmetric(horizontal: 25.0),
|
||||
leading: Icon(LineIcons.stop_circle_solid),
|
||||
title: Text('Layout'),
|
||||
subtitle: Text('App layout'),
|
||||
title: Text(s.settingsLayout),
|
||||
subtitle: Text(s.settingsLayoutDes),
|
||||
),
|
||||
Divider(height: 2),
|
||||
ListTile(
|
||||
|
@ -177,21 +178,20 @@ class _SettingsState extends State<Settings>
|
|||
contentPadding:
|
||||
EdgeInsets.symmetric(horizontal: 25.0),
|
||||
leading: Icon(LineIcons.play_circle),
|
||||
title: Text('Play'),
|
||||
subtitle: Text('Playlist and player'),
|
||||
title: Text(s.play),
|
||||
subtitle: Text(s.settingsPlayDes),
|
||||
),
|
||||
Divider(height: 2),
|
||||
ListTile(
|
||||
onTap: () => Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => SyncingSetting())),
|
||||
contentPadding:
|
||||
EdgeInsets.symmetric(horizontal: 25.0),
|
||||
leading: Icon(LineIcons.cloud_download_alt_solid),
|
||||
title: Text('Syncing'),
|
||||
subtitle: Text('Refresh podcasts in the background'),
|
||||
),
|
||||
onTap: () => Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => SyncingSetting())),
|
||||
contentPadding:
|
||||
EdgeInsets.symmetric(horizontal: 25.0),
|
||||
leading: Icon(LineIcons.cloud_download_alt_solid),
|
||||
title: Text(s.settingsSyncing),
|
||||
subtitle: Text(s.settingsSyncingDes)),
|
||||
Divider(height: 2),
|
||||
ListTile(
|
||||
onTap: () => Navigator.push(
|
||||
|
@ -201,8 +201,8 @@ class _SettingsState extends State<Settings>
|
|||
contentPadding:
|
||||
EdgeInsets.symmetric(horizontal: 25.0),
|
||||
leading: Icon(LineIcons.save),
|
||||
title: Text('Storage'),
|
||||
subtitle: Text('Manage cache and download storage'),
|
||||
title: Text(s.settingStorage),
|
||||
subtitle: Text(s.settingsStorageDes),
|
||||
),
|
||||
Divider(height: 2),
|
||||
ListTile(
|
||||
|
@ -213,8 +213,8 @@ class _SettingsState extends State<Settings>
|
|||
contentPadding:
|
||||
EdgeInsets.symmetric(horizontal: 25.0),
|
||||
leading: Icon(Icons.update),
|
||||
title: Text('History'),
|
||||
subtitle: Text('Listen data'),
|
||||
title: Text(s.settingsHistory),
|
||||
subtitle: Text(s.settingsHistoryDes),
|
||||
),
|
||||
Divider(height: 2),
|
||||
ListTile(
|
||||
|
@ -224,8 +224,8 @@ class _SettingsState extends State<Settings>
|
|||
contentPadding:
|
||||
EdgeInsets.symmetric(horizontal: 25.0),
|
||||
leading: Icon(LineIcons.file_code_solid),
|
||||
title: Text('Export'),
|
||||
subtitle: Text('Export ompl file of all podcasts'),
|
||||
title: Text(s.settingsExport),
|
||||
subtitle: Text(s.settingsExportDes),
|
||||
),
|
||||
Divider(height: 2),
|
||||
],
|
||||
|
@ -243,7 +243,7 @@ class _SettingsState extends State<Settings>
|
|||
height: 30.0,
|
||||
padding: EdgeInsets.symmetric(horizontal: 70),
|
||||
alignment: Alignment.centerLeft,
|
||||
child: Text('Info',
|
||||
child: Text(s.settingsInfo,
|
||||
style: Theme.of(context)
|
||||
.textTheme
|
||||
.bodyText1
|
||||
|
@ -262,9 +262,8 @@ class _SettingsState extends State<Settings>
|
|||
contentPadding:
|
||||
EdgeInsets.symmetric(horizontal: 25.0),
|
||||
leading: Icon(LineIcons.book_open_solid),
|
||||
title: Text('Libraries'),
|
||||
subtitle:
|
||||
Text('Open source libraries in application'),
|
||||
title: Text(s.settingsLibraries),
|
||||
subtitle: Text(s.settingsLibrariesDes),
|
||||
),
|
||||
Divider(height: 2),
|
||||
ListTile(
|
||||
|
@ -280,8 +279,8 @@ class _SettingsState extends State<Settings>
|
|||
contentPadding:
|
||||
EdgeInsets.symmetric(horizontal: 25.0),
|
||||
leading: Icon(LineIcons.bug_solid),
|
||||
title: Text('Feedback'),
|
||||
subtitle: Text('Bugs and feature request'),
|
||||
title: Text(s.settingsFeedback),
|
||||
subtitle: Text(s.settingsFeedbackDes),
|
||||
trailing: Transform.rotate(
|
||||
angle: math.pi * _value,
|
||||
child: Icon(Icons.keyboard_arrow_down),
|
||||
|
@ -298,19 +297,19 @@ class _SettingsState extends State<Settings>
|
|||
SizedBox(width: 75),
|
||||
_feedbackItem(
|
||||
LineIcons.github,
|
||||
'Submit issue',
|
||||
s.feedbackGithub,
|
||||
'https://github.com/stonega/tsacdop/issues'),
|
||||
_feedbackItem(
|
||||
LineIcons.telegram,
|
||||
'Join group',
|
||||
s.feedbackTelegram,
|
||||
'https://t.me/joinchat/Bk3LkRpTHy40QYC78PK7Qg'),
|
||||
_feedbackItem(
|
||||
LineIcons.envelope_open_text_solid,
|
||||
'Write to me',
|
||||
s.feedbackEmail,
|
||||
'mailto:<tsacdop.app@gmail.com>?subject=Tsacdop Feedback'),
|
||||
_feedbackItem(
|
||||
LineIcons.google_play,
|
||||
'Rate on Play',
|
||||
s.feedbackPlay,
|
||||
'https://play.google.com/store/apps/details?id=com.stonegate.tsacdop')
|
||||
],
|
||||
),
|
||||
|
@ -341,7 +340,7 @@ class _SettingsState extends State<Settings>
|
|||
contentPadding:
|
||||
EdgeInsets.symmetric(horizontal: 25.0),
|
||||
leading: Icon(LineIcons.capsules_solid),
|
||||
title: Text('Discovery Features Again'),
|
||||
title: Text(s.settingsDiscovery),
|
||||
),
|
||||
Divider(height: 2),
|
||||
ListTile(
|
||||
|
@ -353,7 +352,7 @@ class _SettingsState extends State<Settings>
|
|||
contentPadding:
|
||||
EdgeInsets.symmetric(horizontal: 25.0),
|
||||
leading: Icon(LineIcons.columns_solid),
|
||||
title: Text('App Intro'),
|
||||
title: Text(s.settingsAppIntro),
|
||||
),
|
||||
Divider(height: 2),
|
||||
],
|
||||
|
|
|
@ -77,6 +77,7 @@ class _StorageSettingState extends State<StorageSetting>
|
|||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final s = context.s;
|
||||
var settings = Provider.of<SettingState>(context, listen: false);
|
||||
return AnnotatedRegion<SystemUiOverlayStyle>(
|
||||
value: SystemUiOverlayStyle(
|
||||
|
@ -87,7 +88,7 @@ class _StorageSettingState extends State<StorageSetting>
|
|||
),
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
title: Text('Storage'),
|
||||
title: Text(s.settingStorage),
|
||||
elevation: 0,
|
||||
backgroundColor: Theme.of(context).primaryColor,
|
||||
),
|
||||
|
@ -107,7 +108,7 @@ class _StorageSettingState extends State<StorageSetting>
|
|||
height: 30.0,
|
||||
padding: EdgeInsets.symmetric(horizontal: 70),
|
||||
alignment: Alignment.centerLeft,
|
||||
child: Text('Network',
|
||||
child: Text(s.network,
|
||||
style: Theme.of(context)
|
||||
.textTheme
|
||||
.bodyText1
|
||||
|
@ -125,9 +126,8 @@ class _StorageSettingState extends State<StorageSetting>
|
|||
onTap: () => settings.downloadUsingData = !data,
|
||||
contentPadding: EdgeInsets.only(
|
||||
left: 80.0, right: 25, bottom: 10, top: 10),
|
||||
title: Text('Ask before using cellular data'),
|
||||
subtitle: Text(
|
||||
'Ask to confirm when using cellular data to download episodes'),
|
||||
title: Text(s.settingsNetworkCellular),
|
||||
subtitle: Text(s.settingsNetworkCellularDes),
|
||||
trailing: Transform.scale(
|
||||
scale: 0.9,
|
||||
child: Switch(
|
||||
|
@ -151,10 +151,9 @@ class _StorageSettingState extends State<StorageSetting>
|
|||
},
|
||||
contentPadding: EdgeInsets.only(
|
||||
left: 80.0, right: 25, bottom: 10, top: 10),
|
||||
title:
|
||||
Text('Auto download using cellular data'),
|
||||
subtitle: Text(
|
||||
'You can set podcast auto download in group manage page'),
|
||||
title: Text(s.settingsNetworkCellularAuto),
|
||||
subtitle:
|
||||
Text(s.settingsNetworkCellularAutoDes),
|
||||
trailing: Transform.scale(
|
||||
scale: 0.9,
|
||||
child: Switch(
|
||||
|
@ -182,7 +181,7 @@ class _StorageSettingState extends State<StorageSetting>
|
|||
height: 30.0,
|
||||
padding: EdgeInsets.symmetric(horizontal: 70),
|
||||
alignment: Alignment.centerLeft,
|
||||
child: Text('Storage',
|
||||
child: Text(s.settingStorage,
|
||||
style: Theme.of(context)
|
||||
.textTheme
|
||||
.bodyText1
|
||||
|
@ -199,8 +198,8 @@ class _StorageSettingState extends State<StorageSetting>
|
|||
MaterialPageRoute(
|
||||
builder: (context) => DownloadsManage())),
|
||||
contentPadding: EdgeInsets.symmetric(horizontal: 80.0),
|
||||
title: Text('Downloads'),
|
||||
subtitle: Text('Manage downloaded audio files'),
|
||||
title: Text(s.download),
|
||||
subtitle: Text(s.settingsManageDownloadDes),
|
||||
),
|
||||
Divider(height: 2),
|
||||
FutureBuilder<int>(
|
||||
|
@ -210,8 +209,8 @@ class _StorageSettingState extends State<StorageSetting>
|
|||
return ListTile(
|
||||
contentPadding:
|
||||
EdgeInsets.only(left: 80.0, right: 20),
|
||||
title: Text('Auto delete downloads after'),
|
||||
subtitle: Text('Default 30 days'),
|
||||
title: Text(s.settingsAutoDelete),
|
||||
subtitle: Text(s.settingsAutoDeleteDes),
|
||||
trailing: DropdownButton(
|
||||
hint: snapshot.data == -1
|
||||
? Text('Never')
|
||||
|
@ -238,8 +237,8 @@ class _StorageSettingState extends State<StorageSetting>
|
|||
ListTile(
|
||||
contentPadding: EdgeInsets.only(left: 80.0, right: 25),
|
||||
// leading: Icon(Icons.colorize),
|
||||
title: Text('Audio cache'),
|
||||
subtitle: Text('Audio cache max size'),
|
||||
title: Text(s.settingsAudioCache),
|
||||
subtitle: Text(s.settingsAudioCacheDes),
|
||||
trailing: Text.rich(TextSpan(
|
||||
text: '${(_value ~/ 100) * 100}',
|
||||
style: GoogleFonts.teko(
|
||||
|
|
|
@ -4,10 +4,12 @@ import 'package:provider/provider.dart';
|
|||
import 'package:tuple/tuple.dart';
|
||||
|
||||
import '../state/settingstate.dart';
|
||||
import '../util/context_extension.dart';
|
||||
|
||||
class SyncingSetting extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final s = context.s;
|
||||
var settings = Provider.of<SettingState>(context, listen: false);
|
||||
return AnnotatedRegion<SystemUiOverlayStyle>(
|
||||
value: SystemUiOverlayStyle(
|
||||
|
@ -18,7 +20,7 @@ class SyncingSetting extends StatelessWidget {
|
|||
),
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
title: Text('Syncing'),
|
||||
title: Text(s.settingsSyncing),
|
||||
elevation: 0,
|
||||
backgroundColor: Theme.of(context).primaryColor,
|
||||
),
|
||||
|
@ -40,16 +42,16 @@ class SyncingSetting extends StatelessWidget {
|
|||
),
|
||||
Container(
|
||||
height: 30.0,
|
||||
padding: EdgeInsets.symmetric(horizontal: 70),
|
||||
padding: const EdgeInsets.symmetric(horizontal: 70),
|
||||
alignment: Alignment.centerLeft,
|
||||
child: Text('Syncing',
|
||||
child: Text(s.settingsSyncing,
|
||||
style: Theme.of(context)
|
||||
.textTheme
|
||||
.bodyText1
|
||||
.copyWith(color: Theme.of(context).accentColor)),
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsets.all(5.0),
|
||||
padding: const EdgeInsets.all(5.0),
|
||||
),
|
||||
ListView(
|
||||
physics: const BouncingScrollPhysics(),
|
||||
|
@ -66,11 +68,10 @@ class SyncingSetting extends StatelessWidget {
|
|||
settings.setWorkManager(data.item2);
|
||||
}
|
||||
},
|
||||
contentPadding: EdgeInsets.only(
|
||||
contentPadding: const EdgeInsets.only(
|
||||
left: 80.0, right: 20, bottom: 10),
|
||||
title: Text('Enable syncing'),
|
||||
subtitle: Text(
|
||||
'Refresh all podcasts in the background to get leatest episodes'),
|
||||
title: Text(s.settingsEnableSyncing),
|
||||
subtitle: Text(s.settingsEnableSyncingDes),
|
||||
trailing: Transform.scale(
|
||||
scale: 0.9,
|
||||
child: Switch(
|
||||
|
@ -87,13 +88,13 @@ class SyncingSetting extends StatelessWidget {
|
|||
Divider(height: 2),
|
||||
ListTile(
|
||||
contentPadding:
|
||||
EdgeInsets.only(left: 80.0, right: 20),
|
||||
title: Text('Update Interval'),
|
||||
subtitle: Text('Default 24 hours'),
|
||||
const EdgeInsets.only(left: 80.0, right: 20),
|
||||
title: Text(s.settingsUpdateInterval),
|
||||
subtitle: Text(s.settingsUpdateIntervalDes),
|
||||
trailing: DropdownButton(
|
||||
hint: data.item2 == 1
|
||||
? Text(data.item2.toString() + ' hour')
|
||||
: Text(data.item2.toString() + 'hours'),
|
||||
: Text(data.item2.toString() + ' hours'),
|
||||
underline: Center(),
|
||||
elevation: 1,
|
||||
value: data.item2,
|
||||
|
|
|
@ -9,6 +9,7 @@ import '../util/general_dialog.dart';
|
|||
class ThemeSetting extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final s = context.s;
|
||||
var settings = Provider.of<SettingState>(context, listen: false);
|
||||
return AnnotatedRegion<SystemUiOverlayStyle>(
|
||||
value: SystemUiOverlayStyle(
|
||||
|
@ -19,7 +20,7 @@ class ThemeSetting extends StatelessWidget {
|
|||
),
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
title: Text('Appearance'),
|
||||
title: Text(s.settingsAppearance),
|
||||
elevation: 0,
|
||||
backgroundColor: Theme.of(context).primaryColor,
|
||||
),
|
||||
|
@ -34,7 +35,7 @@ class ThemeSetting extends StatelessWidget {
|
|||
height: 30.0,
|
||||
padding: EdgeInsets.symmetric(horizontal: 70),
|
||||
alignment: Alignment.centerLeft,
|
||||
child: Text('Interface',
|
||||
child: Text(s.settingsInterface,
|
||||
style: Theme.of(context)
|
||||
.textTheme
|
||||
.bodyText1
|
||||
|
@ -74,7 +75,7 @@ class ThemeSetting extends StatelessWidget {
|
|||
shape: RoundedRectangleBorder(
|
||||
borderRadius:
|
||||
BorderRadius.all(Radius.circular(10.0))),
|
||||
title: Text('Theme'),
|
||||
title: Text(s.settingsTheme),
|
||||
content: SingleChildScrollView(
|
||||
scrollDirection: Axis.vertical,
|
||||
child: Column(
|
||||
|
@ -82,7 +83,7 @@ class ThemeSetting extends StatelessWidget {
|
|||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
children: <Widget>[
|
||||
RadioListTile(
|
||||
title: Text('System default'),
|
||||
title: Text(s.systemDefault),
|
||||
value: ThemeMode.system,
|
||||
groupValue: settings.theme,
|
||||
onChanged: (value) {
|
||||
|
@ -112,8 +113,8 @@ class ThemeSetting extends StatelessWidget {
|
|||
)),
|
||||
contentPadding: EdgeInsets.symmetric(horizontal: 80.0),
|
||||
// leading: Icon(Icons.colorize),
|
||||
title: Text('Theme'),
|
||||
subtitle: Text('System default'),
|
||||
title: Text(s.settingsTheme),
|
||||
subtitle: Text(s.systemDefault),
|
||||
),
|
||||
Selector<SettingState, bool>(
|
||||
selector: (_, setting) => setting.realDark,
|
||||
|
@ -123,10 +124,9 @@ class ThemeSetting extends StatelessWidget {
|
|||
left: 80.0, right: 20, bottom: 10, top: 10),
|
||||
// leading: Icon(Icons.colorize),
|
||||
title: Text(
|
||||
'Real Dark',
|
||||
s.settingsRealDark,
|
||||
),
|
||||
subtitle: Text(
|
||||
'Turn on if you think the night is not dark enough'),
|
||||
subtitle: Text(s.settingsRealDarkDes),
|
||||
trailing: Transform.scale(
|
||||
scale: 0.9,
|
||||
child: Switch(
|
||||
|
@ -153,8 +153,8 @@ class ThemeSetting extends StatelessWidget {
|
|||
),
|
||||
),
|
||||
contentPadding: EdgeInsets.only(left: 80.0, right: 25),
|
||||
title: Text('Accent color'),
|
||||
subtitle: Text('Include the overlay color'),
|
||||
title: Text(s.settingsAccentColor),
|
||||
subtitle: Text(s.settingsAccentColorDes),
|
||||
trailing: Container(
|
||||
height: 25,
|
||||
width: 25,
|
||||
|
|
|
@ -1,13 +1,15 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import '../generated/l10n.dart';
|
||||
|
||||
extension ContextExtension on BuildContext{
|
||||
Color get primaryColor => Theme.of(this).primaryColor;
|
||||
Color get accentColor => Theme.of(this).accentColor;
|
||||
Color get scaffoldBackgroundColor => Theme.of(this).scaffoldBackgroundColor;
|
||||
Color get primaryColorDark => Theme.of(this).primaryColorDark;
|
||||
Color get textColor => Theme.of(this).textTheme.bodyText1.color;
|
||||
Brightness get brightness => Theme.of(this).brightness;
|
||||
double get width => MediaQuery.of(this).size.width;
|
||||
double get height => MediaQuery.of(this).size.width;
|
||||
TextTheme get textTheme => Theme.of(this).textTheme;
|
||||
}
|
||||
extension ContextExtension on BuildContext {
|
||||
Color get primaryColor => Theme.of(this).primaryColor;
|
||||
Color get accentColor => Theme.of(this).accentColor;
|
||||
Color get scaffoldBackgroundColor => Theme.of(this).scaffoldBackgroundColor;
|
||||
Color get primaryColorDark => Theme.of(this).primaryColorDark;
|
||||
Color get textColor => Theme.of(this).textTheme.bodyText1.color;
|
||||
Brightness get brightness => Theme.of(this).brightness;
|
||||
double get width => MediaQuery.of(this).size.width;
|
||||
double get height => MediaQuery.of(this).size.width;
|
||||
TextTheme get textTheme => Theme.of(this).textTheme;
|
||||
S get s => S.of(this);
|
||||
}
|
||||
|
|
|
@ -54,10 +54,10 @@ class MyRoundSliderThumpShape extends SliderComponentShape {
|
|||
begin: _disabledThumbRadius,
|
||||
end: enabledThumbRadius,
|
||||
);
|
||||
final ColorTween colorTween = ColorTween(
|
||||
begin: sliderTheme.disabledThumbColor,
|
||||
end: sliderTheme.thumbColor,
|
||||
);
|
||||
// final ColorTween colorTween = ColorTween(
|
||||
// begin: sliderTheme.disabledThumbColor,
|
||||
// end: sliderTheme.thumbColor,
|
||||
// );
|
||||
|
||||
canvas.drawCircle(
|
||||
center,
|
||||
|
|
|
@ -10,7 +10,6 @@ import 'package:tuple/tuple.dart';
|
|||
import 'package:line_icons/line_icons.dart';
|
||||
import 'package:fluttertoast/fluttertoast.dart';
|
||||
import 'package:auto_animated/auto_animated.dart';
|
||||
import 'package:tuple/tuple.dart';
|
||||
import 'open_container.dart';
|
||||
|
||||
import '../state/audiostate.dart';
|
||||
|
@ -398,7 +397,7 @@ class EpisodeGrid extends StatelessWidget {
|
|||
showItemDuration: Duration(milliseconds: 50),
|
||||
);
|
||||
final scrollController = ScrollController();
|
||||
|
||||
final s = context.s;
|
||||
return SliverPadding(
|
||||
padding: const EdgeInsets.only(
|
||||
top: 10.0, bottom: 5.0, left: 15.0, right: 15.0),
|
||||
|
@ -507,7 +506,7 @@ class EpisodeGrid extends StatelessWidget {
|
|||
? context.primaryColor
|
||||
: context.scaffoldBackgroundColor,
|
||||
title: Text(data.item1 != episodes[index]
|
||||
? "Play"
|
||||
? s.play
|
||||
: "Playing"),
|
||||
trailingIcon: Icon(
|
||||
LineIcons.play_circle_solid,
|
||||
|
@ -526,7 +525,7 @@ class EpisodeGrid extends StatelessWidget {
|
|||
title: data.item2.contains(
|
||||
episodes[index].enclosureUrl)
|
||||
? Text("Remove")
|
||||
: Text("Later"),
|
||||
: Text(s.later),
|
||||
trailingIcon: Icon(
|
||||
LineIcons.clock_solid,
|
||||
color: Colors.cyan,
|
||||
|
@ -556,8 +555,8 @@ class EpisodeGrid extends StatelessWidget {
|
|||
? context.primaryColor
|
||||
: context.scaffoldBackgroundColor,
|
||||
title: isLiked
|
||||
? Text("Unlike")
|
||||
: Text("Like"),
|
||||
? Text(s.unlike)
|
||||
: Text(s.like),
|
||||
trailingIcon: Icon(LineIcons.heart,
|
||||
color: Colors.red, size: 21),
|
||||
onPressed: () async {
|
||||
|
@ -592,7 +591,7 @@ class EpisodeGrid extends StatelessWidget {
|
|||
color: context.textColor
|
||||
.withOpacity(0.5)))
|
||||
: Text(
|
||||
'Mark Listened',
|
||||
s.markListened,
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
|
@ -609,7 +608,7 @@ class EpisodeGrid extends StatelessWidget {
|
|||
await _markListened(episodes[index]);
|
||||
audio.setEpisodeState = true;
|
||||
Fluttertoast.showToast(
|
||||
msg: 'Mark listened',
|
||||
msg: s.markListened,
|
||||
gravity: ToastGravity.BOTTOM,
|
||||
);
|
||||
}
|
||||
|
@ -622,11 +621,11 @@ class EpisodeGrid extends StatelessWidget {
|
|||
? context.primaryColor
|
||||
: context.scaffoldBackgroundColor,
|
||||
title: isDownloaded
|
||||
? Text('Downloaded',
|
||||
? Text(s.homeSubMenuDownloaded,
|
||||
style: TextStyle(
|
||||
color: context.textColor
|
||||
.withOpacity(0.5)))
|
||||
: Text('Download'),
|
||||
: Text(s.download),
|
||||
trailingIcon: Icon(
|
||||
LineIcons.download_solid,
|
||||
color: Colors.green),
|
||||
|
|
|
@ -70,3 +70,5 @@ flutter:
|
|||
uses-material-design: true
|
||||
flutter_intl:
|
||||
enabled: true
|
||||
localizely:
|
||||
project_id: bde4e9bd-4cb2-449b-9de2-18f231ddb47d
|
||||
|
|
Loading…
Reference in New Issue