feat(flutter): 重构播放页并增加语言切换

This commit is contained in:
Zhou Weidong committed 2026-10-20 11:01:38 +08:00
1 parent f1efbc5be8
commit 8c43e9e385
34 files changed
+1331 -879

No files matched your search

+15 -2
View File
@@ -581,7 +581,7 @@
"@searchResultCount": { "placeholders": { "count": { "type": "int" } } },
"episodeCountLabel": "{count} episodes",
"@episodeCountLabel": { "placeholders": { "count": { "type": "int" } } },
"commentsWithCount": "Comments ({count})",
"commentsWithCount": "{count} comments",
"@commentsWithCount": { "placeholders": { "count": { "type": "int" } } },
"textSize": "Text size",
"textSizeSmall": "Small",
@@ -590,5 +590,18 @@
"watchAdToUnlock": "Watch an ad to unlock",
"unlockWithVip": "Unlock with VIP",
"unlockMethodsVary": "Available unlock methods vary by title.",
"unlockEpisode": "Unlock this episode"
"unlockEpisode": "Unlock this episode",
"language": "Language",
"fullScreenWatch": "Full screen",
"freeWatch": "Free watch",
"showMore": "More",
"qualityUnavailable": "Unavailable",
"notInterested": "Not interested",
"clearPlayback": "Clear-screen playback",
"danmaku": "Danmaku",
"danmakuUnavailable": "Coming soon",
"danmakuSettings": "Danmaku settings",
"offlineCache": "Offline cache",
"screenCast": "Cast",
"sleepTimer": "Sleep timer"
}
+15 -2
View File
@@ -579,7 +579,7 @@
"@searchResultCount": { "placeholders": { "count": { "type": "int" } } },
"episodeCountLabel": "{count} episode",
"@episodeCountLabel": { "placeholders": { "count": { "type": "int" } } },
"commentsWithCount": "Komentar ({count})",
"commentsWithCount": "{count} komentar",
"@commentsWithCount": { "placeholders": { "count": { "type": "int" } } },
"textSize": "Ukuran teks",
"textSizeSmall": "Kecil",
@@ -588,5 +588,18 @@
"watchAdToUnlock": "Tonton iklan untuk membuka",
"unlockWithVip": "Buka dengan VIP",
"unlockMethodsVary": "Metode pembukaan tersedia dapat berbeda per judul.",
"unlockEpisode": "Buka episode ini"
"unlockEpisode": "Buka episode ini",
"language": "Bahasa",
"fullScreenWatch": "Layar penuh",
"freeWatch": "Tonton gratis",
"showMore": "Selengkapnya",
"qualityUnavailable": "Tidak tersedia",
"notInterested": "Tidak tertarik",
"clearPlayback": "Putar tanpa kontrol",
"danmaku": "Komentar layar",
"danmakuUnavailable": "Belum tersedia",
"danmakuSettings": "Pengaturan komentar layar",
"offlineCache": "Cache offline",
"screenCast": "Cast",
"sleepTimer": "Timer tidur"
}
+79 -1
View File
@@ -2581,7 +2581,7 @@ abstract class AppLocalizations {
/// No description provided for @commentsWithCount.
///
/// In en, this message translates to:
/// **'Comments ({count})'**
/// **'{count} comments'**
String commentsWithCount(int count);
/// No description provided for @textSize.
@@ -2631,6 +2631,84 @@ abstract class AppLocalizations {
/// In en, this message translates to:
/// **'Unlock this episode'**
String get unlockEpisode;
/// No description provided for @language.
///
/// In en, this message translates to:
/// **'Language'**
String get language;
/// No description provided for @fullScreenWatch.
///
/// In en, this message translates to:
/// **'Full screen'**
String get fullScreenWatch;
/// No description provided for @freeWatch.
///
/// In en, this message translates to:
/// **'Free watch'**
String get freeWatch;
/// No description provided for @showMore.
///
/// In en, this message translates to:
/// **'More'**
String get showMore;
/// No description provided for @qualityUnavailable.
///
/// In en, this message translates to:
/// **'Unavailable'**
String get qualityUnavailable;
/// No description provided for @notInterested.
///
/// In en, this message translates to:
/// **'Not interested'**
String get notInterested;
/// No description provided for @clearPlayback.
///
/// In en, this message translates to:
/// **'Clear-screen playback'**
String get clearPlayback;
/// No description provided for @danmaku.
///
/// In en, this message translates to:
/// **'Danmaku'**
String get danmaku;
/// No description provided for @danmakuUnavailable.
///
/// In en, this message translates to:
/// **'Coming soon'**
String get danmakuUnavailable;
/// No description provided for @danmakuSettings.
///
/// In en, this message translates to:
/// **'Danmaku settings'**
String get danmakuSettings;
/// No description provided for @offlineCache.
///
/// In en, this message translates to:
/// **'Offline cache'**
String get offlineCache;
/// No description provided for @screenCast.
///
/// In en, this message translates to:
/// **'Cast'**
String get screenCast;
/// No description provided for @sleepTimer.
///
/// In en, this message translates to:
/// **'Sleep timer'**
String get sleepTimer;
}
class _AppLocalizationsDelegate
+40 -1
View File
@@ -1338,7 +1338,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String commentsWithCount(int count) {
return 'Comments ($count)';
return '$count comments';
}
@override
@@ -1364,4 +1364,43 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get unlockEpisode => 'Unlock this episode';
@override
String get language => 'Language';
@override
String get fullScreenWatch => 'Full screen';
@override
String get freeWatch => 'Free watch';
@override
String get showMore => 'More';
@override
String get qualityUnavailable => 'Unavailable';
@override
String get notInterested => 'Not interested';
@override
String get clearPlayback => 'Clear-screen playback';
@override
String get danmaku => 'Danmaku';
@override
String get danmakuUnavailable => 'Coming soon';
@override
String get danmakuSettings => 'Danmaku settings';
@override
String get offlineCache => 'Offline cache';
@override
String get screenCast => 'Cast';
@override
String get sleepTimer => 'Sleep timer';
}
+40 -1
View File
@@ -1337,7 +1337,7 @@ class AppLocalizationsId extends AppLocalizations {
@override
String commentsWithCount(int count) {
return 'Komentar ($count)';
return '$count komentar';
}
@override
@@ -1364,4 +1364,43 @@ class AppLocalizationsId extends AppLocalizations {
@override
String get unlockEpisode => 'Buka episode ini';
@override
String get language => 'Bahasa';
@override
String get fullScreenWatch => 'Layar penuh';
@override
String get freeWatch => 'Tonton gratis';
@override
String get showMore => 'Selengkapnya';
@override
String get qualityUnavailable => 'Tidak tersedia';
@override
String get notInterested => 'Tidak tertarik';
@override
String get clearPlayback => 'Putar tanpa kontrol';
@override
String get danmaku => 'Komentar layar';
@override
String get danmakuUnavailable => 'Belum tersedia';
@override
String get danmakuSettings => 'Pengaturan komentar layar';
@override
String get offlineCache => 'Cache offline';
@override
String get screenCast => 'Cast';
@override
String get sleepTimer => 'Timer tidur';
}
+40 -1
View File
@@ -1314,7 +1314,7 @@ class AppLocalizationsZh extends AppLocalizations {
@override
String commentsWithCount(int count) {
return '评论($count)';
return '$count 条评论';
}
@override
@@ -1340,4 +1340,43 @@ class AppLocalizationsZh extends AppLocalizations {
@override
String get unlockEpisode => '解锁本集';
@override
String get language => '语言';
@override
String get fullScreenWatch => '全屏观看';
@override
String get freeWatch => '免费观看';
@override
String get showMore => '展开';
@override
String get qualityUnavailable => '暂不可用';
@override
String get notInterested => '不感兴趣';
@override
String get clearPlayback => '清屏播放';
@override
String get danmaku => '弹幕';
@override
String get danmakuUnavailable => '暂未开放';
@override
String get danmakuSettings => '弹幕设置';
@override
String get offlineCache => '离线缓存';
@override
String get screenCast => '投屏';
@override
String get sleepTimer => '定时关闭';
}
+15 -2
View File
@@ -541,7 +541,7 @@
"@searchResultCount": { "placeholders": { "count": { "type": "int" } } },
"episodeCountLabel": "共 {count} 集",
"@episodeCountLabel": { "placeholders": { "count": { "type": "int" } } },
"commentsWithCount": "评论({count})",
"commentsWithCount": "{count} 条评论",
"@commentsWithCount": { "placeholders": { "count": { "type": "int" } } },
"textSize": "文字大小",
"textSizeSmall": "小",
@@ -550,5 +550,18 @@
"watchAdToUnlock": "看广告解锁",
"unlockWithVip": "会员解锁",
"unlockMethodsVary": "具体解锁方式以作品而定。",
"unlockEpisode": "解锁本集"
"unlockEpisode": "解锁本集",
"language": "语言",
"fullScreenWatch": "全屏观看",
"freeWatch": "免费观看",
"showMore": "展开",
"qualityUnavailable": "暂不可用",
"notInterested": "不感兴趣",
"clearPlayback": "清屏播放",
"danmaku": "弹幕",
"danmakuUnavailable": "暂未开放",
"danmakuSettings": "弹幕设置",
"offlineCache": "离线缓存",
"screenCast": "投屏",
"sleepTimer": "定时关闭"
}