# Chinese (simplified) translation for gst-plugins-ugly.
# Copyright (C) 2007 Free Software Foundation, Inc.
# This file is distributed under the same license as the gst-plugins-ugly package.
# Wenzheng Hu <db_lobster@163.com>, 2007.
# LI Daobing <lidaobing@gmail.com>, 2008, 2009.
# Wylmer Wang <wantinghard@gmail.com>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-ugly 0.10.17.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
"POT-Creation-Date: 2013-12-26 17:53+0100\n"
"PO-Revision-Date: 2011-12-20 10:58+0800\n"
"Last-Translator: Wylmer Wang <wantinghard@gmail.com>\n"
"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

msgid "Could not read from CD."
msgstr "无法读取CD。"

msgid "Could not open CD device for reading."
msgstr "无法打开以读方式打开CD设备。"

msgid "Disc is not an Audio CD."
msgstr "盘类型不是音频CD。"

msgid "Could not open DVD"
msgstr "无法打开 DVD"

#, c-format
msgid "Could not open DVD title %d"
msgstr "无法打开 DVD 标题 %d"

#, c-format
msgid "Failed to go to chapter %d of DVD title %d"
msgstr "跳转到章节 %d, DVD 标题 %d 失败"

#, c-format
msgid ""
"Could not open DVD title %d. Interactive titles are not supported by this "
"element"
msgstr "无法打开 DVD 标题 %d. 这个元素不支持互动标题"

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。"

#, fuzzy
msgid ""
"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
msgstr "设置 LAME 编码器失败. 请检查你的编码参数."

#, c-format
msgid ""
"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
"bitrate was changed to %d kbit/s."
msgstr "不允许的比特率 %d kbit/s 于 '%s'. 比特率已改变成 %d kbit/s."

msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
msgstr "设置 TwoLAME 编码器失败. 请检查你的编码参数."

msgid "This stream contains no data."
msgstr "这个串流中没有包含数据."

msgid "Internal data stream error."
msgstr "内部数据流错误。"

#~ msgid "Invalid title information on DVD."
#~ msgstr "无效的 DVD 标题信息。"

#~ msgid "Could not read title information for DVD."
#~ msgstr "无法读取为 DVD 读取标题信息。"

#~ msgid "Failed to open DVD device '%s'."
#~ msgstr "无法打开 DVD 设备 '%s'。"

#~ msgid "Failed to set PGC based seeking."
#~ msgstr "设置基于 PGC 的定位失败。"
