Как запустить OpenWindows под Солярис 8 в локализации ru_RU.ISO8859-5

1. Добейтесь, чтобы дерево директорий для локализации iso8859-5 имело вид (длины файлов могут отличаться - они будут скорректированы позже):

# pwd
/usr/openwin/lib/locale

# ls -l
............................. skipped
lrwxrwxrwx   1 root     other          9 Mar 10 19:18 ru -> iso8859-5
lrwxrwxrwx   1 root     other          9 Mar 10 19:17 ru_RU -> iso8859-5
lrwxrwxrwx   1 root     other          9 Mar 10 19:17 ru_RU.ISO8859-5 -> iso8859-5
............................. skipped
drwxrwxr-x   8 root     root         512 Feb 25 13:18 iso8859-5
............................. skipped

# ls -l iso8859-5
-rw-r--r--   1 root     bin         3402 Jan  5 14:37 Compose
drwxr-xr-x   2 root     other        512 Feb 25 13:18 LC_MESSAGES
drwxr-xr-x   2 root     other        512 Feb 25 13:03 OW_FONT_SETS
-rw-r--r--   1 root     other        157 Feb 25 11:07 OWfontpath
lrwxrwxrwx   1 root     root          23 Jul 24  2000 XI18N_OBJS -> ../iso8859-1/XI18N_OBJS
-rw-r--r--   1 root     bin          675 Sep 18  1996 XLC_LOCALE
drwxrwxr-x   2 bin      bin          512 Oct 10  2000 app-defaults
drwxrwxr-x   2 root     bin          512 Jul 24  2000 libs
drwxrwxr-x   2 root     bin          512 Jul 24  2000 print
lrwxrwxrwx   1 root     root          25 Jul 24  2000 xomEuro.so.2 -> ../iso8859-1/xomEuro.so.2
drwxrwxr-x   2 root     bin          512 Feb 25 13:07 xview

# ls -l iso8859-5/LC_MESSAGES
drwxrwxr-x   2 root     bin          512 Feb 25 13:07 .
drwxrwxr-x   8 root     root         512 Feb 25 13:18 ..

# ls -l iso8859-5/OW_FONT_SETS
drwxrwxr-x   2 root     bin          512 Feb 25 13:07 .
drwxrwxr-x   8 root     root         512 Feb 25 13:18 ..
-rw-r--r--   1 root     other       3917 Feb 25 13:03 OpenWindows.fs

# ls -l iso8859-5/app-defaults
drwxrwxr-x   2 root     bin          512 Feb 25 13:07 .
drwxrwxr-x   8 root     root         512 Feb 25 13:18 ..
-rw-r--r--   1 root     bin          667 Feb 25 03:15 Olwm

# ls -l iso8859-5/libs
drwxrwxr-x   2 root     bin          512 Feb 25 13:07 .
drwxrwxr-x   8 root     root         512 Feb 25 13:18 ..
lrwxrwxrwx   1 root     other         13 Mar 10 20:29 wckind.so -> ./wckind.so.0
-rwxrwxr-x   1 root     bin         3244 Dec  4  1999 wckind.so.0

# ls -l iso8859-5/print
drwxrwxr-x   2 root     bin          512 Feb 25 13:07 .
drwxrwxr-x   8 root     root         512 Feb 25 13:18 ..
-rw-r--r--   1 bin      bin         1072 Dec  9  1999 prolog.ps

# ls -l iso8859-5/xview
drwxrwxr-x   2 root     bin          512 Feb 25 13:07 .
drwxrwxr-x   8 root     root         512 Feb 25 13:18 ..
-rw-rw-r--   1 bin      bin         1362 Mar 10 20:43 .text_extras_menu
-rw-rw-r--   1 bin      bin         1378 Sep 23  1996 defaults

2. Убедитесь, что указанные файлы в директории /usr/openwin/lib/locale содержат следующие строки:

$ grep "ru" locale.dir
iso8859-5/XLC_LOCALE 		ru.ISO8859-5
ru_RU.ISO8859-5/XLC_LOCALE 	ru_RU.ISO8859-5
ru.koi8-r/XLC_LOCALE		ru.koi8-r
ru_RU.ANSI1251/XLC_LOCALE	ru.ansi1251
ru.UTF-8/XLC_LOCALE		ru.UTF-8

