--- design-bootloader-Compact-2.9.8.orig/dia_lang.inc 2005-06-27 13:33:34 +0400 +++ design-bootloader-Compact-2.9.8.orig/dia_lang.inc 2006-08-19 14:31:43 +0400 @@ -12,6 +12,7 @@ % fallback if there is no "languages" /lang.items [ "en" ] def /lang.names [ "English" ] def +/lang.prompts [ "In order to select language, press F3" ] def /.la.locale 0 def /.la.name 1 def @@ -22,7 +23,7 @@ [ "bg" "Български" ] [ "be" "Беларуская" ] [ "cs" "Čeština" ] - [ "en" "English" ] + [ "en" "Eng lish" ] [ "fr" "Français" ] [ "de" "Deutsch" ] [ "es" "Español" ] @@ -45,6 +46,12 @@ [ "zh_TW" "繁體中文" ] ] def +/lang.defaultprompts [ + [ "en" "In order to select language, press F3" ] + [ "ru" "Чтобы выбрать язык, нажмите F3" ] + [ "uk" "Вибір мови клавішою F3" ] + [ "be" "по-беларусски" ] +] def % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - % Get language name. @@ -59,6 +66,18 @@ } forall } def +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Get localized prompt. +% +% Returns locale if not found. +% +% ( locale ) ==> ( name ) +% +/lang.getdefprompt { + lang.defaultprompts { + dup .la.locale get 2 index eq { .la.name get exch pop exit } { pop } ifelse + } forall +} def % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - % Parse "languages" file. @@ -115,6 +134,24 @@ 0 seteotchar + /lang.maxprompt 0 def + /lang.prompts [ + + lang.items { + dup + + dup length add + dup 0 0 put + 1 add + + dup "" ne { exch pop } { pop lang.getdefprompt } ifelse +% save maximum prompt width + dup strsize pop dup lang.maxprompt gt { /lang.maxprompt exch def } { pop } ifelse + + } forall + + ] def + } def @@ -128,6 +165,7 @@ /xmenu xmenu.lang def lang.parsedata + lang.showprompts xmenu .xm_current lang.default put xmenu .xm_list lang.names put @@ -150,6 +188,29 @@ % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +% Show localized prompts +% +% ( ) ==> ( ) +% +/lang.showprompts { + +% move to 'Boot options' position + boot.pos moveto +% move left by half of max prompt and by 40 px down + 0 lang.maxprompt 2 div sub 40 rmoveto + + lang.prompts { + + dup show +% move -width(prompt), +height(prompt) + strsize exch 0 exch sub exch rmoveto + + } forall + +} def + + +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - % Update language. % % ( ) ==> ( )