# This file is distributed under the same license as the gettext package.
# Turkish translations for Gnu Gettext Package.
# Copyright (C) 2006 Free Software Foundation, Inc.
# Nilgün Belma Bugüner <nilgun@buguner.name.tr>, 2001, ..., 2006.
# Volkan Gezer <volkangezer@gmail.com>, 2015.
# Mehmet Kececi <mkececi@mehmetkececi.com>, 2017, 2019, 2020.
msgid ""
msgstr ""
"Project-Id-Version: gettext-runtime 0.20.2\n"
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
"POT-Creation-Date: 2020-07-26 21:56+0200\n"
"PO-Revision-Date: 2020-04-17 13:07+0300\n"
"Last-Translator: Mehmet Kececi <mkececi@mehmetkececi.com>\n"
"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Poedit 2.3\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"

#: gnulib-lib/closeout.c:66
msgid "write error"
msgstr "yazma hatası"

#: gnulib-lib/error.c:195
msgid "Unknown system error"
msgstr "Bilinmeyen sistem hatası"

#: gnulib-lib/getopt.c:278
#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
msgstr "%s: '%s%s' seçeneği belirsiz\n"

#: gnulib-lib/getopt.c:284
#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
msgstr "%s: '%s%s' seçeneği belirsizdir; olasılıklar:"

#: gnulib-lib/getopt.c:319
#, c-format
msgid "%s: unrecognized option '%s%s'\n"
msgstr "%s: '%s%s' seçeneği bilinmiyor\n"

#: gnulib-lib/getopt.c:345
#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
msgstr "%s: '%s%s' seçeneği bağımsız değişkene izin vermiyor\n"

#: gnulib-lib/getopt.c:360
#, c-format
msgid "%s: option '%s%s' requires an argument\n"
msgstr "%s: '%s%s' seçeneği bağımsız bir değişken gerektiriyor\n"

#: gnulib-lib/getopt.c:621
#, c-format
msgid "%s: invalid option -- '%c'\n"
msgstr "%s: geçersiz seçenek -- '%c'\n"

#: gnulib-lib/getopt.c:636 gnulib-lib/getopt.c:682
#, c-format
msgid "%s: option requires an argument -- '%c'\n"
msgstr "%s: seçenek bir bağımsız değişken gerektiriyor -- '%c'\n"

#: gnulib-lib/xmalloc.c:38
#, c-format
msgid "memory exhausted"
msgstr "bellek tükendi"

#: src/envsubst.c:110 src/gettext.c:135 src/ngettext.c:124
#, c-format, no-wrap
msgid ""
"Copyright (C) %s Free Software Foundation, Inc.\n"
"License GPLv3+: GNU GPL version 3 or later <%s>\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
msgstr ""
"Telif Hakkı (C) %s Özgür Yazılım Vakfı Inc.\n"
"Lisans GPLv3+: GNU GPL sürüm 3 veya sonrası <%s>\n"
"Bu özgür yazılımdır: değiştirip dağıtma özgürlüğüne sahipsiniz.\n"
"Yasaların elverdiği ölçüde HİÇBİR GARANTİSİ yoktur.\n"

#: src/envsubst.c:116 src/gettext.c:141 src/ngettext.c:130
#, c-format
msgid "Written by %s.\n"
msgstr "%s tarafından yazıldı.\n"

#. This is a proper name. See the gettext manual, section Names.
#: src/envsubst.c:116
msgid "Bruno Haible"
msgstr "Bruno Haible"

#: src/envsubst.c:125 src/gettext.c:159 src/ngettext.c:142
#, c-format
msgid "too many arguments"
msgstr "çok fazla argüman"

#: src/envsubst.c:136 src/gettext.c:169 src/ngettext.c:154
#, c-format
msgid "missing arguments"
msgstr "argümanlar eksik"

#: src/envsubst.c:174 src/gettext.c:246 src/ngettext.c:211
#, c-format
msgid "Try '%s --help' for more information.\n"
msgstr "Daha fazla bilgi için '%s --help' deneyin.\n"

#: src/envsubst.c:179
#, c-format, no-wrap
msgid "Usage: %s [OPTION] [SHELL-FORMAT]\n"
msgstr "Kullanımı: %s [SEÇENEK] [KABUK-BİÇİMİ]\n"

#: src/envsubst.c:184
#, c-format, no-wrap
msgid "Substitutes the values of environment variables.\n"
msgstr "Ortam değişkenlerinin değerleri ikame edilir.\n"

#: src/envsubst.c:188
#, c-format, no-wrap
msgid "Operation mode:\n"
msgstr "İşlem kipi:\n"

#: src/envsubst.c:191
#, c-format, no-wrap
msgid "  -v, --variables             output the variables occurring in SHELL-FORMAT\n"
msgstr "  -v, --variables             KABUK-BİÇİMİ içindeki değişkenleri çıktılar\n"

#: src/envsubst.c:195 src/gettext.c:275 src/ngettext.c:241
#, c-format, no-wrap
msgid "Informative output:\n"
msgstr "Bilgilendirici çıktı:\n"

#: src/envsubst.c:198
#, c-format, no-wrap
msgid "  -h, --help                  display this help and exit\n"
msgstr "  -h, --help                  bu yardım iletisini gösterir ve çıkar\n"

#: src/envsubst.c:201
#, c-format, no-wrap
msgid "  -V, --version               output version information and exit\n"
msgstr "  -V, --version               Sürüm bilgilerini gösterir ve çıkar\n"

#: src/envsubst.c:205
#, c-format, no-wrap
msgid ""
"In normal operation mode, standard input is copied to standard output,\n"
"with references to environment variables of the form $VARIABLE or ${VARIABLE}\n"
"being replaced with the corresponding values.  If a SHELL-FORMAT is given,\n"
"only those environment variables that are referenced in SHELL-FORMAT are\n"
"substituted; otherwise all environment variables references occurring in\n"
"standard input are substituted.\n"
msgstr ""
"Normal işlem kipinde, $VARIABLE veya ${VARIABLE} biçimindeki ortam\n"
"değişkenleri, karşı düşen değerlerle değiştirilerek standart girdi\n"
"standart çıktıya kopyalanır. Eğer bir KABUK-BİÇİMİ verilmişse, yalnız\n"
"onun içindeki ortam değişkenleri için bu ikame işlemi yapılır.\n"
"Aksi takdirde, standart girdideki ortam değişkenlerinin tümüne bu ikame\n"
"işlemi uygulanır.\n"

#: src/envsubst.c:214
#, c-format, no-wrap
msgid ""
"When --variables is used, standard input is ignored, and the output consists\n"
"of the environment variables that are referenced in SHELL-FORMAT, one per line.\n"
msgstr ""
"--variables seçeneği kullanılmışsa, standart girdi görmezden gelinir ve\n"
"her satırda bir tane olmak üzere KABUK-BİÇİMİ içindeki ortam değişkenleri\n"
"çıktılanır.\n"

#. TRANSLATORS: The first placeholder is the web address of the Savannah
#. project of this package.  The second placeholder is the bug-reporting
#. email address for this package.  Please add _another line_ saying
#. "Report translation bugs to <...>\n" with the address for translation
#. bugs (typically your translation team's web or email address).
#: src/envsubst.c:223 src/gettext.c:299 src/ngettext.c:262
#, c-format
msgid ""
"Report bugs in the bug tracker at <%s>\n"
"or by email to <%s>.\n"
msgstr ""
"Hata izleyicideki hataları <%s>'de bildirin\n"
"veya <%s> adresine e-posta gönderin.\n"

#: src/envsubst.c:451
#, c-format
msgid "error while reading \"%s\""
msgstr "\"%s\" okunurken hata"

#: src/envsubst.c:451
msgid "standard input"
msgstr "standart girdi"

#. This is a proper name. See the gettext manual, section Names.
#: src/gettext.c:141 src/ngettext.c:130
msgid "Ulrich Drepper"
msgstr "Ulrich Drepper"

#: src/gettext.c:251
#, c-format, no-wrap
msgid ""
"Usage: %s [OPTION] [[TEXTDOMAIN] MSGID]\n"
"or:    %s [OPTION] -s [MSGID]...\n"
msgstr ""
"Kullanımı: %s [SEÇENEK] [[PAKET] MSGID]\n"
"ya da:     %s [SEÇENEK] -s [MSGID]...\n"

#: src/gettext.c:257
#, c-format, no-wrap
msgid "Display native language translation of a textual message.\n"
msgstr "Bir iletinin anadile çevirisini gösterir.\n"

#: src/gettext.c:261
#, c-format, no-wrap
msgid "  -d, --domain=TEXTDOMAIN   retrieve translated messages from TEXTDOMAIN\n"
msgstr "  -d, --domain=TEXTDOMAIN   tarafından çevrilmiş mesajları al TEXTDOMAIN\n"

#: src/gettext.c:263 src/ngettext.c:228
#, c-format
msgid "  -c, --context=CONTEXT     specify context for MSGID\n"
msgstr "  -c, --context=CONTEXT     MSGID bağlamını belirtin\n"

#: src/gettext.c:265 src/ngettext.c:230
#, c-format
msgid "  -e                        enable expansion of some escape sequences\n"
msgstr ""
"  -e                        bazı kaçış dizilerinin genişlemesini sağlamak\n"

#: src/gettext.c:267
#, c-format
msgid "  -n                        suppress trailing newline\n"
msgstr "  -n                        izleyen yeni satırı bastır\n"

#: src/gettext.c:269 src/ngettext.c:232
#, c-format
msgid "  -E                        (ignored for compatibility)\n"
msgstr "  -E                        (uyumluluk için göz ardı edildi)\n"

#: src/gettext.c:271
#, c-format
msgid ""
"  [TEXTDOMAIN] MSGID        retrieve translated message corresponding\n"
"                            to MSGID from TEXTDOMAIN\n"
msgstr ""
"  [TEXTDOMAIN] MSGID        karşılık gelen çevrilmiş mesajı almak için\n"
"                            TEXTDOMAIN'ten MSGID'e\n"

#: src/gettext.c:277 src/ngettext.c:243
#, c-format
msgid "  -h, --help                display this help and exit\n"
msgstr "  -h, --help                bu yardım iletisini gösterir ve çıkar\n"

#: src/gettext.c:279 src/ngettext.c:245
#, c-format
msgid "  -V, --version             display version information and exit\n"
msgstr "  -V, --version             sürüm bilgilerini gösterir ve çıkar\n"

#: src/gettext.c:283
#, c-format, no-wrap
msgid ""
"If the TEXTDOMAIN parameter is not given, the domain is determined from the\n"
"environment variable TEXTDOMAIN.  If the message catalog is not found in the\n"
"regular directory, another location can be specified with the environment\n"
"variable TEXTDOMAINDIR.\n"
"When used with the -s option the program behaves like the 'echo' command.\n"
"But it does not simply copy its arguments to stdout.  Instead those messages\n"
"found in the selected catalog are translated.\n"
"Standard search directory: %s\n"
msgstr ""
"TEXTDOMAIN parametresi belirtilmemişse, alan adı TEXTDOMAIN ortam \n"
"değişkeninden alınır. Mesaj kataloğu geçerli dizinde bulunamazsa, farklı\n"
"bir konum TEXTDOMAINDIR ortam değişkeni kullanılarak belirtilebilir.\n"
"-s seçeneği ile kullanıldığında, program 'echo' komutu gibi çalışır. Ancak,\n"
"argümanlarını sadece stdout'a kopyalamaz. Bunun yerine, seçili katalogta\n"
"bulunan mesajlar çevrilir.\n"
"Standart arama dizini: %s\n"

#: src/ngettext.c:216
#, c-format, no-wrap
msgid "Usage: %s [OPTION] [TEXTDOMAIN] MSGID MSGID-PLURAL COUNT\n"
msgstr "Kullanımı: %s [SEÇENEK] [PAKET] MSGID MSGID-PLURAL SAYI\n"

#: src/ngettext.c:221
#, c-format, no-wrap
msgid ""
"Display native language translation of a textual message whose grammatical\n"
"form depends on a number.\n"
msgstr "Bir sayıya bağlı olarak ilgili tekil/çoğul ileti çevirisini gösterir.\n"

#: src/ngettext.c:226
#, c-format, no-wrap
msgid "  -d, --domain=TEXTDOMAIN   retrieve translated message from TEXTDOMAIN\n"
msgstr "  -d, --domain=TEXTDOMAIN   TEXTDOMAIN tarafından tercüme edilmiş mesajı al\n"

#: src/ngettext.c:234
#, c-format
msgid ""
"  [TEXTDOMAIN]              retrieve translated message from TEXTDOMAIN\n"
msgstr ""
"  [TEXTDOMAIN]              TEXTDOMAIN tarafından tercüme edilmiş mesajı al\n"

#: src/ngettext.c:236
#, c-format
msgid ""
"  MSGID MSGID-PLURAL        translate MSGID (singular) / MSGID-PLURAL "
"(plural)\n"
msgstr ""
"  MSGID MSGID-PLURAL        tercüme et MSGID (tekil) / MSGID-PLURAL (çoğul)\n"

#: src/ngettext.c:238
#, c-format
msgid ""
"  COUNT                     choose singular/plural form based on this value\n"
msgstr ""
"  COUNT                     bu değere dayalı tekil/çoğul formları seç\n"

#: src/ngettext.c:249
#, c-format, no-wrap
msgid ""
"If the TEXTDOMAIN parameter is not given, the domain is determined from the\n"
"environment variable TEXTDOMAIN.  If the message catalog is not found in the\n"
"regular directory, another location can be specified with the environment\n"
"variable TEXTDOMAINDIR.\n"
"Standard search directory: %s\n"
msgstr ""
"PAKET parametresi verilmemişse paket ismi TEXTDOMAIN çevre değişkeninden\n"
"saptanır. İleti kataloğu olması gereken dizinde değilse bulunduğu dizin\n"
"TEXTDOMAINDIR çevre değişkeni ile belirtilebilir.\n"
"Standart arama dizini: %s\n"

#~ msgid "Report bugs to <bug-gnu-gettext@gnu.org>.\n"
#~ msgstr ""
#~ "Yazılım hatalarını <bug-gnu-utils@gnu.org> adresine,\n"
#~ "Çeviri hatalarını <gnu-tr@belgeler.org> adresine bildiriniz.\n"

#~ msgid "%s: option '--%s' doesn't allow an argument\n"
#~ msgstr "%s: '--%s' seçeneği bağımsız değişkene izin vermiyor\n"

#~ msgid "%s: unrecognized option '--%s'\n"
#~ msgstr "%s: '--%s' seçeneği bilinmiyor\n"

#~ msgid "%s: option '-W %s' is ambiguous\n"
#~ msgstr "%s: '-W %s' seçeneği belirsiz\n"

#~ msgid "%s: option '-W %s' doesn't allow an argument\n"
#~ msgstr "%s: '-W %s' seçeneği bağımsız bir değişkene izin vermiyor\n"

#~ msgid "%s: option '-W %s' requires an argument\n"
#~ msgstr "%s: '-W %s' seçeneği bağımsız bir değişken gerektiriyor\n"

