Динамическое создание Unicodes Ge'ez

enter image description here

Привет. Если вы посмотрите на изображение выше, вы увидите множество очень странных символов, отображаемых вместе с некоторыми латинскими символами. Странные - эритрейские персонажи. Это персонажи, которые мы используем в моей стране. Поэтому, чтобы идти в ногу, я надеюсь создать даже самый простой возможный бит программного обеспечения или, возможно, даже пакетный файл (если это возможно), чтобы помочь мне сделать эти символы применимыми в Интернете и заставить ПК понять и отобразить их, когда они набран. Так же, как арабский, индуистский, китайский... символы используются. Я думаю, так как вопрос о "создании языка" часто встречается редко или потому, что я не знаю, какой правильный термин использовать, когда я искал в Интернете, чтобы найти какой-либо учебник или даже фрилансер или что-то еще, все, что у меня было, было... ничего. Поэтому я надеюсь, что если кто-нибудь сможет дать мне пошаговое руководство или даже просто понять, как это сделать, было бы очень полезно.

Спасибо.

Ответ 1

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

Чтобы работать с script как Ge'ez (также известный как Эфиопский, script, используемый для написания амхарского в Эфиопии и Тигринья в Эритрее) вам нужно несколько вещей. Первый способ кодирования символов; набор чисел, представляющий каждый символ, который компьютер может использовать для представления текста. К счастью, Unicode стал широко распространен, а Unicode разработан как универсальный набор символов, включающий все языки мира. Unicode 3.0 представил Ethiopic в диапазон U + 1200-U + 137F, а более поздние версии добавили дополнения более неясных символов в диапазонах U + 1380-U + 1394, U + 2D80-U + 2DDF и U + AB00-U + AB2F. Если вы хотите поддерживать язык, который Unicode еще не поддерживал, вам нужно будет либо использовать область отправить предложение, чтобы ваш script был добавлен в Unicode; например, см. предложение Ethiopic.

Теперь Unicode представляет собой набор символов ; абстрактное сопоставление между символами и числами. Чтобы фактически передать эти символы в виде последовательности байтов, вы используете кодировку символов. Есть много кодировок; некоторые из них, например ASCII и ISO-8859-1 охватывают только подмножество полного набора символов Юникода, а другие, например UTF-8 и UTF-16, охватывают весь диапазон. Для документов в Интернете UTF-8 является рекомендуемой кодировкой символов; вы никогда не должны использовать что-либо еще, если можете помочь ему. В UTF-8 вы можете написать Ge'ez непосредственно в документе, например: ኤርትራ. Одна вещь, на которую следует обратить внимание, это то, что некоторые программы (особенно в Windows) будут предлагать вам "Юникод" в качестве кодировки, когда они означают UTF-16; вы хотите убедиться, что выбрали UTF-8, поскольку он более эффективен и более совместим с более широким спектром программного обеспечения.

If you are using encodings that don't cover the full range of Unicode, or you don't have a good way to type those characters, and you are writing HTML or XML, you can use numeric character references instead. To do this, you write the Unicode code point of the character you want to refer between &# and ;. You can write the number in decimal, or in hexadecimal prefixed with an x. For example, ሀ can be written ሀ or ሀ (the semicolon at the end is important; it wasn't working for you in the comments because you were missing it).

Теперь, когда у вас есть набор символов и способ его кодирования, вам нужен способ его отображения. Некоторые скрипты легче отображать в других. Для всех скриптов вам понадобится font; файл, определяющий, как выглядит каждый символ. Шрифт содержит коллекцию глифов или рисунков каждого символа. Некоторые сценарии, такие как латинский алфавит (алфавит, используемый для английского и большинства европейских языков) относительно просты; каждый символ является отдельным глифом, и как они нарисованы, не зависит от того, какие символы появляются до или после (хотя диакритики и ligatures может сделать его немного сложнее). Другие, например Arabic и Индикаторные скрипты написанные в курсе, где буквы соединяются друг с другом, так, как они рисуются, может зависеть от близких персонажей. Эти языки требуют специальной поддержки поддержки, например Uniscribe или DirectWrite в Windows, Pango в Linux или передовые технологии шрифтов, такие как Apple Advanced Typography или Graphite.

