# Greek translation of libiconv.
# Copyright (C) 2005 Free Software Foundation, Inc.
# Balaskas Euaggelos <ebalaskas@cs.teiath.gr>, 2004.
#
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: 2004-12-25 22:15+0200\n"
"Last-Translator: Balaskas Euaggelos <ebalaskas@ebalaskas.gr>\n"
"Language-Team: Greek <nls@tux.hellug.gr>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#: src/iconv.c:56
msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]"
msgstr "Χρήση: iconv [-c] [-s] [-f από_κώδικα] [-t tocode] [αρχείο...]"

#: src/iconv.c:58
msgid "or:    iconv -l"
msgstr "είτε: 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 ""
"Αυτό είναι ένα χωρίς χρέωση πρόγραμμα΄ δείτε τον κώδικα για αντιγραφή "
"συνθηκών. Δεν υπάρχει ΚΑΜΙΑ\n"
" εγγύηση' ούτε ακόμα για ΕΜΠΟΡΕΥΜΑΤΟΠΟΙΗΣΗ ή ΚΑΤΑΛΗΛΟΤΗΤΑ ΓΙΑ ΕΝΑΝ "
"ΣΥΓΚΕΚΡΙΜΕΝΟ ΣΚΟΠΟ.\n"

#: src/iconv.c:71
#, c-format
msgid "Written by %s.\n"
msgstr "Γράφτηκε από τον %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: μη ολοκληρωμένος χαρακτήρας ή shift συνέχεια\n"

#: src/iconv.c:161 src/iconv.c:223
#, fuzzy, c-format
msgid "iconv: %s:%u:%u: cannot convert\n"
msgstr "iconv: %s: δεν μπορεί να γίνει η μετατροπή\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: I/O σφάλμα\n"

#: src/iconv.c:351
#, c-format
msgid "iconv: conversion from %s unsupported\n"
msgstr "iconv: μετατροπή από %s μη υποστηριζόμενη\n"

#: src/iconv.c:353
#, c-format
msgid "iconv: conversion to %s unsupported\n"
msgstr "iconv: μετατροπή σε %s μη υποστηριζόμενη\n"

#: src/iconv.c:355
#, c-format
msgid "iconv: conversion from %s to %s unsupported\n"
msgstr "iconv: μετατροπή από %s σε %s μη υποστηριζόμενη\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: I/O σφάλμα\n"

#~ msgid ""
#~ "Usage: iconv [--binary] [-c] [-s] [-f fromcode] [-t tocode] [file ...]"
#~ msgstr ""
#~ "Χρήση: iconv [--binary] [-c] [-s] [-f από_κώδικα] [-t tocode] [αρχείο...]"
