# Japanese traslation for gst-plugins-bad
# This file is put in the public domain.
#
# Makoto Kato <makoto.kt@gmail.com>, 2009-2011.
msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-bad 0.10.21.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
"POT-Creation-Date: 2011-04-27 12:55+0100\n"
"PO-Revision-Date: 2011-04-26 19:38+0900\n"
"Last-Translator: Makoto Kato <makoto.kt@gmail.com>\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-Generator: Lokalize 0.3\n"
"Plural-Forms: nplurals=1; plural=0;\n"

msgid "Could not read title information for DVD."
msgstr "DVDのタイトル情報を読み込むことができませんでした。"

#, c-format
msgid "Failed to open DVD device '%s'."
msgstr "DVDデバイス '%s' のオープンに失敗しました。"

msgid "Failed to set PGC based seeking."
msgstr "PGCを利用したシークに失敗しました。"

msgid ""
"Could not read DVD. This may be because the DVD is encrypted and a DVD "
"decryption library is not installed."
msgstr ""
"DVDを読み込むことができませんでした。DVDが暗号化されているかDVDを解読するライ"
"ブラリがインストールされていないからかもしれません。"

msgid "Could not read DVD."
msgstr "DVDを読み込むことができませんでした。"

msgid "No file name specified for writing."
msgstr "書き込み用にファイル名が指定されていません。"

#, c-format
msgid "Could not open file \"%s\" for writing."
msgstr "書き込み用にファイル \"%s\" を開くことができませんでした。"

msgid "Internal data stream error."
msgstr "内部データストリームエラー。"

#, c-format
msgid "Could not write to file \"%s\"."
msgstr "ファイル \"%s\" へ書き込むことができませんでした。"

msgid "Internal data flow error."
msgstr "内部データフローエラー。"

#, c-format
msgid "Device \"%s\" does not exist."
msgstr "デバイス \"%s\" は存在しません。"

#, c-format
msgid "Could not open frontend device \"%s\"."
msgstr "フロントエンドデバイス \"%s\" を開くことができません。"

#, c-format
msgid "Could not get settings from frontend device \"%s\"."
msgstr "フロントエンドデバイス \"%s\" から設定を取得できませんでした。"

#, c-format
msgid "Could not open file \"%s\" for reading."
msgstr "読み込み用にファイル \"%s\" を開くことができません。"

#~ msgid "Internal clock error."
#~ msgstr "内部クロックエラー"

#~ msgid "Could not open audio device for mixer control handling."
#~ msgstr ""
#~ "ミキサーがコントロールするオーディオデバイスを開くことができません。"

#~ msgid "Low"
#~ msgstr "低音"

#~ msgid "Medium"
#~ msgstr "中音"

#~ msgid "High"
#~ msgstr "高音"

#~ msgid "Production"
#~ msgstr "プロダクション"

#~ msgid "Off"
#~ msgstr "Off"

#~ msgid "On"
#~ msgstr "On"

#~ msgid "Stereo"
#~ msgstr "ステレオ"

#~ msgid "Surround sound"
#~ msgstr "サラウンドサウンド"

#~ msgid "Input mix"
#~ msgstr "入力ミックス"

#~ msgid "Front"
#~ msgstr "フロント"

#~ msgid "Rear"
#~ msgstr "リア"

#~ msgid "Side"
#~ msgstr "サイド"

#~ msgid "Center / LFE"
#~ msgstr "センター / LFE"

#~ msgid "Microphone"
#~ msgstr "マイクロフォン"

#~ msgid "Front panel microphone"
#~ msgstr "フロントパネルのマイクロフォン"

#~ msgid "Input"
#~ msgstr "入力"

#~ msgid "Line-in"
#~ msgstr "ライン入力"

#~ msgid "PCM 1"
#~ msgstr "PCM 1"

#~ msgid "PCM 2"
#~ msgstr "PCM 2"

#~ msgid "PCM 3"
#~ msgstr "PCM 3"

#~ msgid "PCM 4"
#~ msgstr "PCM 4"

#~ msgid "Green connector"
#~ msgstr "緑色コネクタ"

#~ msgid "Green front panel connector"
#~ msgstr "緑色のフロントパネルのコネクタ"

#~ msgid "Pink connector"
#~ msgstr "ピンク色コネクタ"

#~ msgid "Pink front panel connector"
#~ msgstr "ピンク色のフロントパネルコネクタ"

#~ msgid "Blue connector"
#~ msgstr "青色コネクタ"

#~ msgid "Orange connector"
#~ msgstr "オレンジ色コネクタ"

#~ msgid "Black connector"
#~ msgstr "黒色コネクタ"

#~ msgid "Gray connector"
#~ msgstr "グレー色コネクタ"

#~ msgid "White connector"
#~ msgstr "白色コネクタ"

#~ msgid "Red connector"
#~ msgstr "赤色コネクタ"

#~ msgid "Yellow connector"
#~ msgstr "黄色コネクタ"

#~ msgid "Green connector function"
#~ msgstr "緑色コネクタ機能"

#~ msgid "Front panel line-in"
#~ msgstr "プロントパネルのライン入力"

#~ msgid "Headphones"
#~ msgstr "ヘッドフォン"

#~ msgid "Front panel headphones"
#~ msgstr "フロントパネルのヘッドフォン"

#~ msgid "PCM"
#~ msgstr "PCM"

#~ msgid "Virtual mixer input"
#~ msgstr "仮想ミキサー入力"

#~ msgid "Virtual mixer output"
#~ msgstr "仮想ミキサー出力"

#~ msgid "Virtual mixer channel configuration"
#~ msgstr "仮想ミックスチャンネル設定"

#~ msgid ""
#~ "Could not open audio device for playback. Device is being used by another "
#~ "application."
#~ msgstr ""
#~ "プレイバック用にオーディオデバイスを開くことができませんでした。デバイスは"
#~ "他のアプリケーションによって使われています。"

#~ msgid ""
#~ "Could not open audio device for playback. You don't have permission to "
#~ "open the device."
#~ msgstr ""
#~ "プレイバック用にオーディオデバイスを開くことができませんでした。デバイスを"
#~ "開くための権限を持っていません。"

#~ msgid "Could not open audio device for playback."
#~ msgstr "プレイバック用にオーディオデバイスを開くことができませんでした。"

#~ msgid ""
#~ "Could not open audio device for playback. This version of the Open Sound "
#~ "System is not supported by this element."
#~ msgstr ""
#~ "プレイバック用にオーディオデバイスを開くことができませんでした。この Open "
#~ "Sound System のバージョンはこのエレメントによってサポートされません。"

#~ msgid "Playback is not supported by this audio device."
#~ msgstr "プレイバックはこのオーディオデバイスによってサポートされません。"

#~ msgid "Audio playback error."
#~ msgstr "オーディオプレイバックエラー"

#~ msgid "Recording is not supported by this audio device."
#~ msgstr "録音はこのオーディオデバイスによってサポートされません。"

#~ msgid "Error recording from audio device."
#~ msgstr "オーディオデバイスからの録音時にエラーが発生しました。"

#~ msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
#~ msgstr ""
#~ "TwoLAME エンコーダーの構成に失敗しました。エンコーディングパラメータを"
#~ "チェックしてください。"

#~ msgid ""
#~ "The requested bitrate %d kbit/s for property '%s' is not allowed. The "
#~ "bitrate was changed to %d kbit/s."
#~ msgstr ""
#~ "プロパティ '%2$s' へのビットレート %1$d kbit/s の要求は許可されません。"
#~ "ビットレートは %d kbit/s へ変更されました。"
