top | item 41427563

Show HN: A modern way to type in African languages

189 points| pythonbrad | 1 year ago |github.com

Hello HN, I'm pythonbrad and a core maintainer of Afrim - an input method engine for African languages.

Afrim want to simplify the typing in African languages and also digitalize the African typing systems. Basically, it wants to solve the problems encountered with current solutions: - slow typing - not easily configurable - keyboard layout dependent - constant bugs

Additionally, Afrim offers the following features [1]: - Dataset easily customizable - Keyboard layout independent - Auto completion, autocorrection and autosuggestion - Support all sequential codes

Technical details [2]: Afrim is written in Rust and his architecture is inspired of RIME.

What's next? - Offer an android frontend of the Afrim (in development) [3] - Support more African input methods as possible

I would like to have your opinions about this project. I have been working on it so far, and I would like to know how I can improve it.

-------------- [1] https://github.com/pythonbrad/afrim?tab=readme-ov-file#featu... [2] https://pythonbrad.github.io/afrim-man/for_developers [3] https://github.com/pythonbrad/afrim-keyboard/

85 comments

order

crazygringo|1 year ago

I've visited all the links and honestly still don't have the slightest idea what this input method does, or exactly what problem it's trying to solve, or why it's a good solution to the problem. I found the video [1] but it has no audio or explanations at all.

I also don't understand why you'd want phonetic input methods, rather than wanting to input your desired character directly. For languages like Chinese I understand because there are thousands of characters, but aren't most or all African writing systems based on small alphabets? I shudder to think of having to learn to input English phonetically.

So if you're looking for opinions, my first one is that your pages need to do a better job at explaining what current problems are (with multiple clear examples for each), where current solutions fail (with clear examples of how), and how your solution is different and better (again, with clear examples).

Good luck!

[1] https://github.com/pythonbrad/afrim-keyboard/?tab=readme-ov-...

kragen|1 year ago

> aren't most or all African writing systems based on small alphabets?

well, perhaps the most famous african writing system has a fairly large inventory of over 1000 characters, but it hasn't been widely used for about 2000 years due to religious persecution

the writing systems that are most widely used in africa are the latin alphabet and the arabic abjad, but as i tiresomely repeat every time the subject comes up, africa is immensely diverse, to the point that generalizations about africa are only slightly more useful than generalizations about non-elephant mammals

saylisteins|1 year ago

> I also don't understand why you'd want phonetic input methods

I'm from Morocco, and most people here (myself included) are accustomed to typing on an AZERTY (or QWERTY) keyboard. Typing in Arabic using a standard keyboard layout can be quite cumbersome and slow for us (Most people never took the time to learn it), using latin alphabet for us is just more practical, and doesn't require you to learn a new way to type.

In our daily communication, when we text, whether with friends or family, we often switch between English, French, or Moroccan dialects. When writing in Moroccan dialect, we frequently use a phonetic system (read in french way) that combines the Latin alphabet with numbers to represent specific sounds or letters that don’t have a direct equivalent in the Latin script.

For example:

    ق is replaced by "q"
    ع is replaced by "3"
    خ is replaced by "5" (though "kh" is more common)
    غ is replaced by "4" (or "gh")
    The rest is just a 1 to 1 conversion to how the letter sounds in french
    
Example phrase :

Bro, I woke up and had a sick breakfast.

Sat, 3ad fe9t o drabt wa7d ftor khatir.

snthpy|1 year ago

Great to see more support for African communities!

I have to concur with the previous comment though that I'm unclear as to what this adds.

fsndz|1 year ago

[deleted]

beAbU|1 year ago

It's interesting, having grown up in Africa, and lived there almost 35 years, reading, writing and speaking an African language, being surrounfed by at least 10 other African languages and seeing them written, that I have never ever in my entire life encountered this writing system.

I think the product is a great technological achievement, but...

I would warn against the generalisation of "African" in this context. It does not tell the full picture, and simplifies the rather complex and very ancient reality that is language on the continent of Africa.

teractiveodular|1 year ago

