Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

评论区语言与语言对应排版样式问题 #239

Open
otomad opened this issue Aug 25, 2024 · 18 comments
Open

评论区语言与语言对应排版样式问题 #239

otomad opened this issue Aug 25, 2024 · 18 comments
Labels
feature request The new feature request and todo help wanted Extra attention is needed

Comments

@otomad
Copy link
Member

otomad commented Aug 25, 2024

例如通过前端层面检测评论的语言,方法可以检测包含特定语言的字符数目的多少等,也可依照翻译软件中“自动检测源语言”的工作方式来行动。

这将为特定语言的评论应用正确的字体、对齐方式等。


Reference: #196 (comment)

This should depend on the language of the comment, if the language of the comment is Chinese, Japanese, or Korean, it should be justified alignment, and left alignment for other languages.
However, there is no easily way to know the language of the comment now, only know the language currently used by the user. This results in, for example, if you post a comment in English or Vietnamese, but another user is browsing the web in Chinese, your comment will be rendered as if it were in Chinese, and it will still be justified alignment.

A fundamental solution is that the front-end checks the language of the comment in some way, such as the number of characters in a particular language, which may not be accurate, but the translation software's automatic detection of the source language can do so. This solves the problem.

Originally posted by @otomad in #196 (comment)

@AkutaZehy
Copy link
Member

现在的状况是,不同语言的评论区似乎并不通用,如中文语言设置下看不到英文语言设置下的评论,不知是否数据库设计如此——尽管中文语言下肯定还是会出现纯英文的评论。

此外,如果不仅仅考虑评论,再考虑例如个人页等配置,可能这个功能要再往上放。

@otomad
Copy link
Member Author

otomad commented Aug 25, 2024

此外,如果不仅仅考虑评论,再考虑例如个人页等配置,可能这个功能要再往上放。

个人页、视频稿件信息、甚至用户昵称等预计将会参考 YouTube 那样,用户可以为视频的简介翻译成各种语言,使用不同语言界面的用户会呈现所需的语言来显示。

@hafterain
Copy link
Contributor

  建议只通过「发布者所用语言」或「发布者所指定的语言」来套用相应的字体设置。
  出于网络用语的特殊性,Twitter等网站已经向我们证明了「自动检测」的效果会有多么糟糕。

@cfdxkk
Copy link
Member

cfdxkk commented Sep 18, 2024

我们现在是根据用户选择的语言动态生成字体回退规则吗?

不懂字体所以打个不一定恰当的比方,
如果我的语言是中文,那我看到 CJK 三语时都是有统一字体的,但我看到的阿拉伯语降级为微软雅黑(?)
如果我的语言是阿拉伯语,那我看到的阿拉伯语是有字体的,但看到中文时就降级为微软雅黑

@cfdxkk
Copy link
Member

cfdxkk commented Sep 18, 2024

建议只通过「发布者所用语言」或「发布者所指定的语言」来套用相应的字体设置。
出于网络用语的特殊性,Twitter等网站已经向我们证明了「自动检测」的效果会有多么糟糕。

理论上会出现阿拉伯人/越南人/俄罗斯人... 发的中文评论字体和中国人发的中文评论字体不同的问题吗?如果有,这是可接受的吗?

@AkutaZehy
Copy link
Member

AkutaZehy commented Sep 18, 2024

@cfdxkk

从现有的字体设置上面来看...

我们现在是根据用户选择的语言动态生成字体回退规则吗?

看了下字体,那块的写法按照相同逻辑的描述(因为目前好像还没阿拉伯文),会像下面这样:

  • case 1:中文首先用中文的pattern,看到阿拉伯语如果字体缺省对阿拉伯语单独降
  • case 2:阿拉伯语用阿拉伯语的pattern,看到中文如果字体缺省对中文单独降

准确来说还是字体缺省的一个逻辑,不过用的字体应该都还行,差不多还是能视为按语言调的。如果出现了那种字库里面不包括的非常罕见的字,同一个语言会出现不同的字体也有可能。

理论上会出现阿拉伯人/越南人/俄罗斯人... 发的中文评论字体和中国人发的中文评论字体不同的问题吗?

目前是这么写的:“英语、越南语、印尼语等非中日韩语言会沿用简体中文字体”。

另一个问题

这只限于字体,排版系统似乎都是完完全全统一的,这个issue本来是因为justify和left alignment引起的,对字单独做不现实,加上阿拉伯语会长啥样我都不敢想,但是对用户语言检测的话中文用户发点西文排版该爆炸还是爆炸(就像现在这样),有点难搞。