К счастью, Ge'ez - довольно простая система написания, которая не требует какой-либо специализированной поддержки разметки или расширенных систем шрифтов. Каждый из символов является отдельным символом, и он не требует какого-либо переупорядочения. Таким образом, нормальный шрифт OpenType, отображаемый с системами рендеринга, уже доступными на большинстве компьютеров, выполнит эту работу. Но вам все равно нужен шрифт, чтобы отображать символы. Чтобы создать собственный шрифт, вы можете использовать FontForge (бесплатный инструмент с открытым исходным кодом), Fontographer, FontLab Studio или другое подобное программное обеспечение.

Для эфиопских, вам не нужно создавать свои собственные. Есть многочисленные доступные шрифты, которые включают в себя эфиопские символы, но я бы рекомендовал Abyssinica SIL от SIL (Летний институт лингвистики), который отлично справляется с языков меньшинств и систем письменности. Их шрифты доступны по бесплатной лицензии которая позволяет использовать шрифт, распространять шрифт и изменять шрифт, поэтому их шрифты достаточно гибкая и может использоваться в самых разных ситуациях. Windows поставляется с Nyala, в который входят эфиопские символы, начиная с Windows Vista и Ebrima, в котором добавлена ​​поддержка эфиопских персонажей в Windows 8; поэтому люди в Windows Vista или более поздней версии должны иметь возможность просматривать эфиопские персонажи. Mac OS X поставляется с Kefa с 10.6.

После того, как у вас есть шрифт, вы сможете просмотреть эфиопских персонажей. Но другие люди, читающие ваши документы, могут не иметь этих шрифтов (если они используют более старую версию Windows или Mac OS X, если они не устанавливали все шрифты, которые поставляются с Windows, или тому подобное), и в этом случае символы, вероятно, будут отображаться в виде ящиков или вопросительных знаков на их машине. Вы могли бы предоставить этим людям распространяемый шрифт, такой как Abyssinica SIL, или они могли бы купить шрифт, который содержит эфиопские символы, но это может быть неудобно. Для работы со текстовыми процессорами или обычным текстом это, вероятно, лучшее, что вы можете сделать; им понадобится шрифт, установленный на их компьютере, чтобы отображать текст. Если вы создаете PDF файл на своем компьютере, он должен внедрять шрифты, необходимые для отображения текста, поэтому создание PDF файла может быть удобным способом включения необычных шрифтов в ваш документ.

На веб-странице вы можете использовать веб-шрифты, чтобы ссылаться на шрифт из вашей таблицы стилей, позволяя веб-браузеру пользователей загружать этот шрифт для этой веб-страницы. Веб-шрифты поддерживаются полностью назад к IE 6 и в последних версиях большинства других веб-браузеров, поэтому они на самом деле довольно широко поддерживаются. Различные веб-браузеры поддерживают разные форматы файлов шрифтов (EOT, TTF, OpenType, SVG, и WOFF) и несколько разных синтаксисов для CSS (более старые версии IE основаны на более старой черновике), поэтому это может быть немного сложно сделать страницу, совместимую со всеми браузерами. К счастью, люди автоматизировали этот процесс. Некоторые веб-шрифты доступны в Интернете из Google Web Fonts или FontSquirrel, но, к сожалению, я не смог найти какие-либо эфиопские шрифты, которые уже были размещены. Однако вы можете загрузить шрифт в FontSquirrel, и он преобразует его во все основные форматы и предоставит пример CSS, который будет работать на все современные браузеры. Обратите внимание, что вы должны делать это только с помощью шрифтов, которые позволяют веб-встраивание; не все шрифты. Поскольку Abyssinica SIL доступен в рамках Open Font License, вы можете использовать его, и я запустил его через FontSquirrel для вас; вы можете посмотреть, как это работает (проверьте вкладку "Глифы и языки" ) или скачать комплект, Чтобы использовать его, просто поместите файлы шрифтов (.ttf, .eot, .svg и .woff) на свой сервер в том же каталоге, что и ваш CSS, и включите в свой CSS следующее:

@font-face {
    font-family: 'abyssinica_silregular';
    src: url('abyssinicasil-r.eot');
    src: url('abyssinicasil-r.eot?#iefix') format('embedded-opentype'),
         url('abyssinicasil-r.woff') format('woff'),
         url('abyssinicasil-r.ttf') format('truetype'),
         url('abyssinicasil-r.svg#abyssinica_silregular') format('svg');
    font-weight: normal;
    font-style: normal;
}

