summaryrefslogtreecommitdiffstats
path: root/Bugzilla/Install/Util.pm
diff options
context:
space:
mode:
authorwurblzap%gmail.com <>2008-03-31 22:00:24 +0200
committerwurblzap%gmail.com <>2008-03-31 22:00:24 +0200
commitf069886919594fa7bd3ef4be9da9beb94e62e89f (patch)
tree9e26c2693595824521784811089dbd7cccc5e16f /Bugzilla/Install/Util.pm
parentc5d9a35c522e9630527d3c30a9dfd01d97f0f693 (diff)
downloadbugzilla-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
Diffstat (limited to 'Bugzilla/Install/Util.pm')
-rw-r--r--Bugzilla/Install/Util.pm17
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;
}