# Thai translation for popt.
# Copyright (C) 2008 Free Software Foundation, Inc.
# Seksan Poltree <seksan.poltree@gmail.com>, 2008.
#
msgid ""
msgstr ""
"Project-Id-Version: popt 1.14\n"
"Report-Msgid-Bugs-To: <popt-devel@rpm5.org>\n"
"POT-Creation-Date: 2010-02-17 13:35-0500\n"
"PO-Revision-Date: 2008-02-19 15:53+0700\n"
"Last-Translator: Seksan Poltree <seksan.poltree@gmail.com>\n"
"Language-Team: Thai <translation-team-th@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Thai\n"
"X-Poedit-Country: THAILAND\n"

#: popt.c:47
msgid "unknown errno"
msgstr "เกิด errno ที่ไม่รู้จัก"

#: popt.c:1290
#, c-format
msgid "option type (%u) not implemented in popt\n"
msgstr "ตัวเลือกชนิด (%u) ไม่ถูกอิมพลีเมนต์ใน popt\n"

#: popt.c:1711
msgid "missing argument"
msgstr "ไม่พบอาร์กิวเมนต์"

#: popt.c:1713
msgid "unknown option"
msgstr "ไม่รู้จักตัวเลือก"

#: popt.c:1715
msgid "mutually exclusive logical operations requested"
msgstr "เกิดการร้องขอร่วมกันของการดำเนินการด้านตรรกะอย่างเดียวกัน"

#: popt.c:1717
msgid "opt->arg should not be NULL"
msgstr "opt->arg ไม่ควรจะเป็น NULL"

#: popt.c:1719
msgid "aliases nested too deeply"
msgstr "นามแฝงซ้อนกันมากเกินไป"

#: popt.c:1721
msgid "error in parameter quoting"
msgstr "เกิดข้อผิดพลาดในการอ้างอิงพารามิเตอร์"

#: popt.c:1723
msgid "invalid numeric value"
msgstr "ค่าตัวเลขผิดพลาด"

#: popt.c:1725
msgid "number too large or too small"
msgstr "ตัวเลขมีค่ามากหรือน้อยเกินไป"

#: popt.c:1727
msgid "memory allocation failed"
msgstr "การจัดสรรหน่วยความจำผิดพลาด"

#: popt.c:1729
msgid "config file failed sanity test"
msgstr ""

#: popt.c:1733
msgid "unknown error"
msgstr "ความผิดพลาดที่ไม่รู้จัก"

#: popthelp.c:75 popthelp.c:86
msgid "Show this help message"
msgstr "แสดงข้อความช่วยเหลือนี้"

#: popthelp.c:76 popthelp.c:87
msgid "Display brief usage message"
msgstr "แสดงข้อความสรุปย่อการใช้งาน"

#: popthelp.c:90
msgid "Display option defaults in message"
msgstr "แสดงตัวเลือกมาตรฐานในข้อความ"

#: popthelp.c:92
msgid "Terminate options"
msgstr "ตัวเลือกการสิ้นสุด:"

#: popthelp.c:191
msgid "Help options:"
msgstr "ตัวเลือกความช่วยเหลือ:"

#: popthelp.c:192
msgid "Options implemented via popt alias/exec:"
msgstr "ตัวเลือกที่ถูกอิมพลีเมนต์ด้วย popt alias/exec:"

#: popthelp.c:200
msgid "NONE"
msgstr "ไม่มี"

#: popthelp.c:202
msgid "VAL"
msgstr "VAL"

#: popthelp.c:206
msgid "INT"
msgstr "INT"

#: popthelp.c:207
msgid "SHORT"
msgstr ""

#: popthelp.c:208
msgid "LONG"
msgstr "LONG"

#: popthelp.c:209
msgid "LONGLONG"
msgstr "LONGLONG"

#: popthelp.c:210
msgid "STRING"
msgstr "STRING"

#: popthelp.c:211
msgid "FLOAT"
msgstr "FLOAT"

#: popthelp.c:212
msgid "DOUBLE"
msgstr "DOUBLE"

#: popthelp.c:215
msgid "ARG"
msgstr "ARG"

#: popthelp.c:649
msgid "Usage:"
msgstr "วิธีใช้:"

#: popthelp.c:672
msgid "[OPTION...]"
msgstr "[ตัวเลือก...]"
