При разработке дос-оболочки на андроид-телефоне под DosBox-ом (история описана в Разработка оболочки-проводника для DOS в 2017 году ) весь русский текст приходилось вводить в Visual Basic for MS-DOS вслепую. Выглядело это так: переключаем русификатор на русский и на английской клавиатуре подбираем символы, вспоминая что "qwertyuiop[]" это "йцукенгшщзхъ". Но в той оболочке было лишь немного русского текста для русского варианта интерфейса, поэтому это было терпимо.
С появлением более мощного телефона, установкой на него Bochs, а затем LBochs-эмулятора и установкой Windows 98/XP, стало понятно, что теперь-то можно, например, спокойно поставить Delphi 7 и писать под Win32 что-нибудь, или поставить HTML Help Workshop и создавать CHM-файлы помощи для своих программ. Но и в LBochs встроенная клавиатура имеет только англоязычную раскладку и русский язык с нее можно вводить опять только наугад.
Стало ясно, что для удобства программирования и в DosBox, и в LBochs нужна клавиатура, которая будет вводить всегда английские символы (а заменять их на русские будет русификатор в DOS или языковые службы/языковая панель Windows). При этом русские символы должны отрисовываться на клавишах чтобы просто выбирать нужную клавишу глазами, а не вспоминать русскую раскладку. Тут есть два варианта:
- на каждой английской клавише такой клавиатуры также дополнительно будет нарисован соответствующий русский символ (как это сделано на любой физической клавиатуре PC);
- на клавиатуре будет кнопка переключения с английской раскладки на русскую раскладку, и в зависимости от текущей раскладки будут отображаться или только английские символы на клавишах, или только русские.
Поискав в интернете готовые android-клавиатуры, вводящие только английские символы, но отображающие на кнопках английские и русские символы - я ничего не нашел (плохо искал м.б.).
Одно из упоминаний на одном из форумов от 2012 года: hacker's keyboard позволяет ввести англоязычный символ если переключиться на русскую раскладку, но при этом ДОЛГО жать клавишу с русскоязычным символом. Но у меня на последней версии этой клавиатуры это из коробки не заработало, да и каждый раз удерживать долго клавишу для ввода одного единственного символа - это тяжело.
Еще одно из упоминаний - клавиатура, встроенная в Magic DosBox (одно из ответвлений досбокса). Она показана в этом ролике от 2016 года:
Здесь на клавишах сразу и русские, и английские символы. И на LBochs эту клавиатуру не перетащишь, т.к. она встроена в Magic DosBox.
Пришлось изобретать велосипед писать свою клавиатуру. Т.к. однажды уже пришлось придумывать раскладку экранной клавиатуры, то решено было взять ее. В исходном программном продукте под названием "браузер Bro", встроенном в мультимедиа-редактор PaintCAD 4Windows, она выглядела вот так:
Так сильно хотелось вводить русский текст в LBochs под Windows, что первая попытка была - просто скопипастить эту клавиатуру в отдельный Win32 проект. Получилась утилита под названием BroKB (клавиатура из браузера Bro), которая имеет на форме клавиатуру и текстовое поле. Жмем кнопки - и текст вводится в поле. Потом готовый текст копируем и вставляем в нужное место. Эдакая виртуальная недоклавиатура под Windows, работающая в любом Windows с Windows 95 и выше, умеющая вводить текст только в саму себя (но не в другие окна/поля):
Елозить мышкиным курсором в LBochs на телефоне по клавишам быстро надоело, и поэтому для ускорения русскоязычного ввода текста была предпринята вторая попытка - настоящая android-клавиатура. Был взят гайд "как сделать клавиатуру под андроид", была взята за основу эта же раскладка клавиш браузера Bro, но добавлен ряд клавиш F1-F12, а также ряд с кнопкой Esc и кнопками перемещения курсора (с самого первого моего андроида 2.3.3 не понимал почему на дефолтной клавиатуре нет клавиш перемещения курсора, как будто пользователи не вводят текстом, а только проматывают текстовые поля и кликают толстым пальцем в нужное место, с трудом туда попадая). Обязательно хотелось полупрозрачности чтобы сквозь клавиатуру был виден эмулятор и это тоже было вписано в xml-стиле фона клавиатуры, а также в xml-стилях клавиш ненажатых и клавиш нажатых.
Получилось вот это - под названием BroKB Emulz (т.е. "BroKB для эмуляторов") - показано ниже в горизонтальном и вертикальном варианте (dosbox turbo, android 2.3.3, samsung galaxy ace с экраном 320x480). В случае с Кирандией вводить русские символы в название сейва мне игра не дала (хотя может она просто не пропускает переключение языка русификатора keyrus по F12), поэтому скрин дан для общего представления как выглядит клавиатура в портретном представлении. А еще меня осенило - вот для кого делали режим с грубым разрешением 320х200 точек и 256 цветами - для телефонов с досбоксом и с экраном 320х480, полэкрана у которых - это ровно разрешение картинки игры! На компе этот режим всегда казался очень крупноточечным, а вот на телефоне, когда всё идеально пиксель в пиксель - это красиво!
Второй ряд символьных клавиш asdfgh... пришлось сдвинуть в xml-файле параметром android:horizontalGap="3.25%", суммарное количество процентов ряда клавиш было подогнано под 100% = 3,25% + 6,5%*11 + 25,25% и ожидалось, что ряд клавиш займет ровно целый экран, но не тут то было! Android-ы разных версий по разному реагируют на android:horizontalGap, на каких-то андроидах кнопка Ввод вылезает вправо (процента на полтора-два от ширины экрана, т.е. меньше чем сдвиг ряда слева на 3,25%), а на каких-то заканчивается ровно с остальными рядами (тестировалось на 2.3.3, 5.0, 7.0, 10). Хотя может это я такой криворук (например, если еще какими-то параметрами указываются зазоры между клавишами, и тогда только сумма ширин клавиш равна 100%, а с суммой ширин зазоров получается общая ширина ряда больше 100% - из-за этого ряд клавиш вылезает вправо).
Итого - получившаяся клавиатура вводит русские и английские буквы в DOS (DosBox) и в Windows XP (LBochs):
Если кто искал подобный софт для ввода русского текста, то вот эта получившаяся клавиатура под android: https://play.google.com/store/apps/details?id=com.bss.brokb (или вот APK без гуглплея - http://blackstrip.ru/brokb.apk )
Также вот результаты первой попытки - виртуальная недоклавиатура под Windows, вводящая текст только в саму себя: http://blackstrip.ru/brokb.exe