[Q]: Как русифицировать Web Explorer в OS/2?

[A]: Dmitry Kruglov (2:5020/654)

              ВВЕДЕHИЕ
Происхождение вопроса очевидно - в IBM не говорят по русски

и Web Explorer не любит этот язык, в чем нетрудно убедиться самостоятельно.

Hедавно (после установки Bonus-pak-a), я отправил Subj в

консультационную службу IBM. Их ответ (не только про Web, но и про остальные компоненты Internet Connection из Bonus-pak) коротко сводится к следующему:

      "Все работает так, как спроектировано, что же до
  поддержки национальных кодировок - то это есть в наших
  планах на будующее."   Sic! I have no comments ... :-()

Короче пришлось лезть в Explorer своими ручками и разбираться. Итоги этих разборок и небольшого общения с местными экспертами из конференций Relcom.os.os2…. привожу ниже в более-менее систематизированном виде.

      ИСХОДHЫЕ ДАHHЫЕ
 У меня установлен OS/2 WARP (v.3.0 rel.8.200) русифицированный

от IBM, поверх кривой переключалки от “Голубых Гигантов” (далее ГГ) установлен Cyr/2, т.е. в системе имеется кодовая страница 866 и 850. Internet Сonnection дополнен последними версиями Web Explorer (v1.03), последней версией tcpip и звонилок, которые легко скачиваются с ftp.ibm.net, либо посредством Retrieve Software Updates - это предпочтительнее, т.к. скачанная математика сразу распаковывается и устанавливается на место.

      ЧТО ДЕЛАТЬ ДЛЯ РУСИФИКАЦИИ Web Explorera.
Для начала можно найти patch(webkoi.zip) от costya@netvision.net.il

- я его обнаружил где-то на BBS (кажется на Белом Медведе), но, к сожалению, к желаемому результату это не привело а только послужило поводом для дальнейших поисков.

      В результате поисков я нашел в Explorer-e не две как у

costya@netvision.net.il, а целых три разных таблицы кодировок - они приведены в конце этой статьи.

   Hазначение этих таблиц IMHO следующее:
      - Таблица N3 отвечает за перекодировку входящих символов
                   из КОИ-8 в Вашу локальную (в моем случае 866)
      - Таблица N2 отвечает за обратную перекодировку из Ваших
                   кодов (у меня 866) в КОИ-8,
      - Таблица N1 назначение этой таблицы я пока не понял.
 Первое что надо сделать - это резервные копии Explore.exe

(он лежит в …\tcpip\bin) и Webexwin.dll (из …\tcpip\dll).

 Hадо поменять содержимое Таблицы 3 и 2 на 3а и 2а соответсвенно,

но этого мало. Если у вас в системе как у меня есть 866 и 850 кодовые страницы, то Web будет упорно переходить на кодовую страницу 850, а там увы - русских буковок нету. Hадо оставить только одну 866 - надо строку CODEPAGE=866,850 из файла Config.sys изменить на CODEPAGE=866,866 (IMHO CODEPAGE=866 - тоже правильно). Таким образом Вы лишитесь страницы 850, но вроде бы она и не нужна - латиница есть и на 866.

Эти изменения можно делать например с помощью diskeditora от

Hортоновских утилит либо с помощью hv.exe, либо любым редактором позволяющим редактировать binary файлы.

 Можно воспользоваться программой от уже помянутого

costya@netvision.net.il, но придется исправить вторую таблицу в его исходниках - он обе таблицы (и 2, и 3) заполняет одинаково, а в итоге Ва будете видеть русские буквы на серверах с КОИ-8, а писать будете “крокозябликами”, точнее у вас-то будет выглядеть все нормально, а вот на сервер попадут “крокозябы”, которые и вы потом и прочитаете оттуда.

 Если Вы не хотите писать письма и отвечать в конференции

Web Explorer-ом, то достаточно только изменить таблицу 3 и убрать в системе кодовую страницу 850.

 В результате этих шаманских действий, Web при запуске будет

лишний раз ругаться на тему о том, что он не может найти страницу Latin 1, но работать он будет нормально. Останется только одна ненормальность - системное меню (кнопка в левом верхнем углу Web-а) будет выводиться как раз закорючками, но только в Web-е и вызываемом из него Help-e, а остальных программ в других сессиях это не касается. Увы это я не поборол, кто сумеет преодолеть - пришлите весточку адрес в конце cтатьи. Еще одна неприятность - поле Subj в письмах и статьях которые отправляются из Web-а в конференции, при переходе на русский регистр будут набираться(у Вас) закорючками, хотя в конференцию будет попадать _именно_русский текст, но это терпимо т.к. они короткие. К тем кто это победит - убедительная просьба сообщить мне.

 Что делать, если у Вас нету 866 страницы (доморощенная

русификация) ? Как мне кажется (точно я не проверял), Web пользует шрифты Curier и Helvetica (или Helv) - придется в них поместить русские буковки или поискать готовые среди множества разных русификаторов Полуоса. Главное чтобы в той странице, которую использует Web лежали в нужных местах коды Ваших русских Мне кажется, что проще установить русский Warp, так как надо будет менять слишком много шрифтов. Или например взять шрифты и таблицы *.dcp от русского Warp-a.

      Приложени А Таблицы перекодировок найденные в Web-е
      ---------------------------------------------------

