Come ottenere numeri specifici del linguaggio umano?


9

TL; DR: come posso usare le cifre hindi (١٢٣ ...) quando scrivo in arabo?


Emacs è probabilmente salutato come il miglior editore, ma quando si tratta di usare numeri nel contesto della scrittura non ci sono soluzioni soddisfacenti a questo problema per gli utenti multilingue rispetto a quello offerto da Microsoft Word, vale a dire la scrittura numerica contestuale.

In Microsoft Word 2010 vai al menu a discesa -> Altri comandi -> Avanzate -> sotto mostra il contenuto del documento che puoi selezionare contextper Numero in (arabo o hindi o contesto o sistema). L'opzione di contesto ti consente di scrivere numeri in base al contesto della tua scrittura se fossero numeri inglesi sarebbero arabi 1,2,3,4,5,6,7,8,9,0 - suona strano! ma è così chiamato (forse un termine improprio), e se scrivi in ​​arabo allora i numeri saranno numeri hindi , scritti in questo modo:
inserisci qui la descrizione dell'immagine

Per Windows, ho scoperto che cambiare input-methodmentre scrivo è la strada da percorrere se devo scrivere un documento multilingue in Emacs dire inglese e arabo o qualsiasi altra lingua con un alfabeto completamente diverso. Cambiare la lingua o il layout della tastiera dalla barra della lingua in Windows IMHO non ti darà lo stesso effetto poiché ciò distruggerà tutti i collegamenti dei tasti dell'editor Emacs (specialmente nel caso di due lingue diverse come inglese e arabo). La soluzione è pubblicata qui .

In Microsoft Word, dopo aver impostato i numeri sul contesto è possibile scrivere senza problemi inglese con numeri arabi e quando si passa alla scrittura in arabo scorrendo ( ALT+ R SHFT) si scriverà il testo arabo con numeri hindi in pochissimo tempo, come mostrato nell'immagine qui sotto. In Emacs dopo aver spostato la input-methodlingua araba, i numeri saranno comunque arabi (1,2,3, ecc.) E non i numeri hindi desiderati.

inserisci qui la descrizione dell'immagine

Non penso che la soluzione a questi problemi sia correlata a Microsoft Windows poiché la modifica della lingua delle impostazioni regionali cambierà anche i numeri dell'interfaccia di Windows e avrà effetti indesiderati a livello di sistema.

Credo che il potenziale di estensione di Emacs sia la chiave di questo problema. Per essere più specifici; Suggerisco che Emacs dovrebbe rilevare input-methode se è in arabo dovrebbe rimappare automaticamente tutte le cifre arabe in hindi. O in qualche modo personalizzare il layout della tastiera araba per avere Hindi anziché numeri arabi.

I colpi elencati sono alcuni post correlati a questo problema, ma non sono riuscito a tradurre queste informazioni in una soluzione reale adatta alle specifiche di questo post:

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

Di seguito è riportato un approccio per estendere il metodo di input in Emacs. https://emacs.stackexchange.com/a/3404/2443

Digitare i numeri hindi può essere un compito noioso in Emacs se si desidera inserire le cifre hindi una alla volta, C-x 8 RETqueste sono mappate in Unicode ai seguenti codici: 0661 per il numero 1, 0662 per il numero 2, 0663 per il numero 3, 0664 per il numero 4, 0665 per il numero 5 e così via.

Domanda
Qual è la migliore personalizzazione per Emacs 24 e le combinazioni di tasti più brevi al fine di replicare la perfetta esperienza di scrittura contestuale fornita da Microsoft Word?


Penso che ci sia un po 'di confusione qui, i numeri che stai chiamando hindi sono in realtà numeri arabi!
Iqbal Ansari,

@IqbalAnsari Ciao, ironicamente no - so che potrebbe sembrare confuso per la prima volta, ma se eri un utente di Microsoft Word e scrivi in ​​arabo, presto ti abituerai a questo gergo. Se hai Microsoft Word puoi verificarlo.
dottorato il

1
A parte questo: le norme di pubblicazione in alcuni paesi di lingua araba si basano su numeri hindi (١٢٣ ...), come l'Egitto, mentre altri su valori arabi (123 ...), come il Libano.
Dan

@Dan, Egitto e Libano sono entrambi paesi di lingua araba che dovrebbero usare l'hindi nelle loro pubblicazioni o altri scritti. Sulla base di ciò, il layout arabo predefinito di Emacs sarebbe meglio cambiare i numeri dall'arabo all'hindi.
dottorato il

Quello che dovrebbero o non dovrebbero fare non è rilevante quanto quello che fanno realmente. E, per quello che vale, le principali pubblicazioni online usano principalmente numeri arabi - cfr. al-Jazeera , al-Hayat (quotidiano panarabo), al-Nahar (quotidiano libanese di punta), al-Ahram (quotidiano egiziano di punta). Preferisco anche l'estetica dei numeri hindi, ma sembra quailfare la scelta giusta per default ai numeri arabi poiché sembrano essere i valori predefiniti anche nel mondo arabo.
Dan

Risposte:


10

Quindi il requisito è: quando sto usando il arabicmetodo di input e scrivo una cifra, voglio che Emacs inserisca il carattere hindi per quella cifra.

Per fare ciò, possiamo adattare il tuo approccio collegato per estendere un metodo di input in questo modo:

(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"))))

Quindi quando usi C-uC-\ arabic(o solo C-\se è il tuo valore predefinito) e digiti una cifra, inserisce invece la traduzione specificata.


Grande! problema risolto. Emacs è davvero il miglior editor.
dottorato il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.