mirror of
https://github.com/meshtastic/firmware.git
synced 2026-01-17 15:27:29 +00:00
Gr language specific font (#8808)
* add Greek special font * add Greek fonts with with proper Greek glyphs * lint fix ( run trunk fmt) --------- Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
This commit is contained in:
@@ -616,6 +616,101 @@ char InkHUD::AppletFont::applyEncoding(std::string utf8)
|
||||
}
|
||||
}
|
||||
|
||||
else if (encoding == WINDOWS_1253) {
|
||||
// Greek
|
||||
// 1-Byte chars: no remapping
|
||||
if (utf8.length() == 1)
|
||||
return utf8.at(0);
|
||||
|
||||
// Multi-byte chars:
|
||||
switch (toUtf32(utf8)) {
|
||||
// Windows-1253 special characters (0x80-0xBF range)
|
||||
REMAP(0x20AC, 0x80) // EURO SIGN
|
||||
REMAP(0x2018, 0x91) // LEFT SINGLE QUOTATION MARK
|
||||
REMAP(0x2019, 0x92) // RIGHT SINGLE QUOTATION MARK
|
||||
REMAP(0x201C, 0x93) // LEFT DOUBLE QUOTATION MARK
|
||||
REMAP(0x201D, 0x94) // RIGHT DOUBLE QUOTATION MARK
|
||||
REMAP(0x2022, 0x95) // BULLET
|
||||
REMAP(0x2013, 0x96) // EN DASH
|
||||
REMAP(0x2014, 0x97) // EM DASH
|
||||
|
||||
// Greek accented capitals
|
||||
REMAP(0x0386, 0xA2) // GREEK CAPITAL LETTER ALPHA WITH TONOS
|
||||
REMAP(0x0388, 0xB8) // GREEK CAPITAL LETTER EPSILON WITH TONOS
|
||||
REMAP(0x0389, 0xB9) // GREEK CAPITAL LETTER ETA WITH TONOS
|
||||
REMAP(0x038A, 0xBA) // GREEK CAPITAL LETTER IOTA WITH TONOS
|
||||
REMAP(0x038C, 0xBC) // GREEK CAPITAL LETTER OMICRON WITH TONOS
|
||||
REMAP(0x038E, 0xBE) // GREEK CAPITAL LETTER UPSILON WITH TONOS
|
||||
REMAP(0x038F, 0xBF) // GREEK CAPITAL LETTER OMEGA WITH TONOS
|
||||
|
||||
// Greek capital letters (U+0391-U+03A9 -> 0xC1-0xD1, with gaps)
|
||||
REMAP(0x0391, 0xC1) // GREEK CAPITAL LETTER ALPHA
|
||||
REMAP(0x0392, 0xC2) // GREEK CAPITAL LETTER BETA
|
||||
REMAP(0x0393, 0xC3) // GREEK CAPITAL LETTER GAMMA
|
||||
REMAP(0x0394, 0xC4) // GREEK CAPITAL LETTER DELTA
|
||||
REMAP(0x0395, 0xC5) // GREEK CAPITAL LETTER EPSILON
|
||||
REMAP(0x0396, 0xC6) // GREEK CAPITAL LETTER ZETA
|
||||
REMAP(0x0397, 0xC7) // GREEK CAPITAL LETTER ETA
|
||||
REMAP(0x0398, 0xC8) // GREEK CAPITAL LETTER THETA
|
||||
REMAP(0x0399, 0xC9) // GREEK CAPITAL LETTER IOTA
|
||||
REMAP(0x039A, 0xCA) // GREEK CAPITAL LETTER KAPPA
|
||||
REMAP(0x039B, 0xCB) // GREEK CAPITAL LETTER LAMDA
|
||||
REMAP(0x039C, 0xCC) // GREEK CAPITAL LETTER MU
|
||||
REMAP(0x039D, 0xCD) // GREEK CAPITAL LETTER NU
|
||||
REMAP(0x039E, 0xCE) // GREEK CAPITAL LETTER XI
|
||||
REMAP(0x039F, 0xCF) // GREEK CAPITAL LETTER OMICRON
|
||||
REMAP(0x03A0, 0xD0) // GREEK CAPITAL LETTER PI
|
||||
REMAP(0x03A1, 0xD1) // GREEK CAPITAL LETTER RHO
|
||||
REMAP(0x03A3, 0xD3) // GREEK CAPITAL LETTER SIGMA
|
||||
REMAP(0x03A4, 0xD4) // GREEK CAPITAL LETTER TAU
|
||||
REMAP(0x03A5, 0xD5) // GREEK CAPITAL LETTER UPSILON
|
||||
REMAP(0x03A6, 0xD6) // GREEK CAPITAL LETTER PHI
|
||||
REMAP(0x03A7, 0xD7) // GREEK CAPITAL LETTER CHI
|
||||
REMAP(0x03A8, 0xD8) // GREEK CAPITAL LETTER PSI
|
||||
REMAP(0x03A9, 0xD9) // GREEK CAPITAL LETTER OMEGA
|
||||
|
||||
// Greek small letters with tonos (accented)
|
||||
REMAP(0x03AC, 0xDC) // GREEK SMALL LETTER ALPHA WITH TONOS
|
||||
REMAP(0x03AD, 0xDD) // GREEK SMALL LETTER EPSILON WITH TONOS
|
||||
REMAP(0x03AE, 0xDE) // GREEK SMALL LETTER ETA WITH TONOS
|
||||
REMAP(0x03AF, 0xDF) // GREEK SMALL LETTER IOTA WITH TONOS
|
||||
|
||||
// Greek small letters (U+03B1-U+03C9 -> 0xE1-0xF9)
|
||||
REMAP(0x03B1, 0xE1) // GREEK SMALL LETTER ALPHA
|
||||
REMAP(0x03B2, 0xE2) // GREEK SMALL LETTER BETA
|
||||
REMAP(0x03B3, 0xE3) // GREEK SMALL LETTER GAMMA
|
||||
REMAP(0x03B4, 0xE4) // GREEK SMALL LETTER DELTA
|
||||
REMAP(0x03B5, 0xE5) // GREEK SMALL LETTER EPSILON
|
||||
REMAP(0x03B6, 0xE6) // GREEK SMALL LETTER ZETA
|
||||
REMAP(0x03B7, 0xE7) // GREEK SMALL LETTER ETA
|
||||
REMAP(0x03B8, 0xE8) // GREEK SMALL LETTER THETA
|
||||
REMAP(0x03B9, 0xE9) // GREEK SMALL LETTER IOTA
|
||||
REMAP(0x03BA, 0xEA) // GREEK SMALL LETTER KAPPA
|
||||
REMAP(0x03BB, 0xEB) // GREEK SMALL LETTER LAMDA
|
||||
REMAP(0x03BC, 0xEC) // GREEK SMALL LETTER MU
|
||||
REMAP(0x03BD, 0xED) // GREEK SMALL LETTER NU
|
||||
REMAP(0x03BE, 0xEE) // GREEK SMALL LETTER XI
|
||||
REMAP(0x03BF, 0xEF) // GREEK SMALL LETTER OMICRON
|
||||
REMAP(0x03C0, 0xF0) // GREEK SMALL LETTER PI
|
||||
REMAP(0x03C1, 0xF1) // GREEK SMALL LETTER RHO
|
||||
REMAP(0x03C2, 0xF2) // GREEK SMALL LETTER FINAL SIGMA
|
||||
REMAP(0x03C3, 0xF3) // GREEK SMALL LETTER SIGMA
|
||||
REMAP(0x03C4, 0xF4) // GREEK SMALL LETTER TAU
|
||||
REMAP(0x03C5, 0xF5) // GREEK SMALL LETTER UPSILON
|
||||
REMAP(0x03C6, 0xF6) // GREEK SMALL LETTER PHI
|
||||
REMAP(0x03C7, 0xF7) // GREEK SMALL LETTER CHI
|
||||
REMAP(0x03C8, 0xF8) // GREEK SMALL LETTER PSI
|
||||
REMAP(0x03C9, 0xF9) // GREEK SMALL LETTER OMEGA
|
||||
|
||||
// More accented small letters
|
||||
REMAP(0x03CA, 0xFA) // GREEK SMALL LETTER IOTA WITH DIALYTIKA
|
||||
REMAP(0x03CB, 0xFB) // GREEK SMALL LETTER UPSILON WITH DIALYTIKA
|
||||
REMAP(0x03CC, 0xFC) // GREEK SMALL LETTER OMICRON WITH TONOS
|
||||
REMAP(0x03CD, 0xFD) // GREEK SMALL LETTER UPSILON WITH TONOS
|
||||
REMAP(0x03CE, 0xFE) // GREEK SMALL LETTER OMEGA WITH TONOS
|
||||
}
|
||||
}
|
||||
|
||||
else /*ASCII or Unhandled*/ {
|
||||
if (utf8.length() == 1)
|
||||
return utf8.at(0);
|
||||
|
||||
Reference in New Issue
Block a user