Duxbury Systems introduces a braille translator for Windows and Mac that handles the underserved languages of West Africa (and across Africa). Duxbury Systems is a company located in Massachusetts, USA, which produces the Duxbury Braille Translator, known and respected around the world. The software supports over 170 languages and many systems of braille mathematics from around the world.
Duxbury Systems analyzed the characters used (orthography) in hundreds of African languages and worked out a single braille system that could be written out in two dozen simple rules. Using the same technology that Duxbury Systems used to create a single braille translator for biblical scholars, Duxbury added support for Arabic, extended Arabic (a separate Unicode range previously not supported by Duxbury), Ethiopic, N'ko, Tifinagh, and Vai scripts. There is a matching braille-to-print translator to make inkprint from braille material written in this new braille system.
Here is a short 5 page description translated into 30 different languages. Feel free to widely distribute this file.
Here are the basic principles in a simple chart. Lines 1-6 are single braille cells for some letters with an underdot. For other letters needing an underdot, use dots 56 (see line 20 of the chart). Lines 7-16 are special characters often encountred. Lines 17-23 are for braille prefix characters to modify the next character. Notice that the modifiers only use the right portion of the braille cell (dots 4, 5, and 6).
Columns 3, 4, and 5 all have the same information, but displayed differently. The USA-ASCII is important, because it is the form that the computer reads and processes. A link below explains it.
Line | Character or Accent | Braille | Braille Dots | USA-ASCII | Unicode |
---|---|---|---|---|---|
1 | a underdot | ⠷ | dots 12356 | ( | |
2 | e underdot | ⠢ | dots 26 | 5 | |
3 | i underdot | ⠔ | dots 35 | 9 | |
4 | o underdot | ⠳ | dots 1256 | \ | |
5 | u underdot | ⠾ | dots 23456 | ) | |
6 | s underdot | ⠩ | dots 246 | % | |
7 | firm apostrophe - ʼ | ⠄ | dot 3 | ' | |
8 | script a - ɑ | ⠿ | dots 123456 | = | U+0251 |
9 | ae - æ | ⠜ | dots 345 | > | U+00e6 |
10 | ezh - ʒ | ⠩ | dots 146 | % | U+0292 |
11 | open e - ɛ | ⠻ | dots 12456 | ] | U+025b |
12 | schwa - ə | ⠮ | dots 2346 | ! | U+0259 |
13 | eng - ŋ | ⠬ | dots 346 | + | U+014b |
14 | open o - ɔ | ⠪ | dots 246 | [ | U+0254 |
15 | glottal stop - ʔ | ⠡ | dots 16 | * | U+0294 |
16 | rev glottal stop - ʕ | ⠡ | dots 16 | * | U+0295 |
17 | accent acute | ⠈ | dot 4 | @ | |
18 | accent grave | ⠐ | dot 5 | " | |
19 | accent macron | ⠘ | dots 45 | ^ | |
20 | underdot | ⠰ | dots 56 | ; | |
21 | combo vowel | ⠸ | dots 456 | _ | |
22 | altered letter #1 | ⠈ | dot 4 | @ | |
23 | altered letter #2 | ⠸ | dots 456 | _ |
Clarifications and Exceptions:
Braille for underdot is also used for underbar and stroke (and the dotless i and oe).
The dots 45 for macron is used for other accents above the letter which is not accent acute or accent grave.
The letter u can have a double accent acute. I solved this with two dot 4's in a row. I welcome a better approach.
The dot 4 is used for both an accent acute and an altered letter. Only three consonants have accent acute: c, n, and p. All other uses with a consonant are altered letters. The dot 4 y is an altered y, not accent acute y. In this instance, the y is an honorary consonant.
Duxbury Implementation:
A braille system is more than letters. How the other characters are handled is a tricky subject. We follow American standards (such as dot 6 for capitalization and dropped h for question mark), but avoid multi-cell UEB combinations. For many braille systems, dot 4 is used for currency symbols. The dot 4 is heavily used here, so dots 1246 or $ is used instead. We have implemented $c for cents, $d for dollar, $e for Euro, $l for pound, $n for Naira, and $y for yen. Many of the assignments are designed to be easy to learn: dropped g for parenthesis, dots 46 in front for brackets, dots 456 in front for braces. For emphasis, we used an old system using dots 46 simply because it was easy to program.
The braille is shown as US-ASCII braille. There is a chart of US-ASCII braille at the second half of this web page.
Feel free to contact David at languages@duxsys.com with your thoughts. He needs to know if there is a language which uses different characters which would be the same thing in braille. He also needs modest length sample files to test this new translator. By the way, here is the list of braille translators that Duxbury Systems offers for Africa. Here is the list of clashes between the West African languages translator and other translators for West African translators.
Here is a graphical display of the density of West African languages.
(1) Here are some text samples from over 12 languages. The next link is the same files in US-ASCII braille. (2) Here is bible text in Agnang. The next link is the same bible text in US-ASCII braille (over 200 pages long).
A demonstration of handling different scripts: (1) Arabic text converted into uncontracted Arabic braille (2) N'ko (and Latin script) text converted into braille (3) Armharic text converted into Amharic braille. The point is that all the samples on this page were translated by the same Duxbury Systems translator built into DBT 12.7.
In the chart below, a color shows a new letter. A lighter color separates vowels using a underbar or underdot. The computer generated data deleted much of the geographic data (the X's in the chart).
L Case | Unicode | U Case | Unicode | Brl | why | what |
---|---|---|---|---|---|---|
ʼ | 02BC | ' | rule(s): 7 | firm apostrophe | ||
á | 00e1 | Á | 00c1 | @a | rule(s): 17 | a acute |
á | 'a+0301 | Á | 'A+0301 | @a | rule(s): 17 | a acute |
â | 00e2 | Â | 00c2 | ^a | rule(s): 19 | a circumflex |
ã | 00e3 | Ã | 00c3 | ^a | rule(s): 19 | a tilde |
ä | 00e4 | Ä | 00c4 | ^a | rule(s): 19 | a umlaut |
ā | 0101 | Ā | 0100 | ^a | rule(s): 19 | a macon |
ă | 0103 | Ă | 0102 | ^a | rule(s): 19 | a breve |
ǎ | 01ce | Ǎ | 01cd | ^a | rule(s): 19 | a caron |
â | 'a+0302 | Â | 'A+0302 | ^a | rule(s): 19 | a circumflex |
ã | 'a+0303 | Ã | 'A+0303 | ^a | rule(s): 19 | a tilde |
ā | 'a+0304 | Ā | 'A+0304 | ^a | rule(s): 19 | a macon |
ă | 'a+0306 | Ă | 'A+0306 | ^a | rule(s): 19 | a breve |
ǎ | 'a+030c | Ǎ | 'A+030c | ^a | rule(s): 19 | a caron |
à | 00e0 | À | 00c0 | ;a | rule(s): 18 | a grave |
à | 'a+0300 | À | 'A+0300 | ;a | rule(s): 18 | a grave |
á̟ | 00e1+031f | Á̟ | x00c1+031f | @( | rule(s): 1+17 | a acute underdot |
ạ́ | 00e1+0323 | Ạ́ | x00c1+0323 | @( | rule(s): 1+17 | a acute underdot |
á̱ | 00e1+0331 | Á̱ | x00c1+0331 | @( | rule(s): 1+17 | a acute underbar |
â̟ | 00e2+031f | Â̟ | x00c2+031f | ^( | rule(s): 1+19 | a circumflex underdot |
ậ | 00e2+0323 | Ậ | x00c2+0323 | ^( | rule(s): 1+19 | a circumflex underdot |
â̱ | 00e2+0331 | Â̱ | x00c2+0331 | ^( | rule(s): 1+19 | a circumflex underbar |
ã̟ | 00e3+031f | Ã̟ | x00c3+031f | ^( | rule(s): 1+19 | a tilde underdot |
ạ̃ | 00e3+0323 | Ạ̃ | x00c3+0323 | ^( | rule(s): 1+19 | a tilde underdot |
ã̱ | 00e3+0331 | Ã̱ | x00c3+0331 | ^( | rule(s): 1+19 | a tilde underbar |
ä̟ | 00e4+031f | Ä̟ | x00c4+031f | ^( | rule(s): 1+19 | a umlaut underdot |
ạ̈ | 00e4+0323 | Ạ̈ | x00c4+0323 | ^( | rule(s): 1+19 | a umlaut underdot |
ä̱ | 00e4+0331 | Ä̱ | x00c4+0331 | ^( | rule(s): 1+19 | a umlaut underbar |
ā̟ | 0101+031f | Ā̟ | x0100+031f | ^( | rule(s): 1+19 | a macon underdot |
ạ̄ | 0101+0323 | Ạ̄ | x0100+0323 | ^( | rule(s): 1+19 | a macon underdot |
ā̱ | 0101+0331 | Ā̱ | x0100+0331 | ^( | rule(s): 1+19 | a macon underbar |
ă̟ | 0103+031f | Ă̟ | x0102+031f | ^( | rule(s): 1+19 | a breve underdot |
ặ | 0103+0323 | Ặ | x0102+0323 | ^( | rule(s): 1+19 | a breve underdot |
ă̱ | 0103+0331 | Ă̱ | x0102+0331 | ^( | rule(s): 1+19 | a breve underbar |
ǎ̟ | 01ce+031f | Ǎ̟ | x01cd+031f | ^( | rule(s): 1+19 | a caron underdot |
ạ̌ | 01ce+0323 | Ạ̌ | x01cd+0323 | ^( | rule(s): 1+19 | a caron underdot |
ǎ̱ | 01ce+0331 | Ǎ̱ | x01cd+0331 | ^( | rule(s): 1+19 | a caron underbar |
ạ | 1ea1 | Ạ | 1ea0 | ( | rule(s): 1 | a underdot |
a̟ | 'a+031f | A̟ | 'A+031f | ( | rule(s): 1 | a underdot |
ạ | 'a+0323 | Ạ | 'A+0323 | ( | rule(s): 1 | a underdot |
a̱ | 'a+0331 | A̱ | 'A+0331 | ( | rule(s): 1 | a underbar |
à̟ | 00e0+031f | À̟ | x00c0+031f | ;( | rule(s): 1+18 | a grave underdot |
ạ̀ | 00e0+0323 | Ạ̀ | x00c0+0323 | ;( | rule(s): 1+18 | a grave underdot |
à̱ | 00e0+0331 | À̱ | x00c0+0331 | ;( | rule(s): 1+18 | a grave underbar |
ɑ | 0251 | Ɑ | 2c6d | = | rule(s): 8 | script a |
ɑ́ | 0251+0301 | Ɑ́ | 2c6d+0301 | @= | rule(s): 8+17 | script a acute |
ɑ̂ | 0251+0302 | Ɑ̂ | 2c6d+0302 | ^= | rule(s): 8+19 | script a circumflex |
ɑ̃ | 0251+0303 | Ɑ̃ | 2c6d+0303 | ^= | rule(s): 8+19 | script a tilde |
ɑ̄ | 0251+0304 | Ɑ̄ | 2c6d+0304 | ^= | rule(s): 8+19 | script a macon |
ɑ̆ | 0251+0306 | Ɑ̆ | 2c6d+0306 | ^= | rule(s): 8+19 | script a breve |
ɑ̌ | 0251+030c | Ɑ̌ | 2c6d+030c | ^= | rule(s): 8+19 | script a caron |
ɑ̀ | 0251+0300 | Ɑ̀ | 2c6d+0300 | ;= | rule(s): 8+18 | script a grave |
æ | 00e6 | Æ | 00c6 | > | rule(s): 9 | ae character |
ǽ | 00e6+0301 | Ǽ | 00c6+0301 | @> | rule(s): 9+17 | ae char. acute |
æ̂ | 00e6+0302 | Æ̂ | 00c6+0302 | ^> | rule(s): 9+19 | ae char. circumflex |
æ̃ | 00e6+0303 | Æ̃ | 00c6+0303 | ^> | rule(s): 9+19 | ae char. tilde |
ǣ | 00e6+0304 | Ǣ | 00c6+0304 | ^> | rule(s): 9+19 | ae char. macon |
æ̆ | 00e6+0306 | Æ̆ | 00c6+0306 | ^> | rule(s): 9+19 | ae char. breve |
æ̌ | 00e6+030c | Æ̌ | 00c6+030c | ^> | rule(s): 9+19 | ae char. caron |
æ̀ | 00e6+0300 | Æ̀ | 00c6+0300 | ;> | rule(s): 9+18 | ae char. grave |
ḅ | 1E05 | Ḅ | 1E04 | ;b | rule(s): 20 | b underdot |
b̟ | 'b+031f | B̟ | 'B+031f | ;b | rule(s): 20 | b underdot |
ɓ | 0253 | Ɓ | 0181 | @b | rule(s): 22 | bent b |
b̃ | 'b+0303 | B̃ | 'B+0303 | @b | rule(s): 22 | bent b |
ć | 0107 | Ć | 0106 | @c | rule(s): 17 | c acute |
ć | 'c+0301 | Ć | 'C+0301 | @c | rule(s): 17 | c acute |
č | 010D | Č | 010C | ^c | rule(s): 19 | c caron |
ḏ | 1E0F | Ḏ | 1E0E | ;d | rule(s): 20 | d underbar |
ḍ | 1E0D | ḍ | 1E0C | ;d | rule(s): 20 | d underdot |
d̟ | 'd+031f | D̟ | 'D+031f | ;d | rule(s): 20 | d underdot |
d̃ | 'd+0303 | D̃ | 'D+0303 | @d | rule(s): 22 | d tail |
ɖ | 0256 | Ɖ | 0189 | @d | rule(s): 22 | d tail |
ɗ | 0257 | Ɗ | 018A | @d | rule(s): 22 | d hook |
é | 00e9 | É | 00c9 | @e | rule(s): 17 | e acute |
é | 'e+0301 | É | 'E+0301 | @e | rule(s): 17 | e acute |
ê | 00ea | Ê | 00ca | ^e | rule(s): 19 | e circumflex |
ë | 00eb | Ë | 00cb | ^e | rule(s): 19 | e umlaut |
ē | 0113 | Ē | 0112 | ^e | rule(s): 19 | e macon |
ĕ | 0115 | Ĕ | 0114 | ^e | rule(s): 19 | e breve |
ě | 011b | Ě | 011a | ^e | rule(s): 19 | e caron |
ẽ | 1ebd | Ẽ | 1ebc | ^e | rule(s): 19 | e tilde |
ê | 'e+0302 | Ê | 'E+0302 | ^e | rule(s): 19 | e circumflex |
ẽ | 'e+0303 | Ẽ | 'E+0303 | ^e | rule(s): 19 | e tilde |
ē | 'e+0304 | Ē | 'E+0304 | ^e | rule(s): 19 | e macon |
ĕ | 'e+0306 | Ĕ | 'E+0306 | ^e | rule(s): 19 | e breve |
ě | 'e+030c | Ě | 'E+030c | ^e | rule(s): 19 | e caron |
è | 00e8 | È | 00c8 | ;e | rule(s): 18 | e grave |
è | 'e+0300 | È | 'E+0300 | ;e | rule(s): 18 | e grave |
é̟ | 00e9+031f | É̟ | x00c9+031f | @5 | rule(s): 2+17 | e acute underdot |
ẹ́ | 00e9+0323 | Ẹ́ | x00c9+0323 | @5 | rule(s): 2+17 | e acute underdot |
é̱ | 00e9+0331 | É̱ | x00c9+0331 | @5 | rule(s): 2+17 | e acute underbar |
ê̟ | 00ea+031f | Ê̟ | x00ca+031f | ^5 | rule(s): 2+19 | e circumflex underdot |
ệ | 00ea+0323 | Ệ | x00ca+0323 | ^5 | rule(s): 2+19 | e circumflex underdot |
ê̱ | 00ea+0331 | Ê̱ | x00ca+0331 | ^5 | rule(s): 2+19 | e circumflex underbar |
ë̟ | 00eb+031f | Ë̟ | x00cb+031f | ^5 | rule(s): 2+19 | e umlaut underdot |
ẹ̈ | 00eb+0323 | Ẹ̈ | x00cb+0323 | ^5 | rule(s): 2+19 | e umlaut underdot |
ë̱ | 00eb+0331 | Ë̱ | x00cb+0331 | ^5 | rule(s): 2+19 | e umlaut underbar |
ē̟ | 0113+031f | Ē̟ | x0112+031f | ^5 | rule(s): 2+19 | e macon underdot |
ẹ̄ | 0113+0323 | Ẹ̄ | x0112+0323 | ^5 | rule(s): 2+19 | e macon underdot |
ē̱ | 0113+0331 | Ē̱ | x0112+0331 | ^5 | rule(s): 2+19 | e macon underbar |
ĕ̟ | 0115+031f | Ĕ̟ | x0114+031f | ^5 | rule(s): 2+19 | e breve underdot |
ẹ̆ | 0115+0323 | Ẹ̆ | x0114+0323 | ^5 | rule(s): 2+19 | e breve underdot |
ĕ̱ | 0115+0331 | Ĕ̱ | x0114+0331 | ^5 | rule(s): 2+19 | e breve underbar |
ě̟ | 011b+031f | Ě̟ | x011a+031f | ^5 | rule(s): 2+19 | e caron underdot |
ẹ̌ | 011b+0323 | Ẹ̌ | x011a+0323 | ^5 | rule(s): 2+19 | e caron underdot |
ě̱ | 011b+0331 | Ě̱ | x011a+0331 | ^5 | rule(s): 2+19 | e caron underbar |
ẽ̟ | 1ebd+031f | Ẽ̟ | x1ebc+031f | ^5 | rule(s): 2+19 | e tilde underdot |
ẹ̃ | 1ebd+0323 | Ẹ̃ | x1ebc+0323 | ^5 | rule(s): 2+19 | e tilde underdot |
ẽ̱ | 1ebd+0331 | Ẽ̱ | x1ebc+0331 | ^5 | rule(s): 2+19 | e tilde underbar |
ẹ | 1eb9 | Ẹ | 1eb8 | 5 | rule(s): 2 | e underdot |
e̟ | 'e+031f | E̟ | 'E+031f | 5 | rule(s): 2 | e underdot |
ẹ | 'e+0323 | Ẹ | 'E+0323 | 5 | rule(s): 2 | e underdot |
e̱ | 'e+0331 | E̱ | 'E+0331 | 5 | rule(s): 2 | e underbar |
è̟ | 00e8+031f | È̟ | x00c8+031f | ;5 | rule(s): 2+18 | e grave underdot |
ẹ̀ | 00e8+0323 | Ẹ̀ | x00c8+0323 | ;5 | rule(s): 2+18 | e grave underdot |
è̱ | 00e8+0331 | È̱ | x00c8+0331 | ;5 | rule(s): 2+18 | e grave underbar |
ɛ | 025B | Ɛ | 0190 | ] | rule(s): 11 | open e |
ɛ́ | 025b+0301 | Ɛ́ | 0190+0301 | @] | rule(s): 11+17 | open e acute |
ɛ̂ | 025b+0302 | Ɛ̂ | 0190+0302 | ^] | rule(s): 11+19 | open e circumflex |
ɛ̃ | 025b+0303 | Ɛ̃ | 0190+0303 | ^] | rule(s): 11+19 | open e tilde |
ɛ̄ | 025b+0304 | Ɛ̄ | 0190+0304 | ^] | rule(s): 11+19 | open e macon |
ɛ̆ | 025b+0306 | Ɛ̆ | 0190+0306 | ^] | rule(s): 11+19 | open e breve |
ɛ̈ | 025b+0308 | Ɛ̈ | 0190+0308 | ^] | rule(s): 11+19 | open e umlaut |
ɛ̌ | 025b+030c | Ɛ̌ | 0190+030c | ^] | rule(s): 11+19 | open e caron |
ɛ̀ | 025b+0300 | Ɛ̀ | 0190+0300 | ;] | rule(s): 11+18 | open e grave |
ə | 0259 | Ə | 018F | ! | rule(s): 12 | schwae |
ə́ | 0259+0301 | Ə́ | 018f+0301 | @! | rule(s): 12+17 | schwa acute |
ə̂ | 0259+0302 | Ə̂ | 018f+0302 | ^! | rule(s): 12+19 | schwa circumflex |
ə̃ | 0259+0303 | Ə̃ | 018f+0303 | ^! | rule(s): 12+19 | schwa tilde |
ə̄ | 0259+0304 | Ə̄ | 018f+0304 | ^! | rule(s): 12+19 | schwa macon |
ə̆ | 0259+0306 | Ə̆ | 018f+0306 | ^! | rule(s): 12+19 | schwa breve |
ə̌ | 0259+030c | Ə̌ | 018f+030c | ^! | rule(s): 12+19 | schwa caron |
ə̀ | 0259+0300 | Ə̀ | 018f+0300 | ;! | rule(s): 12+18 | schwa grave |
ǝ | 01dd | Ǝ | 018e | ! | rule(s): 12 | schwa |
ƒ | 0192 | Ƒ | 0191 | @f | rule(s): 22 | f hook |
ɡ | 0261 | ɢ | 0262 | g | script g | |
ɠ | 0260 | Ɠ | 0193 | @g | rule(s): 22 | g hook |
ɣ | 0263 | Ɣ | 0194 | _g | rule(s): 23 | small gamma |
ɦ | 0266 | Ɦ | A7AA | @h | rule(s): 22 | h hook |
h̃ | 'h+0303 | H̃ | 'H+0303 | @h | rule(s): 22 | h hook |
ḥ | 1E25 | Ḥ | 1E24 | ;h | rule(s): 20 | h underdot |
h̟ | 'h+031f | H̟ | 'H+031f | ;h | rule(s): 20 | h underdot |
í | 00ed | Í | 00cd | @i | rule(s): 17 | i acute |
í | 'i+0301 | Í | 'I+0301 | @i | rule(s): 17 | i acute |
î | 00ee | Î | 00ce | ^i | rule(s): 19 | i circumflex |
ï | 00ef | Ï | 00cf | ^i | rule(s): 19 | i umlaut |
ĩ | 0129 | Ĩ | 0128 | ^i | rule(s): 19 | i tilde |
ī | 012b | Ī | 012a | ^i | rule(s): 19 | i macon |
ĭ | 012d | Ĭ | 012c | ^i | rule(s): 19 | i breve |
ǐ | 01d0 | Ǐ | 01cf | ^i | rule(s): 19 | i caron |
î | 'i+0302 | Î | 'I+0302 | ^i | rule(s): 19 | i circumflex |
ĩ | 'i+0303 | Ĩ | 'I+0303 | ^i | rule(s): 19 | i tilde |
ī | 'i+0304 | Ī | 'I+0304 | ^i | rule(s): 19 | i macon |
ĭ | 'i+0306 | Ĭ | 'I+0306 | ^i | rule(s): 19 | i breve |
ǐ | 'i+030c | Ǐ | 'I+030c | ^i | rule(s): 19 | i caron |
ì | 00ec | Ì | 00cc | ;i | rule(s): 18 | i grave |
ì | 'i+0300 | Ì | 'I+0300 | ;i | rule(s): 18 | i grave |
í̟ | 00ed+031f | Í̟ | x00cd+031f | @9 | rule(s): 3+17 | i acute underdot |
ị́ | 00ed+0323 | Ị́ | x00cd+0323 | @9 | rule(s): 3+17 | i acute underdot |
í̱ | 00ed+0331 | Í̱ | x00cd+0331 | @9 | rule(s): 3+17 | i acute underbar |
î̟ | 00ee+031f | Î̟ | x00ce+031f | ^9 | rule(s): 3+19 | i circumflex underdot |
ị̂ | 00ee+0323 | Ị̂ | x00ce+0323 | ^9 | rule(s): 3+19 | i circumflex underdot |
î̱ | 00ee+0331 | Î̱ | x00ce+0331 | ^9 | rule(s): 3+19 | i circumflex underbar |
ï̟ | 00ef+031f | Ï̟ | x00cf+031f | ^9 | rule(s): 3+19 | i umlaut underdot |
ị̈ | 00ef+0323 | Ị̈ | x00cf+0323 | ^9 | rule(s): 3+19 | i umlaut underdot |
ï̱ | 00ef+0331 | Ï̱ | x00cf+0331 | ^9 | rule(s): 3+19 | i umlaut underbar |
ĩ̟ | 0129+031f | Ĩ̟ | x0128+031f | ^9 | rule(s): 3+19 | i tilde underdot |
ị̃ | 0129+0323 | Ị̃ | x0128+0323 | ^9 | rule(s): 3+19 | i tilde underdot |
ĩ̱ | 0129+0331 | Ĩ̱ | x0128+0331 | ^9 | rule(s): 3+19 | i tilde underbar |
ī̟ | 012b+031f | Ī̟ | x012a+031f | ^9 | rule(s): 3+19 | i macon underdot |
ị̄ | 012b+0323 | Ị̄ | x012a+0323 | ^9 | rule(s): 3+19 | i macon underdot |
ī̱ | 012b+0331 | Ī̱ | x012a+0331 | ^9 | rule(s): 3+19 | i macon underbar |
ĭ̟ | 012d+031f | Ĭ̟ | x012c+031f | ^9 | rule(s): 3+19 | i breve underdot |
ị̆ | 012d+0323 | Ị̆ | x012c+0323 | ^9 | rule(s): 3+19 | i breve underdot |
ĭ̱ | 012d+0331 | Ĭ̱ | x012c+0331 | ^9 | rule(s): 3+19 | i breve underbar |
ǐ̟ | 01d0+031f | Ǐ̟ | x01cf+031f | ^9 | rule(s): 3+19 | i caron underdot |
ị̌ | 01d0+0323 | Ị̌ | x01cf+0323 | ^9 | rule(s): 3+19 | i caron underdot |
ǐ̱ | 01d0+0331 | Ǐ̱ | x01cf+0331 | ^9 | rule(s): 3+19 | i caron underbar |
ị | 1ecb | Ị | 1eca | 9 | rule(s): 3 | i underdot |
ị́ | 1ecb+0301 | Ị́ | 1eca+0301 | @9 | rule(s): 3+17 | i underdot acute |
ị̃ | 1ecb+0303 | Ị̃ | 1eca+0303 | ^9 | rule(s): 3+19 | i underdot tilde |
i̟ | 'i+031f | I̟ | 'I+031f | 9 | rule(s): 3 | i underdot |
ị | 'i+0323 | Ị | 'I+0323 | 9 | rule(s): 3 | i underdot |
i̱ | 'i+0331 | I̱ | 'I+0331 | 9 | rule(s): 3 | i underbar |
ì̟ | 00ec+031f | Ì̟ | x00cc+031f | ;9 | rule(s): 3+18 | i grave underdot |
ị̀ | 00ec+0323 | Ị̀ | x00cc+0323 | ;9 | rule(s): 3+18 | i grave underdot |
ì̱ | 00ec+0331 | Ì̱ | x00cc+0331 | ;9 | rule(s): 3+18 | i grave underbar |
ƙ | 0199 | Ƙ | 0198 | @k | rule(s): 22 | k hook |
ḷ | 1E37 | Ḷ | 1E36 | ;l | rule(s): 20 | l underdot |
l̟ | 'l+031f | L̟ | 'L+031f | ;l | rule(s): 20 | l underdot |
ł | 0142 | Ł | 0141 | ;l | rule(s): 20 | l stroke |
ṇ | 1E47 | Ṇ | 1E46 | ;n | rule(s): 20 | n underdot |
n̟ | 'n+031f | N̟ | 'N+031f | ;n | rule(s): 20 | n underdot |
ñ | 00F1 | Ñ | 00D1 | ^n | rule(s): 19 | n tilde |
ń | 0144 | Ń | 0143 | @n | rule(s): 17 | n acute |
ń | 'n+0301 | Ń | 'N+0301 | @n | rule(s): 17 | n acute |
ǹ | 'n+0300 | Ǹ | 'N+0300 | "n | rule(s): 18 | n grave |
ṅ | 1e45 | Ṅ | 1e44 | ;n | rule(s): 20 | n overdot |
ň | 0148 | Ň | 0147 | ^n | rule(s): 19 | n caron |
ɲ | 0272 | Ɲ | 019D | _n | rule(s): 23 | n left hook |
ŋ | 014B | Ŋ | 014A | + | rule(s): 13 | eng |
ŋ́ | 014b+0301 | Ŋ́ | 014a+0301 | @+ | rule(s): 13+17 | eng acute |
ŋ̂ | 014b+0302 | Ŋ̂ | 014a+0302 | ^+ | rule(s): 13+19 | eng circumflex |
ŋ̃ | 014b+0303 | Ŋ̃ | 014a+0303 | ^+ | rule(s): 13+19 | eng tilde |
ŋ̄ | 014b+0304 | Ŋ̄ | 014a+0304 | ^+ | rule(s): 13+19 | eng macon |
ŋ̆ | 014b+0306 | Ŋ̆ | 014a+0306 | ^+ | rule(s): 13+19 | eng breve |
ŋ̌ | 014b+030c | Ŋ̌ | 014a+030c | ^+ | rule(s): 13+19 | eng caron |
ŋ̀ | 014b+0300 | Ŋ̀ | 014a+0300 | ;+ | rule(s): 13+18 | eng grave |
ó | 00f3 | Ó | 00d3 | @o | rule(s): 17 | o acute |
ó | 'o+0301 | Ó | 'O+0301 | @o | rule(s): 17 | o acute |
ô | 00f4 | Ô | 00d4 | ^o | rule(s): 19 | o circumflex |
õ | 00f5 | Õ | 00d5 | ^o | rule(s): 19 | o tilde |
ö | 00f6 | Ö | 00d6 | ^o | rule(s): 19 | o umlaut |
ō | 014d | Ō | 014c | ^o | rule(s): 19 | o macon |
ŏ | 014f | Ŏ | 014e | ^o | rule(s): 19 | o breve |
ǒ | 01d2 | Ǒ | 01d1 | ^o | rule(s): 19 | o caron |
ô | 'o+0302 | Ô | 'O+0302 | ^o | rule(s): 19 | o circumflex |
õ | 'o+0303 | Õ | 'O+0303 | ^o | rule(s): 19 | o tilde |
ō | 'o+0304 | Ō | 'O+0304 | ^o | rule(s): 19 | o macon |
ŏ | 'o+0306 | Ŏ | 'O+0306 | ^o | rule(s): 19 | o breve |
ǒ | 'o+030c | Ǒ | 'O+030c | ^o | rule(s): 19 | o caron |
ò | 00f2 | Ò | 00d2 | ;o | rule(s): 18 | o grave |
ò | 'o+0300 | Ò | 'O+0300 | ;o | rule(s): 18 | o grave |
ó̟ | 00f3+031f | Ó̟ | x00d3+031f | @\ | rule(s): 4+17 | o acute underdot |
ọ́ | 00f3+0323 | Ọ́ | x00d3+0323 | @\ | rule(s): 4+17 | o acute underdot |
ó̱ | 00f3+0331 | Ó̱ | x00d3+0331 | @\ | rule(s): 4+17 | o acute underbar |
ô̟ | 00f4+031f | Ô̟ | x00d4+031f | ^\ | rule(s): 4+19 | o circumflex underdot |
ộ | 00f4+0323 | Ộ | x00d4+0323 | ^\ | rule(s): 4+19 | o circumflex underdot |
ô̱ | 00f4+0331 | Ô̱ | x00d4+0331 | ^\ | rule(s): 4+19 | o circumflex underbar |
õ̟ | 00f5+031f | Õ̟ | x00d5+031f | ^\ | rule(s): 4+19 | o tilde underdot |
ọ̃ | 00f5+0323 | Ọ̃ | x00d5+0323 | ^\ | rule(s): 4+19 | o tilde underdot |
õ̱ | 00f5+0331 | Õ̱ | x00d5+0331 | ^\ | rule(s): 4+19 | o tilde underbar |
ö̟ | 00f6+031f | Ö̟ | x00d6+031f | ^\ | rule(s): 4+19 | o umlaut underdot |
ọ̈ | 00f6+0323 | Ọ̈ | x00d6+0323 | ^\ | rule(s): 4+19 | o umlaut underdot |
ö̱ | 00f6+0331 | Ö̱ | x00d6+0331 | ^\ | rule(s): 4+19 | o umlaut underbar |
ō̟ | 014d+031f | Ō̟ | x014c+031f | ^\ | rule(s): 4+19 | o macon underdot |
ọ̄ | 014d+0323 | Ọ̄ | x014c+0323 | ^\ | rule(s): 4+19 | o macon underdot |
ō̱ | 014d+0331 | Ō̱ | x014c+0331 | ^\ | rule(s): 4+19 | o macon underbar |
ŏ̟ | 014f+031f | Ŏ̟ | x014e+031f | ^\ | rule(s): 4+19 | o breve underdot |
ọ̆ | 014f+0323 | Ọ̆ | x014e+0323 | ^\ | rule(s): 4+19 | o breve underdot |
ŏ̱ | 014f+0331 | Ŏ̱ | x014e+0331 | ^\ | rule(s): 4+19 | o breve underbar |
ǒ̟ | 01d2+031f | Ǒ̟ | x01d1+031f | ^\ | rule(s): 4+19 | o caron underdot |
ọ̌ | 01d2+0323 | Ọ̌ | x01d1+0323 | ^\ | rule(s): 4+19 | o caron underdot |
ǒ̱ | 01d2+0331 | Ǒ̱ | x01d1+0331 | ^\ | rule(s): 4+19 | o caron underbar |
ò̟ | 00f2+031f | Ò̟ | x00d2+031f | ;\ | rule(s): 4+18 | o grave underdot |
ọ̀ | 00f2+0323 | Ọ̀ | x00d2+0323 | ;\ | rule(s): 4+18 | o grave underdot |
ò̱ | 00f2+0331 | Ò̱ | x00d2+0331 | ;\ | rule(s): 4+18 | o grave underbar |
ø | 00F8 | Ø | 00D8 | \ | rule(s): 4 | o slash |
ọ | 1ecd | Ọ | 1ecc | \ | rule(s): 4 | o underdot |
ọ́ | 1ecd+0301 | Ọ́ | 1ecc+0301 | @\ | rule(s): 4+17 | o underdot acute |
o̟ | 'o+031f | O̟ | 'O+031f | \ | rule(s): 4 | o underdot |
ọ | 'o+0323 | Ọ | 'O+0323 | \ | rule(s): 4 | o underdot |
o̱ | 'o+0331 | O̱ | 'O+0331 | \ | rule(s): 4 | o underbar |
ɶ | 0276 | Œ | 0152 | _o | rule(s): 22 | oe character |
œ | 0153 | Œ | 0152 | _o | rule(s): 22 | oe character |
ɔ | 0254 | Ɔ | 0186 | [ | rule(s): 14 | open o |
ɔ́ | 0254+0301 | Ɔ́ | 0186+0301 | @[ | rule(s): 14+17 | open o acute |
ɔ̂ | 0254+0302 | Ɔ̂ | 0186+0302 | ^[ | rule(s): 14+19 | open o circumflex |
ɔ̃ | 0254+0303 | Ɔ̃ | 0186+0303 | ^[ | rule(s): 14+19 | open o tilde |
ɔ̄ | 0254+0304 | Ɔ̄ | 0186+0304 | ^[ | rule(s): 14+19 | open o macon |
ɔ̆ | 0254+0306 | Ɔ̆ | 0186+0306 | ^[ | rule(s): 14+19 | open o breve |
ɔ̌ | 0254+030c | Ɔ̌ | 0186+030c | ^[ | rule(s): 14+19 | open o caron |
ɔ̀ | 0254+0300 | Ɔ̀ | 0186+0300 | ;[ | rule(s): 14+18 | open o grave |
ṕ | 1E55 | Ṕ | 1E54 | @p | rule(s): 17 | p acute |
ṕ | 'p+0301 | Ṕ | 'P+0301 | @p | rule(s): 17 | p acute |
ɾ | 027E | @r | rule(s): 22 | r fishhook | ||
š | 0161 | Š | 0160 | ^s | rule(s): 19 | s caron |
ṣ | 1E63 | Ṣ | 1E62 | % | rule(s): 6 | s underdot |
s̟ | 's+031f | S̟ | 'S+031f | % | rule(s): 6 | s underdot |
ş | 015f | Ş | 015e | % | rule(s): 6 | s underdotish |
ʃ | 0283 | Ɖ | 0189 | @s | rule(s): 22 | esh |
ß | 00df | ẟ | 1e9f | @% | rule(s): 5+17 | s sharp |
ť | 0165 | Ť | 0164 | ^t | rule(s): 19 | t caron |
ṯ | 1E6F | Ṯ | 1E6E | ;t | rule(s): 20 | t underbar |
ŧ | 0167 | Ŧ | 0166 | ;t | rule(s): 20 | t stroke |
ṭ | 1E6D | Ṭ | 1E6C | ;t | rule(s): 20 | t underdot |
t̟ | 't+031f | T̟ | 'T+031f | ;t | rule(s): 20 | t underdot |
ţ | 0163 | Ţ | 0162 | ;t | rule(s): 20 | t underdotish |
ú | 00fa | Ú | 00da | @u | rule(s): 17 | u acute |
ú | 'u+0301 | Ú | 'U+0301 | @u | rule(s): 17 | u acute |
ű | 0171 | Ű | 0170 | @@u | rule(s): 17 | u double acute |
û | 00fb | Û | 00db | ^u | rule(s): 19 | u circumflex |
ü | 00fc | Ü | 00dc | ^u | rule(s): 19 | u umlaut |
ũ | 0169 | Ũ | 0168 | ^u | rule(s): 19 | u tilde |
ū | 016b | Ū | 016a | ^u | rule(s): 19 | u macon |
ŭ | 016d | Ŭ | 016c | ^u | rule(s): 19 | u breve |
ǔ | 01d4 | Ǔ | 01d3 | ^u | rule(s): 19 | u caron |
û | 'u+0302 | Û | 'U+0302 | ^u | rule(s): 19 | u circumflex |
ũ | 'u+0303 | Ũ | 'U+0303 | ^u | rule(s): 19 | u tilde |
ū | 'u+0304 | Ū | 'U+0304 | ^u | rule(s): 19 | u macon |
ŭ | 'u+0306 | Ŭ | 'U+0306 | ^u | rule(s): 19 | u breve |
ǔ | 'u+030c | Ǔ | 'U+030c | ^u | rule(s): 19 | u caron |
ù | 00f9 | Ù | 00d9 | ;u | rule(s): 18 | u grave |
ù | 'u+0300 | Ù | 'U+0300 | ;u | rule(s): 18 | u grave |
ú̟ | 00fa+031f | Ú̟ | x00da+031f | @) | rule(s): 5+17 | u acute underdot |
ụ́ | 00fa+0323 | Ụ́ | x00da+0323 | @) | rule(s): 5+17 | u acute underdot |
ú̱ | 00fa+0331 | Ú̱ | x00da+0331 | @) | rule(s): 5+17 | u acute underbar |
û̟ | 00fb+031f | Û̟ | x00db+031f | ^) | rule(s): 5+19 | u circumflex underdot |
ụ̂ | 00fb+0323 | Ụ̂ | x00db+0323 | ^) | rule(s): 5+19 | u circumflex underdot |
û̱ | 00fb+0331 | Û̱ | x00db+0331 | ^) | rule(s): 5+19 | u circumflex underbar |
ü̟ | 00fc+031f | Ü̟ | x00dc+031f | ^) | rule(s): 5+19 | u umlaut underdot |
ụ̈ | 00fc+0323 | Ụ̈ | x00dc+0323 | ^) | rule(s): 5+19 | u umlaut underdot |
ü̱ | 00fc+0331 | Ü̱ | x00dc+0331 | ^) | rule(s): 5+19 | u umlaut underbar |
ũ̟ | 0169+031f | Ũ̟ | x0168+031f | ^) | rule(s): 5+19 | u tilde underdot |
ụ̃ | 0169+0323 | Ụ̃ | x0168+0323 | ^) | rule(s): 5+19 | u tilde underdot |
ũ̱ | 0169+0331 | Ũ̱ | x0168+0331 | ^) | rule(s): 5+19 | u tilde underbar |
ū̟ | 016b+031f | Ū̟ | x016a+031f | ^) | rule(s): 5+19 | u macon underdot |
ụ̄ | 016b+0323 | Ụ̄ | x016a+0323 | ^) | rule(s): 5+19 | u macon underdot |
ū̱ | 016b+0331 | Ū̱ | x016a+0331 | ^) | rule(s): 5+19 | u macon underbar |
ŭ̟ | 016d+031f | Ŭ̟ | x016c+031f | ^) | rule(s): 5+19 | u breve underdot |
ụ̆ | 016d+0323 | Ụ̆ | x016c+0323 | ^) | rule(s): 5+19 | u breve underdot |
ŭ̱ | 016d+0331 | Ŭ̱ | x016c+0331 | ^) | rule(s): 5+19 | u breve underbar |
ǔ̟ | 01d4+031f | Ǔ̟ | x01d3+031f | ^) | rule(s): 5+19 | u caron underdot |
ụ̌ | 01d4+0323 | Ụ̌ | x01d3+0323 | ^) | rule(s): 5+19 | u caron underdot |
ǔ̱ | 01d4+0331 | Ǔ̱ | x01d3+0331 | ^) | rule(s): 5+19 | u caron underbar |
ụ | 1ee5 | Ụ | 1ee4 | ) | rule(s): 5 | u underdot |
ụ́ | 1ee5+0301 | Ụ́ | 1ee4+0301 | @) | rule(s): 5+17 | u underdot acute |
u̟ | 'u+031f | U̟ | 'U+031f | ) | rule(s): 5 | u underdot |
ụ | 'u+0323 | Ụ | 'U+0323 | ) | rule(s): 5 | u underdot |
u̱ | 'u+0331 | U̱ | 'U+0331 | ) | rule(s): 5 | u underbar |
ù̟ | 00f9+031f | Ù̟ | x00d9+031f | ;) | rule(s): 5+18 | u grave underdot |
ụ̀ | 00f9+0323 | Ụ̀ | x00d9+0323 | ;) | rule(s): 5+18 | u grave underdot |
ù̱ | 00f9+0331 | Ù̱ | x00d9+0331 | ;) | rule(s): 5+18 | u grave underbar |
ʉ | 0289 | Ʉ | 0244 | ) | rule(s): 5 | u stroke |
ʉ́ | 0289+0301 | Ʉ́ | 044+0301 | @) | rule(s): 5+17 | u stroke acute |
ʉ̄ | 0289+0304 | Ʉ̄ | 044+0304 | ^) | rule(s): 5+19 | u stroke macron |
ʌ | 028C | Ʌ | 0245 | @v | rule(s): 22 | turned v |
ʋ | 028B | Ʋ | 01B2 | _v | rule(s): 22 | v hook |
ŵ | 0175 | Ŵ | 0174 | ^w | rule(s): 19 | w caron |
ẅ | 1E85 | Ẅ | 1E84 | ^w | rule(s): 19 | w umlaut |
ƴ | 01B4 | Ƴ | 01B3 | @y | rule(s): 22 | y hook |
ƶ | 01B6 | Ƶ | 01B5 | ;z | rule(s): 20 | z stroke |
ẓ | 1E93 | Ẓ | 1E92 | ;z | rule(s): 20 | z underdot |
z̟ | 'z+031f | Z̟ | 'Z+031f | ;z | rule(s): 20 | z underdot |
ʒ | 0292 | Ʒ | 01B7 | % | rule(s): 10 | ezh |
ʒ́ | 0292+0301 | Ʒ́ | 01b7+0301 | @% | rule(s): 10+17 | ezh acute |
ʒ̂ | 0292+0302 | Ʒ̂ | 01b7+0302 | ^% | rule(s): 10+19 | ezh circumflex |
ʒ̃ | 0292+0303 | Ʒ̃ | 01b7+0303 | ^% | rule(s): 10+19 | ezh tilde |
ʒ̄ | 0292+0304 | Ʒ̄ | 01b7+0304 | ^% | rule(s): 10+19 | ezh macon |
ʒ̆ | 0292+0306 | Ʒ̆ | 01b7+0306 | ^% | rule(s): 10+19 | ezh breve |
ǯ | 0292+030c | Ǯ | 01b7+030c | ^% | rule(s): 10+19 | ezh caron |
ʒ̀ | 0292+0300 | Ʒ̀ | 01b7+0300 | ;% | rule(s): 10+18 | ezh grave |
ʔ | 0294 | * | rule(s): 15 | glottal stop | ||
ʕ | 0295 | * | rule(s): 16 | rev glottal stop | ||
» | 00bb | 0 | extra | do_not_reverse | ||
« | 00ab | 8 | extra | do_not_reverse | ||
̀ | 0300 | *0300 | extra | mistake | ||
́ | 0301 | *0301 | extra | mistake | ||
̂ | 0302 | *0302 | extra | mistake | ||
̃ | 0303 | *0303 | extra | mistake | ||
̄ | 0304 | *0304 | extra | mistake | ||
̅ | 0305 | *0305 | extra | mistake | ||
̆ | 0306 | *0306 | extra | mistake | ||
̇ | 0307 | *0307 | extra | mistake | ||
̈ | 0308 | *0308 | extra | mistake | ||
̝ | 031d | *031d | extra | mistake | ||
̞ | 031e | *031e | extra | mistake | ||
̟ | 031f | *031f | extra | mistake |
Duxbury Systems already has braille translators for Hausa, Yoruba, Igbo, and Éwé. Those specific braille translators are still the ones to use for those languages. In fact, the chart above has many conflicts with those braille codes. This chart is meant to suggest a starting point for a regional braille code for other West African languages, many of which are used by small populations.
Original Research: Rhonda L. Hartell ed. 1993, "The Alphabets of Africa", Dakar: UNESCO and Summer Institute of Linguistics. Symbols Inventory: (combining the data into a single chart) by Lee Pearce 2/2003. Adapted for braille: (some reformatting and adding the last three columns) by David Holladay 9/2022.
This chart can be prepared in additional ways: without nation data, and the big chart data sorted by inkprint or braille. On top of that, each of these can be delivered in Word or pdf files upon request.
The most important thing to mention is that this table serves two functions simultaneously. It is designed to be read by people to let them understand that this is a braille system that can be used to produce braille for languages across Africa. The second purpose is to be read by a computer to automatically produce a braille translator for Duxbury DBT. Once this file is changed, a revised translation table can be prepared and tested in minutes. But this has a few consequences.
For example, there are often several ways of writing unusual characters in print. Each of these needs a separate line in this chart. One way of representing an underdot is as a letter followed by Unicode 031f. One sample had a letter followed by two 031f characters. This caused a braille error. Extra rules were added to clean up these extra characters. These rules say "extra" and "mistake" in the table.