This PR adds support for **Shavian**, a phonemic alphabet for English: https://en.wikipedia.org/wiki/Shavian_alphabet (Unicode [U+10450–U+1047F](https://www.unicode.org/charts/PDF/U10450.pdf); ISO 15924 - Shaw) It correctly pronounces most English words, except sometimes it misplaces the word stress. All checks are passing. There are many Shavian communities online; I wanted to join in without excluding people using screen readers. If needed, this website has more resources: https://shavian.info/  Continuation of #1818 due to an issue in a rebasemaster
| * uz (Uzbek) -- Andiv06 | * uz (Uzbek) -- Andiv06 | ||||
| new languages: | new languages: | ||||
| * en-Shaw (English, Shavian script) -- Luna Rose | |||||
| * ti (Tigrinya) -- Biniam Gebremichael | * ti (Tigrinya) -- Biniam Gebremichael | ||||
| * mto (Totontepec Mixe) -- Bill Dengler, Elizabeth Resendiz | * mto (Totontepec Mixe) -- Bill Dengler, Elizabeth Resendiz | ||||
| * fo (Faroese) -- Andras Eliassen, iSolveIT ApS and Setur.fo/Ravnur | * fo (Faroese) -- Andras Eliassen, iSolveIT ApS and Setur.fo/Ravnur |
| shaoni SaI'oUni | shaoni SaI'oUni | ||||
| shareable Se@@b@L | shareable Se@@b@L | ||||
| sharpie $alt2 | sharpie $alt2 | ||||
| shavian $alt6 | |||||
| shazam $alt3 | shazam $alt3 | ||||
| shea S'eI $only | shea S'eI $only | ||||
| shebang SI#baN | shebang SI#baN | ||||
| tensile $alt2 | tensile $alt2 | ||||
| virile $alt2 | virile $alt2 | ||||
| ?3 volatile v0la#t@L | ?3 volatile v0la#t@L | ||||
| // Shavian (phonemic alphabet for English) | |||||
| // Community Shavian letter names | |||||
| 𐑐 p'In | |||||
| 𐑚 b'El | |||||
| _𐑑 t'an | |||||
| 𐑛 d'Vn | |||||
| 𐑒 k'i: | |||||
| 𐑜 g'Il | |||||
| _𐑓 f'eI | |||||
| _𐑝 v'aI | |||||
| 𐑔 T'O@n | |||||
| _𐑞 D'aU | |||||
| 𐑕 s'i: | |||||
| 𐑟 z'u: | |||||
| 𐑖 S'aI | |||||
| 𐑠 Z'oU | |||||
| 𐑗 tS'A: | |||||
| 𐑡 dZ'OI | |||||
| 𐑘 j'En | |||||
| _𐑢 w'eI | |||||
| 𐑙 s'0N | |||||
| 𐑣 h'u: | |||||
| 𐑤 l'am | |||||
| 𐑮 r'oU | |||||
| 𐑥 m'i: | |||||
| _𐑯 n'aU | |||||
| 𐑦 'In | |||||
| 𐑰 'i:v | |||||
| 𐑧 'EdZ | |||||
| 𐑱 'eIm | |||||
| 𐑨 'aS | |||||
| _𐑲 'aIz | |||||
| _𐑩 @g'oU | |||||
| 𐑳 'Vp | |||||
| 𐑪 '0n | |||||
| _𐑴 'oUT | |||||
| 𐑫 'Umf | |||||
| _𐑵 'u:z | |||||
| 𐑬 'aUns | |||||
| 𐑶 'OIl | |||||
| 𐑭 'A:mz | |||||
| 𐑷 'O:t | |||||
| _𐑸 'a:ri;@ | |||||
| _𐑹 'O:r@ | |||||
| 𐑻 '3:rlI | |||||
| 𐑼 @r'eI | |||||
| _𐑽 'i@3ri | |||||
| 𐑾 'i:;@n | |||||
| _𐑿 j'u:l | |||||
| // Shavian short forms and single letter words | |||||
| 𐑩 $nounf | |||||
| 𐑸 %A@ $pastf $only | |||||
| 𐑲 aI $u+ $verbf $only | |||||
| 𐑯 and $u $pause $only | |||||
| 𐑞 D@2 $only $nounf | |||||
| 𐑓 fO@ $u | |||||
| 𐑽 i@3 $noun | |||||
| 𐑿 ju: $u $verbf | |||||
| 𐑴 'oU | |||||
| 𐑵 'u: // "ooh" | |||||
| 𐑹 O@ $u $pause $only | |||||
| 𐑝 02v $u $only | |||||
| 𐑑 t@5 $verbf $alt7 // @ change to U before vowel | |||||
| 𐑢 wID $u // used sometimes | |||||
| // Shavian dictionary | |||||
| 𐑥𐑲 maI $u $nounf $strend2 | |||||
| 𐑦𐑯 %In $strend $only $nounf | |||||
| 𐑦𐑟 %Iz $pastf $only | |||||
| 𐑣𐑨𐑛 %had $pastf $strend2 $only | |||||
| 𐑖𐑰 Si: $u $only $verbsf | |||||
| 𐑕𐑳𐑥 ,sVm $nounf $unstressend $only | |||||
| 𐑚𐑳𐑑 ,bVt $pause $only | |||||
| 𐑢𐑦𐑗 ,wItS $pause $strend2 $only $verbf |
| 'd (_S2 d | 'd (_S2 d | ||||
| 'll (_S3 @L | 'll (_S3 @L | ||||
| // Shavian characters, phonemic alphabet for English | |||||
| .group 0xF0 | |||||
| // 0xF0 is the first byte of the utf-8 code for these characters | |||||
| 𐑐 p | |||||
| 𐑚 b | |||||
| 𐑑 t | |||||
| 𐑛 d | |||||
| 𐑒 k | |||||
| 𐑜 g | |||||
| 𐑓 f | |||||
| 𐑝 v | |||||
| 𐑔 T | |||||
| 𐑞 D | |||||
| 𐑕 s | |||||
| 𐑟 z | |||||
| 𐑖 S | |||||
| 𐑠 Z | |||||
| 𐑗 tS | |||||
| 𐑡 dZ | |||||
| 𐑘 j | |||||
| 𐑢 w | |||||
| 𐑙 N | |||||
| 𐑣 h | |||||
| 𐑤 l | |||||
| 𐑮 r | |||||
| 𐑥 m | |||||
| 𐑯 n | |||||
| 𐑦 I | |||||
| 𐑦 (_ %i | |||||
| 𐑰 i: | |||||
| 𐑧 E | |||||
| 𐑱 eI | |||||
| 𐑨 a | |||||
| 𐑲 aI | |||||
| 𐑩 @ | |||||
| 𐑳 V | |||||
| 𐑪 0 | |||||
| 𐑴 oU | |||||
| 𐑫 U | |||||
| 𐑵 u: | |||||
| 𐑬 aU | |||||
| 𐑶 OI | |||||
| 𐑭 A: | |||||
| 𐑷 O: | |||||
| 𐑸 'A@ | |||||
| 𐑹 'O@ | |||||
| 𐑺 'e@ | |||||
| 𐑻 '3: | |||||
| 𐑼 3 | |||||
| 𐑽 'i@3 | |||||
| 𐑾 i:@ | |||||
| 𐑿 ju: | |||||
| .group 0xce // Greek letters | .group 0xce // Greek letters | ||||
| // 0xce is the first byte of the utf-8 code for these characters | |||||
| α 'alf@_ | α 'alf@_ | ||||
| β b'i:t@_ | β b'i:t@_ |
| name English (Shavian alphabet) | |||||
| language en-shaw | |||||
| maintainer Luna Rose <[email protected]> | |||||
| status testing | |||||
| phonemes en |
| #define OFFSET_GEORGIAN 0x10a0 | #define OFFSET_GEORGIAN 0x10a0 | ||||
| #define OFFSET_KOREAN 0x1100 | #define OFFSET_KOREAN 0x1100 | ||||
| #define OFFSET_ETHIOPIC 0x1200 | #define OFFSET_ETHIOPIC 0x1200 | ||||
| #define OFFSET_SHAVIAN 0x10450 | |||||
| // character ranges must be listed in ascending unicode order | // character ranges must be listed in ascending unicode order | ||||
| static const ALPHABET alphabets[] = { | static const ALPHABET alphabets[] = { | ||||
| { "_ja", 0x3040, 0x3040, 0x30ff, 0, AL_NOT_CODE }, | { "_ja", 0x3040, 0x3040, 0x30ff, 0, AL_NOT_CODE }, | ||||
| { "_zh", 0x3100, 0x3100, 0x9fff, 0, AL_NOT_CODE }, | { "_zh", 0x3100, 0x3100, 0x9fff, 0, AL_NOT_CODE }, | ||||
| { "_ko", 0xa700, 0xa700, 0xd7ff, L('k', 'o'), AL_NOT_CODE | AL_WORDS }, | { "_ko", 0xa700, 0xa700, 0xd7ff, L('k', 'o'), AL_NOT_CODE | AL_WORDS }, | ||||
| { "_shaw", OFFSET_SHAVIAN, 0x10450, 0x1047F, L('e', 'n'), 0 }, | |||||
| { NULL, 0, 0, 0, 0, 0 } | { NULL, 0, 0, 0, 0, 0 } | ||||
| }; | }; | ||||
| typedef struct { | typedef struct { | ||||
| const char *name; | const char *name; | ||||
| int offset; | int offset; | ||||
| unsigned short range_min, range_max; | |||||
| unsigned int range_min, range_max; | |||||
| int language; | int language; | ||||
| int flags; | int flags; | ||||
| } ALPHABET; | } ALPHABET; |
| test_phwav en-GB-x-rp 5b1cfb0721608b235f23eb1b36e88a7e4189388e "ma na Na pa ta ka ba da ga fa Ta sa Sa xa ha va Da za Za tSa dZa la ra ja wa t2a t#a d#a z#a r-a z/2a w#a m- n- N- _:_ mI mE ma m0 mV mU mi: mA: mO: mu: m3: mA@ mO@ mo@ mU@ mi@3 mIR mVR mi@ me@ mi m@ m3 me# mI# mI2 meI maI mOI moU maU maa mO2 maI@ maI3 maU@" | test_phwav en-GB-x-rp 5b1cfb0721608b235f23eb1b36e88a7e4189388e "ma na Na pa ta ka ba da ga fa Ta sa Sa xa ha va Da za Za tSa dZa la ra ja wa t2a t#a d#a z#a r-a z/2a w#a m- n- N- _:_ mI mE ma m0 mV mU mi: mA: mO: mu: m3: mA@ mO@ mo@ mU@ mi@3 mIR mVR mi@ me@ mi m@ m3 me# mI# mI2 meI maI mOI moU maU maa mO2 maI@ maI3 maU@" | ||||
| test_phwav en-US bfa628c50f1cad5cc0ff0adad905f8c2d855b4ac "ma na Na pa ta ka ba da ga fa Ta sa Sa xa ha va Da za Za tSa dZa la ra ja wa t2a t#a d#a z#a r-a z/2a w#a m- n- N- _:_ mI mE ma m0 mV mU mi: mA: mO: mu: m3: mA@ mO@ mo@ mU@ mi@3 mIR mVR mi@ me@ mi m@ m3 me# mI# mI2 meI maI mOI moU maU maa mO2 maI@ maI3 maU@" | test_phwav en-US bfa628c50f1cad5cc0ff0adad905f8c2d855b4ac "ma na Na pa ta ka ba da ga fa Ta sa Sa xa ha va Da za Za tSa dZa la ra ja wa t2a t#a d#a z#a r-a z/2a w#a m- n- N- _:_ mI mE ma m0 mV mU mi: mA: mO: mu: m3: mA@ mO@ mo@ mU@ mi@3 mIR mVR mi@ me@ mi m@ m3 me# mI# mI2 meI maI mOI moU maU maa mO2 maI@ maI3 maU@" | ||||
| test_phwav en-US-nyc 09858d35ec3a09647beee153cbac7de881c9062d "ma na Na pa ta ka ba da ga fa Ta sa Sa xa ha va Da za Za tSa dZa la ra ja wa t2a t#a d#a z#a r-a z/2a w#a m- n- N- _:_ mI mE ma m0 mV mU mi: mA: mO: mu: m3: mA@ mO@ mo@ mU@ mi@3 mIR mVR mi@ me@ mi m@ m3 me# mI# mI2 meI maI mOI moU maU maa mO2 maI@ maI3 maU@" | test_phwav en-US-nyc 09858d35ec3a09647beee153cbac7de881c9062d "ma na Na pa ta ka ba da ga fa Ta sa Sa xa ha va Da za Za tSa dZa la ra ja wa t2a t#a d#a z#a r-a z/2a w#a m- n- N- _:_ mI mE ma m0 mV mU mi: mA: mO: mu: m3: mA@ mO@ mo@ mU@ mi@3 mIR mVR mi@ me@ mi m@ m3 me# mI# mI2 meI maI mOI moU maU maa mO2 maI@ maI3 maU@" | ||||
| test_phwav en-Shaw d697eff0a076e5a5083c60196bfe1098706fc305 "ma na Na pa ta ka ba da ga fa Ta sa Sa xa ha va Da za Za tSa dZa la ra ja wa t2a t#a d#a z#a r-a z/2a w#a m- n- N- _:_ mI mE ma m0 mV mU mi: mA: mO: mu: m3: mA@ mO@ mo@ mU@ mi@3 mIR mVR mi@ me@ mi m@ m3 me# mI# mI2 meI maI mOI moU maU maa mO2 maI@ maI3 maU@" | |||||
| test_phwav eo cc2f7f352c6d299c81f6f95e730883f052dbc597 "ma na pa ta ka ba da ga fa sa Sa xa ha va za Za tsa tSa dza dZa la ja wa ra _:_ ma me mo mi mu maU meU maI meI moU muI" | test_phwav eo cc2f7f352c6d299c81f6f95e730883f052dbc597 "ma na pa ta ka ba da ga fa sa Sa xa ha va za Za tsa tSa dza dZa la ja wa ra _:_ ma me mo mi mu maU meU maI meI moU muI" | ||||
| test_phwav es 4758bff06486f6a37666f050ada0f04f0b762fad "ma na n^a pa ta ka ba da ga fa Ta sa Sa J^a xa Da tSa la l^a *a Ra ra v#a _:_ ma ma/ me me/ mE mi mo mo/ mu moI" | test_phwav es 4758bff06486f6a37666f050ada0f04f0b762fad "ma na n^a pa ta ka ba da ga fa Ta sa Sa J^a xa Da tSa la l^a *a Ra ra v#a _:_ ma ma/ me me/ mE mi mo mo/ mu moI" | ||||
| test_phwav es-419 7025e7baeb4b68cd856777a1173a07e06bfd900a "ma na n^a pa ta ka ba da ga fa Ta sa Sa J^a xa Da tSa la l^a *a Ra ra v#a _:_ ma ma/ me me/ mE mi mo mo/ mu moI" | test_phwav es-419 7025e7baeb4b68cd856777a1173a07e06bfd900a "ma na n^a pa ta ka ba da ga fa Ta sa Sa J^a xa Da tSa la l^a *a Ra ra v#a _:_ ma ma/ me me/ mE mi mo mo/ mu moI" |
| h'aItsWlr,yksto:s,abdEmpf,UN" "Victor jagt zwölf Boxkämpfer quer über den großen Sylter Deich. Heizölrückstoßabdämpfung." "Latn" | h'aItsWlr,yksto:s,abdEmpf,UN" "Victor jagt zwölf Boxkämpfer quer über den großen Sylter Deich. Heizölrückstoßabdämpfung." "Latn" | ||||
| test_phon el "ks,escep'azo t'im bz,ixofT'ora vD,eliQm'i;a" "Ξεσκεπάζω τὴν ψυχοφθόρα βδελυγμία." "Grek" | test_phon el "ks,escep'azo t'im bz,ixofT'ora vD,eliQm'i;a" "Ξεσκεπάζω τὴν ψυχοφθόρα βδελυγμία." "Grek" | ||||
| test_phon en "D@ kw'Ik br'aUn f'0ks dZ'Vmps ,oUv3 D@ l'eIzi d'0g" "The quick brown fox jumps over the lazy dog" "Latn" | test_phon en "D@ kw'Ik br'aUn f'0ks dZ'Vmps ,oUv3 D@ l'eIzi d'0g" "The quick brown fox jumps over the lazy dog" "Latn" | ||||
| test_phon en "h'i@3rIN m'i: b'oU | |||||
| DI2; 'aZ3 Tr'VS k'O:z | |||||
| 'e@ j'O@ dZ'OIf@l 'A@ri:;@ | |||||
| aI v'aU | |||||
| ju: w'0nt g'Ud tS'A: | |||||
| 'EseI pu:'3:" "𐑣𐑽𐑦𐑙 𐑥𐑰 𐑚𐑴, 𐑞 𐑨𐑠𐑼 𐑔𐑮𐑳𐑖 𐑒𐑷𐑟. 𐑺 𐑘𐑹 𐑡𐑶𐑓𐑩𐑤 𐑸𐑾, 𐑲 𐑝𐑬, 𐑿 𐑢𐑪𐑯𐑑 𐑜𐑫𐑛 𐑗𐑭. 𐑧𐑕𐑱 𐑐𐑵'𐑻!." "Shaw" | |||||
| test_phon eo ",eble tS'i;u kv'azaUd'etsa f,uSxoR'aZo dZoI'igos homt'ipon | test_phon eo ",eble tS'i;u kv'azaUd'etsa f,uSxoR'aZo dZoI'igos homt'ipon | ||||
| ,exoS'andZo tS,i;uZ'aUde | ,exoS'andZo tS,i;uZ'aUde | ||||
| p@-*'eskaU f@-*'eSa tS'exa mandZ'aZo" "Eble ĉiu kvazaŭ-deca fuŝĥoraĵo ĝojigos homtipon. Eĥoŝanĝo ĉiuĵaŭde, preskaŭ freŝa ĉeĥa manĝaĵo." "Latn" | p@-*'eskaU f@-*'eSa tS'exa mandZ'aZo" "Eble ĉiu kvazaŭ-deca fuŝĥoraĵo ĝojigos homtipon. Eĥoŝanĝo ĉiuĵaŭde, preskaŭ freŝa ĉeĥa manĝaĵo." "Latn" |