Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 8 Nov 2015 19:08:38 +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: r290554 - head/tools/tools/locale/tools
Message-ID:  <201511081908.tA8J8cs4067524@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bapt
Date: Sun Nov  8 19:08:38 2015
New Revision: 290554
URL: https://svnweb.freebsd.org/changeset/base/290554

Log:
  Modify the tool that generates the locales so that the generated CJK locales
  are padded as expected by the users
  
  Submitted by:	marino
  Obtained from:	DragonflyBSD

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

Modified: head/tools/tools/locale/tools/cldr2def.pl
==============================================================================
--- head/tools/tools/locale/tools/cldr2def.pl	Sun Nov  8 18:48:35 2015	(r290553)
+++ head/tools/tools/locale/tools/cldr2def.pl	Sun Nov  8 19:08:38 2015	(r290554)
@@ -1,4 +1,5 @@
 #!/usr/local/bin/perl -wC
+# $FreeBSD$
 
 use strict;
 use File::Copy;
@@ -66,6 +67,7 @@ my %callback = (
 	mdorder => \&callback_mdorder,
 	altmon => \&callback_altmon,
 	cformat => \&callback_cformat,
+	cbabmon => \&callback_abmon,
 	data => undef,
 );
 
@@ -173,7 +175,7 @@ if ($TYPE eq "msgdef") {
 
 if ($TYPE eq "timedef") {
 	%keys = (
-	    "abmon"		=> "as",
+	    "abmon"		=> "<cbabmon<abmon<as",
 	    "mon"		=> "as",
 	    "abday"		=> "as",
 	    "day"		=> "as",
@@ -226,6 +228,30 @@ sub callback_altmon {
 	return $s;
 }
 
+sub callback_abmon {
+	# for specified CJK locales, pad result with a space to enable
+	# columns to line up (style established in FreeBSD in 2001)
+	my $s = shift;
+	my $nl = $callback{data}{l} . "_" . $callback{data}{c};
+
+	if ($nl eq 'ja_JP' || $nl eq 'ko_KR' || $nl eq 'zh_CN' ||
+	    $nl eq 'zh_HK' || $nl eq 'zh_TW') {
+		my @monthnames = split(";", $s);
+		my @cleaned;
+		foreach (@monthnames)
+		{
+			if ($_ =~ /^"<(two|three|four|five|six|seven|eight|nine)>/ ||
+			   ($_ =~ /^"<one>/ && $_ !~ /^"<one>(<zero>|<one>|<two>)/))
+			{
+				$_ =~ s/^"/"<space>/;
+			}
+			push @cleaned, $_;
+		}
+		return join(";",@cleaned);
+	}
+	return $s;
+}
+
 ############################
 
 sub get_unidata {



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