# Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.  Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#

# (C) Copyright Taligent, Inc. 1996, 1997 - All Rights Reserved
# (C) Copyright IBM Corp. 1996 - 1999 - All Rights Reserved
#
# The original version of this source code and documentation
# is copyrighted and owned by Taligent, Inc., a wholly-owned
# subsidiary of IBM. These materials are provided under terms
# of a License Agreement between Taligent and Sun. This technology
# is protected by multiple US and International patents.
#
# This notice and attribution to Taligent may not be removed.
# Taligent is a registered trademark of Taligent, Inc.

# language names
# key is ISO 639 language code

aa=Afar
ab=Abchazisch
ae=Avestisch
af=Afrikaans
ak=Akan
am=Amhaars
an=Aragonees
ar=Arabisch
as=Assamees
av=Avarisch
ay=Aymara
az=Azerbeidzjaans
ba=Basjkiers
be=Wit-Russisch
bg=Bulgaars
bh=Bihari
bi=Bislama
bm=Bambara
bn=Bengalees
bo=Tibetaans
br=Bretons
bs=Bosnisch
ca=Catalaans
ce=Chechen
ch=Chamorro
co=Corsicaans
cr=Cree
cs=Tsjechisch
cu=Kerkslavisch
cv=Tsjoevasjisch
cy=Welsh
da=Deens
de=Duits
dv=Divehi
dz=Dzongkha
ee=Ewe
el=Grieks
en=Engels
eo=Esperanto
es=Spaans
et=Estlands
eu=Baskisch
fa=Perzisch
ff=Fulah
fi=Fins
fj=Fijisch
fo=Faer\u00f6ers
fr=Frans
fy=Fries
ga=Iers
gd=Schots Gaelic
gl=Galicisch
gn=Guarani
gu=Gujarati
gv=Manx
ha=Hausa
he=Hebreeuws
hi=Hindi
ho=Hiri Motu
hr=Kroatisch
ht=Ha\u00eftiaans
hu=Hongaars
hy=Armeens
hz=Herero
ia=Interlingua
id=Indonesisch
ie=Interlingue
ig=Igbo
ii=Sichuan Yi
ik=Inupiaq
io=Ido
is=IJslands
it=Italiaans
iu=Inuktitut
ja=Japans
jv=Javaans
ka=Georgisch
kg=Kongo
ki=Kikuyu
kj=Kuanyama
kk=Kazachs
kl=Kalaallisut
km=Khmer
kn=Kannada
ko=Koreaans
kr=Kanuri
ks=Kashmiri
ku=Koerdisch
kv=Komi
kw=Cornish
ky=Kirgizisch
la=Latijn
lb=Luxemburgs
lg=Ganda
li=Limburgs
ln=Lingala
lo=Lao
lt=Litouws
lu=Luba-Katanga
lv=Letlands
mg=Malagasisch
mh=Marshallees
mi=Maori
mk=Macedonisch
ml=Malayalam
mn=Mongools
mo=Moldavisch
mr=Marathi
ms=Maleis
mt=Maltees
my=Birmees
na=Nauru
nb=Noors - Bokm\u00e5l
nd=Noord-Ndbele
ne=Nepalees
ng=Ndonga
nl=Nederlands
nn=Noors - Nynorsk
no=Noors
nr=Zuid-Ndbele
nv=Navajo
ny=Nyanja
oc=Occitaans
oj=Ojibwa
om=Oromo
or=Oriya
os=Ossetisch
pa=Punjabi
pi=Pali
pl=Pools
ps=Pasjtoe
pt=Portugees
qu=Quechua
rm=Reto-Romaans
rn=Rundi
ro=Roemeens
ru=Russisch
rw=Kinyarwanda
sa=Sanskriet
sc=Sardinisch
sd=Sindhi
se=Noord-Samisch
sg=Sango
si=Singalees
sk=Slowaaks
sl=Sloveens
sm=Samoaans
sn=Shona
so=Somalisch
sq=Albanees
sr=Servisch
ss=Swati
st=Zuid-Sotho
su=Soendanees
sv=Zweeds
sw=Swahili
ta=Tamil
te=Teloegoe
tg=Tadzjieks
th=Thais
ti=Tigrinya
tk=Turkmeens
tl=Tagalog
tn=Tswana
to=Tonga
tr=Turks
ts=Tsonga
tt=Tataars
tw=Twi
ty=Tahitisch
ug=Oeigoers
uk=Oekra\u00efens
ur=Urdu
uz=Oezbeeks
ve=Venda
vi=Vietnamees
vo=Volap\u00fck
wa=Wallonisch
wo=Wolof
xh=Xhosa
yi=Jiddisch
yo=Yoruba
za=Zhuang
zh=Chinees
zu=Zulu

# country names
# key is ISO 3166 country code

