Bagaimana cara mendapatkan angka khusus bahasa manusia?

9

TL; DR: bagaimana saya bisa menggunakan angka Hindi (١٢٣ ...) saat menulis dalam bahasa Arab?


Emacs bisa dibilang dipuji sebagai editor terbaik, tetapi dalam hal menggunakan angka dalam konteks penulisan, tidak ada solusi yang memuaskan untuk masalah ini bagi pengguna multibahasa dibandingkan dengan yang diberikan oleh Microsoft Word, yaitu penulisan angka kontekstual.

Pada Microsoft Word 2010, buka menu drop-down -> Perintah Lebih Banyak -> Tingkat Lanjut -> di bawah isi dokumen yang dapat Anda pilih contextuntuk Angka dari (Bahasa Arab atau Hindi atau Konteks atau Sistem). Opsi konteks memungkinkan Anda menulis angka sesuai dengan konteks tulisan Anda jika itu angka bahasa Inggris akan menjadi bahasa Arab 1,2,3,4,5,6,7,8,9,0 - terdengar aneh! tetapi dinamai demikian (mungkin keliru), dan jika Anda menulis dalam bahasa Arab maka angka akan berupa angka Hindi , ditulis seperti ini:
masukkan deskripsi gambar di sini

Untuk Windows, saya menemukan bahwa mengubah input-methodpenulisan sementara adalah cara yang harus dilakukan jika saya ingin menulis dokumen multibahasa dalam bahasa Emacs yang berbahasa Inggris dan Arab atau bahasa lain dengan alfabet yang sama sekali berbeda. Mengubah tata letak bahasa atau keyboard dari bilah bahasa di Windows IMHO tidak akan memberi Anda efek yang sama karena itu akan menghancurkan semua ikatan utama editor Emacs Anda (terutama jika ada dua bahasa berbeda seperti Inggris dan Arab). Solusinya diposting di sini .

Di Microsoft Word, setelah mengatur angka ke konteks Anda dapat menulis bahasa Inggris dengan angka Arab, dan ketika Anda beralih menulis dalam bahasa Arab dengan bersepeda melalui ( ALT+ R SHFT) Anda akan menulis teks Arab dengan angka Hindi dalam waktu singkat seperti yang ditunjukkan pada gambar di bawah ini. Di Emacs setelah menggeser input-methodke bahasa Arab, angka akan tetap menjadi Arab (1,2,3, dll) dan bukan angka Hindi yang diinginkan.

masukkan deskripsi gambar di sini

Saya tidak berpikir solusi untuk masalah ini terkait dengan Microsoft Windows karena mengubah bahasa pengaturan regional akan mengubah angka antarmuka Windows juga dan akan menjadi efek yang tidak diinginkan di seluruh sistem.

Saya percaya bahwa potensi ekstensi Emacs memegang kunci untuk masalah ini. Untuk lebih spesifik; Saya sarankan Emacs harus mendeteksi input-methoddan jika itu dalam bahasa Arab, ia harus secara otomatis memetakan kembali semua angka Arab menjadi yang Hindi. ATAU, entah bagaimana, menyesuaikan tata letak keyboard Arab agar menggunakan bahasa Hindi alih-alih angka Arab.

Pukulan terdaftar adalah beberapa kiriman terkait untuk masalah ini, tetapi saya tidak dapat menerjemahkan bit info ini menjadi solusi aktual yang sesuai dengan spesifikasi kiriman ini:

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

Di bawah ini adalah pendekatan untuk memperluas metode input di Emacs. https://emacs.stackexchange.com/a/3404/2443

Mengetik angka Hindi dapat menjadi tugas yang membosankan di Emacs jika Anda ingin memasukkan angka Hindi satu per satu. C-x 8 RETIni dipetakan dalam Unicode ke kode berikut: 0661 untuk nomor 1, 0662 untuk nomor 2, 0663 untuk nomor 3, 0663 untuk nomor 3, 0664 untuk angka 4, 0665 untuk nomor 5 dan seterusnya.

Pertanyaan
Apa kustomisasi terbaik untuk Emacs 24 dan penekanan tombol terpendek untuk meniru pengalaman menulis kontekstual yang disediakan oleh Microsoft Word?

gelar doktor
sumber
Saya pikir ada beberapa kebingungan di sini, angka yang Anda panggil hindi sebenarnya adalah angka Arab!
Iqbal Ansari
@IqbalAnsari Hai, ironisnya tidak - Saya tahu ini mungkin tampak membingungkan untuk pertama kalinya tetapi jika Anda adalah pengguna Microsoft Word dan Anda menulis dalam bahasa Arab Anda akan segera terbiasa dengan jargon ini. Jika Anda memiliki Microsoft Word, Anda dapat memeriksanya.
doktor
1
Sebagai tambahan: norma-norma publikasi di beberapa negara berbahasa Arab default ke angka Hindi (١٢٣ ...), seperti Mesir, sementara yang lain default ke angka Arab (123 ...), seperti Lebanon.
Dan
@Dan, Mesir, dan Lebanon adalah negara berbahasa Arab yang harus mereka gunakan bahasa Hindi dalam publikasi mereka atau tulisan lainnya. Berdasarkan itu, tata letak Arab default Emacs akan lebih baik mengubah angka dari Arab ke bahasa Hindi.
doktor
Apa yang seharusnya atau tidak seharusnya mereka lakukan tidak relevan dengan apa yang sebenarnya mereka lakukan. Dan, untuk apa nilainya, publikasi online utama sebagian besar menggunakan angka Arab - lih. al-Jazeera , al-Hayat (harian pan-Arab), al-Nahar (harian Lebanon unggulan), al-Ahram (harian Mesir unggulan). Saya juga lebih suka estetika angka Hindi, tetapi sepertinya quailmembuat pilihan yang tepat untuk default ke angka Arab karena mereka tampaknya menjadi default di dunia Arab juga.
Dan

Jawaban:

10

Jadi persyaratannya adalah: Ketika saya menggunakan arabicmetode input, dan saya mengetik angka, saya ingin Emacs memasukkan karakter Hindi untuk digit itu.

Untuk melakukan ini, kami dapat mengadaptasi pendekatan tertaut Anda untuk memperluas metode input seperti:

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

Kemudian ketika Anda menggunakan C-uC-\ arabic(atau hanya C-\jika itu adalah default Anda), dan mengetikkan angka, itu memasukkan terjemahan yang ditentukan sebagai gantinya.

phils
sumber
Bagus! masalah diperbaiki. Emacs benar-benar editor terbaik.
doktor