From e91e46cf4a49ffa74f05accaad42b559ff5355b4 Mon Sep 17 00:00:00 2001 From: hajimi Date: Sun, 2 Aug 2026 02:47:34 +0800 Subject: [PATCH] docs: refine bilingual phrase pairing --- ...community-post-bilingual-pairing-design.md | 35 ++++++++++--------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/docs/superpowers/specs/2026-08-02-community-post-bilingual-pairing-design.md b/docs/superpowers/specs/2026-08-02-community-post-bilingual-pairing-design.md index b3c4762..13f0b06 100644 --- a/docs/superpowers/specs/2026-08-02-community-post-bilingual-pairing-design.md +++ b/docs/superpowers/specs/2026-08-02-community-post-bilingual-pairing-design.md @@ -1,4 +1,4 @@ -# 社区帖子双语逐句配对设计 +# 社区帖子双语短语配对设计 ## 背景 @@ -6,34 +6,37 @@ ## 目标 -- 有译文的帖子采用“一句原文紧跟一句译文”的纵向双语阅读方式。 -- 参考 `uniapp/src/pages/news_detail/news_detail.vue` 的句子拆分与按序配对逻辑。 +- 有译文的帖子采用“一段原文短语紧跟一段译文短语”的纵向双语阅读方式。 +- 参考 `uniapp/src/pages/news_detail/news_detail.vue` 的顺序配对逻辑,并把分割粒度细化到逗号、分号、句号、感叹号和问号。 - 双语帖子不再把正文前 42 个字符自动截成标题,避免产生并不存在的标题。 -- 原文或译文句数不一致时不丢失任何内容。 +- 原文或译文短语数量不一致时,自动合并相邻短片段并且不丢失任何内容。 - 付费特朗普帖子解锁后若尚无译文,异步触发现有翻译接口,无需刷新页面。 - 无译文帖子、付费锁定、图片、标签、互动和评论逻辑保持不变。 ## 方案比较 -### 方案 A:逐句上下交错(采用) +### 方案 A:标点短语上下交错(采用) -每组先显示原文,再显示对应译文。移动端单列阅读自然,和文章详情现有交互一致,长文本对照成本最低。 +中英文分别按逗号、分号、句号、感叹号和问号切成短语,每组先显示原文,再显示对应译文。移动端单列阅读自然,长句也能快速对照。 -### 方案 B:整段原文后显示整段译文 +### 方案 B:严格索引配对并允许空侧 -实现简单,但就是当前问题,长内容需要频繁上下跳转。 +直接使用较大短语数量创建配对,数量不一致时会出现只有原文或只有译文的行,无法满足一对一阅读。 -### 方案 C:左右双栏 +### 方案 C:后端返回结构化配对译文 -桌面端对照直观,但手机宽度不足,英文和中文都会产生大量换行,不适合 uni-app 主要使用场景。 +翻译阶段直接返回原文/译文数组,语义对齐最准确,但需要修改翻译接口、缓存格式并重新生成历史译文,超出本次前端优化范围。 ## 数据与配对规则 1. 将原文和译文统一换行符并清理空行。 -2. 先保留人工换行的顺序,再将每一行按中英文句末标点拆成句子。 -3. 使用两个拆分结果的最大长度创建配对数组。 -4. 同一索引的原文和译文组成一组;缺少一侧时只显示存在的内容。 -5. 译文为空时继续使用原来的标题、摘要展示,不进入双语模式。 +2. 先保留人工换行的顺序,再按 `, , ; ; 。 . ! ! ? ?` 拆成带原标点的短语。 +3. 英文缩写、姓名首字母和小数中的句点不分割;数字内部的千分位逗号不分割。 +4. 两侧短语数量相同时直接按索引配对。 +5. 数量不一致时,在片段较多的一侧反复选择正文长度最短的片段,与相邻片段合并,直到两侧数量一致。 +6. 逗号或分号结尾的短片段优先和下一段合并;其它短片段优先并入上一段,首段只能向后合并。 +7. 合并英文片段时自动补回单个空格;中文片段直接相连,所有原始标点保留。 +8. 译文为空时继续使用原来的标题、摘要展示,不进入双语模式。 ## 视觉结构 @@ -47,9 +50,9 @@ - 翻译接口返回空文本:按普通帖子展示。 - 原文或译文只有一段:仍形成一个配对组。 -- 句数不一致:尾部未配对句子继续显示。 +- 短语数量不一致:相邻短片段合并到数量一致后再配对,不产生空侧内容。 - 付费内容锁定:沿用后端返回的可见内容范围,不在前端拼接隐藏内容。 -- 付费内容解锁:先展示完整原文,再异步获取译文并切换为逐句配对,不阻塞解锁成功提示。 +- 付费内容解锁:先展示完整原文,再异步获取译文并切换为短语配对,不阻塞解锁成功提示。 ## 改动范围