FWIW, the only languages supported appear to be Amharic (modern Ethiopian), Ge'ez (classic Ethiopian, basically only used in church liturgy today), and one rather obscure language (Nufi/Fefe, ~140k speakers) spoken in a small part of Cameroon. This is indeed a pretty long way from being a pan-African solution.

max_|1 year ago

You haven't seen Amharic on Ethiopian Airline planes?

The project supports many other languages which justifies the use of "African".

chungy|1 year ago

Africa is a very very big place. :)

pythonbrad|1 year ago

Thanks for your feedback, i will take it in account.

azernik|1 year ago

Comment on the documentation/README more than anything - I couldn't find anywhere a list of specific languages supported. That's a pretty important data point for any speaker of an African language hoping to use this IME. If the library supports only Amhari and Ge'ez (the only two languages mentioned specifically) it's extremely important to a Wolof or Swahili speaker to know that when evaluating if the IME is in a usable state for them.

pythonbrad|1 year ago

I understand your point, we should do a big work at the level of the documentation.

umanwizard|1 year ago

Isn’t Swahili compatible with ASCII (just like English)? Why would you need a special IME to write it?

avodonosov|1 year ago

Similar to other commenters, I am curious to know what is the problem with african languages? Can't you just make a button for each character in the alphabet? (The readme mentions it is a phonetic-based input method, so I assume African languages use alphabets, not some logograms, right?)

What is common for African languages that allows solving the problem for all of them together in one software package? (How meaningful, for example, whould be a software package for Eurasian languages?)

I watched the video - https://github.com/pythonbrad/afrim-keyboard/ - but don't understand. A latin keyboard is used, but it produces some other characters.

whatjadat2|1 year ago

As a "african" myself, living and working in africa for the last 46 years, and speaking 4 different african languages. I am struggling to understand what "problem" this is trying to solve? It's never been an issue to type in an "african" language. And what is meant by "african" There is a big difference between for example zulu from south africa and arabic in morocco. And then we are not even touching on the thousands of languages in between that in the rest of africa.

trompetenaccoun|1 year ago

Apart from Ethiopia, are there any places where they don't use either Latin or Arabic scripts in everyday life? There are technically a whole bunch of alphabets of course but they aren't used much afaik. Maybe the Tuareg script? Is that used by people in North Africa beyond bilingual signs?

firefoxd|1 year ago

There is Adlam for Fulani [1]. Widely spoken in west Africa. However, I'm still trying to familiarize myself with the writing system. The word for "yes" in fulani does not translate in writing. The best way I can write it is HIiiII. Imagine the lowercase i goes down in tone. Then the last two uppercase i shoots up. I don't know if any writing system supports this.

[1]: https://en.m.wikipedia.org/wiki/Adlam_script

saylisteins|1 year ago

North african here! For Moroccan arabic dialect, we mostly use latin alphabets and some numbers to replace some sounds/letters

lelanthran|1 year ago

I'm wondering what problem you experienced that this is a solution for.

"African languages" is not, in my experience, a single class of languages. There are large differences between the languages, with most of the northern languages borrowing heavily from Arabic, most of the central African/West African languages borrowing from French and the rest are different enough that they can't be considered dialects.

filleduchaos|1 year ago

What does that have to do with an IME library/project?

vfclists|1 year ago

Is this being done in collaboration with the Linguistics faculties of African universities?

cyph3rpvnk|1 year ago

Amahric, Ge'ez and "Ethiopic" are all the same alphabets, am I missing something? Ge'ez encompasses all of them including Tigrinya. Why not just have an expanded Ge'ez library?

juxtapose|1 year ago

It's interesting to see African input methods taking inspiration from a Chinese IME, RIME. Would like to know more about this!

zaik|1 year ago

How does this compare to IBus or Fcitx?

DazWilkin|1 year ago

I was intrigued by this and looked through the README for examples of Afrim being used and learn more about the problem it's solving and how but didn't find these.

fsndz|1 year ago

I couldn't understand what this is for and why it is useful. Gotta work on that documentation to make it more clear.