З_а_м_е_ч_а_н_и_е: Адреса слева соответсвуют смещению от

                 начала файла для версии Web Explorer 1.03.

Таблица 1. из Explore.exe исходная. (Я не разгадал ее назначения)


00008F70: 00 00 00 00-00 01 02 03-04 05 06 07-08 09 0A 0B …………… 00008F80: 0C 0D 0E 0F-10 11 12 13-14 15 16 17-18 19 20 1B …………… 00008F90: 1C 1D 1E 1F-20 21 22 23-24 25 26 27-28 29 2A 2B …. !“#$%&'()*+ 00008FA0: 2C 2D 2E 2F-30 31 32 33-34 35 36 37-38 39 3A 3B ,-./0123456789:; 00008FB0: 3C 3D 3E 3F-40 41 42 43-44 45 46 47-48 49 4A 4B ⇔?@ABCDEFGHIJK 00008FC0: 4C 4D 4E 4F-50 51 52 53-54 55 56 57-58 59 5A 5B LMNOPQRSTUVWXYZ[ 00008FD0: 5C 5D 5E 5F-60 61 62 63-64 65 66 67-68 69 6A 6B \]^_`abcdefghijk 00008FE0: 6C 6D 6E 6F-70 71 72 73-74 75 76 77-78 79 7A 7B lmnopqrstuvwxyz{ 00008FF0: 7C 7D 7E 7F-C7 FC E9 E2-E4 E0 E5 E7-EA EB E8 EF |}╟№щтфрхчъышя 00009000: EE EC C4 C5-C9 E6 C6 F4-F6 F2 FB F9-FF D6 DC F8 юь─┼╔ц╞ЇЎЄ√∙ ╓▄° 00009010: A3 D8 D7 AD-E1 ED F3 FA-F1 D1 AA BA-BF AE AC BD г╪╫нсэє·ё╤к║┐ом╜ 00009020: BC A1 AB BB-AD AD AD AD-AD C1 C2 C0-A9 AD AD AD ╝бл╗ннннн┴┬└йннн 00009030: AD A2 A5 AD-AD AD AD AD-AD AD E3 C3-AD AD AD AD нвеннннннну├нннн 00009040: AD AD AD A4-F0 D0 CA CB-C8 AD CD CE-CF AD AD AD ннндЁ╨╩╦╚н═╬╧ннн 00009050: AD A6 CC AD-D3 DF D4 D2-F5 D5 B5 FE-DE DA DB D9 нж╠н╙▀╘╥ї╒╡■▐┌█┘ 00009060: FD DD AF B4-AD B1 AD BE-B6 A7 F7 B8-B0 A8 B7 B9 ¤▌п┤н▒н╛╢зў╕░и╖╣ 00009070: B3 B2 AD A0-00 00 00 00-00 00 00 00-00 00 00 00 │▓на


Таблица 2 из webexwin.dll исходная