#~ msgid ""
#~ "  -d, --domain=TEXTDOMAIN   retrieve translated messages from TEXTDOMAIN\n"
#~ "  -e                        enable expansion of some escape sequences\n"
#~ "  -E                        (ignored for compatibility)\n"
#~ "  -h, --help                display this help and exit\n"
#~ "  -n                        suppress trailing newline\n"
#~ "  -V, --version             display version information and exit\n"
#~ "  [TEXTDOMAIN] MSGID        retrieve translated message corresponding\n"
#~ "                            to MSGID from TEXTDOMAIN\n"
#~ msgstr ""
#~ "  -d, --domain=PAKET    ileti çevirisini PAKET.mo dosyasından alır.\n"
#~ "  -e                    önceleme dizilerinin kullanımını etkinleştirir\n"
#~ "  -E                    (uyumluluk için yoksayıldı)\n"
#~ "  -h, --help            bu yardım iletisini gösterir ve çıkar\n"
#~ "  -n                    izleyen satır sonu karakterini yoksayar\n"
#~ "  -V, --version         sürüm bilgilerini gösterir ve çıkar\n"
#~ "  [PAKET] MSGID         PAKET.mo dosyasından MSGID ile ilişkili çeviriyi "
#~ "alır\n"

#~ msgid ""
#~ "  -d, --domain=TEXTDOMAIN   retrieve translated message from TEXTDOMAIN\n"
#~ "  -e                        enable expansion of some escape sequences\n"
#~ "  -E                        (ignored for compatibility)\n"
#~ "  -h, --help                display this help and exit\n"
#~ "  -V, --version             display version information and exit\n"
#~ "  [TEXTDOMAIN]              retrieve translated message from TEXTDOMAIN\n"
#~ "  MSGID MSGID-PLURAL        translate MSGID (singular) / MSGID-PLURAL "
#~ "(plural)\n"
#~ "  COUNT                     choose singular/plural form based on this "
#~ "value\n"
#~ msgstr ""
#~ "  -d, --domain=PAKET   ileti çevirileri yazılım PAKETinden alınır.\n"
#~ "  -e                   öncelem dizilerinin kullanımı etkinleştirilir\n"
#~ "  -E                   (uyumluluk için yoksayıldı)\n"
#~ "  -h, --help           bu yardım iletisini gösterir ve çıkar\n"
#~ "  -V, --version        sürüm bilgilerini gösterir ve çıkar\n"
#~ "  [PAKET]              ileti çevirileri yazılım PAKETinden alınır.\n"
#~ "  MSGID MSGID-PLURAL   MSGID (tekil) / MSGID-PLURAL (çoğul) çevrilir\n"
#~ "  SAYI               SAYIya bağlı olarak tekil/çoğul iletilerden biri "
#~ "seçilir\n"

#~ msgid "%s: illegal option -- %c\n"
#~ msgstr "%s: kuraldışı seçenek -- %c\n"

#~ msgid ""
#~ "Copyright (C) %s Free Software Foundation, Inc.\n"
#~ "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 ""
#~ "Telif Hakkı (C) %s Free Software Foundation, Inc.\n"
#~ "Bu bir serbest yazılımdır; kopyalama koşulları için kaynak koduna "
#~ "bakınız.\n"
#~ "Hiçbir garantisi yoktur; hatta SATILABİLİRLİĞİ veya ŞAHSİ KULLANIMINIZA\n"
#~ "UYGUNLUĞU için bile garanti verilmez.\n"

#~ msgid "invalid argument `%s' for `%s'"
#~ msgstr "argüman `%s' `%s' için geçersiz"

#~ msgid "ambiguous argument `%s' for `%s'"
#~ msgstr "argüman `%s' `%s' için belirsiz"

#~ msgid "Valid arguments are:"
#~ msgstr "Geçerli argümanlar:"

#~ msgid "error while opening \"%s\" for reading"
#~ msgstr "\"%s\" okunmak için açılırken hata"

#~ msgid "cannot open backup file \"%s\" for writing"
#~ msgstr "\"%s\" yedek dosyası yazılmak için açılırken hata"

#~ msgid "error reading \"%s\""
#~ msgstr "\"%s\" okunurken hata"

#~ msgid "error writing \"%s\""
#~ msgstr "\"%s\" yazılırken hata"

#~ msgid "error after reading \"%s\""
#~ msgstr "\"%s\" okunduktan sonra hata"

#~ msgid "%s subprocess failed"
#~ msgstr "%s alt süreci başarısız"

#~ msgid "Java compiler not found, try installing gcj or set $JAVAC"
#~ msgstr ""
#~ "Java derleyici bulunamadı, ya gcj kurun ya da $JAVAC değişkenini "
#~ "belirleyin"

#~ msgid "Java virtual machine not found, try installing gij or set $JAVA"
#~ msgstr ""
#~ "Java sanal makinası bulunamadı,\n"
#~ "ya gij kurun ya da $JAVA değişkenini belirleyin"

#~ msgid "cannot create pipe"
#~ msgstr "veriyolu oluşturulamıyor"

#~ msgid "%s subprocess"
#~ msgstr "%s alt süreci"

#~ msgid "%s subprocess got fatal signal %d"
#~ msgstr "%s alt süreci ölümcül sinyal %d aldı"

#~ msgid "number of format specifications in 'msgid' and '%s' does not match"
#~ msgstr "`msgid' ve '%s' girdilerindeki biçem belirteçleri farklı sayıda"

#~ msgid ""
#~ "format specifications in 'msgid' and '%s' for argument %u are not the same"
#~ msgstr ""
#~ "`msgid' ve '%s' girdilerindeki biçem belirteçleri %u için aynı değil"

#~ msgid ""
#~ "a format specification for argument %u, as in '%s', doesn't exist in "
#~ "'msgid'"
#~ msgstr ""
#~ "'%2$s' içindeki %1$u.argüman için bir biçem belirteci 'msgid' içinde yok"

#~ msgid "a format specification for argument %u doesn't exist in '%s'"
#~ msgstr "%u. argüman için '%s' içinde bir biçem belirteci yok"

#~ msgid ""
#~ "a format specification for argument {%u}, as in '%s', doesn't exist in "
#~ "'msgid'"
#~ msgstr ""
#~ "'%2$s' içindeki {%1$u}. argüman için bir biçem belirteci 'msgid' içinde "
#~ "yok"

#~ msgid "a format specification for argument {%u} doesn't exist in '%s'"
#~ msgstr "{%u}.argüman için '%s' içinde bir biçem belirteci yok"

#~ msgid ""
#~ "format specifications in 'msgid' and '%s' for argument {%u} are not the "
#~ "same"
#~ msgstr ""
#~ "`msgid' ve '%s' girdilerindeki biçem belirteçleri {%u} için aynı değil"

#~ msgid "format specifications in 'msgid' and '%s' are not equivalent"
#~ msgstr "`msgid' ve '%s' girdilerindeki biçem belirteçleri aynı değil"

#~ msgid "format specifications in '%s' are not a subset of those in 'msgid'"
#~ msgstr ""
#~ "'%s' içindeki biçem belirteçleri 'msgid' içindekilerin bir alt kümesi "
#~ "değil"

#~ msgid ""
#~ "format specifications in 'msgid' expect a mapping, those in '%s' expect a "
#~ "tuple"
#~ msgstr ""
#~ "`msgid' içindeki biçem belirteçleri ile bir eşlem umulurken '%s' "
#~ "içindekilerle bir işlem umuluyor"

#~ msgid ""
#~ "format specifications in 'msgid' expect a tuple, those in '%s' expect a "
#~ "mapping"
#~ msgstr ""
#~ "`msgid' içindeki biçem belirteçleri ile bir işlem umulurken '%s' "
#~ "içindekilerle bir eşlem umuluyor"

#~ msgid ""
#~ "a format specification for argument '%s', as in '%s', doesn't exist in "
#~ "'msgid'"
#~ msgstr "'%2$s' içinde '%1$s' için 'msgid' içinde bir biçem belirteci yok"

#~ msgid "a format specification for argument '%s' doesn't exist in '%s'"
#~ msgstr "'%s' için '%s' içinde bir biçem belirteci yok"

#~ msgid ""
#~ "format specifications in 'msgid' and '%s' for argument '%s' are not the "
#~ "same"
#~ msgstr "'%2$s' için biçem belirteci 'msgid' ve '%1$s' içinde aynı değil"

#~ msgid "Usage: %s [OPTION]\n"
#~ msgstr "Kullanımı: %s [SEÇENEK]\n"

#~ msgid "Print the machine's hostname.\n"
#~ msgstr "Makina ismini gösterir.\n"

#~ msgid ""
#~ "Output format:\n"
#~ "  -s, --short           short host name\n"
#~ "  -f, --fqdn, --long    long host name, includes fully qualified domain "
#~ "name,\n"
#~ "                          and aliases\n"
#~ "  -i, --ip-address      addresses for the hostname\n"
#~ msgstr ""
#~ "Çıktı biçemi:\n"
#~ "  -s, --short                 kısa makina ismi\n"
#~ "  -f, --fqdn, --long          uzun makina ismi, alan ismini ve rümuzları "
#~ "da\n"
#~ "                              içerir\n"
#~ "  -i, --ip-address            makinanın IP adresi\n"

#~ msgid "could not get host name"
#~ msgstr "makina ismi alınamadı"

#~ msgid "at most one input file allowed"
#~ msgstr "en fazla bir girdi dosyasına izin var"

#~ msgid "%s and %s are mutually exclusive"
#~ msgstr "%s ile %s bağdaşmıyor"

#~ msgid "Usage: %s [OPTION] [INPUTFILE]\n"
#~ msgstr "Kullanımı: %s [SEÇENEK] [GİRDİDOSYASI]\n"

#~ msgid ""
#~ "Filters the messages of a translation catalog according to their "
#~ "attributes,\n"
#~ "and manipulates the attributes.\n"
#~ msgstr ""
#~ "Çeviri kataloğundaki iletileri belirtilen özelliklere göre süzer,\n"
#~ "ve özellikleri uygular.\n"

#~ msgid ""
#~ "Mandatory arguments to long options are mandatory for short options too.\n"
#~ msgstr ""
#~ "Uzun seçeneklerdeki zorunlu argümanlar kısa seçenekler için de "
#~ "zorunludur.\n"

#~ msgid ""
#~ "Input file location:\n"
#~ "  INPUTFILE                   input PO file\n"
#~ "  -D, --directory=DIRECTORY   add DIRECTORY to list for input files "
#~ "search\n"
#~ "If no input file is given or if it is -, standard input is read.\n"
#~ msgstr ""
#~ "Girdi dosyası konumu:\n"
#~ "  GİRDİDOSYASI                PO girdi dosyası\n"
#~ "  -D, --directory=DİZİN       Girdi dosyalarının arama yoluna DİZİNi "
#~ "ekler\n"
#~ "Girdi dosyası verilmemişse ya da yerine - verilmişse standart girdi "
#~ "okunur.\n"

#~ msgid ""
#~ "Output file location:\n"
#~ "  -o, --output-file=FILE      write output to specified file\n"
#~ "The results are written to standard output if no output file is "
#~ "specified\n"
#~ "or if it is -.\n"
#~ msgstr ""
#~ "Çıktı dosyası konumu:\n"
#~ "  -o, --output-file=DOSYA     Çıktıyı DOSYAya yazar\n"
#~ "Çıktı dosyası verilmemişse ya da yerine - verilmişse sonuçlar standart\n"
#~ "çıktıya yazılır.\n"

#~ msgid ""
#~ "Message selection:\n"
#~ "      --translated            keep translated, remove untranslated "
#~ "messages\n"
#~ "      --untranslated          keep untranslated, remove translated "
#~ "messages\n"
#~ "      --no-fuzzy              remove 'fuzzy' marked messages\n"
#~ "      --only-fuzzy            keep 'fuzzy' marked messages\n"
#~ "      --no-obsolete           remove obsolete #~ messages\n"
#~ "      --only-obsolete         keep obsolete #~ messages\n"
#~ msgstr ""
#~ "İleti seçimi:\n"
#~ "      --translated            çevrilenler tutulur, çevrilmeyenler "
#~ "silinir.\n"
#~ "      --untranslated          çevrilmeyenler tutulur, çevrilenler "
#~ "silinir.\n"
#~ "      --no-fuzzy              'fuzzy' imli iletiler silinir.\n"
#~ "      --only-fuzzy            'fuzzy' imli iletiler tutulur.\n"
#~ "      --no-obsolete           eski #~ iletileri silinir.\n"
#~ "      --only-obsolete         eski #~ iletileri tutulur.\n"

#~ msgid ""
#~ "Attribute manipulation:\n"
#~ "      --set-fuzzy             set all messages 'fuzzy'\n"
#~ "      --clear-fuzzy           set all messages non-'fuzzy'\n"
#~ "      --set-obsolete          set all messages obsolete\n"
#~ "      --clear-obsolete        set all messages non-obsolete\n"
#~ "      --fuzzy                 synonym for --only-fuzzy --clear-fuzzy\n"
#~ "      --obsolete              synonym for --only-obsolete --clear-"
#~ "obsolete\n"
#~ msgstr ""
#~ "Özellik uygulaması:\n"
#~ "      --set-fuzzy             tüm iletilere 'fuzzy' uygular\n"
#~ "      --clear-fuzzy           tüm fuzzy imlilerden 'fuzzy' imini "
#~ "kaldırır\n"
#~ "      --set-obsolete          tüm iletileri eski olarak imler\n"
#~ "      --clear-obsolete        tüm eski imli iletilerden eski imini "
#~ "kaldırır\n"
#~ "      --fuzzy                 --only-fuzzy --clear-fuzzy için kısaltma\n"
#~ "      --obsolete              --only-obsolete --clear-obsolete için "
#~ "kısaltma\n"

#~ msgid ""
#~ "Output details:\n"
#~ "  -e, --no-escape             do not use C escapes in output (default)\n"
#~ "  -E, --escape                use C escapes in output, no extended chars\n"
#~ "      --force-po              write PO file even if empty\n"
#~ "  -i, --indent                write the .po file using indented style\n"
#~ "      --no-location           do not write '#: filename:line' lines\n"
#~ "  -n, --add-location          generate '#: filename:line' lines "
#~ "(default)\n"
#~ "      --strict                write out strict Uniforum conforming .po "
#~ "file\n"
#~ "  -w, --width=NUMBER          set output page width\n"
#~ "      --no-wrap               do not break long message lines, longer "
#~ "than\n"
#~ "                              the output page width, into several lines\n"
#~ "  -s, --sort-output           generate sorted output\n"
#~ "  -F, --sort-by-file          sort output by file location\n"
#~ msgstr ""
#~ "Çıktı ayrıntıları:\n"
#~ "  -e, --no-escape             C öncelemleri çıktıda kullanılmaz "
#~ "(öntanımlı)\n"
#~ "  -E, --escape                C öncelemleri çıktıda kullanılır\n"
#~ "      --force-po              boş olsa bile PO dosyasını yazar\n"
#~ "  -i, --indent                satırbaşı girintili çıktı biçemi\n"
#~ "      --no-location           '#: dosyaismi:satır' başlıkları yazılmaz\n"
#~ "      --add-location          '#: dosyaismi:satır' başlıkları yazılır\n"
#~ "                              (öntanımlı)\n"
#~ "      --strict                Uniforum kipini etkinleştirir\n"
#~ "  -w, --width=SAYI            sayfa genişliği SAYIya ayarlanır\n"
#~ "      --no-wrap               sayfa genişliğine sığmayan satırların "
#~ "taşan\n"
#~ "                              kısmı bir alt satıra indirilmez\n"
#~ "  -s, --sort-output           çıktıyı sıralı üretir\n"
#~ "  -F, --sort-by-file          çıktıyı dosya konumuna göre sıralar\n"

