From: wurblzap%gmail.com <> Date: Mon, 31 Mar 2008 20:00:24 +0000 (+0000) Subject: Bug 425620 – checksetup.pl doesn't pick up the user's language correctly. X-Git-Tag: bugzilla-3.1.3~256 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f069886919594fa7bd3ef4be9da9beb94e62e89f;p=thirdparty%2Fbugzilla.git Bug 425620 – checksetup.pl doesn't pick up the user's language correctly. Patch by Marc Schumann ; r=LpSolit; a=LpSolit --- diff --git a/Bugzilla/Install/Util.pm b/Bugzilla/Install/Util.pm index 5d873aee8c..9aeeca4867 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; }