compose/accent_*.json: improvements (more accents) (#770)

compose/accent_*.json: improve/complete implementation
compose/shift.json: uppercase for superscript letters & characters without preapplied uppercase versions
This commit is contained in:
Zitrone 2024-10-05 09:06:24 +00:00 committed by GitHub
parent 6e2494ca0b
commit 6fae23a432
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
19 changed files with 381 additions and 26 deletions

View File

@ -1,17 +1,52 @@
{ {
// latin
"a": "á", "a": "á",
"c": "ć", "c": "ć",
"e": "é", "e": "é",
"g": "ǵ",
"i": "í", "i": "í",
"k": "ḱ",
"l": "ĺ", "l": "ĺ",
"ń": "ń", "m": "ḿ",
"n": "ń",
"o": "ó", "o": "ó",
"p": "ṕ",
"r": "ŕ", "r": "ŕ",
"s": "ś", "s": "ś",
"u": "ú", "u": "ú",
"w": "ẃ",
"y": "ý", "y": "ý",
"z": "ź", "z": "ź",
// extended latin (multiple diacritics)
"â": "ấ",
"ă": "ắ",
"å": "ǻ",
"æ": "ǽ",
"ç": "ḉ",
"ê": "ế",
"ē": "ḗ",
"ï": "ḯ",
"ô": "ố",
"ơ": "ớ",
"õ": "ṍ",
"ō": "ṓ",
"ø": "ǿ",
"ṡ": "ṥ",
"ü": "ǘ", "ü": "ǘ",
"ư": "ứ",
"ũ": "ṹ",
// greek
"α": "ά",
"ε": "έ",
"η": "ή",
"ι": "ί",
"ο": "ό",
"υ": "ύ",
// cyrillic
"к": "ќ",
"г": "ѓ",
// combining character
"ą": "ą\u0301",
"j": "j\u0301", "j": "j\u0301",
"у": "у\u0301", "у": "у\u0301",
"е": "е\u0301", "е": "е\u0301",

View File

@ -1,8 +1,12 @@
{ {
// latin
"2": "ƻ",
"b": "ƀ", "b": "ƀ",
"c": "ꞓ", "c": "ꞓ",
"d": "đ", "d": "đ",
"f": "",
"g": "ǥ", "g": "ǥ",
"h": "ħ",
"i": "ɨ", "i": "ɨ",
"j": "ɉ", "j": "ɉ",
"k": "ꝁ", "k": "ꝁ",
@ -14,5 +18,13 @@
"t": "ŧ", "t": "ŧ",
"u": "ʉ", "u": "ʉ",
"y": "ɏ", "y": "ɏ",
"z": "ƶ" "z": "ƶ",
// extended latin
"ȷ": "ɟ",
// cyrillic
"о": "ө",
"ӧ": "ӫ",
"ү": "ұ",
"ь": "ҍ",
"х": "ӿ"
} }

View File

@ -1,9 +1,14 @@
{ {
// latin
"a": "ǎ", "a": "ǎ",
"c": "č", "c": "č",
"d": "ď", "d": "ď",
"e": "ě", "e": "ě",
"g": "ǧ",
"h": "ȟ",
"i": "ǐ", "i": "ǐ",
"j": "ǰ", // no uppercase
"k": "ǩ",
"l": "ľ", "l": "ľ",
"n": "ň", "n": "ň",
"o": "ǒ", "o": "ǒ",
@ -12,5 +17,17 @@
"t": "ť", "t": "ť",
"u": "ǔ", "u": "ǔ",
"z": "ž", "z": "ž",
"ü": "ǚ" // extended latin
"ṡ": "ṧ",
"ü": "ǚ",
"ʒ": "ǯ",
// combining character
"в": "в\u030C",
"г": "г\u030C",
"ғ": "ғ\u030C",
"д": "д\u030C",
"з": "з\u030C",
"р": "р\u030C",
"т": "т\u030C",
"х": "х\u030C"
} }

View File

@ -1,4 +1,5 @@
{ {
// latin
"c": "ç", "c": "ç",
"d": "ḑ", "d": "ḑ",
"e": "ȩ", "e": "ȩ",
@ -9,5 +10,8 @@
"n": "ņ", "n": "ņ",
"r": "ŗ", "r": "ŗ",
"s": "ş", "s": "ş",
"t": "ţ" "t": "ţ",
// extended latin
"ć": "ḉ",
"ĕ": "ḝ"
} }

View File

@ -1,4 +1,7 @@
{ {
"+": "⨣",
"≈": "⩯",
// latin
"a": "â", "a": "â",
"c": "ĉ", "c": "ĉ",
"e": "ê", "e": "ê",
@ -9,7 +12,27 @@
"o": "ô", "o": "ô",
"ŝ": "ŝ", "ŝ": "ŝ",
"u": "û", "u": "û",
"w": "ŵ",
"x": "x̂",
"y": "ŷ",
"z": "ẑ", "z": "ẑ",
// extended latin
"á": "ấ",
"à": "ầ",
"ã": "ẫ",
"ạ": "ậ",
"ả": "ẩ",
"é": "ế",
"è": "ề",
"ẽ": "ễ",
"ẹ": "ệ",
"ẻ": "ể",
"ó": "ố",
"ò": "ồ",
"ơ": "ổ",
"õ": "ỗ",
"ọ": "ộ",
// combining characters
"а": "а\u0302", "а": "а\u0302",
"е": "е\u0302", "е": "е\u0302",
"и": "и\u0302", "и": "и\u0302",

View File

@ -17,5 +17,30 @@
"w": "ẇ", "w": "ẇ",
"x": "ẋ", "x": "ẋ",
"y": "ẏ", "y": "ẏ",
"z": "ż" "z": "ż",
// remove dot since i and j already have one
"i": "ı",
"j": "ȷ",
// extended latin
"ā": "ǡ",
"ō": "ȱ",
"ś": "ṥ",
"ṣ": "ṩ",
"š": "ṧ",
"ſ": "ẛ",
// combining character
"k": "k\u0307",
"l": "l\u0307",
"q": "q\u0307",
"u": "u\u0307",
"v": "v\u0307",
// math
"∈": "⋵",
"": "⨰",
"∧": "⩑",
"": "⩒",
"≡": "⩧",
"~": "⩪",
"⊆": "⫃",
"⊇": "⫄"
} }

View File

@ -1,14 +1,34 @@
{ {
// latin
"a": "ạ", "a": "ạ",
"b": "ḅ",
"d": "ḍ",
"e": "ẹ",
"h": "ḥ",
"i": "ị",
"k": "ḳ",
"l": "ḷ",
"m": "ṃ",
"n": "ṇ",
"o": "ọ",
"r": "ṛ",
"s": "ṣ",
"t": "ṭ",
"u": "ụ",
"v": "ṿ",
"w": "ẉ",
"y": "ỵ",
"z": "ẓ",
// extended latin
"ă": "ặ", "ă": "ặ",
"â": "ậ", "â": "ậ",
"e": "ẹ",
"ê": "ệ", "ê": "ệ",
"i": "ị",
"o": "ọ",
"ô": "ộ", "ô": "ộ",
"ơ": "ợ", "ơ": "ợ",
"u": "ụ", "ṡ": "ṩ",
"ư": "ự", "ư": "ự",
"y": "ỵ" // math
"-": "⨪",
"+": "⨥",
"=": "⩦"
} }

View File

@ -1,7 +1,11 @@
{ {
" ": "˝",
// latin
"o": "ő", "o": "ő",
"u": "ű", "u": "ű",
" ": "˝", // cyrillic
"у": "ӳ",
// combining character
"a": "a\u030b", "a": "a\u030b",
"e": "e\u030b", "e": "e\u030b",
"i": "i\u030b", "i": "i\u030b",

View File

@ -1,8 +1,38 @@
{ {
// latin
"a": "à", "a": "à",
"e": "è", "e": "è",
"i": "ì", "i": "ì",
"n": "ǹ",
"o": "ò", "o": "ò",
"u": "ù", "u": "ù",
"ü": "ǜ" "w": "ẁ",
"y": "ỳ",
// extended latin
"â": "ầ",
"ă": "ằ",
"ê": "ề",
"ē": "ḕ",
"ơ": "ờ",
"ô": "ồ",
"ō": "ṑ",
"ü": "ǜ",
"ư": "ừ",
// greek (technically not a grave, but a varia)
"α": "ὰ",
"ε": "ὲ",
"η": "ὴ",
"ι": "ὶ",
"ο": "ὸ",
"υ": "ὺ",
"ω": "ὼ",
// there is more like , , etc
// cyrillic
"е": "ѐ",
"и": "ѝ",
// combining character
"ɔ": "ɔ\u0300",
"s": "s\u0300",
"ʌ": "ʌ\u0300",
"z": "z\u0300"
} }

View File

@ -1,8 +1,35 @@
{ {
// latin
"a": "ā", "a": "ā",
"e": "ē", "e": "ē",
"g": "ḡ",
"i": "ī", "i": "ī",
"o": "ō", "o": "ō",
"u": "ū", "u": "ū",
"ü": "ǖ" "y": "ȳ",
// extended latin
"æ": "ǣ",
"ä": "ǟ",
"ȧ": "ǡ",
"è": "ḕ",
"é": "ḗ",
"ḷ": "ḹ",
"ṛ": "ṝ",
"ö": "ȫ",
"ȯ": "ȱ",
"ǫ": "ǭ",
"õ": "ȭ",
"ò": "ṑ",
"ó": "ṓ",
"ü": "ǖ", // there is also
// cyrillic
"и": "ӣ",
"у": "ӯ",
// greek
"α": "ᾱ",
"ι": "ῑ",
"υ": "ῡ",
// combining characters
"l": "l\u0304",
"r": "r\u0304"
} }

View File

@ -1,10 +1,10 @@
{ {
// latin
"a": "ą", "a": "ą",
"e": "ę", "e": "ę",
"i": "į", "i": "į",
"k": "ķ",
"l": "ļ",
"n": "ņ",
"o": "ǫ", "o": "ǫ",
"u": "ų" "u": "ų",
// extended latin
"ō": "ǭ"
} }

View File

@ -1,4 +1,11 @@
{ {
// latin
"a": "å", "a": "å",
"u": "ů" "u": "ů",
"w": "ẘ", // no uppercase
"y": "ẙ", // no uppercase
// extended latin
"á": "ǻ",
// extra
"~": "⸛"
} }

View File

@ -8,7 +8,11 @@
"l": "ł", "l": "ł",
"n": "ꞥ", "n": "ꞥ",
"o": "ø", "o": "ø",
"ó": "ǿ",
"ɔ": "ꬿ",
"r": "ꞧ", "r": "ꞧ",
"s": "ꞩ", "s": "ꞩ",
"t": "ⱦ" "t": "ⱦ",
"u": "ꞹ",
"v": "ꝟ"
} }

View File

@ -1,4 +1,6 @@
{ {
// arabic numbers
"0": "₀",
"1": "₁", "1": "₁",
"2": "₂", "2": "₂",
"3": "₃", "3": "₃",
@ -8,12 +10,13 @@
"7": "₇", "7": "₇",
"8": "₈", "8": "₈",
"9": "₉", "9": "₉",
"0": "₀", // math operators
"+": "₊", "+": "₊",
"-": "₋", "-": "₋",
"=": "₌", "=": "₌",
"(": "₍", "(": "₍",
")": "₎", ")": "₎",
// latin
"a": "ₐ", "a": "ₐ",
"e": "ₑ", "e": "ₑ",
"h": "ₕ", "h": "ₕ",
@ -30,5 +33,13 @@
"t": "ₜ", "t": "ₜ",
"u": "ᵤ", "u": "ᵤ",
"v": "ᵥ", "v": "ᵥ",
"x": "ₓ" "x": "ₓ",
// extended latin
"ə": "ₔ",
// greek
"β": "ᵦ",
"γ": "ᵧ",
"ρ": "ᵨ",
"φ": "ᵩ",
"χ": "ᵪ"
} }

View File

@ -1,4 +1,6 @@
{ {
// numbers
"0": "⁰",
"1": "¹", "1": "¹",
"2": "²", "2": "²",
"3": "³", "3": "³",
@ -8,12 +10,18 @@
"7": "⁷", "7": "⁷",
"8": "⁸", "8": "⁸",
"9": "⁹", "9": "⁹",
"0": "⁰", // math operators
"+": "⁺", "+": "⁺",
"-": "⁻", "-": "⁻",
"=": "⁼", "=": "⁼",
"(": "⁽", "(": "⁽",
")": "⁾", ")": "⁾",
// latin
"n": "ⁿ",
// since there are no more "superscript" characters,
// we substitute with "modifier letter small"s which looks the same
// latin
"a": "ᵃ", "a": "ᵃ",
"b": "ᵇ", "b": "ᵇ",
"c": "ᶜ", "c": "ᶜ",
@ -26,10 +34,11 @@
"j": "ʲ", "j": "ʲ",
"k": "ᵏ", "k": "ᵏ",
"l": "ˡ", "l": "ˡ",
// see above for n
"m": "ᵐ", "m": "ᵐ",
"n": "ⁿ",
"o": "ᵒ", "o": "ᵒ",
"p": "ᵖ", "p": "ᵖ",
"q": "ꟴ", // there is no proper lowercase superscript q
"r": "ʳ", "r": "ʳ",
"s": "ˢ", "s": "ˢ",
"t": "ᵗ", "t": "ᵗ",
@ -38,5 +47,47 @@
"w": "ʷ", "w": "ʷ",
"x": "ˣ", "x": "ˣ",
"y": "ʸ", "y": "ʸ",
"z": "ᶻ" "z": "ᶻ",
// extended latin
"ɐ": "ᵄ",
"ᴂ": "ᵆ",
"ɕ": "ᶝ",
"ə": "ᵊ",
"ɛ": "ᵋ",
"ɜ": "ᶟ", // turned open e, not the same
"ᴈ": "ᵌ", // reversed open e
"ɥ": "ᶣ",
"ɦ": "ʱ",
"ᴉ": "ᵎ",
"ɨ": "ᶤ",
"ɟ": "ᶡ",
"ɱ": "ᶬ",
"ɯ": "ᵚ",
"ɰ": "ᶭ",
"ŋ": "ᵑ",
"ᴝ": "ᵙ",
"ɵ": "ᶱ",
"œ": "ꟹ",
"ɔ": "ᵓ",
"ɹ": "ʴ",
"ɻ": "ʵ",
"ʁ": "ʶ",
"ʂ": "ᶳ",
"ʉ": "ᶶ",
"ʃ": "ᶴ",
"ʒ": "ᶾ",
"ʍ": "ꭩ",
// greek
"ɒ": "ᶛ",
"β": "ᵝ",
"ɣ": "ˠ",
"δ": "ᵟ",
"φ": "ᵠ",
"χ": "ᵡ",
"ι": "ᶥ",
"ʊ": "ᶷ",
"ʌ": "ᶺ",
"θ": "ᶿ",
// cyrillic
"ө": "ᶱ"
} }

View File

@ -1,13 +1,21 @@
{ {
// latin
"a": "ã", "a": "ã",
"e": "ẽ", "e": "ẽ",
"i": "ĩ", "i": "ĩ",
"n": "ñ", "n": "ñ",
"o": "õ", "o": "õ",
"u": "ũ", "u": "ũ",
"v": "ṽ",
"y": "ỹ",
// extended latin
"ă": "ẵ", "ă": "ẵ",
"â": "ẫ", "â": "ẫ",
"ê": "ễ", "ê": "ễ",
"ơ": "ỡ", "ơ": "ỡ",
"ư": "ữ" "ō": "ȭ",
"ó": "ṍ",
"ö": "ṏ",
"ư": "ữ",
"ú": "ṹ"
} }

View File

@ -1,8 +1,54 @@
{ {
// fun
"~": "⍨",
"*": "⍣",
"∇": "⍢",
"°": "⍤",
// latin
"a": "ä", "a": "ä",
"e": "ë", "e": "ë",
"h": "ḧ",
"i": "ï", "i": "ï",
"o": "ö", "o": "ö",
"t": "ẗ",
"u": "ü", "u": "ü",
"y": "ÿ" "w": "ẅ",
"x": "ẍ",
"y": "ÿ",
// extended latin
"ā": "ǟ",
"ō": "ȫ",
"õ": "ṏ",
"í": "ḯ",
"ū": "ǖ", // there is also
"ú": "ǘ",
"ù": "ǜ",
"ǔ": "ǚ",
// greek
"ι": "ϊ",
"υ": "ϋ",
"ὺ": "ῢ",
"ύ": "ΰ",
"ῦ": "ῧ",
"ϒ": "ϔ",
// cyrillic
"а": "ӓ",
"ә": "ӛ",
"ж": "ӝ",
"з": "ӟ",
"и": "ӥ",
"о": "ӧ",
"ө": "ӫ",
"э": "ӭ",
"у": "ӱ",
"ч": "ӵ",
"ы": "ӹ",
// combining character
"c": "c\u0308",
"j": "j\u0308",
"k": "k\u0308",
"l": "l\u0308",
"m": "m\u0308",
"n": "n\u0308",
"s": "s\u0308"
} }

View File

@ -18,7 +18,38 @@
"┐": "╗", "┐": "╗",
"─": "═", "─": "═",
"│": "║", "│": "║",
// superscript
"ᵃ": "ᴬ",
"ᵇ": "ᴮ",
"ᶜ": "ꟲ",
"ᵈ": "ᴰ",
"ᵉ": "ᴱ",
"ᶠ": "ꟳ",
"ᵍ": "ᴳ",
"ʰ": "ᴴ",
"ⁱ": "ᴵ",
"ʲ": "ᴶ",
"ᵏ": "ᴷ",
"ˡ": "ᴸ",
"ᵐ": "ᴹ",
"ⁿ": "ᴺ",
"ᵒ": "ᴼ",
"ᵖ": "ᴾ",
"ʳ": "ᴿ",
"ᵗ": "ᵀ",
"ᵘ": "ᵁ",
"ᵛ": "ⱽ",
"ʷ": "ᵂ",
"ᶾ": "ᴣ",
"ᵠ": "ᶲ",
// german eszett has an uppercase, but because it is uncommon, java doesn't know about it
"ß": "ẞ", "ß": "ẞ",
// these characters don't have a preapplied uppercase version, so we use combining characters
"ẗ": "T\u0308",
"ẘ": "W\u030A",
"ẙ": "Y\u030A",
"ǰ": "J\u030C",
"ȷ": "J\u0307",
// In Turkish, upper case of 'iı' is 'İI' but Java's toUpperCase will // In Turkish, upper case of 'iı' is 'İI' but Java's toUpperCase will
// return 'II'. To make 'İ' accessible, make it the shift of 'ı'. This // return 'II'. To make 'İ' accessible, make it the shift of 'ı'. This
// has the inconvenient of swapping i and ı on the keyboard. // has the inconvenient of swapping i and ı on the keyboard.