Теперь, когда вы знаете, как кодировать эфиопский, просматривать эфиопских персонажей и делиться документами, содержащими эфиопские символы, вы, вероятно, захотите ввести их в документы. Если вы используете HTML, вы можете просто ввести ссылку на числовой символ, описанную выше. В других документах вы можете просто скопировать и вставить символы из диаграммы всех них, например, на странице Википедии. Но это станет довольно громоздким. В зависимости от вашей системы и настроек вы также можете использовать Unicode Hex Input для ввода произвольных символов Юникода, но это также громоздко.

Чтобы полностью поддерживать ввод script на вашем компьютере, вам понадобится раскладка клавиатуры или метод ввода. Некоторые скрипты можно вводить с помощью простой раскладки клавиатуры, в которой говорится, какие ключи соответствуют тем символам. Если script имеет больше символов, чем есть клавиши на клавиатуре, Shift и Alt (или Option на Mac) могут использоваться для отображения большего количества символов. Мертвые ключи также могут использоваться для расширения диапазона символов, которые вы вводите; мертвые ключи - это последовательности двух или более нажатий клавиш, которые генерируют один символ; например, в Mac OS X, чтобы ввести "á", вы можете ввести Option-E A. Чтобы создать раскладку клавиатуры в Windows, вы можете использовать Microsoft Layout Creator. Mac OS X использует формат XML для раскладки клавиатуры, поэтому вы можете создать его напрямую или использовать Ukelele из SIL, чтобы создать еще одно легко. В системах, использующих X11 (например, Linux), вы можете создать свои собственные раскладки XKB.

Если вам нужно больше символов, чем может поддерживаться с помощью модификаторов и мертвых клавиш, например, набирать китайский или японский, то вам нужен полноценный метод ввода. Метод ввода позволяет запускать произвольный код для сопоставления того, что кто-то вводит в текст, который он производит; например, в японском методе ввода, вы можете ввести фонетическое представление того, что вы пишете, и он покажет вам раскрывающийся список возможных символов, соответствующих этому представлению, что позволит вам выбрать подходящие. Windows предоставляет Input Method Manager для ввода методов ввода, Mac OS X Input Method Kit, и X11 имеет несколько способов сделать это, например SCIM и iBus.

стандартный метод ввода для Эфиопии широко использует мертвые ключи. Похоже, что самый популярный существующий метод ввода для Ethiopic - Keyman, который является коммерческим методом ввода, который работает на Mac и Windows, и, кроме того, есть бесплатный вариант KMFL, который работает в Linux. SIL имеет загрузку клавиатуры для этого метода ввода; у них также есть раскладка клавиатуры для Mac OS X, которая использует мертвые клавиши для достижения того же. Mac OS X имеет более обширную поддержку "мертвого ключа", поэтому для поддержки этой формы ввода не требуется метод ввода, тогда как в Windows вам необходимо использовать метод ввода, например Keyman, чтобы иметь возможность вводить вход таким образом. У Google есть бесплатный метод ввода для Windows, Google Input Tools для Windows, который поддерживает Amharic и позволяет вам настроить свои схемы ввода; вы можете попробовать адаптировать свою амхарскую поддержку для Тигринии.

Если вам просто нужно поддерживать ввод на веб-сайте, вы можете сделать это в JavaScript, написав метод ввода в JavaScript, который транслитерирует то, что кто-то вводит в эфиопский. Я не знаю каких-либо существующих рамок для этого; однако я нашел Korean и японскийметоды ввода, реализованные в JavaScript. Вы можете посмотреть, как они реализованы. Если посмотреть дальше, я обнаружил, что Tavultesoft, у которого есть Keyman, также имеет KeymanWeb, метод ввода на основе JavaScript, который вы можете купить и вставлять на свой сайт. MediaWiki также имеет расширение метода ввода Narayam, которое включает в себя метод ввода на основе JavaScript для сайтов на основе MediaWiki, таких как Wikipedia, который включает в себя экспериментальный амхарский Метод ввода. Существует также проект W3C IME API, который помогает обеспечить интерфейс между веб-приложениями и собственными IME, а также IME на основе JavaScript. Учитывая, что он все еще является черновиком, я не знаю, поддерживается ли он где-либо еще.

Со всеми перечисленными выше (набор символов, кодировка, шрифты, поддержка рендеринга и метод ввода) вы сможете создавать, обмениваться и просматривать документы в script. Если это все, что вам нужно, отлично; вышесказанное позволит вам работать с документами в заданном script. Но для полной поддержки языка на вашем компьютере, а не только его script или системы записи, вам нужны еще две части: locale, и ваше программное обеспечение должно быть локализовано (переведено и адаптировано) для вашего языка.

