结果页将翻译渲染回原图之上,每个 OCR 块一个叠加层。每个块的翻译出现在 OCR 引擎检测到源文本的精确矩形中。叠加层支持透明度滑块,因此用户可以在不离开页面的情况下并排比较原始文本和翻译。
叠加层如何工作
- 按块翻译。 每个检测到的 TextBlock 作为独立的翻译任务发送到 ML Kit。翻译作为它们完成的结果流入叠加层;用户看到块按照引擎完成的顺序"变成"已翻译。
- 按矩形定位。 翻译后的文本被换行和定位以适应源块的边界框。如果块较窄,翻译会换行成多行并可能略微超出源矩形;引擎优先考虑可读性而非严格包含。
- 点击聚焦。 点击翻译块会打开一个底部表单,滚动到"完整翻译"视图中的同一块,因此用户可以在不放大照片的情况下阅读较长的翻译。
- 可调透明度。 滑块控制叠加层的不透明度。滑到完全透明以查看原始照片,完全不透明以阅读翻译。
结果页结构
- 顶部栏。 关闭按钮。没有其他控件——结果页刻意保持极简。
- 主区域。 全屏的原始照片,叠加层渲染在其上方。InteractiveViewer 允许缩放和平移以检查小文本。
- 底部表单。 三种状态:折叠(默认)、中等(约半个屏幕)、展开(大部分屏幕)。折叠状态显示一个小把手和摘要;中等状态显示每块翻译作为卡片;展开状态全宽显示所有块翻译。
- 表单中的两个标签。 "区块"标签显示按 OCR 块分组的翻译,"完整"标签显示合并的完整段落翻译。
为什么按块翻译
- 混合脚本。 包含英文标题和日文说明的页面受益于按块的源语言提示。块的位置和脚本类通知引擎使用哪个源模型。
- 失败隔离。 单个块翻译失败不会阻塞页面的其余部分。叠加层用一个小警告徽章标记失败的块,以便用户知道哪些需要手动关注。
- 布局保留。 阅读源语言的用户可以通过眼睛定位相应的翻译——对于菜单、标牌和标签等空间关系很重要的场景很有用。
编辑行为
叠加层渲染在照片之上,而不是烘焙进去。保存到历史记录会存储原始照片和按块翻译记录。打开保存的条目会精确再现叠加层;不支持编辑照片。