Oolite
Имя
Пароль
 Запомнить
  Re: Ваши успехи в игре
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 02.12.12
Сообщений: 795
Теперь я выдвигаю свою версию объяснения, почему мы наблюдаем такие странные эффекты с русским шрифтом - насколько я это понял. :)

Файл oolite.exe является одновременно и первоначальным загрузчиком ресурсов, и их дальнейшим обработчиком.

Поскольку ресурсы для него хранятся в отдельном, разобраном виде, в виде файлов в служебных папках "Resources" и др., в том числе и в виде пользовательских скриптов в папке "AddOns", то первоначально при запуске национальная кодовая страница ещё не может обработаться, поскольку она загружается - внимание! - из любого пользовательского русификатора, находящегося в папке "AddOns", и то - если такой русификатор есть! :)

Поэтому путь до каталога с Oolite не должен содержать символов национального алфавита, а должен быть написан на латинице - потому что по стандарту английский алфавит входит В ЛЮБУЮ НАЦИОНАЛЬНУЮ КОДОВУЮ СТРАНИЦУ.

Далее, дойдя до ресурсов национальных шрифтов, загрузчик oolite.exe загружает их, и с этого момента ДОЛЖЕН БЫТЬ способен правильно обрабатывать и другие ресурсы с символами национальной кодовой страницы, которая в этом момент подгружена.

Разработчики Игры - спасибо им за это! - предусмотрели в своей программе подгрузку национальных кодовых страниц. В этом может убедиться любой, кто не поленится открыть файл "oolite-font.plist" из папки "Oolite\oolite.app\Resources\Config" и прочитать оттуда комментарии и пример того, как правильно подключить национальную кодовую страницу. Я приведу этот кусок здесь:
Код:
   /*
      Currently, Oolite supports the following encodings for fonts:
      windows-latin-1      (Windows code page 1252)
      windows-latin-2      (Windows code page 1250)
      windows-cyrillic   (Windows code page 1251)
      windows-greek      (Windows code page 1253)
      windows-turkish      (Windows code page 1254)
      
      OXPs with fonts in each encoding (using Helvetica) are available at:
      http://svn.berlios.de/svnroot/repos/oolite-linux/trunk/tests/encodings/
   */
   encoding = "windows-latin-1";
   texture = "oolite-font.png";


А далее в дело вступает уже обработчик ресурсов, находящийся в другой части файла oolite.exe - он должен передавать правильные данные с названиями файлов, включающих символы национального алфавита в операционную систему, которая и должна их правильно обрабатывать и подгружать-выгружать искомые файлы.

Так вот, если происходит ошибка в обработке символов национального алфавита, то она возможна:
а) в кривом пакете ОХР-русификации , который не сумел правильно подключить национальную кодовую страницу
б) в кривом обработчике в файле oolite.exe подгружаемых символов национального алфавита, которые операционная система не может "узнать".
в) ну, и до кучи - возможно, в кривой операционной системе, которая не может правильно обработать правильно переданные ей символы национального алфавита :) (вероятность, конечно, очень мизерная)

Пакет ОХР-русификатор устроен очень просто: там надо лишь только правильно указать свою национальную кодовую страницу, правильно указать графическую матрицу с символами национального алфавита и перевести кодировку файла "oolite-font.plist" в международный стандарт "UTF-8".

Последнее действие нужно для того, чтобы русификатор правильно работал не только под Windows, но и под другими OS.

Я имею опыт написания кривого пакета ОХР-русификатора - когда забыл перевести в кодировку "UTF-8", и мой русификатор работал под Виндой, но не работал - какая там у strangerа OS - Mac, по-моему? :oops:

Но идём дальше в наших рассуждениях.

Так вот, когда русификатор подключен, то сразу видно - он или работает (и мы видим правильное отображение символов национального алфавита на экране), либо не работает (на экране "кракозябры").

Так вот - у меня русификатор на Винде работает. Но, поскольку после этого я всё равно наблюдаю явление: Oolite в Windows XP правильно считывает названия файлов изображений на кириллице и загружает их в Игру, и не может считать названия музыкальных файлов на кириллице и загрузить их в Игру,

то я и делаю свой вывод: "виновата криво написанная программа oolite.exe"

Вот моё объяснение причин с точки зрения программиста (тут я знаю, что я не самый лучший программист, и есть вероятность, что и я где-то ошибаюсь в своих рассуждениях).

Но, по крайней мере, это хоть объяснение программиста, а не "кухарки" или "школьника". :)

К сожалению, самый главный вопрос - "А что делать-то тем, у кого не работает?" - так и остаётся без ответа. :(

У меня, хоть и криво, но программа работает с русскими названиями файлов, и я буду и дальше использовать эту возможность русификации - поскольку мне удобнее видеть всё-таки названия файлов на русском языке.

Что будут делать остальные?

Не знаю.

Учить, наверное, английский язык и использовать латиницу для написания своих ОХР, как это делает stranger.

Либо попытаться разобраться самостоятельно, что происходит в их операционных системах, учитывая мои объяснения. Я сделал всё, что смог - подробно объяснил процесс, как он мне видится с моей колокольни. :)


  Re: Ваши успехи в игре
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 15.05.11
Сообщений: 1531
To Tch

Ну спасибо, просветили.
Еще раз и медленно, как милиционеру.
1. Исходник Оолита написан на Objective C. exe-файл появляется только после сборки пакета для винды. Так что Ваши умные рассуждения про кривой exe-файл - ни о чем. Проблема с чтением файлов с именами на кириллице лежит не на этом уровне.
2. Разработчики программы ясно объявили рекомендации, соблюдение которых гарантирует стабильную работу программы. Корректная поддержка национальных кодировок, очевидно, не является для них приоритетной задачей. Имеют право, это открытый проект, и их интересует в первую очередь шлифовка игровой механики, а не удобство национальных лакализаторов. Отсюда два пути
а) принять эти очевидные ограничения и не наступать на грабли
б) упорно идти своим самобытным путем
Очевидно, Вам ближе физкультурный подход.
Флаг Вам в руки. Я лично не намерен тратить время на борьбу с граблями. Почему конкретно возникают нелады с кириллицей - мне лично неинтересно. Я предпочитаю тратить время на более продуктивные занятия.
Тоже имею право.


  Re: Ваши успехи в игре
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 02.12.12
Сообщений: 795
stranger, как Вы после нашего обмена "любезностями"? :)

Я взбодрился сразу, а то после бессонной ночи был как закумаренный. :) Ладно, езжайте в поля с лёгким сердцем - я не обиделся на Ваши резкие слова. :)


  Re: Ваши успехи в игре
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 15.05.11
Сообщений: 1531
To Tch

Пустяки, дело привычное :)
Я сегодня даже пожрать забыл - собрал рюкзак и засел разбираться с недоделками. Завершить до приличного вида ничего не успел, но продвинулся ощутимо.


  Re: Железный занавес или развитие Оониверсума
Ого, у вас тут срачи были не шуточные.


Новая тема  Ответить  
Показать сообщения за:  Сортировать по:  









Список форумов / Переводы и русификация

cron