[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум Panda3D - по русски » Panda3D » Общие вопросы » Русская кодировка (DirectEntry)
Русская кодировка
ГонкилодДата: Пятница, 26.08.2011, 19:13 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 10
Награды: 0
Репутация: 0
Статус: Offline
Как сделать кодировку русского языка для DirectEntry? Чтобы русскими буквами вводить. Знаю вопрос не лёгкий, но может кто знает?
 
serg-kkzДата: Воскресенье, 28.08.2011, 22:56 | Сообщение # 2
Генерал-лейтенант
Группа: Модераторы
Сообщений: 678
Награды: 3
Репутация: 16
Статус: Offline
Гонкилод, ковырял эту проблему, и как я понял DirectEntry кодирует текст в koi8_r, зачем х.з. Пробоваю перекодировать, мля что-то не фига у меня не получается. В голове выход уже есть, но с этим ещё не сталкивался.

ООП  -  
 
ninthДата: Воскресенье, 28.08.2011, 23:28 | Сообщение # 3
Admin
Группа: Администраторы
Сообщений: 1554
Награды: 5
Репутация: 46
Статус: Offline
Скорее всего проблема та же что и с прочими надписями - дефолтный шрифт не знает русского языка. Подгрузи какой-нить ttf с русскими символами, например стандартный arial и попробуй. Под линуксом у меня такой вариант нормально работает. Под виндой сейчас проверить не могу.
Code
e = DirectEntry(entryFont = loader.loadFont('res/arial.ttf'))
 
ГонкилодДата: Понедельник, 29.08.2011, 12:16 | Сообщение # 4
Рядовой
Группа: Пользователи
Сообщений: 10
Награды: 0
Репутация: 0
Статус: Offline
Да, грузил, грузил)) Только всё равно не хочет работать. serg-kkz, у меня тоже в голове мысль такая крутилась, что он независимо от шрифта, под себя кодирует. Шрифт меняется, а вот русские символы не появляются...
 
ninthДата: Понедельник, 29.08.2011, 16:30 | Сообщение # 5
Admin
Группа: Администраторы
Сообщений: 1554
Награды: 5
Репутация: 46
Статус: Offline
Проверил под виндой - действительно косячок-с. Текст поступает в кодировке cp1251, это можно проверить получив код символа через ord(), нопри этом стандартной функцией decode('cp1251') не декодируется почему-то.
Если поместить в поле принудительно текст в utf то отображается нормально.
Code
e = DirectEntry(entryFont = loader.loadFont('res/arial.ttf'), initialText = u'ЫЫЫ', scale = 0.07)

Я ещё поковыряю.
 
ninthДата: Вторник, 30.08.2011, 22:15 | Сообщение # 6
Admin
Группа: Администраторы
Сообщений: 1554
Награды: 5
Репутация: 46
Статус: Offline
Вроде как нашли в чём причина такого поведения. Обещали внести соответствующие изменения, так что завтра-послезавтра можно будет попробовать выкачать свежий билд и проверить.
 
ninthДата: Четверг, 01.09.2011, 11:39 | Сообщение # 7
Admin
Группа: Администраторы
Сообщений: 1554
Награды: 5
Репутация: 46
Статус: Offline
Исправили. Проверил на последнем билде 1.8.0
 
Форум Panda3D - по русски » Panda3D » Общие вопросы » Русская кодировка (DirectEntry)
Страница 1 из 11
Поиск: