# Japanese message of libiconv
# Copyright (C) 2016 Free Software Foundation, Inc.
# This file is distributed under the same license as the libiconv package.
# Yasuaki Taniguchi <yasuakit@gmail.com>, 2010.
# Takeshi Hamasaki <hmatrjp@users.sourceforge.jp>, 2016
msgid ""
msgstr ""
"Project-Id-Version: GNU libiconv 1.15-pre1\n"
"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n"
"POT-Creation-Date: 2022-02-12 13:29+0100\n"
"PO-Revision-Date: 2016-12-30 08:27+0900\n"
"Last-Translator: Takeshi Hamasaki <hmatrjp@users.sourceforge.jp>\n"
"Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
"Language: ja\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"
"X-Generator: Poedit 1.8.11\n"

#. TRANSLATORS: The first line of the short usage message.
#: src/iconv.c:104
msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]"
msgstr ""
"使用法: iconv [-c] [-s] [-f 変換元コード] [-t 変換先コード] [ファイル名 ...]"

#. TRANSLATORS: The second line of the short usage message.
#. Align it correctly against the first line.
#: src/iconv.c:108
msgid "or:    iconv -l"
msgstr "または:    iconv -l"

#: src/iconv.c:110
#, c-format
msgid "Try '%s --help' for more information.\n"
msgstr "さらに情報が必要な場合は '%s --help' と入力してください。\n"

#. TRANSLATORS: The first line of the long usage message.
#. The %s placeholder expands to the program name.
#: src/iconv.c:115
#, c-format, no-wrap
msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n"
msgstr "使用法: %s [オプション...] [-f 文字コード] [-t 文字コード] [入力ファイル...]\n"

#. TRANSLATORS: The second line of the long usage message.
#. Align it correctly against the first line.
#. The %s placeholder expands to the program name.
#: src/iconv.c:122
#, c-format, no-wrap
msgid "or:    %s -l\n"
msgstr "または:    %s -l\n"

#. TRANSLATORS: Description of the iconv program.
#: src/iconv.c:128
#, c-format, no-wrap
msgid "Converts text from one encoding to another encoding.\n"
msgstr "ある文字コードから別の文字コードへテキストを変換します。\n"

#: src/iconv.c:132
#, c-format, no-wrap
msgid "Options controlling the input and output format:\n"
msgstr "入出力形式を制御するオプション:\n"

#: src/iconv.c:135
#, c-format, no-wrap
msgid ""
"  -f ENCODING, --from-code=ENCODING\n"
"                              the encoding of the input\n"
msgstr ""
"  -f 文字コード, --from-code=文字コード\n"
"                              入力の文字コード\n"

#: src/iconv.c:139
#, c-format, no-wrap
msgid ""
"  -t ENCODING, --to-code=ENCODING\n"
"                              the encoding of the output\n"
msgstr ""
"  -t 文字コード, --to-code=文字コード\n"
"                              出力の文字コード\n"

#: src/iconv.c:144
#, c-format, no-wrap
msgid "Options controlling conversion problems:\n"
msgstr "変換の問題を制御するオプション:\n"

#: src/iconv.c:147
#, c-format, no-wrap
msgid "  -c                          discard unconvertible characters\n"
msgstr "  -c                          変換できない文字を破棄する\n"

#: src/iconv.c:150
#, c-format, no-wrap
msgid ""
"  --unicode-subst=FORMATSTRING\n"
"                              substitution for unconvertible Unicode characters\n"
msgstr ""
"  --unicode-subst=書式文字列\n"
"                              変換できない Unicode 文字の置換\n"

#: src/iconv.c:154
#, c-format, no-wrap
msgid "  --byte-subst=FORMATSTRING   substitution for unconvertible bytes\n"
msgstr "  --byte-subst=書式文字列   変換できないバイトの置換\n"

#: src/iconv.c:157
#, c-format, no-wrap
msgid ""
"  --widechar-subst=FORMATSTRING\n"
"                              substitution for unconvertible wide characters\n"
msgstr ""
"  --widechar-subst=書式文字列\n"
"                              変換できないワイド文字の置換\n"

