From 7fa65d931c24bd00a7d9ec9b26adaf7ad80023b9 Mon Sep 17 00:00:00 2001 From: Guillaume Cottenceau Date: Sat, 8 Feb 2003 22:09:29 +0000 Subject: language/country selection change: - first install step is selection of your language, in your language; it uses images for that - language->country is probed, the selection of the country is possible if there was a problem, in the Summary step - in the $o big structure, we now use $o->{locale} which contains three keys: lang, country and utf8 - lang.pm has been cleaned and rewritten a bit - keyboard probing now done only on language (because this step is at the beginning of the install) - timezone probing done on country, if use changes country before timezone in the Summary, re-probe timezone accordingly --- perl-install/standalone/drakhelp | 8 +++---- perl-install/standalone/drakxtv | 43 ++++++++++++++++++------------------- perl-install/standalone/localedrake | 31 +++++++++++++++----------- 3 files changed, 43 insertions(+), 39 deletions(-) (limited to 'perl-install/standalone') diff --git a/perl-install/standalone/drakhelp b/perl-install/standalone/drakhelp index a6da9f497..a3a0a9653 100644 --- a/perl-install/standalone/drakhelp +++ b/perl-install/standalone/drakhelp @@ -15,11 +15,11 @@ die "Usage: drakhelp " if @ARGV != 1; my $in = interactive->vnew; -my $lang = lang::lang2LANG(lang::read('',$>)) || 'en'; -if (!member($lang, qw(de en es fr it ru))) { $lang = 'en' }; -my $path_to_help = "/usr/share/doc/mandrake/" . $lang . "/"; +my $locale = lang::read('', $>); +if (!member($locale->{lang}, qw(de en es fr it ru))) { $locale->{lang} = 'en' }; +my $path_to_help = "/usr/share/doc/mandrake/" . $locale->{lang} . "/"; --d $path_to_help or $in->do_pkgs->install('mandrake_doc-drakxtools-' . $lang); +-d $path_to_help or $in->do_pkgs->install('mandrake_doc-drakxtools-' . $locale->{lang}); if ((my $wm = any::running_window_manager()) eq 'kwin') { system("mdklaunchhelp " . $path_to_help . $ARGV[0] . "&"); diff --git a/perl-install/standalone/drakxtv b/perl-install/standalone/drakxtv index d373b6e05..515af17a9 100755 --- a/perl-install/standalone/drakxtv +++ b/perl-install/standalone/drakxtv @@ -71,33 +71,32 @@ You can install it by typing \"urpmi xawtv\" as root, in a console."))); ); # Info: HRC means "Harmonically Related Carrier" - # default to pal since most people use that - $norm = "PAL"; my %countries = ( - "ar" => [ "argentina" ], - "au" => [ "australia" ], - "(br|fr)" => ["france", "SECAM"], - "ca" => [ "canada-cable" ], - "(ga|ie)" => [ "ireland" ], - "it" => [ "italy" ], - "jp" => [ "japan-bcast", "NTSC-JP" ], - "nz" => [ "newzealand" ], - "(at|be|ch|de|eu|gb|se)" => [ "europe-west" ], - "us" => [ "us-bcast", "NTSC" ], - "za" => [ "southafrica" ], - "(zh|TW|Big5|CN.GB2312|CN)" => [ "china-bcast" ] + "AR" => [ "argentina" ], + "AU" => [ "australia" ], + "FR" => [ "france", "SECAM"], + "CA" => [ "canada-cable" ], + "IE" => [ "ireland" ], + "IT" => [ "italy" ], + "JP" => [ "japan-bcast", "NTSC-JP" ], + "NZ" => [ "newzealand" ], + "AT|BE|CH|DE|ES|GB|SE" => [ "europe-west" ], + "US" => [ "us-bcast", "NTSC" ], + "ZA" => [ "southafrica" ], + "CN|TW" => [ "china-bcast" ] ); - ($_) = lang::read('', $>); - foreach my $i (keys %countries) { - if (/($i|$i.UTF-8)$/i) { - my $tbl = $countries{$i}; - $ftable_id = $tbl->[0]; - $norm = $tbl->[1] if $tbl->[1]; - } + my $tbl; + my $locale = lang::read('', $>); + $locale->{country} =~ /$_/ and $tbl = $countries{$_} foreach keys %countries; + if ($tbl) { + $ftable_id = $tbl->[0]; + $norm = $tbl->[1] if $tbl->[1]; } - log::l("[drakxtv] guess lang=>$_, norm=>$norm, area=>$ftable_id"); + # default to pal since most people use that + $norm ||= "PAL"; + log::l("[drakxtv] guess country=>$locale->{country}, norm=>$norm, area=>$ftable_id"); if ($in->ask_from("TVdrake", N("Please,\ntype in your tv norm and country"), [ diff --git a/perl-install/standalone/localedrake b/perl-install/standalone/localedrake index 13b18027b..66bcc05bf 100644 --- a/perl-install/standalone/localedrake +++ b/perl-install/standalone/localedrake @@ -14,28 +14,33 @@ my ($klang, $country, $apply); foreach (@ARGV) { $apply = /--apply/; $klang = $1 if /--kde_lang=(.*)/; - $country = $1 if /--kde_country=(.*)/; + $kcountry = uc($1) if /--kde_country=(.*)/; } if (defined $klang) { $klang or exit; - my $lang = lang::kde_lang_country2lang($klang, $country); - lang::write('', $lang, $>, 'dont_touch_kde_files') if $apply; + my $lang = member($klang, lang::list_langs()) ? $klang : 'en_US'; + my $country = member($kcountry, lang::list_countries()) ? $kcountry : 'US'; + my $locale = lang::read('', $>); + $klang and $locale->{lang} = $lang; + $kcountry and $locale->{country} = $country; + lang::write('', $locale, $>, 'dont_touch_kde_files') if $apply; #- help KDE defaulting to the right charset - print lang::charset2kde_charset(lang::lang2charset($lang)), "\n"; + print lang::charset2kde_charset(lang::l2charset($lang)), "\n"; } else { - my ($lang) = lang::read('', $>); - + my $locale = lang::read('', $>); my $in = 'interactive'->vnew; - if ($lang = any::selectLanguage($in, $lang)) { - lang::write('', $lang, $>); - if ($>) { - if (my $wm = any::running_window_manager()) { - $in->ask_okcancel('', N("The change is done, but to be effective you must logout"), 1) - && any::ask_window_manager_to_logout($wm); - } + select_language: + $locale->{lang} = any::selectLanguage($in, $locale->{lang}) or goto the_end; + any::selectCountry($in, $locale) or goto select_language; + lang::write('', $locale, $>); + if ($>) { + if (my $wm = any::running_window_manager()) { + $in->ask_okcancel('', N("The change is done, but to be effective you must logout"), 1) + and any::ask_window_manager_to_logout($wm); } } +the_end: $in->exit(0); } -- cgit v1.2.1