$ grep "ru" locale.alias
ru_RU.ISO8859-5			ru.ISO8859-5
ru_SU				ru.ISO8859-5
ru_RU				ru.ISO8859-5
ru_RU.KOI8-R			ru.koi8-r
ru_RU.ANSI1251			ru.ansi1251
ru				ru.ISO8859-5
ru.koi8-r			ru.koi8-r
ru.ansi1251			ru.ansi1251
ru.UTF-8			ru.UTF-8
ru_RU.UTF-8			ru.UTF-8

$ grep "ru" compose.dir
iso8859-5/Compose 		ru.ISO8859-5
iso8859-5/Compose 		ru_RU.ISO8859-5
iso8859-5/Compose 		ru
ru.koi8-r/Compose		ru.koi8-r
ru_RU.ANSI1251/Compose		ru.ansi1251
ru.UTF-8/Compose		ru.UTF-8

Вы можете проверить, правильность установки локализаций, выполнив следующие команды:

$ LANG=ru
$ LANG=ru_RU
$ LANG=ru_RU.ISO8859-5
$ locale -a | grep "ru"
ru
ru.koi8-r
ru_RU
ru_RU.ANSI1251
ru_RU.ISO8859-5
ru_RU.KOI8-R

Если локализация установлена или указана неверно, то Вы, например, увидите:

$ LANG=ru_RU.iso8859-5
couldn't set locale correctly

3. Если Вы имеете клавиатуру Sun, то переключение Lat/Рус осуществляется клавишей <Multi_key>. Если же у Вас обычная PC-клавиатура (104-клавиши), то удобно сделать переключение Lat/Рус по клавише <Menu>. Вы можете посмотреть имя (keysym) нажимаемой клавиши с помощью программы /usr/openwin/demo/xev. Таким образом, в файле iso8859-5/Compose может быть записано:

# %Z%%M% %I% %E%         (c) Sun Microsystems, Inc.
#
# Compose table for the Russian language
#

#
# Native English mode
#

STATE   "[ English ]"
# Uncomment for Sun keyboard:
<Multi_key>     : SWITCH_STATE_TO "[ Русский ]"
# Uncomment for PC keyboard (104 keys):
#<Menu>         : SWITCH_STATE_TO "[ Русский ]"
# Uncomment for PC keyboard (101 keys):
#Ctrl<space>    : SWITCH_STATE_TO "[ Русский ]"
END_STATE

#
# Russian Mode
#

STATE   "[ Русский ]"
# Uncomment for Sun keyboard:
<Multi_key>     : SWITCH_STATE_TO "[ English ]"
# Uncomment for PC keyboard (104 keys):
#<Menu>         : SWITCH_STATE_TO "[ English ]"
# Uncomment for PC keyboard (101 keys):
#Ctrl<space>    : SWITCH_STATE_TO "[ English ]"

................................................. skipped

END_STATE

4. Файл iso8859-5/OWfontpath обрабатывается скриптом /usr/dt/bin/Xsession, функцией ADDFONTPATH_LOCAL (ADDFONTPATH_REMOTE). В этом скрипте имеется ошибка: в квадратных скобках вместо 5 пробелов должен быть один символ пробела и один символ табуляции. По-видимому, табуляция исчезла при копировании файла. Исправить лучше так:

ADDFONTPATH_LOCAL() {
        # Combine lines together to make arguments for the xset command
        FP=`awk '
        BEGIN { fp="fp+ " }
        /^[\t ]*$/ { fp=" +fp " ; continue }
        { printf("%s%s", fp, $0) ; fp="," } ' $1`
        if [ -n "$FP" ]; then

                Log "setting auxiliary font path..."

                eval "$XDIR/xset $FP"
        fi
}

Исправьте все аналогичные ошибки в других скриптах из /usr/dt/bin, /usr/dt/config. Единственную правильную запись выражения в квадратных скобках удалось найти в конце файла /usr/dt/config/Xsession.d/0015.sun.env.

