### B.1 Supported

Aspell 0.60 should be able to support the following languages:

Code | Language Name | Script | Dictionary Available | Gettext Translation
aa | Afar | Latin | - | -
af | Afrikaans | Latin | 0.50 | -
ak | Akan | Latin | Maybe | -
am | Amharic | Ethiopic | 0.60 | -
ar | Arabic | Arabic | 0.60 | -
as | Assamese | Bengali | - | -
av | Avar | Cyrillic | - | -
ay | Aymara | Latin | - | -
az | Azerbaijani | Cyrillic, Latin | 0.60 | -
ba | Bashkir | Cyrillic | - | -
be | Belarusian | Cyrillic | 0.50 | Incomplete
bg | Bulgarian | Cyrillic | 0.50 | -
bh | Bihari | Devanagari | - | -
bm | Bambara | Latin | - | -
bn | Bengali | Bengali | 0.60 | -
bo | Tibetan | Tibetan | - | -
br | Breton | Latin | 0.50 | -
bs | Bosnian | Latin | Maybe | -
ca | Catalan / Valencian | Latin | 0.50 | Yes
ce | Chechen | Cyrillic | - | -
co | Corsican | Latin | Maybe | -
cop | Coptic | Greek | Maybe | -
cs | Czech | Latin | 0.50 | Yes
csb | Kashubian | Latin | 0.60 | -
cv | Chuvash | Cyrillic | - | -
cy | Welsh | Latin | 0.50 | -
da | Danish | Latin | 0.50 | Incomplete
de | German | Latin | 0.50 | Yes
dyu | Dyula | - | Maybe | -
ee | Ewe | Latin | - | -
el | Greek | Greek | 0.50 | -
en | English | Latin | 0.50 | Yes
eo | Esperanto | Latin | 0.50 | -
es | Spanish | Latin | 0.50 | Incomplete
et | Estonian | Latin | 0.60 | -
eu | Basque | Latin | Maybe | -
fa | Persian | Arabic | 0.60 | -
ff | Fulah | Latin | Maybe | -
fi | Finnish | Latin | 0.60 | -
fj | Fijian | Latin | Maybe | -
fo | Faroese | Latin | 0.50 | -
fr | French | Latin | 0.50 | Yes
fur | Friulian | Latin | Maybe | -
fy | Frisian | Latin | 0.60 | -
ga | Irish | Latin | 0.50 | Yes
gd | Scottish Gaelic | Latin | 0.50 | -
gl | Gallegan | Latin | 0.50 | -
gn | Guarani | Latin | Maybe | -
gu | Gujarati | Gujarati | 0.60 | -
gv | Manx Gaelic | Latin | 0.50 | -
ha | Hausa | Latin | Maybe | -
he | Hebrew | Hebrew | 0.60 | -
hi | Hindi | Devanagari | 0.60 | -
hil | Hiligaynon | Latin | 0.50 | -
ho | Hiri Motu | Latin | - | -
hr | Croatian | Latin | 0.50 | -
hsb | Upper Sorbian | Latin | 0.60 | -
ht | Haitian Creole | Latin | Maybe | -
hu | Hungarian | Latin | 0.60 | -
hy | Armenian | Armenian | 0.60 | -
hz | Herero | Latin | - | -
ia | Interlingua (IALA) | Latin | 0.50 | -
id | Indonesian | Arabic, Latin | 0.50 | -
ig | Igbo | Latin | Maybe | -
ii | Sichuan Yi | Yi | - | -
io | Ido | Latin | - | -
is | Icelandic | Latin | 0.50 | -
it | Italian | Latin | 0.50 | Yes
jv | Javanese | Javanese, Latin | Maybe | -
ka | Georgian | Georgian | - | -
kg | Kongo | Latin | Maybe | -
ki | Kikuyu / Gikuyu | Latin | - | -
kj | Kwanyama | Latin | - | -
kk | Kazakh | Cyrillic | - | -
km | Khmer | Khmer | Maybe | -
kn | Kannada | Kannada | Planned | -
kr | Kanuri | Latin | - | -
ks | Kashmiri | Arabic, Devanagari | - | -
ku | Kurdish | Arabic, Cyrillic, Latin | 0.50 | -
kv | Komi | Cyrillic | - | -
ky | Kirghiz | Arabic, Cyrillic, Latin | Maybe | -
la | Latin | Latin | 0.60 | -
lb | Luxembourgish | Latin | Maybe | -
lg | Ganda | Latin | Maybe | -
li | Limburgian | Latin | Maybe | -
ln | Lingala | Latin | Maybe | -
lt | Lithuanian | Latin | 0.60 | -
lu | Luba-Katanga | Latin | - | -
lv | Latvian | Latin | 0.60 | -
mg | Malagasy | Latin | 0.50 | -
mi | Maori | Latin | 0.50 | -
mk | Macedonian | Cyrillic | 0.50 | -
ml | Malayalam | Latin, Malayalam | 0.60 | -
mn | Mongolian | Cyrillic, Mongolian | 0.60 | Incomplete
mo | Moldavian | Cyrillic | - | -
mos | Mossi | - | Maybe | -
mr | Marathi | Devanagari | 0.60 | -
ms | Malay | Arabic, Latin | 0.50 | -
mt | Maltese | Latin | 0.50 | -
my | Burmese | Myanmar | - | -
nb | Norwegian Bokmal | Latin | 0.50 | -
nd | North Ndebele | Latin | Maybe | -
nds | Low Saxon | Latin | 0.60 | -
ne | Nepali | Devanagari | Maybe | -
ng | Ndonga | Latin | Maybe | -
nl | Dutch | Latin | 0.50 | Yes
nn | Norwegian Nynorsk | Latin | 0.50 | -
nr | South Ndebele | Latin | Maybe | -
nso | Northern Sotho | Latin | Maybe | -
nv | Navajo | Latin | Maybe | -
ny | Nyanja | Latin | 0.50 | -
oc | Occitan / Provencal | Latin | Maybe | -
om | Oromo | Ethiopic, Latin | - | -
or | Oriya | Oriya | 0.60 | -
os | Ossetic | Cyrillic | - | -
pa | Punjabi | Gurmukhi | 0.60 | -
pl | Polish | Latin | 0.50 | -
ps | Pushto | Arabic | - | -
pt | Portuguese | Latin | 0.50 | Incomplete
qu | Quechua | Latin | 0.60 | -
rn | Rundi | Latin | Maybe | -
ro | Romanian | Latin | 0.50 | Incomplete
ru | Russian | Cyrillic | 0.50 | Yes
rw | Kinyarwanda | Latin | 0.50 | -
sc | Sardinian | Latin | 0.50 | -
sd | Sindhi | Arabic | - | -
sg | Sango | Latin | Maybe | -
si | Sinhalese | Sinhala | - | -
sk | Slovak | Latin | 0.50 | Yes
sl | Slovenian | Latin | 0.50 | Yes
sm | Samoan | Latin | Maybe | -
sn | Shona | Latin | Maybe | -
so | Somali | Latin | Maybe | -
sq | Albanian | Latin | Maybe | -
sr | Serbian | Cyrillic, Latin | 0.60 | Incomplete
ss | Swati | Latin | Maybe | -
st | Southern Sotho | Latin | Maybe | -
su | Sundanese | Latin | Maybe | -
sv | Swedish | Latin | 0.50 | Incomplete
sw | Swahili | Latin | 0.50 | -
ta | Tamil | Tamil | 0.60 | -
te | Telugu | Telugu | 0.60 | -
tet | Tetum | Latin | 0.50 | -
tg | Tajik | Arabic, Cyrillic, Latin | Maybe | Incomplete
ti | Tigrinya | Ethiopic | Maybe | -
tk | Turkmen | Arabic, Cyrillic, Latin | 0.50 | -
tl | Tagalog | Latin, Tagalog | 0.50 | -
tn | Tswana | Latin | 0.50 | -
to | Tonga | Latin | Maybe | -
tr | Turkish | Arabic, Latin | 0.50 | -
ts | Tsonga | Latin | Maybe | -
tt | Tatar | Cyrillic | - | -
tw | Twi | Latin | - | -
ty | Tahitian | Latin | Maybe | -
ug | Uighur | Arabic, Cyrillic, Latin | - | -
uk | Ukrainian | Cyrillic | 0.50 | Yes
ur | Urdu | Arabic | Maybe | -
uz | Uzbek | Cyrillic, Latin | 0.60 | -
ve | Venda | Latin | Maybe | -
vi | Vietnamese | Latin | 0.60 | Yes
wa | Walloon | Latin | 0.50 | Incomplete
wo | Wolof | Latin | Maybe | -
xh | Xhosa | Latin | Maybe | -
yi | Yiddish | Hebrew | 0.60 | -
yo | Yoruba | Latin | Maybe | -
za | Zhuang | Latin | - | -
zu | Zulu | Latin | 0.50 | -

