Технические вопросы руссификации

Решил создать тему, в которую все, кто ковыряет движок, могли бы писать свои наработки.

Так, например, есть проблема, связанная с невлезанием строк в отведённое им на экране место, причём заранее угадать это из-за разной ширины символов невозможно. Так, если посчитать, то букв «Ж» туда влезает всего-то около сотни, но это же не повод все фрагменты разбивать на короткие фразы, верно?

Первое, что приходит в голову – попытаться уменьшить размер шрифта.

Итак, что я пробовал:
Шаг 1.
Вроде как маны говорят, что за это отвечает свойство 'size' в параметре 'styleoverrides' в файле 'ui-strings.rpy'.
Попробовал скормить такое:
displayDict['en'].styleoverrides = {'font':mainfont, 'language':'western', 'size':-2, 'line_spacing':0}
Но получил ошибку 'SDL_ttf render failed'. Народ активно пытается её побороть, но, как я понял, всё сводится к косяку некой библиотеки.
Увы.

Шаг 2.
Шрифт. Так и не нашёл, где прописывается дефолтный шрифт (и его размеры), зато нам вполне под силу использовать какой-то свой. Для этого создаём в папке со скриптами 'game' подпапку 'fonts', куда и кладём файл со шрифтом. После этого указываем его в 'ui-strings.rpy' как-то так:

rufont = 'fonts/DejaVuSansCondensed.ttf'
displayDict['en'].styleoverrides = {'font':rufont, 'language':'western', 'line_spacing':0}
displayDict['en'].sayfont = rufont

Но мои эксперименты со шрифтами ни к какому сколь-нибудь интересному результату не привели :(

Шаг 3.
А это что за нахер там такой – 'line_spacing'? А это – весьма любопытный нахер. Расстояние это межстрочное. Вот с ним поиграться стоит. И на текущий момент именно это свойство я и предложил бы использовать. Вместо нуля принимает как положительные, так и отрицательные значения. Положительные увеличивают отступ, отрицательные уменьшают. Значение в пикселях.

displayDict['en'].styleoverrides = {'font':mainfont, 'language':'western', 'line_spacing':-3}

Так, при значении '-4' мы выгадываем ещё одну строчку, тем самым увеличивая кол-во влезающих 'Ж' примерно до 140, что весьма неплохо. Впрочем, при значении '-3' влезает столько же, только нижняя строка практически касается нижней рамки. Зато интервал всё же больше, а в большинстве фрагментов до 4-й строки всё равно дело не дойдёт, так что я – ЗА значение '-3'.
К слову, если мерить буквами 'о', то их влезает 280 штук, букв 'п' влезет аж 320 штук, а 'а' – тоже 320. Если померить 'Жопа'-ми, то это замечательное слово (именно с большой буквы, с пробелами между словами!) влезает 48 раз, что составляет 240 символов. Такая вот увлекательная у нас арифметика выходит :))))))

Но! Но обращаю внимание, что параметр 'styleoverrides' – глобальный, т.е. во всей игре эти отступы уменьшатся, поэтому злоупотреблять особо не стоит.

Ссылка по теме: http://www.renpy.org/wiki/renpy/doc/reference/List_of_Properties

PS Ссылка на файл шрифта с поддержкой жирности playtime_cyr2.ttf: http://vayurik.ru/ks/playtime_cyr2.ttf
Написал DOOMer 1 августа 2013, 15:43 Перевод 21 комментарий

Комментарии

То, что при -3 буквы касаются нижней рамки, я думаю, ничего страшного.
Про «злоупотреблять особо не стоит» не понял. Либо меняем, либо нет, так ведь?

xBlackJackx 01.08.13 в 15:53 · # ·
0

скрытые комментарии (12 шт.)

Это я к тому, что вдруг кто-нить предложит какое-то ацкое значение, типа '-10' :D
Тогда туда точно всё влезет, ещё и останется, но только смотреться это будет... И в меню в том числе.

DOOMer 01.08.13 в 15:56 · # ·
0

Главное, чтобы строки друг на друга не налезали. И чтобы глаза не ломались при чтении. А так, я не против и такого варианта. Как не против и переноса текста на другую строку. Единственный вопрос у меня вызывают блоки типа n/n/n, в которых реально много текста, сверху донизу. Что вот там будет...

xBlackJackx 01.08.13 в 16:02 · # ·
0

Там со значением -3 должно быть всё в порядке, так как мы изначально стремились не превышать лимит знаков, но в крайнем случае (а это можно будет определить только при тестировании) можно кол-во n-ок уменьшить, так как n/ -обозначает пропущенную строку, если мне не изменяет память.

6_aman 01.08.13 в 18:52 · # ·
0

Нет, всё не так, ребята.
«n» – это «заметка», она выводится совершенно иначе и проблемы невлезания текста в блок нет, т.к. там, если мне память не изменяет, всё же уже года два прошло, как я в KS играл, этот блок – во весь экран.

А я сейчас проверю, чё :)

DOOMer 02.08.13 в 09:16 · # ·
0

