# Русификация

Русификация QNX 4/Photon 1.14

- Русификация консоли QNX 4.25 в текстовом режиме
- Русификация консоли QNX 4.25 в текстовом режиме с помощью Ruskey v3.20
- Русификация Photon 1.14
- Русификация Photon 1.14 с помощью RusKey v3.20
- RTWin RUS для QNX 4.25/Photon 1.14
- Русификация Photon 1.14 с помощью Photon Cyrillic Supplement (PhCyr)
- Русификация Photon 1.14 с помощью PhaCyr 2.0
- Русификация Photon Terminal (`pterm`)
- Особенности русификации Photon Terminal (`pterm`) при использовании RusKey
- SWD Cyrillic Pack

Русификация QNX 6/Photon 2.0

- Русификация консоли QNX 6 в текстовом режиме
- Русификация Photon 2.0
- Русификация Photon Terminal (`pterm`)
- Прочее

Перекодировка файлов

Ссылки

## Русификация QNX 4/Photon 1.14

Здесь описана русификация консоли QNX 4.25 в текстовом режиме, русификация Photon 1.14 и русификация окна Photon Terminal (`pterm`).
А также здесь упомянуто о следующих программных продуктах: RusKey, RTWin, PhCyr, PhaCyr.

### Русификация консоли QNX 4.25 в текстовом режиме

Цель русификации консоли QNX 4.25 в текстовом режиме: возможность отображения и ввода с клавиатуры русских символов в OEM кодировке IBM 866.

Для отображения русских букв нужны консольные шрифты, содержащие русские буквы в кодировке IBM 866. Эти шрифты загружаются в память видеокарты с помощью утилиты `cfont`. Для ввода русских букв с клавиатуры нужна русская раскладка клавиатуры и переключалка раскладок клавиатуры.

Консольные шрифты 8x8, 8x14, 8x16 в OEM кодировке IBM 866 вы можете взять здесь.

Чтобы установить эти шрифты, нужно скопировать их в каталог `/etc/config/cfont/` и изменить файл `/etc/config/sysinit.`node следующим образом: после строки
`reopen //0/dev/con1`
добавить строки:
`cfont -f 3 /etc/config/cfont/cp866.08`
`cfont -f 2 /etc/config/cfont/cp866.14`
`cfont -f 0 /etc/config/cfont/iso866.16`
`cfont -f 1 /etc/config/cfont/cp866.16`

Переключение шрифтов в консоли производится с помощью клавиш Ctrl-Alt- < и Ctrl-Alt- >

Об утилите `cfont` читайте в документации к QNX 4.25 в разделе «Utilities Reference».

Раскладку клавиатуры для консоли QNX в текстовом режиме и переключалки раскладок клавиатуры вы можете взять здесь.

Создавать и редактировать раскладки клавиатуры можно с помощью утилиты `kedit`. Загружать с помощью утилиты `kbd`, примеры:
`kbd /etc/config/kbd/Russia`
`kbd /etc/config/kbd/USA`

Об утилитах `kedit` и `kbd` читайте в документации к QNX 4.25 в разделе «Utilities Reference».

### Русификация консоли QNX 4.25 в текстовом режиме с помощью Ruskey v3.20

Для русификации консоли QNX 4.25 в текстовом режиме может быть использован RusKey v3.20. Для установки запустите из корневого каталога:
`/etc/install -u ruskey3_20.tar.F`

Для переключения раскладки клавиатуры в QNX используется следующее сочетание клавиш: RightCtrl-RightShift. При переключении раскладки клавиатуры издаётся звуковой сигнал.

Примечание 1: RusKey — коммерческий продукт и требует лицензию `swdrk`

Примечание 2: Чтобы после установки RusKey v3.20 не получить чёрный текст на чёрном экране, проследите, чтобы в файле `/etc/config/sysinit.*` была записана следующая последовательность команд:

    cfont -f0 /etc/config/cfont/rus/vga!.f16
    stty font=0 < /dev/con1

Если после установки Ruskey вы забыли проверить `sysinit` и после перезагрузки получили на экране черную дыру, ничего страшного, переключитесь на русскую кодировку — текст станет зеленым.

Из FAQ по QNX сайта qnx.al.ru:
Q: ruskey при запуске `nettrap start &` (т.е. в фоновом режиме — с `&`) вешает консоль. Экран становится пустым. Что делать?
A: Нажать клавиши перехода на другой язык (обычно по умолчанию это либо левый Ctrl-Shift, либо правый). Появится синяя рамка, и скорее всего, будет видно сообщение от менеджера `Net`. Далее необходимо открыть файл `/etc/config/sysinit.`node, и исправить в нем строчку
`nettrap start &`
на
`nettrap start`
(убрать амперсанд).

### Русификация Photon 1.14

