![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Такая проблема: пишу приложении для Нокии (Nokia), естественно в приложении используется специальные шрифт Nokia Standard. Текст для всего приложения передается через xml-файл и может содержать любые символы, а именно, для каждой страны будет свой xml, на своем языке. Шрифр Nokia Standard поддерживает английский, русский и другие родственные языки, но поддерживает арабский, китайский, грузинский и др.
Так вот, мне нужно динамически определить поддерживает ли шрифт данный язык или нет, если нет, то я переключусь на Arial. Если нет выхода, придется просить у заказчика перечень всех поддерживаемых языков их шрифтом. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Т.е. Вы предполагаете что на устройстве будет использоваться язык, для которого нет поддержки у шрифта Nokia Standard ?
__________________
Reality.getBounds(this); |
|
|||||
|
я не предполагаю, я утверждаю, что так оно и будет. Для каждой страны текст будет написан на родном языке: корейский, японский, арабский и т.д.
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Не знаю, как сейчас, а раньше Nokia использовала шрифт Nokia Sans * (OT, например, с кириллицей).
|
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Да не, я не против того чтобы корейцы пользовались телефонами с английским интерфейсом. Просто у меня некоторое несоответствие вызывает сочетание двух слов: "Standart", что означает раз и навсегда установленный набор символов, и "Определить динамически". Т.е. либо файл этого шрифта намертво засекречен и не можете узнать, какие языки он поддерживает, либо понятия стандарта у Нокии своеобразны.
Ну в общем я вижу только один способ определять "динамически" - создать текстовое поле, забить туда контрольный текст на нужном языке и спросить textWidth. Если поля неподдерживаемых символов не забиты в шрифте рамочками-пустышками, получим ноль или около того))) Имхо, открыть шрифт в FontExpert гораздо проще и стабильнее)))
__________________
Reality.getBounds(this); |
|
|||||
|
__etc, незнаю, что они использовали раньше, когда было это "раньше" (я пишу приложения для них с 2007 года), но сейчас они исплозуют следующий шрифты:
Nokia Large Nokia Sans Wide Nokia Standard Nokia Standard Light Nokia Standard Multiscript Но это не меняет дела. Можно ли как-то определито поддерживаются те или иные символы или нет? Может нужно просто пробегаться по символам и вытаскивать их ASCII-коды? а если в тексте будет хоть одна цифра или какой-нить символ, который поддерживается, то textWidth не будет равен нулю. И что тогда? Последний раз редактировалось etc; 23.08.2008 в 17:41. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Не, ну если Вы не в состоянии составить
Цитата:
__________________
Reality.getBounds(this); |
|
|||||
|
Wolsh, т.е. Вы предлагаете создать отдельное текстовое поле и поместить в него текст, который берется из xml'а, и проверить свойство textWidth, предварительно отчистив текст от цифр, пробелов, запятых и т.д. Я правильно понимаю?
|
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
А вот "пробежаться по символам..." точно не получится)) Да и ASCII тут совсем не причем, речь вроде о шрифте а не о клавишах)) Послушайте, символы каждого языка имеют совершенно определенный UTF-код. Цифры и прочая нечисть туда не попадают. Для предложенной мной проверки Вам надо только запостить в поле десяток символов языка - т.е. из того диапазона кодов, который этому языку соответствует. Если в шрифте есть глифы для этих кодов, у поля будет ширина. Не надо чистить загруженный текст, мало ли, там может одни цифры в начале будут или латинское название компании))))
__________________
Reality.getBounds(this); |
|
|||||
|
Wolsh, спасибо, я уже реализовал по-своему: взял текст из xml'а, отчистил от пробелов и всех знаков препинания, пробежался по строке, вытащил код каждого символа, и по среднему значения определяю: если оно больше 255, то перечлючаю шрифт на Arial Unicode, если нет, то оставляю без изменений.
Конечно, это немного топорно. Было бы неплохо, если бы во флеше была функция, которая показывает поддерживается ли язык шрифтом. |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:47. |
|
|
« Предыдущая тема | Следующая тема » |
|
|