#~ msgid "impossible selection criteria specified (%d < n < %d)"
#~ msgstr "belirtilen seçim kriteri mümkün değil (%d < n < %d)"

#~ msgid "Usage: %s [OPTION] [INPUTFILE]...\n"
#~ msgstr "Kullanımı: %s [SEÇENEK] [GİRDİDOSYASI]...\n"

#~ msgid ""
#~ "Concatenates and merges the specified PO files.\n"
#~ "Find messages which are common to two or more of the specified PO files.\n"
#~ "By using the --more-than option, greater commonality may be requested\n"
#~ "before messages are printed.  Conversely, the --less-than option may be\n"
#~ "used to specify less commonality before messages are printed (i.e.\n"
#~ "--less-than=2 will only print the unique messages).  Translations,\n"
#~ "comments and extract comments will be cumulated, except that if --use-"
#~ "first\n"
#~ "is specified, they will be taken from the first PO file to define them.\n"
#~ "File positions from all PO files will be cumulated.\n"
#~ msgstr ""
#~ "Belirtilen PO dosyalarını birleştirir ve katıştırır.\n"
#~ "Belirtilen PO dosyalarının iki veya daha fazlasında ortak olan iletileri\n"
#~ "bulur. --more-than seçeneği kullanılarak, iletiler yazılmadan önce,\n"
#~ "dosyalarda ortak olan iletilerin belirtilen miktardan fazla olanları "
#~ "seçilir.\n"
#~ "Tersine olarak --less-than seçeneği kullanılarak, iletiler yazılmadan "
#~ "önce,\n"
#~ "dosyalarda ortak olan iletilerin belirtilen miktardan az olanları "
#~ "seçilir.\n"
#~ "(Örneğin --less-than=2 ile tek başına-ortak olmayan iletiler basılır.)\n"
#~ "--use-first seçeneği belirtilmediği takdirde, yorumlar ve çıkarma "
#~ "yorumları\n"
#~ "korunur, belirtildiğinde bunlar ilk PO dosyasında belirtildiği şekliyle\n"
#~ "alınır.\n"

#~ msgid ""
#~ "Input file location:\n"
#~ "  INPUTFILE ...                  input files\n"
#~ "  -f, --files-from=FILE          get list of input files from FILE\n"
#~ "  -D, --directory=DIRECTORY      add DIRECTORY to list for input files "
#~ "search\n"
#~ "If input file is -, standard input is read.\n"
#~ msgstr ""
#~ "Girdi dosyası konumu:\n"
#~ "  GİRDİDOSYASI ...            girdi dosyaları\n"
#~ "  -f, --files-from=DOSYA      girdi dosyalarının listesi DOSYAdan alınır\n"
#~ "  -D, --directory=DİZİN       girdi dosyalarının arama yoluna DİZİN "
#~ "eklenir\n"
#~ "Girdi dosyası - ise standart girdi okunur.\n"

#~ msgid ""
#~ "Output file location:\n"
#~ "  -o, --output-file=FILE         write output to specified file\n"
#~ "The results are written to standard output if no output file is "
#~ "specified\n"
#~ "or if it is -.\n"
#~ msgstr ""
#~ "Çıktı dosyası konumu:\n"
#~ "  -o, --output-file=DOSYA     çıktı DOSYAya yazılır\n"
#~ "Çıktı dosyası verilmezse ya da - verilirse sonuçlar standart çıktıya "
#~ "yazılır.\n"

#~ msgid ""
#~ "Message selection:\n"
#~ "  -<, --less-than=NUMBER         print messages with less than this many\n"
#~ "                                 definitions, defaults to infinite if "
#~ "not\n"
#~ "                                 set\n"
#~ "  ->, --more-than=NUMBER         print messages with more than this many\n"
#~ "                                 definitions, defaults to 0 if not set\n"
#~ "  -u, --unique                   shorthand for --less-than=2, requests\n"
#~ "                                 that only unique messages be printed\n"
#~ msgstr ""
#~ "İleti seçimi:\n"
#~ "  -<, --less-than=SAYI        çok sayıda tanımlanmış iletiler arasında\n"
#~ "                              SAYI dan az tanımlanmış iletileri "
#~ "gösterir,\n"
#~ "                              belirtilmezse öntanımlı değer sonsuz "
#~ "kullanılır\n"
#~ "  ->, --more-than=SAYI        çok sayıda tanımlanmış iletiler arasında\n"
#~ "                              SAYI dan fazla tanımlanmış iletileri "
#~ "gösterir,\n"
#~ "                              belirtilmezse öntanımlı değer 1 kullanılır\n"
#~ "  -u, --unique                --less-than=2 için kısaltma, sadece tek "
#~ "olan\n"
#~ "                              iletiler gösterilir\n"

#~ msgid ""
#~ "Output details:\n"
#~ "  -t, --to-code=NAME             encoding for output\n"
#~ "      --use-first                use first available translation for "
#~ "each\n"
#~ "                                 message, don't merge several "
#~ "translations\n"
#~ "  -e, --no-escape                do not use C escapes in output "
#~ "(default)\n"
#~ "  -E, --escape                   use C escapes in output, no extended "
#~ "chars\n"
#~ "      --force-po                 write PO file even if empty\n"
#~ "  -i, --indent                   write the .po file using indented style\n"
#~ "      --no-location              do not write '#: filename:line' lines\n"
#~ "  -n, --add-location             generate '#: filename:line' lines "
#~ "(default)\n"
#~ "      --strict                   write out strict Uniforum conforming .po "
#~ "file\n"
#~ "  -w, --width=NUMBER             set output page width\n"
#~ "      --no-wrap                  do not break long message lines, longer "
#~ "than\n"
#~ "                                 the output page width, into several "
#~ "lines\n"
#~ "  -s, --sort-output              generate sorted output\n"
#~ "  -F, --sort-by-file             sort output by file location\n"
#~ msgstr ""
#~ "Çıktı ayrıntıları:\n"
#~ "  -t, --to-code=İSİM          çıktı için kodlama belirtilir\n"
#~ "      --use-first             çok sayıda çeviri arasından sadece ilk "
#~ "çeviriyi\n"
#~ "                              kullanır\n"
#~ "  -e, --no-escape             C öncelemleri çıktıda kullanılmaz "
#~ "(öntanımlı)\n"
#~ "  -E, --escape                C öncelemleri çıktıda kullanılır\n"
#~ "      --force-po              boş olsa bile PO dosyasını yazar\n"
#~ "  -i, --indent                satırbaşı girintili çıktı biçemi\n"
#~ "      --no-location           '#: dosyaismi:satır' başlıkları yazılmaz\n"
#~ "      --add-location          '#: dosyaismi:satır' başlıkları yazılır\n"
#~ "                              (öntanımlı)\n"
#~ "      --strict                Uniforum kipini etkinleştirir\n"
#~ "  -w, --width=SAYI            sayfa genişliği SAYIya ayarlanır\n"
#~ "      --no-wrap               sayfa genişliğine sığmayan satırların "
#~ "taşan\n"
#~ "                              kısmı bir alt satıra indirilmez\n"
#~ "  -s, --sort-output           çıktıyı sıralı üretir\n"
#~ "  -F, --sort-by-file          çıktıyı dosya konumuna göre sıralar\n"

#~ msgid ""
#~ "Informative output:\n"
#~ "  -h, --help                     display this help and exit\n"
#~ "  -V, --version                  output version information and exit\n"
#~ msgstr ""
#~ "Bilgilendirme seçenekleri:\n"
#~ "  -h, --help                  Bu yardımı gösterir ve çıkar\n"
#~ "  -V, --version               Sürüm bilgilerini gösterir ve çıkar\n"

#~ msgid "no input files given"
#~ msgstr "hiçbir girdi dosyası verilmemiş"

#~ msgid "exactly 2 input files required"
#~ msgstr "tam olarak 2 girdi dosyası gerekli"

#~ msgid "Usage: %s [OPTION] def.po ref.pot\n"
#~ msgstr "Kullanımı: %s [SEÇENEK] def.po ref.pot\n"

#~ msgid ""
#~ "Compare two Uniforum style .po files to check that both contain the same\n"
#~ "set of msgid strings.  The def.po file is an existing PO file with the\n"
#~ "translations.  The ref.pot file is the last created PO file, or a PO "
#~ "Template\n"
#~ "file (generally created by xgettext).  This is useful for checking that\n"
#~ "you have translated each and every message in your program.  Where an "
#~ "exact\n"
#~ "match cannot be found, fuzzy matching is used to produce better "
#~ "diagnostics.\n"
#~ msgstr ""
#~ "Aynı msgid dizgelerini içeren iki .po dosyasını karşılaştırır.\n"
#~ "def.po dosyası eski çevirileri içeren mevcut PO dosyasıdır.\n"
#~ "ref.pot dosyası ise yeni POT dosyasıdır. Bu, programınızdaki her iletiyi\n"
#~ "ve çevirisini kontrol etmek için kullanışlıdır. Zorunlu eşleşme "
#~ "bulunamazsa,\n"
#~ "belirsiz (fuzzy) eşleştirme yapılır.\n"

#~ msgid ""
#~ "Input file location:\n"
#~ "  def.po                      translations\n"
#~ "  ref.pot                     references to the sources\n"
#~ "  -D, --directory=DIRECTORY   add DIRECTORY to list for input files "
#~ "search\n"
#~ msgstr ""
#~ "Girdi dosyası konumu:\n"
#~ "  def.po                      çevirilerin bulunduğu dosya\n"
#~ "  ref.pot                     çeviri dosyasına eklenecek girdilerin "
#~ "bulunduğu\n"
#~ "                              dosya\n"
#~ "  -D, --directory=DİZİN       girdi dosyaları arama yoluna eklenecek "
#~ "DİZİN\n"

#~ msgid ""
#~ "Operation modifiers:\n"
#~ "  -m, --multi-domain          apply ref.pot to each of the domains in def."
#~ "po\n"
#~ msgstr ""
#~ "İşlem seçenekleri:\n"
#~ "  -m, --multi-domain          ref.pot'u tüm def.po dosyalarına uygular\n"

#~ msgid "this message is used but not defined..."
#~ msgstr "bu ileti kullanıldı ama tanımlı değil..."

#~ msgid "...but this definition is similar"
#~ msgstr "...ama bu tanımlama benzer"

#~ msgid "this message is used but not defined in %s"
#~ msgstr "bu ileti kullanıldı ama %s'de tanımlı değil"

#~ msgid "warning: this message is not used"
#~ msgstr "uyarı: bu ileti kullanılmamış"

#~ msgid "found %d fatal error"
#~ msgid_plural "found %d fatal errors"
#~ msgstr[0] "%d ölümcül hata bulundu"
#~ msgstr[1] "%d ölümcül hata bulundu"

#~ msgid "duplicate message definition"
#~ msgstr "ileti iki defa tanımlanmış"

#~ msgid "...this is the location of the first definition"
#~ msgstr "...bu ilk tanımlamanın konumu"

#~ msgid "at least two files must be specified"
#~ msgstr "en az iki dosya belirtilmelidir"

#~ msgid ""
#~ "Find messages which are common to two or more of the specified PO files.\n"
#~ "By using the --more-than option, greater commonality may be requested\n"
#~ "before messages are printed.  Conversely, the --less-than option may be\n"
#~ "used to specify less commonality before messages are printed (i.e.\n"
#~ "--less-than=2 will only print the unique messages).  Translations,\n"
#~ "comments and extract comments will be preserved, but only from the first\n"
#~ "PO file to define them.  File positions from all PO files will be\n"
#~ "cumulated.\n"
#~ msgstr ""
#~ "Belirtilen PO dosyalarının iki veya daha fazlasında ortak olan iletileri\n"
#~ "bulur. --more-than seçeneği kullanılarak, iletiler yazılmadan önce,\n"
#~ "dosyalarda ortak olan iletilerin belirtilen miktardan fazla olanları "
#~ "seçilir.\n"
#~ "Tersine olarak --less-than seçeneği kullanılarak, iletiler yazılmadan "
#~ "önce,\n"
#~ "dosyalarda ortak olan iletilerin belirtilen miktardan az olanları "
#~ "seçilir.\n"
#~ "(Örneğin --less-than=2 ile tek başına-ortak olmayan iletiler basılır.)\n"
#~ "Sadece ilk PO dosyasında tanımlandığı şekliyle çeviriler, yorumlar ve \n"
#~ "çıkarma yorumları korunmuş olacaktır. Tüm PO dosyalarındaki dosya "
#~ "konumları\n"
#~ "korunmuş olacaktır.\n"

#~ msgid ""
#~ "Message selection:\n"
#~ "  -<, --less-than=NUMBER         print messages with less than this many\n"
#~ "                                 definitions, defaults to infinite if "
#~ "not\n"
#~ "                                 set\n"
#~ "  ->, --more-than=NUMBER         print messages with more than this many\n"
#~ "                                 definitions, defaults to 1 if not set\n"
#~ "  -u, --unique                   shorthand for --less-than=2, requests\n"
#~ "                                 that only unique messages be printed\n"
#~ msgstr ""
#~ "İleti seçimi:\n"
#~ "  -<, --less-than=SAYI        çok sayıda tanımlanmış iletiler arasında\n"
#~ "                              SAYI dan az tanımlanmış iletileri "
#~ "gösterir,\n"
#~ "                              belirtilmezse öntanımlı değer sonsuz "
#~ "kullanılır\n"
#~ "  ->, --more-than=SAYI        çok sayıda tanımlanmış iletiler arasında\n"
#~ "                              SAYI dan fazla tanımlanmış iletileri "
#~ "gösterir,\n"
#~ "                              belirtilmezse öntanımlı değer 1 kullanılır\n"
#~ "  -u, --unique                --less-than=2 için kısaltma, sadece tek "
#~ "olan\n"
#~ "                              iletiler gösterilir\n"

