gerhard
(Gerhard Schlager)
Maio 2, 2018, 9:15pm
1
Continuando a discussão de Adicionar suporte a alias ao seletor de emojis :
Nosso seletor de emojis poderia ser muito melhorado com o suporte a aliases de busca em inglês e traduzidos. O Consórcio Unicode fornece todos os dados de que precisamos:
Este recurso consiste em duas partes:
Implementar corretamente todos os aliases em inglês
Adicionar suporte a aliases por localidade, para que você possa digitar :sourire em francês em sites em francês e obter na janela.
Vou colocar isso na minha lista.
16 curtidas
j.jaffeux
(Joffrey Jaffeux)
Maio 3, 2018, 6:57am
4
Just as a note here, we need it to be lazy loaded, this is why I haven’t been doing it yet.
7 curtidas
sam
(Sam Saffron)
Maio 3, 2018, 8:21am
5
I think it is fine to have alias.en and alias.de etc… files, so we can lazy load per locale.
4 curtidas
Isn’t this complete @gerhard ?
gerhard
(Gerhard Schlager)
Janeiro 23, 2019, 9:04am
7
No, not yet. I decided to work on it next month because it was moved to the next release.
5 curtidas
Falco
(Falco)
Abril 13, 2019, 9:01pm
8
Just found out about this “public” list of translated emoji aliases: Translations
3 curtidas
SvenC56
(Sven)
Maio 14, 2020, 8:24am
9
Oi
Tenho uma pergunta geral. Criei meu grupo de emojis personalizado. Como posso substituir essa chave de tradução?
Obrigado.
j.jaffeux
(Joffrey Jaffeux)
Maio 16, 2020, 6:43am
10
Atualmente, você precisa adicionar traduções em um tema ou componente. No seu caso, seria algo como:
<script>
I18n.translations.en.js.emoji_picker.twitch = "Twitch";
</script>
Você também pode adicionar de se precisar de um nome diferente para de.
@gerhard Eu precisei te perguntar sobre isso: você vê uma maneira melhor de realizar isso, considerando que os nomes de grupos personalizados são definidos por administradores?
7 curtidas
gerhard
(Gerhard Schlager)
Maio 16, 2020, 2:46pm
11
A solução mais fácil que consigo pensar é usar o nome do grupo personalizado se a tradução não for encontrada. O único problema que estou vendo é que os nomes dos grupos parecem ser convertidos para minúsculas.
I18n.t("emoji_picker.twitch", { defaultValue: "twitch" })
A solução mais complexa seria fazer com que SiteTextsController e TranslationOverride funcionem com nomes de grupos de emojis personalizados (ou qualquer outra tradução personalizada que precise ser adicionada em tempo de execução).
2 curtidas
j.jaffeux
(Joffrey Jaffeux)
Maio 16, 2020, 3:55pm
12
Legal, talvez eu investigue o segundo em algum momento, obrigado.
2 curtidas
SvenC56
(Sven)
Maio 16, 2020, 4:58pm
13
Olá, acabei de executar console.log(I18n.translations.en.js), que retornou o seguinte:
Parece que emoji_picker não está disponível para tradução no meu caso. Também não há nenhum efeito ao colar seu código no cabeçalho do meu tema.
Obrigado.
1 curtida
sam
(Sam Saffron)
Agosto 19, 2021, 2:47am
16
Isso foi reportado novamente aqui: (agora fechado)
Today I was trying to find the emoji (officially called party popper , but shorted to ) and muscle memory (with MacOS) has me trained to expect finding it by searching for party:
[image]
However, Discourse’s emoji picker doesn’t find it for the same search term, even if it is part of the emoji name.
[Screenshot 2021-08-16 at 11.28.20]
Perhaps the emojis official names could be an alias to each emoji (when they differ from the short version) to improve search on the emoji picker? …
Vamos priorizar isso e resolvê-lo na próxima versão.
4 curtidas
master ← vinothkannans:search_aliases
merged 03:53PM - 21 Oct 21 UTC
@j.jaffeux Criei um PR para incluir apelidos de pesquisa no nosso repositório emoji-db.
5 curtidas
Falco
(Falco)
Abril 2, 2026, 9:16pm
25
Isso foi feito nestes PRs:
main ← feature/telegram-locale-search-aliases
opened 08:28PM - 02 Apr 26 UTC
## Summary
- Adds a Rake task (`emojis:telegram:import`) that imports emoji keyw… ord aliases from Telegram's translation platform ([translations.telegram.org](https://translations.telegram.org/en/emoji)) for 40 locales
- These are **search-only aliases** — they enhance emoji picker search without creating file symlinks
- Locales with fewer than 25 emoji aliases are automatically skipped
- Adds `locale_search_aliases` path to `DiscourseEmojis.paths` so Discourse can load per-locale files
- Bumps version to 1.0.45
## Context
https://meta.discourse.org/t/add-english-and-translated-aliases-for-emojis/86641
## Usage
```
rake emojis:telegram:import[en]
rake emojis:telegram:import[en,pt-br,fr]
rake emojis:telegram:import[all]
rake emojis:telegram:locales
```
## Test plan
- [ ] Verify `DiscourseEmojis.paths[:locale_search_aliases]` points to the correct directory
- [ ] Verify locale JSON files have correct format (emoji_name → [keyword1, keyword2, ...])
- [ ] Test Discourse-side integration: searching "champagne" finds `bottle_with_popping_cork` via English aliases
- [ ] Test Discourse-side integration: searching "joinha" finds `+1` via pt-br aliases when locale is pt-br
🤖 Generated with [Claude Code](https://claude.com/claude-code)
main ← feature/locale-emoji-search-aliases
drafted 09:09PM - 02 Apr 26 UTC
## Summary
- Merges locale-specific emoji search aliases into `/emojis/search-al… iases.json` based on the user's `I18n.locale`, enabling emoji search in the user's language (e.g. "joinha" finds :+1: in pt_BR)
- Removes unused `search_aliases` attribute from `/emojis.json` — it was serialized but never consumed by the frontend (saves ~160KB per request)
- Requires discourse/discourse-emojis#12 to be merged and a gem release for locale data to be available
## Context
https://meta.discourse.org/t/add-english-and-translated-aliases-for-emojis/86641
## Test plan
- [ ] With discourse-emojis gem updated, verify searching "champagne" in emoji picker finds `bottle_with_popping_cork` (English locale aliases)
- [ ] Switch UI to pt_BR, verify searching "joinha" finds :+1:
- [ ] Verify `/emojis.json` no longer includes `search_aliases` per emoji
- [ ] Verify existing emoji search still works as before
🤖 Generated with [Claude Code](https://claude.com/claude-code)
No processo, corrigimos um bug que reduziu o payload do nosso emojis.json em 160KB
Isso traz aliases de busca totalmente localizados.
4 curtidas
Falco
(Falco)
Abril 6, 2026, 5:50pm
26
Adicionei suporte a apelidos de emojis localizados para alguns idiomas, então finalmente
assim como
4 curtidas
Falco
(Falco)
Fechado
Abril 20, 2026, 11:00am
27
Este tópico foi fechado automaticamente após 13 dias. Novas respostas não são mais permitidas.
Falco
(Falco)
Abril 22, 2026, 9:27pm
28
Expandindo isso ainda mais
main ← cldr-search-aliases
opened 09:20PM - 22 Apr 26 UTC
## Summary
Layers Unicode CLDR annotations on top of the Telegram search aliase… s (added in #12). CLDR is authoritative, maintained by the Unicode Consortium, and covers many more locales — including ones Telegram doesn't (bg, bs_BA, el, en_GB, et, hy, lt, lv, pt European, sl, sq, sw, te, th, ur, vi).
Each source now lives in its own directory, and a new rake task unions them into the final path Discourse consumes:
- `dist/telegram_search_aliases/<locale>.json` — from `emojis:telegram:import`
- `dist/cldr_search_aliases/<locale>.json` — from `emojis:cldr:import`
- `dist/locale_search_aliases/<locale>.json` — merged output, produced by `emojis:search_aliases:merge`
## Locale mapping
CLDR uses locale inheritance: child files contain only deltas over a base. An explicit table in the rake task maps Discourse locales to an ordered list of CLDR sources to union. The one upstream flagged specifically:
- Discourse `pt_BR` ← CLDR `[pt]` (pt.xml is Brazilian Portuguese in modern CLDR)
- Discourse `pt` ← CLDR `[pt, pt_PT]` (base plus European overrides)
Same pattern handles `en_GB`, `zh_TW` (← `zh` + `zh_Hant`), etc.
## Impact
16 brand-new locales gained coverage (previously unsupported); 32 existing locales got enriched with CLDR-only keywords. Across all locales: **41,284 → 87,831 emoji-alias entries**.
| locale | before | after | delta |
|----------|-------:|------:|--------:|
| ar | 1834 | 1847 | +13 |
| be | 428 | 1812 | +1384 |
| **bg** | 0 | 1804 | +1804 |
| **bs_BA**| 0 | 1802 | +1802 |
| ca | 1862 | 1879 | +17 |
| cs | 1784 | 1877 | +93 |
| da | 44 | 1803 | +1759 |
| de | 1750 | 1856 | +106 |
| **el** | 0 | 1804 | +1804 |
| en | 1735 | 1837 | +102 |
| **en_GB**| 0 | 1804 | +1804 |
| es | 1867 | 1878 | +11 |
| **et** | 0 | 1803 | +1803 |
| fa_IR | 1719 | 1861 | +142 |
| fi | 1829 | 1848 | +19 |
| fr | 1792 | 1843 | +51 |
| gl | 34 | 1804 | +1770 |
| he | 1779 | 1859 | +80 |
| hr | 1823 | 1848 | +25 |
| hu | 1750 | 1848 | +98 |
| **hy** | 0 | 1804 | +1804 |
| id | 1006 | 1822 | +816 |
| it | 1855 | 1876 | +21 |
| ja | 651 | 1807 | +1156 |
| ko | 97 | 1804 | +1707 |
| **lt** | 0 | 1804 | +1804 |
| **lv** | 0 | 1804 | +1804 |
| nb_NO | 1857 | 1879 | +22 |
| nl | 1151 | 1834 | +683 |
| pl_PL | 1858 | 1877 | +19 |
| **pt** | 0 | 1804 | +1804 |
| pt_BR | 1774 | 1863 | +89 |
| ro | 73 | 1801 | +1728 |
| ru | 1869 | 1879 | +10 |
| sk | 352 | 1813 | +1461 |
| **sl** | 0 | 1800 | +1800 |
| **sq** | 0 | 1802 | +1802 |
| sr | 1844 | 1860 | +16 |
| sv | 1651 | 1871 | +220 |
| **sw** | 0 | 1803 | +1803 |
| **te** | 0 | 1804 | +1804 |
| **th** | 0 | 1804 | +1804 |
| tr_TR | 1333 | 1831 | +498 |
| uk | 1670 | 1852 | +182 |
| **ur** | 0 | 1804 | +1804 |
| **vi** | 0 | 1803 | +1803 |
| zh_CN | 105 | 1804 | +1699 |
| zh_TW | 108 | 1805 | +1697 |
Bold rows are locales that had zero coverage before this PR.
## Workflow
```
rake emojis:telegram:import[all] # refreshes dist/telegram_search_aliases/
rake emojis:cldr:import[all] # refreshes dist/cldr_search_aliases/
rake emojis:search_aliases:merge # writes dist/locale_search_aliases/
```
Existing Telegram data was moved via `git mv` so history for the per-locale Telegram files stays intact.
## Test plan
- [x] `bin/lint` clean on all new/changed rake files
- [x] Ran `emojis:cldr:import[all]` end-to-end (48 locales fetched)
- [x] Ran `emojis:search_aliases:merge` — all 48 locales written
- [x] Spot-checked `pt_BR`: Telegram keywords preserved, CLDR additions appended, dedupes overlap
- [x] Spot-checked `pt` (European): base `pt` keywords plus `pt_PT` overrides (1361 emojis with divergent aliases vs `pt_BR`)
- [ ] Verify the Discourse emoji picker search picks up new keywords once this package is bumped
3 curtidas