12de5a230a
- suggestion_service: fix scorer (stringList unmarshal accepts scalar|array; anchor scoring on base universal score so bool matches no longer tie); add localizeReasons for human-readable, Accept-Language-localized match reasons - lookup_i18n: localize lookup display names, home-profile options, document types/categories via internal/i18n - static_data_handler: per-locale seeded-data response (display_name, home profile options, document types/categories) with per-locale cache + ETag - settings_handler: invalidate per-locale seeded-data cache on lookup change instead of pre-warming a single non-localized blob - cache_service: per-locale seeded-data keys + ETag - DTOs: add DisplayName fields (task/residence/contractor) - translations: add suggestion.reason.* and lookup.* keys across all 10 langs - cmd/api: extract startup helpers + tests Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
248 lines
13 KiB
JSON
248 lines
13 KiB
JSON
{
|
||
"error.invalid_request_body": "请求正文无效",
|
||
"error.invalid_credentials": "凭据无效",
|
||
"error.account_inactive": "账户未激活",
|
||
"error.username_taken": "用户名已被占用",
|
||
"error.email_taken": "邮箱已被注册",
|
||
"error.email_already_taken": "邮箱已被占用",
|
||
"error.registration_failed": "注册失败",
|
||
"error.not_authenticated": "未认证",
|
||
"error.invalid_token": "无效的令牌",
|
||
"error.failed_to_get_user": "获取用户信息失败",
|
||
"error.failed_to_update_profile": "更新个人资料失败",
|
||
"error.invalid_verification_code": "验证码无效",
|
||
"error.verification_code_expired": "验证码已过期",
|
||
"error.email_already_verified": "邮箱已验证",
|
||
"error.verification_failed": "验证失败",
|
||
"error.failed_to_resend_verification": "重新发送验证失败",
|
||
"error.rate_limit_exceeded": "密码重置请求过多,请稍后再试。",
|
||
"error.too_many_attempts": "尝试次数过多,请申请新的验证码。",
|
||
"error.invalid_reset_token": "重置令牌无效或已过期",
|
||
"error.password_reset_failed": "密码重置失败",
|
||
"error.apple_signin_not_configured": "未配置 Apple 登录",
|
||
"error.apple_signin_failed": "Apple 登录失败",
|
||
"error.invalid_apple_token": "Apple 身份令牌无效",
|
||
"error.google_signin_not_configured": "未配置 Google 登录",
|
||
"error.google_signin_failed": "Google 登录失败",
|
||
"error.invalid_google_token": "Google 身份令牌无效",
|
||
"error.invalid_task_id": "任务 ID 无效",
|
||
"error.invalid_residence_id": "房产 ID 无效",
|
||
"error.invalid_contractor_id": "承包商 ID 无效",
|
||
"error.invalid_document_id": "文档 ID 无效",
|
||
"error.invalid_completion_id": "完成记录 ID 无效",
|
||
"error.invalid_user_id": "用户 ID 无效",
|
||
"error.invalid_notification_id": "通知 ID 无效",
|
||
"error.invalid_device_id": "设备 ID 无效",
|
||
"error.task_not_found": "未找到任务",
|
||
"error.residence_not_found": "未找到房产",
|
||
"error.contractor_not_found": "未找到承包商",
|
||
"error.document_not_found": "未找到文档",
|
||
"error.completion_not_found": "未找到任务完成记录",
|
||
"error.user_not_found": "未找到用户",
|
||
"error.share_code_invalid": "分享码无效",
|
||
"error.share_code_expired": "分享码已过期",
|
||
"error.task_access_denied": "您无权访问此任务",
|
||
"error.residence_access_denied": "您无权访问此房产",
|
||
"error.contractor_access_denied": "您无权访问此承包商",
|
||
"error.document_access_denied": "您无权访问此文档",
|
||
"error.not_residence_owner": "只有房产所有者可以执行此操作",
|
||
"error.cannot_remove_owner": "无法移除房产所有者",
|
||
"error.user_already_member": "用户已是此房产的成员",
|
||
"error.properties_limit_reached": "您已达到订阅计划的房产数量上限",
|
||
"error.task_already_cancelled": "任务已取消",
|
||
"error.task_already_archived": "任务已归档",
|
||
"error.failed_to_parse_form": "解析多部分表单失败",
|
||
"error.task_id_required": "需要 task_id",
|
||
"error.invalid_task_id_value": "task_id 无效",
|
||
"error.failed_to_upload_image": "上传图片失败",
|
||
"error.residence_id_required": "需要 residence_id",
|
||
"error.invalid_residence_id_value": "residence_id 无效",
|
||
"error.title_required": "需要标题",
|
||
"error.failed_to_upload_file": "上传文件失败",
|
||
"message.logged_out": "已成功退出",
|
||
"message.email_verified": "邮箱验证成功",
|
||
"message.verification_email_sent": "验证邮件已发送",
|
||
"message.password_reset_email_sent": "如果该邮箱存在账户,密码重置验证码已发送。",
|
||
"message.reset_code_verified": "验证码验证成功",
|
||
"message.password_reset_success": "密码重置成功,请使用新密码登录。",
|
||
"message.task_deleted": "任务删除成功",
|
||
"message.task_in_progress": "任务已标记为进行中",
|
||
"message.task_cancelled": "任务已取消",
|
||
"message.task_uncancelled": "任务已恢复",
|
||
"message.task_archived": "任务已归档",
|
||
"message.task_unarchived": "任务已取消归档",
|
||
"message.completion_deleted": "完成记录删除成功",
|
||
"message.residence_deleted": "房产删除成功",
|
||
"message.user_removed": "用户已从房产中移除",
|
||
"message.tasks_report_generated": "任务报告生成成功",
|
||
"message.tasks_report_sent": "任务报告已生成并发送至 {{.Email}}",
|
||
"message.tasks_report_email_failed": "任务报告已生成但无法发送邮件",
|
||
"message.contractor_deleted": "承包商删除成功",
|
||
"message.document_deleted": "文档删除成功",
|
||
"message.document_activated": "文档已激活",
|
||
"message.document_deactivated": "文档已停用",
|
||
"message.notification_marked_read": "通知已标记为已读",
|
||
"message.all_notifications_marked_read": "所有通知已标记为已读",
|
||
"message.device_removed": "设备已移除",
|
||
"message.subscription_upgraded": "订阅升级成功",
|
||
"message.subscription_cancelled": "订阅已取消。您将保留专业版权益至当前账单周期结束。",
|
||
"message.subscription_restored": "订阅恢复成功",
|
||
"message.file_deleted": "文件删除成功",
|
||
"message.static_data_refreshed": "静态数据已刷新",
|
||
"error.notification_not_found": "未找到通知",
|
||
"error.invalid_platform": "平台无效",
|
||
"error.upgrade_trigger_not_found": "未找到升级触发器",
|
||
"error.receipt_data_required": "iOS 需要 receipt_data",
|
||
"error.purchase_token_required": "Android 需要 purchase_token",
|
||
"error.no_file_provided": "未提供文件",
|
||
"error.failed_to_fetch_residence_types": "获取房产类型失败",
|
||
"error.failed_to_fetch_task_categories": "获取任务分类失败",
|
||
"error.failed_to_fetch_task_priorities": "获取任务优先级失败",
|
||
"error.failed_to_fetch_task_frequencies": "获取任务频率失败",
|
||
"error.failed_to_fetch_task_statuses": "获取任务状态失败",
|
||
"error.failed_to_fetch_contractor_specialties": "获取承包商专业类别失败",
|
||
"push.task_due_soon.title": "任务即将到期",
|
||
"push.task_due_soon.body": "{{.TaskTitle}} 将于 {{.DueDate}} 到期",
|
||
"push.task_overdue.title": "任务已逾期",
|
||
"push.task_overdue.body": "{{.TaskTitle}} 已逾期",
|
||
"push.task_completed.title": "任务已完成",
|
||
"push.task_completed.body": "{{.UserName}} 已完成 {{.TaskTitle}}",
|
||
"push.task_assigned.title": "新任务已分配",
|
||
"push.task_assigned.body": "您已被分配到 {{.TaskTitle}}",
|
||
"push.residence_shared.title": "房产已分享",
|
||
"push.residence_shared.body": "{{.UserName}} 与您分享了 {{.ResidenceName}}",
|
||
"email.welcome.subject": "欢迎使用 honeyDue!",
|
||
"email.verification.subject": "验证您的邮箱",
|
||
"email.password_reset.subject": "密码重置验证码",
|
||
"email.tasks_report.subject": "{{.ResidenceName}} 的任务报告",
|
||
"lookup.residence_type.house": "独栋房屋",
|
||
"lookup.residence_type.apartment": "公寓",
|
||
"lookup.residence_type.condo": "共管公寓",
|
||
"lookup.residence_type.townhouse": "联排别墅",
|
||
"lookup.residence_type.mobile_home": "移动房屋",
|
||
"lookup.residence_type.other": "其他",
|
||
"lookup.task_category.plumbing": "管道",
|
||
"lookup.task_category.electrical": "电气",
|
||
"lookup.task_category.hvac": "暖通空调",
|
||
"lookup.task_category.appliances": "家电",
|
||
"lookup.task_category.exterior": "外部",
|
||
"lookup.task_category.interior": "内部",
|
||
"lookup.task_category.landscaping": "园林景观",
|
||
"lookup.task_category.safety": "安全",
|
||
"lookup.task_category.cleaning": "清洁",
|
||
"lookup.task_category.pest_control": "害虫防治",
|
||
"lookup.task_category.seasonal": "季节性",
|
||
"lookup.task_category.other": "其他",
|
||
"lookup.task_priority.low": "低",
|
||
"lookup.task_priority.medium": "中",
|
||
"lookup.task_priority.high": "高",
|
||
"lookup.task_priority.urgent": "紧急",
|
||
"lookup.task_status.pending": "待处理",
|
||
"lookup.task_status.in_progress": "进行中",
|
||
"lookup.task_status.completed": "已完成",
|
||
"lookup.task_status.cancelled": "已取消",
|
||
"lookup.task_status.archived": "已归档",
|
||
"lookup.task_frequency.once": "一次",
|
||
"lookup.task_frequency.daily": "每天",
|
||
"lookup.task_frequency.weekly": "每周",
|
||
"lookup.task_frequency.biweekly": "每两周",
|
||
"lookup.task_frequency.monthly": "每月",
|
||
"lookup.task_frequency.quarterly": "每季度",
|
||
"lookup.task_frequency.semiannually": "每半年",
|
||
"lookup.task_frequency.annually": "每年",
|
||
"lookup.contractor_specialty.plumber": "管道工",
|
||
"lookup.contractor_specialty.electrician": "电工",
|
||
"lookup.contractor_specialty.hvac_technician": "暖通空调技师",
|
||
"lookup.contractor_specialty.handyman": "杂工",
|
||
"lookup.contractor_specialty.landscaper": "园艺师",
|
||
"lookup.contractor_specialty.roofer": "屋顶工",
|
||
"lookup.contractor_specialty.painter": "油漆工",
|
||
"lookup.contractor_specialty.carpenter": "木工",
|
||
"lookup.contractor_specialty.pest_control": "害虫防治",
|
||
"lookup.contractor_specialty.cleaning": "清洁",
|
||
"lookup.contractor_specialty.pool_service": "泳池服务",
|
||
"lookup.contractor_specialty.general_contractor": "总承包商",
|
||
"lookup.contractor_specialty.other": "其他",
|
||
"suggestion.reason.has_pool": "您的住宅有游泳池",
|
||
"suggestion.reason.has_sprinkler_system": "您的住宅有喷灌系统",
|
||
"suggestion.reason.has_septic": "您的住宅有化粪池",
|
||
"suggestion.reason.has_fireplace": "您的住宅有壁炉",
|
||
"suggestion.reason.has_garage": "您的住宅有车库",
|
||
"suggestion.reason.has_basement": "您的住宅有地下室",
|
||
"suggestion.reason.has_attic": "您的住宅有阁楼",
|
||
"suggestion.reason.heating_type": "与您的供暖系统匹配",
|
||
"suggestion.reason.cooling_type": "与您的制冷系统匹配",
|
||
"suggestion.reason.water_heater_type": "与您的热水器匹配",
|
||
"suggestion.reason.roof_type": "与您的屋顶匹配",
|
||
"suggestion.reason.exterior_type": "与您的外墙匹配",
|
||
"suggestion.reason.flooring_primary": "与您的地板匹配",
|
||
"suggestion.reason.landscaping_type": "与您的庭院匹配",
|
||
"suggestion.reason.property_type": "为您的房产类型推荐",
|
||
"suggestion.reason.climate_region": "为您所在气候推荐",
|
||
"lookup.residence_type.duplex": "双拼住宅",
|
||
"lookup.residence_type.vacation_home": "度假屋",
|
||
"lookup.task_category.general": "通用",
|
||
"lookup.task_frequency.bi_weekly": "每两周",
|
||
"lookup.task_frequency.semi_annually": "每半年",
|
||
"lookup.task_frequency.custom": "自定义",
|
||
"lookup.contractor_specialty.appliance_repair": "家电维修",
|
||
"lookup.contractor_specialty.cleaner": "清洁工",
|
||
"lookup.contractor_specialty.locksmith": "锁匠",
|
||
"lookup.home_profile.gas_furnace": "燃气炉",
|
||
"lookup.home_profile.electric_furnace": "电炉",
|
||
"lookup.home_profile.heat_pump": "热泵",
|
||
"lookup.home_profile.boiler": "锅炉",
|
||
"lookup.home_profile.radiant": "辐射式",
|
||
"lookup.home_profile.other": "其他",
|
||
"lookup.home_profile.central_ac": "中央空调",
|
||
"lookup.home_profile.window_ac": "窗式空调",
|
||
"lookup.home_profile.evaporative": "蒸发式",
|
||
"lookup.home_profile.none": "无",
|
||
"lookup.home_profile.tank_gas": "储水式(燃气)",
|
||
"lookup.home_profile.tank_electric": "储水式(电)",
|
||
"lookup.home_profile.tankless_gas": "即热式(燃气)",
|
||
"lookup.home_profile.tankless_electric": "即热式(电)",
|
||
"lookup.home_profile.solar": "太阳能",
|
||
"lookup.home_profile.asphalt_shingle": "沥青瓦",
|
||
"lookup.home_profile.metal": "金属",
|
||
"lookup.home_profile.tile": "瓦片",
|
||
"lookup.home_profile.slate": "石板",
|
||
"lookup.home_profile.wood_shake": "木瓦",
|
||
"lookup.home_profile.flat": "平顶",
|
||
"lookup.home_profile.brick": "砖",
|
||
"lookup.home_profile.vinyl_siding": "乙烯基壁板",
|
||
"lookup.home_profile.wood_siding": "木壁板",
|
||
"lookup.home_profile.stucco": "灰泥",
|
||
"lookup.home_profile.stone": "石材",
|
||
"lookup.home_profile.fiber_cement": "纤维水泥",
|
||
"lookup.home_profile.hardwood": "硬木",
|
||
"lookup.home_profile.laminate": "复合地板",
|
||
"lookup.home_profile.carpet": "地毯",
|
||
"lookup.home_profile.vinyl": "乙烯基",
|
||
"lookup.home_profile.concrete": "混凝土",
|
||
"lookup.home_profile.lawn": "草坪",
|
||
"lookup.home_profile.desert": "沙漠",
|
||
"lookup.home_profile.xeriscape": "旱生园艺",
|
||
"lookup.home_profile.garden": "花园",
|
||
"lookup.home_profile.mixed": "混合",
|
||
"lookup.document_type.warranty": "保修",
|
||
"lookup.document_type.manual": "用户手册",
|
||
"lookup.document_type.receipt": "收据/发票",
|
||
"lookup.document_type.inspection": "检查报告",
|
||
"lookup.document_type.permit": "许可证",
|
||
"lookup.document_type.deed": "契据/产权",
|
||
"lookup.document_type.insurance": "保险",
|
||
"lookup.document_type.contract": "合同",
|
||
"lookup.document_type.photo": "照片",
|
||
"lookup.document_type.other": "其他",
|
||
"lookup.document_category.appliance": "家电",
|
||
"lookup.document_category.hvac": "暖通空调",
|
||
"lookup.document_category.plumbing": "管道",
|
||
"lookup.document_category.electrical": "电气",
|
||
"lookup.document_category.roofing": "屋顶",
|
||
"lookup.document_category.structural": "结构",
|
||
"lookup.document_category.landscaping": "园艺",
|
||
"lookup.document_category.general": "通用",
|
||
"lookup.document_category.other": "其他"
|
||
}
|