aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtools/tools/locale/tools/cldr2def.pl32
1 files changed, 27 insertions, 5 deletions
diff --git a/tools/tools/locale/tools/cldr2def.pl b/tools/tools/locale/tools/cldr2def.pl
index a9ef11d61db7..2dbdf2cc0dfd 100755
--- a/tools/tools/locale/tools/cldr2def.pl
+++ b/tools/tools/locale/tools/cldr2def.pl
@@ -5,6 +5,7 @@ use strict;
use File::Copy;
use XML::Parser;
use Tie::IxHash;
+use Text::Iconv;
use Data::Dumper;
use Getopt::Long;
use Digest::SHA qw(sha1_hex);
@@ -69,6 +70,7 @@ my %callback = (
cformat => \&callback_cformat,
dtformat => \&callback_dtformat,
cbabmon => \&callback_abmon,
+ cbampm => \&callback_ampm,
data => undef,
);
@@ -183,7 +185,7 @@ if ($TYPE eq "timedef") {
"t_fmt" => "s",
"d_fmt" => "s",
"c_fmt" => "<cformat<d_t_fmt<s",
- "am_pm" => "as",
+ "am_pm" => "<cbampm<am_pm<as",
"d_fmt" => "s",
"d_t_fmt" => "<dtformat<d_t_fmt<s",
"altmon" => "<altmon<mon<as",
@@ -195,12 +197,31 @@ if ($TYPE eq "timedef") {
make_makefile();
}
+sub callback_ampm {
+ my $s = shift;
+ my $nl = $callback{data}{l} . "_" . $callback{data}{c};
+ my $enc = $callback{data}{e};
+ my $converter = Text::Iconv->new("utf-8", "$enc");
+
+ if ($nl eq 'ru_RU') {
+ if ($enc eq 'UTF-8') {
+ $s = 'дп;пп';
+ } else {
+ $s = $converter->convert("дп;пп");
+ }
+ }
+ return $s;
+}
+
sub callback_cformat {
my $s = shift;
+ my $nl = $callback{data}{l} . "_" . $callback{data}{c};
+
+ $s =~ s/\.,/\./;
$s =~ s/ %Z//;
$s =~ s/ %z//;
- $s =~ s/^"(%B %e, )/"%a, $1/;
- $s =~ s/^"(%e %B )/"%a $1/;
+ $s =~ s/^"(%B %e, )/"%A, $1/;
+ $s =~ s/^"(%e %B )/"%A $1/;
return $s;
};
@@ -211,8 +232,9 @@ sub callback_dtformat {
if ($nl eq 'ja_JP') {
$s =~ s/(> )(%H)/$1%A $2/;
}
- $s =~ s/^"(%B %e, )/"%a, $1/;
- $s =~ s/^"(%e %B )/"%a $1/;
+ $s =~ s/\.,/\./;
+ $s =~ s/^"(%B %e, )/"%A, $1/;
+ $s =~ s/^"(%e %B )/"%A $1/;
return $s;
};