AD=Andorra
AE=Verenigde Arabische Emiraten
AF=Afghanistan
AG=Antigua en Barbuda
AI=Anguilla
AL=Albani\u00eb
AM=Armeni\u00eb
AN=Nederlandse Antillen
AO=Angola
AQ=Antarctica
AR=Argentini\u00eb
AS=Amerikaans Samoa
AT=Oostenrijk
AU=Australi\u00eb
AW=Aruba
AX=Alandeilanden
AZ=Azerbeidzjan
BA=Bosni\u00eb en Herzegovina
BB=Barbados
BD=Bangladesh
BE=Belgi\u00eb
BF=Burkina Faso
BG=Bulgarije
BH=Bahrein
BI=Burundi
BJ=Benin
BM=Bermuda
BN=Brunei
BO=Bolivia
BR=Brazili\u00eb
BS=Bahama\u2019s
BT=Bhutan
BV=Bouveteiland
BW=Botswana
BY=Wit-Rusland
BZ=Belize
CA=Canada
CC=Cocoseilanden
CD=Congo-Kinshasa
CF=Centraal-Afrikaanse Republiek
CG=Congo
CH=Zwitserland
CI=Ivoorkust
CK=Cookeilanden
CL=Chili
CM=Kameroen
CN=China
CO=Colombia
CR=Costa Rica
CS=Servi\u00eb en Montenegro
CU=Cuba
CV=Kaapverdi\u00eb
CX=Christmaseiland
CY=Cyprus
CZ=Tsjechi\u00eb
DE=Duitsland
DJ=Djibouti
DK=Denemarken
DM=Dominica
DO=Dominicaanse Republiek
DZ=Algerije
EC=Ecuador
EE=Estland
EG=Egypte
EH=Westelijke Sahara
ER=Eritrea
ES=Spanje
ET=Ethiopi\u00eb
FI=Finland
FJ=Fiji
FK=Falklandeilanden
FM=Micronesi\u00eb
FO=Faer\u00f6er
FR=Frankrijk
GA=Gabon
GB=Verenigd Koninkrijk
GD=Grenada
GE=Georgi\u00eb
GF=Frans-Guyana
GH=Ghana
GI=Gibraltar
GL=Groenland
GM=Gambia
GN=Guinee
GP=Guadeloupe
GQ=Equatoriaal-Guinea
GR=Griekenland
GS=Zuid-Georgi\u00eb en Zuidelijke Sandwicheilanden
GT=Guatemala
GU=Guam
GW=Guinee-Bissau
GY=Guyana
HK=Hongkong SAR van China
HM=Heard- en McDonaldeilanden
HN=Honduras
HR=Kroati\u00eb
HT=Ha\u00efti
HU=Hongarije
ID=Indonesi\u00eb
IE=Ierland
IL=Isra\u00ebl
IN=India
IO=Britse Gebieden in de Indische Oceaan
IQ=Irak
IR=Iran
IS=IJsland
IT=Itali\u00eb
JM=Jamaica
JO=Jordani\u00eb
JP=Japan
KE=Kenia
KG=Kirgizi\u00eb
KH=Cambodja
KI=Kiribati
KM=Comoren
KN=Saint Kitts en Nevis
KP=Noord-Korea
KR=Zuid-Korea
KW=Koeweit
KY=Caymaneilanden
KZ=Kazachstan
LA=Laos
LB=Libanon
LC=Saint Lucia
LI=Liechtenstein
LK=Sri Lanka
LR=Liberia
LS=Lesotho
LT=Litouwen
LU=Luxemburg
LV=Letland
LY=Libi\u00eb
MA=Marokko
MC=Monaco
MD=Moldavi\u00eb
ME=Montenegro
MG=Madagaskar
MH=Marshalleilanden
MK=Macedoni\u00eb
ML=Mali
MM=Myanmar
MN=Mongoli\u00eb
MO=Macao SAR van China
MP=Noordelijke Marianeneilanden
MQ=Martinique
MR=Mauritani\u00eb
MS=Montserrat
MT=Malta
MU=Mauritius
MV=Maldiven
MW=Malawi
MX=Mexico
MY=Maleisi\u00eb
MZ=Mozambique
NA=Namibi\u00eb
NC=Nieuw-Caledoni\u00eb
NE=Niger
NF=Norfolkeiland
NG=Nigeria
NI=Nicaragua
NL=Nederland
NO=Noorwegen
NP=Nepal
NR=Nauru
NU=Niue
NZ=Nieuw-Zeeland
OM=Oman
PA=Panama
PE=Peru
PF=Frans-Polynesi\u00eb
PG=Papoea-Nieuw-Guinea
PH=Filipijnen
PK=Pakistan
PL=Polen
PM=Saint Pierre en Miquelon
PN=Pitcairn
PR=Puerto Rico
PS=Palestijns Gebied
PT=Portugal
PW=Palau
PY=Paraguay
QA=Qatar
RE=R\u00e9union
RO=Roemeni\u00eb
RS=Servi\u00eb
RU=Rusland
RW=Rwanda
SA=Saoedi-Arabi\u00eb
SB=Salomonseilanden
SC=Seychellen
SD=Soedan
SE=Zweden
SG=Singapore
SH=Sint-Helena
SI=Sloveni\u00eb
SJ=Svalbard en Jan Mayen
SK=Slowakije
SL=Sierra Leone
SM=San Marino
SN=Senegal
SO=Somali\u00eb
SR=Suriname
ST=Sao Tom\u00e9 en Principe
SV=El Salvador
SY=Syri\u00eb
SZ=Swaziland
TC=Turks- en Caicoseilanden
TD=Tsjaad
TF=Franse Gebieden in de zuidelijke Indische Oceaan
TG=Togo
TH=Thailand
TJ=Tadzjikistan
TK=Tokelau
TL=Oost-Timor
TM=Turkmenistan
TN=Tunesi\u00eb
TO=Tonga
TR=Turkije
TT=Trinidad en Tobago
TV=Tuvalu
TW=Taiwan
TZ=Tanzania
UA=Oekra\u00efne
UG=Oeganda
UM=Amerikaanse kleinere afgelegen eilanden
US=Verenigde Staten
UY=Uruguay
UZ=Oezbekistan
VA=Vaticaanstad
VC=Saint Vincent en de Grenadines
VE=Venezuela
VG=Britse Maagdeneilanden
VI=Amerikaanse Maagdeneilanden
VN=Vietnam
VU=Vanuatu
WF=Wallis en Futuna
WS=Samoa
YE=Jemen
YT=Mayotte
ZA=Zuid-Afrika
ZM=Zambia