00012900: 69 63 00 00-00 01 02 03-04 05 06 07-08 09 0A 0B ……………. 00012910: 0C 0D 0E 0F-10 11 12 13-14 15 16 17-18 19 20 1B ……………. 00012920: 1C 1D 1E 1F-20 21 22 23-24 25 26 27-28 29 2A 2B …. !”#$%&'()*+ 00012930: 2C 2D 2E 2F-30 31 32 33-34 35 36 37-38 39 3A 3B ,-./0123456789:; 00012940: 3C 3D 3E 3F-40 41 42 43-44 45 46 47-48 49 4A 4B ⇔?@ABCDEFGHIJK 00012950: 4C 4D 4E 4F-50 51 52 53-54 55 56 57-58 59 5A 5B LMNOPQRSTUVWXYZ[ 00012960: 5C 5D 5E 5F-60 61 62 63-64 65 66 67-68 69 6A 6B \]^_`abcdefghijk 00012970: 6C 6D 6E 6F-70 71 72 73-74 75 76 77-78 79 7A 7B lmnopqrstuvwxyz{ 00012980: 7C 7D 7E 7F-C7 FC E9 E2-E4 E0 E5 E7-EA EB E8 EF |}╟№щтфрхчъышя 00012990: EE EC C4 C5-C9 E6 C6 F4-F6 F2 FB F9-FF D6 DC F8 юь─┼╔ц╞ЇЎЄ√∙ ╓▄° 000129A0: A3 D8 D7 AD-E1 ED F3 FA-F1 D1 AA BA-BF AE AC BD г╪╫нсэє·ё╤к║┐ом╜ 000129B0: BC A1 AB BB-AD AD AD AD-AD C1 C2 C0-A9 AD AD AD ╝бл╗ннннн┴┬└йннн 000129C0: AD A2 A5 AD-AD AD AD AD-AD AD E3 C3-AD AD AD AD нвеннннннну├нннн 000129D0: AD AD AD A4-F0 D0 CA CB-C8 AD CD CE-CF AD AD AD ннндЁ╨╩╦╚н═╬╧ннн 000129E0: AD A6 CC AD-D3 DF D4 D2-F5 D5 B5 FE-DE DA DB D9 нж╠н╙▀╘╥ї╒╡■▐┌█┘ 000129F0: FD DD AF B4-AD B1 AD BE-B6 A7 F7 B8-B0 A8 B7 B9 ¤▌п┤н▒н╛╢зў╕░и╖╣ 00012A00: B3 B2 AD A0-01 01 01 01-01 01 01 01-01 01 00 01 │▓на…………


Таблица 2а из Webexwin.dll измененная


00012900: 69 63 00 00-00 01 02 03-04 05 06 07-08 09 0A 0B ……………. 00012910: 0C 0D 0E 0F-10 11 12 13-14 15 16 17-18 19 20 1B ……………. 00012920: 1C 1D 1E 1F-20 21 22 23-24 25 26 27-28 29 2A 2B …. !“#$%&'()*+ 00012930: 2C 2D 2E 2F-30 31 32 33-34 35 36 37-38 39 3A 3B ,-./0123456789:; 00012940: 3C 3D 3E 3F-40 41 42 43-44 45 46 47-48 49 4A 4B ⇔?@ABCDEFGHIJK 00012950: 4C 4D 4E 4F-50 51 52 53-54 55 56 57-58 59 5A 5B LMNOPQRSTUVWXYZ[ 00012960: 5C 5D 5E 5F-60 61 62 63-64 65 66 67-68 69 6A 6B \]^_`abcdefghijk 00012970: 6C 6D 6E 6F-70 71 72 73-74 75 76 77-78 79 7A 7B lmnopqrstuvwxyz{ 00012980: 7C 7D 7E 7F-E1 E2 F7 E7-E4 E5 F6 FA-E9 EA EB EC |}стўчфхЎ·щъыь 00012990: ED EE EF F0-F2 F3 F4 F5-E6 E8 E3 FE-FB FD FF F9 эюяЁЄєЇїцшу■√¤ ∙ 000129A0: F8 FC E0 F1-C1 C2 D7 C7-C4 C5 D6 DA-C9 CA CB CC °№рё┴┬╫╟─┼╓┌╔╩╦╠ 000129B0: CD CE CF D0-90 91 92 81-87 B2 B4 A7-A6 BA A1 A8 ═╬╧╨РСТБЗ▓┤зж║би 000129C0: AE AD AC 83-84 89 88 86-80 8A AF B0-AB A5 BB B8 онмГДЙИЖАКп░ле╗╕ 000129D0: B1 A0 BE B9-BA B6 B7 AA-A9 A2 A4 BD-BC 85 82 8D ▒а╛╣║╢╖кйвд╜╝ЕВН 000129E0: 8C 8E 8F 8B-D2 D3 D4 D5-C6 C8 C3 DE-DB DD DF D9 МОПЛ╥╙╘╒╞╚├▐█▌▀┘ 000129F0: D8 DC C0 D1-B3 A3 99 98-93 9B 9F 97-9C 95 9E 96 ╪▄└╤│гЩШУЫЯЧЬХЮЦ 00012A00: BF 9D 94 9A-01 01 01 01-01 01 01 01-01 01 00 01 ┐ЭФЪ…………


Таблица 3 из Webexwin.dll исходная


