Hello HN, I'm pythonbrad and a core maintainer of Afrim - an input method engine for African languages.<p>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<p>Additionally, Afrim offers the following features [1]:
- Dataset easily customizable
- Keyboard layout independent
- Auto completion, autocorrection and autosuggestion
- Support all sequential codes<p>Technical details [2]:
Afrim is written in Rust and his architecture is inspired of RIME.<p>What's next?
- Offer an android frontend of the Afrim (in development) [3]
- Support more African input methods as possible<p>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.<p>--------------
[1] <a href="https://github.com/pythonbrad/afrim?tab=readme-ov-file#features">https://github.com/pythonbrad/afrim?tab=readme-ov-file#featu...</a>
[2] <a href="https://pythonbrad.github.io/afrim-man/for_developers" rel="nofollow">https://pythonbrad.github.io/afrim-man/for_developers</a>
[3] <a href="https://github.com/pythonbrad/afrim-keyboard/">https://github.com/pythonbrad/afrim-keyboard/</a>
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.<p>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.<p>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).<p>Good luck!<p>[1] <a href="https://github.com/pythonbrad/afrim-keyboard/?tab=readme-ov-file#afrim-keyboard">https://github.com/pythonbrad/afrim-keyboard/?tab=readme-ov-...</a>
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.<p>I think the product is a great technological achievement, but...<p>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.
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.
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?)<p>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?)<p>I watched the video - <a href="https://github.com/pythonbrad/afrim-keyboard/">https://github.com/pythonbrad/afrim-keyboard/</a> - but don't understand. A latin keyboard is used, but it produces some other characters.
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.
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?
I added a FAQ[1] to answer some common questions.<p>For more reading, there is an article[2] who have similarities with what we want to achieve.<p>Disclaimer: We discovered the article 01 year after the development.<p>[1]<a href="https://github.com/pythonbrad/afrim/blob/main/FAQ.md">https://github.com/pythonbrad/afrim/blob/main/FAQ.md</a><p>[2]<a href="https://hughandbecky.us/Hugh-CV/talk/2015-africa-assessing-the-difficulty-of-text-input/" rel="nofollow">https://hughandbecky.us/Hugh-CV/talk/2015-africa-assessing-t...</a>
I'm wondering what problem you experienced that this is a solution for.<p>"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.
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?
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.