Как получить цифры для конкретного языка?

9

TL; DR: как я могу использовать хинди (١٢٣ ...) при написании на арабском языке?


Emacs можно назвать лучшим редактором, но когда дело доходит до использования цифр в контексте написания, для многоязычных пользователей не существует удовлетворительных решений этой проблемы по сравнению с тем, что предоставляет Microsoft Word, а именно контекстная запись цифр.

В Microsoft Word 2010 перейдите в раскрывающееся меню -> Дополнительные команды -> Дополнительно -> в разделе Показать содержимое документа, которое вы можете выбрать contextдля числительных из (арабский или хинди или контекст или система). Опция context позволяет вам писать цифры в соответствии с контекстом вашего письма, если бы английские цифры были арабскими 1,2,3,4,5,6,7,8,9,0 - звучит странно! но он так назван (возможно, неправильно), и если вы пишете по-арабски, то цифры будут хинди , написанные так:
введите описание изображения здесь

Для Windows я обнаружил, что изменение input-methodвремени написания - это путь, если я хочу написать многоязычный документ на Emacs, скажем на английском и арабском или любом другом языке с совершенно другим алфавитом. Изменение языка или раскладки клавиатуры из языковой панели в Windows IMHO не даст вам того же эффекта, поскольку это разрушит все ваши привязки клавиш в редакторе Emacs (особенно в случае двух разных языков, таких как английский и арабский). Решение размещено здесь .

В Microsoft Word, после установки цифр в контекст, вы можете без проблем писать английский с арабскими цифрами, а когда вы переключаетесь на арабский, циклически нажимая ( ALT+ R SHFT), вы будете писать арабский текст цифрами хинди без промедления, как показано на рисунке ниже. В Emacs после перехода на input-methodарабский язык цифры по-прежнему будут арабскими (1,2,3 и т. Д.), А не желаемыми хинди.

введите описание изображения здесь

Я не думаю, что решение этой проблемы связано с Microsoft Windows, так как изменение языка региональных настроек также изменит цифры интерфейса Windows и будет нежелательным для всей системы.

Я верю, что потенциал расширения Emacs является ключом к этой проблеме. Быть более конкретным; Я предлагаю, чтобы Emacs обнаружил, input-methodи если он на арабском языке, он должен автоматически перераспределить все арабские цифры в хинди. ИЛИ как-то настроить раскладку арабской клавиатуры так, чтобы вместо арабских цифр хинди.

Ниже перечислены некоторые связанные посты по этой проблеме, но я не смог перевести эти кусочки информации в реальное решение, подходящее для специфики этого поста:

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

Ниже представлен подход для расширения метода ввода в Emacs. https://emacs.stackexchange.com/a/3404/2443

Ввод чисел на хинди может быть утомительным занятием в Emacs, если вы хотите вводить цифры хинди по одной за разC-x 8 RET они отображаются в Unicode на следующие коды: 0661 для номера 1, 0662 для номера 2, 0663 для номера 3, 0664 для номера 4, 0665 для номера 5 и так далее.

Вопрос
Какова лучшая настройка для Emacs 24 и кратчайшие нажатия клавиш для того, чтобы копировать беспрепятственный контекстный опыт, предоставляемый Microsoft Word?

докторская степень
источник
Я думаю, что здесь есть некоторая путаница, цифры, которые вы называете хинди, на самом деле арабские цифры!
Икбал Ансари
@IqbalAnsari Привет, как ни странно - я знаю, что это может показаться странным в первый раз, но если вы были пользователем Microsoft Word и пишете по-арабски, вы скоро привыкнете к этому жаргону. Если у вас есть Microsoft Word, вы можете проверить его.
докторская степень
1
Напомним, что в некоторых арабскоязычных странах нормы публикации устанавливаются по умолчанию на хинди (١٢٣ ...), например в Египте, а в других - на арабских (123 ...), например, в Ливане.
Дан
@ Дан, Египет и Ливан являются арабоговорящими странами, и им следует использовать хинди в своих публикациях или любых других работах. Исходя из этого, стандартная арабская раскладка Emacs будет лучше менять цифры с арабского на хинди.
докторская степень
То, что они должны или не должны делать, не так важно, как то, что они на самом деле делают. И, как ни крути, в крупных онлайн-изданиях в основном используются арабские цифры - ср. аль-Джазира , аль-Хаят (панарабская ежедневная газета), аль-Нахар (флагманская ливанская ежедневная газета), аль-Ахрам (флагманская египетская ежедневная газета). Я также предпочитаю эстетику хинди, но, похоже, quailделает правильный выбор по умолчанию для арабских цифр, так как они, по-видимому, по умолчанию в арабском мире.
Дан

Ответы:

10

Итак, требование таково: когда я использую arabicметод ввода и набираю цифру, я хочу, чтобы Emacs вставил символ хинди для этой цифры.

Чтобы сделать это, мы можем адаптировать ваш связанный подход для расширения метода ввода следующим образом:

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

Затем, когда вы используете C-uC-\ arabic(или просто C-\по умолчанию) и вводите цифру, вместо нее вставляется указанный перевод.

Phils
источник
Большой! проблема исправлена. Emacs действительно лучший редактор.
докторская степень