1 #!/usr/local/bin/perl -w
18 open(FIN, "$etcdir/charmaps.xml");
23 my $xml = new XML::Parser(Handlers => {
28 $xml->parse(join("", @xml));
39 while ($#attrs >= 0) {
40 $attrs{$attrs[0]} = $attrs[1];
45 $data{element}{++$index} = $element;
48 && $data{element}{1} eq "languages"
49 && $element eq "language") {
50 my $name = $attrs{name};
51 my $countries = $attrs{countries};
52 my $encoding = $attrs{encoding};
53 my $family = $attrs{family};
54 my $f = defined $attrs{family} ? $attrs{family} : "x";
55 my $nc_link = $attrs{namecountry_link};
56 my $e_link = $attrs{encoding_link};
57 my $fallback = $attrs{fallback};
58 my $definitions = $attrs{definitions};
60 $d{L}{$name}{$f}{fallback} = $fallback;
61 $d{L}{$name}{$f}{e_link} = $e_link;
62 $d{L}{$name}{$f}{nc_link} = $nc_link;
63 $d{L}{$name}{$f}{family} = $family;
64 $d{L}{$name}{$f}{encoding} = $encoding;
65 $d{L}{$name}{$f}{definitions} = $definitions;
66 $d{L}{$name}{$f}{countries} = $countries;
67 foreach my $c (split(" ", $countries)) {
68 if (defined $encoding) {
69 foreach my $e (split(" ", $encoding)) {
70 $d{L}{$name}{$f}{data}{$c}{$e} = undef;
71 $d{E}{$e} = 0; # not read
74 $d{L}{$name}{$f}{data}{$c}{"UTF-8"} = undef;
80 && $data{element}{1} eq "translations"
81 && $element eq "translation") {
82 foreach my $e (split(" ", $attrs{encoding})) {
83 if (defined $attrs{hex}) {
86 $d{T}{$e}{$k}{hex} = $hs;
88 if (defined $attrs{string}) {
90 for (my $i = 0; $i < length($attrs{string}); $i++) {
92 ord(substr($attrs{string}, $i, 1)));
94 $d{T}{$e}{$attrs{cldr}}{hex} = $s;
96 if (defined $attrs{unicode}) {
98 my $uc = $attrs{unicode};
99 $d{T}{$e}{$k}{unicode} = $uc;
101 if (defined $attrs{ucc}) {
102 my $k = $attrs{cldr};
103 my $uc = $attrs{ucc};
104 $d{T}{$e}{$k}{ucc} = $uc;
111 && $data{element}{1} eq "alternativemonths"
112 && $element eq "language") {
113 my $name = $attrs{name};
114 my $countries = $attrs{countries};
116 $data{fields}{name} = $name;
117 $data{fields}{countries} = $countries;
118 $data{fields}{text} = "";
129 if ($data{element}{1} eq "alternativemonths"
130 && $data{element}{2} eq "language") {
131 foreach my $c (split(/,/, $data{fields}{countries})) {
132 my $m = $data{fields}{text};
136 $d{AM}{$data{fields}{name}}{$c} = $m;
150 if ($data{element}{1} eq "alternativemonths"
151 && $data{element}{2} eq "language") {
152 $data{fields}{text} .= $string;
158 #my %D = get_xmldata();