科特迪瓦国旗表情符号无法呈现

你好!

科特迪瓦(象牙海岸)国旗表情符号(例如,🇨🇮 [预格式化],:côte_d_ivoire: [普通])在我托管的 Discourse 论坛网站上显示不正确。

我在 Mac 上,并通过 Mac 表情符号选择器弹出窗口(我按 fn 调出它)输入了表情符号。

在发布之前,它在编辑器中显示正确:

但发布后,它会渲染成看起来像正确表情符号短代码语法的文本:

我尝试修改表情符号短代码(:ivory_coast: 并为“côte_d_ivoire”中的“o”使用不同的 Unicode 选项来表示抑扬符),但没有解决问题。

好奇这个问题是否会出现在 Meta 上,当我发布这个的时候……

更新:我看到这个问题在这里的 Meta 上没有出现。我尝试将 :côte_d_ivoire: 输入到文本的其他位置,使其不与其他表情符号短代码相邻,但我仍然遇到同样的问题。请注意,我自己没有输入表情符号短代码。一旦我输入表情符号本身,我的 Discourse 安装就会自动将其转换为短代码。这个问题在这里的 Meta 上没有出现。

2 个赞

我在这里添加了 iPhone 选择器中的一个表情符号,然后又添加了一个表情符号,我认为可以重现。我们来看看是否有效……

:slight_smile: :côte_d_ivoire:

这是组合器的截图:

我不确定是否能在 discourse 表情符号选择器中看到 :côte_d_ivoire: 表情符号,所以这可能是从苹果表情符号集切换到新替代品之一时出现的问题?Emojis update

2 个赞

:côte_d_ivoire:
:cote_divoire:
:côte_d_ivoire:
:cote_d_ivoire:


🇨🇮
: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_ivoirecote_d_ivoire 吗?
(或者带有 ô 的版本应该是主要的?我不知道哪个是“正确”的主要名称)

或者我们根本没有正确处理 emoji 中的变音符号

:tonga:: :tonga:
:türkiye:: :türkiye:
:trinidad_tobago:: :trinidad_tobago:

🇹🇴: :tonga:
🇹🇷: :türkiye:
🇹🇹: :trinidad_tobago:

5 个赞

可怜的 :piñata: 也碎了,而且估计有人把糖果都吃光了。:confused:

7 个赞

感谢各位的关注。这些细节对我这个非软件工程师来说太复杂了,但有两点或许有帮助:

  • 我偶然发现了这个相关主题,其中在这里分享了这一点:

    看起来 cooker 会将原始表情符号翻译成它的名称,但除非设置了 enable inline emoji translation,否则不会对其进行处理。

    我尝试将其打开,在使用 iOS 表情符号选择器时仍然遇到了同样的问题。

  • 对于未来关于变音符号的修复,您可能还需要注意预组合(例如,一个带有 o 和变音符号的单个字形)和分解(例如,单独组合的 o + ^)的 Unicode 字符 :thinking:

1 个赞

是的,这周围有很多历史。我会看看这些转换出错的地方。

4 个赞

此提交应大大改善情况:

感谢您的报告

7 个赞