Флаг Кот-д'Ивуара в эмодзи не отображается

Привет!

Флаг emoji Кот-д’Ивуара (например, 🇨🇮 [предварительно отформатированный], :côte_d_ivoire: [обычный]) не отображается корректно на моем размещенном форуме Discourse.

Я работаю на Mac и вставляю эмодзи через всплывающее меню выбора эмодзи Mac (я нажимаю fn, чтобы вызвать его).

Перед отправкой в редакторе всё отображается правильно:

Но после публикации эмодзи отображается как текст, похожий на правильный синтаксис сокращённого кода эмодзи:

Я пробовал экспериментировать с сокращённым кодом эмодзи (:ivory_coast:) и использовать различные варианты Unicode для галочки над буквой «o» в слове «côte_d_ivoire», но это не помогло.

Интересно, появится ли эта проблема здесь, на Meta, когда я опубликую этот пост…

ОБНОВЛЕНИЕ: Я заметил, что здесь, на Meta, этой проблемы нет. Я пробовал вводить :côte_d_ivoire: в других местах текста, чтобы он не находился рядом с другим сокращённым кодом эмодзи, но проблема сохраняется. Обратите внимание, что я сам не вводил сокращённый код эмодзи. Он автоматически преобразуется моей установкой Discourse сразу после ввода самого эмодзи. Здесь, на Meta, такого не происходит.

2 лайка

Думаю, я могу воспроизвести это, добавив один из выбранных в моём пикере iPhone после другого эмодзи. Давайте посмотрим, сработает ли это…

:slight_smile: :côte_d_ivoire:

А также скриншот редактора:

Не уверен, что вижу эмодзи :côte_d_ivoire: в пикере эмодзи Discourse, так что, возможно, это проблема, возникшая при переключении с набора эмодзи Apple на один из новых альтернативных наборов? 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 это сломалось. Видимо, есть несоответствие в отношении диакритических знаков в 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?
(Или, может быть, вариант с «ô» должен быть основным? Не знаю, какой здесь правильный основной вариант.)

Или, возможно, мы просто некорректно обрабатываем диакритические знаки в эмодзи.

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

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

5 лайков

И бедная :piñata: тоже разбилась, и, видимо, кто-то съел все конфеты. :confused:

7 лайков

Спасибо всем, что обратили на это внимание. Детали слишком сложны для меня, так как я не программист, но вот два момента, которые могут оказаться полезными:

  • Я наткнулся на эту связанную тему, где был озвучен следующий момент здесь:

    Похоже, что «кухня» преобразует сырые эмодзи в их названия, но не обрабатывает их, если не включена опция enable inline emoji translation.

    Я попробовал включить эту опцию, но проблема осталась при использовании селектора эмодзи в iOS.

  • Для будущего исправления, касающегося диакритических знаков, возможно, вам также стоит обратить внимание на прекомпозиционные (например, единый глиф с буквой «o» и диакритическим знаком, уже встроенными в него) и декомпозиционные (например, o + ^, объединённые отдельно) символы Unicode :thinking:

1 лайк

Да, вокруг этого есть всякая история. Посмотрю, где именно конвертация пошла не так.

4 лайка

Ситуация должна значительно улучшиться благодаря этому коммиту:

Спасибо за отчет.

7 лайков