muzuiget / dualsub-support

Dualsub - Dual Subtitles for YouTube
https://www.dualsub.xyz/
281 stars 24 forks source link

关于cjk字体单独设定的问题 #389

Closed suheandzl closed 2 years ago

suheandzl commented 2 years ago

作者大大好 我记得之前的dualsub支持针对中日字体的独立字形设定 但是现在的版本却没有了这个选项 想请大大加回来这个选项

muzuiget commented 2 years ago

还以为这种只有我自己在用,下个版本可以加回来,不过可能换一种设置方式。

suheandzl commented 2 years ago

感谢回复 个人确实比较在意cjk字形的区别 希望大佬早日加回此功能 谢谢

muzuiget commented 2 years ago

我又研究了一下,感觉不需要加回 Dualsub 设置选项了,之前删掉就是觉得没必要为这种冷门功能加那么多 UI 代码。因为现在有“插件”功能(相当于一个轻量级的油猴),这种功能完全可以替用户执行一小段代码实现。

完美方法就是用 Firefox,因为 Firefox 支持 CSS 属性 font-language-override,所以添加一个”样式“就行了。

.dualsub-renderer .subtitle-1 {
    font-language-override: "JAN";
}

这段 CSS 代码会对第 1 个字幕应用日本字形。

Chrome 不支持这个 CSS 属性,只能使用 HTML 属性 lang,只能够通过脚本修改:

setInterval(() => {
    const node = node.querySelector('.dualsub-renderer .subtitle-1');
    if (node && node.lang !== 'ja') {
        node.lang = 'ja';
    }
}, 50);

每隔 50 毫秒修改 lang 属性,这个方法不足之处,因为字幕先以默认字形”上屏“(由 Dualsub 脚本设置),然后再被修改为日本字形(由用户脚本设置),用户可能会观察到字形变化过程(因为两个脚本执行有时间差)。不过假设显示器刷新率是 60hz,50 毫秒差不多 2、3 帧的时间,肉眼不太能觉察的到。

suheandzl commented 2 years ago

好的大佬 我仔细研究下