Skip to content

Option: Translation First 可选项:译文在上方显示#750

Merged
fishjar merged 4 commits into
fishjar:devfrom
lededev:t1st
Jun 5, 2026
Merged

Option: Translation First 可选项:译文在上方显示#750
fishjar merged 4 commits into
fishjar:devfrom
lededev:t1st

Conversation

@lededev
Copy link
Copy Markdown
Contributor

@lededev lededev commented Jun 5, 2026

New global rules: Original First / Translation First
新增全局规则:文本顺序 原文在上方(默认) 译文在上方(可选)
设置方法
f20260605T085727
效果演示
f20260605T085841

New global rules: Original First / Translation First
新增全局规则:文本顺序 [原文在上方](默认) [译文在上方](可选)
问题:当全局设置改为"译文在上方"(transOrder: "translation-first")时,使用"隐藏原文"快捷键切换时,原文仍然总是显示在上方,没有遵循新的全局规则。

根本原因:#toggleTranslationOnly 方法在切换"隐藏原文"时,只是隐藏或显示原文节点,但没有根据全局的 transOrder 设置重新调整译文框(wrapper)的位置。
@lededev
Copy link
Copy Markdown
Contributor Author

lededev commented Jun 5, 2026

补充修正:在来回切换“隐藏原文”快捷开关时,也遵守全局规则中的“原文在上方”或者“译文在上方”的设定。
f20260605T105151

Comment thread src/libs/translator.js Outdated
inner.appendChild(createLoadingSVG());
wrapper.appendChild(inner);

// 在原文和译文之间添加分隔换行
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这一段添加 br 的代码,前面也有根据文本长度添加一次了,是否重复?

如果是译文在前,这个br应该是加在原文前面,或者译文后面。

@fishjar
Copy link
Copy Markdown
Owner

fishjar commented Jun 5, 2026

  1. 站点规则里的 transOrder 实际不会生效

    UI 已经新增了 transOrder 字段,但规则合并逻辑 src/libs/rules.js 没有把它加入 mergeRules() 的枚举字段列表。结果是:用户给某个网站单独设置“译文在前”,匹配规则时仍然会继承全局值,站点级配置看起来保存了,但翻译时不按它执行。

    同时 checkRules() 也没处理 transOrder,所以导入规则、订阅规则里的这个字段会被清洗掉。

  2. 非全局规则默认值不对,会破坏“继承全局”语义

    DEFAULT_RULE 没有新增 transOrder: GLOBAL_KEY。但 Options 表单里给缺失值默认成了 "original-first"

    这会导致普通站点规则默认不再表现为“继承全局”,而是隐式固定为“原文在前”。如果用户把全局改成“译文在前”,某些已保存/新保存的站点规则可能仍然压回“原文在前”。

  3. 新增的 <br> 分隔符位置有问题

    translator.js 里无论顺序如何,都在译文 wrapper 内容后追加了一个 <br>。在默认“原文在前”模式下,这个 <br> 更像是译文后的尾随换行,不是真正夹在原文和译文之间的分隔符。对于长文本和“译文在前”组合,还可能出现额外空行。

@lededev
Copy link
Copy Markdown
Contributor Author

lededev commented Jun 5, 2026

自测了一下,来回反复切换双语和仅译文快捷开关,不会出现额外空行了。

@fishjar fishjar merged commit ff0e8cc into fishjar:dev Jun 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants