# 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

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
