Sunday, 2024-12-22
FuSa Project
[ New messages · Members · Forum rules · Search · RSS ]
Русификация DCv8
Andy_maNDate: Tuesday, 2009-04-21, 3:11 AM | Message # 16
General - lieutenant
Group: Administrators
Messages: 427
Reputation: 26
Status: Offline
loading...
Quote (ErikPshat)
Я не заметил правда ограничений, про которые ты говорил.

1) Диалоги используют 2у байтовую кодировку...
Там когда нажимаешь отмена выводится диалог Are you .... ? Yes No
Так вот, Are you .... ? содержится в ибуте - ее придется заменить на короткую надпись
2) Язык диалогов
Ну здесь ты уже сам все сказал практически smile
Это надписи вида: Yes No Cancel ...
Берутся в зависимости от установленного языка, во всяком случае так было до vlf, да и там наверняка ситуация такая же...
Это уже зависит от изобретательности М33 - как там они решили выводить это дело

Quote (ErikPshat)
Всё пучком, правда знак подчёркивания почему-то не отображается:

Скрин всё равно порадовал smile
А насчет подчеркивания - у меня 2 объяснения
1) М33 явно использует парсинг(предварительную обработку) строк - например знак * заменяются на код х (крестик)
так что возможно и подчеркивание зарезервировано на что там... ( мб пробел smile )
2) Шрифт слишком мелкий и черта просто не прорисовывается biggrin

Quote (ErikPshat)
Хотя нет, проверил на оригинале, это не тень съезжает, а цифра с процентом съехала влево.

Вот насчет тени сложно сказать... мой код обрабатывает только то, что относится к русским символам, так что тут надо уже ковырятся (только стоит ли...)

 
ErikPshatDate: Tuesday, 2009-04-21, 9:19 AM | Message # 17
Lieutenant
Group: Users
Messages: 43
Reputation: 3
Status: Offline
loading...
Quote (Andy_maN)
Так вот, Are you .... ? содержится в ибуте - ее придется заменить на короткую надпись

Ага, я это заметил и в непонятках перепроверял, может вылез куда-то за пределы.
Но нет, всё правильно. Во время установки, если отказываешься от установки, то выползает этот запрос - Are you sure you want to cancel?
Вот он после замены на русский текст теперь японскими иероглифами показывает, чё за бред. Я сократил более, чем в 2 раза, написал "Отменить?", но всё равно та же надпись на японском из 3-х букв.
Причём именно японскими, а не просто иероглифами.

И как теперь быть?

По поводу тени думаю она на месте, а вот то, что над тенью почему убежала влево ))).
Вообще то хотелось бы чтобы поставить её на место... Или вообще тогда тень прибить.

Added (2009-04-21, 8:12 Am)
---------------------------------------------
Andy_maN, хочешь прикол )))

Я пошел хакерским путем. И прибил все тени в твоём последнем Интрафонте по адресу: 0х356С в секции PGF0.
Там было записано 00 00 80 42, что во float отображает 64. Я поменял 64 на 255, так тени ваще стали красными.
Тогда я просто поставил на 0, так они вообще пропали ))).
Это уже, по моему, более приемлемый вариант и не заметно косяков с тенью, и никто не заметит.

Added (2009-04-21, 9:19 Am)
---------------------------------------------
Оппа! опа... Америка Европа...

Я нашел ошибку в твоём intraFont!
В секции PGF0 в offset: 0х3584 (это 4 байта) во float стояло значение -1,75.
Я обнулил их и всё встало на свои места, и цифра, и тень под ней biggrin

Теперь остались пару пустяковых пункта:


  • Слово "Отмена" берётся из system_plugin.rco. Как бы сделать, чтобы брались значения из русской таблицы или этот файл придётся таскать с собой, если получится.
  • И этот грёбаный диалог: "Are you sure you want to cancel?". Он падла на английском хоть как пиши, всё равно отображает. А вот на русском нифига. Правда его можно так и оставить, редко кому пригодится функция делать отмену во время установки.
    А вообще, похоже этот шрифт берётся из самого Ибута, раз уж не поддерживает русскую кодировку.



Message edited by ErikPshat - Tuesday, 2009-04-21, 1:01 PM
 
Andy_maNDate: Tuesday, 2009-04-21, 2:06 PM | Message # 18
General - lieutenant
Group: Administrators
Messages: 427
Reputation: 26
Status: Offline
loading...
Quote (ErikPshat)
Слово "Отмена" берётся из system_plugin.rco. Как бы сделать, чтобы брались значения из русской таблицы или этот файл придётся таскать с собой, если получится.

