Perso-Arabic Input Methods

And Making More Emacs Applications BIDI Aware

Document #PLPC-180063
Version 0.1
November 02, 2021
This Document is Available on-line at:
http://www.by-star.net/PLPC/180063
Mohsen Banan — محسن بنان
Email:
emacs@mohsen.1.banan.byname.net

Contours Of This Presentation

A quick overview of:

  1. Perso-Arabic Scripts
  2. Persian Input Methods
    • farsi-isiri-9147 — farsi-transliterate-banan
  3. Making More Emacs Applications BIDI (Bidirectional) Aware
    • Problems and Challenges For Emacs Developers
  4. Persian Blee (By* Libre-Halaal Emacs Environment)
    • Towards a complete convivial Persian digital environment
    • Direction statements and preview of coming attractions
  5. Pointers and References

Contours Of This Presentation

And Intended Audience

Audiance Perso-Arabic Writer Non Perso-Arabic Writer
Emacs User: X X X X — — —
Emacs Developer: X X X X X
Considering To Convert To Emacs: X — — —
Persian Blee User: X X X X X — — —

Shaping And Bidirectionality

Direction Shaped Alphabet Un-Shaped Alphabet Non-Alphabetical
Left-To-Right: Latin, Cyrillic, ... Traditional Chinese
Right-To-Left: Perso-Arabic Hebrew 
Bidirectional: Perso-Arabic Hebrew 
Top-To-Bottom: Old Chinese

Emacs: A Truely Multilingual Capable

Editor And Environment

Emacs Fully Supports Perso-Arabic Scripts:

Significance Of Emacs Support For Perso-Arabic

About Emacs Input Methods

Input Methods allow you to enter characters that are not supported by your keyboard. With Quail maps we can map ASCII key strings to multilingual characters. So, we can input any text from an ASCII keyboard.

Main facilities are:

Emacs Persian Input Methods

Emacs comes with two built-in Persian input methods:

farsi-isiri-9147:
A Persian keyboard based on the Islamic Republic of Iran’s ISIRI-9147 specification.

This is the traditional one-to-one mapping of keys on a computer keyboard to Persian letters.

farsi-transliterate-banan:
An intuitive transliteration keyboard for Farsi.

This is a more powerful method which converts sequences of characters into one letter. For example “kh” becomes خ.

Emacs Built In Documentation

Emacs is a self-documenting editor. Input methods’ keyboard layouts can be displayed with describe-input-method and BIDI is well documented in Emacs Manual.

Pointers To Code

The code for the quail keyboard mappings are at:

Complete Documentation

Complete Documentation For Persian Input Methods Is PLPC-120036:
http://mohsen.1.banan.byname.net/PLPC/120036

Persian Input Methods
For Emacs And More Broadly Speaking
شیوه‌هایِ درج به فارسی‌

Various Related Information Is Also Available At PersoArabic.org:
http://www.persoarabic.org

Ramification Of BIDI And Perso-Arabic On Apps

BIDI And Perso-Arabic related glitches (or more than glitches) in various Emacs Apps:

Making More Emacs Applications

BIDI And Perso-Arabic Aware

Emacs Native Markup Language - ENML:

A Model For Apps Development

Let’s put support for BIDI in an apps dev framework that all Emacs apps can use.

About ByStar And BISOS

http://www.by-star.net

The Libre-Halaal By* (ByStar) Digital Ecosystem

For Preservation Of The Individual’s Autonomy and Privacy

A Moral Alterantive To The Proprietary American Digital Ecosystem

http://www.by-star.net/PLPC/180054

About Blee And Persian Blee

Blee: ByStar Libre-Halaal Emacs Environment is full integration of:

Persian Blee: Blee for Persian Speakers