OSDN Git Service

設定変更。
[wordring-tm/wordring-tm.git] / third_party / sodipodi-flags / gen_cc.pl
1 #!/usr/bin/perl -w
2 #
3 use strict;
4
5 my $nations_dir = 'nations';
6 my $codes_dir = 'cc';
7 my $hard_link = 1;
8 my $debug = 0;
9
10 # Non-standart or not in $nations_dir flags
11 my %extra = (
12     'aq' => 'Regional/antarctica.svg',
13     'fo' => 'Regional/denmark_faroe_islands.svg',
14     'eu' => 'Organizations/europeanunion.svg',
15     'gi' => 'Regional/uk_gibraltar.svg',
16     'gl' => 'Regional/denmark_grenland.svg',
17     'hk' => 'Regional/china_hong_kong.svg',
18     'io' => 'Regional/british_indian_ocean_territory.svg',
19     'mo' => 'Regional/china_macau.svg',
20 # !   'mq' => 'Regional/france_martinique.svg',
21     'nf' => 'Regional/australia_norfolk_island_australia.svg',
22     'pf' => 'Regional/france_french_polynesia.svg',
23     'tw' => 'Regional/taiwan.svg',
24     'su' => 'historic/ussr_historic.svg',
25     'ps' => 'Organizations/palestine.svg',
26 # !   'wf' => 'Regional/france_wallis_and_futuna.svg',
27 );
28
29 # Hardcode some of the names
30 my %cc = (
31     'bv' => 'norway',
32     'cd' => 'congo_kinshasa',
33     'cg' => 'congo-brazzaville',# congo_brazzaville
34     'cc' => 'australia',
35     'ch' => 'suisse',           # switzerland
36     'gf' => 'france',
37     'gp' => 'france',
38     'gw' => 'guineabissau',     # guinea_bissau
39     'hm' => 'australia',
40     'im' => 'isle_of_man',      # Unofficial!
41     'kp' => 'north_korea',
42     'kr' => 'south_korea',
43     'la' => 'laos',
44     'mq' => 'france',           # !
45     'nc' => 'france',
46     'pm' => 'france',           # !
47     're' => 'france',
48     'tf' => 'france',
49     'sj' => 'norway',
50     'um' => 'united_states',
51     'va' => 'vatican',
52     'vg' => 'virgin_islands_gb',
53     'vi' => 'virgin_islands_us',
54     'wf' => 'france',
55     'yt' => 'france',
56 );
57
58 while(<DATA>) {
59     if(/^\s*(.*?);(\w\w)\s*$/) {
60         my($name, $cc) = ($1, $2);
61         $cc = lc($cc);
62         
63         unless($cc{$cc}) {
64             $name = lc($name);
65             $name =~ s/\'//g;
66             $name =~ s/\([^\)]+\)//g;
67             $name =~ s/ +/_/g;
68             $name =~ s/-+/_/g;
69             $name =~ s/^_+//;
70             $name =~ s/_+$//;
71             $name =~ s/(.*?),.*$/$1/g;
72             $cc{$cc} = $name;
73         }
74     }
75 }
76
77 # Collect list of files
78 opendir(DIR, $nations_dir);
79 my @files = grep { s/\.svg//; } readdir(DIR);
80 closedir(DIR);
81
82 mkdir($codes_dir) unless(-d $codes_dir);
83
84 foreach my $cc (keys(%extra)) {
85     my $from = $extra{$cc};
86     my $to = "${codes_dir}/${cc}.svg";
87     if($hard_link) {
88         link($from, $to) || warn("Error linking $from to $to: $!\n");
89     }
90     else {
91         symlink("../$from", $to) || warn("Error linking ../$from to $to: $!\n");
92     }
93     delete($cc{$cc});
94 }
95
96 foreach my $country (@files) {
97     my $was_used = 0;
98     foreach my $cc (keys(%cc)) {
99         if($cc{$cc} eq $country) {
100             my $from = "${nations_dir}/${country}.svg";
101             my $to = "${codes_dir}/${cc}.svg";
102             if($hard_link) {
103                 link($from, $to) || warn("Error linking $from to $to: $!\n");
104             }
105             else {
106                 symlink("../$from", $to) || warn("Error linking ../$from to $to: $!\n");
107             }
108             delete($cc{$cc});
109             $was_used = 1;
110         }
111     }
112     undef($country) if($was_used);
113 }
114
115 if($debug) {
116     foreach my $cc (sort(keys(%cc))) {
117         print "$cc\t", $cc{$cc}, "\n";
118     }
119     foreach my $country (@files) {
120         print "$country\n" if($country);
121     }
122 }
123
124 __END__
125 http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1-semic.txt
126 This list states the country names (official short names in English) in alphabetical order as given in ISO 3166-1 and the corresponding ISO 3166-1-alpha-2 code elements. The list is updated whenever a change to the official code list in ISO 3166-1 is effected by the ISO 3166/MA. It lists 239 official short names and code elements. One line of text contains one entry. A country name and its code element are separated by a semicolon (;).
127
128 AFGHANISTAN;AF
129 ALBANIA;AL
130 ALGERIA;DZ
131 AMERICAN SAMOA;AS
132 ANDORRA;AD
133 ANGOLA;AO
134 ANGUILLA;AI
135 ANTARCTICA;AQ
136 ANTIGUA AND BARBUDA;AG
137 ARGENTINA;AR
138 ARMENIA;AM
139 ARUBA;AW
140 AUSTRALIA;AU
141 AUSTRIA;AT
142 AZERBAIJAN;AZ
143 BAHAMAS;BS
144 BAHRAIN;BH
145 BANGLADESH;BD
146 BARBADOS;BB
147 BELARUS;BY
148 BELGIUM;BE
149 BELIZE;BZ
150 BENIN;BJ
151 BERMUDA;BM
152 BHUTAN;BT
153 BOLIVIA;BO
154 BOSNIA AND HERZEGOVINA;BA
155 BOTSWANA;BW
156 BOUVET ISLAND;BV
157 BRAZIL;BR
158 BRITISH INDIAN OCEAN TERRITORY;IO
159 BRUNEI DARUSSALAM;BN
160 BULGARIA;BG
161 BURKINA FASO;BF
162 BURUNDI;BI
163 CAMBODIA;KH
164 CAMEROON;CM
165 CANADA;CA
166 CAPE VERDE;CV
167 CAYMAN ISLANDS;KY
168 CENTRAL AFRICAN REPUBLIC;CF
169 CHAD;TD
170 CHILE;CL
171 CHINA;CN
172 CHRISTMAS ISLAND;CX
173 COCOS (KEELING) ISLANDS;CC
174 COLOMBIA;CO
175 COMOROS;KM
176 CONGO;CG
177 CONGO, THE DEMOCRATIC REPUBLIC OF THE;CD
178 COOK ISLANDS;CK
179 COSTA RICA;CR
180 COTE D'IVOIRE;CI
181 CROATIA;HR
182 CUBA;CU
183 CYPRUS;CY
184 CZECH REPUBLIC;CZ
185 DENMARK;DK
186 DJIBOUTI;DJ
187 DOMINICA;DM
188 DOMINICAN REPUBLIC;DO
189 ECUADOR;EC
190 EGYPT;EG
191 EL SALVADOR;SV
192 EQUATORIAL GUINEA;GQ
193 ERITREA;ER
194 ESTONIA;EE
195 ETHIOPIA;ET
196 FALKLAND ISLANDS (MALVINAS);FK
197 FAROE ISLANDS;FO
198 FIJI;FJ
199 FINLAND;FI
200 FRANCE;FR
201 FRENCH GUIANA;GF
202 FRENCH POLYNESIA;PF
203 FRENCH SOUTHERN TERRITORIES;TF
204 GABON;GA
205 GAMBIA;GM
206 GEORGIA;GE
207 GERMANY;DE
208 GHANA;GH
209 GIBRALTAR;GI
210 GREECE;GR
211 GREENLAND;GL
212 GRENADA;GD
213 GUADELOUPE;GP
214 GUAM;GU
215 GUATEMALA;GT
216 GUINEA;GN
217 GUINEA-BISSAU;GW
218 GUYANA;GY
219 HAITI;HT
220 HEARD ISLAND AND MCDONALD ISLANDS;HM
221 HOLY SEE (VATICAN CITY STATE);VA
222 HONDURAS;HN
223 HONG KONG;HK
224 HUNGARY;HU
225 ICELAND;IS
226 INDIA;IN
227 INDONESIA;ID
228 IRAN, ISLAMIC REPUBLIC OF;IR
229 IRAQ;IQ
230 IRELAND;IE
231 ISRAEL;IL
232 ITALY;IT
233 JAMAICA;JM
234 JAPAN;JP
235 JORDAN;JO
236 KAZAKHSTAN;KZ
237 KENYA;KE
238 KIRIBATI;KI
239 KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF;KP
240 KOREA, REPUBLIC OF;KR
241 KUWAIT;KW
242 KYRGYZSTAN;KG
243 LAO PEOPLE'S DEMOCRATIC REPUBLIC;LA
244 LATVIA;LV
245 LEBANON;LB
246 LESOTHO;LS
247 LIBERIA;LR
248 LIBYAN ARAB JAMAHIRIYA;LY
249 LIECHTENSTEIN;LI
250 LITHUANIA;LT
251 LUXEMBOURG;LU
252 MACAO;MO
253 MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF;MK
254 MADAGASCAR;MG
255 MALAWI;MW
256 MALAYSIA;MY
257 MALDIVES;MV
258 MALI;ML
259 MALTA;MT
260 MARSHALL ISLANDS;MH
261 MARTINIQUE;MQ
262 MAURITANIA;MR
263 MAURITIUS;MU
264 MAYOTTE;YT
265 MEXICO;MX
266 MICRONESIA, FEDERATED STATES OF;FM
267 MOLDOVA, REPUBLIC OF;MD
268 MONACO;MC
269 MONGOLIA;MN
270 MONTSERRAT;MS
271 MOROCCO;MA
272 MOZAMBIQUE;MZ
273 MYANMAR;MM
274 NAMIBIA;NA
275 NAURU;NR
276 NEPAL;NP
277 NETHERLANDS;NL
278 NETHERLANDS ANTILLES;AN
279 NEW CALEDONIA;NC
280 NEW ZEALAND;NZ
281 NICARAGUA;NI
282 NIGER;NE
283 NIGERIA;NG
284 NIUE;NU
285 NORFOLK ISLAND;NF
286 NORTHERN MARIANA ISLANDS;MP
287 NORWAY;NO
288 OMAN;OM
289 PAKISTAN;PK
290 PALAU;PW
291 PALESTINIAN TERRITORY, OCCUPIED;PS
292 PANAMA;PA
293 PAPUA NEW GUINEA;PG
294 PARAGUAY;PY
295 PERU;PE
296 PHILIPPINES;PH
297 PITCAIRN;PN
298 POLAND;PL
299 PORTUGAL;PT
300 PUERTO RICO;PR
301 QATAR;QA
302 REUNION;RE
303 ROMANIA;RO
304 RUSSIAN FEDERATION;RU
305 RWANDA;RW
306 SAINT HELENA;SH
307 SAINT KITTS AND NEVIS;KN
308 SAINT LUCIA;LC
309 SAINT PIERRE AND MIQUELON;PM
310 SAINT VINCENT AND THE GRENADINES;VC
311 SAMOA;WS
312 SAN MARINO;SM
313 SAO TOME AND PRINCIPE;ST
314 SAUDI ARABIA;SA
315 SENEGAL;SN
316 SERBIA AND MONTENEGRO;CS
317 SEYCHELLES;SC
318 SIERRA LEONE;SL
319 SINGAPORE;SG
320 SLOVAKIA;SK
321 SLOVENIA;SI
322 SOLOMON ISLANDS;SB
323 SOMALIA;SO
324 SOUTH AFRICA;ZA
325 SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS;GS
326 SPAIN;ES
327 SRI LANKA;LK
328 SUDAN;SD
329 SURINAME;SR
330 SVALBARD AND JAN MAYEN;SJ
331 SWAZILAND;SZ
332 SWEDEN;SE
333 SWITZERLAND;CH
334 SYRIAN ARAB REPUBLIC;SY
335 TAIWAN, PROVINCE OF CHINA;TW
336 TAJIKISTAN;TJ
337 TANZANIA, UNITED REPUBLIC OF;TZ
338 THAILAND;TH
339 TIMOR-LESTE;TL
340 TOGO;TG
341 TOKELAU;TK
342 TONGA;TO
343 TRINIDAD AND TOBAGO;TT
344 TUNISIA;TN
345 TURKEY;TR
346 TURKMENISTAN;TM
347 TURKS AND CAICOS ISLANDS;TC
348 TUVALU;TV
349 UGANDA;UG
350 UKRAINE;UA
351 UNITED ARAB EMIRATES;AE
352 UNITED KINGDOM;GB
353 UNITED STATES;US
354 UNITED STATES MINOR OUTLYING ISLANDS;UM
355 URUGUAY;UY
356 UZBEKISTAN;UZ
357 VANUATU;VU
358 VENEZUELA;VE
359 VIET NAM;VN
360 VIRGIN ISLANDS, BRITISH;VG
361 VIRGIN ISLANDS, U.S.;VI
362 WALLIS AND FUTUNA;WF
363 WESTERN SAHARA;EH
364 YEMEN;YE
365 ZAMBIA;ZM
366 ZIMBABWE;ZW