Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

Набор с изменением глифов

Автор Iskandar, февраля 26, 2017, 19:08

0 Пользователи и 1 гость просматривают эту тему.

Iskandar

Существуют языковые раскладки клавиатуры, где при наборе глиф изменяется в зависимости от предыдущей набранной буквы. Например, арабская, где у буквы до четырёх вариантов в зависимости от окружения. Или индийские, где при наборе после согласной буквы вирамы + следующей согласной обе согласные схлопываются в лигатуру. Ну или, наконец, корейская, где при наборе начало слога + конец слога они заменяются слоговой лигатурой.

Хочу задать глупый вопрос:

Где это задаётся программно?

Wolliger Mensch

«Вот интересно, каких лингвистических жемчуг можно найти в море отодвинутых книг», Ян Гавлиш.
«Впредь прошу помнить, что придумал игру не для любых ассоциаций, а для семантически оправданных. Например, чтó это такое: ,,рулетке" — ,,выпечке"?? Тем более, что сей ляпсус я сам совершил...», Марбол
«Ветхий Завет написан на иврите и частично на армейском», Vesle Anne
«МЛ(ять)КО ... ПЛ(ять)NЪ», Тася
«Вот откроет этот спойлер, например, Марго, ничего не подозревая, а потом будут по всему форуму блюющие смайлики...», Авал
«Томан приличный мужчина. Правда по патриархальным меркам слегка голодранец», Vesle Anne
«Возможен ли фонетический переход "ж" в "п с придыханием"», forest

Bhudh

Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Python

Очевидно, вопрос касается не ввода букв, а их отображения. Имеется в виду, как настроить браузер/текстовый редактор, чтобы эти символы отображались как следует? Или спрашивается, как сделать шрифт с такими возможностями?

В тексте позиционные варианты одной и той же арабской буквы кодируются идентично (хотя в юникоде отведены отдельные коды для каждого из позиционных вариантов), это же касается стандартных латинских лигатур типа fi или fl (подставляемых на место буквосочетаний) — можно, конечно, подставить позиционные варианты и лигатуры непосредственно в редактируемый текст, но по-хорошему подстановка глифов должна происходить лишь при отображении текста (что, к сожалению, умеют не все программы). В более общем случае (например, для индийских лигатур) отдельные коды не предусмотрены, а подстановка глифа задается таблицей в шрифте — в этом случае, ручная подстановка символов в текст становится невозможной, поскольку подстановочные глифы отдельных юникодовских позиций не имеют (т.е., все сложности ложатся на программу, отображающую текст, и если она не умеет делать подстановку, либо делает ее лишь для определенного набора символов, то это никак не обойти). С другой стороны, греческие σ и ς кодируются отдельными кодами (предложение сделать сигму автоматически заменяемой на позиционные варианты было отклонено) и, соответственно, вводятся как разные буквы.

Касательно дедкеев и других клавиатурных наворотов. При желании, можно сделать шрифт с пользовательскими символами для позиционных вариантов и лигатур любых письменностей, сделать к нему раскладку и набирать текст непосредственно из пользовательских символов (и это имеет смысл, если такой шрифт должен отображаться в чем-то с ограниченными возможностями рендеринга), но такой путь считается неюникодовским.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Bhudh

Цитата: Python от февраля 27, 2017, 19:40В более общем случае (например, для индийских лигатур) отдельные коды не предусмотрены, а подстановка глифа задается таблицей в шрифте — в этом случае, ручная подстановка символов в текст становится невозможной, поскольку подстановочные глифы отдельных юникодовских позиций не имеют
А откуда они тогда, по-Вашему, берутся, из astral.dll?
В том же Sanskrit 2003 1136 позиций в Private Use заняты как раз подстановочными глифами. Может, Вы имели в виду «установленных стандартных юникодовских позиций не имеют»?

Цитата: Python от февраля 27, 2017, 19:40При желании, можно сделать шрифт с пользовательскими символами для позиционных вариантов и лигатур любых письменностей, сделать к нему раскладку и набирать текст непосредственно из пользовательских символов (и это имеет смысл, если такой шрифт должен отображаться в чем-то с ограниченными возможностями рендеринга), но такой путь считается неюникодовским.
Неуникодовским считается транспонирование собственных глифов на занятые code pointʼы, а в Private Use суй хоть засуйся (см. выше).
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Neeraj

Кто знает как разбить "лигатуры" при наборе арабицей? Конкретно - чтобы нпр. было می کنم  а не   میکنم ...  ( При наборе сирийским письмом такая возможность есть  - называется " принудительная разбивка лигатур" )

Iskandar

Цитата: Neeraj от февраля 27, 2017, 20:08
Кто знает как разбить "лигатуры" при наборе арабицей? Конкретно - чтобы нпр. было می کنم  а не   میکنم
ZWNJ же
На персидской клаве на Shift + (там где латинская) B

Iskandar

Поскольку с (книжным) пехлеви в юникоде тянут волыну своими "пропозишынами" уже много лет (успев давно оюникодить сравнительно никому не нужные наскальные инскрипции и пехлеви-псалтырь), я подумал, что придётся собирать свой собственный набиральщик. И только сейчас понял, что не знаю, как устроен набор, например, арабский.

Но, спасибо за наводки, начинаю разбираться, как это прописывается в шрифтах лигатурными свойствами и подстановками (substitutions).

Не знаю, что лучше: попроставлять в шрифте глифы поверх арабских (подкорректировав правила подстановки)? Это "не по-юникодовски" :) Или забивать приват-юз, а потом собирать раскладку клавиатуры...

Neeraj

