# Chinese (Hong Kong) translation for gettext-runtime.
# Copyright (C) 2006 Free Software Foundation, Inc.
# Abel Cheung <abelcheung@gmail.com>, 2006.
#
# Based on gettext zh_TW translation:
# Yuan-Chung Cheng <platin@ms.ccafps.khc.edu.tw>, 1998.
# Pofeng Lee <pofeng@linux.org.tw>, 2001-2002.
#
msgid ""
msgstr ""
"Project-Id-Version: gettext-runtime 0.15-pre5\n"
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
"POT-Creation-Date: 2020-07-26 21:56+0200\n"
"PO-Revision-Date: 2006-07-05 17:16+0800\n"
"Last-Translator: Abel Cheung <abelcheung@gmail.com>\n"
"Language-Team: Chinese (Hong Kong) <community@linuxhall.org>\n"
"Language: zh_HK\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=1; plural=0;\n"

#: gnulib-lib/closeout.c:66
msgid "write error"
msgstr "寫入時發生錯誤"

#: gnulib-lib/error.c:195
msgid "Unknown system error"
msgstr "不明的系統錯誤"

#: gnulib-lib/getopt.c:278
#, fuzzy, c-format
#| msgid "%s: option `%s' is ambiguous\n"
msgid "%s: option '%s%s' is ambiguous\n"
msgstr "%s：選項「%s」不明確\n"

#: gnulib-lib/getopt.c:284
#, fuzzy, c-format
#| msgid "%s: option `%s' is ambiguous\n"
msgid "%s: option '%s%s' is ambiguous; possibilities:"
msgstr "%s：選項「%s」不明確\n"

#: gnulib-lib/getopt.c:319
#, fuzzy, c-format
#| msgid "%s: unrecognized option `%c%s'\n"
msgid "%s: unrecognized option '%s%s'\n"
msgstr "%s：無法識別選項「%c%s」\n"

#: gnulib-lib/getopt.c:345
#, fuzzy, c-format
#| msgid "%s: option `%c%s' doesn't allow an argument\n"
msgid "%s: option '%s%s' doesn't allow an argument\n"
msgstr "%s：選項「%c%s」不允許有參數\n"

#: gnulib-lib/getopt.c:360
#, fuzzy, c-format
#| msgid "%s: option `%s' requires an argument\n"
msgid "%s: option '%s%s' requires an argument\n"
msgstr "%s：選項「%s」需要參數\n"

#: gnulib-lib/getopt.c:621
#, fuzzy, c-format
#| msgid "%s: invalid option -- %c\n"
msgid "%s: invalid option -- '%c'\n"
msgstr "%s：選項無效 -- %c\n"

#: gnulib-lib/getopt.c:636 gnulib-lib/getopt.c:682
#, fuzzy, c-format
#| msgid "%s: option requires an argument -- %c\n"
msgid "%s: option requires an argument -- '%c'\n"
msgstr "%s：選項需要參數 -- %c\n"

#: gnulib-lib/xmalloc.c:38
#, c-format
msgid "memory exhausted"
msgstr "記憶體耗盡"

#: 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 ""

#: src/envsubst.c:116 src/gettext.c:141 src/ngettext.c:130
#, c-format
msgid "Written by %s.\n"
msgstr "由 %s 編寫。\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 "參數過多"

#: src/envsubst.c:136 src/gettext.c:169 src/ngettext.c:154
#, c-format
msgid "missing arguments"
msgstr "缺少了參數"

#: src/envsubst.c:174 src/gettext.c:246 src/ngettext.c:211
#, fuzzy, c-format
#| msgid "Try `%s --help' for more information.\n"
msgid "Try '%s --help' for more information.\n"
msgstr "如果想獲取額外資訊，請嘗試執行「%s --help」。\n"

#: src/envsubst.c:179
#, c-format, no-wrap
msgid "Usage: %s [OPTION] [SHELL-FORMAT]\n"
msgstr "用法：%s [選項] [SHELL-FORMAT]\n"

