This is a post by our guest contributors, Ulrich Rebstock and Marvin Müller
The application AABC (African Alphabets of the Bayreuth Cluster) was developed for desktop devices and mobiles to provide a common linguistic base for all kinds of communication and transfer of information about African vernacular affairs, inside and outside the Cluster. The process of realization soon concentrated on two aspects: technical suitability and linguistic authenticity.
The “AABC” application is optimally adapted to the most common operating systems, namely Windows and macOS desktop devices as well as Android and iOS mobile devices. After the installation, all app keyboards are integrated into the respective operating system and are treated like all other keyboards, which enables them to be used in all common cases, and other apps and programs. For a list of all currently supported languages and scripts, you can visit our multilingual website.
On the technical side, each language with all its symbols, diacritics and letter variants is defined through JSON files. The major technical challenge here was to create a framework in which the JSON file of a language defines the locations of symbols simultaneously for all four operating systems. It was our goal from the beginning to minimize the manual effort necessary when creating new keyboards.
To achieve this, we created two distinct types of JSON files for each language:
The first is the “Assigning-File”, short AF, which assigns the symbols and diacritics of the language to the keyboard. Here we use a system of identifiers for each individual key and assign through this identifier a new symbol to each key, basically overwriting the standard symbol of the key. This is done four times for each key, on each for the “normal” keyboard site, for the “Shift-pressed” for the “Alt-pressed”, and for the “Shift+Alt-pressed” keyboard sites. This ensures that there is a sufficient number of possible keys for all important symbols. Diacritics and letter variants are assigned to the standard key symbol they belong to and can be activated through the “CAPS-LOCK” key. An additional new feature is the use of the top line of numbers for frequently used shortcuts in non-Latin keyboards on desktop devices. This allows the user all the usual comfort of shortcuts while using one of our keyboards.
The AF is used both for desktop devices as well as mobile devices. Since desktop devices have a physical keyboard that defines the keyboard layout for all languages, the AF is already sufficient in this case and no other file for the generation of a particular digital keyboard is needed.
Mobile devices, however, do not have this basis, so we needed to create a custom keyboard in order to display the languages. This is done by the “Layout-File”, short LF, that defines the design of the keyboard used for each individual language. This gave us the possibility to create on the one hand keyboards with ten keys per row, as used for most Latin-based languages, but also expand the keyboard to eleven or twelve keys per row if needed.
Together, the AF and LF then contain all necessary information to create a unique keyboard for every language on mobile devices. The custom keyboard also has two other core features: First, it uses a new system to display diacritics by displaying all diacritics and letter variants of a symbol permanently on an additional fifth row above the regular keys, without having to hold down the relevant key. This is especially useful for Ethiopian languages and dialects, where symbols can have up to 12 letter and vocal variants. Secondly, it enables the user to switch directly within the keyboard in use between previously selected languages of our app without having to open the app which facilitates the typing of multilingual texts considerably.
To summarize, the AABC application was developed with the goal to minimize manual efforts to create new languages while at the same time ensuring the optimal and authentic representation of each unique language. This has worked out very well and we are happy to support keyboard solutions for more than 40 languages by now. Our framework allows us to flexibly update and change languages, so that users’ feedback and suggestions regarding existing or missing languages are welcome.
Ulrich Rebstock / Marvin Müller