LINUX.ORG.RU

Где найти разбивку символов по языкам?

 


0

1

Подскажите, где в юникодовском стандарте найти списки символов с разбивкой по языкам. Например «только русские буквы».

Нашел только «unicode blocks», но если брать cyrilic, там очень много лишнего.

★★★★★

Ответ на: комментарий от Deleted

Дык смысл вопроса в том, чтобы самому не разбивать :).

Эта инфа должна где-то быть, но в CLDR почему-то не нашел.

Vit ★★★★★
() автор топика
Ответ на: комментарий от Vit

Эта инфа должна где-то быть, но в CLDR почему-то не нашел.

Вообще впервые о таком слышу.

Deleted
()

Вспоминается советская книга «Определитель языков мира по письменностям»…

А в CLDR нет информации об алфавитной сортировке?

Thetan ★★★
()
Ответ на: комментарий от Thetan

Там есть про сортировку. Но мне нужна именно разбивка по локалям.

Vit ★★★★★
() автор топика

В основном стандарте Юникода, ЕМНИП, нет разбивки по языкам. Есть разбивка по системам письменности. Это свойство Script, см. UAX-24.

А то, что ты её в CLDR не нашёл, это очень странно, потому что она там есть. Вот, например, выборка по русскому языку — весь алфавит присутствует. Вот выборка по китайскому — тыщи знаков.

Правка: не знаю, правда, какую ты задачу решаешь, поэтому не могу сказать, чего может не хватить.

proud_anon ★★★★★
()
Последнее исправление: proud_anon (всего исправлений: 1)

ö — это немецкий или венгерский?

Miguel ★★★★★
()
Ответ на: комментарий от proud_anon

А то, что ты её в CLDR не нашёл, это очень странно, потому что она там есть. Вот, например, выборка по русскому языку — весь алфавит присутствует. Вот выборка по китайскому — тыщи знаков.

Там как-то странно:

<characters>
	<exemplarCharacters>[а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я]</exemplarCharacters>
	<exemplarCharacters type="auxiliary">[{а\u0301} {е\u0301} {и\u0301} {о\u0301} {у\u0301} {ы\u0301} {э\u0301} {ю\u0301} {я\u0301}]</exemplarCharacters>
	<exemplarCharacters type="index">[А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Э Ю Я]</exemplarCharacters>
	<exemplarCharacters type="numbers">[  \- , % ‰ + 0 1 2 3 4 5 6 7 8 9]</exemplarCharacters>
	<exemplarCharacters type="punctuation">[\- ‐ – — , ; \: ! ? . … ' ‘ ‚ &quot; “ „ « » ( ) \[ \] \{ \} § @ * / \&amp; #]</exemplarCharacters>
...
</characters>


- Заглавные отложены отдельно (type=index).
- В китайском на той же позиции - заглавные английские буквы.

Не очень понятно, при каких условиях поле включать или не включать.

Правка: не знаю, правда, какую ты задачу решаешь, поэтому не могу сказать, чего может не хватить.

В эмбедах большие ограничения по объему памяти. Поэтому надо выдергивать только те глифы, которые реально используются. Хочу запилить в конверторе опцию вида «выдернуть язык ХХХ».

Это все не очень критично, т.к. можно задать списки кодов и диапазаны вручную. Просто хочется разобраться. Если не получится - ничего страшного.

Vit ★★★★★
() автор топика
Ответ на: комментарий от Vit

- В китайском на той же позиции - заглавные английские буквы.

Это правильно: других заглавных в китайском нет.

x3al ★★★★★
()
Ответ на: комментарий от x3al

Когда пишут на китайском, английские заглавные не используют.

И по какому алгоритму получать полный список букв для конкретного языка, без лишнего мусора?

Vit ★★★★★
() автор топика
Ответ на: комментарий от Vit

Хочу запилить в конверторе опцию вида «выдернуть язык ХХХ».

Только руками. В unicode только письменности.

Поэтому надо выдергивать только те глифы, которые реально используются.

А что с модификаторами?

RazrFalcon ★★★★★
()
Ответ на: комментарий от Vit

Есть pinyin для транскрипции звучания китайских слогов, и вот там таки латинские буквы с диакритическими знаками

Harald ★★★★★
()
Ответ на: комментарий от RazrFalcon

А что с модификаторами?

Пока желающих потратить время на имплементацию не встретилось :). Вообще судя по https://github.com/foliojs/fontkit, налисапедить свое вполне реалистично.

Только там уже такая тонкая грань, когда вместо толстых stm32 уже проще ставить raspbery с линуксами и QT.

Vit ★★★★★
() автор топика
Ответ на: комментарий от Vit

В эмбедах большие ограничения по объему памяти. Поэтому надо выдергивать только те глифы, которые реально используются. Хочу запилить в конверторе опцию вида «выдернуть язык ХХХ».

Хмм… А это для какого-то конкретного эмбеда или вообще? Потому что я пытаюсь представить себе ситуацию, где это может быть нужно.

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

Например, заглавное сообщение этого топика написано на русском языке, но в нём, помимо кириллицы, «реально используются» латинские буквы, пунктуация (включая « и »), а движок сайта добавил ещё 🔖︎ (он стоит перед тегами) и ★. Ещё там могли быть 🦄 или ( ͡° ͜ʖ ͡°), например.

Если всё-таки надо сделать, то, как я понимаю, лучше exemplar characters в CLDR решений не придумано. Подробно про каждое поле написано вот здесь. Но сам я с exemplars никогда не работал, так что больше я ничего не знаю. Только обычно прежде чем парсить CLDR руками, нужно посмотреть, нет ли чего-то подходящего в ICU.

proud_anon ★★★★★
()
Последнее исправление: proud_anon (всего исправлений: 1)
Ответ на: комментарий от proud_anon

Хмм… А это для какого-то конкретного эмбеда или вообще? Потому что я пытаюсь представить себе ситуацию, где это может быть нужно.

Не совсем понял вопрос. Есть гуй и все что с ним связано https://github.com/littlevgl. Это годно для всяких stm32 f0-f3, потому что приличные линуксы туда не встанут.

Если ты про девайс - ну вот лично мне сейчас надо для всяких мелких паялок https://easyeda.com/reflow. Позже - для регуляторов скорости.

Если нужен вывод определённых фраз и слов, то можно взять те глифы, которые используются в этих фразах и словах.

Это обязательно будем пробовать. Но там тоже нюансы. Если брать Material Design, то нужны шрифты нескольких размеров и оттенков. И определить где какие буквы уже совсем никак. Только везде одинаковые делать.

Просто хочется выяснить, есть ли что-то полезное в юникодовских спеках про языки, раз уж задался вопросом. Но скорее всего закончится генерацией списка глифов из фраз.

Vit ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.