#: src/envsubst.c:184
#, c-format, no-wrap
msgid "Substitutes the values of environment variables.\n"
msgstr "替換環境變數的值。\n"

#: src/envsubst.c:188
#, c-format, no-wrap
msgid "Operation mode:\n"
msgstr "操作模式:\n"

#: src/envsubst.c:191
#, c-format, no-wrap
msgid "  -v, --variables             output the variables occurring in SHELL-FORMAT\n"
msgstr "  -v, --variables             顯示 SHELL-FORMAT 中出現過的環境變數\n"

#: src/envsubst.c:195 src/gettext.c:275 src/ngettext.c:241
#, c-format, no-wrap
msgid "Informative output:\n"
msgstr "顯示資訊:\n"

#: src/envsubst.c:198
#, c-format, no-wrap
msgid "  -h, --help                  display this help and exit\n"
msgstr "  -h, --help                  顯示這段說明文字並結束\n"

#: src/envsubst.c:201
#, c-format, no-wrap
msgid "  -V, --version               output version information and exit\n"
msgstr "  -V, --version               顯示版本資訊並結束\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 ""
"在正常模式下，會從標準輸入讀取資料，並將內容中的環境變數 (像 $VARIABLE 或\n"
"${VARIABLE}) 轉換為該變數的值，並在標準輸出顯示結果。如果指定了 SHELL-FORMAT，\n"
"則只替換 SHELL-FORMAT 中指定的變數，否則所有環境變數都會替換。\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 選項，將不會理會輸入資料，只會讀取 SHELL-FORMAT 中的\n"
"環境變數並顯示變數名稱，每個一行。\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 ""

#: src/envsubst.c:451
#, c-format
msgid "error while reading \"%s\""
msgstr "讀取「%s」時出現錯誤"

#: src/envsubst.c:451
msgid "standard input"
msgstr "標準輸入"

#. 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 ""
"用法：%s [選項] [[文字領域] MSGID]\n"
"或：  %s [選項] -s [MSGID]...\n"

#: src/gettext.c:257
#, c-format, no-wrap
msgid "Display native language translation of a textual message.\n"
msgstr "顯示某個文字訊息的本地語言翻譯。\n"

#: src/gettext.c:261
#, c-format, no-wrap
msgid "  -d, --domain=TEXTDOMAIN   retrieve translated messages from TEXTDOMAIN\n"
msgstr ""

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

#: src/gettext.c:265 src/ngettext.c:230
#, c-format
msgid "  -e                        enable expansion of some escape sequences\n"
msgstr ""

#: src/gettext.c:267
#, c-format
msgid "  -n                        suppress trailing newline\n"
msgstr ""

#: src/gettext.c:269 src/ngettext.c:232
#, c-format
msgid "  -E                        (ignored for compatibility)\n"
msgstr ""

#: src/gettext.c:271
#, c-format
msgid ""
"  [TEXTDOMAIN] MSGID        retrieve translated message corresponding\n"
"                            to MSGID from TEXTDOMAIN\n"
msgstr ""

#: src/gettext.c:277 src/ngettext.c:243
#, fuzzy, c-format
#| msgid "  -h, --help                  display this help and exit\n"
msgid "  -h, --help                display this help and exit\n"
msgstr "  -h, --help                  顯示這段說明文字並結束\n"

#: src/gettext.c:279 src/ngettext.c:245
#, fuzzy, c-format
#| msgid "  -V, --version               output version information and exit\n"
msgid "  -V, --version             display version information and exit\n"
msgstr "  -V, --version               顯示版本資訊並結束\n"

#: src/gettext.c:283
#, fuzzy, 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"
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 環境變數來設定<文字領域>。\n"
"假如訊息資料檔不在正常的目錄下，可以用環境變數 TEXTDOMAINDIR 指定訊息資料檔\n"
"的所在的位置。\n"
"使用選項「-s」時本程式和「echo」指令類似。但不是直接顯示參數，\n"
"而是尋找訊息資料檔裏翻譯過的訊息。\n"
"標準的搜尋目錄為：%s\n"

