feat(app): 接入金币充值与会员商品下单

This commit is contained in:
Zhou Weidong committed 2026-10-20 04:32:03 +08:00
1 parent ec2db6842e
commit 730e38622f
21 files changed
+1325 -1

No files matched your search

+24
View File
@@ -516,4 +516,28 @@
"rankingEmptyTitle": "No ranked stories yet",
"rankingEmptyBody": "Titles appear here as soon as they are published.",
"rankingTopPick": "TOP PICK"
, "rechargeTitle": "Top Up Coins",
"vipTitle": "VIP Membership",
"buy": "Buy",
"bonusCoin": "+{bonus} bonus",
"@bonusCoin": { "placeholders": { "bonus": { "type": "int" } } },
"vipDuration": "{days}-day VIP",
"@vipDuration": { "placeholders": { "days": { "type": "int" } } },
"noCoinPacks": "No coin packs available right now.",
"noVipPlans": "No VIP plans available right now.",
"productsLoadFailed": "Could not load products.",
"orderCreated": "Order {orderNo} created.",
"@orderCreated": { "placeholders": { "orderNo": { "type": "String" } } },
"paymentPending": "Waiting for payment.",
"orderCreateFailed": "Could not create the order.",
"playbackQuality": "Quality",
"qualityAuto": "Auto",
"qualityAutoHint": "HLS adjusts the bitrate automatically for your connection.",
"searchFailed": "Search failed. Please try again.",
"languageFilter": "Language",
"languageChinese": "Chinese",
"languageIndonesian": "Indonesian",
"languageEnglish": "English",
"searchResultCount": "{count} results",
"@searchResultCount": { "placeholders": { "count": { "type": "int" } } }
}
+24
View File
@@ -514,4 +514,28 @@
"rankingEmptyTitle": "Belum ada peringkat",
"rankingEmptyBody": "Judul muncul di sini setelah diterbitkan.",
"rankingTopPick": "PILIHAN UTAMA"
, "rechargeTitle": "Isi Ulang Koin",
"vipTitle": "Keanggotaan VIP",
"buy": "Beli",
"bonusCoin": "+{bonus} bonus",
"@bonusCoin": { "placeholders": { "bonus": { "type": "int" } } },
"vipDuration": "VIP {days} hari",
"@vipDuration": { "placeholders": { "days": { "type": "int" } } },
"noCoinPacks": "Belum ada paket koin.",
"noVipPlans": "Belum ada paket VIP.",
"productsLoadFailed": "Gagal memuat produk.",
"orderCreated": "Pesanan {orderNo} dibuat.",
"@orderCreated": { "placeholders": { "orderNo": { "type": "String" } } },
"paymentPending": "Menunggu pembayaran.",
"orderCreateFailed": "Gagal membuat pesanan.",
"playbackQuality": "Kualitas",
"qualityAuto": "Otomatis",
"qualityAutoHint": "HLS menyesuaikan bitrate secara otomatis dengan koneksi Anda.",
"searchFailed": "Pencarian gagal. Coba lagi.",
"languageFilter": "Bahasa",
"languageChinese": "Mandarin",
"languageIndonesian": "Indonesia",
"languageEnglish": "Inggris",
"searchResultCount": "{count} hasil",
"@searchResultCount": { "placeholders": { "count": { "type": "int" } } }
}
+120
View File
@@ -2343,6 +2343,126 @@ abstract class AppLocalizations {
/// In en, this message translates to:
/// **'TOP PICK'**
String get rankingTopPick;
/// No description provided for @rechargeTitle.
///
/// In en, this message translates to:
/// **'Top Up Coins'**
String get rechargeTitle;
/// No description provided for @vipTitle.
///
/// In en, this message translates to:
/// **'VIP Membership'**
String get vipTitle;
/// No description provided for @buy.
///
/// In en, this message translates to:
/// **'Buy'**
String get buy;
/// No description provided for @bonusCoin.
///
/// In en, this message translates to:
/// **'+{bonus} bonus'**
String bonusCoin(int bonus);
/// No description provided for @vipDuration.
///
/// In en, this message translates to:
/// **'{days}-day VIP'**
String vipDuration(int days);
/// No description provided for @noCoinPacks.
///
/// In en, this message translates to:
/// **'No coin packs available right now.'**
String get noCoinPacks;
/// No description provided for @noVipPlans.
///
/// In en, this message translates to:
/// **'No VIP plans available right now.'**
String get noVipPlans;
/// No description provided for @productsLoadFailed.
///
/// In en, this message translates to:
/// **'Could not load products.'**
String get productsLoadFailed;
/// No description provided for @orderCreated.
///
/// In en, this message translates to:
/// **'Order {orderNo} created.'**
String orderCreated(String orderNo);
/// No description provided for @paymentPending.
///
/// In en, this message translates to:
/// **'Waiting for payment.'**
String get paymentPending;
/// No description provided for @orderCreateFailed.
///
/// In en, this message translates to:
/// **'Could not create the order.'**
String get orderCreateFailed;
/// No description provided for @playbackQuality.
///
/// In en, this message translates to:
/// **'Quality'**
String get playbackQuality;
/// No description provided for @qualityAuto.
///
/// In en, this message translates to:
/// **'Auto'**
String get qualityAuto;
/// No description provided for @qualityAutoHint.
///
/// In en, this message translates to:
/// **'HLS adjusts the bitrate automatically for your connection.'**
String get qualityAutoHint;
/// No description provided for @searchFailed.
///
/// In en, this message translates to:
/// **'Search failed. Please try again.'**
String get searchFailed;
/// No description provided for @languageFilter.
///
/// In en, this message translates to:
/// **'Language'**
String get languageFilter;
/// No description provided for @languageChinese.
///
/// In en, this message translates to:
/// **'Chinese'**
String get languageChinese;
/// No description provided for @languageIndonesian.
///
/// In en, this message translates to:
/// **'Indonesian'**
String get languageIndonesian;
/// No description provided for @languageEnglish.
///
/// In en, this message translates to:
/// **'English'**
String get languageEnglish;
/// No description provided for @searchResultCount.
///
/// In en, this message translates to:
/// **'{count} results'**
String searchResultCount(int count);
}
class _AppLocalizationsDelegate
+69
View File
@@ -1199,4 +1199,73 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get rankingTopPick => 'TOP PICK';
@override
String get rechargeTitle => 'Top Up Coins';
@override
String get vipTitle => 'VIP Membership';
@override
String get buy => 'Buy';
@override
String bonusCoin(int bonus) {
return '+$bonus bonus';
}
@override
String vipDuration(int days) {
return '$days-day VIP';
}
@override
String get noCoinPacks => 'No coin packs available right now.';
@override
String get noVipPlans => 'No VIP plans available right now.';
@override
String get productsLoadFailed => 'Could not load products.';
@override
String orderCreated(String orderNo) {
return 'Order $orderNo created.';
}
@override
String get paymentPending => 'Waiting for payment.';
@override
String get orderCreateFailed => 'Could not create the order.';
@override
String get playbackQuality => 'Quality';
@override
String get qualityAuto => 'Auto';
@override
String get qualityAutoHint =>
'HLS adjusts the bitrate automatically for your connection.';
@override
String get searchFailed => 'Search failed. Please try again.';
@override
String get languageFilter => 'Language';
@override
String get languageChinese => 'Chinese';
@override
String get languageIndonesian => 'Indonesian';
@override
String get languageEnglish => 'English';
@override
String searchResultCount(int count) {
return '$count results';
}
}
+69
View File
@@ -1197,4 +1197,73 @@ class AppLocalizationsId extends AppLocalizations {
@override
String get rankingTopPick => 'PILIHAN UTAMA';
@override
String get rechargeTitle => 'Isi Ulang Koin';
@override
String get vipTitle => 'Keanggotaan VIP';
@override
String get buy => 'Beli';
@override
String bonusCoin(int bonus) {
return '+$bonus bonus';
}
@override
String vipDuration(int days) {
return 'VIP $days hari';
}
@override
String get noCoinPacks => 'Belum ada paket koin.';
@override
String get noVipPlans => 'Belum ada paket VIP.';
@override
String get productsLoadFailed => 'Gagal memuat produk.';
@override
String orderCreated(String orderNo) {
return 'Pesanan $orderNo dibuat.';
}
@override
String get paymentPending => 'Menunggu pembayaran.';
@override
String get orderCreateFailed => 'Gagal membuat pesanan.';
@override
String get playbackQuality => 'Kualitas';
@override
String get qualityAuto => 'Otomatis';
@override
String get qualityAutoHint =>
'HLS menyesuaikan bitrate secara otomatis dengan koneksi Anda.';
@override
String get searchFailed => 'Pencarian gagal. Coba lagi.';
@override
String get languageFilter => 'Bahasa';
@override
String get languageChinese => 'Mandarin';
@override
String get languageIndonesian => 'Indonesia';
@override
String get languageEnglish => 'Inggris';
@override
String searchResultCount(int count) {
return '$count hasil';
}
}
+68
View File
@@ -1176,4 +1176,72 @@ class AppLocalizationsZh extends AppLocalizations {
@override
String get rankingTopPick => '今日榜首';
@override
String get rechargeTitle => '充值金币';
@override
String get vipTitle => 'VIP 会员';
@override
String get buy => '购买';
@override
String bonusCoin(int bonus) {
return '赠 $bonus';
}
@override
String vipDuration(int days) {
return '$days 天会员';
}
@override
String get noCoinPacks => '暂无可购金币包。';
@override
String get noVipPlans => '暂无可开通会员。';
@override
String get productsLoadFailed => '商品加载失败。';
@override
String orderCreated(String orderNo) {
return '订单 $orderNo 已创建。';
}
@override
String get paymentPending => '等待支付。';
@override
String get orderCreateFailed => '订单创建失败。';
@override
String get playbackQuality => '清晰度';
@override
String get qualityAuto => '自动';
@override
String get qualityAutoHint => 'HLS 会根据当前网络自动切换码率。';
@override
String get searchFailed => '搜索失败,请重试。';
@override
String get languageFilter => '语言';
@override
String get languageChinese => '中文';
@override
String get languageIndonesian => '印尼语';
@override
String get languageEnglish => '英语';
@override
String searchResultCount(int count) {
return '$count 个结果';
}
}
+24
View File
@@ -476,4 +476,28 @@
"rankingEmptyTitle": "暂无榜单内容",
"rankingEmptyBody": "新剧上线后会自动进入榜单。",
"rankingTopPick": "今日榜首"
, "rechargeTitle": "充值金币",
"vipTitle": "VIP 会员",
"buy": "购买",
"bonusCoin": "赠 {bonus}",
"@bonusCoin": { "placeholders": { "bonus": { "type": "int" } } },
"vipDuration": "{days} 天会员",
"@vipDuration": { "placeholders": { "days": { "type": "int" } } },
"noCoinPacks": "暂无可购金币包。",
"noVipPlans": "暂无可开通会员。",
"productsLoadFailed": "商品加载失败。",
"orderCreated": "订单 {orderNo} 已创建。",
"@orderCreated": { "placeholders": { "orderNo": { "type": "String" } } },
"paymentPending": "等待支付。",
"orderCreateFailed": "订单创建失败。",
"playbackQuality": "清晰度",
"qualityAuto": "自动",
"qualityAutoHint": "HLS 会根据当前网络自动切换码率。",
"searchFailed": "搜索失败,请重试。",
"languageFilter": "语言",
"languageChinese": "中文",
"languageIndonesian": "印尼语",
"languageEnglish": "英语",
"searchResultCount": "{count} 个结果",
"@searchResultCount": { "placeholders": { "count": { "type": "int" } } }
}