Локаль указывает, как программы должны манипулировать текстом в заданном script, языке, культуре и/или кодировке. Есть много обычных операций обработки текста, которые выполняют программы: отображение номеров, отображение дат и времени, сортировка строк или имен и т.д. Как они должны работать, могут отличаться в зависимости от языка, script и культуры человека, использующего программу; например, на шведском языке "ü" сортируется вместе с "y", в то время как на английском и немецком языках он сортируется вместе с "u". Различия не могут быть основаны на языке: как в Мексике, так и в Испании используется испанский язык, но в Мексике цифры отображаются с . как десятичный разделитель (1½ написано "1,5" ), а в Испании , используется как разделитель десятичных чисел (1½ написано "1,5" ). Локаль определяет все эти правила. Поскольку язык может варьироваться в зависимости от языка, культуры, а иногда и других факторов, язык и страна обычно используются для указания локали, а также может использоваться другая информация.

Наиболее широко используемый стандарт для именования локалей - RFC 4646 (BCP 47). Локали обычно обозначаются как " ln - CC" с кодом языка ln и кодом страны CC: US ​​English - en-US, английский английский - en-UK, а французский во Франции fr-FR. Если необходимо указать дополнительную информацию, она может быть включена. Например, Serbian может быть написано либо латинским, либо Cyrillic, и поэтому сербский в Сербии может быть либо sr-Latn-CS, либо sr-Cyrl-CS. Тигринья в Эритрее написана ти-ER.

Существует множество различных форматов для определения правил, которые имеют определенные локали. Windows использует файлы NLP, настраиваемый формат, который можно создать с помощью Microsoft Locale Builder. POSIX (Unix/Linux) можно создать с помощью localedef. Многие системы в настоящее время движутся к Unicode Common Locale Data Registry, который определяет стандартизованный формат данных локали, а также полную базу данных локалей для многих миров. ICU - это библиотека для C и Java (и используется многими другими средами) для управления текстом Unicode в соответствии с правилами Unicode и языковыми данными; у них есть хороший браузер для данных из CLDR и их собственных данных локали. Например, взгляните на их запись для ti-ER.

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

Например, приложения в Mac OS X хранят свои данные локализации в отдельных файлах в комплекте приложений. Существует инструмент под названием AppleGlot (вам нужно зарегистрироваться для Mac Developer Program и перейти в область загрузки, чтобы найти его), что может помочь вам извлеките эти данные, предоставите файл со всеми строками, которые необходимо перевести, и позвольте вам снова объединить это приложение с приложением. Для программного обеспечения с открытым исходным кодом, такого как большое программное обеспечение, доступное в Linux, вы можете работать с разработчиками для обеспечения перевода. Некоторые программы используют gettext для строк перевода, которые используют формат файла PO, который вы можете редактировать, используя poedit. Некоторые используют Qt, для которых вы можете использовать Qt Linguist. Или для работы с самыми разными форматами вы можете использовать коммерческое предложение, например Swordfish или Transifex.

Конечно, ни один человек не может все это сделать; многие люди работают вместе над созданием поддержки нового языка на современных компьютерных системах. Все это предназначено для высокопоставленного тура по всем компонентам, которые входят в языковую поддержку для данного языка, со ссылками, которые помогут вам следить за тем, какие аспекты вы хотели бы работать, а также продемонстрировать, что уже работает для Тигринья и Ge'ez script.

Ответ 2

Если они являются символами Unicode, они должны отображаться точно так же, как символы любого другого языка. Я googled это и нашел это, надеюсь, они те же самые, о которых вы спрашиваете:

የ ዩ ዪ ያ ዬ ይ ዮ

ዸ ዺ ዻ ዼ ዽ ዾ

См? Никакой дополнительной работы, необходимой для их отображения в веб-браузерах или других программах.


Это символы из Unicode Ethiopic set (U + 1200..U + 137C), закодированные в UTF-8:

Строка 1:

  • የ = 0xE1 0x8B 0xA8 = U + 12E8 = ETHIOPIC SYLLABLE YA
  • ዩ = 0xE1 0x8B 0xA9 = U + 12E9 = ETHIOPIC SYLLABLE YU
  • ዪ = 0xE1 0x8B 0xAA = U + 12EA = ETHIOPIC SYLLABLE YI
  • ያ = 0xE1 0x8B 0xAB = U + 12EB = ETHIOPIC SYLLABLE YAA
  • ዬ = 0xE1 0x8B 0xAC = U + 12EC = ETHIOPIC SYLLABLE YEE
  • ይ = 0xE1 0x8B 0xAD = U + 12ED = ETHIOPIC SYLLABLE YE
  • ዮ = 0xE1 0x8B 0xAE = U + 12EE = ETHIOPIC SYLLABLE YO