Цитата: Iskandar от февраля 27, 2017, 20:10
Цитата: Neeraj от февраля 27, 2017, 20:08
Кто знает как разбить "лигатуры" при наборе арабицей? Конкретно - чтобы нпр. было می کنم  а не   میکنم
ZWNJ же
На персидской клаве на Shift + (там где латинская) B
Понятно.. ! مرسی

Bhudh

Цитата: Iskandar от февраля 27, 2017, 20:15что лучше: попроставлять в шрифте глифы поверх арабских (подкорректировав правила подстановки)? Это "не по-юникодовски" :) Или забивать приват-юз, а потом собирать раскладку клавиатуры
У прынцыпе можно чхнуть на Юникод и пойти путёй WPF, обозвав пехлеви «Contextual and Stylistic Alternates» арабщины (не, ну а чё: происхождение-то вроде одно!).
И проверить можно будет прямо на http://teilnehmer.somee.com/WpfTextImage.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Python

Цитата: Bhudh от февраля 27, 2017, 19:58
А откуда они тогда, по-Вашему, берутся, из astral.dll?
В том же Sanskrit 2003 1136 позиций в Private Use заняты как раз подстановочными глифами. Может, Вы имели в виду «установленных стандартных юникодовских позиций не имеют»?
Глифы в шрифте могут быть привязаны к определенному коду (в т.ч. и в пользовательской области), а могут такой привязки и не иметь (т.е., идентифицируются по внутреннему номеру или имени в шрифте, и больше никак). Во втором случае глиф подставляется в текст лишь средствами расширенного рендеринга.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Bhudh

Это те самые Contextual and Stylistic Alternates? А где они прописаны и как в этом случае?
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Iskandar

Цитата: Bhudh от февраля 27, 2017, 20:23
У прынцыпе можно чхнуть на Юникод и пойти путёй WPF, обозвав пехлеви «Contextual and Stylistic Alternates» арабщины (не, ну а чё: происхождение-то вроде одно!).

Там правила подстановок будут отличаться и они сложнее по идее должны будут быть. Всё-таки письменность действительно мудрёная. Но чихать на юникод — за то, что они не чешутся — это справедливо :)

Самих по себе шрифтов пехлеви разработано уже много, но они совершенно дубового набора.
В идеале нужно, чтобы набивать типа (в уме) транслит, а он сам закручивается в лигатуры.

Bhudh

Цитата: Iskandar от февраля 27, 2017, 20:30В идеале нужно, чтобы набивать типа (в уме) транслит
Так и набивайте транслит: привязать-то в раскладке клавиш можно к любому кодпойнту.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Iskandar

Цитата: Bhudh от февраля 27, 2017, 20:32
Цитата: Iskandar от февраля 27, 2017, 20:30В идеале нужно, чтобы набивать типа (в уме) транслит
Так и набивайте транслит: привязать-то в раскладке клавиш можно к любому кодпойнту.
А где там будет прописываться лигатуризация?
В шрифте, я понял уже, где.

Bhudh

Не понял. Если в шрифте прописана, зачем ещё и в раскладке? :what:
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Bhudh

Цитата: Python от февраля 27, 2017, 20:26Во втором случае глиф подставляется в текст лишь средствами расширенного рендеринга.
А, в Mangal и Aparajita и правда лигатуры так и сделаны.
В Private Use там полный ноль.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Python

Цитата: Bhudh от февраля 27, 2017, 19:58
Неуникодовским считается транспонирование собственных глифов на занятые code pointʼы, а в Private Use суй хоть засуйся (см. выше).
Однако, если та же письменность стандартизирована в юникоде, то использовать вместо нее пользовательские символы — несовсем правильно. В т.ч. и в случаях, когда юникод описывает лишь общую семантику символов, требующих в идеале расширенного рендеринга.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Bhudh

Но для чего тогда использовать те 137468 кодпойнтов, любезно выделенных консорциумом для личных нужд?
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Python

Цитата: Bhudh от февраля 27, 2017, 21:16
Но для чего тогда использовать те 137468 кодпойнтов, любезно выделенных консорциумом для личных нужд?
С другой стороны, зачем тогда выделять дорогое стандартизированное место для символов некой письменности, если вместо них все равно используются пользовательские коды позиционных вариантов? Смысл юникода в том, чтобы сделать текст шрифтонезависимым. Пользовательские области же, очевидно, нужны для нестандартизированных символов и письменностей.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Bhudh

То есть для конлангерских письменностей.
Блин, я только один синдаринский шрифт видел, где тенгвар в Private Use. Мужики-то не знают и всё в ANSI лепят.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Python

Цитата: Bhudh от февраля 27, 2017, 21:57
То есть для конлангерских письменностей.
Блин, я только один синдаринский шрифт видел, где тенгвар в Private Use. Мужики-то не знают и всё в ANSI лепят.
Естественно. Проще сделать шрифт, совместимый с какой-нибудь общедоступной раскладкой, чем и шрифт, и специальную раскладку к нему.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Bhudh

В наше время можно тупо сделать html-страничку с текстовым полем и скриптом и заменять что угодно введённое на что угодно желаемое.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Python

Раскладку тоже просто. Но это тоже часть работы, занимающая часть времени и требующая знаний помимо умения рисовать шрифты.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Тайльнемер

Цитата: Bhudh от февраля 27, 2017, 21:57
То есть для конлангерских письменностей.
Есть даже неофициальный стандарт (wiki/en) ConScript_Unicode_Registry
Правда не знаю, многие ли его учитывают, и сколько ещё таких же «стандартов» существует.

Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр