aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/leim/quail/persian.el124
1 files changed, 75 insertions, 49 deletions
diff --git a/lisp/leim/quail/persian.el b/lisp/leim/quail/persian.el
index 2915f362ee6..77f1a4cd293 100644
--- a/lisp/leim/quail/persian.el
+++ b/lisp/leim/quail/persian.el
@@ -1,8 +1,8 @@
1;;; persian.el --- Quail package for inputting Persian/Farsi keyboard -*- coding: utf-8; lexical-binding: t -*- 1;;; persian.el --- Quail package for inputting Persian/Farsi keyboard -*- coding: utf-8; lexical-binding: t -*-
2 2
3;; Copyright (C) 2011-2023 Free Software Foundation, Inc. 3;; Copyright (C) 2011-2022 Free Software Foundation, Inc.
4 4
5;; Author: Mohsen BANAN <libre@mohsen.1.banan.byname.net> 5;; Author: Mohsen BANAN <emacs@mohsen.1.banan.byname.net>
6;; URL: http://mohsen.1.banan.byname.net/contact 6;; URL: http://mohsen.1.banan.byname.net/contact
7 7
8;; Keywords: multilingual, input method, Farsi, Persian, keyboard 8;; Keywords: multilingual, input method, Farsi, Persian, keyboard
@@ -23,7 +23,7 @@
23;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. 23;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
24 24
25;;; Commentary: 25;;; Commentary:
26 26;;
27;; This file contains a collection of input methods for 27;; This file contains a collection of input methods for
28;; Persian languages (Farsi, Urdu, Pashto/Afghanic, ...) 28;; Persian languages (Farsi, Urdu, Pashto/Afghanic, ...)
29;; 29;;
@@ -395,6 +395,7 @@
395 ("u" ?و) 395 ("u" ?و)
396 ("V" ?ؤ) 396 ("V" ?ؤ)
397 ("h" ?ه) 397 ("h" ?ه)
398 ("Hh" ?ه) ;; to take care of هه -- hHh
398 ("y" ?ی) 399 ("y" ?ی)
399 ("i" ?ی) 400 ("i" ?ی)
400 ("I" ?ئ) 401 ("I" ?ئ)
@@ -402,7 +403,7 @@
402 403
403;;;;;;;;;;; isiri-6219 Table 6 -- جدول ۶ - حروِفِ عربی 404;;;;;;;;;;; isiri-6219 Table 6 -- جدول ۶ - حروِفِ عربی
404 ("F" ?إ) 405 ("F" ?إ)
405 ("D" ?\u0671) ;; (insert-char #x0671)ٱ named: حرفِ الفِ وصل 406 ("D" ?\u0671) ;; (ucs-insert #x0671)ٱ named: حرفِ الفِ وصل
406 ("K" ?ك) ;; Arabic kaf 407 ("K" ?ك) ;; Arabic kaf
407 ("Th" ?ة) ;; ta marbuteh 408 ("Th" ?ة) ;; ta marbuteh
408 ("Y" ?ي) 409 ("Y" ?ي)
@@ -421,40 +422,40 @@
421 ("8" ?۸) 422 ("8" ?۸)
422 ("9" ?۹) 423 ("9" ?۹)
423 424
424 ("\\/" ?\u066B) ;; (insert-char #x066B)٫ named: ممیزِ فارسی 425 ("\\/" ?\u066B) ;; (ucs-insert #x066B)٫ named: ممیزِ فارسی
425 ("\\," ?\u066C) ;; (insert-char #x066C)٬ named: جداکننده‌ی هزارهای فارسی 426 ("\\," ?\u066C) ;; (ucs-insert #x066C)٬ named: جداکننده‌ی هزارهای فارسی
426 ("%" ?\u066A) ;; (insert-char #x066A)٪ named: درصدِ فارسی 427 ("%" ?\u066A) ;; (ucs-insert #x066A)٪ named: درصدِ فارسی
427 ("+" ?\u002B) ;; (insert-char #x002B)+ named: علامتِ به‌اضافه 428 ("+" ?\u002B) ;; (ucs-insert #x002B)+ named: علامتِ به‌اضافه
428 ("-" ?\u2212) ;; (insert-char #x2212)− named: علامتِ منها 429 ("-" ?\u2212) ;; (ucs-insert #x2212)− named: علامتِ منها
429 ("\\*" ?\u00D7) ;; (insert-char #x00D7)× named: علامتِ ضرب 430 ("\\*" ?\u00D7) ;; (ucs-insert #x00D7)× named: علامتِ ضرب
430 ("\\-" ?\u00F7) ;; (insert-char #x00F7)÷ named: علامتِ تقسیم 431 ("\\-" ?\u00F7) ;; (ucs-insert #x00F7)÷ named: علامتِ تقسیم
431 ("<" ?\u003C) ;; (insert-char #x003C)< named: علامتِ کوچکتر 432 ("<" ?\u003C) ;; (ucs-insert #x003C)< named: علامتِ کوچکتر
432 ("=" ?\u003D) ;; (insert-char #x003D)= named: علامتِ مساوی 433 ("=" ?\u003D) ;; (ucs-insert #x003D)= named: علامتِ مساوی
433 (">" ?\u003E) ;; (insert-char #x003E)> named: علامتِ بزرگتر 434 (">" ?\u003E) ;; (ucs-insert #x003E)> named: علامتِ بزرگتر
434 435
435 436
436;;;;;;;;;;; isiri-6219 Table 2 -- جدول ۲ - علائم نقطه گذاریِ مشترک 437;;;;;;;;;;; isiri-6219 Table 2 -- جدول ۲ - علائم نقطه گذاریِ مشترک
437 ;;; Space 438 ;;; Space
438 ("." ?.) ;; 439 ("." ?.) ;;
439 (":" ?\u003A) ;; (insert-char #x003A): named: 440 (":" ?\u003A) ;; (ucs-insert #x003A): named:
440 ("!" ?\u0021) ;; (insert-char #x0021)! named: 441 ("!" ?\u0021) ;; (ucs-insert #x0021)! named:
441 ("\\." ?\u2026) ;; (insert-char #x2026)… named: 442 ("\\." ?\u2026) ;; (ucs-insert #x2026)… named:
442 ("\\-" ?\u2010) ;; (insert-char #x2010)‐ named: 443 ("\\-" ?\u2010) ;; (ucs-insert #x2010)‐ named:
443 ("-" ?\u002D) ;; (insert-char #x002D)- named: 444 ("-" ?\u002D) ;; (ucs-insert #x002D)- named:
444 ("|" ?|) 445 ("|" ?|)
445 ;;("\\\\" ?\) 446 ;;("\\\\" ?\)
446 ("//" ?/) 447 ("//" ?/)
447 ("*" ?\u002A) ;; (insert-char #x002A)* named: 448 ("*" ?\u002A) ;; (ucs-insert #x002A)* named:
448 ("(" ?\u0028) ;; (insert-char #x0028)( named: 449 ("(" ?\u0028) ;; (ucs-insert #x0028)( named:
449 (")" ?\u0029) ;; (insert-char #x0029)) named: 450 (")" ?\u0029) ;; (ucs-insert #x0029)) named:
450 ("[" ?\u005B) ;; (insert-char #x005B)[ named: 451 ("[" ?\u005B) ;; (ucs-insert #x005B)[ named:
451 ("[" ?\u005D) ;; (insert-char #x005D)] named: 452 ("[" ?\u005D) ;; (ucs-insert #x005D)] named:
452 ("{" ?\u007B) ;; (insert-char #x007B){ named: 453 ("{" ?\u007B) ;; (ucs-insert #x007B){ named:
453 ("}" ?\u007D) ;; (insert-char #x007D)} named: 454 ("}" ?\u007D) ;; (ucs-insert #x007D)} named:
454 ("\\<" ?\u00AB) ;; (insert-char #x00AB)« named: 455 ("\\<" ?\u00AB) ;; (ucs-insert #x00AB)« named:
455 ("\\>" ?\u00BB) ;; (insert-char #x00BB)» named: 456 ("\\>" ?\u00BB) ;; (ucs-insert #x00BB)» named:
456 ("N" ?\u00AB) ;; (insert-char #x00AB)« named: 457 ("N" ?\u00AB) ;; (ucs-insert #x00AB)« named:
457 ("M" ?\u00BB) ;; (insert-char #x00BB)» named: 458 ("M" ?\u00BB) ;; (ucs-insert #x00BB)» named:
458 459
459;;;;;;;;;;; isiri-6219 Table 3 -- جدول ۳ - علائم نقطه گذاریِ فارسی 460;;;;;;;;;;; isiri-6219 Table 3 -- جدول ۳ - علائم نقطه گذاریِ فارسی
460 ("," ?،) ;; farsi 461 ("," ?،) ;; farsi
@@ -463,24 +464,49 @@
463 ("_" ?ـ) ;; 464 ("_" ?ـ) ;;
464 465
465 466
466;;;;;;;;;;; isiri-6219 Table 1 -- جدول ۱ - نویسه‌های کنترلی 467;;;;;;;;;;; isiri-6219 Table 1 (plus bidi updates) - جدول ۱ - نویسه‌های کنترلی
467 ;; LF 468 ;; LF
468 ;; CR 469 ;; CR
469 ("&zwnj;" ?\u200C) ;; (insert-char #x200C)‌ named: فاصله‌ی مجازی 470 ("&zwnj;" ?\u200C) ;; (ucs-insert #x200C)‌ named: فاصله‌ی مجازی
470 ("/" ?\u200C) ;; 471 ("/" ?\u200C) ;;
471 ("&zwj;" ?\u200D) ;; (insert-char #x200D)‍ named: اتصالِ مجازی 472 ("&zwj;" ?\u200D) ;; (ucs-insert #x200D)‍ named: اتصالِ مجازی
472 ("J" ?\u200D) ;; 473 ("J" ?\u200D) ;;
473 ("&lrm;" ?\u200E) ;; (insert-char #x200E)‎ named: نشانه‌ی چپ‌به‌راست 474 ("&ls;" ?\u2028) ;; (ucs-insert #x2028)
 named: جداکننده‌ی سطرها
474 ("&rlm;" ?\u200F) ;; (insert-char #x200F)‏ named: نشانه‌ی راست‌به‌چپ 475 ("&ps;" ?\u2029) ;; (ucs-insert #x2029)
 named: جداکننده‌ی بندها
475 ("&ls;" ?\u2028) ;; (insert-char #x2028)
 named: جداکننده‌ی سطرها 476 ;;
476 ("&ps;" ?\u2028) ;; (insert-char #x2029)
 named: جداکننده‌ی بندها 477 ;; Byte Order Mark (Historic)
477 ("&lre;" ?\u202A) ;; (insert-char #x202A)‪ named: زیرمتنِ چپ‌به‌راست 478 ("&bom;" ?\uFEFF) ;; (ucs-insert #xFEFF) named: نشانه‌ی ترتیبِ بایت‌ها
478 ("&rle;" ?\u202B) ;; (insert-char #x202B) named: زیرمتنِ راست‌به‌چپ 479 ;; BIDI Controls
479 ("&pdf;" ?\u202C) ;; (insert-char #x202C) named: پایانِ زیرمتن 480 ;; -------
480 ("&lro;" ?\u202D) ;; (insert-char #x202D) named: زیرمتنِ اکیداً چپ‌به‌راست 481 ;; LEFT-TO-RIGHT MARK (strongly typed LTR character)
481 ("&rlo;" ?\u202D) ;; (insert-char #x202E) named: زیرمتنِ اکیداً راست‌به‌چپ 482 ("&lrm;" ?\u200E) ;; (ucs-insert #x200E) named: نشانه‌ی چپ‌به‌راست
482 ("&bom;" ?\uFEFF) ;; (insert-char #xFEFF) named: نشانه‌ی ترتیبِ بایت‌ها 483 ("L" ?\u200E)
483 484 ;; RIGHT-TO-LEFT MARK (strongly typed RTL character)
485 ("&rlm;" ?\u200F) ;; (ucs-insert #x200F) named: نشانه‌ی راست‌به‌چپ
486 ("R" ?\u200F)
487 ;; LEFT-TO-RIGHT ISOLATE (sets base direction to LTR & isolates the embedded)
488 ("&lri;" ?\u2066) ;; (ucs-insert #x2066)
489 ;; RIGHT-TO-LEFT ISOLATE (sets base direction to RTL & isolates the embedded)
490 ("&rli;" ?\u2067) ;; (ucs-insert #x2067)
491 ;; FIRST-STRONG ISOLATE (isolates content & sets dir to first strongly typed)
492 ("&fsi;" ?\u2068) ;; (ucs-insert #x2068)
493 ;; POP DIRECTIONAL ISOLATE (used for RLI, LRI or FSI)
494 ;; EMACS BUG
495 ;; If ("&pdi;" ?\u2069) is included Emacs fully hangs with a (describe-input-method 'farsi-transliterate-banan)
496 ;;("&pdi;" ?\u2069) ;; (ucs-insert #x2069)
497 ;; LEFT-TO-RIGHT EMBEDDING (sets base dir to LTR but allows embedded text)
498 ("&lre;" ?\u202A) ;; (ucs-insert #x202A) named: زیرمتنِ چپ‌به‌راست
499 ("B" ?\u202A)
500 ;; RIGHT-TO-LEFT EMBEDDING (sets base dir to RTL but allows embedded text)
501 ("&rle;" ?\u202B) ;; (ucs-insert #x202B) named: زیرمتنِ راست‌به‌چپ
502 ;; POP DIRECTIONAL FORMATTING (used for RLE or LRE and RLO or LRO)
503 ;; EMACS ANOMOLY --- Why does &pdf not show up in (describe-input-method 'farsi-transliterate-banan)
504 ("&pdf;" ?\u202C) ;; (ucs-insert #x202C) named: پایانِ زیرمتن
505 ("P" ?\u202C)
506 ;; LEFT-TO-RIGHT OVERRIDE (overrides the bidirectional algorithm, display LTR)
507 ("&lro;" ?\u202D) ;; (ucs-insert #x202D) named: زیرمتنِ اکیداً چپ‌به‌راست
508 ;; RIGHT-TO-LEFT OVERRIDE (overrides the bidirectional algorithm, display RTL)
509 ("&rlo;" ?\u202E) ;; (ucs-insert #x202E) named: زیرمتنِ اکیداً راست‌به‌چپ
484 510
485;;;;;;;;;;; isiri-6219 Table 7 -- جدول ۷ - نشانه‌هایِ فارسی 511;;;;;;;;;;; isiri-6219 Table 7 -- جدول ۷ - نشانه‌هایِ فارسی
486 ("^" ?َ) ;; zbar ;; زبر فارسى 512 ("^" ?َ) ;; zbar ;; زبر فارسى
@@ -491,14 +517,14 @@
491 ("O" ?ٌ) ;; دو پيش فارسى -- تنوين رفع 517 ("O" ?ٌ) ;; دو پيش فارسى -- تنوين رفع
492 ("~" ?ّ) ;; tashdid ;; تشديد فارسى 518 ("~" ?ّ) ;; tashdid ;; تشديد فارسى
493 ("@" ?ْ) ;; ساکن فارسى 519 ("@" ?ْ) ;; ساکن فارسى
494 ("U" ?\u0653) ;; (insert-char #x0653)ٓ named: مدِ فارسی 520 ("U" ?\u0653) ;; (ucs-insert #x0653)ٓ named: مدِ فارسی
495 ("`" ?ٔ) ;; همزه فارسى بالا 521 ("`" ?ٔ) ;; همزه فارسى بالا
496 ("C" ?\u0655) ;; (insert-char #x0655)ٕ named: همزه فارسى پایین 522 ("C" ?\u0655) ;; (ucs-insert #x0655)ٕ named: همزه فارسى پایین
497 ("$" ?\u0670) ;; (insert-char #x0670)ٰ named: الفِ مقصوره‌ی فارسی 523 ("$" ?\u0670) ;; (ucs-insert #x0670)ٰ named: الفِ مقصوره‌ی فارسی
498 524
499 525
500;;;;;;;;;;; isiri-6219 Table 8 - Forbidden Characters -- جدول ۸ - نویسه‌هایِ ممنوع 526;;;;;;;;;;; isiri-6219 Table 8 - Forbidden Characters -- جدول ۸ - نویسه‌هایِ ممنوع
501;; ;; he ye (insert-char 1728) (insert-char #x06c0) kills emacs-24.0.90 527;; ;; he ye (ucs-insert 1728) (ucs-insert #x06c0) kills emacs-24.0.90
502;; arabic digits 0-9 528;; arabic digits 0-9
503 529
504 530
@@ -508,7 +534,7 @@
508 ("\\~" ?~) 534 ("\\~" ?~)
509 ("\\@" ?@) 535 ("\\@" ?@)
510 ("\\#" ?#) 536 ("\\#" ?#)
511 ("\\$" ?\uFDFC) ;; (insert-char #xFDFC)﷼ named: 537 ("\\$" ?\uFDFC) ;; (ucs-insert #xFDFC)﷼ named:
512 ("\\^" ?^) 538 ("\\^" ?^)
513 ("\\1" ?1) 539 ("\\1" ?1)
514 ("\\2" ?2) 540 ("\\2" ?2)