Dictionaries marked as 0.50 are available for Aspell 0.50. Ones marked as 0.60 are available for Aspell 0.60 only. Ones marked as Planned should eventually be available. Ones marked as Maybe might be available in the future. See Planned Dictionaries, for more info.

#### B.1.1 Notes on Latin Languages

Any word that can be written using one of the Latin ISO-8859 character sets (ISO-8859-1,2,3,4,9,10,13,14,15,16) can be written, in decomposed form, using the ASCII characters, the 23 additional letters:

         U+00C6 LATIN CAPITAL LETTER AE
         U+00D0 LATIN CAPITAL LETTER ETH
         U+00D8 LATIN CAPITAL LETTER O WITH STROKE
         U+00DE LATIN CAPITAL LETTER THORN
         U+00DE LATIN SMALL LETTER THORN
         U+00DF LATIN SMALL LETTER SHARP S
         U+00E6 LATIN SMALL LETTER AE
         U+00F0 LATIN SMALL LETTER ETH
         U+00F8 LATIN SMALL LETTER O WITH STROKE
         U+0110 LATIN CAPITAL LETTER D WITH STROKE
         U+0111 LATIN SMALL LETTER D WITH STROKE
         U+0126 LATIN CAPITAL LETTER H WITH STROKE
         U+0127 LATIN SMALL LETTER H WITH STROKE
         U+0131 LATIN SMALL LETTER DOTLESS I
         U+0138 LATIN SMALL LETTER KRA
         U+0141 LATIN CAPITAL LETTER L WITH STROKE
         U+0142 LATIN SMALL LETTER L WITH STROKE
         U+014A LATIN CAPITAL LETTER ENG
         U+014B LATIN SMALL LETTER ENG
         U+0152 LATIN CAPITAL LIGATURE OE
         U+0153 LATIN SMALL LIGATURE OE
         U+0166 LATIN CAPITAL LETTER T WITH STROKE
         U+0167 LATIN SMALL LETTER T WITH STROKE

