78fd600522
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01P9G7E3wmAYL9KeYCVZVsqu
550 lines
19 KiB
Dart
550 lines
19 KiB
Dart
// strings_ja.dart — 日本語の文言リソース(単一言語表示)
|
||
//
|
||
// 禁止ワード: 検閲回避・センシティブな表現。一覧は design/CLAUDE.md §1 ルール13を参照。
|
||
// ポジショニング: ネットワーク高速化 / 体験最適化 + プライバシー。
|
||
// プラン番号は design/CLAUDE.md §7 に準拠。
|
||
import 'app_text.dart';
|
||
|
||
class StringsJa extends AppText {
|
||
const StringsJa();
|
||
|
||
@override
|
||
AppLang get lang => AppLang.ja;
|
||
|
||
@override
|
||
String get brand => 'Pangolin';
|
||
@override
|
||
String get online => '● オンライン';
|
||
@override
|
||
String get offline => '○ オフライン';
|
||
@override
|
||
String get capOff => 'タップして接続';
|
||
@override
|
||
String get capConnecting => '接続中…';
|
||
@override
|
||
String get capOn => '接続済み · 暗号化';
|
||
@override
|
||
String get connectNow => '接続';
|
||
@override
|
||
String get secure => 'セキュア';
|
||
|
||
@override
|
||
String get tabConnect => '接続';
|
||
@override
|
||
String get tabServers => 'サーバー';
|
||
@override
|
||
String get tabStats => '統計';
|
||
@override
|
||
String get tabMe => 'アカウント';
|
||
|
||
@override
|
||
String get currentNode => '現在のノード';
|
||
@override
|
||
String get download => '下り';
|
||
@override
|
||
String get upload => '上り';
|
||
@override
|
||
String get latency => 'Ping';
|
||
|
||
@override
|
||
String get quotaToday => '本日の残り';
|
||
@override
|
||
String get minutes => '分';
|
||
@override
|
||
String get quotaFree => '無料 · 1日10分';
|
||
@override
|
||
String get planFreeTag => '無料';
|
||
@override
|
||
String get watchAd => '広告を見て開始';
|
||
@override
|
||
String get adUnlocked => '本日は利用可能';
|
||
@override
|
||
String get quotaLeftLabel => '残り';
|
||
@override
|
||
String get quotaUsedUp => '本日の無料時間を使い切りました';
|
||
@override
|
||
String get watchAdMore => '広告を見て時間を追加';
|
||
@override
|
||
String get quotaExhaustedNotice => '本日の無料時間を使い切りました。アップグレードすると続けて接続できます。';
|
||
@override
|
||
String get adPlaying => '広告を再生中…';
|
||
@override
|
||
String adRewarded(int minutes) => '+$minutes 分を追加しました';
|
||
@override
|
||
String get adFailed => '時間の追加に失敗しました。もう一度お試しください';
|
||
@override
|
||
String get quotaDesktopTitle => '本日の無料時間を使い切りました';
|
||
@override
|
||
String get quotaDesktopBody => 'モバイルアプリで広告を見ると時間を追加できます。無制限に使うにはアップグレードしてください。';
|
||
@override
|
||
String get gotIt => '了解';
|
||
|
||
@override
|
||
String get chooseNode => 'サーバーを選択';
|
||
@override
|
||
String get searchPh => '国・都市を検索';
|
||
@override
|
||
String get smartSelect => 'スマート選択';
|
||
@override
|
||
String nodeSwitchTitle(String name) => '$name に切り替えますか?';
|
||
@override
|
||
String get nodeSwitchBody => '現在の接続を切断し、このノードに再接続します。';
|
||
@override
|
||
String get nodeSwitchConfirm => '切り替える';
|
||
@override
|
||
String get nodeUnhealthySwitched => '現在のノードに接続できないため、自動的に切り替えました';
|
||
@override
|
||
String get nodeUnhealthyError => '現在のノードに接続できません。再接続するかノードを切り替えてください';
|
||
@override
|
||
String get nodeReconnecting => 'ネットワークが不安定です。再接続中…';
|
||
@override
|
||
String get smartSub => 'お使いのネットワークに最適なノードを選びます';
|
||
@override
|
||
String get recommended => 'おすすめ';
|
||
|
||
@override
|
||
String get statsTitle => '統計';
|
||
@override
|
||
String get trafficMonth => '通信量';
|
||
@override
|
||
String get avgPing => '平均Ping';
|
||
@override
|
||
String get durMonth => '接続時間';
|
||
@override
|
||
String get weekTraffic => '今週 (GB)';
|
||
@override
|
||
List<String> get days7 => const ['月', '火', '水', '木', '金', '土', '日'];
|
||
@override
|
||
String get byDevice => 'デバイス別';
|
||
@override
|
||
String get noDeviceUsage => 'デバイスの利用履歴はまだありません';
|
||
@override
|
||
String get periodMonth => '今月';
|
||
@override
|
||
String get periodWeek => '今週';
|
||
@override
|
||
String get periodToday => '今日';
|
||
@override
|
||
String get statDown => 'ダウンロード';
|
||
@override
|
||
String get statUp => 'アップロード';
|
||
@override
|
||
String get statDuration => '接続時間';
|
||
@override
|
||
String get chartTwoWeeks => '過去2週間';
|
||
@override
|
||
String get allDevices => 'すべてのデバイス';
|
||
|
||
@override
|
||
String get meTitle => 'アカウント';
|
||
@override
|
||
String get proMember => 'PRO会員';
|
||
@override
|
||
String get freePlanName => '無料';
|
||
@override
|
||
String get expires => '有効期限';
|
||
@override
|
||
String get upgradeBtn => '更新 / アップグレード';
|
||
@override
|
||
String get accInfoTitle => 'アカウント情報';
|
||
@override
|
||
String get accEmail => 'メールアドレス';
|
||
@override
|
||
String get accPassword => 'パスワード';
|
||
@override
|
||
String get accChange => '変更';
|
||
@override
|
||
String get deviceLimitTitle => 'デバイス数の上限に達しました';
|
||
@override
|
||
String get deviceLimitDesc => '現在のプランでは最大 %s 台まで利用できます。続けるには1台を削除してください。';
|
||
@override
|
||
String get deviceLimitRemoveOldest => '最後に使用したのが最も古いデバイスを削除';
|
||
@override
|
||
String get myDevices => 'マイデバイス';
|
||
@override
|
||
String get devicesSub => 'PROでは最大3台まで';
|
||
@override
|
||
String get thisDevice => 'このデバイス';
|
||
@override
|
||
String get remove => '削除';
|
||
@override
|
||
String get devOnline => 'オンライン';
|
||
@override
|
||
String get devOffline => 'オフライン';
|
||
@override
|
||
String get devLastOnline => '最終オンライン';
|
||
@override
|
||
String get devNeverLogin => 'ログイン履歴なし';
|
||
@override
|
||
String get devForceLogout => '強制ログアウト';
|
||
@override
|
||
String get devClearLogin => 'ログイン情報を消去';
|
||
@override
|
||
String get devRename => '名前を変更';
|
||
@override
|
||
String get devRenameHint => 'デバイス名';
|
||
@override
|
||
String get devSave => '保存';
|
||
@override
|
||
String get devForceLogoutConfirm => 'このデバイスのログインセッションを無効にします。オフラインになり、再度サインインが必要になります。デバイスはリストに残ります。';
|
||
@override
|
||
String get devClearLoginConfirm => 'このデバイスをリストから完全に削除し、ログインセッションとデータ通信の認証情報を無効にします。再び利用するには、もう一度サインインが必要です。';
|
||
@override
|
||
String get devCancel => 'キャンセル';
|
||
@override
|
||
String get sessionRevokedTitle => 'このデバイスはサインアウトされました';
|
||
@override
|
||
String get sessionRevokedBody => '別のデバイスから、このデバイスがサインアウトされました。もう一度サインインしてください。';
|
||
@override
|
||
String get sessionRevokedOk => '再度サインイン';
|
||
@override
|
||
String get redeemEntry => 'コード引き換え';
|
||
@override
|
||
String get contactEntry => 'お問い合わせ';
|
||
@override
|
||
String get signOut => 'サインアウト';
|
||
@override
|
||
String get language => '言語';
|
||
@override
|
||
String get darkAppearance => 'ダークモード';
|
||
@override
|
||
String get stateOn => 'オン';
|
||
@override
|
||
String get followLight => 'オフ';
|
||
@override
|
||
String get protocol => 'プロトコル';
|
||
@override
|
||
String get settingsTitle => '設定';
|
||
@override
|
||
String get autostart => 'スタートアップ時に起動';
|
||
@override
|
||
String get autostartSub => 'システム起動時に自動的に実行';
|
||
@override
|
||
String get autoConnect => '自動接続';
|
||
@override
|
||
String get autoConnectSub => '起動時に自動的に接続';
|
||
@override
|
||
String autoConnectingTo(String name) => '$name に自動接続中…';
|
||
@override
|
||
String get smartRoute => 'スマートルーティング';
|
||
@override
|
||
String get smartRouteSub => '海外は高速化、国内は直接接続';
|
||
@override
|
||
String get killSwitch => 'キルスイッチ';
|
||
@override
|
||
String get killSwitchSub => '接続が切れたら通信を遮断';
|
||
@override
|
||
String get checkUpdate => 'アップデートを確認';
|
||
@override
|
||
String get webUserCenter => 'ユーザーセンター (Web)';
|
||
@override
|
||
String updateAvailableTitle(String version) => '新しいバージョン v$version が利用可能です';
|
||
@override
|
||
String get updateNotesFallback => 'このアップデートには不具合の修正と安定性の向上が含まれています。';
|
||
@override
|
||
String get updateLater => '後で';
|
||
@override
|
||
String get updateDownload => 'アップデートをダウンロード';
|
||
@override
|
||
String get updateUpToDate => '最新の状態です';
|
||
@override
|
||
String get updateCheckFailed => 'アップデートの確認に失敗しました。後でもう一度お試しください';
|
||
|
||
@override
|
||
String get freePlan => '無料';
|
||
@override
|
||
String get proPlan => 'Pro';
|
||
@override
|
||
String get teamPlan => 'Team';
|
||
@override
|
||
String get perMonth => '/月';
|
||
@override
|
||
String get current => '現在';
|
||
@override
|
||
String get upgrade => 'アップグレード';
|
||
@override
|
||
String get choose => '選択';
|
||
@override
|
||
String get mostPopular => '人気';
|
||
@override
|
||
List<String> get featsFree => const [
|
||
'基本ノード1つのみ',
|
||
'1日10分',
|
||
'広告を見て開始',
|
||
'登録で7日間無料トライアル',
|
||
];
|
||
@override
|
||
List<String> get featsPro =>
|
||
const ['80以上の拠点', '無制限 · 高速', '5台のデバイス', 'ストリーミング最適化'];
|
||
@override
|
||
List<String> get featsTeam =>
|
||
const ['Proのすべての機能', '10ライセンス', '一括請求', '優先サポート'];
|
||
|
||
@override
|
||
String get redeemTitle => 'コード引き換え・購入';
|
||
@override
|
||
String get redeemCodeTitle => 'コードを引き換える';
|
||
@override
|
||
String get redeemPh => 'アクティベーションコードを入力';
|
||
@override
|
||
String get redeemBtn => '引き換える';
|
||
@override
|
||
String get redeemOk => '認証完了 · PROが利用可能に';
|
||
@override
|
||
String get buyTitle => '購入方法';
|
||
@override
|
||
String get buySub => 'アプリ内決済はご利用いただけません。以下からコードを入手してください:';
|
||
@override
|
||
String get chStore => 'セルフサービスストア';
|
||
@override
|
||
String get chEmail => 'メールサポート';
|
||
|
||
@override
|
||
String get contactTitle => 'お問い合わせ';
|
||
@override
|
||
String get contactIntro =>
|
||
'お困りですか?以下のいずれかの方法でお問い合わせください。通常は数分以内に返信します。';
|
||
@override
|
||
String get contactEmail => 'メールサポート';
|
||
@override
|
||
String get contactStore => 'セルフサービスストア';
|
||
@override
|
||
String get contactWebsite => '公式サイト';
|
||
@override
|
||
String get contactHoursTitle => 'サポート時間';
|
||
@override
|
||
String get contactHours => '毎日 9:00 – 24:00 (GMT+8)';
|
||
|
||
@override
|
||
String get authTagline => '高速 · 安定 · かんたん';
|
||
@override
|
||
String get tabLogin => 'ログイン';
|
||
@override
|
||
String get tabRegister => '新規登録';
|
||
@override
|
||
String get emailLabel => 'メールアドレス';
|
||
@override
|
||
String get emailPh => 'your@email.com';
|
||
@override
|
||
String get pwLabel => 'パスワード';
|
||
@override
|
||
String get pwPh => 'パスワードを入力';
|
||
@override
|
||
String get setPwPh => 'パスワードを設定(複数デバイスでのログイン用)';
|
||
@override
|
||
String get codeLabel => '確認コード';
|
||
@override
|
||
String codeSentTo(String email) => '$email に確認コードを送信しました';
|
||
@override
|
||
String get sendCode => 'コードを送信';
|
||
@override
|
||
String get resend => '再送信';
|
||
@override
|
||
String get doLogin => 'ログイン';
|
||
@override
|
||
String get doNext => '次へ';
|
||
@override
|
||
String get doCreate => 'アカウントを作成';
|
||
@override
|
||
String get forgotPw => 'パスワードをお忘れですか?';
|
||
@override
|
||
String get tos => '続行すると、利用規約とプライバシーポリシーに同意したことになります';
|
||
|
||
@override
|
||
String get obSkip => 'スキップ';
|
||
@override
|
||
String get obNext => '次へ';
|
||
@override
|
||
String get obAllow => '許可して続行';
|
||
@override
|
||
String get obStart => '始める';
|
||
@override
|
||
String get ob1Title => '世界中に接続';
|
||
@override
|
||
String get ob1Sub => '80以上の拠点、最速ルートを自動選択、抜群の安定性。';
|
||
@override
|
||
String get ob2Title => 'ネットワーク設定を許可';
|
||
@override
|
||
String get ob2Sub => '暗号化トンネルを構築するため、システムがネットワークプロファイルの追加を求めます。';
|
||
@override
|
||
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で開いてください';
|
||
@override
|
||
String get orderCreateFailed => '注文の作成に失敗しました。しばらくして再試行してください';
|
||
@override
|
||
String get payUnsupportedRenderType => '未対応です。支払い方法を変更してください';
|
||
@override
|
||
String get payNoActiveOrder => '進行中の注文はありません';
|
||
|
||
// ── 支付渠道 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';
|
||
|
||
// ── 邀请 / 通知 / 设置分组 / 订单过期(Spec ②③占位) ──
|
||
@override
|
||
String get inviteEntry => '友達を招待してメンバーシップを獲得';
|
||
@override
|
||
String get inviteEntrySub => '友達が登録 · 双方に会員日数を付与';
|
||
@override
|
||
String get inviteTitle => '友達を招待';
|
||
@override
|
||
String get inviteCodeLabel => '招待コード';
|
||
@override
|
||
String get inviteLinkLabel => '招待リンク';
|
||
@override
|
||
String get inviteCopyCode => 'コードをコピー';
|
||
@override
|
||
String get inviteCopyLink => 'リンクをコピー';
|
||
@override
|
||
String get inviteRewardsTitle => '特典ルール';
|
||
@override
|
||
String get inviteRewardRegister => '友達が登録 · 双方に3日間付与';
|
||
@override
|
||
String get inviteRewardFirstBuy => '友達が初回購入 · 双方に7日間付与';
|
||
@override
|
||
String get inviteRewardJoinTg => 'TGチャンネルに参加 · 3日間付与';
|
||
@override
|
||
String get inviteProgressTitle => '獲得した特典';
|
||
@override
|
||
String get inviteTasksTitle => 'もっと会員特典を得る';
|
||
@override
|
||
String get inviteJoinTgTitle => 'Telegramチャンネルに参加';
|
||
@override
|
||
String get inviteJoinTgBtn => 'チャンネルに参加';
|
||
@override
|
||
String get inviteVerifyBtn => '確認して受け取る';
|
||
@override
|
||
String get inviteTaskDone => '受け取り済み +3日';
|
||
@override
|
||
String get inviteStatInvited => '招待した人数';
|
||
@override
|
||
String get inviteStatConverted => '転換した人数';
|
||
@override
|
||
String get inviteStatDays => '累計獲得日数';
|
||
@override
|
||
String get inviteCodeFieldLabel => '招待コード(任意)';
|
||
@override
|
||
String get notifTitle => '通知';
|
||
@override
|
||
String get notifEmpty => '通知はありません';
|
||
@override
|
||
String get notifTypeNews => 'ニュース';
|
||
@override
|
||
String get notifTypeFeature => '新機能';
|
||
@override
|
||
String get notifTypeImportant => '重要';
|
||
@override
|
||
String get notifTypeReward => '入金';
|
||
@override
|
||
String get notifTypeVersion => 'アップデート';
|
||
@override
|
||
String get notifTypePromo => 'キャンペーン';
|
||
@override
|
||
String get settingsGroupConn => '接続';
|
||
@override
|
||
String get settingsGroupAppearance => '外観';
|
||
@override
|
||
String get settingsGroupAbout => 'このアプリについて';
|
||
@override
|
||
String get orderStatusExpired => '期限切れ';
|
||
@override
|
||
String get promoBadge => '期間限定オファー';
|
||
@override
|
||
String get promoOriginalPrice => '通常価格';
|
||
}
|