#: src/iconv.c:162
#, c-format, no-wrap
msgid "Options controlling error output:\n"
msgstr "エラー出力を制御するオプション:\n"

#: src/iconv.c:165
#, c-format, no-wrap
msgid "  -s, --silent                suppress error messages about conversion problems\n"
msgstr "  -s, --silent                変換問題のエラーメッセージ出力を抑止する\n"

#: src/iconv.c:169
#, c-format, no-wrap
msgid "Informative output:\n"
msgstr "情報の出力:\n"

#: src/iconv.c:172
#, c-format, no-wrap
msgid "  -l, --list                  list the supported encodings\n"
msgstr "  -l, --list                  サポートする文字コード一覧を表示する\n"

#: src/iconv.c:175
#, c-format, no-wrap
msgid "  --help                      display this help and exit\n"
msgstr "  --help                      このヘルプを表示して終了する\n"

#: src/iconv.c:178
#, c-format, no-wrap
msgid "  --version                   output version information and exit\n"
msgstr "  --version                   バージョン情報を表示して終了する\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/iconv.c:186
#, c-format
msgid ""
"Report bugs in the bug tracker at <%s>\n"
"or by email to <%s>.\n"
msgstr ""

#. TRANSLATORS: The %s placeholder is the web address of the GPL license.
#: src/iconv.c:202
#, fuzzy, c-format, no-wrap
#| msgid ""
#| "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\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"
msgid ""
"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 ""
"%sライセンス GPLv3+: GNU GPL バージョン 3 以降 <http://gnu.org/licenses/gpl.html>\n"
"%sこれはフリーソフトウェアです: 自由に変更および配布できます.\n"
"%s法律の許す限り、　無保証　です.\n"

#. TRANSLATORS: The %s placeholder expands to an author's name.
#: src/iconv.c:208
#, c-format
msgid "Written by %s.\n"
msgstr "作成者 %s.\n"

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a command-line option.
#: src/iconv.c:302
#, c-format
msgid ""
"%s argument: A format directive with a variable width is not allowed here."
msgstr "引数 %s : ここでは可変幅の書式指定を使用できません。"

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a command-line option.
#: src/iconv.c:317
#, c-format
msgid ""
"%s argument: A format directive with a variable precision is not allowed "
"here."
msgstr "引数 %s : ここでは可変精度の書式指定を使用できません。"

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a command-line option.
#: src/iconv.c:333
#, c-format
msgid "%s argument: A format directive with a size is not allowed here."
msgstr "引数 %s : ここではサイズ指定を行う書式指定を使用できません。"

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a command-line option.
#: src/iconv.c:375
#, c-format
msgid "%s argument: The string ends in the middle of a directive."
msgstr "引数 %s : 書式指定の中間で文字列が終了しました。"

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a command-line option.
#. The %c placeholder expands to an unknown format directive.
#: src/iconv.c:382
#, c-format
msgid "%s argument: The character '%c' is not a valid conversion specifier."
msgstr "引数 %s : 文字 '%c' は無効な変換指定です。"

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a command-line option.
#: src/iconv.c:388
#, c-format
msgid ""
"%s argument: The character that terminates the format directive is not a "
"valid conversion specifier."
msgstr "引数 %s : 書式指定を終端させる文字は有効な変換指定ではありません。"

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a command-line option.
#. The %u placeholder expands to the number of arguments consumed by the format string.
#: src/iconv.c:404
#, c-format
msgid ""
"%s argument: The format string consumes more than one argument: %u argument."
msgid_plural ""
"%s argument: The format string consumes more than one argument: %u arguments."
msgstr[0] "引数 %s : 書式文字列が2つ以上の引数を消費します: %u 個の引数。"

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a piece of text, specified through --byte-subst.
#: src/iconv.c:462
#, c-format
msgid "cannot convert byte substitution to Unicode: %s"
msgstr "バイトから Unicode へ置換をおこなう変換ができません: %s"

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a piece of text, specified through --unicode-subst.
#: src/iconv.c:502
#, c-format
msgid "cannot convert unicode substitution to target encoding: %s"
msgstr "Unicodeから変換先文字コードへの置換を行う変換ができません: %s"

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a piece of text, specified through --byte-subst.
#: src/iconv.c:543
#, c-format
msgid "cannot convert byte substitution to wide string: %s"
msgstr "バイトからワイド文字への置換を行う変換ができません: %s"

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a piece of text, specified through --widechar-subst.
#: src/iconv.c:584
#, c-format
msgid "cannot convert widechar substitution to target encoding: %s"
msgstr "ワイド文字から変換先文字コードへの置換を行う変換ができません: %s"

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a piece of text, specified through --byte-subst.
#: src/iconv.c:625
#, c-format
msgid "cannot convert byte substitution to target encoding: %s"
msgstr "バイトから変換先文字コードへ置換を行う変換ができません: %s"