Как и говорил нужно установить язык диалогов на русский - для этого нужно узнать какой NID в vlf.prx у функции установки языка диалогов и добавить вызов этой ф-ции с параметром 0x8 (код нашего языка) в ф-цию инициализации intraFontInit() - думаю должно сработать
либо искать где там внутри выставляется язык и подменить 1 (англ) на 8 (русск)

Quote (ErikPshat)
И этот грёбаный диалог: "Are you sure you want to cancel?"

Так он в юникоде должен быть - т.е. индификатор нашего языка 0x04 + код символа 0x10 (А) - 0x0410 (только в файле эти значения должны быть перевёрнутыми 0x1004)
Легче в блокноте написать и сохранить в UNICODE (UCS2) затем открыть в хексе и скопипастить

Quote (ErikPshat)
Я нашел ошибку в твоём intraFont! В секции PGF0 в offset: 0х3584 (это 4 байта) во float стояло значение -1,75. Я обнулил их и всё встало на свои места, и цифра, и тень под ней

Замечательно biggrin
Потом гляну откуда такое взялось - я сам такого значения не использовал

 
ErikPshatDate: Wednesday, 2009-04-22, 8:22 AM | Message # 19
Lieutenant
Group: Users
Messages: 43
Reputation: 3
Status: Offline
loading...
Andy_maN, не мог бы ты эти пару пунктов просканировать. А то я что-то в ступоре.
 
Andy_maNDate: Saturday, 2009-04-25, 8:59 PM | Message # 20
General - lieutenant
Group: Administrators
Messages: 427
Reputation: 26
Status: Offline
loading...
"Are you sure you want to cancel?"
хекс: 41 72 65 20 79 6F 75 20 73 75 72 65 20 79 6F 75 20 77 61 6E 74 20 74 6F 20 63 61 6E 63 65 6C 3F

меняем на (короче в два раза и в юникоде)
"Вы хотите выйти?"
хекс: 12 04 4B 04 20 00 45 04 3E 04 42 04 38 04 42 04 35 04 20 00 32 04 4B 04 39 04 42 04 38 04 3F 00

 
ErikPshatDate: Sunday, 2009-04-26, 2:46 AM | Message # 21
Lieutenant
Group: Users
Messages: 43
Reputation: 3
Status: Offline
loading...
Quote (Andy_maN)
меняем на (короче в два раза и в юникоде) "Вы хотите выйти?" хекс: 12 04 4B 04 20 00 45 04 3E 04 42 04 38 04 42 04 35 04 20 00 32 04 4B 04 39 04 42 04 38 04 3F 00

Энди, ты сам конечно не проверял )))
Я знаю, как пишется в юникоде и это я проверял. Но в результате выводится фигня, обычно одна или несколько букв.
Я просто писал "Вы хотите выйти?" через RCOEditor в system_plugin.rco, а потом в Хексе делал поиск по юникоду и копировал готовый точно такой же код.

Дело в том, что "Are you sure you want to cancel?" записано в файле не в юникоде, а прямым текстом. Но видимо буквы беруться из юникодовой таблицы. А если написать юникодом и потом этот юникод будет браться ещё раз из юникода, то получается ваще фигня.
Думаю, дело в этом. Поэтому здесь нужно писать обычным текстом, но подобрать символы, соответствующие юникодовой таблице русских символов.

Этот шрифт как раз берётся из system_plugin.rco, где действительно встроена юникодовая таблица, судя по тому, что я пишу через RCOEditor по русски, а в файле сохраняется текст в юникоде.

По поводу "Отмена", я так и не нашел ничего.
Менял по очереди все 01 на 08, всё перебрал, но результата не получил. Хорошо догадался через PSPLINK всё делать, а то бы ваще на месяц застрял бы ))).
Я короче на PSP выставил русский язык и снял образ flash1:/registry/system.dreg, где хранятся все настройки системы, включая языковые параметры.
Потом выставил на PSP английский язык. И сравнил эти файлы в Хексе. Обнаружил изменения в двух местах:


  • offset: 2E0E - русский код: 1D 04 D1 6F; английский код: 8B 9A 2E E3
  • offset: 2E5C - русский код: 08 00 00 00; английский код: 01 00 00 00

