Как я могу связать блоки Unicode с языками / скриптами? - PullRequest
15 голосов
/ 22 июня 2011

Я пытаюсь найти ресурс, который можно использовать для подключения языков (или, скорее, сценариев) к блокам символов Юникода.Такой ресурс будет использоваться для поиска таких вопросов, как "Какие блоки Unicode используются на французском языке?"или "На каких языках используется блок из 0A80-0AFF (http://unicodinator.com/#Block-Gujarati)?" Знаете ли вы о таком ресурсе?

) Я ожидал бы, что смогу легко найти эту информацию в Unicode.org . Мне быстро удалось найти отличную таблицу, которая связывает коды стран с языками (http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/territory_language_information.html).) Но я потратил немало времени на поиски чего-либо, связанного с блоками Unicode и языками.Возможно, у меня есть проблема с терминологией, мешающая мне соединить точки здесь ...

Я не привередлив в том, что именно означает "язык" (код локали Java или код ISO 639 или любой другой)в этом случае. Я также понимаю, что не может быть точных ответов, потому что, например, арабский документ может содержать латинский и другой текст в дополнение к символам из арабских блоков (http://unicodinator.com/#Block-Arabic, http://unicodinator.com/#Block-Arabic_Supplement). Нонаверняка должна быть таблица с надписью "эти языки идут с этими блоками" ... я тоже не разборчив в формате (XML, CSV, что угодно), я легко могупреобразовать это в данные, которые я могу использовать для своего приложения.И снова, я понимаю, что ссылка, вероятно, соединит Сценарии с блоками, а не с языками (хотя сценарии могут быть сопоставлены с языками).

Я понимаю, что это будет многомного таблиц (поскольку многие языки используют символы из нескольких блоков, а многие блоки используются несколькими языками);Я действительно понимаю, что на это нельзя дать точного ответа, поскольку кодовые точки Unicode не зависят от языка - однако, также не может быть и вопроса «какие языки существуют в этой стране» (ответ, вероятно, «большинство из них» для большинства стран), но таблицавот так (http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/territory_language_information.html) все еще можно создавать, значимые и полезные.

Что касается , почему Я бы хотел такую ​​вещь: Я хотел бы улучшить http://unicodinator.com с глобальными тепловыми картами для блоков кода и списками языков; у меня также есть концепция игры, с которой я возился. Помимо этого, возможно, есть много других применений, которые другие люди могли бы использовать для этого (создание шрифтов? Эвристический,быстрое определение языка предположений теперь, когда API Google Translate исчезает - исследовательские проекты?).

Ответы [ 4 ]

12 голосов
/ 22 июня 2011

Я получил ответ от Unicode.org сами! В подпроекте CLDR есть такие документы, как:

для каждого идентификатора языка, который вы можете найти для "instancelarCharacters":

<exemplarCharacters>[\u064B \u064C \u064D \u064E \u064F \u0650 \u0651 \u0652 ء آ أ ؤ إ ئ ا ب ت ة ث ج ح خ د ذ ر ز س ش ص ض ط ظ ع غ ف ق ك ل م ن ه و ي ى]</exemplarCharacters>
<exemplarCharacters type="auxiliary">[\u200C\u200D\u200E\u200F]</exemplarCharacters>
<exemplarCharacters type="currencySymbol" draft="contributed">[a b c d e f g h i j k l m n o p q r s t u v w x y z]</exemplarCharacters>
<exemplarCharacters type="index" draft="contributed">[ا ب ت ث ج ح خ د ذ ر ز س ش ص ض ط ظ ع غ ف ق ك ل م ن ه و ي]</exemplarCharacters>

Или есть эта страница: http://unicode.org/repos/cldr-tmp/trunk/diff/by_type/misc.exemplarCharacters.html с тем, что похоже на все из них. Я буду работать над перестановкой этих данных в какую-то карту langid -> blockid, на которой я, вероятно, буду знать @borrible «Ответ» (вместо того, чтобы делать мой ответ).

3 голосов
/ 22 июня 2011

Как насчет генерации (приблизительных) данных самостоятельно? Одним из примеров может быть использование различных языковых википедий - загрузка достаточного количества данных на каждом языке, генерация списка символов, используемых в документах с счетчиками, и установка порогового значения, чтобы избавиться от небольших случаев заимствования текст с других языков. Это было бы приблизительно, но возможно хорошая отправная точка.

2 голосов
/ 31 декабря 2015

Не думаю, что характерные символы CLDR дадут точные результаты. Вы можете найти для каждого символа его свойство сценария из файлов проекта UCD Scripts.txt и ScriptExtensions.txt . Подробнее читайте здесь ( Свойство Unicode Script )

После того, как у вас есть сценарий, вы можете связать его с языком в CLDR, используя раздел languageData файла extramentalData.xml

0 голосов
/ 22 июня 2011

Нет такого ресурса по простой причине: присвоения кодовой точки Unicode не зависят от языка.Таким образом, каждая кодовая точка может использоваться несколькими языками.

Конечно, есть определенные символы, которые отображаются непосредственно на один язык, но в целом каждая кодовая точка предназначена для совместного использования.Поэтому нет смысла создавать код, указывающий на языковые таблицы.

Если вы ищете способы определения языка, определенно это , а не способидти.

...