Цель русификации Photon 1.14: возможность отображения и ввода с клавиатуры русских символов, желательно в кодировке Unicode (UTF-8). UTF-8 в Photon используется как внутренняя кодировка.

Для отображения русских симолов в Photon нужны шрифты, содержащие русские буквы.

Для ввода русских симолов в Photon нужен файл с русской раскладкой клавиатуры (keyboard table).

#### Шрифты для Photon 1.14

Файлы шрифтов для Photon находятся в каталоге `/qnx4/photon/font`

Photon «понимает» следующие типы шрифтов:

- Bitmap (`*.phf`)
- TrueDoc (`*.pfr`)
- TrueType (`*.ttf`)
- Type 1 (`*.pfb`)

Шрифты `*.phf` — немасштабируемые (bitmapped), шрифты `*.pfr` и `*.ttf` — масштабируемые (scalable).

В стандартной поставке Photon есть следующие PHF-шрифты общего назначения в кодировке Unicode (ISO 8859-1):
`char` — Charter,
`cour` — Courier,
`helv` — Helvetica,
`lu` — Lucida,
`lub` — Lucida Bright,
`lut` — Lucida Terminal,
`ncen` — New Century Schoolbook,
`symb` — Symbol,
`tech` — Technical,
`time` — Times,
`uselss` — Useless,
`utop` — Utopia
и терминальные шрифты (для Photon Terminal) в кодировке IBM 437:
`pcs` — PC Serif,
`pcss` — PC Sanserif,
`pcterm` — PC Terminal.

