Я работаю в компании, которая начала интегрировать встроенные компьютерные системы в наши продукты, которые мы производим. У нас довольно широкий ассортимент продукции, и она распространяется по всему миру. Кроме того, мы разработали несколько интегрированных плат, которые могут служить нескольким целям в зависимости от прошивки, установленной в системе. Таким образом, нам не нужно перепроектировать наше компьютерное оборудование для наших различных продуктов - все, что нам нужно сделать, это переписать слой прошивки для удовлетворения потребностей конкретного продукта.
Из-за этих аппаратных ограничений замена нашего оборудования требует конгресса, но написание нового программного обеспечения намного проще.
Один из наших продуктов имеет новое требование, которое мы ранее не выполняли, а именно необходимость ввода текста пользователем.
В настоящее время мы можем хранить международный текст в ресурсах, и только необходимые шрифтовые символы компилируются в растровые изображения. Это означает, что мы смогли хранить высокоидеографические языки, такие как китайский и японский текст, в минимальном объеме, потому что мы используем только очень небольшой процент от всего набора языков.
Поскольку этот новый продукт потребует, чтобы наши пользователи вводили текст, нам потребуется реализовать обширный набор символов. Будучи в первую очередь разработчиком ПК, я хорошо знаком с ASCII, Unicode, UTF-8 и т. Д., Однако реализовать полный набор символов на любом из этих языков невозможно, поскольку у нас на плате ограниченное количество FRAM. хранить данные шрифта.
Мое руководство надеется, что существует минимальный набор символов, который можно использовать для высокоидеографических языков. Я полагаю, что для японского языка существует фонетический алфавит (хирагана?). Существуют ли аналогичные фонетические алфавиты для китайского, корейского, вьетнамского и т. Д. Языков, и если да, могут ли носители этих языков общаться с таким узким набором символов? Я почти уверен, что ответ на этот вопрос «абсолютно, нет», но этот вопрос стоит задать.
Руководство установило «мягкое» требование, чтобы мы могли иметь только ограниченный набор символов, состоящий примерно из 8000 символов, охватывающих все основные языки общего пользования. Если это невозможно, нам нужно найти какой-то альтернативный метод для удовлетворения наших потребностей на основе наших ограниченных аппаратных ресурсов.
Я уверен, что эта проблема должна была быть решена раньше. У кого-нибудь есть опыт работы с такими ограничениями, когда требуется обширная система кодирования шрифтов и символов? Если да, то какие кусочки мудрости вы можете предложить?
Ответы:
Это отличный вопрос.
Для решения вашего ответа по одному языку за раз;
вьетнамский
Вьетнамцы больше не используют идеографические символы, но их латинский набор довольно широк: посмотрите на пример, чтобы увидеть, сколько диакритических знаков он использует:
Причина в том, что каждый слог вьетнамцев имеет одну из шести тональных меток, которые влияют на произнесение - в дополнение к наличию одного нестандартного согласного символа и шести нестандартных гласных.
Unicode создает тональные метки над гласными; если у вас есть возможность сочинять глифы, вам понадобится только 13 дополнительных глифов для вьетнамцев, но если нет, вам понадобится 1 дополнительная согласная + 12 гласных * 6 тонов + 6 новых гласных без тонов = 79 дополнительных глифов в нижнем регистре и верхний регистр.
корейский язык
Корейский это плохие новости. Корейский написан через алфавит, называемый хангул , который, будучи технически алфавитом, состоящим всего из 68 букв (называемых джамо), на самом деле написан блоками размером в слог, построенными из джамо.
Пример того, как выглядит корейский текст:
Юникод имеет 11 172 завершенных блочных символа - но если вы хотите закодировать логику для составления конечных «блоков» самостоятельно, вы можете значительно сэкономить на наборе символов.
По сути, все слоги можно разделить на две категории - согласный + гласный и согласный + гласный + окончательный, где финал может быть гласным, согласным или составным. CV слоги построены с C слева и V справа; Согласные CVF состоят из блока CV сверху (слева направо) и финального снизу.
Итак, в основном вам нужно:
в общей сложности 108 символов . (Я не совсем уверен, что на корейском языке нет «лигатур», так что иногда построенный блок выглядит иначе, чем комбинация компонентов, но это лучшее, что мы пока получим).
Японский
Как вы правильно заметили, у японского языка есть фонетический алфавит - но на самом деле не один, а два! Хирагана и катакана - это слоги, оба из 48 одинаковых слогов, но используются в разных контекстах (катакана используется для иностранных слов, хирагана используется для грамматики).
К сожалению (для наших целей), на японском языке практически невозможно полностью писать, используя только эти два алфавита - китайские иероглифы или кандзи , как они известны в этом контексте, важны для любого японского текста.
Обязательный пример написания:
Помимо кандзи, вам понадобится 103 символа, чтобы отобразить два фонетических алфавита + 7 обычных кандзи, которые не существуют на китайском языке.
CKJ Пунктуация
Не эксперт в этом вопросе, но и китайцы, и японцы используют классическую восточноазиатскую пунктуацию. Unicode имеет 64 символа, посвященных пунктуации CJK и символам.
китайский язык
Итак, в нашем «бюджете» осталось 7631 символ. Будет ли этого достаточно, чтобы покрыть китайские иероглифы?
При существовании более 100 000 символов практически невозможно полностью охватить китайский набор символов, а активно используемый набор значительно меньше. Говорят, что для общей грамотности достаточно 2000-3000 символов (HSK, TOEFL-подобный тест по китайскому языку, требует знания 2800 символов для самого высокого уровня, HSK Advanced), 4000-5000 символов достаточно для образованного человека.
Принимая во внимание, что есть упрощенные и традиционные символы (первые используются в КНР, последние - на Тайване), которые отличаются по большому количеству символов, оставшихся 7600 символов, я бы сказал, было бы достаточно, чтобы охватить большинство вариантов использования для оба набора символов.
Не стесняйтесь спрашивать, если у вас есть какие-либо вопросы!
источник