Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 29 May 2016 22:27:42 +0000 (UTC)
From:      Baptiste Daroussin <bapt@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r300975 - head/tools/tools/locale/tools
Message-ID:  <201605292227.u4TMRgdL061508@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bapt
Date: Sun May 29 22:27:42 2016
New Revision: 300975
URL: https://svnweb.freebsd.org/changeset/base/300975

Log:
  Add more hacks to correct CLDR data
  
  For Russian:
  - Convert AM/PM which are badly formatted in CLDR to replace it by the proper
    cyrillic
  - Add a dependency on Text::Iconv so non unicode get the proper encoding for
    AM/PM
  - fix the date format having 'r.,' and convert it to 'r.' (also fixed in Bulgarian)
  
  For All:
  - Use complete Day of Week instead of the abbreviated one
  
  Reported by:	ache

Modified:
  head/tools/tools/locale/tools/cldr2def.pl

Modified: head/tools/tools/locale/tools/cldr2def.pl
==============================================================================
--- head/tools/tools/locale/tools/cldr2def.pl	Sun May 29 20:54:16 2016	(r300974)
+++ head/tools/tools/locale/tools/cldr2def.pl	Sun May 29 22:27:42 2016	(r300975)
@@ -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;
 };
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201605292227.u4TMRgdL061508>