feat(flutter): 重构四 Tab 与浏览页

This commit is contained in:
Zhou Weidong committed 2026-10-20 09:49:42 +08:00
1 parent 99c72e2c32
commit 959edc0a32
41 files changed
+2148 -1179

No files matched your search

+30
View File
@@ -9,6 +9,8 @@
"demoTitle": "The Signal",
"demoSynopsis": "A short local video preview. More episodes can be added when media is available.",
"homeTab": "Home",
"theaterTab": "Theater",
"createTab": "Create",
"openQuickMenu": "Open quick menu",
"quickAccess": "Quick access",
"currentSeries": "Current series",
@@ -29,6 +31,7 @@
"filter": "Filter",
"topCharts": "Top Charts",
"newReleases": "New Releases",
"newDramas": "New",
"trendingMicroDramas": "Trending Micro-Dramas",
"seeAll": "See All",
"trendingSubtitle": "Most binge-watched this week",
@@ -66,6 +69,19 @@
"localViewer": "Local Viewer",
"localDemoProfile": "Local demo profile",
"continueWatching": "Continue Watching",
"episodeRemaining": "Episode {episode} · {minutes} min left",
"@episodeRemaining": {
"placeholders": {
"episode": {"type": "int"},
"minutes": {"type": "int"}
}
},
"viewCountLabel": "{count} views",
"@viewCountLabel": {
"placeholders": {
"count": {"type": "int"}
}
},
"watchedPercent": "Watched {percent}%",
"@watchedPercent": {
"placeholders": {
@@ -88,6 +104,20 @@
"recommendedTab": "Recommended",
"noCategoryDramas": "No dramas in this category yet.",
"allDramas": "All Dramas",
"allLanguages": "All languages",
"bahasaMelayu": "Malay",
"createSubtitle": "Stories become short dramas",
"createAiTitle": "AI production",
"createAiSubtitle": "Start from a story or an idea",
"createUploadTitle": "Upload and publish",
"createUploadSubtitle": "Publish a finished short drama",
"weekdayMon": "Mon",
"weekdayTue": "Tue",
"weekdayWed": "Wed",
"weekdayThu": "Thu",
"weekdayFri": "Fri",
"weekdaySat": "Sat",
"weekdaySun": "Sun",
"trendingTab": "Trending",
"liveActionTab": "Live Action",
"search": "Search",
+30
View File
@@ -9,6 +9,8 @@
"demoTitle": "Sinyal",
"demoSynopsis": "Pratinjau video lokal singkat. Episode lain bisa ditambahkan saat medianya tersedia.",
"homeTab": "Beranda",
"theaterTab": "Teater",
"createTab": "Buat",
"openQuickMenu": "Buka menu cepat",
"quickAccess": "Akses cepat",
"currentSeries": "Serial saat ini",
@@ -29,6 +31,7 @@
"filter": "Filter",
"topCharts": "Peringkat Teratas",
"newReleases": "Rilisan Baru",
"newDramas": "Baru",
"trendingMicroDramas": "Drama Mini Populer",
"seeAll": "Lihat Semua",
"trendingSubtitle": "Paling banyak ditonton minggu ini",
@@ -66,6 +69,19 @@
"localViewer": "Penonton Lokal",
"localDemoProfile": "Profil demo lokal",
"continueWatching": "Lanjut Tonton",
"episodeRemaining": "Episode {episode} · {minutes} menit tersisa",
"@episodeRemaining": {
"placeholders": {
"episode": {"type": "int"},
"minutes": {"type": "int"}
}
},
"viewCountLabel": "{count} tayangan",
"@viewCountLabel": {
"placeholders": {
"count": {"type": "int"}
}
},
"watchedPercent": "Sudah ditonton {percent}%",
"@watchedPercent": {
"placeholders": {
@@ -88,6 +104,20 @@
"recommendedTab": "Rekomendasi",
"noCategoryDramas": "Belum ada drama di kategori ini.",
"allDramas": "Semua Drama",
"allLanguages": "Semua bahasa",
"bahasaMelayu": "Bahasa Melayu",
"createSubtitle": "Cerita menjadi drama pendek",
"createAiTitle": "Produksi AI",
"createAiSubtitle": "Mulai dari cerita atau ide",
"createUploadTitle": "Unggah dan terbitkan",
"createUploadSubtitle": "Terbitkan drama pendek yang sudah selesai",
"weekdayMon": "Sen",
"weekdayTue": "Sel",
"weekdayWed": "Rab",
"weekdayThu": "Kam",
"weekdayFri": "Jum",
"weekdaySat": "Sab",
"weekdaySun": "Min",
"trendingTab": "Sedang Tren",
"liveActionTab": "Live Action",
"search": "Cari",
+114
View File
@@ -154,6 +154,18 @@ abstract class AppLocalizations {
/// **'Home'**
String get homeTab;
/// No description provided for @theaterTab.
///
/// In en, this message translates to:
/// **'Theater'**
String get theaterTab;
/// No description provided for @createTab.
///
/// In en, this message translates to:
/// **'Create'**
String get createTab;
/// No description provided for @openQuickMenu.
///
/// In en, this message translates to:
@@ -274,6 +286,12 @@ abstract class AppLocalizations {
/// **'New Releases'**
String get newReleases;
/// No description provided for @newDramas.
///
/// In en, this message translates to:
/// **'New'**
String get newDramas;
/// No description provided for @trendingMicroDramas.
///
/// In en, this message translates to:
@@ -430,6 +448,18 @@ abstract class AppLocalizations {
/// **'Continue Watching'**
String get continueWatching;
/// No description provided for @episodeRemaining.
///
/// In en, this message translates to:
/// **'Episode {episode} · {minutes} min left'**
String episodeRemaining(int episode, int minutes);
/// No description provided for @viewCountLabel.
///
/// In en, this message translates to:
/// **'{count} views'**
String viewCountLabel(int count);
/// No description provided for @watchedPercent.
///
/// In en, this message translates to:
@@ -520,6 +550,90 @@ abstract class AppLocalizations {
/// **'All Dramas'**
String get allDramas;
/// No description provided for @allLanguages.
///
/// In en, this message translates to:
/// **'All languages'**
String get allLanguages;
/// No description provided for @bahasaMelayu.
///
/// In en, this message translates to:
/// **'Malay'**
String get bahasaMelayu;
/// No description provided for @createSubtitle.
///
/// In en, this message translates to:
/// **'Stories become short dramas'**
String get createSubtitle;
/// No description provided for @createAiTitle.
///
/// In en, this message translates to:
/// **'AI production'**
String get createAiTitle;
/// No description provided for @createAiSubtitle.
///
/// In en, this message translates to:
/// **'Start from a story or an idea'**
String get createAiSubtitle;
/// No description provided for @createUploadTitle.
///
/// In en, this message translates to:
/// **'Upload and publish'**
String get createUploadTitle;
/// No description provided for @createUploadSubtitle.
///
/// In en, this message translates to:
/// **'Publish a finished short drama'**
String get createUploadSubtitle;
/// No description provided for @weekdayMon.
///
/// In en, this message translates to:
/// **'Mon'**
String get weekdayMon;
/// No description provided for @weekdayTue.
///
/// In en, this message translates to:
/// **'Tue'**
String get weekdayTue;
/// No description provided for @weekdayWed.
///
/// In en, this message translates to:
/// **'Wed'**
String get weekdayWed;
/// No description provided for @weekdayThu.
///
/// In en, this message translates to:
/// **'Thu'**
String get weekdayThu;
/// No description provided for @weekdayFri.
///
/// In en, this message translates to:
/// **'Fri'**
String get weekdayFri;
/// No description provided for @weekdaySat.
///
/// In en, this message translates to:
/// **'Sat'**
String get weekdaySat;
/// No description provided for @weekdaySun.
///
/// In en, this message translates to:
/// **'Sun'**
String get weekdaySun;
/// No description provided for @trendingTab.
///
/// In en, this message translates to:
+61
View File
@@ -36,6 +36,12 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get homeTab => 'Home';
@override
String get theaterTab => 'Theater';
@override
String get createTab => 'Create';
@override
String get openQuickMenu => 'Open quick menu';
@@ -98,6 +104,9 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get newReleases => 'New Releases';
@override
String get newDramas => 'New';
@override
String get trendingMicroDramas => 'Trending Micro-Dramas';
@@ -182,6 +191,16 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get continueWatching => 'Continue Watching';
@override
String episodeRemaining(int episode, int minutes) {
return 'Episode $episode · $minutes min left';
}
@override
String viewCountLabel(int count) {
return '$count views';
}
@override
String watchedPercent(int percent) {
return 'Watched $percent%';
@@ -229,6 +248,48 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get allDramas => 'All Dramas';
@override
String get allLanguages => 'All languages';
@override
String get bahasaMelayu => 'Malay';
@override
String get createSubtitle => 'Stories become short dramas';
@override
String get createAiTitle => 'AI production';
@override
String get createAiSubtitle => 'Start from a story or an idea';
@override
String get createUploadTitle => 'Upload and publish';
@override
String get createUploadSubtitle => 'Publish a finished short drama';
@override
String get weekdayMon => 'Mon';
@override
String get weekdayTue => 'Tue';
@override
String get weekdayWed => 'Wed';
@override
String get weekdayThu => 'Thu';
@override
String get weekdayFri => 'Fri';
@override
String get weekdaySat => 'Sat';
@override
String get weekdaySun => 'Sun';
@override
String get trendingTab => 'Trending';
+62
View File
@@ -36,6 +36,12 @@ class AppLocalizationsId extends AppLocalizations {
@override
String get homeTab => 'Beranda';
@override
String get theaterTab => 'Teater';
@override
String get createTab => 'Buat';
@override
String get openQuickMenu => 'Buka menu cepat';
@@ -98,6 +104,9 @@ class AppLocalizationsId extends AppLocalizations {
@override
String get newReleases => 'Rilisan Baru';
@override
String get newDramas => 'Baru';
@override
String get trendingMicroDramas => 'Drama Mini Populer';
@@ -182,6 +191,16 @@ class AppLocalizationsId extends AppLocalizations {
@override
String get continueWatching => 'Lanjut Tonton';
@override
String episodeRemaining(int episode, int minutes) {
return 'Episode $episode · $minutes menit tersisa';
}
@override
String viewCountLabel(int count) {
return '$count tayangan';
}
@override
String watchedPercent(int percent) {
return 'Sudah ditonton $percent%';
@@ -229,6 +248,49 @@ class AppLocalizationsId extends AppLocalizations {
@override
String get allDramas => 'Semua Drama';
@override
String get allLanguages => 'Semua bahasa';
@override
String get bahasaMelayu => 'Bahasa Melayu';
@override
String get createSubtitle => 'Cerita menjadi drama pendek';
@override
String get createAiTitle => 'Produksi AI';
@override
String get createAiSubtitle => 'Mulai dari cerita atau ide';
@override
String get createUploadTitle => 'Unggah dan terbitkan';
@override
String get createUploadSubtitle =>
'Terbitkan drama pendek yang sudah selesai';
@override
String get weekdayMon => 'Sen';
@override
String get weekdayTue => 'Sel';
@override
String get weekdayWed => 'Rab';
@override
String get weekdayThu => 'Kam';
@override
String get weekdayFri => 'Jum';
@override
String get weekdaySat => 'Sab';
@override
String get weekdaySun => 'Min';
@override
String get trendingTab => 'Sedang Tren';
+61
View File
@@ -35,6 +35,12 @@ class AppLocalizationsZh extends AppLocalizations {
@override
String get homeTab => '首页';
@override
String get theaterTab => '剧场';
@override
String get createTab => '创作';
@override
String get openQuickMenu => '打开快捷菜单';
@@ -95,6 +101,9 @@ class AppLocalizationsZh extends AppLocalizations {
@override
String get newReleases => '新剧';
@override
String get newDramas => '新剧';
@override
String get trendingMicroDramas => '热门短剧';
@@ -177,6 +186,16 @@ class AppLocalizationsZh extends AppLocalizations {
@override
String get continueWatching => '继续观看';
@override
String episodeRemaining(int episode, int minutes) {
return '第 $episode 集 · 还剩 $minutes 分钟';
}
@override
String viewCountLabel(int count) {
return '$count 次播放';
}
@override
String watchedPercent(int percent) {
return '已观看 $percent%';
@@ -224,6 +243,48 @@ class AppLocalizationsZh extends AppLocalizations {
@override
String get allDramas => '全部剧目';
@override
String get allLanguages => '全部语言';
@override
String get bahasaMelayu => '马来语';
@override
String get createSubtitle => '让故事成为漫剧';
@override
String get createAiTitle => 'AI 制作';
@override
String get createAiSubtitle => '从故事或想法开始';
@override
String get createUploadTitle => '上传发布';
@override
String get createUploadSubtitle => '发布已完成的漫剧';
@override
String get weekdayMon => '周一';
@override
String get weekdayTue => '周二';
@override
String get weekdayWed => '周三';
@override
String get weekdayThu => '周四';
@override
String get weekdayFri => '周五';
@override
String get weekdaySat => '周六';
@override
String get weekdaySun => '周日';
@override
String get trendingTab => '热门';
+30
View File
@@ -9,6 +9,8 @@
"demoTitle": "信号",
"demoSynopsis": "使用本地视频进行播放预览,后续有素材再增加剧集。",
"homeTab": "首页",
"theaterTab": "剧场",
"createTab": "创作",
"openQuickMenu": "打开快捷菜单",
"quickAccess": "快捷入口",
"currentSeries": "当前短剧",
@@ -29,6 +31,7 @@
"filter": "筛选",
"topCharts": "排行榜",
"newReleases": "新剧",
"newDramas": "新剧",
"trendingMicroDramas": "热门短剧",
"seeAll": "查看全部",
"trendingSubtitle": "本周追看最多",
@@ -66,6 +69,19 @@
"localViewer": "本地观众",
"localDemoProfile": "本地演示档案",
"continueWatching": "继续观看",
"episodeRemaining": "第 {episode} 集 · 还剩 {minutes} 分钟",
"@episodeRemaining": {
"placeholders": {
"episode": {"type": "int"},
"minutes": {"type": "int"}
}
},
"viewCountLabel": "{count} 次播放",
"@viewCountLabel": {
"placeholders": {
"count": {"type": "int"}
}
},
"watchedPercent": "已观看 {percent}%",
"@watchedPercent": {
"placeholders": {
@@ -88,6 +104,20 @@
"recommendedTab": "推荐",
"noCategoryDramas": "这个分类暂时没有剧集。",
"allDramas": "全部剧目",
"allLanguages": "全部语言",
"bahasaMelayu": "马来语",
"createSubtitle": "让故事成为漫剧",
"createAiTitle": "AI 制作",
"createAiSubtitle": "从故事或想法开始",
"createUploadTitle": "上传发布",
"createUploadSubtitle": "发布已完成的漫剧",
"weekdayMon": "周一",
"weekdayTue": "周二",
"weekdayWed": "周三",
"weekdayThu": "周四",
"weekdayFri": "周五",
"weekdaySat": "周六",
"weekdaySun": "周日",
"trendingTab": "热门",
"liveActionTab": "真人剧",
"search": "搜索",