#~ msgid ""
#~ "Output details:\n"
#~ "  -e, --no-escape                do not use C escapes in output "
#~ "(default)\n"
#~ "  -E, --escape                   use C escapes in output, no extended "
#~ "chars\n"
#~ "      --force-po                 write PO file even if empty\n"
#~ "  -i, --indent                   write the .po file using indented style\n"
#~ "      --no-location              do not write '#: filename:line' lines\n"
#~ "  -n, --add-location             generate '#: filename:line' lines "
#~ "(default)\n"
#~ "      --strict                   write out strict Uniforum conforming .po "
#~ "file\n"
#~ "  -w, --width=NUMBER             set output page width\n"
#~ "      --no-wrap                  do not break long message lines, longer "
#~ "than\n"
#~ "                                 the output page width, into several "
#~ "lines\n"
#~ "  -s, --sort-output              generate sorted output\n"
#~ "  -F, --sort-by-file             sort output by file location\n"
#~ "      --omit-header              don't write header with `msgid \"\"' "
#~ "entry\n"
#~ msgstr ""
#~ "Çıktı ayrıntıları:\n"
#~ "  -e, --no-escape             C öncelemleri çıktıda kullanılmaz "
#~ "(öntanımlı)\n"
#~ "  -E, --escape                C öncelemleri çıktıda kullanılır\n"
#~ "      --force-po              boş olsa bile PO dosyasını yazar\n"
#~ "  -i, --indent                satırbaşı girintili çıktı biçemi\n"
#~ "      --no-location           '#: dosyaismi:satır' başlıkları yazılmaz\n"
#~ "      --add-location          '#: dosyaismi:satır' başlıkları yazılır\n"
#~ "                              (öntanımlı)\n"
#~ "      --strict                Uniforum kipini etkinleştirir\n"
#~ "  -w, --width=SAYI            sayfa genişliği SAYIya ayarlanır\n"
#~ "      --no-wrap               sayfa genişliğine sığmayan satırların "
#~ "taşan\n"
#~ "                              kısmı bir alt satıra indirilmez\n"
#~ "  -s, --sort-output           çıktıyı sıralı üretir\n"
#~ "  -F, --sort-by-file          çıktıyı dosya konumuna göre sıralar\n"
#~ "      --omit-header           `msgid \"\"' şeklindeki başlığı yazmaz\n"

#~ msgid "Converts a translation catalog to a different character encoding.\n"
#~ msgstr "Bir çeviri kataloğunu başka bir karakter kodlamasına dönüştürür.\n"

#~ msgid ""
#~ "Conversion target:\n"
#~ "  -t, --to-code=NAME          encoding for output\n"
#~ "The default encoding is the current locale's encoding.\n"
#~ msgstr ""
#~ "Dönüşüm hedefi:\n"
#~ "  -t, --to-code=İSİM          çıktı için kodlama belirtilir\n"
#~ "Öntanımlı kodlama mevcut yerelin kodlamasıdır.\n"

#~ msgid ""
#~ "Output details:\n"
#~ "  -e, --no-escape             do not use C escapes in output (default)\n"
#~ "  -E, --escape                use C escapes in output, no extended chars\n"
#~ "      --force-po              write PO file even if empty\n"
#~ "  -i, --indent                indented output style\n"
#~ "      --no-location           suppress '#: filename:line' lines\n"
#~ "      --add-location          preserve '#: filename:line' lines "
#~ "(default)\n"
#~ "      --strict                strict Uniforum output style\n"
#~ "  -w, --width=NUMBER          set output page width\n"
#~ "      --no-wrap               do not break long message lines, longer "
#~ "than\n"
#~ "                              the output page width, into several lines\n"
#~ "  -s, --sort-output           generate sorted output\n"
#~ "  -F, --sort-by-file          sort output by file location\n"
#~ msgstr ""
#~ "Çıktı ayrıntıları:\n"
#~ "  -e, --no-escape             C öncelemleri çıktıda kullanılmaz "
#~ "(öntanımlı)\n"
#~ "  -E, --escape                C öncelemleri çıktıda kullanılır\n"
#~ "      --force-po              boş olsa bile PO dosyasını yazar\n"
#~ "  -i, --indent                satırbaşı girintili çıktı biçemi\n"
#~ "      --no-location           '#: dosyaismi:satır' başlıkları yazılmaz\n"
#~ "      --add-location          '#: dosyaismi:satır' başlıkları yazılır\n"
#~ "                              (öntanımlı)\n"
#~ "      --strict                Uniforum kipini etkinleştirir\n"
#~ "  -w, --width=SAYI            sayfa genişliği SAYIya ayarlanır\n"
#~ "      --no-wrap               sayfa genişliğine sığmayan satırların "
#~ "taşan\n"
#~ "                              kısmı bir alt satıra indirilmez\n"
#~ "  -s, --sort-output           çıktıyı sıralı üretir\n"
#~ "  -F, --sort-by-file          çıktıyı dosya konumuna göre sıralar\n"

#~ msgid "no input file given"
#~ msgstr "hiç girdi dosyası verilmemiş"

#~ msgid "exactly one input file required"
#~ msgstr "tam olarak 1 girdi dosyası gerekli"

#~ msgid "Usage: %s [OPTION] INPUTFILE\n"
#~ msgstr "Kullanımı: %s [SEÇENEK] GİRDİDOSYASI\n"

#~ msgid ""
#~ "Creates an English translation catalog.  The input file is the last\n"
#~ "created English PO file, or a PO Template file (generally created by\n"
#~ "xgettext).  Untranslated entries are assigned a translation that is\n"
#~ "identical to the msgid, and are marked fuzzy.\n"
#~ msgstr ""
#~ "Bir İngilizce çeviri kataloğu oluşturur. Girdi dosyası ya son "
#~ "oluşturulan\n"
#~ "İngilizce PO dosyasıdır ya da genellikle xgettext tarafından oluşturulan\n"
#~ "PO Şablon dosyasıdır. Çevirisiz girdilere msgid ile uyuşan bir çeviri\n"
#~ "yerleştirilir ve fuzzy olarak imlenir.\n"

#~ msgid ""
#~ "Input file location:\n"
#~ "  INPUTFILE                   input PO or POT file\n"
#~ "  -D, --directory=DIRECTORY   add DIRECTORY to list for input files "
#~ "search\n"
#~ "If input file is -, standard input is read.\n"
#~ msgstr ""
#~ "Girdi dosyası konumu:\n"
#~ "  GİRDİDOSYASI                PO ya da POT girdi dosyası\n"
#~ "  -D, --directory=DİZİN       Girdi dosyalarının arama yoluna DİZİNi "
#~ "ekler\n"
#~ "Girdi dosyası verilmemişse ya da yerine - verilmişse standart girdi "
#~ "okunur.\n"

#~ msgid "missing command name"
#~ msgstr "komut ismi eksik"

#~ msgid "Usage: %s [OPTION] COMMAND [COMMAND-OPTION]\n"
#~ msgstr "Kullanımı: %s [SEÇENEK] KOMUT [KOMUT-SEÇENEĞİ]\n"

#~ msgid ""
#~ "Applies a command to all translations of a translation catalog.\n"
#~ "The COMMAND can be any program that reads a translation from standard\n"
#~ "input.  It is invoked once for each translation.  Its output becomes\n"
#~ "msgexec's output.  msgexec's return code is the maximum return code\n"
#~ "across all invocations.\n"
#~ msgstr ""
#~ "Bir çeviri kataloğunun tüm çevirilerine bir komut uygular.\n"
#~ "KOMUT çeviriyi standart girdiden okuyabilen herhangi bir uygulama\n"
#~ "olabilir.Her çeviri için bir kere çağrılır. Çıktısı msgexec'in\n"
#~ "çıktısı olarak görünür. msgexec dönüş kodu olarak tüm çağrılardan\n"
#~ "elde edilen en yüksek dönüş kodunu verir.\n"

#~ msgid ""
#~ "A special builtin command called '0' outputs the translation, followed by "
#~ "a\n"
#~ "null byte.  The output of \"msgexec 0\" is suitable as input for \"xargs "
#~ "-0\".\n"
#~ msgstr ""
#~ "'0' özel bir yerleşik komuttur ve bir null bayt ile sonlanan çeviri\n"
#~ "çıktılar.  \"msgexec 0\"ın çıktısı \"xargs -0\"a girdi olarak "
#~ "elverişlidir.\n"

#~ msgid ""
#~ "Input file location:\n"
#~ "  -i, --input=INPUTFILE       input PO file\n"
#~ "  -D, --directory=DIRECTORY   add DIRECTORY to list for input files "
#~ "search\n"
#~ "If no input file is given or if it is -, standard input is read.\n"
#~ msgstr ""
#~ "Girdi dosyası konumu:\n"
#~ "  -i, --input=GİRDİDOSYASI    PO girdi dosyası\n"
#~ "  -D, --directory=DİZİN       Girdi dosyalarının arama yoluna DİZİNi "
#~ "ekler\n"
#~ "Girdi dosyası verilmemişse ya da yerine - verilmişse standart girdi "
#~ "okunur.\n"

#~ msgid "write to stdout failed"
#~ msgstr "standart çıktıya yazılamadı"

#~ msgid "write to %s subprocess failed"
#~ msgstr "%s alt sürecine yazılamadı"

#~ msgid "missing filter name"
#~ msgstr "süzgeç ismi eksik"

#~ msgid "at least one sed script must be specified"
#~ msgstr "en az bir sed betiği belirtilmelidir"

#~ msgid "Usage: %s [OPTION] FILTER [FILTER-OPTION]\n"
#~ msgstr "Kullanımı: %s [SEÇENEK] SÜZGEÇ [SÜZGEÇ-SEÇENEĞİ]\n"

#~ msgid "Applies a filter to all translations of a translation catalog.\n"
#~ msgstr "Bir çeviri kataloğunun tüm çevirilerine bir süzgeç uygular.\n"

#~ msgid ""
#~ "The FILTER can be any program that reads a translation from standard "
#~ "input\n"
#~ "and writes a modified translation to standard output.\n"
#~ msgstr ""
#~ "SÜZGEÇ çeviriyi standart girdiden okuyabilen ve değiştirilmiş çeviriyi\n"
#~ "standart çıktıya yazabilen herhangi bir programdır.\n"

#~ msgid ""
#~ "Useful FILTER-OPTIONs when the FILTER is 'sed':\n"
#~ "  -e, --expression=SCRIPT     add SCRIPT to the commands to be executed\n"
#~ "  -f, --file=SCRIPTFILE       add the contents of SCRIPTFILE to the "
#~ "commands\n"
#~ "                                to be executed\n"
#~ "  -n, --quiet, --silent       suppress automatic printing of pattern "
#~ "space\n"
#~ msgstr ""
#~ "SÜZGEÇ olarak 'sed' kullanıldığında faydalı SÜZGEÇ-SEÇENEKLERİ:\n"
#~ "  -e, --expression=BETİK      çalıştırılacak komutlara BETİĞi ekler\n"
#~ "  -f, --file=BETİKDOSYASI     çalıştırılacak komutlara BETİKDOSYASInın\n"
#~ "                              içeriğini ekler\n"
#~ "  -n, --quiet, --silent       standart çıktı iletilerini engeller\n"

#~ msgid ""
#~ "Output details:\n"
#~ "      --no-escape             do not use C escapes in output (default)\n"
#~ "  -E, --escape                use C escapes in output, no extended chars\n"
#~ "      --force-po              write PO file even if empty\n"
#~ "      --indent                indented output style\n"
#~ "      --keep-header           keep header entry unmodified, don't filter "
#~ "it\n"
#~ "      --no-location           suppress '#: filename:line' lines\n"
#~ "      --add-location          preserve '#: filename:line' lines "
#~ "(default)\n"
#~ "      --strict                strict Uniforum output style\n"
#~ "  -w, --width=NUMBER          set output page width\n"
#~ "      --no-wrap               do not break long message lines, longer "
#~ "than\n"
#~ "                              the output page width, into several lines\n"
#~ "  -s, --sort-output           generate sorted output\n"
#~ "  -F, --sort-by-file          sort output by file location\n"
#~ msgstr ""
#~ "Çıktı ayrıntıları:\n"
#~ "  -e, --no-escape             C öncelemleri çıktıda kullanılmaz "
#~ "(öntanımlı)\n"
#~ "  -E, --escape                C öncelemleri çıktıda kullanılır\n"
#~ "      --force-po              boş olsa bile PO dosyasını yazar\n"
#~ "  -i, --indent                satırbaşı girintili çıktı biçemi\n"
#~ "      --keep-header           başlık değiştirilmez, süzülmez\n"
#~ "      --no-location           '#: dosyaismi:satır' başlıkları yazılmaz\n"
#~ "      --add-location          '#: dosyaismi:satır' başlıkları yazılır\n"
#~ "                              (öntanımlı)\n"
#~ "      --strict                Uniforum kipini etkinleştirir\n"
#~ "  -w, --width=SAYI            sayfa genişliği SAYIya ayarlanır\n"
#~ "      --no-wrap               sayfa genişliğine sığmayan satırların "
#~ "taşan\n"
#~ "                              kısmı bir alt satıra indirilmez\n"
#~ "  -s, --sort-output           çıktıyı sıralı üretir\n"
#~ "  -F, --sort-by-file          çıktıyı dosya konumuna göre sıralar\n"

#~ msgid "cannot set up nonblocking I/O to %s subprocess"
#~ msgstr "%s alt sürecine bloklanmayan G/Ç belirtilemez"

#~ msgid "communication with %s subprocess failed"
#~ msgstr "%s alt süreci ile haberleşilemedi"

#~ msgid "read from %s subprocess failed"
#~ msgstr "%s alt sürecinden okunamadı"

#~ msgid "%s subprocess terminated with exit code %d"
#~ msgstr "%s alt süreci %d çıkış kodu ile sonlandırıldı"

#~ msgid "the argument to %s should be a single punctuation character"
#~ msgstr "%s argümanı bir noktalama işareti olmalıydı"

#~ msgid "%s requires a \"-d directory\" specification"
#~ msgstr "%s bir \"-d dizin\" uygulanmasını gerektiriyor"

#~ msgid "%s requires a \"-l locale\" specification"
#~ msgstr "%s bir \"-l yerel\" belirtilmesini gerektiriyor"

#~ msgid "%s is only valid with %s"
#~ msgstr "%s sadece %s ile geçerlidir"

#~ msgid "%s is only valid with %s or %s"
#~ msgstr "%s sadece %s ya da %s ile geçerlidir"

#~ msgid "%d translated message"
#~ msgid_plural "%d translated messages"
#~ msgstr[0] "%d çevrilmiş ileti"
#~ msgstr[1] "%d çevrilmiş ileti"

#~ msgid ", %d fuzzy translation"
#~ msgid_plural ", %d fuzzy translations"
#~ msgstr[0] ", %d belirsiz çeviri"
#~ msgstr[1] ", %d belirsiz çeviri"

#~ msgid ", %d untranslated message"
#~ msgid_plural ", %d untranslated messages"
#~ msgstr[0] ", %d çevrilmemiş ileti"
#~ msgstr[1] ", %d çevrilmemiş ileti"

#~ msgid "Usage: %s [OPTION] filename.po ...\n"
#~ msgstr "Kullanımı: %s [SEÇENEK] dosyaismi.po ...\n"

#~ msgid ""
#~ "Generate binary message catalog from textual translation description.\n"
#~ msgstr "Çevirilerin bulunduğu dosyadan ikilik ileti kataloğunu üretir.\n"

#~ msgid ""
#~ "Input file location:\n"
#~ "  filename.po ...             input files\n"
#~ "  -D, --directory=DIRECTORY   add DIRECTORY to list for input files "
#~ "search\n"
#~ "If input file is -, standard input is read.\n"
#~ msgstr ""
#~ "Girdi dosyası konumu:\n"
#~ "  dosyaismi.po ...            girdi dosyası\n"
#~ "  -D, --directory=DİZİN       Girdi dosyalarının arama yoluna DİZİNi "
#~ "ekler\n"
#~ "Girdi dosyası verilmemişse ya da yerine - verilmişse standart girdi "
#~ "okunur.\n"