Шрифты в формате PHF для QNX 4 можно создать из BDF-шрифтов с помощью утилиты `bdf_2_phf`. Шрифты в формате PHF2 для QNX 6 можно создать из BDF-шрифтов с помощью утилиты `bdftophf2`. О том, как использовать утилиты `bdf_2_phf` и `bdftophf2` смотрите в документации соответственно на QNX 4 и QNX 6.
BDF-шрифты, содержащие русские буквы, можно найти в Интернете (например, здесь http://www.inp.nsk.su/~bolkhov/files/fonts/cyr-rfx/00index.ru.html), сконвертировать из PCF-шрифтов (X Window) или из TTF-шрифтов. Утилиты для создания BDF-файлов из PCF- и TTF-шрифтов смотрите на страницах other.html и qnxsoft.html.

О формате PHF-шрифтов в QNX 4 читайте здесь: Description of Photon Font files

Кроме PHF шрифтов в QNX 4 и QNX 6 можно использовать TTF-шрифты в кодировке Unicode, взять их можно, например, из дистрибутива Windows 98 SE, из каталога `C:\WINDOWS\FONTS\`. Русские буквы содержат, например, следующие шрифты:
`cour.ttf` — Courier New,
`courbd.ttf` — Courier New Bold,
`couri.ttf` — Courier New Italic,
`courbi.ttf` — Courier New Bold Italic,
`times.ttf` — Times New Roman,
`timesbd.ttf` — Times New Roman Bold,
`timesi.ttf` — Times New Roman Italic,
`timesbi.ttf` — Times New Roman Bold Italic,
`arial.ttf` — Arial,
`arialbd.ttf` — Arial Bold,
`ariali.ttf` — Arial Italic,
`arialbi.ttf` — Arial Bold Italic,
`tahoma.ttf` — Tahoma,
`tahomabd.ttf` — Tahoma Bold,
`verdana.ttf` — Verdana,
`verdanab.ttf` — Verdana Bold,
`verdanai.ttf` — Verdana Italic,
`verdanaz.ttf` — Verdana Bold Italic,
`lsansuni.ttf` — Lucida Sans Unicode,
`lucon.ttf` — Lucida Console,
`andalemo.ttf` — Andale Mono,
Шрифты Courier New, Lucida Console и Andale Mono — фиксированные (моноширинные).

Скопировать их можно таким образом:
`cp /dos/c/windows/fonts/cour.ttf /qnx4/photon/font`
и затем установить с помощью `fontcfg`. Запускать `fontcfg` нужно с опцией `-G` для пользователя `root`. Подробно об утилите `fontcfg` читайте в документации.

Русские шрифты для Photon вы можете взять здесь.

Для установки PHF-шрифтов потребуется: если заменяете шрифт, нужно вначале, используя `fontcfg`, удалить, например, старый шрифт `helv*`, затем физически удалить файлы `helv*.phf` из `/qnx4/photon/font/`, скопировать новые файлы `helv*.phf` в `/qnx4/photon/font/` и используя `fontcfg` установить шрифт. Лучше это все проделать для каждого шрифта отдельно.

#### Раскладки клавиатуры для Photon 1.14

В поставку Photon входит русская раскладка клавиатуры для Photon, обеспечивающая ввод русских символов в кодировке Unicode (UTF-8) — файл `ru_RU_102.kbd`, этот файл включает в себя также стандартную раскладку, которая позволяет вводить английские символы, переключение этих раскладок производится по клавише RightAlt.

Файл с русской раскладкой клавиатуры `ru_RU_102.kbd` можно подключить в Photon с помощью утилиты `kbsel`:

С помощью `kbsel` можно настроить подключение нескольких файлов с раскладками клавиатуры и настроить клавиши для их переключения. Информация сохраняется в файле `/.photon/keyboards`. Об утилите `kbsel` читайте в документации на Photon microGUI.

Файл с русской раскладкой клавиатуры `ru_RU_102.kbd` нужно также подключить, используя переменную среды окружения KBD, Например, добавив следующую строку к вашему файлу `sysinit.`node (или файлу `/etc/profile`):
`export KBD=ru_RU_102.kbd`

Файл `ru_RU_102.kdef` (в каталоге `/usr/photon/keyboard`), поставляемый вместе с Photon, содержит исходник русской раскладки клавиатуры. Это текстовый файл, который можно отредактировать в любом текстовом редакторе.

Декомпилировать двоичный файл с раскладкой клавиатуры (`*.kbd`) в текстовый файл (`*.kdef`) можно с помощью утилиты `kbcvt`. Скомпилировать исходник (`*.kdef`) в бинарный файл (`*.kbd`) можно с помощью утилиты `mkkbd`.
Подробнее об утилитах `kbcvt` и `mkkbd` читайте в документации к Photon microGUI в руководстве «Installation & Configuration» в главе «Unicode Multilingual Support», параграф «Keyboard tables».

### Русификация Photon 1.14 с помощью RusKey v3.20

RusKey v3.20 может быть также использован для русификации Photon 1.14. При установке RusKey v3.20 устанавливаются Photon'овские PHF-шрифты, содержащие русские буквы в кодировке IBM-866:
CourierCyr (courc) с размерами 08, 10, 12, 14, 18 и 24,
TimesCyr (timec), с размерами 08, 10, 12, 14, 18 и 24,
HelveticaCyr (helvc), с размерами 08, 10, 12, 14, 18 и 24,
Helvetica (helv), с размерами 10, 12 (только обычный и жирный шрифты),
PC Terminal (pcterm), с размерами 12, 14 и 20,
Шрифты helv и pcterm заменяют стандартные шрифты.

Файл раскладки клавиатуры, устанавливаемый RusKey — это `ru_RU_101.kbd`, подключить его можно с помощью утилиты `kbsel`:

Для переключения раскладки клавиатуры в Photon при использовании RusKey используется то же сочетание клавиш, что и в консоли QNX в текстовом режиме: RightCtrl-RightShift. При переключении раскладки клавиатуры издаётся звуковой сигнал.

Примечание 1: Так как раскладка клавиатуры для Photon ru_RU_101.kbd, устанавливаемая RusKey, обеспечивает ввод символов в кодировке IBM-866 (SWD), а не Unicode (UTF-8), и шрифты CourierCyr (`courc`), TimesCyr (`timec`), HelveticaCyr (`helvc`), Helvetica (`helv`), установленные с помощью RusKey, содержат символы в кодировке IBM-866, а не Unicode, то вместо кодировки UTF-8 в фотоновских приложениях (Photon Editor, PhAB, Helpviewer и т. д.) получается и отображается нестандартная кодировка, которую условно назовём SWD.

Примечание 2: Так как Helpviewer использует шрифты только со стандартными именами (`lu` — Lucida, `lub` — Lucida Bright, `ncen` — New Century Schoolbook, `helv` — Helvetica, `time` — Times Roman, `dutch` — Dutch, `swiss` — Swiss, `utop` — Utopia), а RusKey заменяет из стандартных шрифтов только шрифты `helv` с размерами 10 и 12 и учитывая примечание 1, то при просмотре файлов справки на русском языке нужно использовать именно шрифт Helvetica с размером 10 или 12 и файлы справки должны быть соответственно не в кодировке UTF-8, а в этой нестандартной кодировке SWD.

Примечание 3: Вы не сможете читать тексты в кодировках Unicode, UTF-8, используя PHF-шрифты, установленные RusKey и не сможете вводить текст в кодировке UTF-8, используя файл раскладки клавиатуры ru_RU_101.kbd, установленный RusKey, но PHF-шрифты в кодировке IBM 866, а не Unicode имеют небольшое преимущество: они меньше по своему размеру (что может иметь значение для встраиваемых систем, где создание и чтение текстов в кодировках Unicode и UTF-8 может не понадобится, а размер установленных файлов имеет значение), так как коды русских символов в кодировке IBM 866 находятся внутри диапазона 128 – 255, а в кодировке Unicode — внутри диапазона 1024 – 1279 и описываются коды символов, содержащихся в PHF-шрифте следующим образом:

- код первого символа,
- количество символов в шрифте;

и есть таблица метрик по 8 байт для каждого символа (это в QNX 4, а в QNX 6 в шрифтах формата PHF2 таблица метрик содержит уже по 32 байта для каждого символа) и даже если символ «отсутствует» в шрифте, то метрики для него всё равно есть, но только ширина такого «отсутствующего» символа в этих метриках указана нулевая.

### RTWin RUS для QNX 4.25/Photon 1.14

Русская RTWin CACSD (по крайней мере, известные мне версии 2.0 и 2.1) устанавливает шрифты `helv` (Helvetica) с размерами 08, 10, 12, 14, 18 и 24 в кодировке IBM 866 (SWD), которые заменяют собой стандартные шрифты `helv` (Helvetica), и весь руский интерфейс к RTWin и файлы справки соответственно устанавливаются в кодировке SWD. Поэтому для ввода русских букв, которые будут отображаться установленным шрифтом `helv` (Helvetica) в этой кодировке, нужен файл с русской раскладкой клавиатуры, обеспечивающей ввод символов в этой нестандартной кодировке SWD (например, раскладка клавиатуры, устанавливаемая русификатором RusKey) и при просмотре файлов справки тоже нужно использовать этот установленный шрифт `helv` (Helvetica).

### Русификация Photon 1.14 с помощью Photon Cyrillic Supplement (PhCyr)

Существует отдельный продукт, называемый «Photon Cyrillic Supplement» (PhCyr), содержащий в том числе следующие PHF шрифты в кодировке Unicode:
`crxcour` — RusCourier,
`crxtms` — RusTimes,
`crxhelv` — RusHelvetica.
Эти шрифты сделаны кем-то для QSSL на основе Cronyx шрифтов и содержат только по 64 русские буквы (32 строчные и 32 заглавные) с кодами от 0x0410 до 0x44F, то есть не содержат даже русские буквы Ё и ё.

PhCyr также устанавливает следующие масштабируемые (scalable) шрифты в формате TrueDoc (`*.pfr`):

- CDutch 801Cyrillic (`cyrldutch.pfr`)
- CDutch 801Cyrillic Bold (`cyrldutch.pfr`)
- CSwiss 721Cyrillic (`cyrlswiss.pfr`)
- CSwiss 721Cyrillic Bold (`cyrlswiss.pfr`)

Рекомендую после установки PhCyr в файле `/qnx4/photon/font/fontmap` заменить везде строки `dutchs` и `swisss` соответственно на строки `cdutch80s` и `cswiss72s`.

Устанавливать PhCyr нужно из корневого каталога с помощью команды
`/etc/install -u phcyrv1.00.tar.F`
либо, если дистрибутив в формате .tarx, то устанавливать PhCyr нужно из-под Photon с помощью утилиты `pkginstall`.

Photon Cyrillic Supplement — коммерческий продукт и требует лицензию `phcyr`.

### Русификация Photon 1.14 с помощью PhaCyr 2.0

С помощью PhaCyr 2.0 от компании InfoMarket (сейчас, все права на PhaCyr 2.0 принадлежат SWD) можно русифицировать только Photon 1.14, но не консоль QNX в текстовом режиме.

Для установки PhaCyr 2.0 запустите из корневого каталога:
`/etc/install -u phacyr-2.0.tar.gz`

Дистрибутив PhaCyr включает в себя:

- Файл раскладки клавиатуры, обеспечивающей ввод русских символов в кодировке UTF-8
- Терминальные шрифты (в кодировках IBM 866, KOI8-R, WINDOWS-1251, ISO 8859-5):

      PC Terminal CP866/KOI8/CP1251/ISO8859-5 (alt/koi/win/iso-pcterm)  12,14,20
      PC Serif CP866/KOI8/CP1251/ISO8859-5 (alt/koi/win/iso-pcs)        8,10,12,14,16
      PC Sanserif CP866/KOI8/CP1251/ISO8859-5 (alt/koi/win/iso-pcss)    8,10,12,14,16

- Шрифты общего назначения (в кодировке Unicode):

      Courier Cyrillic (courcu)    8,10,12,14,18,20,24,32,48 (Normal, Bold, BoldItalic, Italic)
      Helvetica Cyrillic (helvcu)  8,10,12,14,18,20,24,32,48 (Normal, Bold, BoldItalic, Italic)
      Times Cyrillic (timecu)      8,10,12,14,18,20,24,32,48 (Normal, Bold, BoldItalic, Italic)

- Cyrillic Photon Terminal (`cpterm`)

При установке нужно выбрать по нажатию каких клавиш будет переключаться раскладка клавиатуры:
1. LeftShift-LeftAlt, ru_RU_101
2. LeftShift-LeftCtrl, ru_RU_101
3. LeftCtrl-LeftAlt, ru_RU_101
4. RightAlt, ru_RU_102

### Русификация Photon Terminal (pterm)

Цель русификации `pterm`: отображение и ввод с клавиатуры символов в OEM кодировке (IBM 866) в окне Photon терминала.

Для pycификации `pterm`:

1. Нужен PHF-шpифт, содержащий русские буквы. Это может быть как шрифт в OEM кодировке IBM-866, так и в кодировке Unicode. Шрифт должен быть обязательно фикcиpованным (моноширинным), то есть все символы шрифта должны иметь одинаковую ширину.
   Если требуется отображение символов псевдографики, то шрифт также должен содержать псевдографические символы.
   В стандартной поставке Photon моноширинными шрифтами, предназначенными для `pterm`, являются шрифты PC Terminal (`pcterm`), PS Serif (`pcs`), PS Sans Serif (`pcss`) — все они содержат символы с кодами от 0 до 255 в OEM кодировке IBM 437.
2. Необходимо cоздать файл тpанcляции кодиpовок для `pterm` c помощью утилиты `ptermcs`:

                ANSI charset: Cyrillic (IBM 866)
       Internal/QNX  charset: Cyrillic (IBM 866)
                Font charset: (same as internal)

   Здесь:
   «ANSI charset» — кодировка, которую вы хотите использовать, когда «Terminal Emulation» установлено в «ANSI» в диалоговом окне «Terminal Properties»
   «Internal/QNX charset» — кодировка, которую вы хотите использовать, когда «Terminal Emulation» установлено в «QNX» в диалоговом окне «Terminal Properties»
   «Font charset» — кодировка, которую использует ваш шрифт. Если кодировка используемого шрифта совпадает с кодировкой «Internal/QNX charset», то можно указать «(same as internal)».
   Сохраните созданный файл трансляции кодировок с расширением `.cs` в каталоге, например, `/qnx4/photon/translation/`.
   Вы можете создать несколько файлов трансляции кодировок, если захотите использовать различные кодировки, а не только IBM 866, например, `koi8r_koi8r_cp866.cs`:

                ANSI charset: Cyrillic (KOI8-R)
       Internal/QNX  charset: Cyrillic (KOI8-R)
                Font charset: Cyrillic (IBM 866)

   или `koi8u_koi8u_cp866.cs`:

                ANSI charset: Ukrainian (KOI8-U)
       Internal/QNX  charset: Ukrainian (KOI8-U)
                Font charset: Cyrillic (IBM 866)

   или `cp1251_cp1251_cp866.cs`:

                ANSI charset: Cyrillic (Windows 1251)
       Internal/QNX  charset: Cyrillic (Windows 1251)
                Font charset: Cyrillic (IBM 866)

   или `8859-5_8859-5_cp866.cs`:

                ANSI charset: Cyrillic (ISO 8859-5)
       Internal/QNX  charset: Cyrillic (ISO 8859-5)
                Font charset: Cyrillic (IBM 866)

   Если захотите редактировать файлы в различных кодировках, вам придётся менять файлы трансляции кодировок.
3. Нужно указать pyccкий PHF-шpифт в кодировке, указанной вами в «Font charset» текyщим в `pterm` и подключить файл тpанcляции, для этого запустите какую-нибудь программу в `pterm`, например, `ksh` или `mqc`, вызовите окно свойств терминала (Ctrl-Alt-C), в поле «Text Font» выберите «Custom...»
   и нажмите кнопку «Customize...». Откроется окно «Customize font list». В поле «Fonts» выберите нужный вам шрифт в необходимой кодировке и его размер. Нажмите кнопку «Add». Выбранный шрифт появится в списке шрифтов. Можете таким образом добавить несколько шрифтов в список. Используйте кнопки «Shift Up» и «Shift Down» для выбора приоритета шрифтов. Замечание: для корректного отображения псевдографических символов нужен шрифт в кодировке, в которой есть псевдографические символы, например, шрифт в кодировке IBM 866 или шрифт в кодироке Unicode, содержащий псевдографические символы (в Unicode псевдографические символы имеют коды в диапазоне 0x2500 – 0x25FF). Для подключения файла трансляции кодировок в качестве «Charsets File» нажмите кнопку «Browse...» и выберите нужный файл трансляции кодировок:
   В окне «Customize font list» нажмите кнопку «Done». Выбранную конфигурацию можно сохранить в файле `pterm.rc` либо `pterm.`имя_программы`.rc` В окне свойств терминала нажмите кнопки «Apply» и «Save & Close». Сохраняя конфигурацию в файлах с именами `pterm.`имя_программы`.rc`, вы можете создать различные конфигурации для всех программ, которые запускаются вами в `pterm`. Конфигурации `pterm` хранятся в файлах `$HOME/.photon/pterm*.rc`.
4. Должна быть включена pyccкая клавиатypа в Photon, котоpая обеcпечивает коды UTF-8.

Файл тpанcляции для кодиpовки IBM 866 для `pterm` вы можете скачать здесь: cp866_cp866_same.cs

Прочие файлы трансляции:
8859-5_8859-5_cp866.cs
cp1125_cp1125_cp866.cs
cp1251_cp1251_cp866.cs
koi8r_koi8r_cp866.cs
koi8u_koi8u_cp866.cs
8859-5_8859-5_cp1125.cs
cp1251_cp1251_cp1125.cs
cp866_cp866_cp1125.cs
koi8r_koi8r_cp1125.cs
koi8u_koi8u_cp1125.cs
8859-5_8859-5_unicode.cs
cp1125_cp1125_unicode.cs
cp1251_cp1251_unicode.cs
cp866_cp866_unicode.cs
koi8r_koi8r_unicode.cs
koi8u_koi8u_unicode.cs
8859-5_8859-5_same.cs
cp1125_cp1125_same.cs
cp1251_cp1251_same.cs
koi8r_koi8r_same.cs
koi8u_koi8u_same.cs

Украинскую кодировку «Ukrainian (KOI8-U)» для Photon вы можете найти здесь.

### Особенности русификации терминала Photon'а (pterm) при использовании RusKey

Несмотря на то, что в Readme к Ruskey v3.20 сказано, что «Окно терминала в Photon неправильно воспринимает русские буквы, что делает невозможным ввод русских букв в редакторе», ввод русских в окне терминала Photon при использовании Ruskey всё же возможен (по крайней мере в Photon v1.14): для русификации Photon терминала `pterm` нужно при создании файла тpанcляции кодиpовок для `pterm` использовать кодировку не IBM-866, а ISO 8859-1:

Фокус состоит в том, что кодировка Unicode совпадает с ISO 8859-1 в диапазоне кодов символов от 0 до 255, поэтому преобразование из кодировки Unicode в кодировку ISO 8859-1 и обратно равнозначно преобразованию из кодировки IBM 866 в кодировку IBM 866.

Файл тpанcляции кодиpовок для `pterm`, который нужно использовать, если у вас установлен RusKey v3.20 вы можете скачать здесь: ruskey.cs

### SWD Cyrillic Pack

SWD Cyrillic Pack для QNX4 — программный пакет, предназначенный для русификации текстовых консолей QNX4, а также подсистем шрифтов и клавиатурного ввода графической оболочки Photon 1.1х, включая псевдотерминалы `pterm`.

Подробнее о SWD Cyrillic Pack читайте здесь: http://www.swd.ru/qnx/products/software/prod_misc/swd_cyrillicpack_qnx4.html

## Русификация QNX 6/Photon 2.0

### Русификация консоли QNX 6 в текстовом режиме

Утилита для загрузки консольного шрифта в видеокарту: `loadfont`
Исходник `loadfont.c` компилировать так:
`make loadfont`
Используется только для текстового режима. Примеры запуска:
`loadfont cp866.08
loadfont iso866.16`
Если загружен шрифт с другим размером, чем был до этого, то нужно перезагрузить `devc-con`:
`slay devc-con; devc-con`
Возможно, что будет работать и если шрифт загружать при загрузке QNX 6 до запуска `devc-con`.
Консольные шрифты вы можете скачать здесь.

Существует пакет SWD Cyrillic Pack для QNX 6, который содержит в своём составе модифицированный драйвер консоли `devc-con` (не знаю, правда, от какой версии QNX 6), который позволяет переключать раскладки клавиатуры (русская, английская) по нажатию клавиши ScrollLock.

### Русификация Photon 2.0

После установки QNX 6.2.1 настройте локализацию. Для установки часового пояса запустите программу «User's Configuration» (кнопка «Localization» в меню). Рекомендую также снять флажок «The hardware clock uses UTC/GMT».

Программа «User's Configuration» в Photon 2.0.4/QNX 6.2.1 в отличие от утилиты `kbsel` в Photon 1.14/QNX 4.25 не позволяет выбрать несколько раскладок клавиатуры и горячие клавиши для их переключения, поэтому русификацию клавиатуры в Photon 2.0.4/QNX 6.2.1 придётся производить вручную с помощью редактирования файла `/etc/system/trap/.KEYBOARD.`host, где host — имя машины, например, `localhost`. В этом файле должны быть две следующие строки:
`en_US_101.kbd`
`ru_RU_102.kbd`
Переключение раскладок клавиатуры происходит по нажатию клавиш LeftAlt-LeftShift.
В QNX 6.1 достаточно было только прописать строку `ru_RU_102.kbd` или выбрать на закладке «Keyboard» программы «User's Configuration» раскладку клавиатуры «Russian», так как файл `ru_RU_102.kbd` содержит кроме русской раскладки клавиатуры также и стандартную английскую (американскую) раскладку клавиатуры и переключение раскладок по нажатию клавиши RightAlt, но в QNX 6.2 это почему-то не работает.

Для того чтобы видеть скрытые (hidden) файлы, то есть файлы, имена которых начинаются с точки (как, например, `.KEYBOARD.localhost`), настройте их отображение в менеджере файлов, которым вы пользуетесь (Photon File Manager и/или MQC).

В QNX 6.2.1, также как и в QNX 4.25 можно использовать TTF-шрифты и делать подстановки шрифтов.

Для установки шрифтов в QNX 6.2.1 нужно скопировать файлы шрифтов в каталог `/usr/photon/font_repository` и запустить утилиту `/usr/photon/bin/mkfontdir`, которая просканирует каталог `/usr/photon/font_repository` и пропишет найденные шрифты в файл `/usr/photon/font_repository/fontdir`. В Photon 2.0.4/QNX 6.2.1 после запуска утилиты `mkfontdir` и перезагрузки Photon возможно исчезновение курсора. Возможно, причина этого связана с файлом `/usr/photon/font_repository/phcursor.phf`. Символы этого файла являются изображениями курсоров и в Photon версии 2.0.4 имеют Unicode-коды не в диапазоне 0xE900-0xE921, как это было в предыдущих версиях, а 0x0000-0x0021. В файле `fontdir` однако после установки QNX 6.2.1 прописаны правильные значения E900-E921 и курсор отображается нормально, но утилита `mkfontdir` просканировав шрифты, извлекает из заголовков шрифтов параметры шрифтов и прописывает их в файл `fontdir`, в результате попытки отобразить символы с кодами 0xE900-0xE921 из шрифта `phcursor.phf` оказываются неудачными и курсор пропадает. Чтобы «вернуть» курсор, нужно в файле `fontdir` для шрифта `phcursor.phf` заменить 0000-0021 на E900-E921 и перезагрузить Photon. Также желательно пропатчить файл `phcursor.phf`, чтобы после следующего запуска `mkfontdir` курсор снова не исчез:
`phcursor.phf`
`00000025: 00 E9`
Это можно сделать при помощи стандартной утилиты `spatch` или с помощью HEX-редактора BIEW, либо скачайте уже пропатченный файл phcursor.phf.

### Русификация Photon Terminal (pterm)

Что касается русификации терминала Photon'а (`pterm`), то хочу заметить, что русификация `pterm` в QNX 6.2.1 почти не отличается принципиально от русификации `pterm` в QNX 4.25. Отличие в том, что в окне свойств терминала нельзя выбрать/сменить тип терминала, по умолчанию тип терминала — «ANSI», если вам нужен тип терминала «QNX», то вам нужно запустить `pterm` с опцией `-Q`, но если вы сохраните конфигурацию в файле с именем `pterm.rc`, то может так получиться, что вы не сможете потом вернуться к типу терминала «ANSI» — это лечится удалением файла конфигурации `$HOME/.ph/pterm/pterm.rc`. Поэтому следующий совет: сохраняйте конфигурацию терминала в файлах с именами `pterm.`имя_программы`.rc`, и если собираетесь сохранить конфигурацию в файле `pterm.rc`, то не запускайте `pterm` с типом терминала «QNX», то есть с опцией `-Q`.
Например, делайте так: запускаете
`pterm -Q mqc &`
и сохраняете конфигурацию в файле `pterm.mqc.rc`, запускаете
`pterm mc &`
и сохраняете конфигурацию в файле `pterm.mc.rc`.

В `pterm` QNX 6.2.1/Photon 2.0 можно использовать TTF-шрифты. Например, копируете:
`cp /fs/hd0-dos/windows/fonts/lucon.ttf /usr/photon/font_repository`
Создаёте с помощью утилиты `ptermcs` файл трансляции кодировок `/usr/photon/translations/cp866_cp866_unicode.cs`:

            ANSI charset: Cyrillic (IBM 866)
    Internal/QNX charset: Cyrillic (IBM 866)
            Font charset: Unicode

Жмёте правой кнопкой мыши на окне `pterm`, выбираете пункт «Properties», в нём: «Font», «Custom...», «Edit», добавляете шрифт: Lucida Console, Size 14 (lucidaconsoles14), подключаете файл трансляции кодировок `/usr/photon/translations/cp866_cp866_unicode.cs`

Терминальные шрифты в формате PHF2 (QNX 6) для русификации Photon Terminal (`pterm`) вы можете скачать здесь.

Файлы трансляции кодировок `*.cs` для `pterm` (смотрите выше) в Photon 2.0/QNX 6 абсолютно точно такие же как и в Photon 1.14/QNX 4. `pterm` стал их поддерживать, кажется, ещё в QNX версии 6.1, но только в Photon 2.0.4/QNX 6.2.1 появилась утилита `ptermcs` для их создания и редактирования.

### Прочее

Настройте шрифты для программ, которыми вы пользуетесь, например, для HelpViewer:
и для Voyager

## Перекодировка файлов

Бывают ситуации, когда нужно перекодировать текстовые файлы из одной кодировки в другую. Например, вы хотите перекодировать HTML-файлы из кодировки KOI8-R в кодировку UTF-8, чтобы создать файлы справочной системы, или хотите перенести ваши проекты из кодировки SWD в кодировку UTF-8 (для этого опять же надо перекодировать файлы справки и перекодировать виджеты).
Перекодировать текстовые файлы из одной кодировки в другую возможно с помощью Note Pad (`ped` — Photon editor).
Для стандартных кодировок это делается так (на примере перекодировки из кодировки IBM 866 в кодировку UTF-8):

1. Запустить Note Pad:
   `ped &`
2. Через меню «Options», пункт меню «Encoding» (или Ctrl-E) выбрать кодировку «Cyrillic (IBM 866)».
3. Открыть текстовый файл. При этом файл перекодируется из выбранной кодировки (IBM 866) в UTF-8.
4. Через меню «Options», пункт меню «Encoding» (или Ctrl-E) выбрать кодировку «Unicode in UTF-8».
5. Сохранить текстовый файл. При этом файл перекодируется из UTF-8 в выбранную кодировку (UTF-8).
6. Закрыть файл.

Для кодировки SWD особый случай: чтобы перекодировать файл из кодировки SWD в какую-либо другую кодировку (отличную от IBM 866), нужно предварительно перекодировать файл из кодировки SWD в кодировку IBM 866, для этого нужно:

1. Запустить Note Pad:
   `ped &`
2. Через меню «Options», пункт меню «Encoding» (или Ctrl-E) выбрать кодировку «Unicode in UTF-8».
3. Открыть текстовый файл.
4. Через меню «Options», пункт меню «Encoding» (или Ctrl-E) выбрать кодировку «Western European (ISO 8859-1)».
5. Сохранить текстовый файл.
6. Закрыть файл.

Таким образом, чтобы перекодировать файл из кодировки SWD в кодировку, например, UTF-8, нужно сначала перекодировать файл из кодировки SWD в кодировку IBM-866, а затем уже из кодировки IBM 866 перекодировать его в кодировку UTF-8 (таким образом придётся два раза открывать и закрывать файл). А для перекодировки из какой-либо кодировки, отличной от IBM 866 в кодировку SWD нужно предварительно перекодировать файл в кодировку IBM 866.

Программно перекодировка текстовых строк осуществляется с помощью функций PxTranslate. Для перекодировки с помощью функций PxTranslateStateFromUTF() или PxTranslateFromUTF() из кодировки SWD в кодировку IBM 866 или для перекодировки с помощью функций PxTranslateStateToUTF() или PxTranslateToUTF() из кодировки IBM 866 в кодировку SWD нужно для функции PxTranslateSet() в качестве второго параметра указать `"ISO-8859-1"`.

Вы можете скачать программу фильтр-перекодировщик, которая используя функции PxTranslate считывает символы со стандартного устройства ввода `stdin`, перекодирует их в другую кодировку и записывает на стандартное устройство вывода `stdout`. Символы, которые не удаётся перекодировать, заменяются на символы подчёркивания '_'. Программу можно использовать для перекодировки файлов, используя перенаправление ввода-вывода. Программа требует задания в командной строки двух параметров: кодировка входного файла и кодировка выходного файла. В качестве кодировки (charset) может быть имя секции, один из алиасов или значение переменной Description файла `/usr/photon/translations/charsets`. Примеры запуска:
`translate windows-1251 IBM866 <readme.txt >readme`
`translate KOI8-R UTF-8 <index.html >bookset.html`
`translate UTF-8 ISO-8859-1 <base.wgtw |translate IBM866 UTF-8 >base1.wgtw`
Версия для QNX 4: `translate`.
Версия для QNX 6: `translate`.

## Ссылки

Здесь вы можете прочесть старый документ (от 01.08.2000) с сайта qnx.al.ru о русификации ОС QNX4.

А по этим ссылкам — читайте о русификации QNX 6:
Статья «Инсталляция операционной системы QNX версии 6.2» на сайте www.swd.ru. Там описано в том числе, как русифицировать клавиатуру в Photon 2.0 (QNX 6).
«Локализация и интернационализация», FAQ на сайте qnx.org.ru. Описано как установить TTF-шрифты и сделать подстановку шрифтов, как русифицировать PhIRC, Xphoton, Midnight Commander, Voyager.

«Русификация `pterm` в Photon» на сайте andy.qnx.org.ru.
Пакет для русификации терминала Photon 2.0 (QNX 6) RusPterm устанавливает TTF-шрифты в кодировке Unicode: Arial, Courier New, Times New Roman, Verdana, а также терминальные PHF2-шрифты PC1Terminal (`pcter_12.phf`, `pcter_12b.phf`, `pcter_14.phf`, `pcter_14b.phf`).