summaryrefslogtreecommitdiffstats
path: root/perl-install/standalone/localedrake
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/standalone/localedrake')
-rwxr-xr-xperl-install/standalone/localedrake57
1 files changed, 57 insertions, 0 deletions
diff --git a/perl-install/standalone/localedrake b/perl-install/standalone/localedrake
new file mode 100755
index 000000000..cb2b81da6
--- /dev/null
+++ b/perl-install/standalone/localedrake
@@ -0,0 +1,57 @@
+#!/usr/bin/perl
+
+use lib qw(/usr/lib/libDrakX);
+
+use standalone; #- warning, standalone must be loaded very first, for 'explanations'
+
+use interactive;
+use common;
+use lang;
+use any;
+
+my ($klang, $kcountry, $apply);
+
+foreach (@ARGV) {
+ $apply = 1 if /--apply/;
+ $klang = $1 if /--kde_lang=(.*)/;
+ $kcountry = uc($1) if /--kde_country=(.*)/;
+}
+
+if (defined $klang) {
+ $klang or exit(-1);
+ 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_and_install($locale, do_pkgs_standalone->new, $>, 'dont_touch_kde_files') if $apply;
+
+ #- help KDE defaulting to the right charset
+ print lang::charset2kde_charset(lang::l2charset($lang)), "\n";
+ exit(0);
+}
+
+my $locale = lang::read($>);
+my $in = 'interactive'->vnew;
+
+$ugtk2::wm_icon = "localedrake";
+$::Wizard_title = N("LocaleDrake");
+
+any::selectLanguage_and_more_standalone($in, $locale);
+
+if ($>) {
+ my @required_packages = lang::IM2packages($locale);
+ my @missing_packages = difference2(\@required_packages, [ $in->do_pkgs->are_installed(@required_packages) ]);
+ $in->ask_warn(N("Warning"),
+ N("You should install the following packages: %s",
+ join(
+ #-PO: the following is used to combine packages names. eg: "initscripts, harddrake, yudit"
+ N(", "),
+ @missing_packages,
+ ),
+ )
+ ) if @missing_packages;
+}
+lang::write_and_install($locale, $in->do_pkgs, $>);
+
+any::ask_for_X_restart($in);