diff options
author | Mystery Man <unknown@mandriva.org> | 1999-09-29 14:13:47 +0000 |
---|---|---|
committer | Mystery Man <unknown@mandriva.org> | 1999-09-29 14:13:47 +0000 |
commit | 229435ccf04db72401bb5df7d3b015565952fcc5 (patch) | |
tree | 16ffcdb570219012938b771f1b9ab064114d2b5f /perl-install/lang.pm | |
parent | ec5cc80aff948eceee5b322bc19cf3e4e65a7c3a (diff) | |
download | drakx-1_0.tar drakx-1_0.tar.gz drakx-1_0.tar.bz2 drakx-1_0.tar.xz drakx-1_0.zip |
This commit was manufactured by cvs2svn to create tag 'V1_0'.V1_0
Diffstat (limited to 'perl-install/lang.pm')
-rw-r--r-- | perl-install/lang.pm | 233 |
1 files changed, 0 insertions, 233 deletions
diff --git a/perl-install/lang.pm b/perl-install/lang.pm deleted file mode 100644 index 724f63f18..000000000 --- a/perl-install/lang.pm +++ /dev/null @@ -1,233 +0,0 @@ - package lang; - -use diagnostics; -use strict; - -#-###################################################################################### -#- misc imports -#-###################################################################################### -use common qw(:file); -use commands; -use install_any; -use log; - -#-###################################################################################### -#- Globals -#-###################################################################################### -#- key (to be used in $LC_ALL), [0] = english name, [1] = charset encoding, -#- [2] = value for $LANG, [3] = value for LANGUAGE (a list of possible -#- languages, carefully choosen) -my %languages = ( - 'en' => [ 'English', undef, 'en', 'en_US' ], - 'hy' => [ 'Armenian', 'armscii-8', 'hy', 'hy' ], -'zh_TW.Big5' => [ 'Chinese (Big5)', 'Big5', 'zh_TW.Big5', 'zh_TW.Big5:zh_TW.big5' ], -'fr_FR' => [ 'French (France)', 'iso-8859-1', 'fr', 'fr_FR' ], - 'ka' => [ 'Georgian', 'georgian-academy', 'ka', 'ka' ], -'de_DE' => [ 'German (Germany)', 'iso-8859-1', 'de', 'de_DE' ], - 'el' => [ 'Greek', 'iso-8859-7', 'el', 'el' ], - 'hu' => [ 'Hungarian', 'iso-8859-2', 'hu', 'hu' ], - 'is' => [ 'Icelandic', 'iso-8859-1', 'is', 'is' ], -#- 'in' was the old code for indonesian language; by putting LANGUAGE=id:in -#- we catch the few catalog files still using the wrong code - 'id' => [ 'Indonesian', 'iso-8859-1', 'id', 'id:in' ], - 'it' => [ 'Italian', 'iso-8859-1', 'it', 'it_IT' ], - 'ja' => [ 'Japanese', 'jisx0208', 'ja', 'ja_JP.ujis' ], - 'ko' => [ 'Korean', 'ksc5601', 'ko', 'ko' ], - 'no' => [ 'Norwegian (Bokmaal)', 'iso-8859-1', 'no', 'no:no@nynorsk' ], -'no@nynorsk' => [ 'Norwegian (Nynorsk)','iso-8859-1','no', 'no@nynorsk' ], -'pt_BR' => [ 'Portuguese (Brazil)', 'iso-8859-1', 'pt', 'pt_BR:pt_PT' ], -'pt_PT' => [ 'Portuguese (Portugal)', 'iso-8859-1', 'pt', 'pt_PT:pt_BR' ], - 'ro' => [ 'Romanian', 'iso-8859-2', 'ro', 'ro' ], - 'ru' => [ 'Russian', 'koi8-r', 'ru', 'ru' ], - 'sk' => [ 'Slovak', 'iso-8859-2', 'sk', 'sk' ], -'es_ES' => [ 'Spanish (Spain)', 'iso-8859-1', 'es', 'es' ], - 'tr' => [ 'Turkish', 'iso-8859-9', 'tr', 'tr' ], - 'uk' => [ 'Ukrainian', 'koi8-u', 'uk', 'uk' ], - 'vi' => [ 'Vietnamese (TCVN)', 'tcvn', 'vi', - 'vi_VN.tcvn:vi_VN.tcvn-5712' ], -'vi_VN.viscii' => [ 'Vietnamese (VISCII)','viscii', 'vi', - 'vi_VN.viscii:vi_VN.tcvn-viscii1.1-1' ], - 'wa' => [ 'Walon', 'iso-8859-1', 'wa', 'wa:fr_BE' ], -); - -my %charsets = ( - "armscii-8" => [ "arm8", "armscii8", - "*-helvetica-medium-r-normal--14-*-*-*-*-iso8859-1," . - "*-*helv*-medium-r-normal--14-*-*-*-*-armscii-8" ], -#- chinese needs special console driver for text mode - "Big5" => [ "?????", "????", - "*-helvetica-medium-r-normal--14-*-*-*-*-*-iso8859-1," . - "-taipei-*-medium-r-normal--16-*-*-*-*-*-big5-0" ], - "iso-8859-1" => [ "lat0-sun16", "iso15", - "*-helvetica-medium-r-normal--14-*-*-*-*-iso8859-1" ], - "iso-8859-2" => [ "lat2-sun16", "iso02", - "*-helvetica-medium-r-normal--14-*-*-*-*-iso8859-1," . - "*-helvetica-medium-r-normal--14-*-*-*-*-iso8859-2" ], - "iso-8859-3" => [ "iso03.f16", "iso03", - "*-helvetica-medium-r-normal--14-*-*-*-*-iso8859-1," . - "*-helvetica-medium-r-normal--14-*-*-*-*-iso8859-3" ], - "iso-8859-4" => [ "lat4u-16", "iso04", - "*-helvetica-medium-r-normal--14-*-*-*-*-iso8859-1," . - "*-helvetica-medium-r-normal--14-*-*-*-*-iso8859-4" ], - "iso-8859-5" => [ "iso05.f16", "iso05", - "*-helvetica-medium-r-normal--14-*-*-*-*-iso8859-1," . - "*-helvetica-medium-r-normal--14-*-*-*-*-iso8859-5" ], -#- arabic needs special console driver for text mode [acon] -#- (and gtk support isn't done yet) - "iso-8859-6" => [ "iso06.f16", "iso06", - "*-helvetica-medium-r-normal--14-*-*-*-*-iso8859-1," . - "*-helvetica-medium-r-normal--14-*-*-*-*-iso8859-6" ], - "iso-8859-7" => [ "iso07.f16", "iso07", - "*-helvetica-medium-r-normal--14-*-*-*-*-iso8859-1," . - "*-helvetica-medium-r-normal--14-*-*-*-*-iso8859-7" ], -#- hebrew needs special console driver for text mode (none yet) -#- (and gtk support isn't done yet) - "iso-8859-8" => [ "iso08.f16", "iso08", - "*-helvetica-medium-r-normal--14-*-*-*-*-iso8859-1," . - "*-helvetica-medium-r-normal--14-*-*-*-*-iso8859-8" ], - "iso-8859-9" => [ "lat5-16", "iso09", - "*-helvetica-medium-r-normal--14-*-*-*-*-iso8859-1," . - "*-helvetica-medium-r-normal--14-*-*-*-*-iso8859-9" ], - "iso-8859-15" => [ "lat0-sun16", "iso15", - "*-helvetica-medium-r-normal--14-*-*-*-*-iso8859-1," . - "*-helvetica-medium-r-normal--14-*-*-*-*-iso8859-15" ], -#- japanese needs special console driver for text mode [kon2] - "jisx0208" => [ "????", "????", - "*-helvetica-medium-r-normal--14-*-*-*-*-iso8859-1," . - "-*-*-medium-r-normal--14-*-*-*-*-*-jisx0208.*-0," . - "-*-*-medium-r-normal--14-*-*-*-*-*-jisx0201.*-0" ], - "koi8-r" => [ "Cyr_a8x16", "koi2alt", - "*-helvetica-medium-r-normal--14-*-*-*-*-iso8859-1," . - "*-helvetica-medium-r-normal--14-*-*-*-*-koi8-r" ], - "koi8-u" => [ "ruscii_8x16", "koi2alt", - "*-helvetica-medium-r-normal--14-*-*-*-*-iso8859-1," . - "*-helvetica-medium-r-normal--14-*-*-*-*-koi8-u" ], -#- korean needs special console driver for text mode - "ksc5601" => [ "?????", "?????", - "*-helvetica-medium-r-normal--14-*-*-*-*-iso8859-1," . - "-*-*-medium-*-*--14-*-*-*-*-*-ksc5601.1987-*" ], - "tcvn" => [ "tcvn8x16", "tcvn", - "*-helvetica-medium-r-normal--14-*-*-*-*-iso8859-1," . - "*-helvetica-medium-r-normal--14-*-*-*-*-tcvn-5712" ], - "viscii" => [ "viscii10-8x16", "viscii", - "*-helvetica-medium-r-normal--14-*-*-*-*-iso8859-1," . - "*-helvetica-medium-r-normal--14-*-*-*-*-viscii1.1-1" ], -); - -#-###################################################################################### -#- Functions -#-###################################################################################### - -sub list { map { $_->[0] } values %languages } -sub lang2text { $languages{$_[0]} && $languages{$_[0]}[0] } -sub text2lang { - my ($t) = @_; - while (my ($k, $v) = each %languages) { - lc($v->[0]) eq lc($t) and return $k; - } - die "unknown language $t"; -} - -sub set { - my ($lang, $prefix) = @_; - - if ($lang) { - $ENV{LC_ALL} = $lang; - $ENV{LANG} = $languages{$lang}[2]; - $ENV{LANGUAGES} = $languages{$lang}[3]; - } else { - # stick with the default (English) */ - delete $ENV{LANG}; - delete $ENV{LC_ALL}; - delete $ENV{LINGUAS}; - } - install_any::install_cpio("/usr/share/locale", $lang); -} - -sub write { - my ($prefix) = @_; - my $lang = $ENV{LC_ALL}; - - $lang or return; - local *F; - open F, "> $prefix/etc/sysconfig/i18n" or die "failed to reset $prefix/etc/sysconfig/i18n for writing"; - my $f = sub { $_[1] and print F "$_[0]=$_[1]\n"; }; - - &$f("LC_ALL", $lang); - if (my $l = $languages{$lang}) { - &$f("LANG", $l->[2]); - &$f("LANGUAGE", $l->[3]); - - $l->[1] or return; - if (my $c = $charsets{$l->[1]}) { - &$f("SYSFONT", $c->[0]); - &$f("SYSFONTACM", $c->[1]); - - my $p = "$prefix/usr/lib/kbd"; - commands::cp("-f", - "$p/consolefonts/$c->[0].psf.gz", - glob_("$p/consoletrans/$c->[1]*"), - "$prefix/etc/sysconfig/console"); - } - } -} - -sub load_po($) { - my ($lang) = @_; - my ($s, $from, $to, $state, $fuzzy); - - $s .= "package po::I18N;\n"; - $s .= "\%$lang = ("; - - my $f; -e ($f = "$_/po/$lang.po") and last foreach @INC; - local *F; open F, $f or return; - foreach (<F>) { - /^msgstr/ and $state = 1; - /^msgid/ && !$fuzzy and $state = 2; - - if (/^(#|$)/ && $state != 3) { - $state = 3; - $s .= qq("$from" => "$to",\n) if $from; - $from = $to = ''; - } - $to .= (/"(.*)"/)[0] if $state == 1; - $from .= (/"(.*)"/)[0] if $state == 2; - - $fuzzy = /^#, fuzzy/; - } - $s .= ");"; - no strict "vars"; - eval $s; - !$@; -} - - -#-sub load_font { -#- my ($charset) = @_; -#- my $fontFile = "lat0-sun16"; -#- -#- if (my $c = $charsets{$charset}) { -#- log::l("loading $charset font"); -#- $fontFile = $c->[0]; -#- } -#- -#- # text mode font -#- log::l("loading font /usr/share/consolefonts/$fontFile"); -#- #c::loadFont("/tmp/$fontFile") or log::l("error in loadFont: one of PIO_FONT PIO_UNIMAPCLR PIO_UNIMAP PIO_UNISCRNMAP failed: $!"); -#- #print STDERR "\033(K"; -#- -#-} - -#-sub get_x_fontset { -#- my ($lang) = @_; -#- my $def = "*-helvetica-medium-r-normal--14-*-*-*-*-iso8859-1"; -#- -#- my $l = $languages{$lang} or return $def; -#- my $c = $charsets{$l->[1]} or return $def; -#- $c->[2]; -#-} - -#-###################################################################################### -#- Wonderful perl :( -#-###################################################################################### -1; |