1755 lines
81 KiB
Dart
1755 lines
81 KiB
Dart
import 'package:flutter/material.dart';
|
||
|
||
/// Genex Admin App (Issuer Console) - i18n 多语言支持
|
||
///
|
||
/// 使用方式: context.t('key') 或 AppLocalizations.of(context).get('key')
|
||
/// 支持语言: zh_CN(默认), en_US, ja_JP
|
||
class AppLocalizations {
|
||
final Locale locale;
|
||
late final Map<String, String> _strings;
|
||
|
||
AppLocalizations(this.locale) {
|
||
final key = locale.countryCode != null && locale.countryCode!.isNotEmpty
|
||
? '${locale.languageCode}_${locale.countryCode}'
|
||
: locale.languageCode;
|
||
|
||
_strings = _allStrings[key] ?? _allStrings[locale.languageCode] ?? _zhCN;
|
||
}
|
||
|
||
static AppLocalizations of(BuildContext context) {
|
||
return Localizations.of<AppLocalizations>(context, AppLocalizations)!;
|
||
}
|
||
|
||
/// 获取翻译字符串,找不到时 fallback 到中文,再找不到返回 key
|
||
String get(String key) => _strings[key] ?? _zhCN[key] ?? key;
|
||
|
||
static const Map<String, Map<String, String>> _allStrings = {
|
||
'zh': _zhCN,
|
||
'zh_CN': _zhCN,
|
||
'en': _enUS,
|
||
'en_US': _enUS,
|
||
'ja': _jaJP,
|
||
'ja_JP': _jaJP,
|
||
};
|
||
|
||
// ================================================================
|
||
// 中文 (简体)
|
||
// ================================================================
|
||
static const Map<String, String> _zhCN = {
|
||
// ── Common ──
|
||
'app_name': '企业券信',
|
||
'confirm': '确认',
|
||
'cancel': '取消',
|
||
'save': '保存',
|
||
'delete': '删除',
|
||
'edit': '编辑',
|
||
'search': '搜索',
|
||
'loading': '加载中...',
|
||
'retry': '重试',
|
||
'done': '完成',
|
||
'next': '下一步',
|
||
'back': '返回',
|
||
'close': '关闭',
|
||
'more': '更多',
|
||
'all': '全部',
|
||
'yes': '是',
|
||
'no': '否',
|
||
'export': '导出',
|
||
'view': '查看',
|
||
'submit': '提交',
|
||
'prev_step': '上一步',
|
||
'view_all': '查看全部',
|
||
|
||
// ── Tabs (bottom nav) ──
|
||
'tab_dashboard': '数据概览',
|
||
'tab_coupons': '券管理',
|
||
'tab_redemption': '核销',
|
||
'tab_finance': '财务',
|
||
'tab_mine': '我的',
|
||
|
||
// ── Login ──
|
||
'login_title': '券信 发行方控制台',
|
||
'login_subtitle': '登录您的企业账号管理券发行',
|
||
'login_phone': '手机号',
|
||
'login_phone_hint': '请输入企业管理员手机号',
|
||
'login_code': '验证码',
|
||
'login_get_code': '获取验证码',
|
||
'login_agree_prefix': '我已阅读并同意',
|
||
'login_agreement': '《发行方服务协议》',
|
||
'login_button': '登录',
|
||
'login_register': '还没有账号?申请入驻',
|
||
'login_error_phone': '请输入手机号',
|
||
'login_error_code': '请输入6位验证码',
|
||
'login_error_network': '网络错误,请稍后重试',
|
||
'login_code_sent': '验证码已发送',
|
||
|
||
// ── Onboarding ──
|
||
'onboarding_title': '企业入驻',
|
||
'onboarding_step_company': '企业信息',
|
||
'onboarding_step_documents': '资质上传',
|
||
'onboarding_step_contact': '联系人',
|
||
'onboarding_step_review': '审核中',
|
||
'onboarding_submit_review': '提交审核',
|
||
'onboarding_company_title': '企业基本信息',
|
||
'onboarding_company_subtitle': '请填写真实的企业信息,用于入驻审核',
|
||
'onboarding_company_name': '企业名称',
|
||
'onboarding_company_name_hint': '请输入企业全称',
|
||
'onboarding_credit_code': '统一社会信用代码',
|
||
'onboarding_credit_code_hint': '请输入18位信用代码',
|
||
'onboarding_company_type': '企业类型',
|
||
'onboarding_type_restaurant': '餐饮企业',
|
||
'onboarding_type_retail': '零售企业',
|
||
'onboarding_type_entertainment': '娱乐/文旅',
|
||
'onboarding_type_other': '其他',
|
||
'onboarding_company_address': '企业地址',
|
||
'onboarding_company_address_hint': '请输入企业注册地址',
|
||
'onboarding_ai_compliance': 'AI 合规助手',
|
||
'onboarding_ai_compliance_desc': '填写信息后,AI将自动检查合规要求',
|
||
'onboarding_doc_title': '资质文件上传',
|
||
'onboarding_doc_subtitle': '请上传清晰的企业资质文件',
|
||
'onboarding_doc_license': '营业执照',
|
||
'onboarding_doc_id': '法人身份证(正反面)',
|
||
'onboarding_doc_cert': '行业资质证书(可选)',
|
||
'onboarding_required': '*必填',
|
||
'onboarding_upload': '点击上传',
|
||
'onboarding_contact_title': '联系人信息',
|
||
'onboarding_contact_name': '联系人姓名',
|
||
'onboarding_contact_phone': '联系人手机号',
|
||
'onboarding_contact_email': '企业邮箱',
|
||
'onboarding_contact_role': '职位/角色',
|
||
'onboarding_review_title': '审核中',
|
||
'onboarding_review_desc': '您的入驻申请已提交,预计1-3个工作日内完成审核',
|
||
'onboarding_back_login': '返回登录',
|
||
'onboarding_approved_title': '审核通过',
|
||
'onboarding_approved_desc': '恭喜!您已获得白银级初始额度',
|
||
'onboarding_enter_console': '进入控制台',
|
||
'onboarding_rejected_title': '审核未通过',
|
||
'onboarding_rejected_desc': '原因:资质文件不清晰,请重新上传',
|
||
'onboarding_resubmit': '重新提交',
|
||
|
||
// ── Dashboard ──
|
||
'dashboard_title': '数据概览',
|
||
'dashboard_gold_issuer': '黄金发行方',
|
||
'dashboard_total_issued': '总发行量',
|
||
'dashboard_redemption_rate': '核销率',
|
||
'dashboard_sales_revenue': '销售收入',
|
||
'dashboard_withdrawable': '可提现',
|
||
'dashboard_ai_insight': 'AI 洞察',
|
||
'dashboard_ai_insight_content': '您的餐饮券本周销量下降15%,建议周末推出限时折扣活动提升销量。',
|
||
'dashboard_dismiss': '忽略',
|
||
'dashboard_accept': '采纳建议',
|
||
'dashboard_credit_rating': '信用等级 AA',
|
||
'dashboard_credit_gap': '距离 AAA 还差 12 分',
|
||
'dashboard_improve_suggestion': '提升建议',
|
||
'dashboard_issue_quota': '发行额度',
|
||
'dashboard_used_percent': '已用 76%',
|
||
'dashboard_sales_trend': '销售趋势',
|
||
'dashboard_last_7_days': '近7天',
|
||
'dashboard_sales_chart': '销售趋势图表',
|
||
'dashboard_recent_activity': '最近动态',
|
||
|
||
// ── User Portrait ──
|
||
'user_portrait_title': '用户画像',
|
||
'user_portrait_export': '导出',
|
||
'user_portrait_total_buyers': '总购买用户',
|
||
'user_portrait_mau': '月活用户',
|
||
'user_portrait_avg_price': '平均客单价',
|
||
'user_portrait_repurchase_rate': '复购率',
|
||
'user_portrait_age_dist': '年龄分布',
|
||
'user_portrait_geo_dist': '地域分布 (Top 5)',
|
||
'user_portrait_other': '其他',
|
||
'user_portrait_preference': '消费偏好',
|
||
'user_portrait_dining': '餐饮',
|
||
'user_portrait_shopping': '购物',
|
||
'user_portrait_entertainment': '娱乐',
|
||
'user_portrait_travel': '旅行',
|
||
'user_portrait_repurchase_funnel': '复购漏斗',
|
||
'user_portrait_first_purchase': '首次购买',
|
||
'user_portrait_2nd_purchase': '2次购买',
|
||
'user_portrait_3_5_purchase': '3-5次',
|
||
'user_portrait_6_10_purchase': '6-10次',
|
||
'user_portrait_10_plus_purchase': '10次以上',
|
||
'user_portrait_ai_insight': 'AI 用户洞察',
|
||
'user_portrait_core_users': '核心用户群体',
|
||
'user_portrait_repurchase_advice': '复购提升建议',
|
||
'user_portrait_geo_opportunity': '地域扩展机会',
|
||
'user_portrait_churn_warning': '流失预警',
|
||
'user_portrait_core_users_desc': '25-34岁女性用户占比38%,贡献42%的消费额,建议针对此群体推出专属优惠',
|
||
'user_portrait_repurchase_advice_desc': '复购率34.2%低于行业45%,建议设置阶梯折扣或会员积分计划',
|
||
'user_portrait_geo_opportunity_desc': '德克萨斯州增长率最高(+25%),建议加大该区域推广投入',
|
||
'user_portrait_churn_warning_desc': '过去30天有856名用户未活跃,建议通过推送券提醒唤回',
|
||
|
||
// ── Coupon List ──
|
||
'coupon_list_title': '券管理',
|
||
'coupon_list_fab': '发券',
|
||
'coupon_list_empty': '暂无券数据',
|
||
'coupon_list_ai_suggestion': '建议:周末发行餐饮券销量通常提升30%',
|
||
'coupon_filter_all': '全部',
|
||
'coupon_filter_on_sale': '在售中',
|
||
'coupon_filter_sold_out': '已售罄',
|
||
'coupon_filter_pending': '待审核',
|
||
'coupon_filter_delisted': '已下架',
|
||
'coupon_stat_issued': '发行量',
|
||
'coupon_stat_sold': '已售',
|
||
'coupon_stat_redeemed': '已核销',
|
||
'coupon_stat_rate': '核销率',
|
||
'coupon_face_value': '面值',
|
||
|
||
// ── Create Coupon ──
|
||
'create_coupon_title': '发行新券',
|
||
'create_coupon_save_draft': '存为草稿',
|
||
'create_coupon_step_template': '选择模板',
|
||
'create_coupon_step_info': '基本信息',
|
||
'create_coupon_step_rules': '规则设置',
|
||
'create_coupon_step_preview': '预览确认',
|
||
'create_coupon_select_template': '选择券模板',
|
||
'create_coupon_select_template_desc': '选择适合您业务场景的券类型',
|
||
'create_coupon_tpl_discount': '折扣券',
|
||
'create_coupon_tpl_discount_desc': '按比例打折',
|
||
'create_coupon_tpl_voucher': '代金券',
|
||
'create_coupon_tpl_voucher_desc': '抵扣固定金额',
|
||
'create_coupon_tpl_gift': '礼品卡',
|
||
'create_coupon_tpl_gift_desc': '可充值消费',
|
||
'create_coupon_tpl_stored': '储值券',
|
||
'create_coupon_tpl_stored_desc': '预存金额消费',
|
||
'create_coupon_basic_info': '基本信息',
|
||
'create_coupon_name': '券名称',
|
||
'create_coupon_name_hint': '如:¥25 星巴克礼品卡',
|
||
'create_coupon_face_value': '面值 (\$)',
|
||
'create_coupon_face_value_hint': '输入面值金额',
|
||
'create_coupon_issue_price': '发行价 (\$)',
|
||
'create_coupon_issue_price_hint': '通常低于面值',
|
||
'create_coupon_quantity': '发行数量',
|
||
'create_coupon_quantity_hint': '本次发行总量',
|
||
'create_coupon_expiry': '有效期截止日(最长12个月)',
|
||
'create_coupon_description': '券描述(可选)',
|
||
'create_coupon_description_hint': '详细描述使用规则',
|
||
'create_coupon_rules': '规则设置',
|
||
'create_coupon_transferable': '允许转让',
|
||
'create_coupon_transferable_desc': '消费者可在二级市场转售此券',
|
||
'create_coupon_max_resale': '最大转售次数',
|
||
'create_coupon_refund_policy': '退款策略',
|
||
'create_coupon_refund_window': '退款窗口(天)',
|
||
'create_coupon_auto_refund': '允许自动退款',
|
||
'create_coupon_auto_refund_desc': '窗口期内用户可直接退款无需审核',
|
||
'create_coupon_stackable': '可叠加使用',
|
||
'create_coupon_stackable_desc': '同一订单可使用多张此券',
|
||
'create_coupon_min_purchase': '最低消费金额 (\$,可选)',
|
||
'create_coupon_store_limit': '限定门店(可选)',
|
||
'create_coupon_store_limit_hint': '留空则全部门店可用',
|
||
'create_coupon_preview': '预览确认',
|
||
'create_coupon_preview_desc': '请确认以下信息,提交后将进入审核流程',
|
||
'create_coupon_template_label': '模板',
|
||
'create_coupon_detail_transferable': '可转让',
|
||
'create_coupon_detail_refund_window': '退款窗口',
|
||
'create_coupon_detail_auto_refund': '自动退款',
|
||
'create_coupon_review_notice': '提交后将自动进入平台审核,审核通过后券将自动上架销售',
|
||
'create_coupon_submit_success': '提交成功',
|
||
'create_coupon_submit_desc': '您的券已提交审核,预计1-2个工作日内完成。',
|
||
'create_coupon_submit_error': '提交失败',
|
||
'create_coupon_ok': '确定',
|
||
'create_coupon_day_unit': ' 天',
|
||
'create_coupon_ai_price_suggestion': 'AI建议:同类券发行价通常为面值的85%,建议定价 \$21.25',
|
||
'create_coupon_face_value_short': '面值',
|
||
'create_coupon_issue_price_short': '发行价',
|
||
'create_coupon_quantity_short': '数量',
|
||
'create_coupon_max_times': '最多',
|
||
'create_coupon_times': '次',
|
||
|
||
// ── Coupon Detail ──
|
||
'coupon_detail_title': '券详情',
|
||
'coupon_detail_edit': '编辑信息',
|
||
'coupon_detail_reissue': '增发',
|
||
'coupon_detail_delist': '下架',
|
||
'coupon_detail_recall_unsold': '召回未售出',
|
||
'coupon_detail_status_on_sale': '在售中',
|
||
'coupon_detail_sales_data': '销售数据',
|
||
'coupon_detail_sales_income': '销售收入',
|
||
'coupon_detail_breakage_income': 'Breakage收入(过期券)',
|
||
'coupon_detail_platform_fee': '平台手续费',
|
||
'coupon_detail_net_income': '净收入',
|
||
'coupon_detail_daily_trend': '日销量趋势',
|
||
'coupon_detail_secondary_market': '二级市场分析',
|
||
'coupon_detail_listing_count': '挂单数',
|
||
'coupon_detail_avg_resale_price': '平均转售价',
|
||
'coupon_detail_avg_discount_rate': '平均折扣率',
|
||
'coupon_detail_resale_volume': '转售成交量',
|
||
'coupon_detail_resale_amount': '转售成交额',
|
||
'coupon_detail_price_chart': '价格走势K线',
|
||
'coupon_detail_financing_effect': '融资效果',
|
||
'coupon_detail_cash_advance': '现金提前回笼',
|
||
'coupon_detail_avg_advance_days': '平均提前回笼天数',
|
||
'coupon_detail_financing_cost': '融资成本',
|
||
'coupon_detail_equiv_annual_rate': '等效年利率',
|
||
'coupon_detail_recent_redemptions': '最近核销记录',
|
||
'coupon_detail_recall_title': '召回未售出券',
|
||
'coupon_detail_recall_desc': '确认召回所有未售出的券?此操作不可逆。',
|
||
'coupon_detail_confirm_recall': '确认召回',
|
||
'coupon_detail_delist_title': '紧急下架',
|
||
'coupon_detail_delist_desc': '确认下架此券?下架后消费者将无法购买。',
|
||
'coupon_detail_delist_reason': '下架原因',
|
||
'coupon_detail_confirm_delist': '确认下架',
|
||
|
||
// ── Batch Operations ──
|
||
'batch_title': '批量操作',
|
||
'batch_history_tooltip': '操作历史',
|
||
'batch_tab_issue': '批量发行',
|
||
'batch_tab_recall': '批量召回',
|
||
'batch_tab_price': '批量调价',
|
||
'batch_progress_label': '批量操作进行中...',
|
||
'batch_select_template': '选择券模板',
|
||
'batch_issue_quantity': '发行数量',
|
||
'batch_validity_range': '有效期范围',
|
||
'batch_custom_quantity_hint': '输入自定义数量',
|
||
'batch_custom_quantity': '自定义数量',
|
||
'batch_date_range_hint': '点击选择有效期范围',
|
||
'batch_preview': '发行预览',
|
||
'batch_preview_template': '券模板',
|
||
'batch_preview_quantity': '发行数量',
|
||
'batch_preview_validity': '有效期',
|
||
'batch_preview_total_value': '预估总面值',
|
||
'batch_not_selected': '未选择',
|
||
'batch_not_set': '未设置',
|
||
'batch_unit_sheets': ' 张',
|
||
'batch_confirm_issue': '确认批量发行',
|
||
'batch_confirm_issue_desc': '将发行 {count} 张 {template},确认执行?',
|
||
'batch_filter_category': '按类别筛选',
|
||
'batch_filter_status': '按状态筛选',
|
||
'batch_matching_coupons': '符合条件的券',
|
||
'batch_select_all': '全选',
|
||
'batch_deselect_all': '取消全选',
|
||
'batch_remaining': '剩余',
|
||
'batch_recall_reason': '召回原因',
|
||
'batch_recall_reason_hint': '请输入批量召回原因(必填)',
|
||
'batch_confirm_recall': '确认召回',
|
||
'batch_confirm_recall_title': '确认批量召回',
|
||
'batch_confirm_recall_desc': '将召回 {count} 张券,此操作不可撤销。',
|
||
'batch_recall_reason_label': '原因',
|
||
'batch_price_adjust_ratio': '价格调整比例',
|
||
'batch_affected_coupons': '受影响的券',
|
||
'batch_current_price': '当前价',
|
||
'batch_price_decrease_hint': '降价 {pct}% 预计可提升销量 {impact}%',
|
||
'batch_price_increase_hint': '涨价 {pct}% 预计利润提升 {impact}%',
|
||
'batch_price_no_change': '当前价格不变',
|
||
'batch_confirm_price': '确认批量调价',
|
||
'batch_confirm_price_desc': '将对 4 种券批量调价 {pct}%,确认执行?',
|
||
'batch_operation_history': '操作历史',
|
||
'batch_operation_complete': '批量操作完成',
|
||
'batch_status_on_sale': '在售中',
|
||
'batch_status_sold': '已售出',
|
||
'batch_status_expired': '已过期',
|
||
|
||
// ── Redemption ──
|
||
'redemption_title': '核销管理',
|
||
'redemption_tab_scan': '扫码核销',
|
||
'redemption_tab_history': '核销记录',
|
||
'redemption_scan_hint': '将券码对准扫描框',
|
||
'redemption_manual_hint': '手动输入券码',
|
||
'redemption_redeem': '核销',
|
||
'redemption_batch': '批量核销',
|
||
'redemption_today_title': '今日核销',
|
||
'redemption_today_count': '核销次数',
|
||
'redemption_today_amount': '核销金额',
|
||
'redemption_today_stores': '门店数',
|
||
'redemption_confirm_title': '核销确认',
|
||
'redemption_confirm_button': '确认核销',
|
||
'redemption_batch_title': '批量核销',
|
||
'redemption_batch_desc': '输入多个券码,每行一个',
|
||
'redemption_batch_hint': '粘贴券码列表...',
|
||
|
||
// ── Finance ──
|
||
'finance_title': '财务管理',
|
||
'finance_tab_overview': '概览',
|
||
'finance_tab_transactions': '交易明细',
|
||
'finance_tab_reconciliation': '对账报表',
|
||
'finance_export_title': '导出数据',
|
||
'finance_export_csv': '导出 CSV',
|
||
'finance_export_excel': '导出 Excel',
|
||
'finance_export_pdf': '导出 PDF',
|
||
'finance_withdrawable': '可提现余额',
|
||
'finance_withdraw': '提现',
|
||
'finance_sales_income': '销售收入',
|
||
'finance_breakage_income': 'Breakage收入',
|
||
'finance_platform_fee': '平台手续费',
|
||
'finance_pending_settlement': '待结算',
|
||
'finance_withdrawn': '已提现',
|
||
'finance_total_income': '总收入',
|
||
'finance_guarantee_title': '保证金与冻结款',
|
||
'finance_guarantee_deposit': '已缴纳保证金',
|
||
'finance_frozen_sales': '冻结销售款',
|
||
'finance_frozen_ratio': '冻结比例',
|
||
'finance_auto_freeze': '自动冻结销售款',
|
||
'finance_auto_freeze_desc': '开启后自动冻结20%销售额以提升信用',
|
||
'finance_revenue_trend': '收入趋势',
|
||
'finance_revenue_chart': '月度收入趋势图',
|
||
'finance_generate_report': '生成新对账单',
|
||
|
||
// ── Reconciliation ──
|
||
'reconciliation_title': '对账与结算',
|
||
'reconciliation_export_tooltip': '导出报表',
|
||
'reconciliation_period_day': '日',
|
||
'reconciliation_period_week': '周',
|
||
'reconciliation_period_month': '月',
|
||
'reconciliation_period_quarter': '季度',
|
||
'reconciliation_expected': '应结金额',
|
||
'reconciliation_settled': '已结金额',
|
||
'reconciliation_pending': '待结金额',
|
||
'reconciliation_discrepancy_amount': '差异金额',
|
||
'reconciliation_auto_title': '自动对账',
|
||
'reconciliation_auto_last_run': '上次运行: 今天 06:00',
|
||
'reconciliation_auto_running': '运行中',
|
||
'reconciliation_match_rate': '匹配率',
|
||
'reconciliation_matched': '已匹配',
|
||
'reconciliation_to_check': '待核查',
|
||
'reconciliation_has_diff': '有差异',
|
||
'reconciliation_detail_title': '对账明细',
|
||
'reconciliation_col_period': '期间',
|
||
'reconciliation_col_expected': '应结',
|
||
'reconciliation_col_actual': '实结',
|
||
'reconciliation_col_diff': '差异',
|
||
'reconciliation_col_status': '状态',
|
||
'reconciliation_status_done': '已对账',
|
||
'reconciliation_status_diff': '有差异',
|
||
'reconciliation_status_pending': '待对账',
|
||
'reconciliation_discrepancy_title': '差异调查',
|
||
'reconciliation_pending_items': '项待处理',
|
||
'reconciliation_discrepancy_investigating': '调查中',
|
||
'reconciliation_discrepancy_resolved': '已解决',
|
||
'reconciliation_discrepancy_amount_label': '差异金额',
|
||
'reconciliation_export_title': '导出报表',
|
||
'reconciliation_export_dialog_title': '导出对账报表',
|
||
|
||
// ── Financing Analysis ──
|
||
'financing_title': '融资效果分析',
|
||
'financing_refresh_tooltip': '刷新数据',
|
||
'financing_export_tooltip': '导出报告',
|
||
'financing_total_amount': '融资总额',
|
||
'financing_avg_rate': '平均利率',
|
||
'financing_count': '融资笔数',
|
||
'financing_utilization': '资金利用率',
|
||
'financing_lifecycle': '融资生命周期',
|
||
'financing_stage_submitted': '申请提交',
|
||
'financing_stage_approved': '审批通过',
|
||
'financing_stage_funded': '资金到账',
|
||
'financing_stage_in_use': '使用中',
|
||
'financing_stage_repayment': '还款期',
|
||
'financing_stage_settled': '结清',
|
||
'financing_stage_tbd': '待定',
|
||
'financing_cost_benefit': '成本效益分析',
|
||
'financing_interest_cost': '利息成本',
|
||
'financing_annual_rate': '年化',
|
||
'financing_generated_income': '产生收入',
|
||
'financing_income_from_financing': '利用融资收入',
|
||
'financing_net_benefit': '净收益',
|
||
'financing_roi': '投资回报率 (ROI)',
|
||
'financing_cost_ratio': '收益/成本比',
|
||
'financing_liquidity': '流动性指标',
|
||
'financing_quick_ratio': '速动比率 (Quick Ratio)',
|
||
'financing_current_ratio': '流动比率 (Current Ratio)',
|
||
'financing_status_healthy': '健康',
|
||
'financing_status_good': '良好',
|
||
'financing_cashflow_forecast': '现金流预测',
|
||
'financing_this_month_inflow': '本月预计流入',
|
||
'financing_this_month_outflow': '本月预计流出',
|
||
'financing_net_cashflow': '净现金流',
|
||
'financing_next_month_inflow': '下月预计流入',
|
||
'financing_next_month_outflow': '下月预计流出',
|
||
'financing_next_month_net': '下月净现金流',
|
||
'financing_risk_title': '风险指标',
|
||
'financing_default_rate': '违约率',
|
||
'financing_overdue_rate': '逾期率',
|
||
'financing_concentration': '集中度',
|
||
'financing_default_detail': '违约率 (Default Rate)',
|
||
'financing_default_desc': '低于行业平均 1.5%',
|
||
'financing_overdue_detail': '逾期率 (Overdue Rate)',
|
||
'financing_overdue_desc': '接近预警线 3.0%,需关注',
|
||
'financing_concentration_detail': '集中度风险 (Concentration)',
|
||
'financing_concentration_desc': '最大单笔占比 35%,建议分散',
|
||
'financing_ai_title': 'AI 融资策略建议',
|
||
'financing_ai_subtitle': '基于您的经营数据智能分析',
|
||
'financing_priority_high': '高优先',
|
||
'financing_priority_medium': '中优先',
|
||
'financing_get_detail_plan': '获取详细融资方案',
|
||
|
||
// ── Credit ──
|
||
'credit_title': '信用评级',
|
||
'credit_score_label': '信用等级 AA',
|
||
'credit_gap_label': '距离 AAA 等级还差 8 分',
|
||
'credit_factors': '评分因子',
|
||
'credit_factor_redemption': '核销率',
|
||
'credit_factor_breakage': '沉淀控制',
|
||
'credit_factor_market': '市场存续',
|
||
'credit_factor_satisfaction': '用户满意度',
|
||
'credit_tier_title': '发行方层级',
|
||
'credit_tier_silver': '白银',
|
||
'credit_tier_gold': '黄金',
|
||
'credit_tier_platinum': '铂金',
|
||
'credit_tier_diamond': '钻石',
|
||
'credit_tier_progress': '当前:黄金 → 铂金需月发行量达500万',
|
||
'credit_ai_title': 'AI 信用提升建议',
|
||
'credit_history_title': '信用变动记录',
|
||
|
||
// ── Quota Management ──
|
||
'quota_title': '配额管理',
|
||
'quota_apply_increase': '申请提额',
|
||
'quota_current': '当前配额',
|
||
'quota_gold_tier': '黄金层级',
|
||
'quota_used': '已使用',
|
||
'quota_monthly_limit': '月发行限额',
|
||
'quota_remaining': '剩余',
|
||
'quota_breakdown': '配额分配明细',
|
||
'quota_usage_records': '使用记录',
|
||
'quota_period_month': '本月',
|
||
'quota_period_quarter': '本季',
|
||
'quota_period_year': '本年',
|
||
'quota_tier_and_quota': '层级与配额',
|
||
'quota_current_badge': '当前',
|
||
'quota_monthly_quota': '月发行配额',
|
||
'quota_upgrade_hint': '距铂金升级: 信用分达90+ 且 月发行量连续3月 ≥\$10M',
|
||
'quota_request_title': '提额申请记录',
|
||
'quota_request_reviewing': '审核中',
|
||
'quota_request_rejected': '已驳回',
|
||
'quota_request_approved': '已批准',
|
||
'quota_submit_new': '提交新申请',
|
||
|
||
// ── AI Agent ──
|
||
'ai_agent_title': 'AI 助手',
|
||
'ai_agent_welcome': '您好!我是企业券信 AI 助手,可以帮您分析销售数据、优化定价策略、提升信用评级。有什么可以帮您的吗?',
|
||
'ai_agent_input_hint': '输入问题...',
|
||
'ai_agent_action_sales': '分析本月销售数据',
|
||
'ai_agent_action_timing': '推荐最优发券时间',
|
||
'ai_agent_action_credit': '如何提升信用评级?',
|
||
'ai_agent_action_quota': '额度使用情况分析',
|
||
|
||
// ── Store Management ──
|
||
'store_title': '门店管理',
|
||
'store_tab_list': '门店列表',
|
||
'store_tab_employees': '员工管理',
|
||
'store_status_open': '营业中',
|
||
'store_status_closed': '休息中',
|
||
'store_people_unit': '人',
|
||
'store_emp_edit': '编辑',
|
||
'store_emp_remove': '移除',
|
||
|
||
// ── Settings ──
|
||
'settings_title': '我的',
|
||
'settings_admin': '管理员',
|
||
'settings_gold_issuer': '黄金发行方',
|
||
'settings_upgrade': '升级',
|
||
'settings_group_company': '企业管理',
|
||
'settings_company_info': '企业信息',
|
||
'settings_store_mgmt': '门店管理',
|
||
'settings_employee_mgmt': '员工管理',
|
||
'settings_permissions': '权限设置',
|
||
'settings_group_support': '服务支持',
|
||
'settings_ai_assistant': 'AI 助手',
|
||
'settings_customer_service': '专属客服',
|
||
'settings_help_center': '帮助中心',
|
||
'settings_feedback': '意见反馈',
|
||
'settings_group_security': '安全与账号',
|
||
'settings_change_password': '修改密码',
|
||
'settings_operation_log': '操作日志',
|
||
'settings_about': '关于企业券信',
|
||
'settings_logout': '退出登录',
|
||
|
||
// ── AI Suggestion Card ──
|
||
'ai_suggestion_label': 'AI 建议',
|
||
'ai_suggestion_dismiss': '忽略',
|
||
'ai_suggestion_accept': '采纳',
|
||
|
||
// ── Update ──
|
||
'update.newVersion': '发现新版本',
|
||
'update.importantUpdate': '发现重要更新',
|
||
'update.latestVersion': '最新版本',
|
||
'update.fileSize': '文件大小',
|
||
'update.changelog': '更新内容',
|
||
'update.marketHint': '检测到您的应用来自应用市场,建议前往应用市场更新以获得最佳体验。',
|
||
'update.goMarket': '前往应用市场',
|
||
'update.later': '稍后',
|
||
'update.skipUpdate': '暂时不更新',
|
||
'update.updateNow': '立即更新',
|
||
'update.preparing': '准备下载...',
|
||
'update.downloading': '正在下载...',
|
||
'update.downloadComplete': '下载完成',
|
||
'update.cancelled': '下载已取消',
|
||
'update.failed': '下载失败,请稍后重试',
|
||
'update.installing': '正在安装...',
|
||
'update.installFailed': '安装失败,请手动安装',
|
||
'update.installLater': '稍后安装',
|
||
'update.installNow': '立即安装',
|
||
'update.updating': '正在更新',
|
||
'update.updateFailed': '更新失败',
|
||
'update.cancel': '取消',
|
||
'update.retry': '重试',
|
||
'update.close': '关闭',
|
||
'update.isLatest': '当前已是最新版本',
|
||
'update.checkUpdate': '检查更新',
|
||
|
||
// ── Notification ──
|
||
'notification.system': '系统通知',
|
||
'notification.activity': '活动通知',
|
||
'notification.reward': '收益通知',
|
||
'notification.upgrade': '升级通知',
|
||
'notification.announcement': '公告',
|
||
'notification.markAllRead': '全部已读',
|
||
'notification.empty': '暂无通知',
|
||
'notification.loadFailed': '加载失败',
|
||
'notification.retry': '重试',
|
||
};
|
||
|
||
// ================================================================
|
||
// English (US)
|
||
// ================================================================
|
||
static const Map<String, String> _enUS = {
|
||
// ── Common ──
|
||
'app_name': 'Genex',
|
||
'confirm': 'Confirm',
|
||
'cancel': 'Cancel',
|
||
'save': 'Save',
|
||
'delete': 'Delete',
|
||
'edit': 'Edit',
|
||
'search': 'Search',
|
||
'loading': 'Loading...',
|
||
'retry': 'Retry',
|
||
'done': 'Done',
|
||
'next': 'Next',
|
||
'back': 'Back',
|
||
'close': 'Close',
|
||
'more': 'More',
|
||
'all': 'All',
|
||
'yes': 'Yes',
|
||
'no': 'No',
|
||
'export': 'Export',
|
||
'view': 'View',
|
||
'submit': 'Submit',
|
||
'prev_step': 'Previous',
|
||
'view_all': 'View All',
|
||
|
||
// ── Tabs ──
|
||
'tab_dashboard': 'Dashboard',
|
||
'tab_coupons': 'Coupons',
|
||
'tab_redemption': 'Redeem',
|
||
'tab_finance': 'Finance',
|
||
'tab_mine': 'Settings',
|
||
|
||
// ── Login ──
|
||
'login_title': 'Genex Issuer Console',
|
||
'login_subtitle': 'Sign in to manage your coupon issuance',
|
||
'login_phone': 'Phone Number',
|
||
'login_phone_hint': 'Enter admin phone number',
|
||
'login_code': 'Verification Code',
|
||
'login_get_code': 'Get Code',
|
||
'login_agree_prefix': 'I have read and agree to the ',
|
||
'login_agreement': 'Issuer Service Agreement',
|
||
'login_button': 'Sign In',
|
||
'login_register': 'No account? Apply to join',
|
||
'login_error_phone': 'Please enter your phone number',
|
||
'login_error_code': 'Please enter the 6-digit code',
|
||
'login_error_network': 'Network error, please try again',
|
||
'login_code_sent': 'Code sent',
|
||
|
||
// ── Onboarding ──
|
||
'onboarding_title': 'Business Onboarding',
|
||
'onboarding_step_company': 'Company',
|
||
'onboarding_step_documents': 'Documents',
|
||
'onboarding_step_contact': 'Contact',
|
||
'onboarding_step_review': 'Review',
|
||
'onboarding_submit_review': 'Submit for Review',
|
||
'onboarding_company_title': 'Company Information',
|
||
'onboarding_company_subtitle': 'Please provide accurate company details for review',
|
||
'onboarding_company_name': 'Company Name',
|
||
'onboarding_company_name_hint': 'Enter full company name',
|
||
'onboarding_credit_code': 'Business Registration Number',
|
||
'onboarding_credit_code_hint': 'Enter 18-digit code',
|
||
'onboarding_company_type': 'Company Type',
|
||
'onboarding_type_restaurant': 'Restaurant / F&B',
|
||
'onboarding_type_retail': 'Retail',
|
||
'onboarding_type_entertainment': 'Entertainment / Tourism',
|
||
'onboarding_type_other': 'Other',
|
||
'onboarding_company_address': 'Company Address',
|
||
'onboarding_company_address_hint': 'Enter registered address',
|
||
'onboarding_ai_compliance': 'AI Compliance Assistant',
|
||
'onboarding_ai_compliance_desc': 'AI will auto-check compliance after you fill in the info',
|
||
'onboarding_doc_title': 'Upload Documents',
|
||
'onboarding_doc_subtitle': 'Please upload clear copies of business documents',
|
||
'onboarding_doc_license': 'Business License',
|
||
'onboarding_doc_id': 'Legal Representative ID (front & back)',
|
||
'onboarding_doc_cert': 'Industry Certificate (optional)',
|
||
'onboarding_required': '*Required',
|
||
'onboarding_upload': 'Upload',
|
||
'onboarding_contact_title': 'Contact Information',
|
||
'onboarding_contact_name': 'Contact Name',
|
||
'onboarding_contact_phone': 'Contact Phone',
|
||
'onboarding_contact_email': 'Business Email',
|
||
'onboarding_contact_role': 'Position / Role',
|
||
'onboarding_review_title': 'Under Review',
|
||
'onboarding_review_desc': 'Your application has been submitted. Review takes 1-3 business days.',
|
||
'onboarding_back_login': 'Back to Login',
|
||
'onboarding_approved_title': 'Approved',
|
||
'onboarding_approved_desc': 'Congratulations! You have received a Silver-tier initial quota.',
|
||
'onboarding_enter_console': 'Enter Console',
|
||
'onboarding_rejected_title': 'Not Approved',
|
||
'onboarding_rejected_desc': 'Reason: Documents unclear, please re-upload.',
|
||
'onboarding_resubmit': 'Resubmit',
|
||
|
||
// ── Dashboard ──
|
||
'dashboard_title': 'Dashboard',
|
||
'dashboard_gold_issuer': 'Gold Issuer',
|
||
'dashboard_total_issued': 'Total Issued',
|
||
'dashboard_redemption_rate': 'Redemption Rate',
|
||
'dashboard_sales_revenue': 'Sales Revenue',
|
||
'dashboard_withdrawable': 'Withdrawable',
|
||
'dashboard_ai_insight': 'AI Insights',
|
||
'dashboard_ai_insight_content': 'Your dining coupon sales dropped 15% this week. Consider a limited-time weekend discount to boost sales.',
|
||
'dashboard_dismiss': 'Dismiss',
|
||
'dashboard_accept': 'Accept',
|
||
'dashboard_credit_rating': 'Credit Rating AA',
|
||
'dashboard_credit_gap': '12 points to AAA',
|
||
'dashboard_improve_suggestion': 'Tips',
|
||
'dashboard_issue_quota': 'Issue Quota',
|
||
'dashboard_used_percent': '76% Used',
|
||
'dashboard_sales_trend': 'Sales Trend',
|
||
'dashboard_last_7_days': 'Last 7 Days',
|
||
'dashboard_sales_chart': 'Sales Trend Chart',
|
||
'dashboard_recent_activity': 'Recent Activity',
|
||
|
||
// ── User Portrait ──
|
||
'user_portrait_title': 'User Insights',
|
||
'user_portrait_export': 'Export',
|
||
'user_portrait_total_buyers': 'Total Buyers',
|
||
'user_portrait_mau': 'Monthly Active',
|
||
'user_portrait_avg_price': 'Avg. Order',
|
||
'user_portrait_repurchase_rate': 'Repurchase',
|
||
'user_portrait_age_dist': 'Age Distribution',
|
||
'user_portrait_geo_dist': 'Region Distribution (Top 5)',
|
||
'user_portrait_other': 'Other',
|
||
'user_portrait_preference': 'Purchase Preference',
|
||
'user_portrait_dining': 'Dining',
|
||
'user_portrait_shopping': 'Shopping',
|
||
'user_portrait_entertainment': 'Entertainment',
|
||
'user_portrait_travel': 'Travel',
|
||
'user_portrait_repurchase_funnel': 'Repurchase Funnel',
|
||
'user_portrait_first_purchase': 'First Purchase',
|
||
'user_portrait_2nd_purchase': '2nd Purchase',
|
||
'user_portrait_3_5_purchase': '3-5 Times',
|
||
'user_portrait_6_10_purchase': '6-10 Times',
|
||
'user_portrait_10_plus_purchase': '10+ Times',
|
||
'user_portrait_ai_insight': 'AI User Insights',
|
||
'user_portrait_core_users': 'Core User Group',
|
||
'user_portrait_repurchase_advice': 'Repurchase Advice',
|
||
'user_portrait_geo_opportunity': 'Geographic Opportunity',
|
||
'user_portrait_churn_warning': 'Churn Warning',
|
||
'user_portrait_core_users_desc': 'Female users aged 25-34 account for 38%, contributing 42% of spending. Consider exclusive offers for this group.',
|
||
'user_portrait_repurchase_advice_desc': 'Repurchase rate 34.2% is below the industry avg 45%. Consider tiered discounts or loyalty programs.',
|
||
'user_portrait_geo_opportunity_desc': 'Texas has the highest growth rate (+25%). Consider increasing promotion in that region.',
|
||
'user_portrait_churn_warning_desc': '856 users have been inactive for 30 days. Consider push notifications with coupons to re-engage.',
|
||
|
||
// ── Coupon List ──
|
||
'coupon_list_title': 'Coupon Management',
|
||
'coupon_list_fab': 'Issue',
|
||
'coupon_list_empty': 'No coupons found',
|
||
'coupon_list_ai_suggestion': 'Tip: Weekend dining coupons typically boost sales 30%',
|
||
'coupon_filter_all': 'All',
|
||
'coupon_filter_on_sale': 'On Sale',
|
||
'coupon_filter_sold_out': 'Sold Out',
|
||
'coupon_filter_pending': 'Pending',
|
||
'coupon_filter_delisted': 'Delisted',
|
||
'coupon_stat_issued': 'Issued',
|
||
'coupon_stat_sold': 'Sold',
|
||
'coupon_stat_redeemed': 'Redeemed',
|
||
'coupon_stat_rate': 'Rate',
|
||
'coupon_face_value': 'Face Value',
|
||
|
||
// ── Create Coupon ──
|
||
'create_coupon_title': 'Issue New Coupon',
|
||
'create_coupon_save_draft': 'Save Draft',
|
||
'create_coupon_step_template': 'Template',
|
||
'create_coupon_step_info': 'Details',
|
||
'create_coupon_step_rules': 'Rules',
|
||
'create_coupon_step_preview': 'Preview',
|
||
'create_coupon_select_template': 'Select Template',
|
||
'create_coupon_select_template_desc': 'Choose the coupon type that fits your business',
|
||
'create_coupon_tpl_discount': 'Discount Coupon',
|
||
'create_coupon_tpl_discount_desc': 'Percentage discount',
|
||
'create_coupon_tpl_voucher': 'Cash Voucher',
|
||
'create_coupon_tpl_voucher_desc': 'Fixed amount off',
|
||
'create_coupon_tpl_gift': 'Gift Card',
|
||
'create_coupon_tpl_gift_desc': 'Reloadable spending',
|
||
'create_coupon_tpl_stored': 'Stored Value',
|
||
'create_coupon_tpl_stored_desc': 'Pre-paid balance',
|
||
'create_coupon_basic_info': 'Basic Info',
|
||
'create_coupon_name': 'Coupon Name',
|
||
'create_coupon_name_hint': 'e.g. \$25 Starbucks Gift Card',
|
||
'create_coupon_face_value': 'Face Value (\$)',
|
||
'create_coupon_face_value_hint': 'Enter face value',
|
||
'create_coupon_issue_price': 'Issue Price (\$)',
|
||
'create_coupon_issue_price_hint': 'Usually below face value',
|
||
'create_coupon_quantity': 'Issue Quantity',
|
||
'create_coupon_quantity_hint': 'Total for this batch',
|
||
'create_coupon_expiry': 'Expiry Date (max 12 months)',
|
||
'create_coupon_description': 'Description (optional)',
|
||
'create_coupon_description_hint': 'Describe usage rules',
|
||
'create_coupon_rules': 'Rules',
|
||
'create_coupon_transferable': 'Transferable',
|
||
'create_coupon_transferable_desc': 'Consumers can resell on secondary market',
|
||
'create_coupon_max_resale': 'Max Resale Count',
|
||
'create_coupon_refund_policy': 'Refund Policy',
|
||
'create_coupon_refund_window': 'Refund Window (days)',
|
||
'create_coupon_auto_refund': 'Auto Refund',
|
||
'create_coupon_auto_refund_desc': 'Users can refund directly within the window',
|
||
'create_coupon_stackable': 'Stackable',
|
||
'create_coupon_stackable_desc': 'Multiple coupons per order',
|
||
'create_coupon_min_purchase': 'Minimum Purchase (\$, optional)',
|
||
'create_coupon_store_limit': 'Store Restriction (optional)',
|
||
'create_coupon_store_limit_hint': 'Leave empty for all stores',
|
||
'create_coupon_preview': 'Preview & Confirm',
|
||
'create_coupon_preview_desc': 'Please confirm the details. Once submitted, it goes to review.',
|
||
'create_coupon_template_label': 'Template',
|
||
'create_coupon_detail_transferable': 'Transferable',
|
||
'create_coupon_detail_refund_window': 'Refund Window',
|
||
'create_coupon_detail_auto_refund': 'Auto Refund',
|
||
'create_coupon_review_notice': 'After submission, the coupon enters platform review and is listed automatically upon approval.',
|
||
'create_coupon_submit_success': 'Submitted',
|
||
'create_coupon_submit_desc': 'Your coupon is under review. Expected 1-2 business days.',
|
||
'create_coupon_submit_error': 'Submission failed',
|
||
'create_coupon_ok': 'OK',
|
||
'create_coupon_day_unit': ' days',
|
||
'create_coupon_ai_price_suggestion': 'AI Tip: Similar coupons are typically priced at 85% of face value. Suggested price: \$21.25',
|
||
'create_coupon_face_value_short': 'Face Value',
|
||
'create_coupon_issue_price_short': 'Issue Price',
|
||
'create_coupon_quantity_short': 'Quantity',
|
||
'create_coupon_max_times': 'Max ',
|
||
'create_coupon_times': ' times',
|
||
|
||
// ── Coupon Detail ──
|
||
'coupon_detail_title': 'Coupon Detail',
|
||
'coupon_detail_edit': 'Edit',
|
||
'coupon_detail_reissue': 'Reissue',
|
||
'coupon_detail_delist': 'Delist',
|
||
'coupon_detail_recall_unsold': 'Recall Unsold',
|
||
'coupon_detail_status_on_sale': 'On Sale',
|
||
'coupon_detail_sales_data': 'Sales Data',
|
||
'coupon_detail_sales_income': 'Sales Revenue',
|
||
'coupon_detail_breakage_income': 'Breakage Revenue (expired)',
|
||
'coupon_detail_platform_fee': 'Platform Fee',
|
||
'coupon_detail_net_income': 'Net Revenue',
|
||
'coupon_detail_daily_trend': 'Daily Sales Trend',
|
||
'coupon_detail_secondary_market': 'Secondary Market',
|
||
'coupon_detail_listing_count': 'Listings',
|
||
'coupon_detail_avg_resale_price': 'Avg. Resale Price',
|
||
'coupon_detail_avg_discount_rate': 'Avg. Discount Rate',
|
||
'coupon_detail_resale_volume': 'Resale Volume',
|
||
'coupon_detail_resale_amount': 'Resale Amount',
|
||
'coupon_detail_price_chart': 'Price Chart',
|
||
'coupon_detail_financing_effect': 'Financing Effect',
|
||
'coupon_detail_cash_advance': 'Cash Advance',
|
||
'coupon_detail_avg_advance_days': 'Avg. Advance Days',
|
||
'coupon_detail_financing_cost': 'Financing Cost',
|
||
'coupon_detail_equiv_annual_rate': 'Equiv. Annual Rate',
|
||
'coupon_detail_recent_redemptions': 'Recent Redemptions',
|
||
'coupon_detail_recall_title': 'Recall Unsold Coupons',
|
||
'coupon_detail_recall_desc': 'Recall all unsold coupons? This cannot be undone.',
|
||
'coupon_detail_confirm_recall': 'Confirm Recall',
|
||
'coupon_detail_delist_title': 'Emergency Delist',
|
||
'coupon_detail_delist_desc': 'Delist this coupon? Consumers will no longer be able to purchase.',
|
||
'coupon_detail_delist_reason': 'Delist Reason',
|
||
'coupon_detail_confirm_delist': 'Confirm Delist',
|
||
|
||
// ── Batch Operations ──
|
||
'batch_title': 'Batch Operations',
|
||
'batch_history_tooltip': 'History',
|
||
'batch_tab_issue': 'Batch Issue',
|
||
'batch_tab_recall': 'Batch Recall',
|
||
'batch_tab_price': 'Batch Pricing',
|
||
'batch_progress_label': 'Batch operation in progress...',
|
||
'batch_select_template': 'Select Template',
|
||
'batch_issue_quantity': 'Issue Quantity',
|
||
'batch_validity_range': 'Validity Period',
|
||
'batch_custom_quantity_hint': 'Enter custom quantity',
|
||
'batch_custom_quantity': 'Custom Quantity',
|
||
'batch_date_range_hint': 'Select validity range',
|
||
'batch_preview': 'Issue Preview',
|
||
'batch_preview_template': 'Template',
|
||
'batch_preview_quantity': 'Quantity',
|
||
'batch_preview_validity': 'Validity',
|
||
'batch_preview_total_value': 'Est. Total Value',
|
||
'batch_not_selected': 'Not Selected',
|
||
'batch_not_set': 'Not Set',
|
||
'batch_unit_sheets': ' pcs',
|
||
'batch_confirm_issue': 'Confirm Batch Issue',
|
||
'batch_confirm_issue_desc': 'Issue {count} {template}. Proceed?',
|
||
'batch_filter_category': 'Filter by Category',
|
||
'batch_filter_status': 'Filter by Status',
|
||
'batch_matching_coupons': 'Matching Coupons',
|
||
'batch_select_all': 'Select All',
|
||
'batch_deselect_all': 'Deselect All',
|
||
'batch_remaining': 'Remaining',
|
||
'batch_recall_reason': 'Recall Reason',
|
||
'batch_recall_reason_hint': 'Enter recall reason (required)',
|
||
'batch_confirm_recall': 'Confirm Recall',
|
||
'batch_confirm_recall_title': 'Confirm Batch Recall',
|
||
'batch_confirm_recall_desc': 'Recall {count} coupons? This cannot be undone.',
|
||
'batch_recall_reason_label': 'Reason',
|
||
'batch_price_adjust_ratio': 'Price Adjustment',
|
||
'batch_affected_coupons': 'Affected Coupons',
|
||
'batch_current_price': 'Current Price',
|
||
'batch_price_decrease_hint': '{pct}% discount may boost sales by {impact}%',
|
||
'batch_price_increase_hint': '{pct}% increase may boost profit by {impact}%',
|
||
'batch_price_no_change': 'No price change',
|
||
'batch_confirm_price': 'Confirm Price Adjustment',
|
||
'batch_confirm_price_desc': 'Adjust prices for 4 coupons by {pct}%. Proceed?',
|
||
'batch_operation_history': 'Operation History',
|
||
'batch_operation_complete': 'Batch operation complete',
|
||
'batch_status_on_sale': 'On Sale',
|
||
'batch_status_sold': 'Sold',
|
||
'batch_status_expired': 'Expired',
|
||
|
||
// ── Redemption ──
|
||
'redemption_title': 'Redemption',
|
||
'redemption_tab_scan': 'Scan & Redeem',
|
||
'redemption_tab_history': 'History',
|
||
'redemption_scan_hint': 'Point the coupon code at the scanner',
|
||
'redemption_manual_hint': 'Enter coupon code manually',
|
||
'redemption_redeem': 'Redeem',
|
||
'redemption_batch': 'Batch Redeem',
|
||
'redemption_today_title': 'Today\'s Redemptions',
|
||
'redemption_today_count': 'Count',
|
||
'redemption_today_amount': 'Amount',
|
||
'redemption_today_stores': 'Stores',
|
||
'redemption_confirm_title': 'Confirm Redemption',
|
||
'redemption_confirm_button': 'Confirm',
|
||
'redemption_batch_title': 'Batch Redeem',
|
||
'redemption_batch_desc': 'Enter multiple codes, one per line',
|
||
'redemption_batch_hint': 'Paste coupon codes...',
|
||
|
||
// ── Finance ──
|
||
'finance_title': 'Finance',
|
||
'finance_tab_overview': 'Overview',
|
||
'finance_tab_transactions': 'Transactions',
|
||
'finance_tab_reconciliation': 'Reports',
|
||
'finance_export_title': 'Export Data',
|
||
'finance_export_csv': 'Export CSV',
|
||
'finance_export_excel': 'Export Excel',
|
||
'finance_export_pdf': 'Export PDF',
|
||
'finance_withdrawable': 'Withdrawable Balance',
|
||
'finance_withdraw': 'Withdraw',
|
||
'finance_sales_income': 'Sales Revenue',
|
||
'finance_breakage_income': 'Breakage Revenue',
|
||
'finance_platform_fee': 'Platform Fee',
|
||
'finance_pending_settlement': 'Pending',
|
||
'finance_withdrawn': 'Withdrawn',
|
||
'finance_total_income': 'Total Revenue',
|
||
'finance_guarantee_title': 'Deposit & Frozen Funds',
|
||
'finance_guarantee_deposit': 'Deposit Paid',
|
||
'finance_frozen_sales': 'Frozen Sales',
|
||
'finance_frozen_ratio': 'Freeze Ratio',
|
||
'finance_auto_freeze': 'Auto Freeze Sales',
|
||
'finance_auto_freeze_desc': 'Freeze 20% of sales to improve credit',
|
||
'finance_revenue_trend': 'Revenue Trend',
|
||
'finance_revenue_chart': 'Monthly Revenue Chart',
|
||
'finance_generate_report': 'Generate New Report',
|
||
|
||
// ── Reconciliation ──
|
||
'reconciliation_title': 'Reconciliation',
|
||
'reconciliation_export_tooltip': 'Export Report',
|
||
'reconciliation_period_day': 'Day',
|
||
'reconciliation_period_week': 'Week',
|
||
'reconciliation_period_month': 'Month',
|
||
'reconciliation_period_quarter': 'Quarter',
|
||
'reconciliation_expected': 'Expected',
|
||
'reconciliation_settled': 'Settled',
|
||
'reconciliation_pending': 'Pending',
|
||
'reconciliation_discrepancy_amount': 'Discrepancy',
|
||
'reconciliation_auto_title': 'Auto Reconciliation',
|
||
'reconciliation_auto_last_run': 'Last run: Today 06:00',
|
||
'reconciliation_auto_running': 'Running',
|
||
'reconciliation_match_rate': 'Match Rate',
|
||
'reconciliation_matched': 'Matched',
|
||
'reconciliation_to_check': 'To Check',
|
||
'reconciliation_has_diff': 'Discrepancy',
|
||
'reconciliation_detail_title': 'Details',
|
||
'reconciliation_col_period': 'Period',
|
||
'reconciliation_col_expected': 'Expected',
|
||
'reconciliation_col_actual': 'Actual',
|
||
'reconciliation_col_diff': 'Diff',
|
||
'reconciliation_col_status': 'Status',
|
||
'reconciliation_status_done': 'Reconciled',
|
||
'reconciliation_status_diff': 'Discrepancy',
|
||
'reconciliation_status_pending': 'Pending',
|
||
'reconciliation_discrepancy_title': 'Discrepancy Investigation',
|
||
'reconciliation_pending_items': ' items pending',
|
||
'reconciliation_discrepancy_investigating': 'Investigating',
|
||
'reconciliation_discrepancy_resolved': 'Resolved',
|
||
'reconciliation_discrepancy_amount_label': 'Discrepancy Amount',
|
||
'reconciliation_export_title': 'Export Report',
|
||
'reconciliation_export_dialog_title': 'Export Reconciliation Report',
|
||
|
||
// ── Financing Analysis ──
|
||
'financing_title': 'Financing Analysis',
|
||
'financing_refresh_tooltip': 'Refresh',
|
||
'financing_export_tooltip': 'Export Report',
|
||
'financing_total_amount': 'Total Financed',
|
||
'financing_avg_rate': 'Avg. Rate',
|
||
'financing_count': 'Transactions',
|
||
'financing_utilization': 'Utilization',
|
||
'financing_lifecycle': 'Financing Lifecycle',
|
||
'financing_stage_submitted': 'Submitted',
|
||
'financing_stage_approved': 'Approved',
|
||
'financing_stage_funded': 'Funded',
|
||
'financing_stage_in_use': 'In Use',
|
||
'financing_stage_repayment': 'Repayment',
|
||
'financing_stage_settled': 'Settled',
|
||
'financing_stage_tbd': 'TBD',
|
||
'financing_cost_benefit': 'Cost-Benefit Analysis',
|
||
'financing_interest_cost': 'Interest Cost',
|
||
'financing_annual_rate': 'Annual',
|
||
'financing_generated_income': 'Generated Income',
|
||
'financing_income_from_financing': 'From financing',
|
||
'financing_net_benefit': 'Net Benefit',
|
||
'financing_roi': 'ROI',
|
||
'financing_cost_ratio': 'Benefit/Cost Ratio',
|
||
'financing_liquidity': 'Liquidity Metrics',
|
||
'financing_quick_ratio': 'Quick Ratio',
|
||
'financing_current_ratio': 'Current Ratio',
|
||
'financing_status_healthy': 'Healthy',
|
||
'financing_status_good': 'Good',
|
||
'financing_cashflow_forecast': 'Cash Flow Forecast',
|
||
'financing_this_month_inflow': 'This Month Inflow',
|
||
'financing_this_month_outflow': 'This Month Outflow',
|
||
'financing_net_cashflow': 'Net Cash Flow',
|
||
'financing_next_month_inflow': 'Next Month Inflow',
|
||
'financing_next_month_outflow': 'Next Month Outflow',
|
||
'financing_next_month_net': 'Next Month Net',
|
||
'financing_risk_title': 'Risk Indicators',
|
||
'financing_default_rate': 'Default',
|
||
'financing_overdue_rate': 'Overdue',
|
||
'financing_concentration': 'Concentration',
|
||
'financing_default_detail': 'Default Rate',
|
||
'financing_default_desc': 'Below industry avg 1.5%',
|
||
'financing_overdue_detail': 'Overdue Rate',
|
||
'financing_overdue_desc': 'Near warning line 3.0%, monitor needed',
|
||
'financing_concentration_detail': 'Concentration Risk',
|
||
'financing_concentration_desc': 'Largest single exposure 35%, diversify recommended',
|
||
'financing_ai_title': 'AI Financing Strategy',
|
||
'financing_ai_subtitle': 'Smart analysis based on your data',
|
||
'financing_priority_high': 'High',
|
||
'financing_priority_medium': 'Medium',
|
||
'financing_get_detail_plan': 'Get Detailed Plan',
|
||
|
||
// ── Credit ──
|
||
'credit_title': 'Credit Rating',
|
||
'credit_score_label': 'Credit Rating AA',
|
||
'credit_gap_label': '8 points to AAA',
|
||
'credit_factors': 'Rating Factors',
|
||
'credit_factor_redemption': 'Redemption Rate',
|
||
'credit_factor_breakage': 'Breakage Control',
|
||
'credit_factor_market': 'Market Presence',
|
||
'credit_factor_satisfaction': 'User Satisfaction',
|
||
'credit_tier_title': 'Issuer Tier',
|
||
'credit_tier_silver': 'Silver',
|
||
'credit_tier_gold': 'Gold',
|
||
'credit_tier_platinum': 'Platinum',
|
||
'credit_tier_diamond': 'Diamond',
|
||
'credit_tier_progress': 'Current: Gold -> Platinum requires 5M monthly issuance',
|
||
'credit_ai_title': 'AI Credit Improvement Tips',
|
||
'credit_history_title': 'Credit History',
|
||
|
||
// ── Quota Management ──
|
||
'quota_title': 'Quota Management',
|
||
'quota_apply_increase': 'Request Increase',
|
||
'quota_current': 'Current Quota',
|
||
'quota_gold_tier': 'Gold Tier',
|
||
'quota_used': 'Used',
|
||
'quota_monthly_limit': 'Monthly Limit',
|
||
'quota_remaining': 'Remaining',
|
||
'quota_breakdown': 'Quota Breakdown',
|
||
'quota_usage_records': 'Usage Records',
|
||
'quota_period_month': 'This Month',
|
||
'quota_period_quarter': 'This Quarter',
|
||
'quota_period_year': 'This Year',
|
||
'quota_tier_and_quota': 'Tier & Quota',
|
||
'quota_current_badge': 'Current',
|
||
'quota_monthly_quota': 'Monthly Quota',
|
||
'quota_upgrade_hint': 'Platinum: Credit score 90+ and 3 consecutive months >= \$10M issuance',
|
||
'quota_request_title': 'Quota Requests',
|
||
'quota_request_reviewing': 'Under Review',
|
||
'quota_request_rejected': 'Rejected',
|
||
'quota_request_approved': 'Approved',
|
||
'quota_submit_new': 'Submit New Request',
|
||
|
||
// ── AI Agent ──
|
||
'ai_agent_title': 'AI Assistant',
|
||
'ai_agent_welcome': 'Hello! I\'m the Genex AI Assistant. I can help analyze sales data, optimize pricing, and improve your credit rating. How can I help?',
|
||
'ai_agent_input_hint': 'Ask a question...',
|
||
'ai_agent_action_sales': 'Analyze monthly sales',
|
||
'ai_agent_action_timing': 'Best time to issue coupons',
|
||
'ai_agent_action_credit': 'How to improve credit?',
|
||
'ai_agent_action_quota': 'Quota usage analysis',
|
||
|
||
// ── Store Management ──
|
||
'store_title': 'Store Management',
|
||
'store_tab_list': 'Stores',
|
||
'store_tab_employees': 'Employees',
|
||
'store_status_open': 'Open',
|
||
'store_status_closed': 'Closed',
|
||
'store_people_unit': ' staff',
|
||
'store_emp_edit': 'Edit',
|
||
'store_emp_remove': 'Remove',
|
||
|
||
// ── Settings ──
|
||
'settings_title': 'Settings',
|
||
'settings_admin': 'Admin',
|
||
'settings_gold_issuer': 'Gold Issuer',
|
||
'settings_upgrade': 'Upgrade',
|
||
'settings_group_company': 'Company',
|
||
'settings_company_info': 'Company Info',
|
||
'settings_store_mgmt': 'Store Management',
|
||
'settings_employee_mgmt': 'Employee Management',
|
||
'settings_permissions': 'Permissions',
|
||
'settings_group_support': 'Support',
|
||
'settings_ai_assistant': 'AI Assistant',
|
||
'settings_customer_service': 'Customer Service',
|
||
'settings_help_center': 'Help Center',
|
||
'settings_feedback': 'Feedback',
|
||
'settings_group_security': 'Security & Account',
|
||
'settings_change_password': 'Change Password',
|
||
'settings_operation_log': 'Activity Log',
|
||
'settings_about': 'About Genex',
|
||
'settings_logout': 'Sign Out',
|
||
|
||
// ── AI Suggestion Card ──
|
||
'ai_suggestion_label': 'AI Suggestion',
|
||
'ai_suggestion_dismiss': 'Dismiss',
|
||
'ai_suggestion_accept': 'Accept',
|
||
|
||
// ── Update ──
|
||
'update.newVersion': 'New Version Available',
|
||
'update.importantUpdate': 'Important Update',
|
||
'update.latestVersion': 'Latest version',
|
||
'update.fileSize': 'File size',
|
||
'update.changelog': "What's New",
|
||
'update.marketHint': 'Your app was installed from an app store. We recommend updating through the store.',
|
||
'update.goMarket': 'Go to App Store',
|
||
'update.later': 'Later',
|
||
'update.skipUpdate': 'Skip',
|
||
'update.updateNow': 'Update Now',
|
||
'update.preparing': 'Preparing...',
|
||
'update.downloading': 'Downloading...',
|
||
'update.downloadComplete': 'Download Complete',
|
||
'update.cancelled': 'Download Cancelled',
|
||
'update.failed': 'Download failed, please try again',
|
||
'update.installing': 'Installing...',
|
||
'update.installFailed': 'Installation failed',
|
||
'update.installLater': 'Install Later',
|
||
'update.installNow': 'Install Now',
|
||
'update.updating': 'Updating',
|
||
'update.updateFailed': 'Update Failed',
|
||
'update.cancel': 'Cancel',
|
||
'update.retry': 'Retry',
|
||
'update.close': 'Close',
|
||
'update.isLatest': 'Already up to date',
|
||
'update.checkUpdate': 'Check for Updates',
|
||
|
||
// ── Notification ──
|
||
'notification.system': 'System',
|
||
'notification.activity': 'Activity',
|
||
'notification.reward': 'Reward',
|
||
'notification.upgrade': 'Upgrade',
|
||
'notification.announcement': 'Announcement',
|
||
'notification.markAllRead': 'Mark All Read',
|
||
'notification.empty': 'No notifications',
|
||
'notification.loadFailed': 'Load failed',
|
||
'notification.retry': 'Retry',
|
||
};
|
||
|
||
// ================================================================
|
||
// Japanese
|
||
// ================================================================
|
||
static const Map<String, String> _jaJP = {
|
||
// ── Common ──
|
||
'app_name': 'Genex',
|
||
'confirm': '確認',
|
||
'cancel': 'キャンセル',
|
||
'save': '保存',
|
||
'delete': '削除',
|
||
'edit': '編集',
|
||
'search': '検索',
|
||
'loading': '読み込み中...',
|
||
'retry': 'リトライ',
|
||
'done': '完了',
|
||
'next': '次へ',
|
||
'back': '戻る',
|
||
'close': '閉じる',
|
||
'more': 'もっと見る',
|
||
'all': 'すべて',
|
||
'yes': 'はい',
|
||
'no': 'いいえ',
|
||
'export': 'エクスポート',
|
||
'view': '表示',
|
||
'submit': '提出',
|
||
'prev_step': '前へ',
|
||
'view_all': 'すべて表示',
|
||
|
||
// ── Tabs ──
|
||
'tab_dashboard': 'ダッシュボード',
|
||
'tab_coupons': 'クーポン管理',
|
||
'tab_redemption': '検証',
|
||
'tab_finance': '財務',
|
||
'tab_mine': '設定',
|
||
|
||
// ── Login ──
|
||
'login_title': 'Genex 発行者コンソール',
|
||
'login_subtitle': '企業アカウントでログインしてクーポン発行を管理',
|
||
'login_phone': '電話番号',
|
||
'login_phone_hint': '管理者の電話番号を入力',
|
||
'login_code': '認証コード',
|
||
'login_get_code': 'コード取得',
|
||
'login_agree_prefix': '以下に同意します:',
|
||
'login_agreement': '発行者サービス規約',
|
||
'login_button': 'ログイン',
|
||
'login_register': 'アカウントがない場合は申請',
|
||
'login_error_phone': '電話番号を入力してください',
|
||
'login_error_code': '6桁の認証コードを入力してください',
|
||
'login_error_network': 'ネットワークエラーです。後でもう一度お試しください',
|
||
'login_code_sent': '認証コードを送信しました',
|
||
|
||
// ── Onboarding ──
|
||
'onboarding_title': '企業登録',
|
||
'onboarding_step_company': '企業情報',
|
||
'onboarding_step_documents': '書類',
|
||
'onboarding_step_contact': '連絡先',
|
||
'onboarding_step_review': '審査中',
|
||
'onboarding_submit_review': '審査を提出',
|
||
'onboarding_company_title': '企業基本情報',
|
||
'onboarding_company_subtitle': '審査のために正確な企業情報をご記入ください',
|
||
'onboarding_company_name': '企業名',
|
||
'onboarding_company_name_hint': '企業正式名称を入力',
|
||
'onboarding_credit_code': '法人番号',
|
||
'onboarding_credit_code_hint': '18桁のコードを入力',
|
||
'onboarding_company_type': '企業タイプ',
|
||
'onboarding_type_restaurant': '飲食業',
|
||
'onboarding_type_retail': '小売業',
|
||
'onboarding_type_entertainment': 'エンタメ/観光',
|
||
'onboarding_type_other': 'その他',
|
||
'onboarding_company_address': '企業住所',
|
||
'onboarding_company_address_hint': '登記住所を入力',
|
||
'onboarding_ai_compliance': 'AI コンプライアンス',
|
||
'onboarding_ai_compliance_desc': '入力後、AIが自動的にコンプライアンスを確認します',
|
||
'onboarding_doc_title': '書類アップロード',
|
||
'onboarding_doc_subtitle': '鮮明な企業書類をアップロードしてください',
|
||
'onboarding_doc_license': '営業許可証',
|
||
'onboarding_doc_id': '代表者身分証明書(表裏)',
|
||
'onboarding_doc_cert': '業界資格証明書(任意)',
|
||
'onboarding_required': '*必須',
|
||
'onboarding_upload': 'アップロード',
|
||
'onboarding_contact_title': '連絡先情報',
|
||
'onboarding_contact_name': '担当者名',
|
||
'onboarding_contact_phone': '担当者電話番号',
|
||
'onboarding_contact_email': '企業メール',
|
||
'onboarding_contact_role': '役職',
|
||
'onboarding_review_title': '審査中',
|
||
'onboarding_review_desc': '申請が提出されました。審査には1-3営業日かかります。',
|
||
'onboarding_back_login': 'ログインに戻る',
|
||
'onboarding_approved_title': '承認済み',
|
||
'onboarding_approved_desc': 'おめでとうございます!シルバーティアの初期クォータを獲得しました。',
|
||
'onboarding_enter_console': 'コンソールへ',
|
||
'onboarding_rejected_title': '審査不合格',
|
||
'onboarding_rejected_desc': '理由:書類が不鮮明です。再アップロードしてください。',
|
||
'onboarding_resubmit': '再提出',
|
||
|
||
// ── Dashboard ──
|
||
'dashboard_title': 'ダッシュボード',
|
||
'dashboard_gold_issuer': 'ゴールド発行者',
|
||
'dashboard_total_issued': '総発行数',
|
||
'dashboard_redemption_rate': '検証率',
|
||
'dashboard_sales_revenue': '売上収入',
|
||
'dashboard_withdrawable': '出金可能',
|
||
'dashboard_ai_insight': 'AI インサイト',
|
||
'dashboard_ai_insight_content': '今週の飲食クーポンの売上が15%減少しました。週末に期間限定割引を実施して売上を向上させましょう。',
|
||
'dashboard_dismiss': '無視',
|
||
'dashboard_accept': '採用',
|
||
'dashboard_credit_rating': '信用等級 AA',
|
||
'dashboard_credit_gap': 'AAAまであと12ポイント',
|
||
'dashboard_improve_suggestion': '改善提案',
|
||
'dashboard_issue_quota': '発行クォータ',
|
||
'dashboard_used_percent': '76% 使用済み',
|
||
'dashboard_sales_trend': '販売トレンド',
|
||
'dashboard_last_7_days': '過去7日間',
|
||
'dashboard_sales_chart': '販売トレンドチャート',
|
||
'dashboard_recent_activity': '最近のアクティビティ',
|
||
|
||
// ── User Portrait ──
|
||
'user_portrait_title': 'ユーザー分析',
|
||
'user_portrait_export': 'エクスポート',
|
||
'user_portrait_total_buyers': '総購入者',
|
||
'user_portrait_mau': '月間アクティブ',
|
||
'user_portrait_avg_price': '平均注文額',
|
||
'user_portrait_repurchase_rate': 'リピート率',
|
||
'user_portrait_age_dist': '年齢分布',
|
||
'user_portrait_geo_dist': '地域分布 (Top 5)',
|
||
'user_portrait_other': 'その他',
|
||
'user_portrait_preference': '購入嗜好',
|
||
'user_portrait_dining': '飲食',
|
||
'user_portrait_shopping': 'ショッピング',
|
||
'user_portrait_entertainment': 'エンタメ',
|
||
'user_portrait_travel': '旅行',
|
||
'user_portrait_repurchase_funnel': 'リピートファネル',
|
||
'user_portrait_first_purchase': '初回購入',
|
||
'user_portrait_2nd_purchase': '2回目',
|
||
'user_portrait_3_5_purchase': '3-5回',
|
||
'user_portrait_6_10_purchase': '6-10回',
|
||
'user_portrait_10_plus_purchase': '10回以上',
|
||
'user_portrait_ai_insight': 'AI ユーザーインサイト',
|
||
'user_portrait_core_users': 'コアユーザー',
|
||
'user_portrait_repurchase_advice': 'リピート改善提案',
|
||
'user_portrait_geo_opportunity': '地域拡大機会',
|
||
'user_portrait_churn_warning': '離脱警告',
|
||
'user_portrait_core_users_desc': '25〜34歳の女性ユーザーが38%を占め、消費額の42%に貢献。このグループ向けの限定特典を検討してください。',
|
||
'user_portrait_repurchase_advice_desc': 'リピート率34.2%は業界平均45%を下回っています。段階割引やポイントプログラムをご検討ください。',
|
||
'user_portrait_geo_opportunity_desc': 'テキサス州の成長率が最高(+25%)です。同地域のプロモーション強化を検討してください。',
|
||
'user_portrait_churn_warning_desc': '856名のユーザーが30日間非アクティブです。クーポン付きプッシュ通知で呼び戻しを検討してください。',
|
||
|
||
// ── Coupon List ──
|
||
'coupon_list_title': 'クーポン管理',
|
||
'coupon_list_fab': '発行',
|
||
'coupon_list_empty': 'クーポンがありません',
|
||
'coupon_list_ai_suggestion': '提案:週末の飲食クーポンは通常30%売上向上',
|
||
'coupon_filter_all': 'すべて',
|
||
'coupon_filter_on_sale': '販売中',
|
||
'coupon_filter_sold_out': '完売',
|
||
'coupon_filter_pending': '審査中',
|
||
'coupon_filter_delisted': '非公開',
|
||
'coupon_stat_issued': '発行数',
|
||
'coupon_stat_sold': '販売数',
|
||
'coupon_stat_redeemed': '検証数',
|
||
'coupon_stat_rate': '検証率',
|
||
'coupon_face_value': '額面',
|
||
|
||
// ── Create Coupon ──
|
||
'create_coupon_title': '新規クーポン発行',
|
||
'create_coupon_save_draft': '下書き保存',
|
||
'create_coupon_step_template': 'テンプレート',
|
||
'create_coupon_step_info': '基本情報',
|
||
'create_coupon_step_rules': 'ルール',
|
||
'create_coupon_step_preview': 'プレビュー',
|
||
'create_coupon_select_template': 'テンプレート選択',
|
||
'create_coupon_select_template_desc': 'ビジネスに合ったクーポンタイプを選択',
|
||
'create_coupon_tpl_discount': '割引クーポン',
|
||
'create_coupon_tpl_discount_desc': '割合割引',
|
||
'create_coupon_tpl_voucher': '金券',
|
||
'create_coupon_tpl_voucher_desc': '固定額割引',
|
||
'create_coupon_tpl_gift': 'ギフトカード',
|
||
'create_coupon_tpl_gift_desc': 'チャージ可能',
|
||
'create_coupon_tpl_stored': 'プリペイド券',
|
||
'create_coupon_tpl_stored_desc': '前払い残高',
|
||
'create_coupon_basic_info': '基本情報',
|
||
'create_coupon_name': 'クーポン名',
|
||
'create_coupon_name_hint': '例:¥25 スタバギフトカード',
|
||
'create_coupon_face_value': '額面 (\$)',
|
||
'create_coupon_face_value_hint': '額面を入力',
|
||
'create_coupon_issue_price': '発行価格 (\$)',
|
||
'create_coupon_issue_price_hint': '通常は額面より低い',
|
||
'create_coupon_quantity': '発行数量',
|
||
'create_coupon_quantity_hint': '今回の総数',
|
||
'create_coupon_expiry': '有効期限(最長12ヶ月)',
|
||
'create_coupon_description': '説明(任意)',
|
||
'create_coupon_description_hint': '利用ルールを詳しく記載',
|
||
'create_coupon_rules': 'ルール設定',
|
||
'create_coupon_transferable': '譲渡可能',
|
||
'create_coupon_transferable_desc': '二次市場での転売が可能',
|
||
'create_coupon_max_resale': '最大転売回数',
|
||
'create_coupon_refund_policy': '返金ポリシー',
|
||
'create_coupon_refund_window': '返金期間(日)',
|
||
'create_coupon_auto_refund': '自動返金',
|
||
'create_coupon_auto_refund_desc': '期間内はユーザーが直接返金可能',
|
||
'create_coupon_stackable': '併用可能',
|
||
'create_coupon_stackable_desc': '1注文で複数枚使用可能',
|
||
'create_coupon_min_purchase': '最低購入金額(\$、任意)',
|
||
'create_coupon_store_limit': '利用店舗制限(任意)',
|
||
'create_coupon_store_limit_hint': '空欄で全店舗利用可',
|
||
'create_coupon_preview': 'プレビュー確認',
|
||
'create_coupon_preview_desc': '内容をご確認ください。提出後は審査に入ります。',
|
||
'create_coupon_template_label': 'テンプレート',
|
||
'create_coupon_detail_transferable': '譲渡可能',
|
||
'create_coupon_detail_refund_window': '返金期間',
|
||
'create_coupon_detail_auto_refund': '自動返金',
|
||
'create_coupon_review_notice': '提出後、プラットフォーム審査を経て自動的に販売開始されます。',
|
||
'create_coupon_submit_success': '提出完了',
|
||
'create_coupon_submit_desc': 'クーポンは審査中です。1-2営業日で完了予定。',
|
||
'create_coupon_submit_error': '提出に失敗しました',
|
||
'create_coupon_ok': 'OK',
|
||
'create_coupon_day_unit': ' 日',
|
||
'create_coupon_ai_price_suggestion': 'AIアドバイス:同種のクーポンは額面の85%が一般的です。推奨価格:\$21.25',
|
||
'create_coupon_face_value_short': '額面',
|
||
'create_coupon_issue_price_short': '発行価格',
|
||
'create_coupon_quantity_short': '数量',
|
||
'create_coupon_max_times': '最大',
|
||
'create_coupon_times': '回',
|
||
|
||
// ── Coupon Detail ──
|
||
'coupon_detail_title': 'クーポン詳細',
|
||
'coupon_detail_edit': '編集',
|
||
'coupon_detail_reissue': '追加発行',
|
||
'coupon_detail_delist': '非公開',
|
||
'coupon_detail_recall_unsold': '未販売回収',
|
||
'coupon_detail_status_on_sale': '販売中',
|
||
'coupon_detail_sales_data': '販売データ',
|
||
'coupon_detail_sales_income': '売上収入',
|
||
'coupon_detail_breakage_income': 'Breakage収入(期限切れ)',
|
||
'coupon_detail_platform_fee': 'プラットフォーム手数料',
|
||
'coupon_detail_net_income': '純収入',
|
||
'coupon_detail_daily_trend': '日次販売トレンド',
|
||
'coupon_detail_secondary_market': '二次市場分析',
|
||
'coupon_detail_listing_count': '出品数',
|
||
'coupon_detail_avg_resale_price': '平均転売価格',
|
||
'coupon_detail_avg_discount_rate': '平均割引率',
|
||
'coupon_detail_resale_volume': '転売成約数',
|
||
'coupon_detail_resale_amount': '転売成約額',
|
||
'coupon_detail_price_chart': '価格チャート',
|
||
'coupon_detail_financing_effect': '融資効果',
|
||
'coupon_detail_cash_advance': '前倒し回収',
|
||
'coupon_detail_avg_advance_days': '平均前倒し日数',
|
||
'coupon_detail_financing_cost': '融資コスト',
|
||
'coupon_detail_equiv_annual_rate': '年利換算',
|
||
'coupon_detail_recent_redemptions': '最近の検証記録',
|
||
'coupon_detail_recall_title': '未販売クーポン回収',
|
||
'coupon_detail_recall_desc': '未販売のクーポンをすべて回収しますか?元に戻せません。',
|
||
'coupon_detail_confirm_recall': '回収確認',
|
||
'coupon_detail_delist_title': '緊急非公開',
|
||
'coupon_detail_delist_desc': 'このクーポンを非公開にしますか?消費者は購入できなくなります。',
|
||
'coupon_detail_delist_reason': '非公開理由',
|
||
'coupon_detail_confirm_delist': '非公開確認',
|
||
|
||
// ── Batch Operations ──
|
||
'batch_title': '一括操作',
|
||
'batch_history_tooltip': '操作履歴',
|
||
'batch_tab_issue': '一括発行',
|
||
'batch_tab_recall': '一括回収',
|
||
'batch_tab_price': '一括価格変更',
|
||
'batch_progress_label': '一括操作実行中...',
|
||
'batch_select_template': 'テンプレート選択',
|
||
'batch_issue_quantity': '発行数量',
|
||
'batch_validity_range': '有効期間',
|
||
'batch_custom_quantity_hint': 'カスタム数量を入力',
|
||
'batch_custom_quantity': 'カスタム数量',
|
||
'batch_date_range_hint': '有効期間を選択',
|
||
'batch_preview': '発行プレビュー',
|
||
'batch_preview_template': 'テンプレート',
|
||
'batch_preview_quantity': '数量',
|
||
'batch_preview_validity': '有効期間',
|
||
'batch_preview_total_value': '推定総額面',
|
||
'batch_not_selected': '未選択',
|
||
'batch_not_set': '未設定',
|
||
'batch_unit_sheets': ' 枚',
|
||
'batch_confirm_issue': '一括発行確認',
|
||
'batch_confirm_issue_desc': '{count} 枚の {template} を発行します。実行しますか?',
|
||
'batch_filter_category': 'カテゴリで絞込',
|
||
'batch_filter_status': 'ステータスで絞込',
|
||
'batch_matching_coupons': '該当クーポン',
|
||
'batch_select_all': '全選択',
|
||
'batch_deselect_all': '全解除',
|
||
'batch_remaining': '残り',
|
||
'batch_recall_reason': '回収理由',
|
||
'batch_recall_reason_hint': '回収理由を入力(必須)',
|
||
'batch_confirm_recall': '回収確認',
|
||
'batch_confirm_recall_title': '一括回収確認',
|
||
'batch_confirm_recall_desc': '{count} 枚を回収します。元に戻せません。',
|
||
'batch_recall_reason_label': '理由',
|
||
'batch_price_adjust_ratio': '価格調整比率',
|
||
'batch_affected_coupons': '対象クーポン',
|
||
'batch_current_price': '現在価格',
|
||
'batch_price_decrease_hint': '{pct}% 値下げで売上 {impact}% 向上見込み',
|
||
'batch_price_increase_hint': '{pct}% 値上げで利益 {impact}% 向上見込み',
|
||
'batch_price_no_change': '価格変更なし',
|
||
'batch_confirm_price': '一括価格変更確認',
|
||
'batch_confirm_price_desc': '4種のクーポンを {pct}% 調整します。実行しますか?',
|
||
'batch_operation_history': '操作履歴',
|
||
'batch_operation_complete': '一括操作完了',
|
||
'batch_status_on_sale': '販売中',
|
||
'batch_status_sold': '販売済',
|
||
'batch_status_expired': '期限切れ',
|
||
|
||
// ── Redemption ──
|
||
'redemption_title': '検証管理',
|
||
'redemption_tab_scan': 'スキャン検証',
|
||
'redemption_tab_history': '検証履歴',
|
||
'redemption_scan_hint': 'クーポンコードをスキャナーに向けてください',
|
||
'redemption_manual_hint': 'クーポンコードを手動入力',
|
||
'redemption_redeem': '検証',
|
||
'redemption_batch': '一括検証',
|
||
'redemption_today_title': '本日の検証',
|
||
'redemption_today_count': '検証回数',
|
||
'redemption_today_amount': '検証金額',
|
||
'redemption_today_stores': '店舗数',
|
||
'redemption_confirm_title': '検証確認',
|
||
'redemption_confirm_button': '検証実行',
|
||
'redemption_batch_title': '一括検証',
|
||
'redemption_batch_desc': '複数コードを入力(1行1コード)',
|
||
'redemption_batch_hint': 'コードを貼り付け...',
|
||
|
||
// ── Finance ──
|
||
'finance_title': '財務管理',
|
||
'finance_tab_overview': '概要',
|
||
'finance_tab_transactions': '取引明細',
|
||
'finance_tab_reconciliation': '照合レポート',
|
||
'finance_export_title': 'データエクスポート',
|
||
'finance_export_csv': 'CSV エクスポート',
|
||
'finance_export_excel': 'Excel エクスポート',
|
||
'finance_export_pdf': 'PDF エクスポート',
|
||
'finance_withdrawable': '出金可能残高',
|
||
'finance_withdraw': '出金',
|
||
'finance_sales_income': '売上収入',
|
||
'finance_breakage_income': 'Breakage収入',
|
||
'finance_platform_fee': 'プラットフォーム手数料',
|
||
'finance_pending_settlement': '未決済',
|
||
'finance_withdrawn': '出金済み',
|
||
'finance_total_income': '総収入',
|
||
'finance_guarantee_title': '保証金と凍結金',
|
||
'finance_guarantee_deposit': '納入済み保証金',
|
||
'finance_frozen_sales': '凍結売上',
|
||
'finance_frozen_ratio': '凍結比率',
|
||
'finance_auto_freeze': '売上自動凍結',
|
||
'finance_auto_freeze_desc': '信用向上のため売上の20%を自動凍結',
|
||
'finance_revenue_trend': '収入トレンド',
|
||
'finance_revenue_chart': '月次収入チャート',
|
||
'finance_generate_report': '新規レポート作成',
|
||
|
||
// ── Reconciliation ──
|
||
'reconciliation_title': '照合と決済',
|
||
'reconciliation_export_tooltip': 'レポートエクスポート',
|
||
'reconciliation_period_day': '日',
|
||
'reconciliation_period_week': '週',
|
||
'reconciliation_period_month': '月',
|
||
'reconciliation_period_quarter': '四半期',
|
||
'reconciliation_expected': '予定金額',
|
||
'reconciliation_settled': '決済済み',
|
||
'reconciliation_pending': '未決済',
|
||
'reconciliation_discrepancy_amount': '差異金額',
|
||
'reconciliation_auto_title': '自動照合',
|
||
'reconciliation_auto_last_run': '前回実行: 本日 06:00',
|
||
'reconciliation_auto_running': '実行中',
|
||
'reconciliation_match_rate': '一致率',
|
||
'reconciliation_matched': '一致済み',
|
||
'reconciliation_to_check': '要確認',
|
||
'reconciliation_has_diff': '差異あり',
|
||
'reconciliation_detail_title': '照合明細',
|
||
'reconciliation_col_period': '期間',
|
||
'reconciliation_col_expected': '予定',
|
||
'reconciliation_col_actual': '実績',
|
||
'reconciliation_col_diff': '差異',
|
||
'reconciliation_col_status': 'ステータス',
|
||
'reconciliation_status_done': '照合済み',
|
||
'reconciliation_status_diff': '差異あり',
|
||
'reconciliation_status_pending': '未照合',
|
||
'reconciliation_discrepancy_title': '差異調査',
|
||
'reconciliation_pending_items': ' 件処理待ち',
|
||
'reconciliation_discrepancy_investigating': '調査中',
|
||
'reconciliation_discrepancy_resolved': '解決済み',
|
||
'reconciliation_discrepancy_amount_label': '差異金額',
|
||
'reconciliation_export_title': 'レポートエクスポート',
|
||
'reconciliation_export_dialog_title': '照合レポートエクスポート',
|
||
|
||
// ── Financing Analysis ──
|
||
'financing_title': '融資効果分析',
|
||
'financing_refresh_tooltip': 'データ更新',
|
||
'financing_export_tooltip': 'レポートエクスポート',
|
||
'financing_total_amount': '融資総額',
|
||
'financing_avg_rate': '平均金利',
|
||
'financing_count': '融資件数',
|
||
'financing_utilization': '資金利用率',
|
||
'financing_lifecycle': '融資ライフサイクル',
|
||
'financing_stage_submitted': '申請提出',
|
||
'financing_stage_approved': '承認',
|
||
'financing_stage_funded': '入金',
|
||
'financing_stage_in_use': '利用中',
|
||
'financing_stage_repayment': '返済期',
|
||
'financing_stage_settled': '完済',
|
||
'financing_stage_tbd': '未定',
|
||
'financing_cost_benefit': 'コスト効果分析',
|
||
'financing_interest_cost': '利息コスト',
|
||
'financing_annual_rate': '年率',
|
||
'financing_generated_income': '生成収入',
|
||
'financing_income_from_financing': '融資活用収入',
|
||
'financing_net_benefit': '純利益',
|
||
'financing_roi': '投資収益率 (ROI)',
|
||
'financing_cost_ratio': '収益/コスト比',
|
||
'financing_liquidity': '流動性指標',
|
||
'financing_quick_ratio': '当座比率',
|
||
'financing_current_ratio': '流動比率',
|
||
'financing_status_healthy': '健全',
|
||
'financing_status_good': '良好',
|
||
'financing_cashflow_forecast': 'キャッシュフロー予測',
|
||
'financing_this_month_inflow': '今月予定流入',
|
||
'financing_this_month_outflow': '今月予定流出',
|
||
'financing_net_cashflow': '純キャッシュフロー',
|
||
'financing_next_month_inflow': '来月予定流入',
|
||
'financing_next_month_outflow': '来月予定流出',
|
||
'financing_next_month_net': '来月純キャッシュフロー',
|
||
'financing_risk_title': 'リスク指標',
|
||
'financing_default_rate': 'デフォルト率',
|
||
'financing_overdue_rate': '延滞率',
|
||
'financing_concentration': '集中度',
|
||
'financing_default_detail': 'デフォルト率',
|
||
'financing_default_desc': '業界平均1.5%を下回る',
|
||
'financing_overdue_detail': '延滞率',
|
||
'financing_overdue_desc': '警戒ライン3.0%に接近、要注意',
|
||
'financing_concentration_detail': '集中度リスク',
|
||
'financing_concentration_desc': '最大単一エクスポージャー35%、分散推奨',
|
||
'financing_ai_title': 'AI 融資戦略提案',
|
||
'financing_ai_subtitle': '経営データに基づくスマート分析',
|
||
'financing_priority_high': '高優先',
|
||
'financing_priority_medium': '中優先',
|
||
'financing_get_detail_plan': '詳細プランを取得',
|
||
|
||
// ── Credit ──
|
||
'credit_title': '信用格付け',
|
||
'credit_score_label': '信用等級 AA',
|
||
'credit_gap_label': 'AAAまであと8ポイント',
|
||
'credit_factors': '評価因子',
|
||
'credit_factor_redemption': '検証率',
|
||
'credit_factor_breakage': '沈殿制御',
|
||
'credit_factor_market': '市場存続',
|
||
'credit_factor_satisfaction': 'ユーザー満足度',
|
||
'credit_tier_title': '発行者ティア',
|
||
'credit_tier_silver': 'シルバー',
|
||
'credit_tier_gold': 'ゴールド',
|
||
'credit_tier_platinum': 'プラチナ',
|
||
'credit_tier_diamond': 'ダイヤモンド',
|
||
'credit_tier_progress': '現在:ゴールド → プラチナには月間発行500万が必要',
|
||
'credit_ai_title': 'AI 信用改善提案',
|
||
'credit_history_title': '信用変動履歴',
|
||
|
||
// ── Quota Management ──
|
||
'quota_title': 'クォータ管理',
|
||
'quota_apply_increase': '増額申請',
|
||
'quota_current': '現在のクォータ',
|
||
'quota_gold_tier': 'ゴールドティア',
|
||
'quota_used': '使用済み',
|
||
'quota_monthly_limit': '月間発行限度',
|
||
'quota_remaining': '残り',
|
||
'quota_breakdown': 'クォータ内訳',
|
||
'quota_usage_records': '使用記録',
|
||
'quota_period_month': '今月',
|
||
'quota_period_quarter': '今四半期',
|
||
'quota_period_year': '今年',
|
||
'quota_tier_and_quota': 'ティアとクォータ',
|
||
'quota_current_badge': '現在',
|
||
'quota_monthly_quota': '月間クォータ',
|
||
'quota_upgrade_hint': 'プラチナ:信用スコア90+ かつ 3ヶ月連続 ≥\$10M発行',
|
||
'quota_request_title': '増額申請履歴',
|
||
'quota_request_reviewing': '審査中',
|
||
'quota_request_rejected': '却下',
|
||
'quota_request_approved': '承認済み',
|
||
'quota_submit_new': '新規申請',
|
||
|
||
// ── AI Agent ──
|
||
'ai_agent_title': 'AI アシスタント',
|
||
'ai_agent_welcome': 'こんにちは!Genex AIアシスタントです。販売データ分析、価格最適化、信用格付け向上のお手伝いができます。何かお手伝いしましょうか?',
|
||
'ai_agent_input_hint': '質問を入力...',
|
||
'ai_agent_action_sales': '今月の売上を分析',
|
||
'ai_agent_action_timing': '最適な発行タイミング',
|
||
'ai_agent_action_credit': '信用格付けの改善方法',
|
||
'ai_agent_action_quota': 'クォータ使用状況分析',
|
||
|
||
// ── Store Management ──
|
||
'store_title': '店舗管理',
|
||
'store_tab_list': '店舗一覧',
|
||
'store_tab_employees': 'スタッフ管理',
|
||
'store_status_open': '営業中',
|
||
'store_status_closed': '休業中',
|
||
'store_people_unit': '名',
|
||
'store_emp_edit': '編集',
|
||
'store_emp_remove': '削除',
|
||
|
||
// ── Settings ──
|
||
'settings_title': '設定',
|
||
'settings_admin': '管理者',
|
||
'settings_gold_issuer': 'ゴールド発行者',
|
||
'settings_upgrade': 'アップグレード',
|
||
'settings_group_company': '企業管理',
|
||
'settings_company_info': '企業情報',
|
||
'settings_store_mgmt': '店舗管理',
|
||
'settings_employee_mgmt': 'スタッフ管理',
|
||
'settings_permissions': '権限設定',
|
||
'settings_group_support': 'サポート',
|
||
'settings_ai_assistant': 'AI アシスタント',
|
||
'settings_customer_service': '専属カスタマーサービス',
|
||
'settings_help_center': 'ヘルプセンター',
|
||
'settings_feedback': 'フィードバック',
|
||
'settings_group_security': 'セキュリティとアカウント',
|
||
'settings_change_password': 'パスワード変更',
|
||
'settings_operation_log': '操作ログ',
|
||
'settings_about': 'Genex について',
|
||
'settings_logout': 'ログアウト',
|
||
|
||
// ── AI Suggestion Card ──
|
||
'ai_suggestion_label': 'AI 提案',
|
||
'ai_suggestion_dismiss': '無視',
|
||
'ai_suggestion_accept': '採用',
|
||
|
||
// ── Update ──
|
||
'update.newVersion': '新バージョン',
|
||
'update.importantUpdate': '重要な更新',
|
||
'update.latestVersion': '最新バージョン',
|
||
'update.fileSize': 'ファイルサイズ',
|
||
'update.changelog': '更新内容',
|
||
'update.marketHint': 'アプリストアからインストールされました。ストアでの更新を推奨します。',
|
||
'update.goMarket': 'ストアへ',
|
||
'update.later': '後で',
|
||
'update.skipUpdate': 'スキップ',
|
||
'update.updateNow': '今すぐ更新',
|
||
'update.preparing': '準備中...',
|
||
'update.downloading': 'ダウンロード中...',
|
||
'update.downloadComplete': 'ダウンロード完了',
|
||
'update.cancelled': 'キャンセル済み',
|
||
'update.failed': 'ダウンロード失敗',
|
||
'update.installing': 'インストール中...',
|
||
'update.installFailed': 'インストール失敗',
|
||
'update.installLater': '後でインストール',
|
||
'update.installNow': '今すぐインストール',
|
||
'update.updating': '更新中',
|
||
'update.updateFailed': '更新失敗',
|
||
'update.cancel': 'キャンセル',
|
||
'update.retry': 'リトライ',
|
||
'update.close': '閉じる',
|
||
'update.isLatest': '最新バージョンです',
|
||
'update.checkUpdate': 'アップデート確認',
|
||
|
||
// ── Notification ──
|
||
'notification.system': 'システム',
|
||
'notification.activity': 'アクティビティ',
|
||
'notification.reward': '収益',
|
||
'notification.upgrade': 'アップグレード',
|
||
'notification.announcement': 'お知らせ',
|
||
'notification.markAllRead': 'すべて既読',
|
||
'notification.empty': '通知なし',
|
||
'notification.loadFailed': '読み込み失敗',
|
||
'notification.retry': 'リトライ',
|
||
};
|
||
}
|
||
|
||
/// LocalizationsDelegate
|
||
class AppLocalizationsDelegate extends LocalizationsDelegate<AppLocalizations> {
|
||
const AppLocalizationsDelegate();
|
||
|
||
@override
|
||
bool isSupported(Locale locale) {
|
||
return ['zh', 'en', 'ja'].contains(locale.languageCode);
|
||
}
|
||
|
||
@override
|
||
Future<AppLocalizations> load(Locale locale) async {
|
||
return AppLocalizations(locale);
|
||
}
|
||
|
||
@override
|
||
bool shouldReload(covariant LocalizationsDelegate<AppLocalizations> old) =>
|
||
false;
|
||
}
|
||
|
||
/// BuildContext 扩展,快捷访问翻译
|
||
extension AppLocalizationsExtension on BuildContext {
|
||
/// 快捷翻译: context.t('key')
|
||
String t(String key) => AppLocalizations.of(this).get(key);
|
||
}
|