#~ msgid ""
#~ "Operation mode:\n"
#~ "  -j, --java                  Java mode: generate a Java ResourceBundle "
#~ "class\n"
#~ "      --java2                 like --java, and assume Java2 (JDK 1.2 or "
#~ "higher)\n"
#~ "      --tcl                   Tcl mode: generate a tcl/msgcat .msg file\n"
#~ msgstr ""
#~ "İşlem kipi:\n"
#~ "  -j, --java              Java kipi: bir Java ÖzkaynakPaketi sınıfı "
#~ "üretir\n"
#~ "      --java2             --java gibi, ama Java2 (JDK 1.2 ve üstü) kabul "
#~ "eder\n"
#~ "      --tcl               Tcl kipi: bir tcl/msgcat .msg dosyası üretir\n"

#~ msgid ""
#~ "Output file location:\n"
#~ "  -o, --output-file=FILE      write output to specified file\n"
#~ "      --strict                enable strict Uniforum mode\n"
#~ "If output file is -, output is written to standard output.\n"
#~ msgstr ""
#~ "Çıktı dosyası konumu:\n"
#~ "  -o, --output-file=DOSYA     çıktı DOSYAya yazılır\n"
#~ "      --strict                Uniforum kipini etkinleştirir\n"
#~ "Çıktı dosyası verilmemişse ya da yerine - verilmişse standart çıktıya "
#~ "yazılır.\n"

#~ msgid ""
#~ "Output file location in Java mode:\n"
#~ "  -r, --resource=RESOURCE     resource name\n"
#~ "  -l, --locale=LOCALE         locale name, either language or "
#~ "language_COUNTRY\n"
#~ "  -d DIRECTORY                base directory of classes directory "
#~ "hierarchy\n"
#~ "The class name is determined by appending the locale name to the resource "
#~ "name,\n"
#~ "separated with an underscore.  The -d option is mandatory.  The class is\n"
#~ "written under the specified directory.\n"
#~ msgstr ""
#~ "Java kipinde çıktı dosyası konumu:\n"
#~ "  -r, --resource=KAYNAK       özKAYNAK ismi\n"
#~ "  -l, --locale=tr_TR          yerel ismi, dil ya da dil_ÜLKE\n"
#~ "  -d DİZİN                    java sınıflarının bulunduğu ana dizin\n"
#~ "Sınıf ismi, özkaynak ismine yerel isminin bir altçizgi ile eklenmesiyle\n"
#~ "saptanır. Sınıf DİZİNe yazılacağından -d seçeneği zorunludur.\n"

#~ msgid ""
#~ "Output file location in Tcl mode:\n"
#~ "  -l, --locale=LOCALE         locale name, either language or "
#~ "language_COUNTRY\n"
#~ "  -d DIRECTORY                base directory of .msg message catalogs\n"
#~ "The -l and -d options are mandatory.  The .msg file is written in the\n"
#~ "specified directory.\n"
#~ msgstr ""
#~ "Tcl kipinde çıktı dosyası konumu:\n"
#~ "  -l, --locale=YEREL          YEREL ismi, dil ya da dil_ÜLKE\n"
#~ "  -d DİZİN                    .msg ileti kataloglarının ana dizini\n"
#~ ".msg dosyası DİZİNde olacağından -l ve -d seçenekleri zorunludur.\n"

#~ msgid ""
#~ "Input file interpretation:\n"
#~ "  -c, --check                 perform all the checks implied by\n"
#~ "                                --check-format, --check-header, --check-"
#~ "domain\n"
#~ "      --check-format          check language dependent format strings\n"
#~ "      --check-header          verify presence and contents of the header "
#~ "entry\n"
#~ "      --check-domain          check for conflicts between domain "
#~ "directives\n"
#~ "                                and the --output-file option\n"
#~ "  -C, --check-compatibility   check that GNU msgfmt behaves like X/Open "
#~ "msgfmt\n"
#~ "      --check-accelerators[=CHAR]  check presence of keyboard "
#~ "accelerators for\n"
#~ "                                menu items\n"
#~ "  -f, --use-fuzzy             use fuzzy entries in output\n"
#~ msgstr ""
#~ "Girdi dosyası yorumlama:\n"
#~ "  -c, --check                 tüm denetimleri uygular:\n"
#~ "                              --check-format, --check-header, --check-"
#~ "domain\n"
#~ "      --check-format          dile bağımlı biçem dizgelerini denetler\n"
#~ "      --check-header          başlık girdilerinin içeriğini ve "
#~ "uygunluğunu\n"
#~ "                              denetler\n"
#~ "      --check-domain          paket yönergeleri ile --output-file "
#~ "seçeneği\n"
#~ "                              arasındaki çelişkileri denetler\n"
#~ "  -C, --check-compatibility   GNU msgfmt'ın X/Open msgfmt gibi "
#~ "davranmasını\n"
#~ "                              denetler\n"
#~ "      --check-accelerators[=HARF]  menu öğelerindeki tuş kısayollarını\n"
#~ "                                   denetler\n"
#~ "  -f, --use-fuzzy             çıktıda fuzzy girdileri kullanır\n"

#~ msgid ""
#~ "Output details:\n"
#~ "  -a, --alignment=NUMBER      align strings to NUMBER bytes (default: "
#~ "%d)\n"
#~ "      --no-hash               binary file will not include the hash "
#~ "table\n"
#~ msgstr ""
#~ "Çıktı ayrıntıları:\n"
#~ "  -a, --alignment=SAYI        dizgeleri SAYI bayta ayarlar (öntanımlı: "
#~ "%d)\n"
#~ "      --no-hash               ikilik dosya saçılma tablosunu içermeyecek\n"

#~ msgid ""
#~ "Informative output:\n"
#~ "  -h, --help                  display this help and exit\n"
#~ "  -V, --version               output version information and exit\n"
#~ "      --statistics            print statistics about translations\n"
#~ "  -v, --verbose               increase verbosity level\n"
#~ msgstr ""
#~ "Bilgilendirme seçenekleri:\n"
#~ "  -h, --help                  Bu yardımı gösterir ve çıkar\n"
#~ "  -V, --version               Sürüm bilgilerini gösterir ve çıkar\n"
#~ "      --statistics            çeviri istatistiklerini gösterir\n"
#~ "  -v, --verbose               sonuçlar daha ayrıntılı verilir\n"

#~ msgid "plural expression can produce negative values"
#~ msgstr "çoğul ifadeler negatif değerler üretebilir"

#~ msgid ""
#~ "nplurals = %lu but plural expression can produce values as large as %lu"
#~ msgstr "nplurals = %lu ama çoğul ifadeler en çok %lu değer üretebilir"

#~ msgid "plural expression can produce division by zero"
#~ msgstr "çoğul ifade sıfırla bölme hatası üretebilir"

#~ msgid "plural expression can produce integer overflow"
#~ msgstr "çoğul ifade tamsayı taşması üretebilir"

#~ msgid ""
#~ "plural expression can produce arithmetic exceptions, possibly division by "
#~ "zero"
#~ msgstr ""
#~ "çoğul ifade aritmetik hatalar, özellikle de sıfırla bölme hatası "
#~ "üretebilir"

#~ msgid "message catalog has plural form translations..."
#~ msgstr "ileti kataloğu çoğul çeviriler içeriyor"

#~ msgid "...but header entry lacks a \"plural=EXPRESSION\" attribute"
#~ msgstr "...ama başlıkta \"plural=İFADE\" gibi bir şey yok"

#~ msgid "...but header entry lacks a \"nplurals=INTEGER\" attribute"
#~ msgstr "...ama başlıkta \"nplurals=TAMSAYI\" gibi bir şey yok"

#~ msgid "invalid nplurals value"
#~ msgstr "nplurals değeri geçersiz"

#~ msgid "invalid plural expression"
#~ msgstr "plural= ile verilen ifade geçersiz"

#~ msgid "nplurals = %lu..."
#~ msgstr "nplurals = %lu..."

#~ msgid "...but some messages have only one plural form"
#~ msgid_plural "...but some messages have only %lu plural forms"
#~ msgstr[0] "...ama bazı iletiler tek çoğul biçem içeriyor"
#~ msgstr[1] "...ama bazı iletiler sadece %lu çoğul biçem içeriyor"

#~ msgid "...but some messages have one plural form"
#~ msgid_plural "...but some messages have %lu plural forms"
#~ msgstr[0] "...ama bazı iletiler tek çoğul biçem içeriyor"
#~ msgstr[1] "...ama bazı iletiler %lu çoğul biçem içeriyor"

#~ msgid "Try using the following, valid for %s:\n"
#~ msgstr "Aşağıdakiler %s için geçerli mi bakılacak:\n"

#~ msgid ""
#~ "message catalog has plural form translations, but lacks a header entry "
#~ "with \"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\""
#~ msgstr ""
#~ "ileti kataloğu çoğul çeviriler içermesine rağmen başlıkta\n"
#~ "\"Plural-Forms: nplurals=TAMSAYI; plural=İFADE;\" gibi bir şey yok."

#~ msgid "`msgid' and `msgid_plural' entries do not both begin with '\\n'"
#~ msgstr ""
#~ "`msgid' ve `msgid_plural' girdilerinin her ikisi de '\\n' ile başlamıyor"

#~ msgid "`msgid' and `msgstr[%u]' entries do not both begin with '\\n'"
#~ msgstr ""
#~ "`msgid' ve `msgstr[%u]' girdilerinin her ikisi de '\\n' ile başlamıyor"

#~ msgid "`msgid' and `msgstr' entries do not both begin with '\\n'"
#~ msgstr "`msgid' ve `msgstr' girdilerinin her ikisi de '\\n' ile başlamıyor"

#~ msgid "`msgid' and `msgid_plural' entries do not both end with '\\n'"
#~ msgstr ""
#~ "`msgid' ve `msgid_plural' girdilerinin her ikisi de '\\n' ile bitmiyor"

#~ msgid "`msgid' and `msgstr[%u]' entries do not both end with '\\n'"
#~ msgstr ""
#~ "`msgid' ve `msgstr[%u]' girdilerinin her ikisi de '\\n' ile bitmiyor"

#~ msgid "`msgid' and `msgstr' entries do not both end with '\\n'"
#~ msgstr "`msgid' ve `msgstr' girdilerinin her ikisi de '\\n' ile bitmiyor"

#~ msgid "plural handling is a GNU gettext extension"
#~ msgstr "çoğul biçemler bir GNU gettext özelliğidir"

#~ msgid "'%s' is not a valid %s format string, unlike 'msgid'"
#~ msgstr "'%s', 'msgid' gibi geçerli bir %s biçem dizgesi değil"

#~ msgid "msgstr lacks the keyboard accelerator mark '%c'"
#~ msgstr "içinde '%c' tuş kısayolu eksik"

#~ msgid "msgstr has too many keyboard accelerator marks '%c'"
#~ msgstr "çok fazla '%c' tuş kısayolu içeriyor"

#~ msgid "headerfield `%s' missing in header\n"
#~ msgstr "başlıkta `%s' başlık alanı yok\n"

#~ msgid "header field `%s' should start at beginning of line\n"
#~ msgstr "`%s' başlık alanı satırın başında olmalıydı\n"

#~ msgid "some header fields still have the initial default value\n"
#~ msgstr "bazı başlık alanları hala öntanımlı ilk değere sahip\n"

#~ msgid "field `%s' still has initial default value\n"
#~ msgstr "`%s' başlık alanı hala öntanımlı ilk değere sahip\n"

#~ msgid "warning: PO file header missing or invalid\n"
#~ msgstr "uyarı: PO dosya başlığı ya yok ya da geçersiz\n"

#~ msgid "warning: charset conversion will not work\n"
#~ msgstr ""
#~ "uyarı: Kullanıcının karakter kümesinde ileti dönüşümü yapılamayacak.\n"

#~ msgid "warning: PO file header fuzzy\n"
#~ msgstr "uyarı: PO dosya başlığı fuzzy\n"

#~ msgid "warning: older versions of msgfmt will give an error on this\n"
#~ msgstr "uyarı: msgfmt'ın eski sürümleri bu dosyada hata verecektir.\n"

#~ msgid "domain name \"%s\" not suitable as file name"
#~ msgstr "dosya ismi olarak paket ismi \"%s\" uygun değil"

#~ msgid "domain name \"%s\" not suitable as file name: will use prefix"
#~ msgstr "dosya ismi olarak paket ismi \"%s\" uygun değil: önek kullanılacak"

#~ msgid "`domain %s' directive ignored"
#~ msgstr "`domain %s' yönergesi yoksayıldı"

#~ msgid "empty `msgstr' entry ignored"
#~ msgstr "boş `msgstr' girdisi yoksayıldı"

#~ msgid "fuzzy `msgstr' entry ignored"
#~ msgstr "fuzzy `msgstr' girdisi yoksayıldı"

#~ msgid "%s: warning: source file contains fuzzy translation"
#~ msgstr "%s: uyarı: kaynak dosya fuzzy çeviriler içeriyor"

#~ msgid "option '%c' cannot be used before 'K' or 'T' has been specified"
#~ msgstr "'%c' seçeneği 'K' ya da 'T' belirtilmeden önce kullanılamaz"

#~ msgid ""
#~ "Extracts all messages of a translation catalog that match a given "
#~ "pattern\n"
#~ "or belong to some given source files.\n"
#~ msgstr ""
#~ "Verilen bir kalıp ile uyuşan ya da verilen kaynak dosyalarına ait olan\n"
#~ "bir çeviri kataloğunun tüm iletilerini çıkarır.\n"