Файл iso8859-5/OWfontpath должен иметь вид:


/usr/openwin/lib/locale/iso_8859_5/X11/fonts/75dpi
/usr/openwin/lib/locale/iso_8859_5/X11/fonts/Type1
/usr/openwin/lib/locale/iso_8859_5/X11/fonts/TrueType

Первая строка файла должна быть пустой или заполненной пробелами и табуляциями. Это означает, что пути к шрифтам будут добавлены в начало списка путей поиска. Если пустая строка отсутствует, то пути будут добавлены в конец списка.

Каждый путь должен быть записан на отдельной строке с её первой позиции. Это необходимо для тех программ, которые сами читают и анализируют файл OWfontpath, например /usr/dt/bin/sdtfontadm. Если пути перечислены в одной строке через запятую, то sdtfontadm не сможет найти путь к шрифтам в данной локализации.

5. Для того, чтобы olwm мог запустится, файл iso8859-5/app-defaults/Olwm должен иметь вид:

! @(#)Olwm 1.7 93/06/04; SMI
!
! Default OLWM resource for Russian locale
!
*olDefaultFont: -b&h-lucida-medium-r-normal-sans-12-120-75-75-p-71-iso8859-5
!
OpenWindows.TitleFont.ru:    -b&h-lucida-bold-r-normal-bold-12-120-75-75-p-79-iso8859-5
OpenWindows.ButtonFont.ru:   -b&h-lucida-medium-r-normal-sans-12-120-75-75-p-71-iso8859-5
OpenWindows.TextFont.ru:     -b&h-lucida-medium-r-normal-sans-12-120-75-75-p-71-iso8859-5
OpenWindows.IconFont.ru:     -b&h-lucida-medium-r-normal-sans-12-120-75-75-p-71-iso8859-5
OpenWindows.GlyphFont.ru:    -sun-open look glyph-*-*-*-*-*-120-*-*-*-*-*-*
OpenWindows.BoldFontEmulation.ru:   False
OpenWindows.CharacterSet.ru:   ru

6. Семейства шрифтов для приложений OpenWindows определяются в файле iso8859-5/OW_FONT_SETS/OpenWindows.fs, который также должен быть исправлен:

!
! /usr/openwin/lib/locale/iso8859-5/OW_FONT_SETS/OpenWindows.fs
!
xv_font_set.default: -b&h-lucida-medium-r-normal-sans-12-120-75-75-p-71-iso8859-5
!
font10:definition,-*-*-medium-r-*-*-10-*-*-*-p-*-iso8859-5
font11:definition,-*-*-medium-r-*-*-12-*-*-*-p-*-iso8859-5
font12:definition,-*-*-medium-r-*-*-14-*-*-*-p-*-iso8859-5
font13:definition,-*-*-medium-r-*-*-16-*-*-*-p-*-iso8859-5
font14:definition,-*-*-medium-r-*-*-20-*-*-*-p-*-iso8859-5
font15:definition,-*-*-medium-r-*-*-24-*-*-*-p-*-iso8859-5
!
font20:definition,-*-*-medium-r-*-*-10-*-*-*-m-*-iso8859-5
font21:definition,-*-*-medium-r-*-*-12-*-*-*-m-*-iso8859-5
font22:definition,-*-*-medium-r-*-*-14-*-*-*-m-*-iso8859-5
font23:definition,-*-*-medium-r-*-*-16-*-*-*-m-*-iso8859-5
font24:definition,-*-*-medium-r-*-*-20-*-*-*-m-*-iso8859-5
font25:definition,-*-*-medium-r-*-*-24-*-*-*-m-*-iso8859-5
!
font30:definition,-*-*-bold-r-*-*-10-*-*-*-m-*-iso8859-5
font31:definition,-*-*-bold-r-*-*-12-*-*-*-m-*-iso8859-5
font32:definition,-*-*-bold-r-*-*-14-*-*-*-m-*-iso8859-5
font33:definition,-*-*-bold-r-*-*-16-*-*-*-m-*-iso8859-5
font34:definition,-*-*-bold-r-*-*-20-*-*-*-m-*-iso8859-5
font35:definition,-*-*-bold-r-*-*-24-*-*-*-m-*-iso8859-5
!
font40:definition,-*-*-bold-r-*-*-10-*-*-*-p-*-iso8859-5
font41:definition,-*-*-bold-r-*-*-12-*-*-*-p-*-iso8859-5
font42:definition,-*-*-bold-r-*-*-14-*-*-*-p-*-iso8859-5
font43:definition,-*-*-bold-r-*-*-16-*-*-*-p-*-iso8859-5
font44:definition,-*-*-bold-r-*-*-20-*-*-*-p-*-iso8859-5
font45:definition,-*-*-bold-r-*-*-24-*-*-*-p-*-iso8859-5
!
xv_font_set.small: 10
xv_font_set.medium: 12
xv_font_set.large: 14
xv_font_set.extra_large: 20
!
xv_font_set.default_family: FONT_FAMILY_SANS_SERIF
!
FONT_FAMILY_SANS_SERIF-FONT_STYLE_NORMAL-10:alias,font10
FONT_FAMILY_SANS_SERIF-FONT_STYLE_NORMAL-12:alias,font11
FONT_FAMILY_SANS_SERIF-FONT_STYLE_NORMAL-14:alias,font12
FONT_FAMILY_SANS_SERIF-FONT_STYLE_NORMAL-16:alias,font13
FONT_FAMILY_SANS_SERIF-FONT_STYLE_NORMAL-20:alias,font14
FONT_FAMILY_SANS_SERIF-FONT_STYLE_NORMAL-24:alias,font15
!
FONT_FAMILY_DEFAULT_FIXEDWIDTH-FONT_STYLE_NORMAL-10:alias,font20
FONT_FAMILY_DEFAULT_FIXEDWIDTH-FONT_STYLE_NORMAL-12:alias,font21
FONT_FAMILY_DEFAULT_FIXEDWIDTH-FONT_STYLE_NORMAL-14:alias,font22
FONT_FAMILY_DEFAULT_FIXEDWIDTH-FONT_STYLE_NORMAL-16:alias,font23
FONT_FAMILY_DEFAULT_FIXEDWIDTH-FONT_STYLE_NORMAL-20:alias,font24
FONT_FAMILY_DEFAULT_FIXEDWIDTH-FONT_STYLE_NORMAL-24:alias,font25
!
FONT_FAMILY_SANS_SERIF-FONT_STYLE_MEDUIM-10:alias,font10
FONT_FAMILY_SANS_SERIF-FONT_STYLE_MEDUIM-12:alias,font11
FONT_FAMILY_SANS_SERIF-FONT_STYLE_MEDIUM-14:alias,font12
FONT_FAMILY_SANS_SERIF-FONT_STYLE_MEDIUM-16:alias,font13
FONT_FAMILY_SANS_SERIF-FONT_STYLE_MEDIUM-20:alias,font14
FONT_FAMILY_SANS_SERIF-FONT_STYLE_MEDIUM-24:alias,font15
!
FONT_FAMILY_SANS_SERIF-FONT_STYLE_BOLD-10:alias,font40
FONT_FAMILY_SANS_SERIF-FONT_STYLE_BOLD-12:alias,font41
FONT_FAMILY_SANS_SERIF-FONT_STYLE_BOLD-14:alias,font42
FONT_FAMILY_SANS_SERIF-FONT_STYLE_BOLD-16:alias,font43
FONT_FAMILY_SANS_SERIF-FONT_STYLE_BOLD-20:alias,font44
FONT_FAMILY_SANS_SERIF-FONT_STYLE_BOLD-24:alias,font45
!
FONT_FAMILY_DEFAULT_FIXEDWIDTH-FONT_STYLE_BOLD-10:alias,font30
FONT_FAMILY_DEFAULT_FIXEDWIDTH-FONT_STYLE_BOLD-12:alias,font31
FONT_FAMILY_DEFAULT_FIXEDWIDTH-FONT_STYLE_BOLD-14:alias,font32
FONT_FAMILY_DEFAULT_FIXEDWIDTH-FONT_STYLE_BOLD-16:alias,font33
FONT_FAMILY_DEFAULT_FIXEDWIDTH-FONT_STYLE_BOLD-20:alias,font34
FONT_FAMILY_DEFAULT_FIXEDWIDTH-FONT_STYLE_BOLD-24:alias,font35
!
FONT_FAMILY_SANS_SERIF-FONT_STYLE_TYPEWRITER-10:alias,font20
FONT_FAMILY_SANS_SERIF-FONT_STYLE_TYPEWRITER-12:alias,font21
FONT_FAMILY_SANS_SERIF-FONT_STYLE_TYPEWRITER-14:alias,font22
FONT_FAMILY_SANS_SERIF-FONT_STYLE_TYPEWRITER-16:alias,font23
FONT_FAMILY_SANS_SERIF-FONT_STYLE_TYPEWRITER-20:alias,font24
FONT_FAMILY_SANS_SERIF-FONT_STYLE_TYPEWRITER-24:alias,font25

7. Файл iso8859-5/xview/.text_extras_menu должен иметь вид:

#        @(#)text_extras_menu 1.7 94/12/15         SMCC
#
#	Copyright (c) 1987-1995 by Sun Microsystems, Inc.
#
#	Text "Extras" menu
#
"Отформатировать"		fmt

"Отконвертировать"      	MENU 
        "WIN -> ISO"    iconv -f win -t iso
        "WIN -> ALT"    iconv -f win -t alt
        "WIN -> KOI"    iconv -f win -t koi
        "KOI -> ISO"    iconv -f koi -t iso
        "KOI -> ALT"    iconv -f koi -t alt
        "KOI -> WIN"    iconv -f koi -t win 
        "ISO -> KOI"    iconv -f iso -t koi
        "ISO -> ALT"    iconv -f iso -t alt 
        "ISO -> WIN"    iconv -f iso -t win
        "ALT -> ISO"    iconv -f alt -t iso
        "ALT -> KOI"    iconv -f alt -t koi 
        "ALT -> WIN"    iconv -f alt -t win 
"Отконвертировать"        	END 

"Изменить регистр"		MENU
	"abcd -> ABCD"	capitalize -u
	"ABCD -> abcd"	capitalize -l
	"abcd -> Abcd"	capitalize -c
"Изменить регистр"		END

"Сдвинуть строки"		MENU
	"Вправо"	shift_lines -t 1
	"Влево"		shift_lines -t -1
"Сдвинуть строки"		END

"Pretty-print C"	indent -st

"Вставить скобки"		MENU
	" ( )"		insert_brackets ( )
	" [ ]"		insert_brackets \[ \]
	" { }"		insert_brackets { }
	"`` ''"		insert_brackets \" \"
"Вставить скобки"		END

"Удалить скобки"		MENU
	" ( )"		remove_brackets ( )
	" [ ]"		remove_brackets \[ \]
	" { }"		remove_brackets { }
	"`` ''"		remove_brackets \" \"
"Удалить скобки"		END

8. Для того, чтобы раздел OpenWindows появился в меню сессий программы Dtlogin, исправьте файл /usr/dt/config/ru_RU.ISO8859-5/Xresources.d/Xresources.ow

!!######################################################################
!!
!!   Xresources.ow
!!
!!   Configuration file for the OpenWindow alternate desktop resources 
!!
!!   (c) Copyright 1993, 1994, 1995 Sun Microsystems, Inc.
!!
!!   @(#)Xresources.ow.src 1.3 96/05/03 
!!
!!######################################################################
!!
!!  This file used by the Solaris Desktop Login manager


Dtlogin*altDtsIncrement:	True

Dtlogin*altDtName:	OpenWindows Desktop
Dtlogin*altDtKey:	/usr/openwin/bin/olwm
Dtlogin*altDtStart:	/usr/dt/config/Xsession.ow
Dtlogin*altDtLogo:	OWlogo

Файлы /usr/dt/config/ru_RU.KOI8-R/Xresources.d/Xresources.ow и /usr/dt/config/ru.ansi-1251/Xresources.d/Xresources.ow должны выглядеть так:

!!######################################################################
!!
!!   Xresources.ow
!!
!!   Configuration file for the OpenWindow alternate desktop resources 
!!
!!   (c) Copyright 1993, 1994, 1995 Sun Microsystems, Inc.
!!
!!   @(#)Xresources.ow.src 1.3 96/05/03 
!!
!!######################################################################
!!
!!  This file used by the Solaris Desktop Login manager


Dtlogin*altDtsIncrement:	True

Dtlogin*altDtName:
Dtlogin*altDtKey:
Dtlogin*altDtStart:
Dtlogin*altDtLogo:

9. В домашней директории пользователя, в файле .OWdefaults необходимо разместить следующие строки:

OpenWindows.ScreenSaver.OnOff:		off
OpenWindows.ScreenSaver.IdleTime:	10	10
OpenWindows.ObsoleteNotice:		True
OpenWindows.SetInput:			followmouse
OpenWindows.KeyboardCommands:		Full
OpenWindows.Scale:			medium
OpenWindows.ScrollbarPlacement:		right
OpenWindows.BasicLocale:		ru
OpenWindows.DisplayLang:		ru
OpenWindows.InputLang:			ru
OpenWindows.NumericFormat:		ru
OpenWindows.timeFormat:			ru

10. olwm можно запустить только в локализации ru (ru_RU, ru_RU.ISO8859-5). В локализациях ru_RU.KOI8-R (ru.koi8-r) и ru_RU.ANSI1251 это сделать невозможно, т.к. отсутствуют необходимые для оформления окон шрифты. Однако, Вы можете запускать в этих локализациях приложения OpenWindows из-под CDE, исправив файлы

/usr/openwin/lib/locale/ru_RU.ANSI1251/OW_FONT_SETS/OpenWindows.fs
/usr/openwin/lib/locale/ru_RU.ANSI1251/OWfontpath

/usr/openwin/lib/locale/ru_RU.KOI8-R/OW_FONT_SETS/OpenWindows.fs
/usr/openwin/lib/locale/ru_RU.KOI8-R/OWfontpath

аналогично тому, как было объяснено выше.

11. Если Вы хотите поменять screen-saver, например на rotor и сделать диалог на русском языке, то поместите в Вашу домашнюю директорию файл XLockN со следующим содержимым:

XLock.mode: rotor
XLock.font: -*-lucida sans-normal-r-*-*-24-*-*-*-*-*-iso8859-5
XLock.background: White
XLock.foreground: Black
XLock.username: Имя: 
XLock.password: Пароль: 
XLock.info: Для входа введите пароль.
XLock.validate: Идёт проверка...
XLock.invalid: Отвали.
XLock.nice: 10
XLock.timeout: 30
XLock.mono: off
XLock.nolock: off
XLock.remote: off
XLock.allowroot: off
XLock.enablesaver: off
XLock.allowaccess: off
XLock.echokeys: off
XLock.usefirst: off
XLock.verbose: off
XLock.hop.delay: 0
XLock.hop.batchcount: 1000
XLock.hop.saturation: 1
XLock.qix.delay: 30000
XLock.qix.batchcount: 64
XLock.qix.saturation: 1
XLock.image.delay: 2000000
XLock.image.batchcount: 8
XLock.image.saturation: 0.3
XLock.life.delay: 1000000
XLock.life.batchcount: 100
XLock.life.saturation: 1
XLock.swarm.delay: 10000
XLock.swarm.batchcount: 100
XLock.swarm.saturation: 1
XLock.rotor.delay: 10000
XLock.rotor.batchcount: 4
XLock.rotor.saturation: 1
XLock.pyro.delay: 15000
XLock.pyro.batchcount: 40
XLock.pyro.saturation: 1
XLock.blank.delay: 5000000
XLock.blank.batchcount: 1
XLock.blank.saturation: 1
XLock.flame.delay: 200000
XLock.flame.batchcount: 20
XLock.flame.saturation: 1

This page last updated on Mar 29, 2002. Copyright © 2002, Vitaly Filatov, Moscow, Russia
Webmaster