-
Notifications
You must be signed in to change notification settings - Fork 0
Arabizi Mapping
mmaher88 edited this page Mar 9, 2026
·
1 revision
Complete mapping of Latin characters to Arabic script used by Laren.
Numbers are used in Arabizi to represent Arabic letters that have no Latin equivalent:
| Input | Arabic | Name | Example |
|---|---|---|---|
2 |
ء أ إ ق | Hamza, Alef variants, Qaf |
2amar → قمر |
3 |
ع | Ain |
3arab → عرب |
5 |
خ | Kha |
5alas → خلاص |
6 |
ط | Taa (emphatic) |
6abee3i → طبيعي |
7 |
ح | Haa |
7abibi → حبيبي |
8 |
ق | Qaf |
8alb → قلب |
9 |
ص | Sad |
9abr → صبر |
| Input | Arabic | Notes |
|---|---|---|
b |
ب | |
t |
ت ط | Both taa and emphatic taa |
g |
ج | Egyptian pronunciation |
j |
ج | |
d |
د ض | Both dal and dad |
r |
ر | |
z |
ز ظ ذ | Zayn, dhaa, dhal |
s |
س ص | Both seen and sad |
f |
ف | |
q |
ق | |
k |
ق ك | Both qaf and kaf |
l |
ل | |
m |
م | |
n |
ن | |
h |
ه ح | Both ha and haa |
w |
و | |
y |
ي | |
p |
ب | (no P in Arabic) |
v |
ف | (no V in Arabic) |
x |
خ | |
c |
ك |
Vowels have a special SKIP option — Arabic doesn't write short vowels, so SKIP produces no output character:
| Input | Arabic | Notes |
|---|---|---|
a |
∅ ا أ ى ه ة | SKIP + alef + hamza + maqsura + ha + ta marbuta |
i |
∅ ي ا أ إ | SKIP + ya + alef variants |
u |
∅ و أ | SKIP + waw + hamza |
o |
∅ و أ | Same as u
|
e |
∅ ي ا أ إ | Same as i
|
Multi-character combinations (matched before single characters):
| Input | Arabic | Notes |
|---|---|---|
sh |
ش | Sheen |
kh |
خ | Kha |
gh |
غ | Ghain |
th |
ث ذ | Tha or Dhal |
dh |
ذ ض | Dhal or Dad |
aa |
ا آ | Long alef / alef madda |
ee |
ي | Long ya |
oo |
و | Long waw |
ou |
و | Waw |
| Input | Arabic | Notes |
|---|---|---|
3' |
غ | Ghain (alternative) |
7' |
خ | Kha (alternative) |
6' |
ظ | Dhaa (alternative) |
9' |
ض | Dad (alternative) |
d' |
ذ | Dhal (alternative) |
t' |
ث | Tha (alternative) |
s' |
ش | Sheen (alternative) |
Typing a letter twice maps to a single Arabic letter (with implied shadda):
| Input | Arabic |
|---|---|
bb |
ب |
tt |
ت ط |
dd |
د ض |
rr |
ر |
ss |
س ص |
ff |
ف |
kk |
ك |
ll |
ل |
mm |
م |
nn |
ن |
yy |
ي |
ww |
و |
zz |
ز |
gg |
ج |
hh |
ه |
flowchart TD
A["Input at position N"] --> B{"Try longest match first"}
B -->|"3+ chars: 3', 7', etc."| C["Apostrophe variants"]
B -->|"2 chars: sh, kh, th, etc."| D["Digraphs"]
B -->|"2 chars: bb, tt, etc."| E["Doubled consonants"]
B -->|"1 char"| F["Single mappings"]
B -->|"1 digit"| G["Number mappings"]
C --> H["For each Arabic option:<br/>recurse at position N+2 or N+3"]
D --> H
E --> H
F --> I["For each Arabic option:<br/>recurse at position N+1"]
G --> I
style A fill:#e1f5fe
style H fill:#c8e6c9
style I fill:#c8e6c9