Если менять этот код, то и язык в системе меняется.
Но я проверил одну фигню. Логично было предположить, что если в английском system.dreg поменять 01000000 на 08000000, то должен язык в XMB поменяться на русский частично, с элементами английского интерфейса, т.к. я решил пока не трогать первый английский код: 8B 9A 2E E3.
И что, заменил я только 01 на 08 и в XMB всё стало на японском или на китайском, причём кнопки Х и О поменялись местами ))). А в Пандоре диалог "Are you sure you want to cancel?" стал точно таким как будто я изменил эту надпись на русскую, т.е. крякозябрами.

 
Andy_maNDate: Monday, 2009-04-27, 1:28 PM | Message # 22
General - lieutenant
Group: Administrators
Messages: 427
Reputation: 26
Status: Offline
loading...
Quote (ErikPshat)
Энди, ты сам конечно не проверял )))

Извиняюсь, на ложный след тебя навел из-за своей спешки
А дело всего лишь в кодировке - диалоги стандартные используют UTF-8 (а интрафонт UNICODE (UCS2))
Так что сохраняй в UTF-8 и копипасть

  • Пример:
    "Вы хотите выйти?"
    D0 92 D1 8B 20 D1 85 D0 BE D1 82 D0 B8 D1 82 D0 B5 20 D0 B2 D1 8B D0 B9 D1 82 D0 B8 3F


(незабывай, что программы обычно дописывают заголовок-индификатор для таких кодировок)

 
ErikPshatDate: Monday, 2009-04-27, 9:15 PM | Message # 23
Lieutenant
Group: Users
Messages: 43
Reputation: 3
Status: Offline
loading...
Quote (Andy_maN)
А дело всего лишь в кодировке - диалоги стандартные используют UTF-8

Да! Да! Да! Уряяя! Благодарю за наводку!!!

Всё заработало. Одной проблемой меньше. Там ещё один диалог в UTF-8, когда стоит кастомная тема, то он выскакивает и говорит типа "У вас установлена кастомная тема. Отключите тему перед запуском этой программы." Его тоже так же удалось побороть. Жаль, что UTF-8 тоже съедает в два раза больше символов. И кто только придумал такие кодировки, что перед каждым байтом ещё надо добавлять лишний байт D0 или D1, кроме знаков препинания.

Осталось разобраться с NID's в system_plugin.rco. Там всего-то одно слово "Cancal" мешает и бросается в глаза.
Ну тут я полный ноль.
Может можно что-то выставить через исходники и скомпилировать. Я просматривал исходник, но что-то ничего не нашел похожего.

У меня возникла идея.
Может сделать Лоадер EBOOT.PBP, который будет втихаря незаметно копировать содержащийся в себе system_plugin.pco во flash0 с заранее переведёнными английскими диалогами, а затем будет передаваться управление Пандоре, а установщик пандоры переименовать, например в 1.bin.


Message edited by ErikPshat - Monday, 2009-04-27, 9:40 PM
 
lupusDate: Monday, 2009-04-27, 10:23 PM | Message # 24
Major
Group: Users
Messages: 87
Reputation: 1
Status: Offline
loading...
Quote (ErikPshat)
Там всего-то одно слово "Cancеl" мешает и бросается в глаза.

Эрик, ты впринципе найти его не можешь или не знаешь, что с ним делать?
как вариант - Cancel -> OTMEHA (все большие англ. буквы)

 
Andy_maNDate: Monday, 2009-04-27, 11:24 PM | Message # 25
General - lieutenant
Group: Administrators
Messages: 427
Reputation: 26
Status: Offline
loading...
Quote (ErikPshat)
У меня возникла идея. Может сделать Лоадер EBOOT.PBP, который будет втихаря незаметно копировать содержащийся в себе system_plugin.pco во flash0 с заранее переведёнными английскими диалогами, а затем будет передаваться управление Пандоре, а установщик пандоры переименовать, например в 1.bin.

всё проще:
vlf.prx
0x97CC: 01 -> 08
Теперь все стандартные элементы диалогов будут на родном языке biggrin

Жду полного перевода - надеюсь ты не против, если я выложу его здесь в разделе руссифицированных программ? smile

 
ErikPshatDate: Wednesday, 2009-04-29, 4:40 AM | Message # 26
Lieutenant
Group: Users
Messages: 43
Reputation: 3
Status: Offline
loading...
Quote (Andy_maN)
всё проще: vlf.prx 0x97CC: 01 -> 08 Теперь все стандартные элементы диалогов будут на родном языке

Да ну! Ещё не проверил, но очень рад новости!!! Этот момент, самый главный. Я же менял буквально все до одного значения с 01 на 08 и не нашел. Наверное пропустил, т.к. была монотонная работа и автоматом не обратил внимания, что Cancel и Отмена - это разные вещи ))).

Конечно я не против. Кроме того, считай это полностью твоя заслуга, т.к. просто перевести диалоги любой дурак сможет, а найти загвоздки, такому, как я, не под силу ))).

