[PATCH] testbot: Add support for Locale::Codes.
Francois Gouget
fgouget at codeweavers.com
Mon Dec 3 13:20:01 CST 2018
Locale::Country and Locale::Language are deprecated.
Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
---
testbot/lib/WineTestBot/Utils.pm | 78 ++++++++++++++++++++++++++------
1 file changed, 64 insertions(+), 14 deletions(-)
diff --git a/testbot/lib/WineTestBot/Utils.pm b/testbot/lib/WineTestBot/Utils.pm
index 6783c5177b..e28a34b89c 100644
--- a/testbot/lib/WineTestBot/Utils.pm
+++ b/testbot/lib/WineTestBot/Utils.pm
@@ -33,8 +33,6 @@ our @EXPORT = qw(MakeSecureURL SecureConnection GenerateRandomString
BuildTag SanitizeTag LocaleName ShQuote ShArgv2Cmd);
use Fcntl;
-use Locale::Language;
-use Locale::Country;
use WineTestBot::Config;
@@ -106,6 +104,68 @@ sub BuildEMailRecipient($$)
return $Recipient;
}
+my $_LCLang;
+my $_LocaleLang;
+sub GetLanguageName($)
+{
+ my ($Code) = @_;
+ local $@;
+
+ return "Konkani" if ($Code eq "kok");
+
+ if (!defined $_LCLang)
+ {
+ eval
+ {
+ require Locale::Codes;
+ $_LCLang = new Locale::Codes 'language';
+ $_LCLang->show_errors(0);
+ };
+ if (!$_LCLang)
+ {
+ $_LCLang = 0;
+ $_LocaleLang = eval { require Locale::Language };
+ }
+ }
+ my $Name = $_LCLang ? ($_LCLang->code2name($Code) || $Code) :
+ $_LocaleLang ? eval { Locale::Language::code2language($Code) || $Code } :
+ $Code;
+ $Name =~ s/ \(.*$//;
+ return $Name;
+}
+
+my $_LCCountry;
+my $_LocaleCountry;
+sub GetCountryName($)
+{
+ my ($Code) = @_;
+ local $@;
+
+ return "USA" if ($Code eq "US");
+ return "Great Britain" if ($Code eq "GB");
+
+ if (!defined $_LCCountry)
+ {
+ eval
+ {
+ require Locale::Codes;
+ $_LCCountry = new Locale::Codes 'country';
+ $_LCCountry->show_errors(0);
+ };
+ if (!$_LCCountry)
+ {
+ $_LCCountry = 0;
+ $_LocaleCountry = eval { require Locale::Country };
+ }
+ }
+ my $Name = $_LCCountry ? ($_LCCountry->code2name($Code) || $Code) :
+ $_LocaleCountry ? eval { Locale::Country::code2country($Code) || $Code } :
+ $Code;
+ $Name =~ s/(?:, | \().*$//;
+ return $Name;
+}
+
+
sub LocaleName($)
{
my ($Locale) = @_;
@@ -114,18 +174,8 @@ sub LocaleName($)
if ($Locale =~ /^([a-z]+)_([A-Z]+)(?:\.[A-Z0-9-]+)?(?:@([a-z]+))?$/)
{
my ($Lang, $Country, $Modifier) = ($1, $2, $3);
- my $Name = $Lang eq "kok" ? "Konkani" :
- (code2language($Lang) || $Lang);
- $Name =~ s/ \(.*$//;
-
- if (uc($Lang) ne $Country)
- {
- my $CountryName = $Country eq "US" ? "USA" :
- $Country eq "GB" ? "Great Britain" :
- (code2country($Country) || $Country);
- $CountryName =~ s/(?:, | \().*$//;
- $Name .= ":$CountryName";
- }
+ my $Name = GetLanguageName($Lang);
+ $Name .= ":". GetCountryName($Country) if (uc($Lang) ne $Country);
$Name .= " ($Modifier)" if ($Modifier);
return $Name;
--
2.19.2
More information about the wine-devel
mailing list