svn commit: r195955 - user/edwin/locale/tools
Edwin Groothuis
edwin at FreeBSD.org
Wed Jul 29 22:02:13 UTC 2009
Author: edwin
Date: Wed Jul 29 22:02:13 2009
New Revision: 195955
URL: http://svn.freebsd.org/changeset/base/195955
Log:
Add support for the (FreeBSD specific) alternative month.
Since it is not defined in the CLDR, we have to keep track of the
information ourselves as long it differs from the normal long month
name.
Modified:
user/edwin/locale/tools/charmaps.pm
user/edwin/locale/tools/charmaps.xml
user/edwin/locale/tools/cldr2def.pl
Modified: user/edwin/locale/tools/charmaps.pm
==============================================================================
--- user/edwin/locale/tools/charmaps.pm Wed Jul 29 21:54:34 2009 (r195954)
+++ user/edwin/locale/tools/charmaps.pm Wed Jul 29 22:02:13 2009 (r195955)
@@ -1,5 +1,9 @@
#!/usr/local/bin/perl -w
+#
+# $FreeBSD$
+#
+
use strict;
use XML::Parser;
use Data::Dumper;
@@ -9,7 +13,9 @@ my %d = ();
my $index = -1;
sub get_xmldata {
- open(FIN, "charmaps.xml");
+ my $xmlfile = shift;
+
+ open(FIN, $xmlfile);
my @xml = <FIN>;
chomp(@xml);
close(FIN);
@@ -38,10 +44,12 @@ sub h_start {
$data{element}{++$index} = $element;
- if ($element eq "language") {
+ if ($index == 2
+ && $data{element}{1} eq "languages"
+ && $element eq "language") {
my $name = $attrs{name};
- my $encoding = $attrs{encoding};
my $countries = $attrs{countries};
+ my $encoding = $attrs{encoding};
my $family = $attrs{family};
my $f = defined $attrs{family} ? $attrs{family} : "x";
my $link = $attrs{link};
@@ -63,7 +71,9 @@ sub h_start {
return;
}
- if ($element eq "translation") {
+ if ($index == 2
+ && $data{element}{1} eq "translations"
+ && $element eq "translation") {
if (defined $attrs{hex}) {
my $k = "<" . $attrs{cldr} . ">";
my $hs = $attrs{hex};
@@ -80,17 +90,51 @@ sub h_start {
}
return;
}
+
+ if ($index == 2
+ && $data{element}{1} eq "alternativemonths"
+ && $element eq "language") {
+ my $name = $attrs{name};
+ my $countries = $attrs{countries};
+
+ $data{fields}{name} = $name;
+ $data{fields}{countries} = $countries;
+ $data{fields}{text} = "";
+
+ return;
+ }
}
sub h_end {
my $expat = shift;
my $element = shift;
+
+ if ($index == "2") {
+ if ($data{element}{1} eq "alternativemonths"
+ && $data{element}{2} eq "language") {
+ foreach my $c (split(/,/, $data{fields}{countries})) {
+ my $m = $data{fields}{text};
+
+ $m =~ s/[\t ]//g;
+ $d{AM}{$data{fields}{name}}{$c} = $m;
+ }
+ $data{fields} = ();
+ }
+ }
+
$index--;
}
sub h_char {
my $expat = shift;
my $string = shift;
+
+ if ($index == "2") {
+ if ($data{element}{1} eq "alternativemonths"
+ && $data{element}{2} eq "language") {
+ $data{fields}{text} .= $string;
+ }
+ }
}
#use Data::Dumper;
Modified: user/edwin/locale/tools/charmaps.xml
==============================================================================
--- user/edwin/locale/tools/charmaps.xml Wed Jul 29 21:54:34 2009 (r195954)
+++ user/edwin/locale/tools/charmaps.xml Wed Jul 29 22:02:13 2009 (r195955)
@@ -1,3 +1,4 @@
+<!-- $FreeBSD -->
<data>
<languages>
<!-- Attributes known:
@@ -5,16 +6,21 @@
encoding = encodings to be done - seperated by space
countries = countries to create - seperated by space
family = which font family - only one
- link = only with family, create this original file too - only one
- fallback = read this file if name_countries doesn't exist - only one
+ link = only with family, create this original file too - \
+ only one
+ fallback = read this file if name_countries doesn't exist - \
+ only one
By default, the name of the input file is name_countries.
- If family is defined, the name of the input file will be name_family_countries.
+ If family is defined, the name of the input file will be \
+ name_family_countries.
If fallback is defined, the name of the input file will be that.
By default, the name of the output file is name_countries.
- If family is defined, the name of the output file will be name_family_countries.
- For backwards compatibility you use link which is name_countries.
+ If family is defined, the name of the output file will be \
+ name_family_countries.
+ For backwards compatibility you use link which is \
+ name_countries.
-->
<language name="af"
@@ -31,7 +37,7 @@
<language name="ca"
fallback="ca_ES"
encoding="ISO8859-1 ISO8859-15"
- countries="AD ES FR IT" /> <!-- Not defined for anything else -->
+ countries="AD ES FR IT" /> <!-- only ca_ES defined -->
<language name="cs"
encoding="ISO8859-2"
countries="CZ" />
@@ -46,7 +52,7 @@
countries="GR" />
<language name="en"
encoding="ISO8859-1 ISO8859-15 US-ASCII"
- countries="AU CA GB NZ US" />
+ countries="AU CA GB NZ US ZA" />
<language name="en"
countries="IE" />
<language name="es"
@@ -191,6 +197,9 @@
<translation encoding="ISO8859-5" cldr="HRYVNIA_SIGN" hex="D3E0DD" />
<translation encoding="KOI8-U" cldr="HRYVNIA_SIGN" hex="C7D2CE" />
+ <!-- Spaces from XX -->
+ <!-- translation encoding="US-ASCII" cldr="NO-BREAK_SPACE" string="XX" / -->
+
<!-- Value found in http://en.wikipedia.org/wiki/Pound_sign -->
<translation encoding="US-ASCII" cldr="POUND_SIGN" hex="A3" />
@@ -234,4 +243,159 @@
<translation encoding="ARMSCII-8" cldr="ONE_DOT_LEADER" string="." />
</translations>
+
+<alternativemonths>
+ <!-- Months which are different in dates ("21 december 1980") and in
+ sentence usage ("We will do that in December.").
+ The CLDR doesn't understand them, therefore we have
+ to define them inline. Fortunately it doesn't happen
+ often...
+ -->
+ <language name="be" countries="BY">
+ <![CDATA[
+ "<CYRILLIC_SMALL_LETTER_ES><CYRILLIC_SMALL_LETTER_TE><CYRILLIC_SMALL_LETTER_U><CYRILLIC_SMALL_LETTER_DE><CYRILLIC_SMALL_LETTER_ZE><CYRILLIC_SMALL_LETTER_IE><CYRILLIC_SMALL_LETTER_EN><CYRILLIC_SMALL_LETTER_SOFT_SIGN>";
+ "<CYRILLIC_SMALL_LETTER_EL><CYRILLIC_SMALL_LETTER_YU><CYRILLIC_SMALL_LETTER_TE><CYRILLIC_SMALL_LETTER_YERU>";
+ "<CYRILLIC_SMALL_LETTER_ES><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_KA><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_VE><CYRILLIC_SMALL_LETTER_BYELORUSSIAN-UKRAINIAN_I><CYRILLIC_SMALL_LETTER_KA>";
+ "<CYRILLIC_SMALL_LETTER_KA><CYRILLIC_SMALL_LETTER_ER><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_ES><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_VE><CYRILLIC_SMALL_LETTER_BYELORUSSIAN-UKRAINIAN_I><CYRILLIC_SMALL_LETTER_KA>";
+ "<CYRILLIC_SMALL_LETTER_TE><CYRILLIC_SMALL_LETTER_ER><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_VE><CYRILLIC_SMALL_LETTER_IE><CYRILLIC_SMALL_LETTER_EN><CYRILLIC_SMALL_LETTER_SOFT_SIGN>";
+ "<CYRILLIC_SMALL_LETTER_CHE><CYRILLIC_SMALL_LETTER_E><CYRILLIC_SMALL_LETTER_ER><CYRILLIC_SMALL_LETTER_VE><CYRILLIC_SMALL_LETTER_IE><CYRILLIC_SMALL_LETTER_EN><CYRILLIC_SMALL_LETTER_SOFT_SIGN>";
+ "<CYRILLIC_SMALL_LETTER_EL><CYRILLIC_SMALL_LETTER_BYELORUSSIAN-UKRAINIAN_I><CYRILLIC_SMALL_LETTER_PE><CYRILLIC_SMALL_LETTER_IE><CYRILLIC_SMALL_LETTER_EN><CYRILLIC_SMALL_LETTER_SOFT_SIGN>";
+ "<CYRILLIC_SMALL_LETTER_ZHE><CYRILLIC_SMALL_LETTER_EN><CYRILLIC_SMALL_LETTER_BYELORUSSIAN-UKRAINIAN_I><CYRILLIC_SMALL_LETTER_VE><CYRILLIC_SMALL_LETTER_IE><CYRILLIC_SMALL_LETTER_EN><CYRILLIC_SMALL_LETTER_SOFT_SIGN>";
+ "<CYRILLIC_SMALL_LETTER_VE><CYRILLIC_SMALL_LETTER_IE><CYRILLIC_SMALL_LETTER_ER><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_ES><CYRILLIC_SMALL_LETTER_IE><CYRILLIC_SMALL_LETTER_EN><CYRILLIC_SMALL_LETTER_SOFT_SIGN>";
+ "<CYRILLIC_SMALL_LETTER_KA><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_ES><CYRILLIC_SMALL_LETTER_TE><CYRILLIC_SMALL_LETTER_ER><CYRILLIC_SMALL_LETTER_YERU><CYRILLIC_SMALL_LETTER_CHE><CYRILLIC_SMALL_LETTER_EN><CYRILLIC_SMALL_LETTER_BYELORUSSIAN-UKRAINIAN_I><CYRILLIC_SMALL_LETTER_KA>";
+ "<CYRILLIC_SMALL_LETTER_EL><CYRILLIC_SMALL_LETTER_BYELORUSSIAN-UKRAINIAN_I><CYRILLIC_SMALL_LETTER_ES><CYRILLIC_SMALL_LETTER_TE><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_PE><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_DE>";
+ "<CYRILLIC_SMALL_LETTER_ES><CYRILLIC_SMALL_LETTER_EN><CYRILLIC_SMALL_LETTER_IE><CYRILLIC_SMALL_LETTER_ZHE><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_EN><CYRILLIC_SMALL_LETTER_SOFT_SIGN>"
+ ]]>
+ </language>
+ <language name="cs" countries="CZ">
+ <![CDATA[
+ "<l><e><d><e><n>";
+ "<LATIN_SMALL_LETTER_U_WITH_ACUTE><n><o><r>";
+ "<b><LATIN_SMALL_LETTER_R_WITH_CARON><e><z><e><n>";
+ "<d><u><b><e><n>";
+ "<k><v><LATIN_SMALL_LETTER_E_WITH_CARON><t><e><n>";
+ "<LATIN_SMALL_LETTER_C_WITH_CARON><e><r><v><e><n>";
+ "<LATIN_SMALL_LETTER_C_WITH_CARON><e><r><v><e><n><e><c>";
+ "<s><r><p><e><n>";
+ "<z><LATIN_SMALL_LETTER_A_WITH_ACUTE><LATIN_SMALL_LETTER_R_WITH_CARON><LATIN_SMALL_LETTER_I_WITH_ACUTE>";
+ "<LATIN_SMALL_LETTER_R_WITH_CARON><LATIN_SMALL_LETTER_I_WITH_ACUTE><j><e><n>";
+ "<l><i><s><t><o><p><a><d>";
+ "<p><r><o><s><i><n><e><c>"
+ ]]>
+ </language>
+ <language name="el" countries="GR">
+ <![CDATA[
+ "<GREEK_CAPITAL_LETTER_IOTA><GREEK_SMALL_LETTER_ALPHA><GREEK_SMALL_LETTER_NU><GREEK_SMALL_LETTER_OMICRON><GREEK_SMALL_LETTER_UPSILON><GREEK_SMALL_LETTER_ALPHA_WITH_TONOS><GREEK_SMALL_LETTER_RHO><GREEK_SMALL_LETTER_IOTA><GREEK_SMALL_LETTER_OMICRON><GREEK_SMALL_LETTER_FINAL_SIGMA>";
+ "<GREEK_CAPITAL_LETTER_PHI><GREEK_SMALL_LETTER_EPSILON><GREEK_SMALL_LETTER_BETA><GREEK_SMALL_LETTER_RHO><GREEK_SMALL_LETTER_OMICRON><GREEK_SMALL_LETTER_UPSILON><GREEK_SMALL_LETTER_ALPHA_WITH_TONOS><GREEK_SMALL_LETTER_RHO><GREEK_SMALL_LETTER_IOTA><GREEK_SMALL_LETTER_OMICRON><GREEK_SMALL_LETTER_FINAL_SIGMA>";
+ "<GREEK_CAPITAL_LETTER_MU><GREEK_SMALL_LETTER_ALPHA_WITH_TONOS><GREEK_SMALL_LETTER_RHO><GREEK_SMALL_LETTER_TAU><GREEK_SMALL_LETTER_IOTA><GREEK_SMALL_LETTER_OMICRON><GREEK_SMALL_LETTER_FINAL_SIGMA>";
+ "<GREEK_CAPITAL_LETTER_ALPHA><GREEK_SMALL_LETTER_PI><GREEK_SMALL_LETTER_RHO><GREEK_SMALL_LETTER_IOTA_WITH_TONOS><GREEK_SMALL_LETTER_LAMDA><GREEK_SMALL_LETTER_IOTA><GREEK_SMALL_LETTER_OMICRON><GREEK_SMALL_LETTER_FINAL_SIGMA>";
+ "<GREEK_CAPITAL_LETTER_MU><GREEK_SMALL_LETTER_ALPHA_WITH_TONOS><GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA><GREEK_SMALL_LETTER_OMICRON><GREEK_SMALL_LETTER_FINAL_SIGMA>";
+ "<GREEK_CAPITAL_LETTER_IOTA><GREEK_SMALL_LETTER_OMICRON><GREEK_SMALL_LETTER_UPSILON_WITH_TONOS><GREEK_SMALL_LETTER_NU><GREEK_SMALL_LETTER_IOTA><GREEK_SMALL_LETTER_OMICRON><GREEK_SMALL_LETTER_FINAL_SIGMA>";
+ "<GREEK_CAPITAL_LETTER_IOTA><GREEK_SMALL_LETTER_OMICRON><GREEK_SMALL_LETTER_UPSILON_WITH_TONOS><GREEK_SMALL_LETTER_LAMDA><GREEK_SMALL_LETTER_IOTA><GREEK_SMALL_LETTER_OMICRON><GREEK_SMALL_LETTER_FINAL_SIGMA>";
+ "<GREEK_CAPITAL_LETTER_ALPHA><GREEK_SMALL_LETTER_UPSILON_WITH_TONOS><GREEK_SMALL_LETTER_GAMMA><GREEK_SMALL_LETTER_OMICRON><GREEK_SMALL_LETTER_UPSILON><GREEK_SMALL_LETTER_SIGMA><GREEK_SMALL_LETTER_TAU><GREEK_SMALL_LETTER_OMICRON><GREEK_SMALL_LETTER_FINAL_SIGMA>";
+ "<GREEK_CAPITAL_LETTER_SIGMA><GREEK_SMALL_LETTER_EPSILON><GREEK_SMALL_LETTER_PI><GREEK_SMALL_LETTER_TAU><GREEK_SMALL_LETTER_EPSILON_WITH_TONOS><GREEK_SMALL_LETTER_MU><GREEK_SMALL_LETTER_BETA><GREEK_SMALL_LETTER_RHO><GREEK_SMALL_LETTER_IOTA><GREEK_SMALL_LETTER_OMICRON><GREEK_SMALL_LETTER_FINAL_SIGMA>";
+ "<GREEK_CAPITAL_LETTER_OMICRON><GREEK_SMALL_LETTER_KAPPA><GREEK_SMALL_LETTER_TAU><GREEK_SMALL_LETTER_OMEGA_WITH_TONOS><GREEK_SMALL_LETTER_BETA><GREEK_SMALL_LETTER_RHO><GREEK_SMALL_LETTER_IOTA><GREEK_SMALL_LETTER_OMICRON><GREEK_SMALL_LETTER_FINAL_SIGMA>";
+ "<GREEK_CAPITAL_LETTER_NU><GREEK_SMALL_LETTER_OMICRON><GREEK_SMALL_LETTER_EPSILON_WITH_TONOS><GREEK_SMALL_LETTER_MU><GREEK_SMALL_LETTER_BETA><GREEK_SMALL_LETTER_RHO><GREEK_SMALL_LETTER_IOTA><GREEK_SMALL_LETTER_OMICRON><GREEK_SMALL_LETTER_FINAL_SIGMA>";
+ "<GREEK_CAPITAL_LETTER_DELTA><GREEK_SMALL_LETTER_EPSILON><GREEK_SMALL_LETTER_KAPPA><GREEK_SMALL_LETTER_EPSILON_WITH_TONOS><GREEK_SMALL_LETTER_MU><GREEK_SMALL_LETTER_BETA><GREEK_SMALL_LETTER_RHO><GREEK_SMALL_LETTER_IOTA><GREEK_SMALL_LETTER_OMICRON><GREEK_SMALL_LETTER_FINAL_SIGMA>"
+ ]]>
+ </language>
+ <language name="kk" countries="KZ">
+ <![CDATA[
+ "<CYRILLIC_SMALL_LETTER_KA_WITH_DESCENDER><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_EN><CYRILLIC_SMALL_LETTER_TE><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_ER>";
+ "<CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_KA_WITH_DESCENDER><CYRILLIC_SMALL_LETTER_PE><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_EN>";
+ "<CYRILLIC_SMALL_LETTER_EN><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_U><CYRILLIC_SMALL_LETTER_ER><CYRILLIC_SMALL_LETTER_YERU><CYRILLIC_SMALL_LETTER_ZE>";
+ "<CYRILLIC_SMALL_LETTER_ES><CYRILLIC_SMALL_LETTER_SCHWA><CYRILLIC_SMALL_LETTER_U><CYRILLIC_SMALL_LETTER_BYELORUSSIAN-UKRAINIAN_I><CYRILLIC_SMALL_LETTER_ER>";
+ "<CYRILLIC_SMALL_LETTER_EM><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_EM><CYRILLIC_SMALL_LETTER_YERU><CYRILLIC_SMALL_LETTER_ER>";
+ "<CYRILLIC_SMALL_LETTER_EM><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_U><CYRILLIC_SMALL_LETTER_ES><CYRILLIC_SMALL_LETTER_YERU><CYRILLIC_SMALL_LETTER_EM>";
+ "<CYRILLIC_SMALL_LETTER_SHA><CYRILLIC_SMALL_LETTER_BYELORUSSIAN-UKRAINIAN_I><CYRILLIC_SMALL_LETTER_EL><CYRILLIC_SMALL_LETTER_DE><CYRILLIC_SMALL_LETTER_IE>";
+ "<CYRILLIC_SMALL_LETTER_TE><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_EM><CYRILLIC_SMALL_LETTER_YERU><CYRILLIC_SMALL_LETTER_ZE>";
+ "<CYRILLIC_SMALL_LETTER_KA_WITH_DESCENDER><CYRILLIC_SMALL_LETTER_YERU><CYRILLIC_SMALL_LETTER_ER><CYRILLIC_SMALL_LETTER_KA><CYRILLIC_SMALL_LETTER_STRAIGHT_U><CYRILLIC_SMALL_LETTER_SHORT_I><CYRILLIC_SMALL_LETTER_IE><CYRILLIC_SMALL_LETTER_KA>";
+ "<CYRILLIC_SMALL_LETTER_KA_WITH_DESCENDER><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_ZE><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_EN>";
+ "<CYRILLIC_SMALL_LETTER_KA_WITH_DESCENDER><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_ER><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_SHA><CYRILLIC_SMALL_LETTER_A>";
+ "<CYRILLIC_SMALL_LETTER_ZHE><CYRILLIC_SMALL_LETTER_IE><CYRILLIC_SMALL_LETTER_EL><CYRILLIC_SMALL_LETTER_TE><CYRILLIC_SMALL_LETTER_O><CYRILLIC_SMALL_LETTER_KA_WITH_DESCENDER><CYRILLIC_SMALL_LETTER_ES><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_EN>"
+ ]]>
+ </language>
+ <language name="lt" countries="LT">
+ <![CDATA[
+ "<s><a><u><s><i><s>";
+ "<v><a><s><a><r><i><s>";
+ "<k><o><v><a><s>";
+ "<b><a><l><a><n><d><i><s>";
+ "<g><e><g><u><LATIN_SMALL_LETTER_Z_WITH_CARON><LATIN_SMALL_LETTER_E_WITH_DOT_ABOVE>";
+ "<b><i><r><LATIN_SMALL_LETTER_Z_WITH_CARON><e><l><i><s>";
+ "<l><i><e><p><a>";
+ "<r><u><g><p><j><LATIN_SMALL_LETTER_U_WITH_MACRON><t><i><s>";
+ "<r><u><g><s><LATIN_SMALL_LETTER_E_WITH_DOT_ABOVE><j><i><s>";
+ "<s><p><a><l><i><s>";
+ "<l><a><p><k><r><i><t><i><s>";
+ "<g><r><u><o><d><i><s>"
+ ]]>
+ </language>
+ <language name="mn" countries="MN">
+ <![CDATA[
+ "<CYRILLIC_CAPITAL_LETTER_EN><CYRILLIC_SMALL_LETTER_E><CYRILLIC_SMALL_LETTER_GHE><CYRILLIC_SMALL_LETTER_DE><CYRILLIC_SMALL_LETTER_STRAIGHT_U><CYRILLIC_SMALL_LETTER_GHE><CYRILLIC_SMALL_LETTER_E><CYRILLIC_SMALL_LETTER_E><CYRILLIC_SMALL_LETTER_ER><space><CYRILLIC_SMALL_LETTER_ES><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_ER>";
+ "<CYRILLIC_CAPITAL_LETTER_HA><CYRILLIC_SMALL_LETTER_O><CYRILLIC_SMALL_LETTER_IO><CYRILLIC_SMALL_LETTER_ER><CYRILLIC_SMALL_LETTER_DE><CYRILLIC_SMALL_LETTER_U><CYRILLIC_SMALL_LETTER_GHE><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_ER><space><CYRILLIC_SMALL_LETTER_ES><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_ER>";
+ "<CYRILLIC_CAPITAL_LETTER_GHE><CYRILLIC_SMALL_LETTER_U><CYRILLIC_SMALL_LETTER_ER><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_VE><CYRILLIC_SMALL_LETTER_DE><CYRILLIC_SMALL_LETTER_U><CYRILLIC_SMALL_LETTER_GHE><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_ER><space><CYRILLIC_SMALL_LETTER_ES><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_ER>";
+ "<CYRILLIC_CAPITAL_LETTER_DE><CYRILLIC_SMALL_LETTER_BARRED_O><CYRILLIC_SMALL_LETTER_ER><CYRILLIC_SMALL_LETTER_BARRED_O><CYRILLIC_SMALL_LETTER_VE><CYRILLIC_SMALL_LETTER_DE><CYRILLIC_SMALL_LETTER_STRAIGHT_U><CYRILLIC_SMALL_LETTER_GHE><CYRILLIC_SMALL_LETTER_E><CYRILLIC_SMALL_LETTER_E><CYRILLIC_SMALL_LETTER_ER><space><CYRILLIC_SMALL_LETTER_ES><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_ER>";
+ "<CYRILLIC_CAPITAL_LETTER_TE><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_VE><CYRILLIC_SMALL_LETTER_DE><CYRILLIC_SMALL_LETTER_U><CYRILLIC_SMALL_LETTER_GHE><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_ER><space><CYRILLIC_SMALL_LETTER_ES><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_ER>";
+ "<CYRILLIC_CAPITAL_LETTER_ZE><CYRILLIC_SMALL_LETTER_U><CYRILLIC_SMALL_LETTER_ER><CYRILLIC_SMALL_LETTER_GHE><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_DE><CYRILLIC_SMALL_LETTER_U><CYRILLIC_SMALL_LETTER_GHE><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_ER><space><CYRILLIC_SMALL_LETTER_ES><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_ER>";
+ "<CYRILLIC_CAPITAL_LETTER_DE><CYRILLIC_SMALL_LETTER_O><CYRILLIC_SMALL_LETTER_EL><CYRILLIC_SMALL_LETTER_O><CYRILLIC_SMALL_LETTER_O><CYRILLIC_SMALL_LETTER_DE><CYRILLIC_SMALL_LETTER_U><CYRILLIC_SMALL_LETTER_GHE><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_ER><space><CYRILLIC_SMALL_LETTER_ES><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_ER>";
+ "<CYRILLIC_CAPITAL_LETTER_EN><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_SHORT_I><CYRILLIC_SMALL_LETTER_EM><CYRILLIC_SMALL_LETTER_DE><CYRILLIC_SMALL_LETTER_U><CYRILLIC_SMALL_LETTER_GHE><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_ER><space><CYRILLIC_SMALL_LETTER_ES><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_ER>";
+ "<CYRILLIC_CAPITAL_LETTER_IE><CYRILLIC_SMALL_LETTER_ES><CYRILLIC_SMALL_LETTER_DE><CYRILLIC_SMALL_LETTER_STRAIGHT_U><CYRILLIC_SMALL_LETTER_GHE><CYRILLIC_SMALL_LETTER_E><CYRILLIC_SMALL_LETTER_E><CYRILLIC_SMALL_LETTER_ER><space><CYRILLIC_SMALL_LETTER_ES><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_ER>";
+ "<CYRILLIC_CAPITAL_LETTER_A><CYRILLIC_SMALL_LETTER_ER><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_VE><CYRILLIC_SMALL_LETTER_DE><CYRILLIC_SMALL_LETTER_U><CYRILLIC_SMALL_LETTER_GHE><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_ER><space><CYRILLIC_SMALL_LETTER_ES><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_ER>";
+ "<CYRILLIC_CAPITAL_LETTER_A><CYRILLIC_SMALL_LETTER_ER><CYRILLIC_SMALL_LETTER_VE><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_EN><space><CYRILLIC_SMALL_LETTER_EN><CYRILLIC_SMALL_LETTER_E><CYRILLIC_SMALL_LETTER_GHE><CYRILLIC_SMALL_LETTER_DE><CYRILLIC_SMALL_LETTER_STRAIGHT_U><CYRILLIC_SMALL_LETTER_GHE><CYRILLIC_SMALL_LETTER_E><CYRILLIC_SMALL_LETTER_E><CYRILLIC_SMALL_LETTER_ER><space><CYRILLIC_SMALL_LETTER_ES><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_ER>";
+ "<CYRILLIC_CAPITAL_LETTER_A><CYRILLIC_SMALL_LETTER_ER><CYRILLIC_SMALL_LETTER_VE><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_EN><space><CYRILLIC_SMALL_LETTER_HA><CYRILLIC_SMALL_LETTER_O><CYRILLIC_SMALL_LETTER_IO><CYRILLIC_SMALL_LETTER_ER><CYRILLIC_SMALL_LETTER_DE><CYRILLIC_SMALL_LETTER_U><CYRILLIC_SMALL_LETTER_GHE><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_ER><space><CYRILLIC_SMALL_LETTER_ES><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_ER>"
+ ]]>
+ </language>
+ <language name="pl" countries="PL">
+ <![CDATA[
+ "<s><t><y><c><z><e><LATIN_SMALL_LETTER_N_WITH_ACUTE>";
+ "<l><u><t><y>";
+ "<m><a><r><z><e><c>";
+ "<k><w><i><e><c><i><e><LATIN_SMALL_LETTER_N_WITH_ACUTE>";
+ "<m><a><j>";
+ "<c><z><e><r><w><i><e><c>";
+ "<l><i><p><i><e><c>";
+ "<s><i><e><r><p><i><e><LATIN_SMALL_LETTER_N_WITH_ACUTE>";
+ "<w><r><z><e><s><i><e><LATIN_SMALL_LETTER_N_WITH_ACUTE>";
+ "<p><a><LATIN_SMALL_LETTER_Z_WITH_ACUTE><d><z><i><e><r><n><i><k>";
+ "<l><i><s><t><o><p><a><d>";
+ "<g><r><u><d><z><i><e><LATIN_SMALL_LETTER_N_WITH_ACUTE>"
+ ]]>
+ </language>
+ <language name="ru" countries="RU">
+ <![CDATA[
+ "<CYRILLIC_SMALL_LETTER_YA><CYRILLIC_SMALL_LETTER_EN><CYRILLIC_SMALL_LETTER_VE><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_ER><CYRILLIC_SMALL_LETTER_SOFT_SIGN>";
+ "<CYRILLIC_SMALL_LETTER_EF><CYRILLIC_SMALL_LETTER_IE><CYRILLIC_SMALL_LETTER_VE><CYRILLIC_SMALL_LETTER_ER><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_EL><CYRILLIC_SMALL_LETTER_SOFT_SIGN>";
+ "<CYRILLIC_SMALL_LETTER_EM><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_ER><CYRILLIC_SMALL_LETTER_TE>";
+ "<CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_PE><CYRILLIC_SMALL_LETTER_ER><CYRILLIC_SMALL_LETTER_IE><CYRILLIC_SMALL_LETTER_EL><CYRILLIC_SMALL_LETTER_SOFT_SIGN>";
+ "<CYRILLIC_SMALL_LETTER_EM><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_SHORT_I>";
+ "<CYRILLIC_SMALL_LETTER_I><CYRILLIC_SMALL_LETTER_YU><CYRILLIC_SMALL_LETTER_EN><CYRILLIC_SMALL_LETTER_SOFT_SIGN>";
+ "<CYRILLIC_SMALL_LETTER_I><CYRILLIC_SMALL_LETTER_YU><CYRILLIC_SMALL_LETTER_EL><CYRILLIC_SMALL_LETTER_SOFT_SIGN>";
+ "<CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_VE><CYRILLIC_SMALL_LETTER_GHE><CYRILLIC_SMALL_LETTER_U><CYRILLIC_SMALL_LETTER_ES><CYRILLIC_SMALL_LETTER_TE>";
+ "<CYRILLIC_SMALL_LETTER_ES><CYRILLIC_SMALL_LETTER_IE><CYRILLIC_SMALL_LETTER_EN><CYRILLIC_SMALL_LETTER_TE><CYRILLIC_SMALL_LETTER_YA><CYRILLIC_SMALL_LETTER_BE><CYRILLIC_SMALL_LETTER_ER><CYRILLIC_SMALL_LETTER_SOFT_SIGN>";
+ "<CYRILLIC_SMALL_LETTER_O><CYRILLIC_SMALL_LETTER_KA><CYRILLIC_SMALL_LETTER_TE><CYRILLIC_SMALL_LETTER_YA><CYRILLIC_SMALL_LETTER_BE><CYRILLIC_SMALL_LETTER_ER><CYRILLIC_SMALL_LETTER_SOFT_SIGN>";
+ "<CYRILLIC_SMALL_LETTER_EN><CYRILLIC_SMALL_LETTER_O><CYRILLIC_SMALL_LETTER_YA><CYRILLIC_SMALL_LETTER_BE><CYRILLIC_SMALL_LETTER_ER><CYRILLIC_SMALL_LETTER_SOFT_SIGN>";
+ "<CYRILLIC_SMALL_LETTER_DE><CYRILLIC_SMALL_LETTER_IE><CYRILLIC_SMALL_LETTER_KA><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_BE><CYRILLIC_SMALL_LETTER_ER><CYRILLIC_SMALL_LETTER_SOFT_SIGN>"
+ ]]>
+ </language>
+ <language name="uk" countries="UA">
+ <![CDATA[
+ "<CYRILLIC_SMALL_LETTER_ES><CYRILLIC_SMALL_LETTER_BYELORUSSIAN-UKRAINIAN_I><CYRILLIC_SMALL_LETTER_CHE><CYRILLIC_SMALL_LETTER_IE><CYRILLIC_SMALL_LETTER_EN><CYRILLIC_SMALL_LETTER_SOFT_SIGN>";
+ "<CYRILLIC_SMALL_LETTER_EL><CYRILLIC_SMALL_LETTER_YU><CYRILLIC_SMALL_LETTER_TE><CYRILLIC_SMALL_LETTER_I><CYRILLIC_SMALL_LETTER_SHORT_I>";
+ "<CYRILLIC_SMALL_LETTER_BE><CYRILLIC_SMALL_LETTER_IE><CYRILLIC_SMALL_LETTER_ER><CYRILLIC_SMALL_LETTER_IE><CYRILLIC_SMALL_LETTER_ZE><CYRILLIC_SMALL_LETTER_IE><CYRILLIC_SMALL_LETTER_EN><CYRILLIC_SMALL_LETTER_SOFT_SIGN>";
+ "<CYRILLIC_SMALL_LETTER_KA><CYRILLIC_SMALL_LETTER_VE><CYRILLIC_SMALL_LETTER_BYELORUSSIAN-UKRAINIAN_I><CYRILLIC_SMALL_LETTER_TE><CYRILLIC_SMALL_LETTER_IE><CYRILLIC_SMALL_LETTER_EN><CYRILLIC_SMALL_LETTER_SOFT_SIGN>";
+ "<CYRILLIC_SMALL_LETTER_TE><CYRILLIC_SMALL_LETTER_ER><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_VE><CYRILLIC_SMALL_LETTER_IE><CYRILLIC_SMALL_LETTER_EN><CYRILLIC_SMALL_LETTER_SOFT_SIGN>";
+ "<CYRILLIC_SMALL_LETTER_CHE><CYRILLIC_SMALL_LETTER_IE><CYRILLIC_SMALL_LETTER_ER><CYRILLIC_SMALL_LETTER_VE><CYRILLIC_SMALL_LETTER_IE><CYRILLIC_SMALL_LETTER_EN><CYRILLIC_SMALL_LETTER_SOFT_SIGN>";
+ "<CYRILLIC_SMALL_LETTER_EL><CYRILLIC_SMALL_LETTER_I><CYRILLIC_SMALL_LETTER_PE><CYRILLIC_SMALL_LETTER_IE><CYRILLIC_SMALL_LETTER_EN><CYRILLIC_SMALL_LETTER_SOFT_SIGN>";
+ "<CYRILLIC_SMALL_LETTER_ES><CYRILLIC_SMALL_LETTER_IE><CYRILLIC_SMALL_LETTER_ER><CYRILLIC_SMALL_LETTER_PE><CYRILLIC_SMALL_LETTER_IE><CYRILLIC_SMALL_LETTER_EN><CYRILLIC_SMALL_LETTER_SOFT_SIGN>";
+ "<CYRILLIC_SMALL_LETTER_VE><CYRILLIC_SMALL_LETTER_IE><CYRILLIC_SMALL_LETTER_ER><CYRILLIC_SMALL_LETTER_IE><CYRILLIC_SMALL_LETTER_ES><CYRILLIC_SMALL_LETTER_IE><CYRILLIC_SMALL_LETTER_EN><CYRILLIC_SMALL_LETTER_SOFT_SIGN>";
+ "<CYRILLIC_SMALL_LETTER_ZHE><CYRILLIC_SMALL_LETTER_O><CYRILLIC_SMALL_LETTER_VE><CYRILLIC_SMALL_LETTER_TE><CYRILLIC_SMALL_LETTER_IE><CYRILLIC_SMALL_LETTER_EN><CYRILLIC_SMALL_LETTER_SOFT_SIGN>";
+ "<CYRILLIC_SMALL_LETTER_EL><CYRILLIC_SMALL_LETTER_I><CYRILLIC_SMALL_LETTER_ES><CYRILLIC_SMALL_LETTER_TE><CYRILLIC_SMALL_LETTER_O><CYRILLIC_SMALL_LETTER_PE><CYRILLIC_SMALL_LETTER_A><CYRILLIC_SMALL_LETTER_DE>";
+ "<CYRILLIC_SMALL_LETTER_GHE><CYRILLIC_SMALL_LETTER_ER><CYRILLIC_SMALL_LETTER_U><CYRILLIC_SMALL_LETTER_DE><CYRILLIC_SMALL_LETTER_IE><CYRILLIC_SMALL_LETTER_EN><CYRILLIC_SMALL_LETTER_SOFT_SIGN>"
+ ]]>
+ </language>
+
+</alternativemonths>
+
</data>
Modified: user/edwin/locale/tools/cldr2def.pl
==============================================================================
--- user/edwin/locale/tools/cldr2def.pl Wed Jul 29 21:54:34 2009 (r195954)
+++ user/edwin/locale/tools/cldr2def.pl Wed Jul 29 22:02:13 2009 (r195955)
@@ -1,5 +1,9 @@
#!/usr/bin/perl -wC
+#
+# $FreeBSD$
+#
+
use strict;
use XML::Parser;
use Text::Iconv;
@@ -26,6 +30,7 @@ my %values = ();
my %hashtable = ();
my %languages = ();
my %translations = ();
+my %alternativemonths = ();
get_languages();
my %cm = ();
@@ -44,6 +49,8 @@ my %FILESNAMES = (
my %callback = (
mdorder => \&callback_mdorder,
+ altmon => \&callback_altmon,
+ data => (),
);
my %DESC = (
@@ -87,7 +94,7 @@ my %DESC = (
"XXX" => "c_fmt",
"am_pm" => "AM/PM",
"d_t_fmt" => "date_fmt",
- "mon2" => "Long month names (without case ending)",
+ "altmon" => "Long month names (without case ending)",
"md_order" => "md_order",
"t_fmt_ampm" => "ampm_fmt",
@@ -151,7 +158,8 @@ if ($TYPE eq "timedef") {
"am_pm" => "as",
"d_fmt" => "s",
"d_t_fmt" => "s",
- "mon2" => ">mon", # repeat them for now
+# "altmon" => ">mon", # repeat them for now
+ "altmon" => "<altmon<mon<as",
"md_order" => "<mdorder<d_fmt<s",
"t_fmt_ampm" => "s",
);
@@ -167,6 +175,18 @@ sub callback_mdorder {
return $s;
};
+sub callback_altmon {
+ # if the language/country is known in %alternative months then
+ # return that, otherwise repeat mon
+ my $s = shift;
+
+ if (defined $alternativemonths{$callback{data}{l}}{$callback{data}{c}}) {
+ return $alternativemonths{$callback{data}{l}}{$callback{data}{c}};
+ }
+
+ return $s;
+}
+
############################
sub get_utf8map {
@@ -197,6 +217,7 @@ sub get_languages {
my %data = get_xmldata($CHARMAPS);
%languages = %{$data{L}};
%translations = %{$data{T}};
+ %alternativemonths = %{$data{AM}};
return if (!defined $doonly);
@@ -342,16 +363,24 @@ EOF
$output .= "#\n# $DESC{$k}\n";
+ # Replace one row with another
if ($f =~ /^>/) {
$k = substr($f, 1);
$f = $keys{$k};
}
+
+ # Callback function
if ($f =~ /^\</) {
+ $callback{data}{c} = $c;
+ $callback{data}{k} = $k;
+ $callback{data}{l} = $l;
+ $callback{data}{e} = $enc;
my @a = split(/\</, substr($f, 1));
my $rv =
&{$callback{$a[0]}}($values{$l}{$c}{$a[1]});
$values{$l}{$c}{$k} = $rv;
$f = $a[2];
+ $callback{data} = ();
}
my $v = $values{$l}{$c}{$k};
@@ -451,7 +480,7 @@ sub make_makefile {
# tools in /usr/src/tools/tools/locale.
#
-LOCALEDIR= /usr/share/locale
+LOCALEDIR= /share/locale
FILESNAME= $FILESNAMES{$TYPE}
.SUFFIXES: .src .out
@@ -480,6 +509,12 @@ EOF
foreach my $c (sort keys(%{$languages{$l}{$f}{data}})) {
next if ($#filter == 2 && ($filter[0] ne $l
|| $filter[1] ne $f || $filter[2] ne $c));
+ if (defined $languages{$l}{$f}{data}{$c}{$DEFENCODING}
+ && $languages{$l}{$f}{data}{$c}{$DEFENCODING} eq "0") {
+ print "Skipping ${l}_" . ($f eq "x" ? "" : "${f}_") .
+ "${c} - not read\n";
+ next;
+ }
foreach my $e (sort keys(%{$languages{$l}{$f}{data}{$c}})) {
my $file = $l . "_";
$file .= $f . "_" if ($f ne "x");
@@ -516,10 +551,6 @@ SYMLINKS+= ../\${f:C/:.*\$//}/\${FILESNA
FILESDIR_\${f}.out= \${LOCALEDIR}/\${f}
.endfor
-
-src:
- ./cldr2def.pl /home/edwin/cldr/1.7.0/ charmaps.xml timedef nl_NL
-
.include <bsd.prog.mk>
EOF
More information about the svn-src-user
mailing list