# This file contains the list of available translations.
#
# Each should be prefixed with the English name for the language and
# the current maintainer's name in their preferred form and contact
# e-mail address.

# Bosnian - Safir Šećerović <sapphire@linux.org.ba>
bs

# Catalan - Jordi Mallach <jordi@debian.org>
ca

# Czech - Miroslav Kure <kurem@debian.cz>
cs

# Danish - Claus Hindsgaul <claus_h@image.dk>
da

# German - Sven Joachim <svenjoac@gmx.de>
de

# Greek (Hellenic) - George Papamichelakis <george@step.gr>
el

# Spanish - Javier Fernández-Sanguino Peña <jfs@debian.org>
es

# Estonian - Ivar Smolin <okul@linux.ee>
et

# Basque (Euskara) - Piarres Beobide Egaña <pi@beobide.net>
eu

# French - Christian Perrier <bubulle@debian.org>
fr

# Galician - Héctor Fernández López <trorrr@yahoo.es>
gl

# Hungarian - Szervác Attila <sas@321.hu>
hu

# Indonesian - Arief S Fitrianto <arief@gurame.fisika.ui.ac.id>
id

# Italian - Stefano Canepa <sc@linux.it>
it

# Japanese - Kenshi Muto <kmuto@debian.org>
ja

# Korean - Changwoo Ryu <cwryu@debian.org>
ko

# Norwegian (Bokmål) - Bjorn Steensrud <bjornst@powertech.no>
nb

# Dutch - Bart Cornelis <cobaco@linux.be>
nl

# Norwegian (Nynorsk) - Håvard Korsvoll <korsvoll@skulelinux.no>
nn

# Polish - Bartosz Feñski <fenio@debian.org>
pl

# Portuguese - Miguel Figueiredo <elmig@debianpt.org>
pt

# Brazilian Portuguese - André Luís Lopes <andrelop@debian.org>
pt_BR

# Romanian - Eddy Petrisor <eddy.petrisor@gmail.com>
ro

# Russian - Yuri Kozlov <yuray@id.ru>
ru

# Slovak - Ivan Masár <helix84@centrum.sk>
sk

# Swedish - Peter Krefting <peterk@debian.org>
sv

# Tagalog - Eric Pareja <xenos@upm.edu.ph>
tl

# Vietnamese - Clytie Siddall <clytie@riverland.net.au>
vi

# Simplified Chinese - Tchaikov <chaisave@263.com>
zh_CN

# Traditional Chinese - Asho Yeh <asho@debian.org.tw>
zh_TW