Строка 2:

  • ዸ = 0xE1 0x8B 0xB8 = U + 12F8 = ETHIOPIC SYLLABLE DDA
  • ዺ = 0xE1 0x8B 0xBA = U + 12FA = ETHIOPIC SYLLABLE DDI
  • ዻ = 0xE1 0x8B 0xBB = U + 12FB = ETHIOPIC SYLLABLE DDAA
  • ዼ = 0xE1 0x8B 0xBC = U + 12FC = ETHIOPIC SYLLABLE DDEE
  • ዽ = 0xE1 0x8B 0xBD = U + 12FD = ETHIOPIC SYLLABLE DDE
  • ዾ = 0xE1 0x8B 0xBE = U + 12FE = ETHIOPIC SYLLABLE DDO

Ответ 3

Использование эфиопских персонажей на веб-страницах в основном относится к шрифтам в наши дни. (У вас также может возникнуть проблема с удобством их ввода, но это зависит от вашей среды разработки. Люди, например, Windows 7, имеют по крайней мере один шрифт, содержащий их, но на старых компьютерах обычно не хватает таких шрифтов. Следующие шрифты содержат их (могут быть и другие)

Код 2000, был бесплатным, автор исчез, поэтому статус неясен

Unifont, бесплатный шрифт растрового изображения

FreeSerif, бесплатный шрифт

Nyala, распространяемый с некоторыми версиями Windows

SunExt-A, бесплатный шрифт

Fixedsys Excelsior, бесплатный шрифт растрового изображения, который я предполагаю (проверенный havent)

Я бы, вероятно, использовал FreeSerif в качестве загружаемого шрифта с @font-face.

Ответ 4

Просто по той же проблеме, но есть простое решение: теперь Google предоставляет веб-сайты для многих языков, а также эфиопские: http://www.google.com/fonts/earlyaccess

Ответ 5

Чтобы написать amharic или Tigrigna в веб-формах, вы можете просто использовать Any Key firefox add на https://addons.mozilla.org/en-US/firefox/addon/any-key/, и для хром тоже есть!!

Но Чтобы создать редактор с помощью javascript, вы можете увидеть сайт здесь http://www.lexilogos.com/keyboard/amharic.htm и попытаться выпустить его, как они его реализовали!!

Ответ 6

Вероятно, вы хотите посмотреть http://senamirmir.org/

который, если я ошибаюсь, сделал то, что вы хотите сделать. Если вам не нравятся их шрифты, SIL Abyssinica тоже должен быть в порядке (но он включает только один стиль написания).

Статус макета будет отличаться от системы к системе, для целевых * nix подобных систем вам нужен макет, объединенный в http://www.freedesktop.org/wiki/Software/XKeyboardConfig/

Ответ 7

@Самая, сейчас ты, наверное, получил ответ, который искал. Но позвольте мне отбросить то, что я думаю. Исходя из вашего первоначального вопроса, я думаю, что вы пытаетесь разработать небольшое программное обеспечение, которое можно выбрать в качестве утилиты (в качестве функции) и использовать для отображения алфавитов Geez без необходимости установки отдельного приложения Geez. Для этого, я считаю, служебное приложение должно быть разработано таким образом, чтобы его можно было выбрать в качестве функции (языковой элемент) в операционной системе (например, как Amharic в Windows). Тем не менее, ваши последующие комментарии, кажется, больше сосредоточены на отображении символов Geez в сети. Как многие уже предположили, у нас уже есть эта функциональность. Но если вы все еще хотите разработать приложение для него, я бы посоветовал вам иметь массив Unicode (например, U1260-) и соответствующий массив транскрипции по вашему выбору с клавиатуры (например, be -)). Тогда ваше приложение будет использовать массив транскрипции при вводе клавиши клавиатуры и сопоставлять их с юникодом, чтобы отобразить правильный алфавит в Geez. Не уверен, что я полностью понял, что вы ищете, но я сам с коллегами сделал проект, который включал этот тип работы для конкретного приложения. Кстати, нужно ли устанавливать программное обеспечение Geez для просмотра сайта, основанного на стенограммах Tigrigna/Geez? Если это так, проверьте свою версию браузера.