Всё, проверил, всё робит. Я в восторге! Не знаю, как выразить благодарность, а то я уже не знал, что делать.
Теперь установщик DDC полностью переведён!

Но вот ещё проблема небольшая с установщиком прошивки, там опять этот intraFont в ms0:/TM/DC8/vsh/module/...
В общем такая история.
Хоть с переводом, хоть без перевода, но вырисовывается такая картинка, но только на стартовом экране:

Однако на остальных отображается всё чётко, например как здесь:

VLF.PRX в ms0:/TM/DC8/vsh/module/ немного больше по размеру, чем в ms0:/PSP/GAME/DC8/vlf.prx
Но, как я говорил, я его подправил, аналогично, как с предыдущим разом, по идее эта правка больше ни на что не влияет, кроме активации русского интерфейса из system_plugin.rco и ltn0.pgf. Так что на него грешить из-за багов нет повода.
Что интересно, языковые параметры он берёт из файла настроек ms0:/TM/DC8/registry/system.dreg
Если я подсовываю system.dreg с другим языком системы, то в Пандоре оно показывает "Ввод", "Отмена" на том языке, а если его удалить, то показывает на китайском ))).

Эти VLF.PRX и intraFont.prx находятся в EBOOT.PBP в запакованном виде и при установке Пандоры извлекаются в ms0:/TM/DC8/vsh/module/... в том же виде. Причём intraFont.prx в Ебуте и внешний идентичны. Непонятно, зачем Алекс его дублировал.

Короче, твой Интрафонт при установке Пандоры показывает замечательно, а при установке Прошивки, съезжает на стартовом экране.
Ну не съезжает, а начало берёт по центру и как бы форматируется по левому краю, хотя должен центрироваться.
Зато текст и тени соответствуют друг другу.

Ещё несколько проблематично с переводом, уж очень мало места оставлено под перевод. Русские слова всегда длиннее английских и часто невозможно подобрать короткое слово.
Например, как перевести диалог в конце установки: "Х Reset О Shutdown". Где Shutdown - Выключить легко влазиет, а что написать на месте Reset ))).

Вот я тебя загрузил angel


Message edited by ErikPshat - Wednesday, 2009-04-29, 4:50 AM
 
SeeDDate: Wednesday, 2009-04-29, 9:29 AM | Message # 27
Sergeant
Group: Users
Messages: 33
Reputation: 0
Status: Offline
loading...
Quote
а что написать на месте Reset

например Сброс и Выкл. а в списке и правда такое чувство, что просто форматирование не по центру получилось, а по правому краю.

 
ErikPshatDate: Sunday, 2009-05-10, 4:24 PM | Message # 28
Lieutenant
Group: Users
Messages: 43
Reputation: 3
Status: Offline
loading...
Наверное лучше "Х Выход О Выключить".

Ну это последнее дело, а вот форматирование напрягает cry ))).

Added (2009-05-10, 4:24 Pm)
---------------------------------------------
Энди, знаю, что ты занят своим проектом.
Может поможешь ещё в последнем этапе, я уже всё перерыл, что мог, но больше ума не хватает wink

 
Andy_maNDate: Sunday, 2009-05-10, 8:49 PM | Message # 29
General - lieutenant
Group: Administrators
Messages: 427
Reputation: 26
Status: Offline
loading...
Вот подправил интрафонт - теперь будет работать надежнее и без касяков ^^
Как и говорил жду полностью руссифицированую версию

Attachments: intraFont.prx (17.9 Kb)
 
ErikPshatDate: Tuesday, 2009-05-12, 11:12 AM | Message # 30
Lieutenant
Group: Users
Messages: 43
Reputation: 3
Status: Offline
loading...
Andy_maN, респект! Поглядим...

Похоже приготовлен приятный сюрприз ))).

Added (2009-05-12, 11:12 Am)
---------------------------------------------
ОК! Проверил переведённый установщик прошивки. Но совсем не всё Айс. Видимо диалоги были подогнаны под английский шрифт.
В переводе шрифт чуть шире, поэтому:
1. Не все строчки центрируются точно, некоторые правее, некоторые левее центра получаются.
2. Выделение строк не совпадает, то чуть в стороне, то поуже самой строки.

В общем я установщик resurrection.prx перевёл и собрал. Вечером соберу всё в один EBOOT.PBP и выложу посмотреть.
Видимо нужно intraFont подгонять под готовый перевод, если это возможно.
По идее в файле можно в хексе вычислить координаты X и Y отступа слева и сверху.


Message edited by ErikPshat - Tuesday, 2009-05-12, 11:15 AM
 
Search:

Copyright MyCorp © 2024
Create a free website with uCoz