Теперь я выдвигаю свою версию объяснения, почему мы наблюдаем такие странные эффекты с русским шрифтом - насколько я это понял.
Файл
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, по-моему?
Но идём дальше в наших рассуждениях.
Так вот, когда русификатор подключен, то сразу видно - он или работает (и мы видим правильное отображение символов национального алфавита на экране), либо не работает (на экране "кракозябры").
Так вот - у меня русификатор на Винде работает. Но, поскольку после этого я всё равно наблюдаю явление:
Oolite в Windows XP правильно считывает названия файлов изображений на кириллице и загружает их в Игру, и не может считать названия музыкальных файлов на кириллице и загрузить их в Игру,
то я и делаю свой вывод: "
виновата криво написанная программа oolite.exe"
Вот моё объяснение причин с точки зрения программиста (тут я знаю, что я не самый лучший программист, и есть вероятность, что и я где-то ошибаюсь в своих рассуждениях).
Но, по крайней мере, это хоть объяснение программиста, а не "кухарки" или "школьника".
К сожалению, самый главный вопрос - "А что делать-то тем, у кого не работает?" - так и остаётся без ответа.
У меня, хоть и криво, но программа работает с русскими названиями файлов, и я буду и дальше использовать эту возможность русификации - поскольку мне удобнее видеть всё-таки названия файлов на русском языке.
Что будут делать остальные?
Не знаю.
Учить, наверное, английский язык и использовать латиницу для написания своих ОХР, как это делает
stranger.
Либо попытаться разобраться самостоятельно, что происходит в их операционных системах, учитывая мои объяснения. Я сделал всё, что смог - подробно объяснил процесс, как он мне видится с моей колокольни.