Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Динамическое определение поддержки языка шрифтом (http://www.flasher.ru/forum/showthread.php?t=115225)

Peregrin 22.08.2008 21:04

Динамическое определение поддержки языка шрифтом
 
Такая проблема: пишу приложении для Нокии (Nokia), естественно в приложении используется специальные шрифт Nokia Standard. Текст для всего приложения передается через xml-файл и может содержать любые символы, а именно, для каждой страны будет свой xml, на своем языке. Шрифр Nokia Standard поддерживает английский, русский и другие родственные языки, но поддерживает арабский, китайский, грузинский и др.
Так вот, мне нужно динамически определить поддерживает ли шрифт данный язык или нет, если нет, то я переключусь на Arial.
Если нет выхода, придется просить у заказчика перечень всех поддерживаемых языков их шрифтом.

Wolsh 22.08.2008 22:55

Т.е. Вы предполагаете что на устройстве будет использоваться язык, для которого нет поддержки у шрифта Nokia Standard ?

Peregrin 23.08.2008 12:38

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

etc 23.08.2008 13:08

Не знаю, как сейчас, а раньше Nokia использовала шрифт Nokia Sans * (OT, например, с кириллицей).

Wolsh 23.08.2008 13:45

Да не, я не против того чтобы корейцы пользовались телефонами с английским интерфейсом. Просто у меня некоторое несоответствие вызывает сочетание двух слов: "Standart", что означает раз и навсегда установленный набор символов, и "Определить динамически". Т.е. либо файл этого шрифта намертво засекречен и не можете узнать, какие языки он поддерживает, либо понятия стандарта у Нокии своеобразны.
Ну в общем я вижу только один способ определять "динамически" - создать текстовое поле, забить туда контрольный текст на нужном языке и спросить textWidth. Если поля неподдерживаемых символов не забиты в шрифте рамочками-пустышками, получим ноль или около того))) Имхо, открыть шрифт в FontExpert гораздо проще и стабильнее)))

Peregrin 23.08.2008 13:51

__etc, незнаю, что они использовали раньше, когда было это "раньше" (я пишу приложения для них с 2007 года), но сейчас они исплозуют следующий шрифты:
Nokia Large
Nokia Sans Wide
Nokia Standard
Nokia Standard Light
Nokia Standard Multiscript

Но это не меняет дела. Можно ли как-то определито поддерживаются те или иные символы или нет? Может нужно просто пробегаться по символам и вытаскивать их ASCII-коды?

Цитата:

Сообщение от Wolsh (Сообщение 759863)
Ну в общем я вижу только один способ определять "динамически" - создать текстовое поле, забить туда контрольный текст на нужном языке и спросить textWidth. Если поля неподдерживаемых символов не забиты в шрифте рамочками-пустышками, получим ноль или около того)))

а если в тексте будет хоть одна цифра или какой-нить символ, который поддерживается, то textWidth не будет равен нулю. И что тогда?

Wolsh 23.08.2008 15:13

Не, ну если Вы не в состоянии составить
Цитата:

контрольный текст
без цифр...

Peregrin 23.08.2008 16:36

Wolsh, т.е. Вы предлагаете создать отдельное текстовое поле и поместить в него текст, который берется из xml'а, и проверить свойство textWidth, предварительно отчистив текст от цифр, пробелов, запятых и т.д. Я правильно понимаю?

Wolsh 23.08.2008 19:01

Цитата:

цифр, пробелов, запятых
Ну вообщето это очень легко, ведь эти символы имеют точно известную кодировку.
А вот "пробежаться по символам..." точно не получится)) Да и ASCII тут совсем не причем, речь вроде о шрифте а не о клавишах))
Послушайте, символы каждого языка имеют совершенно определенный UTF-код. Цифры и прочая нечисть туда не попадают. Для предложенной мной проверки Вам надо только запостить в поле десяток символов языка - т.е. из того диапазона кодов, который этому языку соответствует. Если в шрифте есть глифы для этих кодов, у поля будет ширина.
Не надо чистить загруженный текст, мало ли, там может одни цифры в начале будут или латинское название компании))))

Peregrin 23.08.2008 19:11

Wolsh, спасибо, я уже реализовал по-своему: взял текст из xml'а, отчистил от пробелов и всех знаков препинания, пробежался по строке, вытащил код каждого символа, и по среднему значения определяю: если оно больше 255, то перечлючаю шрифт на Arial Unicode, если нет, то оставляю без изменений.
Конечно, это немного топорно. Было бы неплохо, если бы во флеше была функция, которая показывает поддерживается ли язык шрифтом.


Часовой пояс GMT +4, время: 03:41.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.