#~ msgid ""
#~ "Message selection:\n"
#~ "  [-N SOURCEFILE]... [-M DOMAINNAME]...\n"
#~ "  [-K MSGID-PATTERN] [-T MSGSTR-PATTERN] [-C COMMENT-PATTERN]\n"
#~ "A message is selected if it comes from one of the specified source "
#~ "files,\n"
#~ "or if it comes from one of the specified domains,\n"
#~ "or if -K is given and its key (msgid or msgid_plural) matches MSGID-"
#~ "PATTERN,\n"
#~ "or if -T is given and its translation (msgstr) matches MSGSTR-PATTERN,\n"
#~ "or if -C is given and the translator's comment matches COMMENT-PATTERN.\n"
#~ "\n"
#~ "When more than one selection criterion is specified, the set of selected\n"
#~ "messages is the union of the selected messages of each criterion.\n"
#~ "\n"
#~ "MSGID-PATTERN or MSGSTR-PATTERN syntax:\n"
#~ "  [-E | -F] [-e PATTERN | -f FILE]...\n"
#~ "PATTERNs are basic regular expressions by default, or extended regular\n"
#~ "expressions if -E is given, or fixed strings if -F is given.\n"
#~ "\n"
#~ "  -N, --location=SOURCEFILE   select messages extracted from SOURCEFILE\n"
#~ "  -M, --domain=DOMAINNAME     select messages belonging to domain "
#~ "DOMAINNAME\n"
#~ "  -K, --msgid                 start of patterns for the msgid\n"
#~ "  -T, --msgstr                start of patterns for the msgstr\n"
#~ "  -E, --extended-regexp       PATTERN is an extended regular expression\n"
#~ "  -F, --fixed-strings         PATTERN is a set of newline-separated "
#~ "strings\n"
#~ "  -e, --regexp=PATTERN        use PATTERN as a regular expression\n"
#~ "  -f, --file=FILE             obtain PATTERN from FILE\n"
#~ "  -i, --ignore-case           ignore case distinctions\n"
#~ msgstr ""
#~ "İleti seçimi:\n"
#~ "  [-N KAYNAKDOSYA]... [-M PAKETİSMİ]...\n"
#~ "  [-K MSGID-KALIBI] [-T MSGSTR-KALIBI] [-C AÇIKLAMA-KALIBI]\n"
#~ "İletiler, -N ile belirtilen kaynak dosyalarının birinden, -M ile "
#~ "belirtilen\n"
#~ "bir paketten, -K ile belirtilen MSGID-KALIBI ile eşleşen msgid veya\n"
#~ "msgid_plural iletilerinden, -T ile belirtilen MSGSTR-KALIBI ile eşleşen\n"
#~ "msgstr çevirilerine göre ya da -C ile belirtilen AÇIKLAMA-KALIBI ile "
#~ "eşleşen\n"
#~ "çevirmenin açıklamalarına göre seçilebilir.\n"
#~ "\n"
#~ "Birden fazla seçim kriteri belirtilmişse seçilen ileti kümesi, her\n"
#~ "kriterden seçilmiş iletilerin birleşimidir.\n"
#~ "\n"
#~ "MSGID-KALIBI ve MSGSTR-KALIBI sözdizimi:\n"
#~ "  [-E | -F] [-e KALIP | -f DOSYA]...\n"
#~ "KALIPlar öntanımlı olarak düzenli ifadelerdir. -E ile belirtilmişlerse\n"
#~ "gelişmiş düzenli ifadeler, -F ile belirtilmişlerse sabit dizgelerdir.\n"
#~ "\n"
#~ "  -N, --location=DOSYA        kaynakDOSYAsından çıkartılan dosyalar "
#~ "seçilir\n"
#~ "  -M, --domain=PAKET          PAKETe ait iletiler seçilir\n"
#~ "  -K, --msgid                 msgid için kalıpların başlangıcı\n"
#~ "  -T, --msgstr                msgstr için kalıpların başlangıcı\n"
#~ "  -E, --extended-regexp       KALIP bir genişletilmiş düzenli ifadedir\n"
#~ "  -F, --fixed-strings         KALIP satırsonu ayraçlı dizgeler kümesidir\n"
#~ "  -e, --regexp=KALIP          KALIP bir düzenli ifade olarak kullanılır\n"
#~ "  -f, --file=DOSYA            KALIP, DOSYAdan sağlanır\n"
#~ "  -i, --ignore-case           harf büyüklükleri fark olarak algılanmaz\n"

#~ msgid ""
#~ "Output details:\n"
#~ "      --no-escape             do not use C escapes in output (default)\n"
#~ "      --escape                use C escapes in output, no extended chars\n"
#~ "      --force-po              write PO file even if empty\n"
#~ "      --indent                indented output style\n"
#~ "      --no-location           suppress '#: filename:line' lines\n"
#~ "      --add-location          preserve '#: filename:line' lines "
#~ "(default)\n"
#~ "      --strict                strict Uniforum output style\n"
#~ "  -w, --width=NUMBER          set output page width\n"
#~ "      --no-wrap               do not break long message lines, longer "
#~ "than\n"
#~ "                              the output page width, into several lines\n"
#~ "      --sort-output           generate sorted output\n"
#~ "      --sort-by-file          sort output by file location\n"
#~ msgstr ""
#~ "Çıktı ayrıntıları:\n"
#~ "  -e, --no-escape             C öncelemleri çıktıda kullanılmaz "
#~ "(öntanımlı)\n"
#~ "  -E, --escape                C öncelemleri çıktıda kullanılır\n"
#~ "      --force-po              boş olsa bile PO dosyasını yazar\n"
#~ "  -i, --indent                satırbaşı girintili çıktı biçemi\n"
#~ "      --no-location           '#: dosyaismi:satır' başlıkları yazılmaz\n"
#~ "      --add-location          '#: dosyaismi:satır' başlıkları yazılır\n"
#~ "                              (öntanımlı)\n"
#~ "      --strict                Uniforum kipini etkinleştirir\n"
#~ "  -w, --width=SAYI            sayfa genişliği SAYIya ayarlanır\n"
#~ "      --no-wrap               sayfa genişliğine sığmayan satırların "
#~ "taşan\n"
#~ "                              kısmı bir alt satıra indirilmez\n"
#~ "  -s, --sort-output           çıktıyı sıralı üretir\n"
#~ "  -F, --sort-by-file          çıktıyı dosya konumuna göre sıralar\n"

#~ msgid "write to grep subprocess failed"
#~ msgstr "grep alt sürecine yazılamadı"

#~ msgid ""
#~ "You are in a language indifferent environment.  Please set\n"
#~ "your LANG environment variable, as described in the ABOUT-NLS\n"
#~ "file.  This is necessary so you can test your translations.\n"
#~ msgstr ""
#~ "Siz dil farkları bulunmayan bir ülkedesiniz. Lütfen LANG sistem\n"
#~ "değişkenini ABOUT-NLS dosyasında açıklandığı gibi belirtin.\n"
#~ "Bu çevirinizi test edebilmeniz için gereklidir.\n"

#~ msgid ""
#~ "Output file %s already exists.\n"
#~ "Please specify the locale through the --locale option or\n"
#~ "the output .po file through the --output-file option.\n"
#~ msgstr ""
#~ "%s çıktı dosyası zaten var.\n"
#~ "Lütfen --locale seçeneğinden bir yerel ya da\n"
#~ "--output-file seçeneğinden .po çıktı dosyası belirtin.\n"

#~ msgid "Created %s.\n"
#~ msgstr "%s oluşturuldu.\n"

#~ msgid ""
#~ "Creates a new PO file, initializing the meta information with values from "
#~ "the\n"
#~ "user's environment.\n"
#~ msgstr ""
#~ "Kullanıcının ortam değişkenlerindeki bilgilerle bir yeni PO dosyası "
#~ "oluşturur.\n"

#~ msgid ""
#~ "Input file location:\n"
#~ "  -i, --input=INPUTFILE       input POT file\n"
#~ "If no input file is given, the current directory is searched for the POT "
#~ "file.\n"
#~ "If it is -, standard input is read.\n"
#~ msgstr ""
#~ "Girdi dosyası konumu:\n"
#~ "  -i, --input=GİRDİDOSYASI    POT girdi dosyası\n"
#~ "Girdi dosyası verilmemişse, POT dosyası içinde bulunulan dizinde aranır,\n"
#~ "- verilmişse standart girdi okunur.\n"

#~ msgid ""
#~ "Output file location:\n"
#~ "  -o, --output-file=FILE      write output to specified PO file\n"
#~ "If no output file is given, it depends on the --locale option or the "
#~ "user's\n"
#~ "locale setting.  If it is -, the results are written to standard output.\n"
#~ msgstr ""
#~ "Çıktı dosyası konumu:\n"
#~ "  -o, --output-file=DOSYA     çıktı belirtilen PO DOSYAsına yazılır\n"
#~ "Çıktı dosyası verilmemişse, --locale seçeneği ya da kullanıcının yerel\n"
#~ "ayarları kullanılır, - verilmişse sonuçlar standart çıktıya yazılır.\n"

#~ msgid ""
#~ "Output details:\n"
#~ "  -l, --locale=LL_CC          set target locale\n"
#~ "      --no-translator         assume the PO file is automatically "
#~ "generated\n"
#~ "  -w, --width=NUMBER          set output page width\n"
#~ "      --no-wrap               do not break long message lines, longer "
#~ "than\n"
#~ "                              the output page width, into several lines\n"
#~ msgstr ""
#~ "Çıktı ayrıntıları:\n"
#~ "  -l, --locale=tr_TR          hedef yerel belirtilir\n"
#~ "      --no-translator         PO dosyasının otomatik üretildiği "
#~ "varsayılır\n"
#~ "  -w, --width=SAYI            sayfa genişliği SAYIya ayarlanır\n"
#~ "      --no-wrap               sayfa genişliğine sığmayan satırların "
#~ "taşan\n"
#~ "                              kısmı bir alt satıra indirilmez\n"

#~ msgid ""
#~ "Found more than one .pot file.\n"
#~ "Please specify the input .pot file through the --input option.\n"
#~ msgstr ""
#~ "Birden fazla .pot dosyası bulundu.\n"
#~ "Lütfen girdi olarak kullanılacak .pot dosyasını --input seçeneği ile "
#~ "belirtin.\n"

#~ msgid "error reading current directory"
#~ msgstr "dizin okunurken hata"

#~ msgid ""
#~ "Found no .pot file in the current directory.\n"
#~ "Please specify the input .pot file through the --input option.\n"
#~ msgstr ""
#~ "Bulunduğunuz dizinde .pot dosyası yok.\n"
#~ "Lütfen girdi olarak kullanılacak .pot dosyasını --input seçeneği ile "
#~ "belirtin.\n"

#~ msgid "fdopen() failed"
#~ msgstr "fdopen() başarısız"

#~ msgid "%s subprocess I/O error"
#~ msgstr "%s alt süreci G/Ç hatası"

#~ msgid "%s subprocess failed with exit code %d"
#~ msgstr "%s alt süreci çıkış kodu %d ile başarısız"

#~ msgid ""
#~ "The new message catalog should contain your email address, so that users "
#~ "can\n"
#~ "give you feedback about the translations, and so that maintainers can "
#~ "contact\n"
#~ "you in case of unexpected technical problems.\n"
#~ msgstr ""
#~ "Kullanıcıların çevirileriniz hakkında geribesleme sağlayabilmesi ve\n"
#~ "uygulama yazarlarının bazı teknik sorunlarda sizinle yazışabilmesi için\n"
#~ "yeni ileti kataloğu e-posta adresinizi içermelidir.\n"

#~ msgid "English translations for %s package"
#~ msgstr "%s paketi için Türkçe çeviriler"

#~ msgid "present charset \"%s\" is not a portable encoding name"
#~ msgstr "mevcut karakter kümesi \"%s\" kabul görmüş bir kodlama ismi değil"

#~ msgid "two different charsets \"%s\" and \"%s\" in input file"
#~ msgstr "girdi dosyasında iki farklı karakter kümesi: \"%s\" ve \"%s\""

#~ msgid ""
#~ "input file `%s' doesn't contain a header entry with a charset "
#~ "specification"
#~ msgstr "girdi dosyası `%s' başlığında bir karakter kümesi belirtilmemiş."

#~ msgid ""
#~ "domain \"%s\" in input file `%s' doesn't contain a header entry with a "
#~ "charset specification"
#~ msgstr ""
#~ "\"%s\" paketi girdi dosyası `%s' başlığındaki charset alanında bir "
#~ "karakter\n"
#~ "kümesi belirtilmemiş"

#~ msgid "target charset \"%s\" is not a portable encoding name."
#~ msgstr "hedef karakter kümesi \"%s\" kabul görmüş bir kodlama ismi değil."

#~ msgid "warning: "
#~ msgstr "uyarı: "

#~ msgid ""
#~ "Input files contain messages in different encodings, UTF-8 among others.\n"
#~ "Converting the output to UTF-8.\n"
#~ msgstr ""
#~ "Girdi dosyası UTF-8 ile karışık farklı kodlamalar içeriyor.\n"
#~ "Çıktı UTF-8'e dönüştürülüyor.\n"

#~ msgid ""
#~ "Input files contain messages in different encodings, %s and %s among "
#~ "others.\n"
#~ "Converting the output to UTF-8.\n"
#~ "To select a different output encoding, use the --to-code option.\n"
#~ msgstr ""
#~ "Girdi dosyasında hem %s hem de %s kodlaması kullanılmış.\n"
#~ "Çıktı UTF-8'e çevriliyor.\n"
#~ "--to-code seçeneğini kullanarak başka bir kodlama da seçebilirsiniz.\n"

#~ msgid ""
#~ "Locale charset \"%s\" is different from\n"
#~ "input file charset \"%s\".\n"
#~ "Output of '%s' might be incorrect.\n"
#~ "Possible workarounds are:\n"
#~ msgstr ""
#~ "Yerelin karakter kümesi \"%s\",\n"
#~ "girdi dosyasının karakter kümesi \"%s\".\n"
#~ "'%s' çıktısı yanlış olabilir.\n"
#~ "Yapılabilecekler:\n"

#~ msgid "- Set LC_ALL to a locale with encoding %s.\n"
#~ msgstr ""
#~ "- LC_ALL değişkenini %s kodlamasını kullanan bir yerele ayarlayın.\n"

#~ msgid ""
#~ "- Convert the translation catalog to %s using 'msgconv',\n"
#~ "  then apply '%s',\n"
#~ "  then convert back to %s using 'msgconv'.\n"
#~ msgstr ""
#~ "- 'msgconv' kullanarak çeviri kataloğunu %s e dönüştürüp,\n"
#~ "  '%s' uyguladıktan sonra,\n"
#~ "  'msgconv' kullanarak tekrar %s a dönün.\n"

#~ msgid ""
#~ "- Set LC_ALL to a locale with encoding %s,\n"
#~ "  convert the translation catalog to %s using 'msgconv',\n"
#~ "  then apply '%s',\n"
#~ "  then convert back to %s using 'msgconv'.\n"
#~ msgstr ""
#~ "- LC_ALL değişkenini %s kodlamasını kullanan bir yerele ayarlayın.\n"
#~ "  'msgconv' kullanarak çeviri kataloğunu %s e dönüştürüp,\n"
#~ "  '%s' uyguladıktan sonra,\n"
#~ "  'msgconv' kullanarak tekrar %s a dönün.\n"

#~ msgid ""
#~ "Locale charset \"%s\" is not a portable encoding name.\n"
#~ "Output of '%s' might be incorrect.\n"
#~ "A possible workaround is to set LC_ALL=C.\n"
#~ msgstr ""
#~ "Yerelin karakter kümesi \"%s\" kabul görmüş bir kodlama ismi değil.\n"
#~ "'%s' çıktısı yanlış olabilir.\n"
#~ "Tek yapılabilecek LC_ALL=C ayarlamaktır.\n"

#~ msgid "conversion failure"
#~ msgstr "dönüşüm başarısız"

#~ msgid ""
#~ "input file doesn't contain a header entry with a charset specification"
#~ msgstr "girdi dosyasının başlığında bir karakter kümesi belirtilmemiş"

#~ msgid ""
#~ "Cannot convert from \"%s\" to \"%s\". %s relies on iconv(), and iconv() "
#~ "does not support this conversion."
#~ msgstr ""
#~ "\"%s\" \"%s\" e dönüştürülemiyor. %s iconv()ye bağlı,\n"
#~ "ve iconv() bu dönüşümü desteklemiyor."

#~ msgid ""
#~ "Cannot convert from \"%s\" to \"%s\". %s relies on iconv(). This version "
#~ "was built without iconv()."
#~ msgstr ""
#~ "\"%s\" \"%s\" e dönüştürülemiyor. %s iconv()ye bağlı.\n"
#~ "Bu sürüm iconv() olmaksızın kurgulanmış."

#~ msgid "backup type"
#~ msgstr "yedekleme türü"

