Свежеустановленный Alt Linux Школьный Юниор 5.0.1 Потребовалось использовать Dosbox для запуска QBasic. QBasic запустился, но все меню (которое было русифицировано) отобразилось кракозябрами. Проблема четко решается по инструкции отсюда: http://www.jackyfox.com/2009/09/13/dosbox-russian/ (положить в ~/.dosbox файл russian.txt и задать 2 настройки в ~/.dosbox/dosbox.conf: "language=russian.txt" и keyboardlayout=RU), но в школьном дистрибутиве желательно все это поведение иметь по умолчанию.
language=/usr/share/doc/dosbox-0.73/DOSBox-russian-lang/russian.txt, я бы сказал. И keyb ru в [autoexec], а keyboardlayout оставить auto.
(В ответ на комментарий №1) > language=/usr/share/doc/dosbox-0.73/DOSBox-russian-lang/russian.txt, я бы > сказал. > И keyb ru в [autoexec], а keyboardlayout оставить auto. Добавил исправленный файл конфигурации в /usr/share/doc/dosbox-0.74. Глобальные файлы конфигурации dosbox игнорирует. Пэтому для русификации стоит или использовать этот файл (отредактировав его прочие настройки под свои нужды), либо редактировать свой. Я также в пакет положил файл с руководством по русификации.
Полазил немного по исходникам (http://www.dosbox.com/download.php?main=1). Значиния для генерируемого по умолчанию файла с настройками задаются в файле src/dosbox.cpp - в частности для параметров "language" и "keyboardlayout" стоят такие строки: Pstring = secprop->Add_path("language",Property::Changeable::Always,""); Pstring = secprop->Add_string("keyboardlayout",Property::Changeable::WhenIdle, "auto"); Я думаю собрать версию с маленьким патчем, исправляющим эти значения, должно быть не сложно, а если сделать как-нибудь поумнее - типа задания этих значений через параметры компиляции, то патч наверное смогут принять в апстрим.
(В ответ на комментарий №3) > Полазил немного по исходникам (http://www.dosbox.com/download.php?main=1). > > Значиния для генерируемого по умолчанию файла с настройками задаются в файле > src/dosbox.cpp - в частности для параметров "language" и "keyboardlayout" стоят > такие строки: > > Pstring = secprop->Add_path("language",Property::Changeable::Always,""); > > Pstring = secprop->Add_string("keyboardlayout",Property::Changeable::WhenIdle, > "auto"); > > Я думаю собрать версию с маленьким патчем, исправляющим эти значения, должно > быть не сложно, а если сделать как-нибудь поумнее - типа задания этих значений > через параметры компиляции, то патч наверное смогут принять в апстрим. (В ответ на комментарий №3) > Полазил немного по исходникам (http://www.dosbox.com/download.php?main=1). > > Значиния для генерируемого по умолчанию файла с настройками задаются в файле > src/dosbox.cpp - в частности для параметров "language" и "keyboardlayout" стоят > такие строки: > > Pstring = secprop->Add_path("language",Property::Changeable::Always,""); > > Pstring = secprop->Add_string("keyboardlayout",Property::Changeable::WhenIdle, > "auto"); > > Я думаю собрать версию с маленьким патчем, исправляющим эти значения, должно > быть не сложно, а если сделать как-нибудь поумнее - типа задания этих значений > через параметры компиляции, то патч наверное смогут принять в апстрим. В последнем релизе я скрипт добавил, который переключает параметры языка в имеющемся файле конкретного пользователя. Скрипт называется dosbox-set-lang. Патч сделать не трудно, вопрос в том нужен ли он? Вы уверены, что всем русскоязычным пользователям надо обязательно поддержку русского языка? Многие игрушки и так работают. Кому надо - может переключить язык. Еще вопрос - не поломается ли что-то еще с такими дефолтными настройками. Тут мне кажется нужно пообсуждать этот вопрос.
>Вы уверены, что всем русскоязычным пользователям надо обязательно поддержку русского языка? Я могу сказать только за свой юскейс - в школе, в которой я помогал устанавливать Юниор, учитель использовал QBasic (насколько это распространенная практика я не знаю - просто там было так). В этой ситуации наличие предустановленного досбокса оказалось очень кстати, но отсутствие поддержки русского языка из коробки добавило некоторых проблем - во-первых, пришлось искать решение в интернете, во-вторых русификацию пришлось проводить на всех компьютерах и писать инструкцию, как это делать для новых. Геймерам скорее всего действительно все равно, но в случае каких-то прикладных досовских приложений, которые до сих пор всплывают в разных ситуациях, я думаю в русскоязычном дистрибутиве русификация по умолчанию может быть актуальной.
Скрипт dosbox-set-lang нерабочий и не принадлежит пакету dosbox. Исправления: ftp://ftp.mageialinux.ru/mageia2/SRPMS/dosbox-0.74-17.mrc.mga2.src.rpm
Спасибо; к сожалению, dosbox в альте несколько лет как осиротел.
dosbox-0.74-alt2.4 -> sisyphus: * Fri Jul 11 2014 Mikhail Kolchin <mvk@altlinux> 0.74-alt2.4 - fixed script dosbox-set-lang (ALT#24306)