# Chinese translation for QEMU.
# This file is put in the public domain.
#
# Fam Zheng <famz@redhat.com>, 2014
msgid ""
msgstr ""
"Project-Id-Version: QEMU 2.2\n"
"Report-Msgid-Bugs-To: qemu-devel@nongnu.org\n"
"POT-Creation-Date: 2016-12-13 21:46+0000\n"
"PO-Revision-Date: 2014-07-31 10:00+0800\n"
"Last-Translator: Fam Zheng <famz@redhat.com>\n"
"Language-Team: Chinese <zh@li.org>\n"
"Language: zh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Lokalize 1.4\n"

#: ui/gtk.c:275
msgid " - Press Ctrl+Alt+G to release grab"
msgstr " - 按下 Ctrl+Alt+G 取消捕获"

#: ui/gtk.c:279
msgid " [Paused]"
msgstr " [已暂停]"

#: ui/gtk.c:1922
msgid "_Pause"
msgstr "暂停(_P)"

#: ui/gtk.c:1928
msgid "_Reset"
msgstr "重置(_R)"

#: ui/gtk.c:1931
msgid "Power _Down"
msgstr "关闭电源(_D)"

#: ui/gtk.c:1937
msgid "_Quit"
msgstr "退出(_Q)"

#: ui/gtk.c:2029
msgid "_Fullscreen"
msgstr "全屏(_F)"

#: ui/gtk.c:2032
msgid "_Copy"
msgstr "复制(_C)"

#: ui/gtk.c:2048
msgid "Zoom _In"
msgstr "放大(_I)"

#: ui/gtk.c:2055
msgid "Zoom _Out"
msgstr "缩小(_O)"

#: ui/gtk.c:2062
msgid "Best _Fit"
msgstr "最合适大小(_F)"

#: ui/gtk.c:2069
msgid "Zoom To _Fit"
msgstr "缩放以适应大小(_F)"

#: ui/gtk.c:2075
msgid "Grab On _Hover"
msgstr "鼠标经过时捕获(_H)"

#: ui/gtk.c:2078
msgid "_Grab Input"
msgstr "捕获输入(_G)"

#: ui/gtk.c:2107
msgid "Show _Tabs"
msgstr "显示标签页(_T)"

#: ui/gtk.c:2110
msgid "Detach Tab"
msgstr "分离标签页"

#: ui/gtk.c:2122
msgid "_Machine"
msgstr "虚拟机(_M)"

#: ui/gtk.c:2127
msgid "_View"
msgstr "视图(_V)"