#~ msgid ""
#~ "Merges two Uniforum style .po files together.  The def.po file is an\n"
#~ "existing PO file with translations which will be taken over to the newly\n"
#~ "created file as long as they still match; comments will be preserved,\n"
#~ "but extracted comments and file positions will be discarded.  The ref."
#~ "pot\n"
#~ "file is the last created PO file with up-to-date source references but\n"
#~ "old translations, or a PO Template file (generally created by xgettext);\n"
#~ "any translations or comments in the file will be discarded, however dot\n"
#~ "comments and file positions will be preserved.  Where an exact match\n"
#~ "cannot be found, fuzzy matching is used to produce better results.\n"
#~ msgstr ""
#~ "İki Uniforum biçemli .po dosyasını katıştırır. def.po dosyası, eski\n"
#~ "çevirilerin bulunduğu ve hala birçok bakımdan onunla eşleşen (yorumlar\n"
#~ "korunmuş, fakat çıkarma yorumları ve dosya konumları iptal edilmiş olan)\n"
#~ "yeni oluşturulmuş bir dosyaya çevirileri aktarılacak mevcut bir PO\n"
#~ "dosyasıdır. ref.pot dosyası ise tüm çevirileri ve yorumları iptal "
#~ "edilmiş\n"
#~ "ama nokta yorumları ve dosya konumları korunmuş olan son\n"
#~ "(genellikle xgettext tarafından) oluşturulan POT dosyasıdır.\n"
#~ "Daha iyi sonuçlar elde edebilmek için zorunlu eşleşmeler bulunamadığında\n"
#~ "belirsiz eşleşmeler kullanılmıştır.\n"

#~ msgid ""
#~ "Input file location:\n"
#~ "  def.po                      translations referring to old sources\n"
#~ "  ref.pot                     references to new sources\n"
#~ "  -D, --directory=DIRECTORY   add DIRECTORY to list for input files "
#~ "search\n"
#~ "  -C, --compendium=FILE       additional library of message "
#~ "translations,\n"
#~ "                              may be specified more than once\n"
#~ msgstr ""
#~ "Girdi dosyası konumu:\n"
#~ "  def.po                      eski çevirilerin dosyası\n"
#~ "  ref.pot                     yeni iletileri de içeren dosya\n"
#~ "  -D, --directory=DİZİN       girdi dosyalarının arama yoluna eklenecek "
#~ "DİZİN\n"
#~ "  -C, --compendium=DOSYA      ileti çevirilerinin birden fazlasını "
#~ "içerebilen\n"
#~ "                              ek veritabanı\n"

#~ msgid ""
#~ "Operation mode:\n"
#~ "  -U, --update                update def.po,\n"
#~ "                              do nothing if def.po already up to date\n"
#~ msgstr ""
#~ "İşlem kipi:\n"
#~ "  -U, --update                def.po dosyasını günceller,\n"
#~ "                              def.po zaten güncelse bir şey yapmaz\n"

#~ msgid ""
#~ "Output file location in update mode:\n"
#~ "The result is written back to def.po.\n"
#~ "      --backup=CONTROL        make a backup of def.po\n"
#~ "      --suffix=SUFFIX         override the usual backup suffix\n"
#~ "The version control method may be selected via the --backup option or "
#~ "through\n"
#~ "the VERSION_CONTROL environment variable.  Here are the values:\n"
#~ "  none, off       never make backups (even if --backup is given)\n"
#~ "  numbered, t     make numbered backups\n"
#~ "  existing, nil   numbered if numbered backups exist, simple otherwise\n"
#~ "  simple, never   always make simple backups\n"
#~ "The backup suffix is `~', unless set with --suffix or the "
#~ "SIMPLE_BACKUP_SUFFIX\n"
#~ "environment variable.\n"
#~ msgstr ""
#~ "Güncelleme kipinde çıktı dosyası konumu:\n"
#~ "Sonuçlar gerisin geriye def.po dosyasına yazılır.\n"
#~ "      --backup=SÜRÜM          def.po dosyasını yedekler\n"
#~ "      --suffix=SONEK          yedek dosyası SONEK ile oluşturulur\n"
#~ "Sürüm kontrol yöntemi --backup seçeneği ile ya da VERSION_CONTROL ortam\n"
#~ "değişkeni ile belirtilebilir. Bu değerler:\n"
#~ "  none, off                   yedekleme yapılmaz (--backup verilse bile)\n"
#~ "  numbered, t                 numaralı yedekleme yapılır\n"
#~ "  existing, nil               numaralı yedekler varsa numaralı yoksa "
#~ "basit\n"
#~ "                              yedekleme yapılır\n"
#~ "  simple, never               daima basit yedekleme yapılır\n"
#~ "--suffix seçeneği ile ya da SIMPLE_BACKUP_SUFFIX ortam değişkeni ile\n"
#~ "belirtilmedikçe yedekleme dosyasının soneki `~' dir.\n"

#~ msgid ""
#~ "Informative output:\n"
#~ "  -h, --help                  display this help and exit\n"
#~ "  -V, --version               output version information and exit\n"
#~ "  -v, --verbose               increase verbosity level\n"
#~ "  -q, --quiet, --silent       suppress progress indicators\n"
#~ msgstr ""
#~ "Bilgilendirme seçenekleri:\n"
#~ "  -h, --help                  Bu yardımı gösterir ve çıkar\n"
#~ "  -V, --version               Sürüm bilgilerini gösterir ve çıkar\n"
#~ "  -v, --verbose               sonuçlar daha ayrıntılı verilir\n"
#~ "  -q, --quiet, --silent       bilgi verilmez\n"

#~ msgid "this message should define plural forms"
#~ msgstr ".bu ileti çoğul biçem olmalıydı"

#~ msgid "this message should not define plural forms"
#~ msgstr "bu ileti çoğul biçem olmamalıydı"

#~ msgid ""
#~ "%sRead %ld old + %ld reference, merged %ld, fuzzied %ld, missing %ld, "
#~ "obsolete %ld.\n"
#~ msgstr ""
#~ "%s%ld eski + %ld referans, %ld katışık, %ld fuzzy, %ld eksik, %ld artık "
#~ "kullanılmayan ileti okundu.\n"

#~ msgid " done.\n"
#~ msgstr " bitti.\n"

#~ msgid "%s and explicit file names are mutually exclusive"
#~ msgstr "%s ile diğer dosya isimleri bağdaşmıyor"

#~ msgid "Convert binary message catalog to Uniforum style .po file.\n"
#~ msgstr "İkilik ileti kataloğunu Uniforum tarzı .po dosyasına dönüştürür.\n"

#~ msgid ""
#~ "Operation mode:\n"
#~ "  -j, --java               Java mode: input is a Java ResourceBundle "
#~ "class\n"
#~ "      --tcl                Tcl mode: input is a tcl/msgcat .msg file\n"
#~ msgstr ""
#~ "İşlem kipi:\n"
#~ "  -j, --java              Java kipi: girdi bir  Java ÖzkaynakPaketi "
#~ "sınıfıdır\n"
#~ "      --tcl               Tcl kipi:, girdi bir tcl/iletiKat .msg "
#~ "dosyasıdır\n"

#~ msgid ""
#~ "Input file location:\n"
#~ "  FILE ...                 input .mo files\n"
#~ "If no input file is given or if it is -, standard input is read.\n"
#~ msgstr ""
#~ "Girdi dosyası konumu:\n"
#~ "  DOSYA ...                   .mo girdi dosyaları\n"
#~ "Bir DOSYA verilmemişse ya da - verilmişse standart girdi okunur.\n"

#~ msgid ""
#~ "Input file location in Java mode:\n"
#~ "  -r, --resource=RESOURCE  resource name\n"
#~ "  -l, --locale=LOCALE      locale name, either language or "
#~ "language_COUNTRY\n"
#~ "The class name is determined by appending the locale name to the resource "
#~ "name,\n"
#~ "separated with an underscore.  The class is located using the CLASSPATH.\n"
#~ msgstr ""
#~ "Java kipinde çıktı dosyası konumu:\n"
#~ "  -r, --resource=KAYNAK       özKAYNAK ismi\n"
#~ "  -l, --locale=tr_TR          yerel ismi, dil ya da dil_ÜLKE\n"
#~ "Sınıf ismi, özkaynak ismine yerel isminin bir altçizgi ile eklenmesiyle\n"
#~ "saptanır. Sınıf, CLASSPATH ortam değişkeni ile konumlanır.\n"

#~ msgid ""
#~ "Input file location in Tcl mode:\n"
#~ "  -l, --locale=LOCALE      locale name, either language or "
#~ "language_COUNTRY\n"
#~ "  -d DIRECTORY             base directory of .msg message catalogs\n"
#~ "The -l and -d options are mandatory.  The .msg file is located in the\n"
#~ "specified directory.\n"
#~ msgstr ""
#~ "Tcl kipinde çıktı dosyası konumu:\n"
#~ "  -l, --locale=YEREL          yerel ismi, dil ya da dil_ÜLKE\n"
#~ "  -d DİZİN                    .msg ileti kataloglarının bulunduğu ana "
#~ "dizin\n"
#~ ".msg dosyası DİZİNde bulunduğundan -d  ve -l seçenekleri zorunludur.\n"

#~ msgid ""
#~ "Output file location:\n"
#~ "  -o, --output-file=FILE   write output to specified file\n"
#~ "The results are written to standard output if no output file is "
#~ "specified\n"
#~ "or if it is -.\n"
#~ msgstr ""
#~ "Çıktı dosyası konumu:\n"
#~ "  -o, --output-file=DOSYA     çıktı belirtilen DOSYAya yazılır\n"
#~ "Sonuçlar DOSYA verilmezse ya da - verilirse standart çıktıya yazılır.\n"

#~ msgid ""
#~ "Output details:\n"
#~ "  -e, --no-escape          do not use C escapes in output (default)\n"
#~ "  -E, --escape             use C escapes in output, no extended chars\n"
#~ "      --force-po           write PO file even if empty\n"
#~ "  -i, --indent             write indented output style\n"
#~ "      --strict             write strict uniforum style\n"
#~ "  -w, --width=NUMBER       set output page width\n"
#~ "      --no-wrap            do not break long message lines, longer than\n"
#~ "                           the output page width, into several lines\n"
#~ "  -s, --sort-output        generate sorted output\n"
#~ msgstr ""
#~ "Çıktı ayrıntıları:\n"
#~ "  -e, --no-escape             C öncelemleri çıktıda kullanılmaz "
#~ "(öntanımlı)\n"
#~ "  -E, --escape                C öncelemleri çıktıda kullanılır\n"
#~ "      --force-po              boş olsa bile PO dosyasını yazar\n"
#~ "  -i, --indent                satırbaşı girintili çıktı biçemi\n"
#~ "      --strict                Uniforum kipini etkinleştirir\n"
#~ "  -w, --width=SAYI            sayfa genişliği SAYIya ayarlanır\n"
#~ "      --no-wrap               sayfa genişliğine sığmayan satırların "
#~ "taşan\n"
#~ "                              kısmı bir alt satıra indirilmez\n"
#~ "  -s, --sort-output           çıktıyı sıralı üretir\n"

#~ msgid ""
#~ "Informative output:\n"
#~ "  -h, --help               display this help and exit\n"
#~ "  -V, --version            output version information and exit\n"
#~ "  -v, --verbose            increase verbosity level\n"
#~ msgstr ""
#~ "Bilgilendirme seçenekleri:\n"
#~ "  -h, --help                  Bu yardımı gösterir ve çıkar\n"
#~ "  -V, --version               Sürüm bilgilerini gösterir ve çıkar\n"
#~ "  -v, --verbose               sonuçlar daha ayrıntılı verilir\n"

#~ msgid ""
#~ "Unifies duplicate translations in a translation catalog.\n"
#~ "Finds duplicate translations of the same message ID.  Such duplicates "
#~ "are\n"
#~ "invalid input for other programs like msgfmt, msgmerge or msgcat.  By\n"
#~ "default, duplicates are merged together.  When using the --repeated "
#~ "option,\n"
#~ "only duplicates are output, and all other messages are discarded.  "
#~ "Comments\n"
#~ "and extracted comments will be cumulated, except that if --use-first is\n"
#~ "specified, they will be taken from the first translation.  File "
#~ "positions\n"
#~ "will be cumulated.  When using the --unique option, duplicates are "
#~ "discarded.\n"
#~ msgstr ""
#~ "Bir çeviri kataloğundaki tekrarlanmış çevirileri teke indirir.\n"
#~ "Aynı ileti kimlikli tekrarlanmış çeviriler bulunur. Bunlar msgfmt, "
#~ "msgmerge\n"
#~ "ve msgcat gibi uygulamalar için geçersiz girdilerdir. Öntanımlı olarak,\n"
#~ "tekrarlananlar bir araya getirilir. --repeated seçeneği kullanılırsa, "
#~ "sadece\n"
#~ "tekrarlananlar çıktıya yazılır, diğer iletiler iptal edilir. --use first\n"
#~ "seçeneği belirtilmedikçe yorumlar ve çıkarma yorumları tutulur. "
#~ "Belirtilirse,\n"
#~ "onlar ilk çeviriden alınır. Dosya konumları korunur. --unique seçeneği\n"
#~ "kullanıldığında tekrarlananlar iptal edilir.\n"

#~ msgid ""
#~ "Message selection:\n"
#~ "  -d, --repeated                 print only duplicates\n"
#~ "  -u, --unique                   print only unique messages, discard "
#~ "duplicates\n"
#~ msgstr ""
#~ "İleti seçimi:\n"
#~ "  -d, --repeated              sadece tekrarlananlar gösterilir\n"
#~ "  -u, --unique                sadece tek iletiler gösterilir,\n"
#~ "                              tekrarlananlar iptal edilir\n"

#~ msgid "<stdin>"
#~ msgstr "<stdÇ>"

#~ msgid "%s: warning: "
#~ msgstr "%s: uyarı: "

#~ msgid ""
#~ "Charset \"%s\" is not a portable encoding name.\n"
#~ "Message conversion to user's charset might not work.\n"
#~ msgstr ""
#~ "\"%s\" karakter kümesi kabul görmüş bir isim değil.\n"
#~ "Kullanıcının karakter kümesine dönüşüm yapılamıyabilir.\n"

#~ msgid "Continuing anyway, expect parse errors."
#~ msgstr "Çözümleme hatalarına rağmen devam ediliyor."

#~ msgid "Continuing anyway."
#~ msgstr "Yine de devam ediliyor."

#~ msgid ""
#~ "Charset \"%s\" is not supported. %s relies on iconv(),\n"
#~ "and iconv() does not support \"%s\".\n"
#~ msgstr ""
#~ "\"%s\" karakter kümesi desteklenmiyor. %s iconv()ye bağlı.\n"
#~ "ve iconv() \"%s\" desteği vermiyor.\n"

#~ msgid ""
#~ "Installing GNU libiconv and then reinstalling GNU gettext\n"
#~ "would fix this problem.\n"
#~ msgstr ""
#~ "GNU libiconv paketini kurduktan sonra GNU gettext paketini\n"
#~ "yeniden kurarak bu sorunun üstesinden gelmelisiniz.\n"

#~ msgid "%s\n"
#~ msgstr "%s\n"

#~ msgid ""
#~ "Charset \"%s\" is not supported. %s relies on iconv().\n"
#~ "This version was built without iconv().\n"
#~ msgstr ""
#~ "\"%s\" karakter kümesi desteklenmiyor. %s iconv()ye bağlı.\n"
#~ "Bu sürüm iconv() olmaksızın kurgulanmış.\n"

