Jak uzyskać cyfry specyficzne dla języka ludzkiego?

9

TL; DR: jak mogę używać cyfr hindi (١٢٣ ...) podczas pisania po arabsku?


Emacs jest prawdopodobnie okrzyknięty najlepszym edytorem, ale jeśli chodzi o używanie cyfr w kontekście pisania, nie ma zadowalających rozwiązań tego problemu dla użytkowników wielojęzycznych w porównaniu z tym, który zapewnia Microsoft Word, a mianowicie kontekstowe pisanie cyfr.

W programie Microsoft Word 2010 przejdź do menu rozwijanego -> Więcej poleceń -> Zaawansowane -> poniżej pokaż zawartość dokumentu, którą możesz wybrać contextdla Liczebnik z (Arabski lub Hinduski lub Kontekst lub System). Opcja kontekstu pozwala pisać cyfry zgodnie z kontekstem pisania, gdyby były to cyfry angielskie byłyby arabskie 1,2,3,4,5,6,7,8,9,0 - brzmi dziwnie! ale jest tak nazwany (być może mylący), a jeśli piszesz po arabsku, cyfry będą cyframi hindi , napisanymi w ten sposób:
wprowadź opis zdjęcia tutaj

W przypadku systemu Windows odkryłem, że zmiana input-methodpodczas pisania jest właściwym rozwiązaniem, jeśli mam napisać wielojęzyczny dokument w języku Emacs, np. Angielskim i arabskim lub innym języku z zupełnie innym alfabetem. Zmiana języka lub układu klawiatury z paska języka w systemie Windows IMHO nie da takiego samego efektu, ponieważ zniszczy wszystkie twoje skróty klawiszowe edytora Emacsa (szczególnie w przypadku dwóch różnych języków, takich jak angielski i arabski). Rozwiązanie znajduje się tutaj .

W programie Microsoft Word po ustawieniu liczb na kontekst można bezproblemowo pisać po angielsku za pomocą cyfr arabskich, a gdy przejdziesz do pisania po arabsku, przechodząc przez ( ALT+ R SHFT), będziesz pisać tekst arabski za pomocą cyfr hindi w krótkim czasie, jak pokazano na poniższym obrazku. W Emacsie po przejściu na input-methodjęzyk arabski cyfry nadal będą arabskie (1,2,3 itd.), A nie pożądane cyfry hindi.

wprowadź opis zdjęcia tutaj

Nie sądzę, aby rozwiązanie tego problemu było związane z Microsoft Windows, ponieważ zmiana języka ustawień regionalnych zmieni również cyfry interfejsu Windows i będzie niepożądanym efektem w całym systemie.

Wierzę, że potencjał rozszerzenia Emacsa stanowi klucz do tego problemu. Być bardziej specyficznym; Sugeruję, że Emacs powinien wykryć, input-methoda jeśli jest w języku arabskim, powinien automatycznie zamapować wszystkie cyfry arabskie na cyfry hindi. LUB w jakiś sposób dostosowując układ klawiatury arabskiej, aby mieć cyfry w języku hindi zamiast cyfr arabskich.

Wymienione ciosy to niektóre powiązane posty dotyczące tego problemu, ale nie mogłem przetłumaczyć tych informacji na rzeczywiste rozwiązanie odpowiednie do specyfiki tego postu:

https://tex.stackexchange.com/q/191040/26295

Poniżej znajduje się podejście do rozszerzenia metody wprowadzania w Emacsie. https://emacs.stackexchange.com/a/3404/2443

Wpisywanie cyfr hindi może być żmudnym zadaniem w Emacsie, jeśli chcesz wprowadzać cyfry hindi pojedynczo, C-x 8 RETsą one mapowane w Unicode na następujące kody: 0661 dla liczby 1, 0662 dla liczby 2, 0663 dla liczby 3, 0664 dla liczby 4, 0665 dla numeru 5 i tak dalej.

Pytanie
Jakie jest najlepsze dostosowanie Emacsa 24 i najkrótszych naciśnięć klawiszy w celu odtworzenia płynnego pisania kontekstowego zapewnianego przez Microsoft Word?

doktorat
źródło
Myślę, że jest tu trochę zamieszania, liczby, które nazywacie hindi, są w rzeczywistości cyframi arabskimi!
Iqbal Ansari,
@IqbalAnsari Cześć, jak na ironię - wiem, że może to wydawać się mylące po raz pierwszy, ale jeśli jesteś użytkownikiem Microsoft Word i piszesz po arabsku, wkrótce przyzwyczaisz się do tego żargonu. Jeśli masz program Microsoft Word, możesz go sprawdzić.
doktorat
1
Na marginesie: normy publikacyjne w niektórych krajach arabskojęzycznych domyślnie przyjmują cyfry hindi (١٢٣ ...), takie jak Egipt, podczas gdy inne domyślnie przyjmują cyfry arabskie (123 ...), takie jak Liban.
Dan
@Dan, Egipt i Liban to kraje arabskojęzyczne, w których powinny używać hindi w swoich publikacjach lub innych pismach. Na tej podstawie domyślny arabski układ Emacsa lepiej byłoby zmienić cyfry z arabskiego na hindi.
doktorat
To, co powinni zrobić lub nie, nie jest tak istotne, jak to, co faktycznie robią. I, o ile jest to warte, główne publikacje online używają głównie cyfr arabskich - por. al-Dżazira , al-Hayat (dziennik panarabski), al-Nahar (flagowy dziennik libański), al-Ahram (flagowy dziennik egipski). Wolę także estetykę cyfr hindi, ale wygląda na to, quailże to właściwy wybór, aby zastąpić cyfry arabskie, ponieważ wydają się one również domyślne w świecie arabskim.
Dan

Odpowiedzi:

10

Zatem wymaganie jest następujące: gdy używam arabicmetody wprowadzania i wpisuję cyfrę, chcę, aby Emacs wstawił znak hindi dla tej cyfry.

Aby to zrobić, możemy dostosować twoje połączone podejście, aby rozszerzyć metodę wprowadzania danych w następujący sposób :

(eval-after-load "quail/arabic"
  '(let ((quail-current-package (assoc "arabic" quail-package-alist)))
     (quail-define-rules ((append . t)) ;; don't clobber the existing rules
                         ("0" "\u0660")
                         ("1" "\u0661")
                         ("2" "\u0662")
                         ("3" "\u0663")
                         ("4" "\u0664")
                         ("5" "\u0665")
                         ("6" "\u0666")
                         ("7" "\u0667")
                         ("8" "\u0668")
                         ("9" "\u0669"))))

Następnie, gdy użyjesz C-uC-\ arabic(lub tylko C-\jeśli jest to ustawienie domyślne) i wpiszesz cyfrę, wstawi określone tłumaczenie.

phils
źródło
Świetny! problem rozwiązany. Emacs jest naprawdę najlepszym edytorem.
doktorat