Skip to content

Commit

Permalink
#312 More emoji misrenders
Browse files Browse the repository at this point in the history
  • Loading branch information
Mercury13 committed Sep 20, 2023
1 parent 50d6b5b commit f403bbb
Show file tree
Hide file tree
Showing 7 changed files with 69 additions and 36 deletions.
2 changes: 2 additions & 0 deletions AutoBuilder/library.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ namespace {
U"\U0001F1E6\U0001F1EB", // Afghanistan
U"\U0001F1F2\U0001F1F6", // Martinique
U"\U0001FA85", // piñata
U"\U0001FA92", // razor
U"\U0001FAA4", // mouse trap
};

} // anon namespace
Expand Down
3 changes: 3 additions & 0 deletions AutoBuilder/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -637,6 +637,9 @@ int main()
// VS16
if (emoji.vs16.contains(cp))
flags |= uc::Cfg::U_VS16_EMOJI;
// Misrenders
if (emoji.misrenders.contains(cp))
flags |= uc::Cfg::G_MISRENDER;
// SVG emoji
if (noto.singleChar.contains(cp))
flags |= uc::m::SVG_EMOJI;
Expand Down
10 changes: 8 additions & 2 deletions Lang-src/en.uorig
Original file line number Diff line number Diff line change
Expand Up @@ -6339,7 +6339,7 @@
<orig>Mark/enclosing</orig>
</text>
<text id="Text">
<orig>Enclosing marks are used in old Cyrillic letter numbers (А҈). Also encosing square, circle and other shapes exist. None of tested typography engines in Windows 10 20H2 (GDI, Cairo, Skia) supports these characters perfectly, but on good fonts like DejaVu the result is not so bad.</orig>
<orig>Enclosing marks are used in old Cyrillic letter numbers (А҈). Also encosing square, circle and other shapes exist. None of tested typography engines in Windows{{_}}10 20H2 (GDI, Cairo, Skia) supports these characters perfectly, but on good fonts like DejaVu the result is not so bad.</orig>
</text>
</group>
<group id="Mn">
Expand Down Expand Up @@ -6524,7 +6524,7 @@
</text>
<text id="Text">
<orig>
<p>In Windows 10/11 press {{kb|Win|;}} or {{kb|Win|.}} to open emoji panel. Can enter:</p>
<p>In Windows{{_}}10/11 press {{kb|Win|;}} or {{kb|Win|.}} to open emoji panel. Can enter:</p>
<p>* [[pt:emoji|emoji]] existing in standard font. When the font extended, panel extended too;</p>
<p>* text smilies;</p>
<p>* typography characters;</p>
Expand Down Expand Up @@ -8613,6 +8613,12 @@
<text id="U+1FA85">
<orig>Google Noto draws star-shaped piñata, and Microsoft does animal-shaped.</orig>
</text>
<text id="U+1FA92">
<orig>All vendors settled on safety razor relatively recently, in 2019–2021. Windows{{_}}10 emoji depicts straight razor.</orig>
</text>
<text id="U+1FAA4">
<orig>As of 2023, sample Unicode image depicts spring trap. But as this emoji mostly means “free cheese” and “entrapment”, most vendors draw makeshift trap intended to catch the mouse alive, with cheese inside.</orig>
</text>
</group>
</group>
<group id="Version">
Expand Down
16 changes: 12 additions & 4 deletions Lang-src/ru.utran
Original file line number Diff line number Diff line change
Expand Up @@ -8992,8 +8992,8 @@
<transl>Метка/охватывающая</transl>
</text>
<text id="Text">
<orig>Enclosing marks are used in old Cyrillic letter numbers (А҈). Also encosing square, circle and other shapes exist. None of tested typography engines in Windows 10 20H2 (GDI, Cairo, Skia) supports these characters perfectly, but on good fonts like DejaVu the result is not so bad.</orig>
<transl>Охватывающие метки используются в древнерусских буквенных цифрах (А҈). Также существуют охватывающие квадрат, круг и другие фигуры. Ни один проверенный типографский движок на Windows 10 20H2 (GDI, Cairo, Skia) не{{_}}поддерживает подобные символы идеально, но на хороших шрифтах вроде DejaVu результат очень неплох.</transl>
<orig>Enclosing marks are used in old Cyrillic letter numbers (А҈). Also encosing square, circle and other shapes exist. None of tested typography engines in Windows{{_}}10 20H2 (GDI, Cairo, Skia) supports these characters perfectly, but on good fonts like DejaVu the result is not so bad.</orig>
<transl>Охватывающие метки используются в древнерусских буквенных цифрах (А҈). Также существуют охватывающие квадрат, круг и другие фигуры. Ни один проверенный типографский движок на Windows{{_}}10 20H2 (GDI, Cairo, Skia) не{{_}}поддерживает подобные символы идеально, но на хороших шрифтах вроде DejaVu результат очень неплох.</transl>
</text>
</group>
<group id="Mn">
Expand Down Expand Up @@ -9227,7 +9227,7 @@
</text>
<text id="Text">
<orig>
<p>In Windows 10/11 press {{kb|Win|;}} or {{kb|Win|.}} to open emoji panel. Can enter:</p>
<p>In Windows{{_}}10/11 press {{kb|Win|;}} or {{kb|Win|.}} to open emoji panel. Can enter:</p>
<p>* [[pt:emoji|emoji]] existing in standard font. When the font extended, panel extended too;</p>
<p>* text smilies;</p>
<p>* typography characters;</p>
Expand All @@ -9238,7 +9238,7 @@
<p>* superscripts, fractions, mathematical operators.</p>
</orig>
<transl>
<p>В Windows 10/11 нажмите {{kb|Win|;}} или {{kb|Win|.}}, чтобы раскрыть панель эмодзи. Умеет вводить:</p>
<p>В Windows{{_}}10/11 нажмите {{kb|Win|;}} или {{kb|Win|.}}, чтобы раскрыть панель эмодзи. Умеет вводить:</p>
<p>* [[pt:emoji|эмодзи]], существующие в стандартном шрифте. С пополнением шрифта пополнялась и панель;</p>
<p>* текстовые смайлики;</p>
<p>* типографские символы;</p>
Expand Down Expand Up @@ -12378,6 +12378,14 @@
<orig>Google Noto draws star-shaped piñata, and Microsoft does animal-shaped.</orig>
<transl>Google Noto рисует пиньяту в форме звезды, а Microsoft{{-}}в форме животного.</transl>
</text>
<text id="U+1FA92">
<orig>All vendors settled on safety razor relatively recently, in 2019–2021. Windows{{_}}10 emoji depicts straight razor.</orig>
<transl>Все производители остановились на безопасной бритве относительно недавно, в 2019–21. Эмодзи Windows{{_}}10 изображает опасную бритву.</transl>
</text>
<text id="U+1FAA4">
<orig>As of 2023, sample Unicode image depicts spring trap. But as this emoji mostly means “free cheese” and “entrapment”, most vendors draw makeshift trap intended to catch the mouse alive, with cheese inside.</orig>
<transl>На 2023 образцовое изображение Юникода{{-}}пружинная мышеловка. Но поскольку это эмодзи значит «бесплатный сыр» и «ловушка», большинство производителей рисуют самодельную ловушку, которая ловит живой, с сыром внутри.</transl>
</text>
</group>
</group>
<group id="Version">
Expand Down
14 changes: 11 additions & 3 deletions Lang-src/uk.utran
Original file line number Diff line number Diff line change
Expand Up @@ -8993,7 +8993,7 @@
<transl>Мітка/охоплююча</transl>
</text>
<text id="Text">
<orig>Enclosing marks are used in old Cyrillic letter numbers (А҈). Also encosing square, circle and other shapes exist. None of tested typography engines in Windows 10 20H2 (GDI, Cairo, Skia) supports these characters perfectly, but on good fonts like DejaVu the result is not so bad.</orig>
<orig>Enclosing marks are used in old Cyrillic letter numbers (А҈). Also encosing square, circle and other shapes exist. None of tested typography engines in Windows{{_}}10 20H2 (GDI, Cairo, Skia) supports these characters perfectly, but on good fonts like DejaVu the result is not so bad.</orig>
<transl>Охоплюючі мітки використовуються у давньоруських буквених цифрах (А҈). Також існують охоплюючі квадрат, коло та інші фігури. Жоден перевірений типографський движок на Windows{{_}}10 20H2 (GDI, Cairo, Skia) не{{_}}підтримує подібні символи ідеально, але на гарних шрифтах на кшталт DejaVu результат дуже непоганий.</transl>
</text>
</group>
Expand Down Expand Up @@ -9228,7 +9228,7 @@
</text>
<text id="Text">
<orig>
<p>In Windows 10/11 press {{kb|Win|;}} or {{kb|Win|.}} to open emoji panel. Can enter:</p>
<p>In Windows{{_}}10/11 press {{kb|Win|;}} or {{kb|Win|.}} to open emoji panel. Can enter:</p>
<p>* [[pt:emoji|emoji]] existing in standard font. When the font extended, panel extended too;</p>
<p>* text smilies;</p>
<p>* typography characters;</p>
Expand All @@ -9239,7 +9239,7 @@
<p>* superscripts, fractions, mathematical operators.</p>
</orig>
<transl>
<p>У Windows 10/11 натисніть {{kb|Win|;}} або {{kb|Win|.}}, щоб розкрити панель емодзі. Вміє вводити:</p>
<p>У Windows{{_}}10/11 натисніть {{kb|Win|;}} або {{kb|Win|.}}, щоб розкрити панель емодзі. Вміє вводити:</p>
<p>* [[pt:emoji|емодзі]], що існують у стандартному шрифті. З поповненням шрифту поповнювалася і панель;</p>
<p>* текстові смайлики;</p>
<p>* типографські символи;</p>
Expand Down Expand Up @@ -12379,6 +12379,14 @@
<orig>Google Noto draws star-shaped piñata, and Microsoft does animal-shaped.</orig>
<transl>Google Noto малює піньяту у формі зірки, а Microsoft{{-}}у формі тварини.</transl>
</text>
<text id="U+1FA92">
<orig>All vendors settled on safety razor relatively recently, in 2019–2021. Windows{{_}}10 emoji depicts straight razor.</orig>
<transl>Усі виробники зупинились на безпечній бритві відносно недавно, у 2019–21. Емодзі Windows{{_}}10 зображує небезпечну бритву.</transl>
</text>
<text id="U+1FAA4">
<orig>As of 2023, sample Unicode image depicts spring trap. But as this emoji mostly means “free cheese” and “entrapment”, most vendors draw makeshift trap intended to catch the mouse alive, with cheese inside.</orig>
<transl>На 2023 зразкове зображення Юнікоду{{-}}пружинна мишоловка. Але оскільки цей емодзі значить «безплатний сир» та «пастка», більшість виробників малюють саморобну пастку, що ловить мишу живою, з сиром всередині.</transl>
</text>
</group>
</group>
<group id="Version">
Expand Down
56 changes: 31 additions & 25 deletions Unicodia/MyWiki.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1303,6 +1303,31 @@ namespace {
}
}