#. TRANSLATORS: An error message.
#. The placeholders expand to the input file name, a line number, and a column number.
#: src/iconv.c:644
#, c-format
msgid "%s:%u:%u: cannot convert"
msgstr "%s:%u行:%u列: 変換できません"

#. TRANSLATORS: An error message.
#. The placeholders expand to the input file name, a line number, and a column number.
#. A "shift sequence" is a sequence of bytes that changes the state of the converter;
#. this concept exists only for "stateful" encodings like ISO-2022-JP.
#: src/iconv.c:658
#, c-format
msgid "%s:%u:%u: incomplete character or shift sequence"
msgstr "%s:%u行:%u列: 不完全な文字またはシフトシーケンスです"

#. TRANSLATORS: The first part of an error message.
#. It is followed by a colon and a detail message.
#. The placeholders expand to the input file name, a line number, and a column number.
#: src/iconv.c:671
#, c-format
msgid "%s:%u:%u"
msgstr "%s:%u行:%u列"

#. TRANSLATORS: An error message.
#. The placeholder expands to the input file name.
#: src/iconv.c:832
#, c-format
msgid "%s: I/O error"
msgstr "%s: I/O エラー"

#. TRANSLATORS: An error message.
#. The placeholder expands to the encoding name, specified through --from-code.
#: src/iconv.c:1030
#, c-format
msgid "conversion from %s unsupported"
msgstr "%s からの変換はサポートされていません"

#. TRANSLATORS: An error message.
#. The placeholder expands to the encoding name, specified through --to-code.
#: src/iconv.c:1036
#, c-format
msgid "conversion to %s unsupported"
msgstr "%s への変換はサポートされていません"

#. TRANSLATORS: An error message.
#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively.
#: src/iconv.c:1042
#, c-format
msgid "conversion from %s to %s unsupported"
msgstr "%s から %s への変換はサポートされていません"

#. TRANSLATORS: Additional advice after an error message.
#. The %s placeholder expands to the program name.
#: src/iconv.c:1047
#, c-format
msgid "try '%s -l' to get the list of supported encodings"
msgstr "サポートする文字コード一覧は '%s -l' と入力してください。"

#. TRANSLATORS: A filename substitute denoting standard input.
#: src/iconv.c:1104
msgid "(stdin)"
msgstr "(標準入力)"

#. TRANSLATORS: The first part of an error message.
#. It is followed by a colon and a detail message.
#. The %s placeholder expands to the input file name.
#: src/iconv.c:1116
#, c-format
msgid "%s"
msgstr "%s"

#. TRANSLATORS: An error message.
#: src/iconv.c:1130
#, c-format
msgid "I/O error"
msgstr "I/O エラー"

#~ msgid "Report bugs to <bug-gnu-libiconv@gnu.org>.\n"
#~ msgstr ""
#~ "バグレポート先 <bug-gnu-libiconv@gnu.org>\n"
#~ "翻訳問題レポート先 <translation-team-ja@lists.sourceforge.net>\n"
