summaryrefslogtreecommitdiff
path: root/leim
diff options
context:
space:
mode:
authorMohsen BANAN <libre@mohsen.1.banan.byname.net>2012-03-09 14:18:25 +0200
committerEli Zaretskii <eliz@gnu.org>2012-03-09 14:18:25 +0200
commit4f96ea3f4fbe8950c0d281da836897fb8394a812 (patch)
treee7e586ac09004662fbea0746a0ed6ca8374d9613 /leim
parent3f018d6d392cacb025c8de92bfabf4d7a92ade52 (diff)
downloademacs-4f96ea3f4fbe8950c0d281da836897fb8394a812.tar.gz
Update the Persian input methods.
leim/quail/persian.el: Update which includes: (1) full compliance to ISIRI-6219, forbiden characters were eliminated and missing characters were added; (2) layer 3 of ISIRI-9147 is now implemented with a '\' prefix; (3) double entry of characters which were postfixed with 'h' is now supported; (4) lots of comment and additional pointers have been added.
Diffstat (limited to 'leim')
-rw-r--r--leim/ChangeLog9
-rw-r--r--leim/quail/persian.el380
2 files changed, 308 insertions, 81 deletions
diff --git a/leim/ChangeLog b/leim/ChangeLog
index 39ba53201da..a0ea53468e3 100644
--- a/leim/ChangeLog
+++ b/leim/ChangeLog
@@ -1,3 +1,12 @@
+2012-03-09 Mohsen BANAN <libre@mohsen.1.banan.byname.net>
+
+ * quail/persian.el: Update which includes: (1) full compliance to
+ ISIRI-6219, forbiden characters were eliminated and missing
+ characters were added; (2) layer 3 of ISIRI-9147 is now
+ implemented with a '\' prefix; (3) double entry of characters
+ which were postfixed with 'h' is now supported; (4) lots of
+ comment and additional pointers have been added.
+
2011-12-15 Kenichi Handa <handa@m17n.org>
* quail/ethiopic.el ("ethiopic"): Do not refer to
diff --git a/leim/quail/persian.el b/leim/quail/persian.el
index d006e83aa71..8da42b75f31 100644
--- a/leim/quail/persian.el
+++ b/leim/quail/persian.el
@@ -2,8 +2,8 @@
;; Copyright (C) 2011-2012 Free Software Foundation, Inc.
-;; Author: Mohsen BANAN <libre@mohsen.banan.1.byname.net>
-;; http://mohsen.banan.1.byname.net/contact
+;; Author: Mohsen BANAN <libre@mohsen.1.banan.byname.net>
+;; http://mohsen.1.banan.byname.net/contact
;; Keywords: multilingual, input method, Farsi, Persian, keyboard
@@ -27,12 +27,15 @@
;;; Commentary:
;;
;; This file contains a collection of input methods for
-;; Persian languages - Farsi, Urdu, Pashto (Afghani), ...
+;; Persian languages (Farsi, Urdu, Pashto/Afghanic, ...)
;;
;; At this time, the following input methods are specified:
;;
-;; - (farsi) Persian Keyboard based on Islamic Republic of Iran's ISIR-9147
-;; - (farsi-translit) Intuitive transliteration keyboard layout for Persian
+;; - (farsi-isiri-9149) Persian Keyboard based on Islamic Republic of Iran's ISIR-9147
+;; - (farsi-transliterate-banan) An intuitive transliteration keyboard for Farsi
+;;
+;; Additional documentaion for these inpput methods can be found at:
+;; http://www.persoarabic.org/PLPC/120036
;;
;;; Code:
@@ -42,42 +45,71 @@
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
-;; farsi
+;; farsi-isiri-9147
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; The keyboard mapping defined here is based on:
;;
-;; Institute of Standards and Industrial Research of Iran
-;; Information Technology – Layout of Persian Letters and Symbols on Computer Keyboards
-;; ISIRI 9147 -- 1st edition
-;; http://www.isiri.org/UserStd/DownloadStd.aspx?id=9147
+;; Institute of Standards and Industrial Research of Iran
+;; Information Technology – Layout of Persian Letters and Symbols
+;; on Computer Keyboards
+;; ISIRI 9147 -- 1st edition
+;; http://www.isiri.org/UserStd/DownloadStd.aspx?id=9147
+;;
+;; The specification is also republished at
+;; http://www.farsiweb.ir/wiki/Image:Isiri-9147.pdf
+;; and various other sites.
+;;
+;; ISIRI-6219 is also relevant.
+;;
+;; Layers 1, 2 and 3 of ISIRI-9147 are fully implemented with the
+;; exception of the Backslash, Alt-Backslash, Shift-Space and
+;; Alt-Space keys.
+;;
+;; The Backslash key is used to replace کلید با دگر ساز راست‌ -- the Alt or
+;; Meta key.
;;
-;; Only layers 1 and 2 of ISIRI-9147 are applicable to emacs.
+;; Layer 3 is then entered with the Backslash key and Layer 3 is
+;; implemented as two letter keys as specified in ISIRI-9147.
;;
-;; This input method was built using the Farsi table in X Keyboard Configuration Data Base.
+;; The character corresponding to Backslash is entered with Backslash-Backslash.
+;; Alt-Backslash has been moved to Backslash-r.
+;; Alt-Space has been moved to Backslash-t.
+;; Shift-Space has been moved to Backslash-y.
;;
-;; 0) Selected gnome keyboard "USA"
-;; 1) Created a list of all keys
-;; 2) Selected gnome keyboard "Iran"
-;; 3) For each key just press it and get the mapped persian character
+;; With these modifications, farsi-isiri-9147 is a full implementation
+;; of ISIRI-9147. Additionally, these modifications allow for this
+;; implementation to be ascii input stream based -- in addition to
+;; being a keyboard layout.
+;;
+;; If a key on Layer 1 was reserved to replace دگر ساز راست‌ (the Alt
+;; or Meta key), then farsi-isiri-9147 could have claimed full
+;; compliance -- without the need for the above description. Perhaps
+;; this can be considered a flaw in the base ISIRI-9147 specification
+;; to be addressed in the next revision.
;;
(quail-define-package
- "farsi" "Farsi" " ف" nil "Farsi input method.
+ "farsi-isiri-9147" "Farsi" " ف" nil "Farsi input method.
-Based on ISIRI-9149 Layout of Persian Letters and Symbols on Computer Keyboards.
+Based on ISIRI-9147 Layout of Persian Letters and Symbols on Computer Keyboards.
" nil t t t t nil nil nil nil nil t)
+;; Note: the rows of keys below are enclosed in Left-To-Right Override
+;; embedding, to prevent them from being reordered by the Emacs
+;; display engine.
+
+
;; +----------------------------------------------------------------+
-;; | ۱! | ۲٬ | ۳٫ | ۴﷼ | ۵٪ | ۶× | ۷، | ۸* | ۹) | ۰( | -ـ | =+ | `÷ |
+;; ‭| ۱! | ۲٬ | ۳٫ | ۴﷼ | ۵٪ | ۶× | ۷، | ۸* | ۹( | ۰) | -ـ | =+ | `÷ |‬
;; +----------------------------------------------------------------+
-;; | ضْ| صٌ| ثٍ| قً| فُ| غِ| عَ| هّ| خ] | ح[ | ج} | چ{ |
+;; ‭| ضْ| صٌ| ثٍ| قً| فُ| غِ| عَ| هّ| خ] | ح[ | ج{ | چ} |‬
;; +------------------------------------------------------------+
-;; | شؤ | سئ | یي | بإ | لأ | اآ | تة | ن» | م« | ک: | گ؛ | \| |
+;; ‭| ش‌ؤ | س‌ئ | ی‌ي | ب‌إ | لأ | اآ | ت‌ة | ن« | م» | ک: | گ؛ | \| |‬
;; +-----------------------------------------------------------+
-;; | ظك | طٓ| زژ | رٰ| ذB | دٔ| پء | و> | .< | /؟ |
+;; ‭| ظ‌ك | طٓ| زژ | رٰ| ذB | دٔ| پء | و< | .> | /؟ |‬
;; +-------------------------------------------+
(quail-define-rules
@@ -93,7 +125,7 @@ Based on ISIRI-9149 Layout of Persian Letters and Symbols on Computer Keyboards.
("0" ?۰)
("-" ?-)
("=" ?=)
- ;;("`" ?‍\)) ;; اتصال مجازى
+ ("`" ?\u200D) ;; ZWJ -- ZERO WIDTH JOINER اتصال مجازى
("q" ?ض)
("w" ?ص)
("e" ?ث)
@@ -117,7 +149,7 @@ Based on ISIRI-9149 Layout of Persian Letters and Symbols on Computer Keyboards.
("l" ?م)
(";" ?ک)
("'" ?گ)
- ("\\" ?\\) ;; خط اريب وارو
+
("z" ?ظ)
("x" ?ط)
("c" ?ز)
@@ -170,93 +202,204 @@ Based on ISIRI-9149 Layout of Persian Letters and Symbols on Computer Keyboards.
("X" ?ٓ)
("C" ?ژ)
("V" ?ٰ)
- ;; ("B" ?‌‌) ;; فاصلهً مجازى
+ ("B" ?\u200C) ;; ZWNJ -- ZERO WIDTH NON-JOINER فاصلهٔ مجازى
("N" ?ٔ) ;; همزه فارسى بالا
("M" ?ء) ;; harf farsi hamzeh
("<" ?>)
(">" ?<)
("?" ?؟)
+
+ ;; Level 3 Entered with \
+ ;;
+ ("\\" ?\\) ;; خط اريب وارو
+ ("\\\\" ?\\)
+ ("\\~" ?\u007E)
+ ("\\1" ?\u0060)
+ ("\\2" ?\u0040)
+ ("\\3" ?\u0023)
+ ("\\4" ?\u0024)
+ ("\\5" ?\u0025)
+ ("\\6" ?\u005E)
+ ("\\7" ?\u0026)
+ ("\\8" ?\u2022)
+ ("\\9" ?\u200E)
+ ("\\0" ?\u200F)
+ ("\\-" ?\u005F)
+ ("\\+" ?\u2212)
+ ("\\q" ?\u00B0)
+ ;;\\w" ?\u0000)
+ ("\\e" ?\u20AC)
+ ("\\r" ?\u2010) ;; replacement for Alt-BSL
+ ("\\t" ?\u00A0) ;; replacement for ALT-SPC
+ ("\\y" ?\u200C) ;; replacement for SHIFT-SPC
+ ;;("\\u" ?\u0000)
+ ("\\i" ?\u202D)
+ ("\\o" ?\u202E)
+ ("\\p" ?\u202C)
+ ("\\[" ?\u202A)
+ ("\\]" ?\u202B)
+ ;;("\\a" ?\u0000)
+ ;;("\\s" ?\u0000)
+ ("\\d" ?\u0649)
+ ;;("\\f" ?\u0000)
+ ;;("\\g" ?\u0000)
+ ("\\h" ?\u0671)
+ ;;("\\j" ?\u0000)
+ ("\\k" ?\uFD3E)
+ ("\\l" ?\uFD3F)
+ ("\\;" ?\u003B)
+ ("\\'" ?\u0022)
+ ;;("\\z" ?\u0000)
+ ;;("\\x" ?\u0000)
+ ;;("\\c" ?\u0000)
+ ("\\v" ?\u0656)
+ ("\\b" ?\u200D)
+ ("\\n" ?\u0655)
+ ("\\m" ?\u2026)
+ ("\\," ?\u002C)
+ ("\\." ?\u0027)
+ ("\\?" ?\u003F)
+ ;;("\\\\" ?\u2010) ;; Moved to backslash r to leave room for BSL-BSL
)
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
-;; farsi-translit
+;; farsi-transliterate-banan
+;;
+;; Given a Qwerty keyboard, use Persian-to-Latin transliteration knowledge
+;; to reverse transliterate in persian
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
-;;; This is a persian/farsi transliteration keyboard designed
-;;; for people who:
-;;; - Know how to write in farsi
-;;; - Are comfortable with the qwerty keyboard
-;;; - Are familiar with two letter phonetic mapping to persian characters
-;;; (e.g.: gh, kh, ch, sh, zh, hh, lh)
+;;; See http://www.persoarabic.org/PLPC/120036 document for more complete
+;;; documentation of keyboard bindings and usage instructions.
;;;
-;;; This translit keyboard is designed to be intuitive such that
-;;; mapping are easy and natural to remember for a persian writer.
-;;; For some persian characters there are multiple ways of inputting
-;;; the same character.
-;;;
-;;; The letter 'h' is used for a number of two character mappings,
-;;; this means that some character sequence inputs need to be repeated
-;;; followed by a backspace followed by the 'h'.
-;;; For example: سحر = 's' 's' '<bs>' 'h' 'h' 'r'
-;;; In practice such sequences are rare.
-;;;
-
+;;
+;; ISIRI-9147 Persian keyboard is generally not well suited for Iranian-Expatriates
+;; working/living in the West.
+;;
+;; The qwetry keyboard is usually second nature to Persian speaking expatriates and they
+;; don't want to learn/adapt to ISIRI-9147. They expect software to adapt to them.
+;;
+;; That is what the ``Banan Multi-Character (Reverse) Transliteration Persian Input Method'' does.
+;;
+;; The typical profile of the user is assumed to be one who:
+;;
+;; - can write in farsi (not just speak it).
+;; - is fully comfortable with a qwerty latin keyboard.
+;; - is not familiar with isir-9147 and does not wish to be trained.
+;; - communicatates and writes in a mixed globish/persian -- not pure persian.
+;; - is intuitively familiar with transliteration of farsi/persian into latin based on two letter
+;; phonetic mapping to persian characters (e.g., gh ق -- kh خ -- sh ش -- ch چ -- zh ژ.
+;;
+;; This transliteration keyboard is designed to be intuitive such that
+;; mapping are easy and natural to remember for a persian writer.
+;; It is designed to be equivalent in capability to farsi-isiri-9147
+;; and provide for inputing all characters enumerated in ISIRI-6219.
+;;
+;; farsi-transliterate-banan is of course phonetic oriented. But it is very different from
+;; pinglish. Pinglish is word oriented where you sound out the word with latin letters --
+;; incuding the vowels. farsi-transliterate-banan is letter oriented where you enter the
+;; latin letter/letters closest to the persian letter. And usually omit vowels.
+;;
+;; For some persian characters there are multiple ways of inputing
+;; the same character. For example both ``i'' and ``y'' produce ی.
+;; For یک ``yk'', ``y'' is more natural and for این ``ain'', ``i'' is more natural.
+;;
+;; The more frequently used keys are mapped to lower case. The less frequently used letter moves to
+;; upper case. For example: ``s'' is س and ``S'' is ص. ``h'' is ح and ``H''
+;; is ه.
+;;
+;; Multi-character input is based on \, &, and / prefix
+;; characters. The letter 'h' is used as a postfix for the following two character mappings:
+;; gh ق -- kh خ -- sh ش -- ch چ -- zh ژ -- Th ة -- Yh ى.
+;;
+;;
+;; Prefix letter \ is used for two character inputs when an alternate form of a letter
+;; is desired for exampe \% is: ‌÷ when % is: ٪.
+;;
+;; Prefix letter & is used for multi-character inputs when special characters are
+;; desired based on their abbreviate name. For example you can enter &lrm; to enter the
+;; ``LEFT-TO-RIGHT MARK'' character.
+;;
+;; Prefix letter / is used to provide two characters. / is: ``ZERO WIDTH NON-JOINER''
+;; and // is /.
+;;
+;; The letter 'h' is used in a number of two character postfix mappings,
+;; for example ``sh'' ش. So if you need the sequence of ``s'' and ``h'' you
+;; need to repeat the ``s''. For example: سحر = 's' 's' 'h' 'r'.
+;;
(quail-define-package
- "farsi-translit" "Farsi" "پ" t
+ "farsi-transliterate-banan" "Farsi" "ب" t
"Intuitive transliteration keyboard layout for persian/farsi.
" nil t t t t nil nil nil nil nil t)
(quail-define-rules
- ("a" ?ا)
- ("A" ?آ) ;; alef madde
- ("b" ?ب)
- ("p" ?پ)
+;;;;;;;;;;; isiri-6219 Table 5 -- جدول ۵ - حروِفِ اصلیِ فارسی
+ ("W" ?ء) ;; hamzeh
+ ("A" ?آ) ;; U+0622 & ARABIC LETTER ALEF WITH MADDA ABOVE & الف با کلاه
+ ("a" ?ا) ;; U+0627 & ARABIC LETTER ALEF & الف
+ ("\\a" ?أ)
+ ("b" ?ب) ;; U+0628 & ARABIC LETTER BEH &
+ ("p" ?پ) ;; U+067e & ARABIC LETTER PEH &
("t" ?ت)
+ ("tt" ?ت)
("c" ?ث)
+ ("cc" ?ث)
("j" ?ج)
("ch" ?چ)
- ("hh" ?ح)
+ ("h" ?ح)
("kh" ?خ)
("d" ?د)
("Z" ?ذ)
("r" ?ر)
("z" ?ز)
+ ("zz" ?ز)
("zh" ?ژ)
("s" ?س)
+ ("ss" ?س)
("sh" ?ش)
("S" ?ص)
("x" ?ض)
("T" ?ط)
+ ("TT" ?ط)
("X" ?ظ)
("w" ?ع)
- ("Q" ?غ)
+ ("q" ?غ)
("f" ?ف)
- ("q" ?ق)
+ ("Q" ?ق)
("gh" ?ق)
("k" ?ک)
- ("K" ?ك) ;; Arabic kaf
+ ("kk" ?ک)
("g" ?گ)
+ ("gg" ?گ)
("l" ?ل)
- ("lh" ?ﻻ)
("m" ?م)
("n" ?ن)
("v" ?و)
- ("V" ?ؤ)
("u" ?و)
+ ("V" ?ؤ)
("H" ?ه)
- ("h" ?ه)
- ("th" ?ة) ;; ta marbuteh
- ("yh" ?ۀ) ;; he ye
- ("y" ?ى)
- ("i" ?ي)
+ ("y" ?ی)
+ ("i" ?ی)
("I" ?ئ)
+
+;;;;;;;;;;; isiri-6219 Table 6 -- جدول ۶ - حروِفِ عربی
+ ("F" ?إ)
+ ("D" ?\u0671) ;; (ucs-insert #x0671)ٱ named: حرفِ الفِ وصل
+ ("K" ?ك) ;; Arabic kaf
+ ("Th" ?ة) ;; ta marbuteh
+ ("Y" ?ي)
+ ("YY" ?ي)
+ ("Yh" ?ى)
+
+;;;;;;;;;;; isiri-6219 Table 4 -- جدول ۴ - ارقام و علائم ریاضی
+ ("0" ?۰)
("1" ?۱)
("2" ?۲)
("3" ?۳)
@@ -266,31 +409,106 @@ Based on ISIRI-9149 Layout of Persian Letters and Symbols on Computer Keyboards.
("7" ?۷)
("8" ?۸)
("9" ?۹)
- ("0" ?۰)
- ("F" ?إ)
- ("G" ?أ)
+ ("\\/" ?\u066B) ;; (ucs-insert #x066B)٫ named: ممیزِ فارسی
+ ("\\," ?\u066C) ;; (ucs-insert #x066C)٬ named: جداکننده‌ی هزارهای فارسی
+ ("%" ?\u066A) ;; (ucs-insert #x066A)٪ named: درصدِ فارسی
+ ("+" ?\u002B) ;; (ucs-insert #x002B)+ named: علامتِ به‌اضافه
+ ("-" ?\u2212) ;; (ucs-insert #x2212)− named: علامتِ منها
+ ("\\*" ?\u00D7) ;; (ucs-insert #x00D7)× named: علامتِ ضرب
+ ("\\%" ?\u007F) ;; (ucs-insert #x00F7)÷ named: علامتِ تقسیم
+ ("<" ?\u003C) ;; (ucs-insert #x003C)< named: علامتِ کوچکتر
+ ("=" ?\u003D) ;; (ucs-insert #x003D)= named: علامتِ مساوی
+ (">" ?\u003E) ;; (ucs-insert #x003E)> named: علامتِ بزرگتر
- ("~" ?ّ) ;; tashdid ;; تشديد فارسى
- ("`" ?ٓ)
- ("e" ?ِ) ;; zir زير فارسى -- فتحه
- ("E" ?ٍ) ;; eizan ;; دو زير فارسى -- تنوين جر
- ("#" ?ً) ;; ً tanvin nasb ;; دو زبر فارسى -- تنوين نصب
- ("@" ?ْ) ;; ساکن فارسى
- ("^" ?َ) ;; zbar ;; زبر فارسى -- فتحه
- ("o" ?ُ) ;; peesh ;; پيش فارسى -- ضمه
- ("O" ?ٌ) ;; دو پيش فارسى -- تنوين رفع
- ("?" ?؟) ;; alamat soal
- ("&" ?ٔ) ;; همزه فارسى بالا
- ("$" ?ء) ;; hamzeh
- ("%" ?÷) ;;
- ("*" ?×) ;;
- (";" ?؛) ;;
- (",h" ?،) ;; farsi
- (",h" ?,) ;; latin
+
+;;;;;;;;;;; isiri-6219 Table 2 -- جدول ۲ - علائم نقطه گذاریِ مشترک
+ ;;; Space
("." ?.) ;;
+ (":" ?\u003A) ;; (ucs-insert #x003A): named:
+ ("!" ?\u0021) ;; (ucs-insert #x0021)! named:
+ ("\\." ?\u2026) ;; (ucs-insert #x2026)… named:
+ ("\\-" ?\u2010) ;; (ucs-insert #x2010)‐ named:
+ ("-" ?\u002D) ;; (ucs-insert #x002D)- named:
+ ("|" ?|)
+ ;;("\\\\" ?\)
+ ("//" ?/)
+ ("*" ?\u002A) ;; (ucs-insert #x002A)* named:
+ ("(" ?\u0028) ;; (ucs-insert #x0028)( named:
+ (")" ?\u0029) ;; (ucs-insert #x0029)) named:
+ ("[" ?\u005B) ;; (ucs-insert #x005B)[ named:
+ ("[" ?\u005D) ;; (ucs-insert #x005D)] named:
+ ("{" ?\u007B) ;; (ucs-insert #x007B){ named:
+ ("}" ?\u007D) ;; (ucs-insert #x007D)} named:
+ ("\\<" ?\u00AB) ;; (ucs-insert #x00AB)« named:
+ ("\\>" ?\u00BB) ;; (ucs-insert #x00BB)» named:
+
+
+;;;;;;;;;;; isiri-6219 Table 3 -- جدول ۳ - علائم نقطه گذاریِ فارسی
+ ("," ?،) ;; farsi
+ (";" ?؛) ;;
+ ("?" ?؟) ;; alamat soal
("_" ?ـ) ;;
-)
+;;;;;;;;;;; isiri-6219 Table 1 -- جدول ۱ - نویسه‌های کنترلی
+ ;; LF
+ ;; CR
+ ("&zwnj;" ?\u200C) ;; (ucs-insert #x200C)‌ named: فاصله‌ی مجازی
+ ("/" ?\u200C) ;;
+ ("&zwj;" ?\u200D) ;; (ucs-insert #x200D)‍ named: اتصالِ مجازی
+ ("J" ?\u200D) ;;
+ ("&lrm;" ?\u200E) ;; (ucs-insert #x200E)‎ named: نشانه‌ی چپ‌به‌راست
+ ("&rlm;" ?\u200F) ;; (ucs-insert #x200F)‏ named: نشانه‌ی راست‌به‌چپ
+ ("&ls;" ?\u2028) ;; (ucs-insert #x2028)
 named: جداکننده‌ی سطرها
+ ("&ps;" ?\u2028) ;; (ucs-insert #x2029)
 named: جداکننده‌ی بندها
+ ("&lre;" ?\u202A) ;; (ucs-insert #x202A)‪ named: زیرمتنِ چپ‌به‌راست
+ ("&rle;" ?\u202B) ;; (ucs-insert #x202B) named: زیرمتنِ راست‌به‌چپ
+ ("&pdf;" ?\u202C) ;; (ucs-insert #x202C) named: پایانِ زیرمتن
+ ("&lro;" ?\u202D) ;; (ucs-insert #x202D) named: زیرمتنِ اکیداً چپ‌به‌راست
+ ("&rlo;" ?\u202D) ;; (ucs-insert #x202E) named: زیرمتنِ اکیداً راست‌به‌چپ
+ ("&bom;" ?\uFEFF) ;; (ucs-insert #xFEFF) named: نشانه‌ی ترتیبِ بایت‌ها
+
+
+;;;;;;;;;;; isiri-6219 Table 7 -- جدول ۷ - نشانه‌هایِ فارسی
+ ("^" ?َ) ;; zbar ;; زبر فارسى
+ ("e" ?ِ) ;; zir زير فارسى
+ ("o" ?ُ) ;; peesh ;; پيش فارسى -- ضمه
+ ("E" ?ٍ) ;; eizan ;; دو زير فارسى -- تنوين جر
+ ("#" ?ً) ;; دو زبر
+ ("O" ?ٌ) ;; دو پيش فارسى -- تنوين رفع
+ ("~" ?ّ) ;; tashdid ;; تشديد فارسى
+ ("@" ?ْ) ;; ساکن فارسى
+ ("U" ?\u0653) ;; (ucs-insert #x0653)ٓ named: مدِ فارسی
+ ("`" ?ٔ) ;; همزه فارسى بالا
+ ("C" ?\u0655) ;; (ucs-insert #x0655)ٕ named: همزه فارسى پایین
+ ("$" ?\u0670) ;; (ucs-insert #x0670)ٰ named: الفِ مقصوره‌ی فارسی
+
+
+;;;;;;;;;;; isiri-6219 Table 8 - Forbiden Characters -- جدول ۸ - نویسه‌هایِ ممنوع
+;; ;; he ye (ucs-insert 1728) kills emacs-24.0.90
+;; arabic digits 0-9
+
+
+;;;;;;; Latin Extensions
+ ("\\" ?\\) ;; خط اريب وارو
+ ("\\\\" ?\\)
+ ("\\~" ?~)
+ ("\\@" ?@)
+ ("\\#" ?#)
+ ("\\$" ?\uFDFC) ;; (ucs-insert #xFDFC)﷼ named:
+ ("\\^" ?^)
+ ("\\1" ?1)
+ ("\\2" ?2)
+ ("\\3" ?3)
+ ("\\4" ?4)
+ ("\\5" ?5)
+ ("\\6" ?6)
+ ("\\7" ?7)
+ ("\\8" ?8)
+ ("\\9" ?9)
+ ("\\0" ?0)
+
+)
+
;;; persian.el ends here