feat(flutter): 接入分类记录收藏与下载授权
This commit is contained in:
1 parent
00280ca0da
commit
cc4d7c5a9d
52 files changed
+4440
-171
No files matched your search
+78
-1
@@ -141,6 +141,7 @@
|
||||
"lockedBody": "Unlocking will be available after store and verification setup. This demo does not process payments.",
|
||||
"playbackError": "This clip could not be played.",
|
||||
"catalogError": "The catalog could not be loaded.",
|
||||
"categoriesError": "Categories could not be loaded.",
|
||||
"detailError": "The episode list could not be loaded.",
|
||||
"noMediaNotice": "This episode has no playable media yet.",
|
||||
"noStories": "No stories available yet.",
|
||||
@@ -223,7 +224,7 @@
|
||||
"authSwitchToSignUp": "New here? Create an account",
|
||||
"authSwitchToSignIn": "Already have an account? Sign in",
|
||||
"authGateTitle": "Sign in to continue",
|
||||
"authGateMessage": "Favorites and comments need an account.",
|
||||
"authGateMessage": "Watch history, favorites, comments and downloads need an account.",
|
||||
"authGateAction": "Sign In",
|
||||
"cancel": "Not now",
|
||||
"noEpisodesYet": "No playable episodes yet.",
|
||||
@@ -231,6 +232,82 @@
|
||||
"progressError": "Your watch position could not be loaded.",
|
||||
"favoritesError": "Your favorites could not be loaded.",
|
||||
"favoriteToggleFailed": "Could not update favorites. Please retry.",
|
||||
"myFavorites": "My favorites",
|
||||
"noFavorites": "No favorites yet.",
|
||||
"downloads": "Downloads",
|
||||
"downloadsError": "Download settings could not be loaded.",
|
||||
"noDownloads": "No download authorizations yet.",
|
||||
"downloadedItems": "Download authorizations",
|
||||
"downloadQuota": "{remaining} of {max} authorizations available",
|
||||
"@downloadQuota": {
|
||||
"placeholders": {
|
||||
"remaining": {
|
||||
"type": "int"
|
||||
},
|
||||
"max": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloadLicenseDays": "Authorization valid for {days} days",
|
||||
"@downloadLicenseDays": {
|
||||
"placeholders": {
|
||||
"days": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloadWifiOnly": "Wi-Fi only",
|
||||
"downloadQuality": "Maximum quality",
|
||||
"downloadStatus": "Authorization: {status}",
|
||||
"@downloadStatus": {
|
||||
"placeholders": {
|
||||
"status": {}
|
||||
}
|
||||
},
|
||||
"downloadTaskStatus": "Task: {status}",
|
||||
"@downloadTaskStatus": {
|
||||
"placeholders": {
|
||||
"status": {}
|
||||
}
|
||||
},
|
||||
"downloadProgress": "{progress}%",
|
||||
"@downloadProgress": {
|
||||
"placeholders": {
|
||||
"progress": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloadExpiresAt": "Expires {time}",
|
||||
"@downloadExpiresAt": {
|
||||
"placeholders": {
|
||||
"time": {}
|
||||
}
|
||||
},
|
||||
"clearDownloadsTitle": "Clear download authorizations?",
|
||||
"clearDownloadsMessage": "This revokes every download authorization for this device.",
|
||||
"downloadSettingsFailed": "Could not update download settings.",
|
||||
"downloadDeleteFailed": "Could not remove this download authorization.",
|
||||
"downloadClearFailed": "Could not clear download authorizations.",
|
||||
"downloadGrantFailed": "Could not request this download.",
|
||||
"downloadGranted": "Download authorization is ready.",
|
||||
"noWatchRecords": "No watch history yet.",
|
||||
"recordDeleteFailed": "Could not delete this record. Please retry.",
|
||||
"recordClearFailed": "Could not clear watch history. Please retry.",
|
||||
"clearAll": "Clear all",
|
||||
"clearWatchHistoryTitle": "Clear watch history?",
|
||||
"clearWatchHistoryMessage": "This removes the watch history from your account.",
|
||||
"confirmClear": "Clear",
|
||||
"detailLoadFailed": "Details failed to load",
|
||||
"retryDetail": "Retry",
|
||||
"episodeUnavailable": "Episode unavailable",
|
||||
"updatedAtLabel": "Updated {time}",
|
||||
"@updatedAtLabel": {
|
||||
"placeholders": {
|
||||
"time": {}
|
||||
}
|
||||
},
|
||||
"remove": "Remove",
|
||||
"unlockComingSoon": "Unlocking with coins is coming soon.",
|
||||
"resumeProgress": "Resume at {position} / {total}",
|
||||
|
||||
+78
-1
@@ -141,6 +141,7 @@
|
||||
"lockedBody": "Pembukaan kunci tersedia setelah toko dan verifikasi disiapkan. Demo ini tidak memproses pembayaran.",
|
||||
"playbackError": "Klip ini tidak bisa diputar.",
|
||||
"catalogError": "Katalog gagal dimuat.",
|
||||
"categoriesError": "Kategori gagal dimuat.",
|
||||
"detailError": "Daftar episode gagal dimuat.",
|
||||
"noMediaNotice": "Episode ini belum punya media yang bisa diputar.",
|
||||
"noStories": "Belum ada cerita.",
|
||||
@@ -223,7 +224,7 @@
|
||||
"authSwitchToSignUp": "Baru di sini? Buat akun",
|
||||
"authSwitchToSignIn": "Sudah punya akun? Masuk",
|
||||
"authGateTitle": "Masuk untuk melanjutkan",
|
||||
"authGateMessage": "Favorit dan komentar perlu akun.",
|
||||
"authGateMessage": "Riwayat tontonan, favorit, komentar, dan unduhan perlu akun.",
|
||||
"authGateAction": "Masuk",
|
||||
"cancel": "Nanti saja",
|
||||
"noEpisodesYet": "Belum ada episode yang bisa diputar.",
|
||||
@@ -231,6 +232,82 @@
|
||||
"progressError": "Posisi tonton gagal dimuat.",
|
||||
"favoritesError": "Daftar favorit gagal dimuat.",
|
||||
"favoriteToggleFailed": "Gagal memperbarui favorit. Coba lagi.",
|
||||
"myFavorites": "Favorit saya",
|
||||
"noFavorites": "Belum ada favorit.",
|
||||
"downloads": "Unduhan",
|
||||
"downloadsError": "Pengaturan unduhan gagal dimuat.",
|
||||
"noDownloads": "Belum ada izin unduhan.",
|
||||
"downloadedItems": "Izin unduhan",
|
||||
"downloadQuota": "{remaining} dari {max} izin tersedia",
|
||||
"@downloadQuota": {
|
||||
"placeholders": {
|
||||
"remaining": {
|
||||
"type": "int"
|
||||
},
|
||||
"max": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloadLicenseDays": "Izin berlaku {days} hari",
|
||||
"@downloadLicenseDays": {
|
||||
"placeholders": {
|
||||
"days": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloadWifiOnly": "Hanya Wi-Fi",
|
||||
"downloadQuality": "Kualitas maksimum",
|
||||
"downloadStatus": "Izin: {status}",
|
||||
"@downloadStatus": {
|
||||
"placeholders": {
|
||||
"status": {}
|
||||
}
|
||||
},
|
||||
"downloadTaskStatus": "Tugas: {status}",
|
||||
"@downloadTaskStatus": {
|
||||
"placeholders": {
|
||||
"status": {}
|
||||
}
|
||||
},
|
||||
"downloadProgress": "{progress}%",
|
||||
"@downloadProgress": {
|
||||
"placeholders": {
|
||||
"progress": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloadExpiresAt": "Berakhir {time}",
|
||||
"@downloadExpiresAt": {
|
||||
"placeholders": {
|
||||
"time": {}
|
||||
}
|
||||
},
|
||||
"clearDownloadsTitle": "Hapus izin unduhan?",
|
||||
"clearDownloadsMessage": "Semua izin unduhan untuk perangkat ini akan dicabut.",
|
||||
"downloadSettingsFailed": "Gagal memperbarui pengaturan unduhan.",
|
||||
"downloadDeleteFailed": "Gagal menghapus izin unduhan ini.",
|
||||
"downloadClearFailed": "Gagal menghapus semua izin unduhan.",
|
||||
"downloadGrantFailed": "Gagal meminta unduhan ini.",
|
||||
"downloadGranted": "Izin unduhan sudah siap.",
|
||||
"noWatchRecords": "Belum ada riwayat tontonan.",
|
||||
"recordDeleteFailed": "Gagal menghapus riwayat ini. Coba lagi.",
|
||||
"recordClearFailed": "Gagal menghapus semua riwayat. Coba lagi.",
|
||||
"clearAll": "Hapus semua",
|
||||
"clearWatchHistoryTitle": "Hapus riwayat tontonan?",
|
||||
"clearWatchHistoryMessage": "Semua riwayat akan dihapus dari akun kamu.",
|
||||
"confirmClear": "Hapus",
|
||||
"detailLoadFailed": "Detail drama gagal dimuat",
|
||||
"retryDetail": "Coba lagi",
|
||||
"episodeUnavailable": "Episode tidak tersedia",
|
||||
"updatedAtLabel": "Diperbarui {time}",
|
||||
"@updatedAtLabel": {
|
||||
"placeholders": {
|
||||
"time": {}
|
||||
}
|
||||
},
|
||||
"remove": "Hapus",
|
||||
"unlockComingSoon": "Pembukaan dengan koin segera hadir.",
|
||||
"resumeProgress": "Lanjut di {position} / {total}",
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
// Author: fruit.com.cn
|
||||
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:flutter/foundation.dart';
|
||||
@@ -636,6 +634,12 @@ abstract class AppLocalizations {
|
||||
/// **'The catalog could not be loaded.'**
|
||||
String get catalogError;
|
||||
|
||||
/// No description provided for @categoriesError.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Categories could not be loaded.'**
|
||||
String get categoriesError;
|
||||
|
||||
/// No description provided for @detailError.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
@@ -1131,7 +1135,7 @@ abstract class AppLocalizations {
|
||||
/// No description provided for @authGateMessage.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Favorites and comments need an account.'**
|
||||
/// **'Watch history, favorites, comments and downloads need an account.'**
|
||||
String get authGateMessage;
|
||||
|
||||
/// No description provided for @authGateAction.
|
||||
@@ -1176,6 +1180,198 @@ abstract class AppLocalizations {
|
||||
/// **'Could not update favorites. Please retry.'**
|
||||
String get favoriteToggleFailed;
|
||||
|
||||
/// No description provided for @myFavorites.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'My favorites'**
|
||||
String get myFavorites;
|
||||
|
||||
/// No description provided for @noFavorites.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'No favorites yet.'**
|
||||
String get noFavorites;
|
||||
|
||||
/// No description provided for @downloads.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Downloads'**
|
||||
String get downloads;
|
||||
|
||||
/// No description provided for @downloadsError.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Download settings could not be loaded.'**
|
||||
String get downloadsError;
|
||||
|
||||
/// No description provided for @noDownloads.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'No download authorizations yet.'**
|
||||
String get noDownloads;
|
||||
|
||||
/// No description provided for @downloadedItems.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Download authorizations'**
|
||||
String get downloadedItems;
|
||||
|
||||
/// No description provided for @downloadQuota.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'{remaining} of {max} authorizations available'**
|
||||
String downloadQuota(int remaining, int max);
|
||||
|
||||
/// No description provided for @downloadLicenseDays.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Authorization valid for {days} days'**
|
||||
String downloadLicenseDays(int days);
|
||||
|
||||
/// No description provided for @downloadWifiOnly.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Wi-Fi only'**
|
||||
String get downloadWifiOnly;
|
||||
|
||||
/// No description provided for @downloadQuality.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Maximum quality'**
|
||||
String get downloadQuality;
|
||||
|
||||
/// No description provided for @downloadStatus.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Authorization: {status}'**
|
||||
String downloadStatus(Object status);
|
||||
|
||||
/// No description provided for @downloadTaskStatus.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Task: {status}'**
|
||||
String downloadTaskStatus(Object status);
|
||||
|
||||
/// No description provided for @downloadProgress.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'{progress}%'**
|
||||
String downloadProgress(int progress);
|
||||
|
||||
/// No description provided for @downloadExpiresAt.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Expires {time}'**
|
||||
String downloadExpiresAt(Object time);
|
||||
|
||||
/// No description provided for @clearDownloadsTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Clear download authorizations?'**
|
||||
String get clearDownloadsTitle;
|
||||
|
||||
/// No description provided for @clearDownloadsMessage.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'This revokes every download authorization for this device.'**
|
||||
String get clearDownloadsMessage;
|
||||
|
||||
/// No description provided for @downloadSettingsFailed.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Could not update download settings.'**
|
||||
String get downloadSettingsFailed;
|
||||
|
||||
/// No description provided for @downloadDeleteFailed.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Could not remove this download authorization.'**
|
||||
String get downloadDeleteFailed;
|
||||
|
||||
/// No description provided for @downloadClearFailed.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Could not clear download authorizations.'**
|
||||
String get downloadClearFailed;
|
||||
|
||||
/// No description provided for @downloadGrantFailed.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Could not request this download.'**
|
||||
String get downloadGrantFailed;
|
||||
|
||||
/// No description provided for @downloadGranted.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Download authorization is ready.'**
|
||||
String get downloadGranted;
|
||||
|
||||
/// No description provided for @noWatchRecords.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'No watch history yet.'**
|
||||
String get noWatchRecords;
|
||||
|
||||
/// No description provided for @recordDeleteFailed.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Could not delete this record. Please retry.'**
|
||||
String get recordDeleteFailed;
|
||||
|
||||
/// No description provided for @recordClearFailed.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Could not clear watch history. Please retry.'**
|
||||
String get recordClearFailed;
|
||||
|
||||
/// No description provided for @clearAll.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Clear all'**
|
||||
String get clearAll;
|
||||
|
||||
/// No description provided for @clearWatchHistoryTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Clear watch history?'**
|
||||
String get clearWatchHistoryTitle;
|
||||
|
||||
/// No description provided for @clearWatchHistoryMessage.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'This removes the watch history from your account.'**
|
||||
String get clearWatchHistoryMessage;
|
||||
|
||||
/// No description provided for @confirmClear.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Clear'**
|
||||
String get confirmClear;
|
||||
|
||||
/// No description provided for @detailLoadFailed.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Details failed to load'**
|
||||
String get detailLoadFailed;
|
||||
|
||||
/// No description provided for @retryDetail.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Retry'**
|
||||
String get retryDetail;
|
||||
|
||||
/// No description provided for @episodeUnavailable.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Episode unavailable'**
|
||||
String get episodeUnavailable;
|
||||
|
||||
/// No description provided for @updatedAtLabel.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Updated {time}'**
|
||||
String updatedAtLabel(Object time);
|
||||
|
||||
/// No description provided for @remove.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
// Author: fruit.com.cn
|
||||
|
||||
// ignore: unused_import
|
||||
import 'package:intl/intl.dart' as intl;
|
||||
import 'app_localizations.dart';
|
||||
@@ -296,6 +294,9 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
@override
|
||||
String get catalogError => 'The catalog could not be loaded.';
|
||||
|
||||
@override
|
||||
String get categoriesError => 'Categories could not be loaded.';
|
||||
|
||||
@override
|
||||
String get detailError => 'The episode list could not be loaded.';
|
||||
|
||||
@@ -546,7 +547,8 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
String get authGateTitle => 'Sign in to continue';
|
||||
|
||||
@override
|
||||
String get authGateMessage => 'Favorites and comments need an account.';
|
||||
String get authGateMessage =>
|
||||
'Watch history, favorites, comments and downloads need an account.';
|
||||
|
||||
@override
|
||||
String get authGateAction => 'Sign In';
|
||||
@@ -571,6 +573,121 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
String get favoriteToggleFailed =>
|
||||
'Could not update favorites. Please retry.';
|
||||
|
||||
@override
|
||||
String get myFavorites => 'My favorites';
|
||||
|
||||
@override
|
||||
String get noFavorites => 'No favorites yet.';
|
||||
|
||||
@override
|
||||
String get downloads => 'Downloads';
|
||||
|
||||
@override
|
||||
String get downloadsError => 'Download settings could not be loaded.';
|
||||
|
||||
@override
|
||||
String get noDownloads => 'No download authorizations yet.';
|
||||
|
||||
@override
|
||||
String get downloadedItems => 'Download authorizations';
|
||||
|
||||
@override
|
||||
String downloadQuota(int remaining, int max) {
|
||||
return '$remaining of $max authorizations available';
|
||||
}
|
||||
|
||||
@override
|
||||
String downloadLicenseDays(int days) {
|
||||
return 'Authorization valid for $days days';
|
||||
}
|
||||
|
||||
@override
|
||||
String get downloadWifiOnly => 'Wi-Fi only';
|
||||
|
||||
@override
|
||||
String get downloadQuality => 'Maximum quality';
|
||||
|
||||
@override
|
||||
String downloadStatus(Object status) {
|
||||
return 'Authorization: $status';
|
||||
}
|
||||
|
||||
@override
|
||||
String downloadTaskStatus(Object status) {
|
||||
return 'Task: $status';
|
||||
}
|
||||
|
||||
@override
|
||||
String downloadProgress(int progress) {
|
||||
return '$progress%';
|
||||
}
|
||||
|
||||
@override
|
||||
String downloadExpiresAt(Object time) {
|
||||
return 'Expires $time';
|
||||
}
|
||||
|
||||
@override
|
||||
String get clearDownloadsTitle => 'Clear download authorizations?';
|
||||
|
||||
@override
|
||||
String get clearDownloadsMessage =>
|
||||
'This revokes every download authorization for this device.';
|
||||
|
||||
@override
|
||||
String get downloadSettingsFailed => 'Could not update download settings.';
|
||||
|
||||
@override
|
||||
String get downloadDeleteFailed =>
|
||||
'Could not remove this download authorization.';
|
||||
|
||||
@override
|
||||
String get downloadClearFailed => 'Could not clear download authorizations.';
|
||||
|
||||
@override
|
||||
String get downloadGrantFailed => 'Could not request this download.';
|
||||
|
||||
@override
|
||||
String get downloadGranted => 'Download authorization is ready.';
|
||||
|
||||
@override
|
||||
String get noWatchRecords => 'No watch history yet.';
|
||||
|
||||
@override
|
||||
String get recordDeleteFailed =>
|
||||
'Could not delete this record. Please retry.';
|
||||
|
||||
@override
|
||||
String get recordClearFailed =>
|
||||
'Could not clear watch history. Please retry.';
|
||||
|
||||
@override
|
||||
String get clearAll => 'Clear all';
|
||||
|
||||
@override
|
||||
String get clearWatchHistoryTitle => 'Clear watch history?';
|
||||
|
||||
@override
|
||||
String get clearWatchHistoryMessage =>
|
||||
'This removes the watch history from your account.';
|
||||
|
||||
@override
|
||||
String get confirmClear => 'Clear';
|
||||
|
||||
@override
|
||||
String get detailLoadFailed => 'Details failed to load';
|
||||
|
||||
@override
|
||||
String get retryDetail => 'Retry';
|
||||
|
||||
@override
|
||||
String get episodeUnavailable => 'Episode unavailable';
|
||||
|
||||
@override
|
||||
String updatedAtLabel(Object time) {
|
||||
return 'Updated $time';
|
||||
}
|
||||
|
||||
@override
|
||||
String get remove => 'Remove';
|
||||
|
||||
|
||||
@@ -295,6 +295,9 @@ class AppLocalizationsId extends AppLocalizations {
|
||||
@override
|
||||
String get catalogError => 'Katalog gagal dimuat.';
|
||||
|
||||
@override
|
||||
String get categoriesError => 'Kategori gagal dimuat.';
|
||||
|
||||
@override
|
||||
String get detailError => 'Daftar episode gagal dimuat.';
|
||||
|
||||
@@ -546,7 +549,8 @@ class AppLocalizationsId extends AppLocalizations {
|
||||
String get authGateTitle => 'Masuk untuk melanjutkan';
|
||||
|
||||
@override
|
||||
String get authGateMessage => 'Favorit dan komentar perlu akun.';
|
||||
String get authGateMessage =>
|
||||
'Riwayat tontonan, favorit, komentar, dan unduhan perlu akun.';
|
||||
|
||||
@override
|
||||
String get authGateAction => 'Masuk';
|
||||
@@ -570,6 +574,118 @@ class AppLocalizationsId extends AppLocalizations {
|
||||
@override
|
||||
String get favoriteToggleFailed => 'Gagal memperbarui favorit. Coba lagi.';
|
||||
|
||||
@override
|
||||
String get myFavorites => 'Favorit saya';
|
||||
|
||||
@override
|
||||
String get noFavorites => 'Belum ada favorit.';
|
||||
|
||||
@override
|
||||
String get downloads => 'Unduhan';
|
||||
|
||||
@override
|
||||
String get downloadsError => 'Pengaturan unduhan gagal dimuat.';
|
||||
|
||||
@override
|
||||
String get noDownloads => 'Belum ada izin unduhan.';
|
||||
|
||||
@override
|
||||
String get downloadedItems => 'Izin unduhan';
|
||||
|
||||
@override
|
||||
String downloadQuota(int remaining, int max) {
|
||||
return '$remaining dari $max izin tersedia';
|
||||
}
|
||||
|
||||
@override
|
||||
String downloadLicenseDays(int days) {
|
||||
return 'Izin berlaku $days hari';
|
||||
}
|
||||
|
||||
@override
|
||||
String get downloadWifiOnly => 'Hanya Wi-Fi';
|
||||
|
||||
@override
|
||||
String get downloadQuality => 'Kualitas maksimum';
|
||||
|
||||
@override
|
||||
String downloadStatus(Object status) {
|
||||
return 'Izin: $status';
|
||||
}
|
||||
|
||||
@override
|
||||
String downloadTaskStatus(Object status) {
|
||||
return 'Tugas: $status';
|
||||
}
|
||||
|
||||
@override
|
||||
String downloadProgress(int progress) {
|
||||
return '$progress%';
|
||||
}
|
||||
|
||||
@override
|
||||
String downloadExpiresAt(Object time) {
|
||||
return 'Berakhir $time';
|
||||
}
|
||||
|
||||
@override
|
||||
String get clearDownloadsTitle => 'Hapus izin unduhan?';
|
||||
|
||||
@override
|
||||
String get clearDownloadsMessage =>
|
||||
'Semua izin unduhan untuk perangkat ini akan dicabut.';
|
||||
|
||||
@override
|
||||
String get downloadSettingsFailed => 'Gagal memperbarui pengaturan unduhan.';
|
||||
|
||||
@override
|
||||
String get downloadDeleteFailed => 'Gagal menghapus izin unduhan ini.';
|
||||
|
||||
@override
|
||||
String get downloadClearFailed => 'Gagal menghapus semua izin unduhan.';
|
||||
|
||||
@override
|
||||
String get downloadGrantFailed => 'Gagal meminta unduhan ini.';
|
||||
|
||||
@override
|
||||
String get downloadGranted => 'Izin unduhan sudah siap.';
|
||||
|
||||
@override
|
||||
String get noWatchRecords => 'Belum ada riwayat tontonan.';
|
||||
|
||||
@override
|
||||
String get recordDeleteFailed => 'Gagal menghapus riwayat ini. Coba lagi.';
|
||||
|
||||
@override
|
||||
String get recordClearFailed => 'Gagal menghapus semua riwayat. Coba lagi.';
|
||||
|
||||
@override
|
||||
String get clearAll => 'Hapus semua';
|
||||
|
||||
@override
|
||||
String get clearWatchHistoryTitle => 'Hapus riwayat tontonan?';
|
||||
|
||||
@override
|
||||
String get clearWatchHistoryMessage =>
|
||||
'Semua riwayat akan dihapus dari akun kamu.';
|
||||
|
||||
@override
|
||||
String get confirmClear => 'Hapus';
|
||||
|
||||
@override
|
||||
String get detailLoadFailed => 'Detail drama gagal dimuat';
|
||||
|
||||
@override
|
||||
String get retryDetail => 'Coba lagi';
|
||||
|
||||
@override
|
||||
String get episodeUnavailable => 'Episode tidak tersedia';
|
||||
|
||||
@override
|
||||
String updatedAtLabel(Object time) {
|
||||
return 'Diperbarui $time';
|
||||
}
|
||||
|
||||
@override
|
||||
String get remove => 'Hapus';
|
||||
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
// Author: fruit.com.cn
|
||||
|
||||
// ignore: unused_import
|
||||
import 'package:intl/intl.dart' as intl;
|
||||
import 'app_localizations.dart';
|
||||
@@ -291,6 +289,9 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
@override
|
||||
String get catalogError => '剧目列表加载失败。';
|
||||
|
||||
@override
|
||||
String get categoriesError => '分类加载失败。';
|
||||
|
||||
@override
|
||||
String get detailError => '剧集信息加载失败。';
|
||||
|
||||
@@ -538,7 +539,7 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
String get authGateTitle => '登录后可继续';
|
||||
|
||||
@override
|
||||
String get authGateMessage => '收藏、评论等操作需要登录。';
|
||||
String get authGateMessage => '观看记录、收藏、评论和下载需要登录。';
|
||||
|
||||
@override
|
||||
String get authGateAction => '去登录';
|
||||
@@ -561,6 +562,116 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
@override
|
||||
String get favoriteToggleFailed => '收藏操作失败,请重试。';
|
||||
|
||||
@override
|
||||
String get myFavorites => '我的收藏';
|
||||
|
||||
@override
|
||||
String get noFavorites => '还没有收藏。';
|
||||
|
||||
@override
|
||||
String get downloads => '下载';
|
||||
|
||||
@override
|
||||
String get downloadsError => '下载设置加载失败。';
|
||||
|
||||
@override
|
||||
String get noDownloads => '还没有下载授权。';
|
||||
|
||||
@override
|
||||
String get downloadedItems => '下载授权';
|
||||
|
||||
@override
|
||||
String downloadQuota(int remaining, int max) {
|
||||
return '剩余 $remaining / $max 个授权';
|
||||
}
|
||||
|
||||
@override
|
||||
String downloadLicenseDays(int days) {
|
||||
return '授权有效期 $days 天';
|
||||
}
|
||||
|
||||
@override
|
||||
String get downloadWifiOnly => '仅 Wi-Fi 下载';
|
||||
|
||||
@override
|
||||
String get downloadQuality => '最高清晰度';
|
||||
|
||||
@override
|
||||
String downloadStatus(Object status) {
|
||||
return '授权:$status';
|
||||
}
|
||||
|
||||
@override
|
||||
String downloadTaskStatus(Object status) {
|
||||
return '任务:$status';
|
||||
}
|
||||
|
||||
@override
|
||||
String downloadProgress(int progress) {
|
||||
return '$progress%';
|
||||
}
|
||||
|
||||
@override
|
||||
String downloadExpiresAt(Object time) {
|
||||
return '到期时间 $time';
|
||||
}
|
||||
|
||||
@override
|
||||
String get clearDownloadsTitle => '清空下载授权?';
|
||||
|
||||
@override
|
||||
String get clearDownloadsMessage => '这会吊销当前设备的全部下载授权。';
|
||||
|
||||
@override
|
||||
String get downloadSettingsFailed => '下载设置更新失败。';
|
||||
|
||||
@override
|
||||
String get downloadDeleteFailed => '删除下载授权失败。';
|
||||
|
||||
@override
|
||||
String get downloadClearFailed => '清空下载授权失败。';
|
||||
|
||||
@override
|
||||
String get downloadGrantFailed => '申请下载失败。';
|
||||
|
||||
@override
|
||||
String get downloadGranted => '下载授权已就绪。';
|
||||
|
||||
@override
|
||||
String get noWatchRecords => '还没有观看记录。';
|
||||
|
||||
@override
|
||||
String get recordDeleteFailed => '删除记录失败,请重试。';
|
||||
|
||||
@override
|
||||
String get recordClearFailed => '清空观看记录失败,请重试。';
|
||||
|
||||
@override
|
||||
String get clearAll => '清空';
|
||||
|
||||
@override
|
||||
String get clearWatchHistoryTitle => '清空观看记录?';
|
||||
|
||||
@override
|
||||
String get clearWatchHistoryMessage => '这会从当前账号移除全部观看记录。';
|
||||
|
||||
@override
|
||||
String get confirmClear => '清空';
|
||||
|
||||
@override
|
||||
String get detailLoadFailed => '剧集信息加载失败';
|
||||
|
||||
@override
|
||||
String get retryDetail => '重试';
|
||||
|
||||
@override
|
||||
String get episodeUnavailable => '集数未知';
|
||||
|
||||
@override
|
||||
String updatedAtLabel(Object time) {
|
||||
return '更新于 $time';
|
||||
}
|
||||
|
||||
@override
|
||||
String get remove => '移除';
|
||||
|
||||
|
||||
+78
-1
@@ -103,6 +103,7 @@
|
||||
"lockedBody": "完成商店与服务端验单配置后才能解锁。本演示目前不处理付款。",
|
||||
"playbackError": "此视频暂时无法播放。",
|
||||
"catalogError": "剧目列表加载失败。",
|
||||
"categoriesError": "分类加载失败。",
|
||||
"detailError": "剧集信息加载失败。",
|
||||
"noMediaNotice": "该剧集还没有可播放的片源。",
|
||||
"noStories": "暂无剧目。",
|
||||
@@ -185,7 +186,7 @@
|
||||
"authSwitchToSignUp": "还没有账号?去注册",
|
||||
"authSwitchToSignIn": "已有账号?去登录",
|
||||
"authGateTitle": "登录后可继续",
|
||||
"authGateMessage": "收藏、评论等操作需要登录。",
|
||||
"authGateMessage": "观看记录、收藏、评论和下载需要登录。",
|
||||
"authGateAction": "去登录",
|
||||
"cancel": "暂不",
|
||||
"noEpisodesYet": "还没有可播放的剧集。",
|
||||
@@ -193,6 +194,82 @@
|
||||
"progressError": "续看进度加载失败。",
|
||||
"favoritesError": "收藏列表加载失败。",
|
||||
"favoriteToggleFailed": "收藏操作失败,请重试。",
|
||||
"myFavorites": "我的收藏",
|
||||
"noFavorites": "还没有收藏。",
|
||||
"downloads": "下载",
|
||||
"downloadsError": "下载设置加载失败。",
|
||||
"noDownloads": "还没有下载授权。",
|
||||
"downloadedItems": "下载授权",
|
||||
"downloadQuota": "剩余 {remaining} / {max} 个授权",
|
||||
"@downloadQuota": {
|
||||
"placeholders": {
|
||||
"remaining": {
|
||||
"type": "int"
|
||||
},
|
||||
"max": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloadLicenseDays": "授权有效期 {days} 天",
|
||||
"@downloadLicenseDays": {
|
||||
"placeholders": {
|
||||
"days": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloadWifiOnly": "仅 Wi-Fi 下载",
|
||||
"downloadQuality": "最高清晰度",
|
||||
"downloadStatus": "授权:{status}",
|
||||
"@downloadStatus": {
|
||||
"placeholders": {
|
||||
"status": {}
|
||||
}
|
||||
},
|
||||
"downloadTaskStatus": "任务:{status}",
|
||||
"@downloadTaskStatus": {
|
||||
"placeholders": {
|
||||
"status": {}
|
||||
}
|
||||
},
|
||||
"downloadProgress": "{progress}%",
|
||||
"@downloadProgress": {
|
||||
"placeholders": {
|
||||
"progress": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloadExpiresAt": "到期时间 {time}",
|
||||
"@downloadExpiresAt": {
|
||||
"placeholders": {
|
||||
"time": {}
|
||||
}
|
||||
},
|
||||
"clearDownloadsTitle": "清空下载授权?",
|
||||
"clearDownloadsMessage": "这会吊销当前设备的全部下载授权。",
|
||||
"downloadSettingsFailed": "下载设置更新失败。",
|
||||
"downloadDeleteFailed": "删除下载授权失败。",
|
||||
"downloadClearFailed": "清空下载授权失败。",
|
||||
"downloadGrantFailed": "申请下载失败。",
|
||||
"downloadGranted": "下载授权已就绪。",
|
||||
"noWatchRecords": "还没有观看记录。",
|
||||
"recordDeleteFailed": "删除记录失败,请重试。",
|
||||
"recordClearFailed": "清空观看记录失败,请重试。",
|
||||
"clearAll": "清空",
|
||||
"clearWatchHistoryTitle": "清空观看记录?",
|
||||
"clearWatchHistoryMessage": "这会从当前账号移除全部观看记录。",
|
||||
"confirmClear": "清空",
|
||||
"detailLoadFailed": "剧集信息加载失败",
|
||||
"retryDetail": "重试",
|
||||
"episodeUnavailable": "集数未知",
|
||||
"updatedAtLabel": "更新于 {time}",
|
||||
"@updatedAtLabel": {
|
||||
"placeholders": {
|
||||
"time": {}
|
||||
}
|
||||
},
|
||||
"remove": "移除",
|
||||
"unlockComingSoon": "金币解锁功能即将开放。",
|
||||
"resumeProgress": "续看至 {position} / {total}",
|
||||
|
||||
Reference in new issue
Block a user