feat(client): pay v2 支付渠道 switch + 订单列表/详情端到端
购买/支付(Phase B): - 新 SegSwitch 段控 widget(镜像 .segswitch 原子) - 购买页重构:顶部支付渠道 switch(默认 USDT→加密货币 / 人民币→支付宝),套餐价随渠道分币种显示,删底部弹窗选方式;点购买直达支付页 - 支付页加订单信息卡(套餐/渠道/金额按币种) - models:PayChannel + PayCatalogItem.priceUsdtMicro/priceLabel(ch)/perMonthLabel(ch) 订单(P0,全新): - payment_api.listOrders() + orders_provider(列表 + 详情 family) - OrdersScreen 列表→详情(状态 pill / 可复制订单号 / 继续支付·重新购买) - 导航:NavView.orders + desktop_shell 分支 + account 入口 配套: - l10n +19 getter(支付渠道 4 + 订单 15)×6 语言,l10n 闸绿 - 图标单源迁移 lucide_icons_flutter + pangolin_icons.dart(codegen) - 联系渠道订正(Telegram/邮件 support@yanmeiai.com/官网) + 前端去广告&时长 - 测试:购买 switch 分币种 + 订单列表/空态/详情 + 假 API listOrders;golden 重录 - flutter analyze 0 error,flutter test 226 全绿 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013nMthbVEmQquxBRKb9Fj8u
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
// strings_ja.dart — 日本語の文言リソース(単一言語表示)
|
||||
//
|
||||
// 禁止ワード: VPN / 翻墙 / 科学上网 / 突破封锁 / 自由穿越 / Go anywhere。
|
||||
// 禁止ワード: 検閲回避・センシティブな表現。一覧は design/CLAUDE.md §1 ルール13を参照。
|
||||
// ポジショニング: ネットワーク高速化 / 体験最適化 + プライバシー。
|
||||
// プラン番号は design/CLAUDE.md §7 に準拠。
|
||||
import 'app_text.dart';
|
||||
@@ -65,7 +65,7 @@ class StringsJa extends AppText {
|
||||
@override
|
||||
String get watchAdMore => '広告を見て時間を追加';
|
||||
@override
|
||||
String get quotaExhaustedNotice => '本日の無料時間を使い切りました。広告を見て時間を追加するか、アップグレードしてください。';
|
||||
String get quotaExhaustedNotice => '本日の無料時間を使い切りました。アップグレードすると続けて接続できます。';
|
||||
@override
|
||||
String get adPlaying => '広告を再生中…';
|
||||
@override
|
||||
@@ -311,6 +311,8 @@ class StringsJa extends AppText {
|
||||
@override
|
||||
String get contactStore => 'セルフサービスストア';
|
||||
@override
|
||||
String get contactWebsite => '公式サイト';
|
||||
@override
|
||||
String get contactHoursTitle => 'サポート時間';
|
||||
@override
|
||||
String get contactHours => '毎日 9:00 – 24:00 (GMT+8)';
|
||||
@@ -370,4 +372,102 @@ class StringsJa extends AppText {
|
||||
String get ob3Title => '設計段階からプライバシー重視';
|
||||
@override
|
||||
String get ob3Sub => 'エンドツーエンドで暗号化。閲覧ログは一切保持しません。';
|
||||
|
||||
// ── 购买 / 支付 ──
|
||||
@override
|
||||
String get purchaseTitle => 'プランを購入';
|
||||
@override
|
||||
String get paymentTitle => 'お支払い';
|
||||
@override
|
||||
String get buyNow => '今すぐ購入';
|
||||
@override
|
||||
String get payMethodAlipay => 'Alipay';
|
||||
@override
|
||||
String get payMethodCrypto => 'USDT (TRC20)';
|
||||
@override
|
||||
String get choosePayMethod => 'お支払い方法を選択';
|
||||
@override
|
||||
String get proMonthly => 'Pro · 月額';
|
||||
@override
|
||||
String get proQuarterly => 'Pro · 3か月';
|
||||
@override
|
||||
String get proYearly => 'Pro · 年額';
|
||||
@override
|
||||
String get perQuarter => '/3か月';
|
||||
@override
|
||||
String get perYear => '/年';
|
||||
@override
|
||||
String get payAmountLabel => '送金額';
|
||||
@override
|
||||
String get payAddressLabel => '送金先アドレス';
|
||||
@override
|
||||
String get payNetworkLabel => 'ネットワーク';
|
||||
@override
|
||||
String get payExactAmountHint => '正確な金額をお送りください。着金後、自動で有効になります';
|
||||
@override
|
||||
String get copied => 'コピーしました';
|
||||
@override
|
||||
String get openAlipay => 'Alipayで支払う';
|
||||
@override
|
||||
String get openAlipayHint => 'お支払い後に戻ると、このページは自動的に更新されます';
|
||||
@override
|
||||
String get openAlipayFailed => 'Alipayを開けませんでした。インストール済みか確認するか、後でもう一度お試しください';
|
||||
@override
|
||||
String get awaitingPayment => 'お支払い待ち';
|
||||
@override
|
||||
String get paySucceeded => '有効になりました';
|
||||
@override
|
||||
String get payExpiresAt => '有効期限';
|
||||
@override
|
||||
String get payDone => '完了';
|
||||
@override
|
||||
String get payFailed => 'お支払いに失敗しました';
|
||||
@override
|
||||
String get payRetry => '再試行';
|
||||
@override
|
||||
String get switchPayMethod => '別のお支払い方法に変更';
|
||||
@override
|
||||
String get cancelOrder => '注文をキャンセル';
|
||||
@override
|
||||
String get qrNotSupported => '内容をコピーしてAlipayで開いてください';
|
||||
|
||||
// ── 支付渠道 switch + 订单 ──
|
||||
@override
|
||||
String get payChannel => '支払いチャネル';
|
||||
@override
|
||||
String get payChannelUsdt => 'USDT · 暗号資産';
|
||||
@override
|
||||
String get payChannelCny => '人民元 · Alipay';
|
||||
@override
|
||||
String get perMonthSuffix => ' /月';
|
||||
@override
|
||||
String get ordersTitle => '注文履歴';
|
||||
@override
|
||||
String get orderDetailTitle => '注文の詳細';
|
||||
@override
|
||||
String get ordersEmpty => '注文はありません';
|
||||
@override
|
||||
String get orderNoLabel => '注文番号';
|
||||
@override
|
||||
String get orderPlanLabel => 'プラン';
|
||||
@override
|
||||
String get orderMethodLabel => '支払い方法';
|
||||
@override
|
||||
String get orderAmountLabel => '金額';
|
||||
@override
|
||||
String get orderCreatedLabel => '作成日時';
|
||||
@override
|
||||
String get orderPaidLabel => '支払日時';
|
||||
@override
|
||||
String get orderStatusPaid => '有効化済み';
|
||||
@override
|
||||
String get orderStatusCanceled => 'キャンセル済み';
|
||||
@override
|
||||
String get orderContinuePay => '支払いを続ける';
|
||||
@override
|
||||
String get orderRefresh => '更新';
|
||||
@override
|
||||
String get orderRebuy => '再購入';
|
||||
@override
|
||||
String get payMethodNezha => 'Nazhapay';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user