diff options
author | wurblzap%gmail.com <> | 2008-03-31 22:00:24 +0200 |
---|---|---|
committer | wurblzap%gmail.com <> | 2008-03-31 22:00:24 +0200 |
commit | f069886919594fa7bd3ef4be9da9beb94e62e89f (patch) | |
tree | 9e26c2693595824521784811089dbd7cccc5e16f | |
parent | c5d9a35c522e9630527d3c30a9dfd01d97f0f693 (diff) | |
download | bugzilla-f069886919594fa7bd3ef4be9da9beb94e62e89f.tar.gz bugzilla-f069886919594fa7bd3ef4be9da9beb94e62e89f.tar.xz |
Bug 425620 â checksetup.pl doesn't pick up the user's language correctly.
Patch by Marc Schumann <wurblzap@gmail.com>;
r=LpSolit; a=LpSolit
-rw-r--r-- | Bugzilla/Install/Util.pm | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/Bugzilla/Install/Util.pm b/Bugzilla/Install/Util.pm index 5d873aee8..9aeeca486 100644 --- a/Bugzilla/Install/Util.pm +++ b/Bugzilla/Install/Util.pm @@ -295,7 +295,9 @@ sub _sort_accept_language { } sub get_console_locale { + require Locale::Language; my $locale = setlocale(LC_CTYPE); + my $language; # Some distros set e.g. LC_CTYPE = fr_CH.UTF-8. We clean it up. if ($locale =~ /^([^\.]+)/) { $locale = $1; @@ -304,8 +306,21 @@ sub get_console_locale { # It's pretty sure that there is no language pack of the form fr-CH # installed, so we also include fr as a wanted language. if ($locale =~ /^(\S+)\-/) { - $locale .= ",$1"; + $language = $1; + $locale .= ",$language"; } + else { + $language = $locale; + } + + # Some OSs or distributions may have setlocale return a string of the form + # German_Germany.1252 (this example taken from a Windows XP system), which + # is unsuitable for our needs because Bugzilla works on language codes. + # We try and convert them here. + if ($language = Locale::Language::language2code($language)) { + $locale .= ",$language"; + } + return $locale; } |