Английские символы не отображаются при вводе текста с помощью метода индикации в Swing - PullRequest
2 голосов
/ 31 мая 2011

Я работаю над приложением, которое принимает текст на английском языке и выполняет транслитерацию с помощью пользовательского API стороннего производителя на индийский язык (один из нескольких поддерживаемых).Приложение ориентировано на Windows XP / 7 и Ubuntu.Мы используем пользовательский метод ввода, который загружает необходимый шрифт Indic и использует его для визуализации текста.Кроме того, пользователь может исправить транслитерированный текст, введя текст на английском языке и нажав пробел (аналогично тому, как работает Google Transliterate).

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

Я использовал пакет шрифтов ttf-indic-fonts-0.5.0, который поставляется с Ubuntu, и смог заменить некоторые из них.Для остальных, если я скопирую соответствующий шрифт из Windows (я разрабатываю его для Windows 7), тогда все проблемы будут решены.

Однако мы не можем распространять шрифты Windows вместе с нашим приложением и хотим открыть альтернативу.

Кроме попыток найти заменяющий шрифт, есть ли что-то еще, что мы делаем неправильно, или нам нужно проверить, чтобы убедиться, что английские символы можно вводить в JTextField при использовании шрифта Indic??

В качестве примера - из упомянутого выше пакета Ubuntu шрифт lohit_pa.ttf для Punjabi имеет эту проблему.Если я скопирую шрифт Windows по умолчанию для панджаби (raavi.ttf), то он работает нормально.

1 Ответ

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

Я нашел решение проблемы. Я установил шрифты в Windows (откройте шрифт, нажмите «Установить») и просматривал содержимое, используя карту символов. Эти шрифты имеют только глифы для рассматриваемого языка, а не английский. Я использовал FontForge , чтобы объединить 2 шрифта. (Автор Fontforge больше не предоставляет двоичные файлы, но если у вас есть доступ к Ubuntu, вы можете установить его из репозитория. Не повезло, если у вас есть только Windows). После этого я снова могу печатать на английском.

...