void appendMisrender(QString& text, std::u32string_view value)
{
if (value.empty())
return;

// Get L10n key
char buf[40];
auto end = buf + std::size(buf);
static constinit const std::string_view HEAD = "Lib.Misr.U";
auto p = std::copy(HEAD.begin(), HEAD.end(), buf);
for (auto v : value) {
ptrdiff_t remder = end - p;
if (remder > 1) {
auto nPrinted = snprintf(p, remder, "+%04X", static_cast<int>(v));
p += nPrinted;
}
}

auto& desc = loc::get(buf);
auto paragraph = loc::get("Lib.Misr.Head").arg(desc);

text += "<p>";
mywiki::appendNoFont(text, paragraph);
}

void appendCpBullets(QString& text, const uc::Cp& cp, CpSerializations serializations)
{
str::append(text, "<p>");
Expand Down Expand Up @@ -1517,6 +1542,12 @@ QString mywiki::buildHtml(const uc::Cp& cp)
text += "</h4>";
}

// Misrender
if (cp.flags.have(uc::Cfg::G_MISRENDER)) {
char32_t s[1] { cp.subj };
appendMisrender(text, { s, 1 });
}

appendSgnwVariants(text, sw);

{ // Info box
Expand Down Expand Up @@ -1722,31 +1753,6 @@ namespace {
}
}