and the 14 modifiers:

         U+0300 COMBINING GRAVE ACCENT
         U+0301 COMBINING ACUTE ACCENT
         U+0302 COMBINING CIRCUMFLEX ACCENT
         U+0303 COMBINING TILDE
         U+0304 COMBINING MACRON
         U+0306 COMBINING BREVE
         U+0307 COMBINING DOT ABOVE
         U+0308 COMBINING DIAERESIS
         U+030A COMBINING RING ABOVE
         U+030B COMBINING DOUBLE ACUTE ACCENT
         U+030C COMBINING CARON
         U+0326 COMBINING COMMA BELOW
         U+0327 COMBINING CEDILLA
         U+0328 COMBINING OGONEK

Which is a total of 37 additional Unicode code points.

All ISO-8859 character leaves the characters 0x00 - 0x1F, and 0x80 - 0x9F unmapped as they are generally used as control characters. Of those, 0x01 - 0x0F, 0x11 - 0x1F and 0x80 - 0x9F may be mapped to anything in Aspell. This is a total of 62 characters which can be remapped in any ISO-8859 character set. Thus, by remapping 37 of the 62 characters to the previously specified Unicode code-points, any modified ISO-8859 character set can be used for any Latin languages covered by ISO-8859. Of course decomposing every single accented character wastes a lot of space, so only characters that cannot be represented in the precomposed form should be broken up. By using this trick it is possible to store foreign words in the correctly accented form in the dictionary even if the precomposed character is not in the current character set.

Any letter in the Unicode range U+0000 - U+0249, U+1E00 - U+1EFF (Basic Latin, Latin-1 Supplement, Latin Extended-A, Latin Extended-B, and Latin Extended Additional) can be represented using around 175 basic letters, and 25 modifiers which is less than 210 and can thus fit in an Aspell 8-bit character set. Since this Unicode range covers any possible Latin language this special character set can be used to represent any word written using the Latin script if so desired.

#### B.1.2 Syllabic

Syllabic languages use a separate symbol for each syllable of the language. Even thought most of them have more than 210 distinct symbols Aspell can still support them by breaking them up.

##### B.1.2.1 The Ethiopic Syllabary

Even though the Ethiopic script has more than 210 distinct characters Aspell can still handle it. The idea is to split each character into two parts based on the Consonant and Vowel parts. This encoding of the syllabary is far more useful to Aspell than if they were stored in UTF-8 or UTF-16. In fact, the exiting suggestion strategy of Aspell will work well with this encoding without any additional modifications. However, additional improvements may be possible by taking advantage of the consonant-vowel structure of this encoding.

In fact, the split consonant-vowel representation may prove to be so useful that it may be beneficial to encode other syllabary in this fashion, even if they are less than 210 of them.

The code to break up a syllabary into the consonant-vowel part is part of the Unicode normalization process.

##### B.1.2.2 The Yi Syllabary

A very large syllabary with 819 distinct symbols. However, like Ethiopic, it should be possible to support this script by breaking it up.

##### B.1.2.3 The Ojibwe Syllabary

With only 120 distinct symbols, Aspell can actually support this one as is. However, as previously mentioned, it may be beneficial to break it up into the consonant-vowel representation anyway.