# Translation of tuxpaint into the walloon language.
# Copyright (C) 2003 Free Software Foundation, Inc.
# Pablo Saratxaga <pablo@walon.org>, 2003, 2004.
msgid ""
msgstr ""
"Project-Id-Version: libiconv 1.9.1\n"
"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n"
"POT-Creation-Date: 2004-01-22 11:54+0100\n"
"PO-Revision-Date: 2004-04-05 20:24+0200\n"
"Last-Translator: Pablo Saratxaga <pablo@walon.org>\n"
"Language-Team: Walloon <linux-wa@walon.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.0.2\n"

#: src/iconv.c:54
msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]"
msgstr ""
"Po s' è siervi: iconv [-c] [-s] [-f ecôd._sourd] [-t ecôd._såme] [fitchî...]"

#: src/iconv.c:56
msgid "or:    iconv -l"
msgstr "oudonbén:       iconv -l"

#: src/iconv.c:66
#, c-format
msgid ""
"This is free software; see the source for copying conditions.  There is NO\n"
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
msgstr ""
"Çouchal, c' est on libe programe; vos l' poloz bén spåde et sel poloz vs\n"
"bén candjî tot shuvant li Licince Publike Djeneråle (GPL)\n"
"I n' a NOLE WAERANTEYE; nén minme ki vos VINDRÎZ bén\n"
"li programe ou ki vos vs è SIEVRÎZ BÉN PO ENE SÔRE OU L' ÔTE.\n"

#: src/iconv.c:69
#, c-format
msgid "Written by %s.\n"
msgstr "Sicrît pa %s.\n"

#: src/iconv.c:105 src/iconv.c:137 src/iconv.c:187
#, c-format
msgid "iconv: %s: incomplete character or shift sequence\n"
msgstr "iconv: %s: caractere ou secwince di candjmint nén complete\n"

#: src/iconv.c:131 src/iconv.c:182
#, c-format
msgid "iconv: %s: cannot convert\n"
msgstr "iconv: %s: dji n' sai fé l' kiviersaedje\n"

#: src/iconv.c:153 src/iconv.c:192 src/iconv.c:310
#, c-format
msgid "iconv: %s: "
msgstr "iconv: %s: "

#: src/iconv.c:201
#, c-format
msgid "iconv: %s: I/O error\n"
msgstr "iconv: %s: aroke d' intrêye/rexhowe\n"

#: src/iconv.c:294
#, c-format
msgid "iconv: conversion from %s unsupported\n"
msgstr "iconv: li cviersaedje a pårti d' l' ecôdaedje %s n' est nén sopoirté\n"

#: src/iconv.c:296
#, c-format
msgid "iconv: conversion to %s unsupported\n"
msgstr "iconv: li cviersaedje viè l' ecôdaedje %s n' est nén sopoirté\n"

#: src/iconv.c:298
#, c-format
msgid "iconv: conversion from %s to %s unsupported\n"
msgstr "iconv: li cviersaedje di l' ecôdaedje %s viè %s n' est nén sopoirté\n"

#: src/iconv.c:302
msgid "(stdin)"
msgstr "(intrêye sitandård)"

#: src/iconv.c:323
#, c-format
msgid "iconv: I/O error\n"
msgstr "iconv: aroke d' intrêye/rexhowe\n"

#~ msgid ""
#~ "Usage: iconv [--binary] [-c] [-s] [-f fromcode] [-t tocode] [file ...]"
#~ msgstr ""
#~ "Po s' è siervi: iconv [--binary] [-c] [-s] [-f ecôd._sourd] [-t ecôd."
#~ "_såme] [fitchî...]"
