你好!
科特迪瓦(象牙海岸)国旗表情符号(例如,🇨🇮 [预格式化], [普通])在我托管的 Discourse 论坛网站上显示不正确。
我在 Mac 上,并通过 Mac 表情符号选择器弹出窗口(我按 fn 调出它)输入了表情符号。
在发布之前,它在编辑器中显示正确:
但发布后,它会渲染成看起来像正确表情符号短代码语法的文本:
我尝试修改表情符号短代码(:ivory_coast: 并为“côte_d_ivoire”中的“o”使用不同的 Unicode 选项来表示抑扬符),但没有解决问题。
好奇这个问题是否会出现在 Meta 上,当我发布这个的时候……
更新:我看到这个问题在这里的 Meta 上没有出现。我尝试将 :côte_d_ivoire: 输入到文本的其他位置,使其不与其他表情符号短代码相邻,但我仍然遇到同样的问题。请注意,我自己没有输入表情符号短代码。一旦我输入表情符号本身,我的 Discourse 安装就会自动将其转换为短代码。这个问题在这里的 Meta 上没有出现。
2 个赞
我在这里添加了 iPhone 选择器中的一个表情符号,然后又添加了一个表情符号,我认为可以重现。我们来看看是否有效……
这是组合器的截图:
我不确定是否能在 discourse 表情符号选择器中看到 表情符号,所以这可能是从苹果表情符号集切换到新替代品之一时出现的问题?Emojis update
2 个赞
🇨🇮
:cote_divoire:
:côte_d_ivoire:
:cote_d_ivoire:
@j.jaffeux 看起来在 d38acc5df120e6f3a89d04cf746d2fe03534be29 之后出现了这个问题,似乎 emoji gem 中的变音符号存在不一致?
dist/emoji_to_name.json:
"🇨🇮":": "cote_d_ivoire",
dist/groups.json:
{
"name": "cote_d_ivoire",
"tonable": false
},
dist/aliases.json:
"cote_d_ivoire": [
"cote_divoire"
],
dist/emojis.json:
{
"name": "côte_d_ivoire",
"code": "1f1e8-1f1ee"
},
lib/discourse_emojis/constants.rb:
"cote_d_ivoire" => ["cote_divoire"],
我们应该添加一个别名 côte_d_ivoire → cote_d_ivoire 吗?
(或者带有 ô 的版本应该是主要的?我不知道哪个是“正确”的主要名称)
或者我们根本没有正确处理 emoji 中的变音符号
:
:
:
🇹🇴: :tonga:
🇹🇷: :türkiye:
🇹🇹: :trinidad_tobago:
5 个赞
感谢各位的关注。这些细节对我这个非软件工程师来说太复杂了,但有两点或许有帮助:
我偶然发现了这个相关主题 ,其中在这里 分享了这一点:
看起来 cooker 会将原始表情符号翻译成它的名称,但除非设置了 enable inline emoji translation,否则不会对其进行处理。
我尝试将其打开,在使用 iOS 表情符号选择器时仍然遇到了同样的问题。
对于未来关于变音符号的修复,您可能还需要注意预组合(例如,一个带有 o 和变音符号的单个字形)和分解(例如,单独组合的 o + ^)的 Unicode 字符
1 个赞
j.jaffeux
(Joffrey Jaffeux)
2025 年6 月 15 日 09:24
6
是的,这周围有很多历史。我会看看这些转换出错的地方。
4 个赞