# Portions Copyright 2005-2007 Sun Microsystems, Inc.  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.  Sun designates this
# particular file as subject to the "Classpath" exception as provided
# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
# CA 95054 USA or visit www.sun.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

ab=abchaski
aa=afar
af=afrykanerski
sq=alba\u0144ski
am=amharski
ar=arabski
hy=arme\u0144ski
as=asamski
ay=ajmara
az=azerbejd\u017Ca\u0144ski
ba=baszkirski
eu=baskijski
bn=bengali
dz=bhuta\u0144ski
bh=biharski
bi=bislama
br=breto\u0144ski
bg=bu\u0142garski
my=birma\u0144ski
be=bia\u0142oruski
km=khmerski
ca=katalo\u0144ski
zh=chi\u0144ski
co=korsyka\u0144ski
hr=chorwacki
cs=czeski
da=du\u0144ski
nl=holenderski
en=angielski
eo=esperanto
et=esto\u0144ski
fo=farerski
fj=fid\u017Ci
fi=fi\u0144ski
fr=francuski
fy=fryzyjski
gl=galisyjski
ka=gruzi\u0144ski
de=niemiecki
el=grecki
kl=grenlandzki
gn=guarani
gu=gujarati
ha=hausa
he=hebrajski
iw=hebrajski
hi=hindi
hu=w\u0119gierski
is=islandzki
id=indonezyjski
in=indonezyjski
ia=interlingua
ie=interlingua
iu=inuktitut
ik=inupiak
ga=irlandzki
it=w\u0142oski
ja=japo\u0144ski
jw=jawajski
kn=kanadyjski
ks=kaszmirski
kk=kazaski
rw=kinyaruanda
ky=kirgiski
rn=kirundi
ko=korea\u0144ski
ku=kurdyjski
lo=laota\u0144ski
la=\u0142aci\u0144ski
lv=\u0142otewski
ln=lingala
lt=litewski
mk=macedo\u0144ski
mg=malgaski
ms=malajski
ml=malayalam
mt=malta\u0144ski
mi=maoryski
mr=marathi
mo=mo\u0142dawski
mn=mongolski
na=nauru
ne=nepalski
no=norweski
oc=prowansalski
or=oryski
om=oromo 
ps=paszto 
fa=perski
pl=polski
pt=portugalski
pa=pend\u017Cabski
qu=keczua
rm=retoroma\u0144ski
ro=rumu\u0144ski
ru=rosyjski
sm=samoa\u0144ski
sg=sangho
sa=sanskrycki
gd=szkocki
sr=serbski
st=lesotho
tn=tswana
sn=szona
sd=sind
si=syngaleski
ss=suazi
sk=s\u0142owacki
sl=s\u0142owe\u0144ski
so=somalijski
es=hiszpa\u0144ski
su=sundajski
sw=swahili
sv=szwedzki
tl=tagalog
tg=tad\u017Cycki
ta=tamilski
tt=tatarski
te=telugu
th=tajlandzki
bo=tybeta\u0144ski
ti=tigrinya
to=tonga\u0144ski
ts=tsonga
tr=turecki
tk=turkme\u0144ski
tw=twi
ug=ujguryjski
uk=ukrai\u0144ski
ur=urdu
uz=uzbecki
vi=wietnamski
vo=volapuk
cy=walijski
wo=wolof
xh=xhosa
ji=jidisz
yi=jidisz
yo=joruba
za=zhuang
zu=zulu

# country names
# key is ISO 3166 country code

