Wie bekomme ich sprachspezifische Ziffern für den Menschen?

9

TL; DR: Wie kann ich Hindi-Ziffern (١٢٣ ...) verwenden, wenn ich auf Arabisch schreibe?


Emacs wird wohl als der beste Editor gefeiert, aber wenn es darum geht, Zahlen im Kontext des Schreibens zu verwenden, gibt es für mehrsprachige Benutzer keine zufriedenstellenden Lösungen für dieses Problem im Vergleich zu Microsoft Word, nämlich das kontextbezogene Schreiben von Zahlen.

Gehen Sie in Microsoft Word 2010 zum Dropdown-Menü -> Weitere Befehle -> Erweitert -> unter Dokumentinhalt anzeigen, das Sie contextfür Ziffer aus (Arabisch oder Hindi oder Kontext oder System) auswählen können . Mit der Kontextoption können Sie Ziffern entsprechend dem Kontext Ihres Schreibens schreiben, wenn englische Ziffern arabisch wären 1,2,3,4,5,6,7,8,9,0- klingt seltsam! aber es heißt so (vielleicht eine falsche Bezeichnung), und wenn Sie auf Arabisch schreiben, sind Ziffern Hindi- Ziffern, die so geschrieben sind:
Geben Sie hier die Bildbeschreibung ein

Für Windows habe ich festgestellt, dass das Ändern der input-methodSchreibweise der richtige Weg ist, wenn ich ein mehrsprachiges Dokument in Emacs schreiben möchte, z. B. Englisch und Arabisch oder eine andere Sprache mit einem völlig anderen Alphabet. Das Ändern der Sprache oder des Tastaturlayouts über die Sprachleiste in Windows IMHO führt nicht zum gleichen Effekt, da dadurch alle Tastenkombinationen Ihres Emacs-Editors zerstört werden (insbesondere bei zwei verschiedenen Sprachen wie Englisch und Arabisch). Die Lösung finden Sie hier .

In Microsoft Word können Sie nach dem Festlegen von Zahlen für den Kontext nahtlos Englisch mit arabischen Zahlen schreiben. Wenn Sie durch ( ALT+ R SHFT) zum Schreiben auf Arabisch wechseln, schreiben Sie in kürzester Zeit arabischen Text mit Hindi-Zahlen, wie in der folgenden Abbildung gezeigt. In Emacs sind nach der Umstellung auf die input-methodarabische Sprache die Ziffern weiterhin arabisch (1,2,3 usw.) und nicht die gewünschten Hindi-Ziffern.

Geben Sie hier die Bildbeschreibung ein

Ich glaube nicht, dass die Lösung dieses Problems mit Microsoft Windows zusammenhängt, da das Ändern der Sprache der regionalen Einstellungen auch die Ziffern der Windows-Oberfläche ändert und systemweit unerwünschte Auswirkungen hat.

Ich glaube, dass das Erweiterungspotential von Emacs den Schlüssel zu diesem Problem darstellt. Um genauer zu sein; Ich schlage vor, Emacs sollte das erkennen input-methodund wenn es auf Arabisch ist, sollte es automatisch alle arabischen Ziffern in Hindi-Ziffern umwandeln. ODER das arabische Tastaturlayout so anpassen, dass Hindi anstelle arabischer Ziffern verwendet wird.

Aufgeführt sind einige verwandte Beiträge zu diesem Problem, aber ich konnte diese Informationen nicht in eine tatsächliche Lösung übersetzen, die den Besonderheiten dieses Beitrags entspricht:

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

Im Folgenden finden Sie einen Ansatz zur Erweiterung der Eingabemethode in Emacs. https://emacs.stackexchange.com/a/3404/2443

Typing Hindi Zahlen kann eine mühsame Aufgabe in Emacs, wenn Sie das eingeben mögen Hindi eingegebenen Ziffern einen nach dem anderen C-x 8 RETdiese in Unicode auf die folgenden Codes zugeordnet sind: 0661 für die Nummer 1, 0662 für die Nummer 2, 0663 für Nummer 3, 0664 für Nummer 4, 0665 für Nummer 5 und so weiter.

Frage
Was ist die beste Anpassung an Emacs 24 und kürzeste Tastenanschläge, um das nahtlose kontextbezogene Schreiberlebnis von Microsoft Word zu replizieren?

Promotion
quelle
Ich denke, hier gibt es einige Verwirrung, die Zahlen, die Sie Hindi nennen, sind tatsächlich arabische Ziffern!
Iqbal Ansari
@IqbalAnsari Hallo, ironischerweise nicht - ich weiß, dass es zum ersten Mal verwirrend erscheinen mag, aber wenn Sie ein Microsoft Word-Benutzer waren und auf Arabisch schreiben, werden Sie bald an diesen Jargon gewöhnt sein. Wenn Sie Microsoft Word haben, können Sie es überprüfen.
Promotion
1
Nebenbei bemerkt: Veröffentlichungsnormen in einigen arabischsprachigen Ländern verwenden standardmäßig Hindi-Ziffern (١٢٣ ...) wie Ägypten, während andere standardmäßig arabische Ziffern (123 ...) wie Libanon verwenden.
Dan
@Dan, Ägypten und Libanon sind beide arabischsprachige Länder, in denen sie Hindi in ihren Veröffentlichungen oder anderen Schriften verwenden sollten. Auf dieser Grundlage ist es besser, wenn Emacs 'Standard-Arabisch-Layout die Ziffern von Arabisch in Hindi ändert.
Promotion
Was sie tun oder nicht tun sollten, ist nicht so relevant wie das, was sie tatsächlich tun. Und für das, was es wert ist, verwenden die großen Online-Veröffentlichungen meistens arabische Ziffern - vgl. al-Jazeera , al-Hayat (panarabische Tageszeitung), al-Nahar (libanesische Flaggschiff-Tageszeitung), al-Ahram (ägyptische Flaggschiff-Tageszeitung). Ich bevorzuge auch die Ästhetik von Hindi-Ziffern, aber es sieht so quailaus, als würde man die richtige Wahl treffen, um standardmäßig arabische Ziffern zu verwenden, da sie auch in der arabischen Welt die Standardeinstellung zu sein scheinen.
Dan

Antworten:

10

Die Voraussetzung ist also: Wenn ich die arabicEingabemethode verwende und eine Ziffer eingebe, möchte ich, dass Emacs das Hindi-Zeichen für diese Ziffer einfügt.

Zu diesem Zweck können wir Ihren verknüpften Ansatz anpassen , um eine Eingabemethode wie folgt zu erweitern:

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

Wenn Sie dann C-uC-\ arabic(oder nur C-\wenn es Ihre Standardeinstellung ist) eine Ziffer eingeben, wird stattdessen die angegebene Übersetzung eingefügt.

Phils
quelle
Groß! Problem gelöst. Emacs ist wirklich der beste Redakteur.
Promotion