阿拉伯文刚才评论区试了下好像是从左往右写的lmao

@hafterain
Copy link
Contributor

hafterain commented Sep 19, 2024

我们现在是根据用户选择的语言动态生成字体回退规则吗?

不懂字体所以打个不一定恰当的比方, 如果我的语言是中文,那我看到 CJK 三语时都是有统一字体的,但我看到的阿拉伯语降级为微软雅黑(?) 如果我的语言是阿拉伯语,那我看到的阿拉伯语是有字体的,但看到中文时就降级为微软雅黑

@cfdxkk

微软雅黑不包含阿拉伯语部分,阿拉伯语不会降级为微软雅黑。反之亦然。

建议只通过「发布者所用语言」或「发布者所指定的语言」来套用相应的字体设置。
出于网络用语的特殊性,Twitter等网站已经向我们证明了「自动检测」的效果会有多么糟糕。

理论上会出现阿拉伯人/越南人/俄罗斯人... 发的中文评论字体和中国人发的中文评论字体不同的问题吗?如果有,这是可接受的吗?

理论上,阿拉伯人 / 越南人 / 俄罗斯人等发的评论会直接用简中的字体(这原则上没什么问题)。

我说这条的原因是因为,对中文评论采用日文或韩古尔字体不可接受(反之亦然),而「中文评论被错误检测成日文而套用日文字体」这一点非常常见。

@Aira-Sakuranomiya
Copy link
Member

我认为应该使用Bluesky的方法,发送时选择自己的语言,自动语言检测经常出现问题且可能需要成本
image

@Lehmaning
Copy link

如果字符是统一使用UTF-8字符集,直接通过编码值范围检测如何?

@AkutaZehy AkutaZehy changed the title 通过某种方式来检测评论的语言 评论区语言与语言对应排版样式问题 Oct 17, 2024
@AkutaZehy AkutaZehy added help wanted Extra attention is needed feature request The new feature request and todo labels Oct 17, 2024
@AkutaZehy
Copy link
Member

AkutaZehy commented Oct 17, 2024

@Lehmaning 字符的检测是容易实现的。但很明显,这个并不只是语言检测的问题,请看 comment。

由于这个标题具有误导性,将标题修改为“评论区语言与语言对应排版样式问题”,以此明确:

  1. 这个 issue 源自 issue 196,即在越南语下的排版会存在对齐问题,事实上,英语、法语等也会出现同样的问题,一些未做 i18n 的语言,如阿拉伯语会出现更多问题;
  2. 这个 issue 并不仅仅是评论语言检测的问题,而是讨论“是否需要对评论区语言做排版上的(自)适应,以及适应方案确认”这一问题。

@hafterain
Copy link
Contributor

如果字符是统一使用UTF-8字符集,直接通过编码值范围检测如何?

  1. CJK部分怎么检测?作为该站点的主要语言,编码値根本无法区分中文、日文,或汉谚混写;
  2. 就算不谈CJK部分,俄语和保加利亚语等等一样有重码的部分。

用编码値来检测不现实,Unicode只对字符,而不对语言和字形编码。

见:

对中文评论采用日文或韩古尔字体不可接受(反之亦然),而「中文评论被错误检测成日文而套用日文字体」这一点非常常见。

另:我比较同意艾拉的「自行设定评论语言」方案。唯需加上一个缺省値,我推荐用发布者所用的语言。

其实我觉得这样还是太复杂了。我现在觉得「完美的」评论显示不经手动调整不太现实,仅为使用者(非发布者)的语言优化也不错。


题外话:

如果能够自行设定,应该允许其中的一部分被设置吗?

@AkutaZehy
Copy link
Member

如果能够自行设定,应该允许其中的一部分被设置吗?

我觉得即便可以设置,也不要让它影响整体的排版,像是选定一个语言为主语言那种感觉;如果是单纯调整语言以适应字形的话我觉得似乎还可以接受,字形的问题不用语言区分一下的话问题太大了。

不过话说这锅该Unicode背吧

@hafterain
Copy link
Contributor

如果能够自行设定,应该允许其中的一部分被设置吗?

我觉得即便可以设置,也不要让它影响整体的排版,像是选定一个语言为主语言那种感觉;如果是单纯调整语言以适应字形的话我觉得似乎还可以接受,字形的问题不用语言区分一下的话问题太大了。

不过话说这锅该Unicode背吧