AF=Afganistan
AL=Albania
DZ=Algeria
AD=Andora
AO=Angola
AI=Anguilla
AR=Argentyna
AM=Armenia
AW=Aruba
AU=Australia
AT=Austria
AZ=Azerbejd\u017Can
BS=Bahamy
BH=Bahrajn
BD=Bangladesz
BB=Barbados
BY=Bia\u0142oru\u015B
BE=Belgia
BZ=Belize
BJ=Benin
BM=Bermudy
BT=Bhutan
BO=Boliwia
BA=Bo\u015Bnia i Hercegowina
BW=Botswana
BR=Brazylia
BN=Brunei
BG=Bu\u0142garia
BF=Burkina Faso
BI=Burundi
KH=Kambod\u017Ca
CM=Kamerun
CA=Kanada
CV=Republika Zielonego Przyl\u0105dka
CF=Republika \u015Arodkowoafryka\u0144ska
TD=Czad
CL=Chile
CN=Chiny
CO=Kolumbia
KM=Komory
CG=Kongo
CR=Kostaryka
CI=Wybrze\u017Ce Ko\u015Bci S\u0142oniowej
HR=Chorwacja
CU=Kuba
CY=Cypr
CZ=Republika Czeska
DK=Dania
DJ=D\u017Cibuti
DM=Dominika
DO=Republika Dominikany
TP=Wschodni Timor
EC=Ekwador
EG=Egipt
SV=Salwador
GQ=Gwinea R\u00F3wnikowa
ER=Erytrea
EE=Estonia
ET=Etiopia
FJ=Fid\u017Ci
FI=Finlandia
FR=Francja
GF=Gujana Francuska
PF=Polinezja Francuska
TF=Francuskie Terytoria Zamorskie
GA=Gabon
GM=Gambia
GE=Gruzja
DE=Niemcy
GH=Ghana
GR=Grecja
GP=Gwadelupa
GT=Gwatemala
GN=Gwinea
GW=Gwinea Bissau
GY=Gujana
HT=Haiti
HN=Honduras
HK=Hong Kong
HU=W\u0119gry
IS=Islandia
IN=Indie
ID=Indonezja
IR=Iran
IQ=Irak
IE=Irlandia
IL=Izrael
IT=W\u0142ochy
JM=Jamajka
JP=Japonia
JO=Jordan
KZ=Kazachstan
KE=Kenia
KI=Kiribati
KP=Korea P\u00f3\u0142nocna
KR=Korea Po\u0142udniowa
KW=Kuwejt
KG=Kirgistan
LA=Laos
LV=\u0141otwa
LB=Liban
LS=Lesoto
LR=Liberia
LY=Libia
LI=Liechtenstein
LT=Litwa
LU=Luksemburg
MK=Macedonia
MG=Madagaskar
MY=Malezja
ML=Mali
MT=Malta
MQ=Martynika
MR=Mauretania
MU=Mauritius
YT=Mayotte
MX=Meksyk
FM=Mikronezja
MD=Mo\u0142dawia
MC=Monako
MN=Mongolia
MS=Montserrat
MA=Maroko
MZ=Mozambik
MM=Myanmar
NA=Namibia
NP=Nepal
NL=Holandia
AN=Antyle Holenderskie
NC=Nowa Kaledonia
NZ=Nowa Zelandia
NI=Nikaragua
NE=Niger
NG=Nigeria
NU=Niue
NO=Norwegia
OM=Oman
PK=Pakistan
PA=Panama
PG=Papua Nowa Gwinea
PY=Paragwaj
PE=Peru
PH=Filipiny
PL=Polska
PT=Portugalia
PR=Portoryko
QA=Katar
RO=Rumunia
RU=Rosja
RW=Rwanda
SA=Arabia Saudyjska
SN=Senegal
SP=Serbia
SC=Seszele
SL=Sierra Leone
SG=Singapur
SK=S\u0142owacja
SI=S\u0142owenia
SO=Somalia
ZA=Republika Po\u0142udniowej Afryki
ES=Hiszpania
LK=Sri Lanka
SD=Sudan
SR=Surinam
SZ=Suazi
SE=Szwecja
CH=Szwajcaria
SY=Syria
TW=Tajwan
TJ=Tad\u017Cykistan
TZ=Tanzania
TH=Tajlandia
TG=Togo
TK=Tokelau
TO=Tonga
TT=Trynidad i Tobago
TN=Tunezja
TR=Turcja
TM=Turkmenistan
UG=Uganda
UA=Ukraina
AE=Zjednoczone Emiraty Arabskie
GB=Wielka Brytania
US=Stany Zjednoczone Ameryki
UY=Urugwaj
UZ=Uzbekistan
VU=Vanuatu
VA=Watykan
VE=Wenezuela
VN=Wietnam
VG=Dziewicze Wyspy Brytyjskie
VI=Dziewicze Wyspy Stan\u00F3w Zjednoczonych
EH=Sahara Zachodnia
YE=Jemen
ZR=Zair
ZM=Zambia
ZW=Zimbabwe