000191D0: 00 01 02 03-04 05 06 07-08 09 0A 0B-0C 0D 0E 0F ……………. 000191E0: 10 11 12 13-14 15 16 17-18 19 20 1B-1C 1D 1E 1F ……………. 000191F0: 20 21 22 23-24 25 26 27-28 29 2A 2B-2C 2D 2E 2F !”#$%&'()*+,-./ 00019200: 30 31 32 33-34 35 36 37-38 39 3A 3B-3C 3D 3E 3F 0123456789:;⇔? 00019210: 40 41 42 43-44 45 46 47-48 49 4A 4B-4C 4D 4E 4F @ABCDEFGHIJKLMNO 00019220: 50 51 52 53-54 55 56 57-58 59 5A 5B-5C 5D 5E 5F PQRSTUVWXYZ[\]^_ 00019230: 60 61 62 63-64 65 66 67-68 69 6A 6B-6C 6D 6E 6F `abcdefghijklmno 00019240: 70 71 72 73-74 75 76 77-78 79 7A 7B-7C 7D 7E 7F pqrstuvwxyz{|} 00019250: FE FE FE FE-FE FE FE FE-FE FE FE FE-FE FE FE FE ■■■■■■■■■■■■■■■■ 00019260: FE 60 27 22-22 FE FE FE-FE FE FE FE-FE FE FE FE ■`'““■■■■■■■■■■■ 00019270: FF AD BD 9C-CF BE DD F5-F9 B8 A6 AE-AA FE A9 EE  н╜Ь╧╛▌ї∙╕жок■йю 00019280: F8 F1 FD FC-EF E6 F4 FA-F7 FB A7 AF-AC AB F3 A8 °ё¤№яцЇ·ў√зпмлєи 00019290: B7 B5 B6 C7-8E 8F 92 80-D4 90 D2 D3-DE D6 D7 D8 ╖╡╢╟ОПТА╘Р╥╙▐╓╫╪ 000192A0: D1 A5 E3 E0-E2 E5 99 9E-9D EB E9 EA-9A ED E8 E1 ╤еуртхЩЮЭыщъЪэшс 000192B0: 85 A0 83 C6-84 86 91 87-8A 82 88 89-8D A1 8C 8B ЕаГ╞ДЖСЗКВИЙНбМЛ 000192C0: D0 A4 95 A2-93 E4 94 F6-9B 97 A3 96-81 EC E7 98 ╨дХвУфФЎЫЧгЦБьчШ


Таблица 3а из Webexwin.dll измененная


000191D0: 00 01 02 03-04 05 06 07-08 09 0A 0B-0C 0D 0E 0F ……………. 000191E0: 10 11 12 13-14 15 16 17-18 19 20 1B-1C 1D 1E 1F ……………. 000191F0: 20 21 22 23-24 25 26 27-28 29 2A 2B-2C 2D 2E 2F !”#$%&'()*+,-./ 00019200: 30 31 32 33-34 35 36 37-38 39 3A 3B-3C 3D 3E 3F 0123456789:;⇔? 00019210: 40 41 42 43-44 45 46 47-48 49 4A 4B-4C 4D 4E 4F @ABCDEFGHIJKLMNO 00019220: 50 51 52 53-54 55 56 57-58 59 5A 5B-5C 5D 5E 5F PQRSTUVWXYZ[\]^_ 00019230: 60 61 62 63-64 65 66 67-68 69 6A 6B-6C 6D 6E 6F `abcdefghijklmno 00019240: 70 71 72 73-74 75 76 77-78 79 7A 7B-7C 7D 7E 7F pqrstuvwxyz{|} 00019250: C4 B3 DA BF-C0 D9 C3 B4-C2 C1 C5 DF-DC DB DD DE ─│┌┐└┘├┤┬┴┼▀▄█▌▐ 00019260: B0 B1 B2 F4-FE F9 FB F7-F3 F2 FF F5-F8 FD FA F6 ░▒▓Ї■∙√ўєЄ ї°¤·Ў 00019270: CD BA D5 F1-D6 C9 B8 B7-BB D4 D3 C8-BE BD BC C6 ═║╒ё╓╔╕╖╗╘╙╚╛╜╝╞ 00019280: C7 CC B5 F0-B6 B9 D1 D2-CB CF D0 CA-D8 D7 CE FC ╟╠╡Ё╢╣╤╥╦╧╨╩╪╫╬№ 00019290: EE A0 A1 E6-A4 A5 E4 A3-E5 A8 A9 AA-AB AC AD AE юабцдефгхийклмно 000192A0: AF EF E0 E1-E2 E3 A6 A2-EC EB A7 E8-ED E9 E7 EA пярстужвьызшэщчъ 000192B0: 9E 80 81 96-84 85 94 83-95 88 89 8A-8B 8C 8D 8E ЮАБЦДЕФГХИЙКЛМНО 000192C0: 8F 9F 90 91-92 93 86 82-9C 9B 87 98-9D 99 97 9A ПЯРСТУЖВЬЫЗШЭЩЧЪ


PS. Во избежание каких-либо недоразумений в Вашей системе прошу

   помнить, что ответсвенность за использование или неиспользование
   изложенных здесь советов несете Вы и только Вы сами. В общем это
   типичный As Is, не более того. Однако с удовольствием прочту
   Ваши сообщения и порадуюсь вместе с Вами если Вы достигнете
   большего.