void appendMisrender(QString& text, std::u32string_view value)
{
if (value.empty())
return;

// Get L10n key
char buf[40];
auto end = buf + std::size(buf);
static constinit const std::string_view HEAD = "Lib.Misr.U";
auto p = std::copy(HEAD.begin(), HEAD.end(), buf);
for (auto v : value) {
ptrdiff_t remder = end - p;
if (remder > 1) {
auto nPrinted = snprintf(p, remder, "+%04X", static_cast<int>(v));
p += nPrinted;
}
}

auto& desc = loc::get(buf);
auto paragraph = loc::get("Lib.Misr.Head").arg(desc);

text += "<p>";
mywiki::appendNoFont(text, paragraph);
}

} // anon namespace


Expand Down
4 changes: 2 additions & 2 deletions Unicodia/Uc/UcAutoLib.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3373,8 +3373,8 @@ constinit const uc::LibNode uc::libNodes[8604] {
{ U"\U0001FAA0", u8"plunger", 3129, 0, -1, Lfg(1), EcVersion::E13_0 }, // 3367
{ U"\U0001F6BF", u8"shower", 3129, 0, -1, Lfg(1), EcVersion::E1_0 }, // 3368
{ U"\U0001F6C1", u8"bathtub", 3129, 0, -1, Lfg(1), EcVersion::E1_0 }, // 3369
{ U"\U0001FAA4", u8"mouse trap", 3129, 0, -1, Lfg(1), EcVersion::E13_0 }, // 3370
{ U"\U0001FA92", u8"razor", 3129, 0, -1, Lfg(1), EcVersion::E12_0 }, // 3371
{ U"\U0001FAA4", u8"mouse trap", 3129, 0, -1, Lfg(33), EcVersion::E13_0 }, // 3370
{ U"\U0001FA92", u8"razor", 3129, 0, -1, Lfg(33), EcVersion::E12_0 }, // 3371
{ U"\U0001F9F4", u8"lotion bottle", 3129, 0, -1, Lfg(1), EcVersion::E11_0 }, // 3372
{ U"\U0001F9F7", u8"safety pin", 3129, 0, -1, Lfg(1), EcVersion::E11_0 }, // 3373
{ U"\U0001F9F9", u8"broom", 3129, 0, -1, Lfg(1), EcVersion::E11_0 }, // 3374
Expand Down

0 comments on commit f403bbb

Please sign in to comment.