#: src/ngettext.c:216
#, c-format, no-wrap
msgid "Usage: %s [OPTION] [TEXTDOMAIN] MSGID MSGID-PLURAL COUNT\n"
msgstr "用法：%s [選項] [文字領域] MSGID 複數MSGID 數字\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 "顯示某文字訊息的本地語言翻譯，而翻譯的文法受單數複數影響。\n"

#: src/ngettext.c:226
#, c-format, no-wrap
msgid "  -d, --domain=TEXTDOMAIN   retrieve translated message from TEXTDOMAIN\n"
msgstr ""

#: src/ngettext.c:234
#, c-format
msgid ""
"  [TEXTDOMAIN]              retrieve translated message from TEXTDOMAIN\n"
msgstr ""

#: src/ngettext.c:236
#, c-format
msgid ""
"  MSGID MSGID-PLURAL        translate MSGID (singular) / MSGID-PLURAL "
"(plural)\n"
msgstr ""

#: src/ngettext.c:238
#, c-format
msgid ""
"  COUNT                     choose singular/plural form based on this value\n"
msgstr ""

#: 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 ""
"假如沒有指定<文字領域>參數，程式會根據 TEXTDOMAIN 環境變數來設定文字領域。\n"
"假如訊息資料檔不在正常的目錄下，可以用環境變數 TEXTDOMAINDIR 指定訊息資料檔\n"
"的所在的位置。\n"
"標準的搜尋目錄為：%s\n"

#, c-format
#~ msgid "%s: option `--%s' doesn't allow an argument\n"
#~ msgstr "%s：選項「--%s」不允許有參數\n"

#, c-format
#~ msgid "%s: unrecognized option `--%s'\n"
#~ msgstr "%s：無法識別選項「--%s」\n"

#, c-format
#~ msgid "%s: illegal option -- %c\n"
#~ msgstr "%s：選項不合法 -- %c\n"

#, c-format
#~ msgid "%s: option `-W %s' is ambiguous\n"
#~ msgstr "%s：選項「-W %s」不明確\n"

#, c-format
#~ msgid "%s: option `-W %s' doesn't allow an argument\n"
#~ msgstr "%s：選項「-W %s」不允許有參數\n"

#, c-format, no-wrap
#~ 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 ""
#~ "版權所有 (C) %s Free Software Foundation, Inc.\n"
#~ "這是自由軟件；請參考源代碼的版權聲明。本軟件不提供任何保證，甚至不會包括\n"
#~ "可售性和適用於任何特定目的的保證。\n"

#~ msgid "Report bugs to <bug-gnu-gettext@gnu.org>.\n"
#~ msgstr "請向 <bug-gnu-gettext@gnu.org> 匯報錯誤。\n"

#, c-format, no-wrap
#~ 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=文字領域     由<文字領域>讀取翻譯後的訊息\n"
#~ "  -e                        允許展開某類 escape sequence\n"
#~ "  -E                        (為了相容性存在的選項，不會造成任何影響)\n"
#~ "  -h, --help                顯示這段說明文字並結束\n"
#~ "  -n                        去除末端的 newline 字元\n"
#~ "  -V, --version             顯示版本資訊並結束\n"
#~ "  [文字領域] MSGID          由<文字領域>讀取相應於 MSGID 的翻譯訊息\n"

#, c-format, no-wrap
#~ 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=文字領域     由<文字領域>讀取翻譯後的訊息。\n"
#~ "  -e                        允許展開某類 escape sequence\n"
#~ "  -E                        (為了相容性存在的選項，不會造成任何影響)\n"
#~ "  -h, --help                顯示這段說明文字並結束\n"
#~ "  -V, --version             顯示版本資訊並結束\n"
#~ "  [文字領域]                由<文字領域>讀取翻譯訊息\n"
#~ "  MSGID 複數MSGID           翻譯 MSGID (單數) / 複數MSGID (複數)\n"
#~ "  數字                      根據<數字>來選擇單數或複數型態\n"