#~ msgid ""
#~ "Charset missing in header.\n"
#~ "Message conversion to user's charset will not work.\n"
#~ msgstr ""
#~ "Başlıkta karakter kümesi yok.\n"
#~ "Kullanıcının karakter kümesinde ileti dönüşümü yapılamayacak.\n"

#~ msgid "inconsistent use of #~"
#~ msgstr "#~ kullanımı aykırı"

#~ msgid "missing `msgstr[]' section"
#~ msgstr "`msgstr[]' bölümü yok"

#~ msgid "missing `msgid_plural' section"
#~ msgstr "`msgid_plural' bölümü yok"

#~ msgid "missing `msgstr' section"
#~ msgstr "`msgstr' bölümü yok"

#~ msgid "first plural form has nonzero index"
#~ msgstr "ilk çoğul biçemin indeksi sıfır değil"

#~ msgid "plural form has wrong index"
#~ msgstr "çoğul biçemin indeksi hatalı"

#~ msgid "too many errors, aborting"
#~ msgstr "hatalar çok fazla, bunları düzeltince programı tekrar çalıştırın"

#~ msgid "invalid multibyte sequence"
#~ msgstr "çoklu bayt dizisi geçersiz"

#~ msgid "incomplete multibyte sequence at end of file"
#~ msgstr "dosya sonunda çoklu bayt dizisi tamamlanmadı"

#~ msgid "incomplete multibyte sequence at end of line"
#~ msgstr "satır sonunda çoklu bayt dizisi tamamlanmadı"

#~ msgid "iconv failure"
#~ msgstr "iconv başarısızlığı"

#~ msgid "keyword \"%s\" unknown"
#~ msgstr "anahtar-sözcük \"%s\" bilinmiyor"

#~ msgid "invalid control sequence"
#~ msgstr "denetim dizisi geçersiz"

#~ msgid "end-of-file within string"
#~ msgstr "dizge içinde dosya sonu"

#~ msgid "end-of-line within string"
#~ msgstr "dizge içinde satır sonu"

#~ msgid "file \"%s\" is truncated"
#~ msgstr "\"%s\" dosyası kırpılmış"

#~ msgid "file \"%s\" contains a not NUL terminated string"
#~ msgstr "\"%s\" dosyası NUL sonlandırmalı olmayan bir dizge içeriyor"

#~ msgid "file \"%s\" is not in GNU .mo format"
#~ msgstr "\"%s\" dosyası bir GNU .mo dosyas değil"

#~ msgid "file \"%s\" contains a not NUL terminated string, at %s"
#~ msgstr ""
#~ "\"%s\" dosyası %s. satırda NUL sonlandırmalı olmayan bir dizge içeriyor"

#~ msgid "expected two arguments"
#~ msgstr "iki argüman gerekiyor"

#~ msgid "Usage: %s [OPTION] URL FILE\n"
#~ msgstr "Kullanımı: %s [SEÇENEK] URL DOSYA\n"

#~ msgid ""
#~ "Fetches and outputs the contents of an URL.  If the URL cannot be "
#~ "accessed,\n"
#~ "the locally accessible FILE is used instead.\n"
#~ msgstr ""
#~ "Bir URL'nin içeriğini alır ve çıktılar.  URL erişilebilir değilse,\n"
#~ "yerel DOSYA dosya kullanılır.\n"

#~ msgid "error writing stdout"
#~ msgstr "standart çıktıya yazılırken hata"

#~ msgid "cannot find a temporary directory, try setting $TMPDIR"
#~ msgstr ""
#~ "geçici dizin bulunamadı, $TMPDIR ortam değişkeniyle belirtmeyi deneyin"

#~ msgid "cannot create a temporary directory using template \"%s\""
#~ msgstr "\"%s\" şablonu kullanılarak bir geçici dizin oluşturulamaz"

#~ msgid "not a valid Java class name: %s"
#~ msgstr "Geçerli bir Java sınıfı ismi değil: %s"

#~ msgid "failed to create \"%s\""
#~ msgstr "\"%s\" oluşturulamadı"

#~ msgid "error while writing \"%s\" file"
#~ msgstr "\"%s\" dosyasına yazarken hata"

#~ msgid "compilation of Java class failed, please try --verbose or set $JAVAC"
#~ msgstr ""
#~ "Java sınıfı derlenemedi, lütfen --verbose seçeneğini kullanın ya da\n"
#~ "$JAVAC ortam değişkenine uygun değeri atayın."

#~ msgid "error while opening \"%s\" for writing"
#~ msgstr "\"%s\" yazılmak için açılırken hata"

#~ msgid ""
#~ "internationalized messages should not contain the `\\%c' escape sequence"
#~ msgstr "i18n iletileri `\\%c' öncelem dizilerini içeremez"

#~ msgid ""
#~ "The following msgid contains non-ASCII characters.\n"
#~ "This will cause problems to translators who use a character encoding\n"
#~ "different from yours. Consider using a pure ASCII msgid instead.\n"
#~ "%s\n"
#~ msgstr ""
#~ "Aşağıdaki msgid ASCII olmayan karakterler içeriyor.\n"
#~ "Sizinkinden farklı dil kodlaması kullanan çevirmenler için bu bir sorun\n"
#~ "olabilir. Salt ASCII msgid kullanmanız önerilir.\n"
#~ "%s\n"

#~ msgid "cannot create output file \"%s\""
#~ msgstr "\"%s\" çıktı dosyası oluşturulamıyor"

#~ msgid "standard output"
#~ msgstr "standart çıktı"

#~ msgid "%s:%d: warning: unterminated character constant"
#~ msgstr "%s:%d: uyarı: sonlandırılmamış karakter sabiti"

#~ msgid "%s:%d: warning: unterminated string literal"
#~ msgstr "%s:%d: uyarı: sonlandırılmamış dizge sabiti"

#~ msgid "this file may not contain domain directives"
#~ msgstr "bu dosya paket yönergelerini içermeyebilir"

#~ msgid "%s:%d: invalid string definition"
#~ msgstr "%s:%d: dizge ataması geçersiz"

#~ msgid "%s:%d: missing number after #"
#~ msgstr "%s:%d:  # dan sonra sayı yok"

#~ msgid "%s:%d: invalid string expression"
#~ msgstr "%s:%d: dizge ifade geçersiz"

#~ msgid "--join-existing cannot be used when output is written to stdout"
#~ msgstr "standart çıktıya yazılırken --join-existing kullanılamaz"

#~ msgid "xgettext cannot work without keywords to look for"
#~ msgstr "xgettext anahtar sözcükler olmaksızın bulamaz"

#~ msgid "warning: file `%s' extension `%s' is unknown; will try C"
#~ msgstr "uyarı: `%s' dosyası `%s' uzantısı bilinmiyor; C denenecek"

#~ msgid "Extract translatable strings from given input files.\n"
#~ msgstr "Belirtilen girdi dosyalarından çevrilebilir dizgeleri çıkartır.\n"

#~ msgid ""
#~ "Mandatory arguments to long options are mandatory for short options too.\n"
#~ "Similarly for optional arguments.\n"
#~ msgstr ""
#~ "Uzun seçeneklerdeki zorunlu argümanlar kısa seçeneklerde de zorunludur.\n"
#~ "Benzer durum seçimlik argümanlar içinde geçerlidir.\n"

#~ msgid ""
#~ "Output file location:\n"
#~ "  -d, --default-domain=NAME      use NAME.po for output (instead of "
#~ "messages.po)\n"
#~ "  -o, --output=FILE              write output to specified file\n"
#~ "  -p, --output-dir=DIR           output files will be placed in directory "
#~ "DIR\n"
#~ "If output file is -, output is written to standard output.\n"
#~ msgstr ""
#~ "Çıktı dosyası konumu:\n"
#~ "  -d, --default-domain=İSİM   çıktı messages.po yerine İSİM.po dosyasına\n"
#~ "                              yazılır\n"
#~ "  -o, --output=DOSYA          çıktı belirtilen DOSYAya yazılır\n"
#~ "  -p, --output-dir=DİZİN      çıktı dosyaları DİZİNe konulacaktır.\n"
#~ "Çıktı dosyası olarak - verilmişse çıktı standart çıktıya yazılır.\n"

#~ msgid ""
#~ "Choice of input file language:\n"
#~ "  -L, --language=NAME            recognise the specified language\n"
#~ "                                   (C, C++, ObjectiveC, PO, Python, "
#~ "Lisp,\n"
#~ "                                   EmacsLisp, librep, Java, awk, YCP, "
#~ "Tcl,\n"
#~ "                                   RST, Glade)\n"
#~ "  -C, --c++                      shorthand for --language=C++\n"
#~ "By default the language is guessed depending on the input file name "
#~ "extension.\n"
#~ msgstr ""
#~ "Girdi dosyası dilinin seçimi:\n"
#~ "  -L, --language=İSİM         belirtilen dil tanınır:\n"
#~ "                              C, C++, ObjectiveC, PO, Python, Lisp, RST,\n"
#~ "                              EmacsLisp, librep, Java, awk, YCP, Tcl, "
#~ "Glade\n"
#~ "  -C, --c++                   --language=C++ için kısaltma\n"
#~ "Dil öntanımlı olarak girdi dosyasının uzantısına göre seçilir.\n"

#~ msgid ""
#~ "Operation mode:\n"
#~ "  -j, --join-existing            join messages with existing file\n"
#~ "  -x, --exclude-file=FILE.po     entries from FILE.po are not extracted\n"
#~ "  -c, --add-comments[=TAG]       place comment block with TAG (or those\n"
#~ "                                 preceding keyword lines) in output file\n"
#~ msgstr ""
#~ "İşlem kipi:\n"
#~ "  -j, --join-existing         iletileri mevcut dosyaya bağlar\n"
#~ "  -x, --exclude-file=DOSYA.po DOSYA.po dosyasındaki iletiler çıkartılmaz\n"
#~ "  -c, --add-comments[=ETİTET] ETİKETli yorum bloğunu çıktı dosyasına "
#~ "yazar\n"

#~ msgid ""
#~ "Language=C/C++ specific options:\n"
#~ "  -a, --extract-all              extract all strings\n"
#~ "  -k, --keyword[=WORD]           additional keyword to be looked for "
#~ "(without\n"
#~ "                                 WORD means not to use default keywords)\n"
#~ "  -T, --trigraphs                understand ANSI C trigraphs for input\n"
#~ "      --debug                    more detailed formatstring recognition "
#~ "result\n"
#~ msgstr ""
#~ "Language=C/C++ ile belirtilebilecek seçenekler:\n"
#~ "  -a, --extract-all           tüm dizgeleri çıkartır\n"
#~ "  -k, --keyword[=SÖZCÜK]      aranacak ek anahtar sözcük (SÖZCÜK\n"
#~ "                              verilmediğinde kullanılacak öntanımlı bir\n"
#~ "                              sözcük yoktur.)\n"
#~ "  -T, --trigraphs             girdideki ANSI C trigrafları anlar\n"
#~ "      --debug                 biçem dizgesi tanıması ile ilgili daha "
#~ "fazla\n"
#~ "                              ayrıntı verilir.\n"

#~ msgid ""
#~ "Output details:\n"
#~ "  -e, --no-escape                do not use C escapes in output "
#~ "(default)\n"
#~ "  -E, --escape                   use C escapes in output, no extended "
#~ "chars\n"
#~ "      --force-po                 write PO file even if empty\n"
#~ "  -i, --indent                   write the .po file using indented style\n"
#~ "      --no-location              do not write '#: filename:line' lines\n"
#~ "  -n, --add-location             generate '#: filename:line' lines "
#~ "(default)\n"
#~ "      --strict                   write out strict Uniforum conforming .po "
#~ "file\n"
#~ "  -w, --width=NUMBER             set output page width\n"
#~ "      --no-wrap                  do not break long message lines, longer "
#~ "than\n"
#~ "                                 the output page width, into several "
#~ "lines\n"
#~ "  -s, --sort-output              generate sorted output\n"
#~ "  -F, --sort-by-file             sort output by file location\n"
#~ "      --omit-header              don't write header with `msgid \"\"' "
#~ "entry\n"
#~ "      --copyright-holder=STRING  set copyright holder in output\n"
#~ "      --foreign-user             omit FSF copyright in output for foreign "
#~ "user\n"
#~ "  -m, --msgstr-prefix[=STRING]   use STRING or \"\" as prefix for msgstr "
#~ "entries\n"
#~ "  -M, --msgstr-suffix[=STRING]   use STRING or \"\" as suffix for msgstr "
#~ "entries\n"
#~ msgstr ""
#~ "Çıktı ayrıntıları:\n"
#~ "  -e, --no-escape             C öncelemleri çıktıda kullanılmaz "
#~ "(öntanımlı)\n"
#~ "  -E, --escape                C öncelemleri çıktıda kullanılır\n"
#~ "      --force-po              boş olsa bile PO dosyasını yazar\n"
#~ "  -i, --indent                satırbaşı girintili çıktı biçemi\n"
#~ "      --no-location           '#: dosyaismi:satır' başlıkları yazılmaz\n"
#~ "      --add-location          '#: dosyaismi:satır' başlıkları yazılır\n"
#~ "                              (öntanımlı)\n"
#~ "      --strict                Uniforum kipini etkinleştirir\n"
#~ "  -w, --width=SAYI            sayfa genişliği SAYIya ayarlanır\n"
#~ "      --no-wrap               sayfa genişliğine sığmayan satırların "
#~ "taşan\n"
#~ "                              kısmı bir alt satıra indirilmez\n"
#~ "  -s, --sort-output           çıktıyı sıralı üretir\n"
#~ "  -F, --sort-by-file          çıktıyı dosya konumuna göre sıralar\n"
#~ "      --omit-header           başlığa `msgid \"\"' girdisini yazmaz\n"
#~ "      --copyright-holder=DİZGE  Çıktıya telif hakkı DİZGEsi yazılır\n"
#~ "      --foreign-user          yabancı kullanıcılar için FSF telif hakkı\n"
#~ "                              çıktıda bulunmaz\n"
#~ "  -m, --msgstr-prefix[=DİZGE] msgstr girdileri için önek olarak DİZGE ya "
#~ "da\n"
#~ "                              \"\" kullanılır\n"
#~ "  -M, --msgstr-suffix[=DİZGE] msgstr girdileri için sonek olarak DİZGE ya "
#~ "da\n"
#~ "                              \"\" kullanılır\n"

#~ msgid ""
#~ "Empty msgid.  It is reserved by GNU gettext:\n"
#~ "gettext(\"\") returns the header entry with\n"
#~ "meta information, not the empty string.\n"
#~ msgstr ""
#~ "Boş msgid, GNU gettext tarafından kullanılır:\n"
#~ "gettext(\"\") ile başlık girdilerindeki bilgileri\n"
#~ "döndürür. Boş dizge değildir.\n"

#~ msgid "language `%s' unknown"
#~ msgstr "dil `%s' bilinmiyor"

#~ msgid "file \"%s\" contains a not NUL terminated sysdep segment"
#~ msgstr ""
#~ "\"%s\" dosyası NUL sonlandırmalı olmayan bir sysdep parçası içeriyor"

#~ msgid "seek \"%s\" offset %ld failed"
#~ msgstr "\"%s\" erişimi %ld göreli konumundan başarısız oldu"
