2026.05.2(2026-05-28)
🎉 新功能
广播邮件(Broadcast)模块 新增完整的邮件广播工作台:可在面板内编辑双语正文(自动换行处理)、 按"哪一侧已填"自动切换翻译方向、一键调用平台翻译;联系人模式支 持手动外部邮箱与既有名单;标题 / 体例统一按目标语种本地化时间格 式渲染。配套修复包括 BatchAI 静默失败兜底报错、source_locale 显式传参、超管侧"广播 / 广播邮件" Tab 命名统一。
超管:邮件模板 + 邮件日志 超管新增"邮件模板"页(模板列表可折叠、控件改为 size=sm 紧凑布 局、模板预览按管理员 UI 语言默认渲染、template_type 真实回填) 与"邮件日志"页(分页表格、状态列本地化、模板类型真实展示, EmptyState 视觉收口)。
Profile:邮件偏好 Tab + 一键复制 个人资料新增"邮件偏好"页签;邮箱右侧加复制按钮。
新手引导:产品 Tour 入口 新增交互式产品 tour 入口,便于新接入团队快速过一遍核心功能。
共创翻译工作台恢复展示 之前"待评审队列"必须等 AI 评分(reviewed 状态)完成才能展示 分组,AI 评分一旦堆积或触发失败,运营侧看到的就是空队列。本次 后端不再以 reviewed 为种子分组,所有非终态(pending / ai_reviewing / scoring_failed / scoring_trigger_failed / reviewed) 都展示;前端审核按钮也对"未评分"卡片可点,使用项目级 points_on_manual_approve_default 计算手工通过的奖励。 通过 / 拒绝时同步级联清理同组所有非终态 siblings。
🌐 翻译质量
字节精度后处理链路(48 语种) 落地 Honghu 0514 批次的字节级精度修复:在 prompts 共享一套字节 保真规则并注入 48 个目标语种;post-processing 加入实体注册表 + 通用计数对称兜底,覆盖 HTML 实体恢复、尾部 CRLF 还原、对称转义 保护、孤立尾随空白等边角情况;并对 0526 审计反馈的 3 处回归 (ja / 引号 / trailing entity gap)继续打磨。
LQA 按目标语种 fan-out LQA 评分改为按目标语种独立调用各自的提示词模板(与首翻一致); 新增"极性 / 体貌 / 空译文"三类硬错;评估明细 eval_details 回显每个语种的提示词反馈。配套修复:转发 team_id / project_id 给 /run-from-gcs,确保按项目类型加载提示词。
LQA 持久化到 lqa_issues 每行评估结果落地到 lqa_issues 集合,统一严重级阈值;新增 helper 单元测试覆盖。
世界观注入升级 项目背景信息块改名为 <project_background>,加入 anti-rule preamble,避免模型把背景描述误当作翻译规则执行;项目描述上限 由 200 提升到 300 字符。
术语翻译与 landmines 对齐tb_translate 提示词与首翻 landmines 结构对齐,确保术语翻译走 同一套陷阱规则,与主翻译流程同基线。
🔧 术语库
术语扫描去重与命中优化
tb-scan按 (content, source_language) 去重,避免同源不同语 种被合并- 扫描结果在写入
glossary_check_results前先剔除已存在于术语 库的条目,减少噪音 prod-tb-import0 条目快速路径(避免空导入触发完整工作流) 与 zh-hans 引号修复
术语类别(tb-categorize)独立工作流 新增独立的批量分类工作流并复用 shared workflow 逻辑;术语扫描 结果可携带类别信息进入审核窗口。
tb-import 元数据保护filter_empty_values=true,阻止 $set: "" 把已有术语库元数据 清空。
⚙️ 性能与平台
字符串搜索 v3:tokens 重建机制 聚合写入时基于完整行重建 search_text / search_tokens,避免 增量写入残留过时索引。MAX_TOKEN_COUNT 上限设为 800 以贴合 Firestore multikey 限制;单字符查询短路跳过 10s 的 sentinel 扫描,常见场景响应即时返回。
用量统计索引收敛(LOX-47 / LOX-55) 新增 usage_records {created_at, team_id} 与 {team_id, project_id, created_at} 复合索引;下线 3 个未被命中的旧索引, 减少写入开销与存储占用。
向量服务切换到 MemoryLake 从 relyt-poc OpenAPI 切到 MemoryLake OpenAPI;项目名按部署环境 (test / prod)加前缀,避免环境互串。
字符串导入改 CSV,瘦化向量同步包 向量同步路径上传由 XLSX 改为 CSV,并去掉冗余的 metadata / n-gram 列,减少包体与同步时长。
🐛 修复
翻译历史记录操作人 publish / import 路径写入 translation_history 时记录 actor 邮箱,字段统一为 created_by,便于后续审计追溯。
字符串重译 / QA 链路
translate-qa增加convertAndUpdate重试,并修正 PyMongo Collection 的真值判断(之前空 collection 误判为 False)prod-task-translate-qa正确透传qa_job_id/target_languagerecount从projects.language_tree_config推导source_languages/target_languagests-import每步骤 job status 语义修正 + 嵌套 try/except 隔离 recount-stats 异常
社区翻译 Pub/Sub 链路(基础设施) prod 环境补齐 prod-community-suggestion-scoring topic、DLQ、 push subscription 与 localizefrontend-sa 的 publisher 权限。 此前 prod 上提交的共创翻译会停留在 scoring_trigger_failed, 现已恢复到正常 reviewed 状态可被运营侧审核。
📱 移动端 SDK
iOS SDK 1.2.0
- Headless 共创翻译:
submitTranslationSuggestion(s):imageData:callback:让集成方自绘 UI 提交评分 / 建议 - 截图审查支持
stringIds精确匹配 + 外部截图字节 - 内置共创翻译 UI 升级为 5 星卡片 + 单 Submit / Submit All
- 初始化回调新增 block 形态
setTranslationPreparedBlock:携带errorMsg - 新增
setScreenshotPageId:与getStringWithCode:pageId:重载,便于按业务场景标注页面归属 - 内置
GGCrashReporter:捕获 SDK 内部 NSException,启动时异步 上报至/api/sdk/crash-report - 思考块折叠后留下整块空白的布局问题修复
Android SDK 1.7.0
iLocalizeLogger健壮性修复(线程池预热 + 兜底 JVM 关闭期InternalError)- 已发布至 Maven Central(
com.loxily:android-localize-sdk:1.7.0)