# translation of libiconv-1.9.1.po to Rumantsch (Rhaeto-Romance) [rm]
# Copyright (C) 2005 Free Software Foundation, Inc.
# This file is distributed under the same license as the PACKAGE package.
# Florian Verdet _goto <fvgoto@linuxbourg.ch>, 2005.
#
msgid ""
msgstr ""
"Project-Id-Version: libiconv 1.9.1\n"
"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n"
"POT-Creation-Date: 2005-07-07 14:54+0200\n"
"PO-Revision-Date: 2005-02-06 15:27+0100\n"
"Last-Translator: Florian Verdet _goto <fvgoto@linuxbourg.ch>\n"
"Language-Team: Rhaeto-Romance <gnu-rumantsch@guglielmtux.ch>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.2\n"

#: src/iconv.c:56
msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]"
msgstr ""
"Adöver: iconv [-c] [-s] [-f codificaziun d'origin] [-t codificaziun da "
"destinaziun] [datoteca ...]"

#: src/iconv.c:58
msgid "or:    iconv -l"
msgstr "obain:    iconv -l"

#: src/iconv.c:68
#, 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 ""
"Quist es ün program liber; guarda ils texts da funtana pellas cundiziuns da "
"copcha.\n"
"I nu da INGÜNA garanzia; neir na per MARCHADANTIBILITÀ o per\n"
"l'OPPORTUNITÀ PER ÜN BÖT PARTICULAR.\n"

#: src/iconv.c:71
#, c-format
msgid "Written by %s.\n"
msgstr "Scrit da %s.\n"

#: src/iconv.c:131 src/iconv.c:171 src/iconv.c:232
#, fuzzy, c-format
msgid "iconv: %s:%u:%u: incomplete character or shift sequence\n"
msgstr "iconv: %s: segn incumplet o sequenza da translocaziun\n"

#: src/iconv.c:161 src/iconv.c:223
#, fuzzy, c-format
msgid "iconv: %s:%u:%u: cannot convert\n"
msgstr "iconv: %s: nu poss convertir\n"

#: src/iconv.c:191 src/iconv.c:241
#, fuzzy, c-format
msgid "iconv: %s:%u:%u: "
msgstr "iconv: %s: "

#: src/iconv.c:253
#, c-format
msgid "iconv: %s: I/O error\n"
msgstr "iconv: %s: sbagl d'I/O\n"

#: src/iconv.c:351
#, c-format
msgid "iconv: conversion from %s unsupported\n"
msgstr "iconv: conversiun davent da %s na sustgnida\n"

#: src/iconv.c:353
#, c-format
msgid "iconv: conversion to %s unsupported\n"
msgstr "iconv: conversiun vers %s na sustgnida\n"

#: src/iconv.c:355
#, c-format
msgid "iconv: conversion from %s to %s unsupported\n"
msgstr "iconv: conversiun da %s vers %s na sustgnida\n"

#: src/iconv.c:356
#, c-format
msgid "iconv: try '%s -l' to get the list of supported encodings\n"
msgstr ""

#: src/iconv.c:370
msgid "(stdin)"
msgstr "(stdin)"

#: src/iconv.c:378
#, c-format
msgid "iconv: %s: "
msgstr "iconv: %s: "

#: src/iconv.c:391
#, c-format
msgid "iconv: I/O error\n"
msgstr "iconv: sbagl I/O\n"

#~ msgid ""
#~ "Usage: iconv [--binary] [-c] [-s] [-f fromcode] [-t tocode] [file ...]"
#~ msgstr ""
#~ "Adöver: iconv [--binary] [-c] [-s] [-f codificaziun d'origin] [-t "
#~ "codificaziun da destinaziun] [datoteca ...]"
