DG EMOJIK / čeština

Složitá emoji a ZWJ: jak se z více znaků stane jeden tvar?

Jedno viditelné emoji může být složeno z více znaků Unicode. ZWJ, tedy spojovník nulové šířky, stojí mezi prvky určitých sekvencí emoji a umožňuje jejich společné zobrazení. Pokud cílový systém sekvenci nepodporuje, mohou se místo toho zobrazit samostatné tvary.

Kompletní strojový překlad maďarského originálu.

Detailní pohled na skládač dílků položených na sebe.
Ilustrace. · congerdesign / Pixabay

Proto může být jedna postavička pro program delší než jedno písmeno. Při kopírování, mazání a limitu znaků to má praktický význam. Podívejme se na třech konkrétních příkladech, které prvky je třeba udržet pohromadě.

Podívejme se na to s technologem

Série 👩‍💻 se skládá ze znaku ženy, spojovníku a znaku notebooku. Kódový bod ZWJ je U+200D; sám o sobě není viditelným písmenem. Podporovanou sérii může zobrazovací program vykreslit jako jednu podobu. ZWJ vložený mezi libovolné znaky však automaticky nevytvoří nové emoji, které by fungovalo všude. Zdroj: Unicode Emoji – Emoji ZWJ Sequences

Viditelný příklad Pořadí kódových bodů Složky série
👩‍💻 U+1F469, U+200D, U+1F4BB Žena, spojovník, notebook.
👨‍🍳 U+1F468, U+200D, U+1F373 Muž, spojovník, znak označující vaření.
👩🏽‍💻 U+1F469, U+1F3FD, U+200D, U+1F4BB Žena, modifikátor odstínu pleti, spojovník, notebook.

Ve třetím řádku stojí modifikátor odstínu pleti za znakem ženy. Plní jinou úlohu než spojovník. Například k 👋🏽 mávající ruce patří odstín pleti, ale neobsahuje ZWJ: volba odstínu sama o sobě neudělá ze znaku ZWJ sérii. I písmenné dvojice vlajek států se skládají z více prvků, ale řídí se jinými pravidly spojování.

Co znamená „jeden znak“?

Při čtení můžeš vnímat jako jednu postavičku to, co program ukládá jako více kódových bodů. Pravidla segmentace textu Unicode zpracovávají i takové skupiny vnímané uživatelem jako jedna jednotka. Technický název je grafémový klastr. Zdroj: Unicode Text Segmentation

Při zkoumání limitu délky vstupního pole si proto polož tři samostatné otázky: kolik je viditelných jednotek, z kolika kódových bodů se skládají a jaké jednotky program počítá? Nápis „maximálně deset znaků“ poskytuje málo informací, pokud rozhraní počítá něco jiného, než čtenář očekává.

Vyzkoušej si to v prázdné poznámce: vlož postavičku 👩🏽‍💻 a pak ji smaž. Zmizí najednou, nebo po ní zůstane člověk, notebook nebo znak odstínu? Z toho poznáš chování editoru. Při zkracování důležitého textu zkontroluj i zbývající část.

Proč se může při kopírování rozpadnout?

Užitečné jsou dva směry kontroly. Jedním je zobrazení: jeví se stejná celá série v jiném programu také jako více obrázků? Druhým je data: zůstaly prvky série zachovány při kopírování a ukládání? Obě situace mohou vypadat navenek podobně, zatímco vyžadují odlišnou opravu.

Nejprve zkopíruj celý znak do prázdné poznámky a pak zpět. Poté zkus i jednoduchý úsměv. Pokud se změní pouze složitá podoba, uveď v hlášení chyby konkrétní sérii a názvy obou aplikací. Screenshot ukazuje vzhled, ale vložený text umožňuje i zkoumání původních znaků.

Při kopírování a zkracování udržuj pohromadě

Nestříhej text v neviditelném středu postavičky. Při úpravách označ celé emoji a prohlédni si i zkrácenou verzi. Při tvorbě programu je vhodné zvolit zpracování textu, které pracuje s hranicemi znaků vnímanými uživatelem, a pak vyzkoušet s konkrétními složitými znaky.

Zkouška před publikováním budiž jednoduchá: do testovacího textu dej základní úsměv, ruku s odstínem pleti a ZWJ sérii. Zkontroluj ukládání, načítání a mazání. Návod o emoji zobrazovaných jako čtverce a o limitu znaků SMS rozpracovává dvě související situace při ladění chyb.

Vezmi si podstatu s sebou

Test znalostí se třemi otázkami

Vyzkoušej, jak bys uplatnil přečtené. U každé otázky označ jednu odpověď; každá správná odpověď se počítá jako jeden bod. Hodnocení poskytuje zpětnou vazbu k těmto třem situacím, vaše odpovědi neukládáme ani neposíláme.

1. Formulář počítá znak 👩‍💻 jako tři kódové body, ty vidíš jednu postavičku. Který závěr je opodstatněný?
2. Jaká je role ZWJ v představené sérii?
3. Po kopírování se postavička rozpadne. Které hlášení chyby je použitelnější?

Řešení a vysvětlení
  1. Program počítá jinou jednotku než počet viditelných tvarů. Žena, ZWJ a laptop, to jsou tři body kódu, které společně mohou vytvořit jeden viditelný tvar.
  2. Neviditelný spojovník mezi prvky, které se mají zobrazit společně. Spojovník je součástí sekvence, pro společné vykreslení je navíc nutná podpora zobrazování.
  3. Sekvence, kterou lze vložit, vzhled a název dotčených aplikací. Údaje a zobrazení společně pomáhají určit, kde se emoji změnilo.

Spočítej své správné odpovědi: každá se počítá jako jeden bod. Vynechaná odpověď je nula bodů.

  • 3 bodů: Ve třech situacích jsi pracoval s tvarem a uloženou sekvencí odděleně; vyzkoušej kopírování a mazání v poznámce.
  • 2 bodů: Zkontroluj, která složka nebo údaj pro ladění chybí.
  • 0–1 bodů: Začni rozkladem technologií: žena, ZWJ a laptop.

Máme pro vás další článek

Všech 20 článků · Hledám emoji