Unicode本来就蠢。我们不得不用而已。


我有点没看懂你说的话,不过我还是觉得就按使用者目前语言来显示是OK的,这样也不用存语言标签了。因为排版这个事情你不手动调很难完美……

我觉得甚至也可能有人图「这字形新奇」而滥用日文、繁体中文的选项,那样更地狱吧。

@AkutaZehy
Copy link
Member

AkutaZehy commented Oct 18, 2024

可能是有点不在一个频道上面+表述不清楚了,我的锅。 @hafterain

因为这个issue起源其实是排版的问题所以我一直在强调排版,不过看上面的讨论其实基本全部围绕字形字体在聊(比如字体回退之类)。分开会不会清楚点?

字形/字体

我完全支持按使用者目前语言,也就是上面艾拉提过的用户发布者自己选择语言的方案。

我觉得甚至也可能有人图「这字形新奇」而滥用日文、繁体中文的选项,那样更地狱吧。

大概会有科普视频下面的评论要讲字形差异的话,还是要考虑同一条评论里面同时出现简中/繁中/日文的同一字的可能。不过也许是伪需求,再加上真的像你说的用户瞎弄,我觉得完全是有可能的,是挺地狱的。

排版

排版这个事情你不手动调很难完美……

就我个人而言我希望排版系统能和语言系统无关,就用户用啥语言都不影响排版,要排单独就排版系统设样式。把语言牵涉上很麻烦。 <- 这句是有点问题删了(后补)

但是,也正像issue 196写的那样,如果用户不会设置的话,在手机上英文用两端对齐的视觉效果很糟糕,而且这个目前是作为所有语言的默认对齐选项。我就在想能不能至少搞一个类似主语言的,例如说主语言是中文就优先两端末行齐左,英文的话直接就左对齐这种感觉。

不过考虑到多语言混排也还是很麻烦就是了,也没个通行策略情况太多了,不手动调也还是很难完美。

@hafterain
Copy link
Contributor

hafterain commented Oct 18, 2024

就我个人而言我希望排版系统能和语言系统无关,就用户用啥语言都不影响排版,要排单独就排版系统设样式。把语言牵涉上很麻烦。

不同语言的排版习惯不同,排版系统不可能脱离语言。

混排这种事情很复杂,依赖自动処理没法做得完美。大部分现代浏览器连标点悬挂、脚本间空格,以及标点符号字距调整都鲜有支持。所以其实用戶早就习惯了中文两端不对齐的「不完美」的排版——我当然知道这样很糟糕,不过在排版引擎更进一步发展之前做什么都没用……最后你还是只能单独优化一个语言。

例如说主语言是中文就优先两端末行齐左,英文的话直接就左对齐这种感觉。

鉴于原issue其实很可能是在越南语/英语下面遇到的这个问题,我觉得还是为相应界面语言优化就可以了。

因为你也很难检测「主语言」。难道依靠「这句话中的某些脚本所占的比例」吗?

@AkutaZehy
Copy link
Member

“排版系统和语言无关”这个说法我说的有问题,当不存在好了orz

鉴于原issue其实很可能是在越南语/英语下面遇到的这个问题,我觉得还是为相应界面语言优化就可以了。

于是变成了中文用户看西文的评论,对齐该炸还是会炸...

我当然知道这样很糟糕,不过在排版引擎更进一步发展之前做什么都没用……最后你还是只能单独优化一个语言。

因为你也很难检测「主语言」。难道依靠「这句话中的某些脚本所占的比例」吗?

呃我想说的这个“主语言”是建立在“用户发布者自己选择语言的方案”的基础上,就是用户选的这个语言

然后单独优化的话我认为是以用户选的这个语言为基础做优化,而不是界面语言,这也就意味着同一个界面语言的评论区里面,会出现因为评论者选定的语言不同而渲染方式不同的效果。

@hafterain
Copy link
Contributor

于是变成了中文用户看西文的评论,对齐该炸还是会炸...

爲单个语言优化时,没办法的事

然后单独优化的话我认为是以用户选的这个语言为基础做优化,而不是界面语言,这也就意味着同一个界面语言的评论区里面,会出现因为评论者选定的语言不同而渲染方式不同的效果。

只要不被滥用,这个当然是更好的方案。

@Lehmaning
Copy link

mastodon/mastodon#18420

mastodon也采用了类似Bluesky手动选择发布语言的做法,只是还不清楚它们怎么处理多语言混排。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request The new feature request and todo help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

6 participants