Да, так и есть:
ss_ks_n.png

DOOMer 02.08.13 в 09:21 · # ·
0

Я имею в виду, когда там будет настоящий текст, который в большинстве случае на русский переведён с использованием большего числа символов

Есть не просто междустрочное расстояние в этих блоках, но оно ещё и разное между самими предложениями. Где-то больше, где-то меньше.

xBlackJackx 02.08.13 в 09:30 · # ·
0

Ну, т.к. тут тоже работает уменьшение отступа между строками, то не думаю, что будут проблемы. А если и будут, то все мы сможем их отловить только по результатам тестирования, думаю.

DOOMer 02.08.13 в 09:36 · # ·
0

Вот это, кстати, то самое 'line_spacing':-3

DOOMer 02.08.13 в 09:37 · # ·
0

Ну, в принципе, нормально всё. Я только не видел, как будет выглядеть строчная буква «д» или «у» над какой-нибудь заглавной, той же «Д», например, или над строчной «б».

xBlackJackx 02.08.13 в 09:51 · # ·
0

О! Ты прав! Сейчас потещу, чтобы одна над другой – сцпятся или нет хвостами?

DOOMer 02.08.13 в 11:44 · # ·
0

Всё прилично:
ss_ks_n1.png

DOOMer 02.08.13 в 11:48 · # ·
0

Близко, конечно, но вроде вполне приемлемо. А, всё равно будем бета-тест делать (ну, быстренько), тогда и будем уже говорить, насколько удобно час-другой читать текст.

xBlackJackx 02.08.13 в 12:39 · # ·
0

Так, не зря я весь день сегодня ебался трахался в попытках извлечь каким-то ректальным образом шрифт с поддержкой жирности в кириллице. Уж и так, и эдак, нету шрифта! Уж и софтом специфическим в «песочнице» игру запускал, и из PDF-мануала 1-го акта пытался шрифт извлечь... Даже w8m в личку на Хоняках написал, но он пока так и не ответил.
Решение (точнее, направление, куда двигаться) нашёл, как ни странно, всё там же – у Хоняк: http://honyaku-subs.ru/forums/viewtopic.php?f=20&t=144#p1726

Если точнее, делаем следующее:
1. Файл с именем script.rpy создаём в папке game, в него кладём то, что приведено по ссылке выше в решении Б.
2. Переименовываем расширение оригинальному ui_labels.rpyc в папке game, например, в ui_labels.rpyc_. Копируем в эту же папку полученный одним из двух способов (лень искать, в блоге была тема про извлечение исходников скриптов) файл ui_labels.rpy. Находим в нём блок, начинающийся с «label start:» и удаляем его.

Всё. Теперь после запуска игры жмакаем «Начать», ждём, пока опять не появится меню, и закрываем игру. В появившейся папке «extracted» находим много интересного :)

DOOMer 03.09.13 в 15:15 · # ·
0

Пока остановился на значении 'line_spacing':-1
При таких настройках влезает 4 строки, примерно 280 символов. Столько же влезает и при значении 0, но тогда нижняя строчка липнет к нижней рамке.
То ли шрифт кириллический в принципе меньше (тогда-то я ковырялся с нативным шрифтом), то ли просто землица попросела... В общем, пока пусть будет -1, а потом, по итогам тестирования примем окончательное решение.
Кстати, можно же и рамку увеличить, есичё :)

DOOMer 13.11.13 в 19:47 · # ·
0

скрытые комментарии (6 шт.)

Ь +

6_aman 13.11.13 в 19:52 · # ·
0

Не, простым увеличением размера плашки проблему не решить – если текст не влезает, то плашка всё равно поднимается вверх. Т.е. это надо код ковырять, а ну его нах. Будем упихивать невпихуемое, коли таковое встретится.

DOOMer 13.11.13 в 20:49 · # ·
0

У меня вообще проблемно получилось менюшку вставить:
scs0u8w1qh0w.png
hp1xjmhvu1s7.png
7s3nmc7pv70s.png
s101zw8fnuoz.png

6_aman 13.11.13 в 21:18 · # ·
0

Причём при уменьшении параметра высоты знаков, межстрочные интервалы сохраняются прежними :(

6_aman 13.11.13 в 21:20 · # ·
0

Это с моими скриптами, которые я вчера выложил? :(
Или это ты уже у себя там наковырял? :)

DOOMer 14.11.13 в 07:59 · # ·
0

Я у себя, с месяц назад ещё делал...

6_aman 14.11.13 в 19:55 · # ·
0
Перевод
Перевод:
текст с английского на русский
Создан:
23 мая 2013, владелец: 6_aman
Скачали:
44 чел.
Права доступа:
войти все
видеть чужие версии все
скачивать результат никто
оценивать перевод группа
комментировать перевод группа
переводить группа
читать блог все
комментировать блог все
писать в блог группа
анонсировать модераторы
редактировать оригинал никто
редактировать описание никто
управлять группой никто
Участие в группе по приглашению от создателя
Готово:
90.06% КП = 1.0