# Copyright (C) 2006 SuSE Linux Products GmbH, Nuernberg # This file is distributed under the same license as the package. # msgid "" msgstr "" "Project-Id-Version: apparmor-parser\n" "Report-Msgid-Bugs-To: apparmor-general@forge.novell.com\n" "POT-Creation-Date: 2013-11-14 10:18-0800\n" "PO-Revision-Date: 2013-11-15 04:12+0000\n" "Last-Translator: Novell Language \n" "Language-Team: Novell Language \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-16 05:14+0000\n" "X-Generator: Launchpad (build 16831)\n" #: ../parser_include.c:113 msgid "Error: Out of memory.\n" msgstr "错误:内存不足。\n" #: ../parser_include.c:123 #, c-format msgid "Error: basedir %s is not a directory, skipping.\n" msgstr "错误:basedir %s 不是目录,正在跳过。\n" #: ../parser_include.c:137 #, c-format msgid "Error: Could not add directory %s to search path.\n" msgstr "错误:无法将目录 %s 添加到搜索路径。\n" #: ../parser_include.c:147 msgid "Error: Could not allocate memory.\n" msgstr "错误:无法分配内存。\n" #: ../parser_interface.c:69 ../parser_interface.c:72 msgid "Bad write position\n" msgstr "写入位置无效\n" #: ../parser_interface.c:72 ../parser_interface.c:75 msgid "Permission denied\n" msgstr "拒绝许可权限\n" #: ../parser_interface.c:75 ../parser_interface.c:78 msgid "Out of memory\n" msgstr "内存不足\n" #: ../parser_interface.c:78 ../parser_interface.c:81 msgid "Couldn't copy profile: Bad memory address\n" msgstr "" #: ../parser_interface.c:81 ../parser_interface.c:84 msgid "Profile doesn't conform to protocol\n" msgstr "配置文件未遵守协议\n" #: ../parser_interface.c:84 ../parser_interface.c:87 msgid "Profile does not match signature\n" msgstr "配置文件和签名不匹配\n" #: ../parser_interface.c:87 ../parser_interface.c:90 msgid "Profile version not supported by Apparmor module\n" msgstr "配置文件版本不受 Apparmor 模块支持\n" #: ../parser_interface.c:90 ../parser_interface.c:93 msgid "Profile already exists\n" msgstr "配置文件已存在\n" #: ../parser_interface.c:93 ../parser_interface.c:96 msgid "Profile doesn't exist\n" msgstr "配置文件不存在\n" #: ../parser_interface.c:96 ../parser_interface.c:99 msgid "Permission denied; attempted to load a profile while confined?\n" msgstr "" #: ../parser_interface.c:99 ../parser_interface.c:102 #, c-format msgid "Unknown error (%d): %s\n" msgstr "" #: ../parser_interface.c:116 ../parser_interface.c:119 #, c-format msgid "%s: Unable to add \"%s\". " msgstr "%s: 无法添加\"%s\"。 " #: ../parser_interface.c:121 ../parser_interface.c:124 #, c-format msgid "%s: Unable to replace \"%s\". " msgstr "%s: 无法替换\"%s\"。 " #: ../parser_interface.c:126 ../parser_interface.c:129 #, c-format msgid "%s: Unable to remove \"%s\". " msgstr "%s: 无法去除\"%s\"。 " #: ../parser_interface.c:131 ../parser_interface.c:134 #, c-format msgid "%s: Unable to write to stdout\n" msgstr "%s: 无法写入 stdout\n" #: ../parser_interface.c:135 ../parser_interface.c:138 #, c-format msgid "%s: Unable to write to output file\n" msgstr "" #: ../parser_interface.c:138 ../parser_interface.c:162 #: ../parser_interface.c:141 ../parser_interface.c:165 #, c-format msgid "%s: ASSERT: Invalid option: %d\n" msgstr "%s: 声明:无效选项: %d\n" #: ../parser_interface.c:147 ../parser_interface.c:150 #, c-format msgid "Addition succeeded for \"%s\".\n" msgstr "添加\"%s\"成功。\n" #: ../parser_interface.c:151 ../parser_interface.c:154 #, c-format msgid "Replacement succeeded for \"%s\".\n" msgstr "替换\"%s\"成功。\n" #: ../parser_interface.c:155 ../parser_interface.c:158 #, c-format msgid "Removal succeeded for \"%s\".\n" msgstr "去除\"%s\"成功。\n" #: ../parser_interface.c:251 ../parser_interface.c:254 #, c-format msgid "PANIC bad increment buffer %p pos %p ext %p size %d res %p\n" msgstr "PANIC 无效的递增缓冲区:%p pos %p ext %p size %d res %p\n" #: ../parser_interface.c:656 ../parser_interface.c:658 #, c-format msgid "profile %s network rules not enforced\n" msgstr "" #: ../parser_interface.c:666 msgid "Unknown pattern type\n" msgstr "" #: ../parser_interface.c:750 ../parser_interface.c:902 #: ../parser_interface.c:743 ../parser_interface.c:894 #, c-format msgid "Unable to open %s - %s\n" msgstr "无法打开 %s - %s\n" #: ../parser_interface.c:776 ../parser_interface.c:768 #, c-format msgid "Memory Allocation Error: Unable to remove ^%s\n" msgstr "内存分配错误:无法去除 ^%s\n" #: ../parser_interface.c:789 ../parser_interface.c:781 #, c-format msgid "Memory Allocation Error: Unable to remove %s:%s." msgstr "内存分配错误:无法去除 %s:%s。" #: ../parser_interface.c:810 ../parser_interface.c:802 msgid "unable to create work area\n" msgstr "无法创建工作区域\n" #: ../parser_interface.c:818 ../parser_interface.c:810 #, c-format msgid "unable to serialize profile %s\n" msgstr "无法序列化配置文件 %s\n" #: ../parser_interface.c:829 ../parser_interface.c:916 #: ../parser_interface.c:821 ../parser_interface.c:908 #, c-format msgid "%s: Unable to write entire profile entry\n" msgstr "%s: 无法写入整个配置文件项\n" #: ../parser_interface.c:839 ../parser_interface.c:831 #, c-format msgid "%s: Unable to write entire profile entry to cache\n" msgstr "" #: parser_lex.l:100 parser_lex.l:163 #, c-format msgid "Could not open '%s'" msgstr "" #: parser_lex.l:104 parser_lex.l:167 #, c-format msgid "fstat failed for '%s'" msgstr "" #: parser_lex.l:121 #, c-format msgid "opendir failed '%s'" msgstr "" #: parser_lex.l:152 #, c-format msgid "stat failed for '%s'" msgstr "" #: parser_lex.l:155 parser_lex.l:133 #, c-format msgid "Could not open '%s' in '%s'" msgstr "" #: parser_lex.l:284 parser_lex.l:322 parser_lex.l:362 parser_lex.l:399 #: parser_lex.l:469 parser_lex.l:655 parser_lex.l:586 #, c-format msgid "Found unexpected character: '%s'" msgstr "发现意外字符: '%s'" #: parser_lex.l:386 parser_lex.l:418 msgid "Variable declarations do not accept trailing commas" msgstr "" #: parser_lex.l:420 #, c-format msgid "(network_mode) Found unexpected character: '%s'" msgstr "(network_mode) 发现意外字符:“%s”" #: ../parser_main.c:333 ../parser_common.c:61 #, c-format msgid "Warning from %s (%s%sline %d): %s" msgstr "" #: ../parser_main.c:531 #, c-format msgid "%s: Could not allocate memory for subdomainbase mount point\n" msgstr "%s: 无法为子域基底装入点分配内存\n" #: ../parser_main.c:577 ../parser_main.c:616 #, c-format msgid "" "Warning: unable to find a suitable fs in %s, is it mounted?\n" "Use --subdomainfs to override.\n" msgstr "" "警告:无法在 %s 中找到合适的 fs,是否已装入?\n" "使用 --subdomainfs 覆盖。\n" #: ../parser_main.c:597 ../parser_main.c:635 #, c-format msgid "" "%s: Sorry. You need root privileges to run this program.\n" "\n" msgstr "" "%s:对不起。您需要 root 特权才能运行此程序。\n" "\n" #: ../parser_main.c:604 ../parser_main.c:642 #, c-format msgid "" "%s: Warning! You've set this program setuid root.\n" "Anybody who can run this program can update your AppArmor profiles.\n" "\n" msgstr "" "%s:警告!您已将此程序设置为 setuid root。\n" "任何可以运行此程序的人都可以更新 AppArmor 配置文件。\n" "\n" #: ../parser_main.c:704 ../parser_main.c:813 ../parser_main.c:836 #: ../parser_main.c:946 #, c-format msgid "Error: Could not read profile %s: %s.\n" msgstr "错误:无法读取配置文件 %s: %s。\n" #: ../parser_main.c:718 ../parser_misc.c:270 parser_yacc.y:227 #: parser_yacc.y:374 parser_yacc.y:386 parser_yacc.y:484 parser_yacc.y:586 #: parser_yacc.y:624 parser_yacc.y:939 parser_yacc.y:948 parser_yacc.y:960 #: parser_yacc.y:1008 parser_yacc.y:1019 parser_yacc.y:1101 parser_yacc.y:1119 #: parser_yacc.y:1126 ../parser_main.c:850 ../parser_main.c:1015 #: ../parser_main.c:1229 ../parser_main.c:1283 ../parser_misc.c:431 #: parser_yacc.y:268 parser_yacc.y:416 parser_yacc.y:426 parser_yacc.y:537 #: parser_yacc.y:626 parser_yacc.y:976 parser_yacc.y:1021 parser_yacc.y:1030 #: parser_yacc.y:1042 parser_yacc.y:1078 parser_yacc.y:1082 parser_yacc.y:1092 #: parser_yacc.y:1102 parser_yacc.y:1201 parser_yacc.y:1223 parser_yacc.y:1234 #: parser_yacc.y:1309 parser_yacc.y:1327 parser_yacc.y:1334 parser_yacc.y:1385 msgid "Memory allocation error." msgstr "内存分配错误。" #: ../parser_main.c:740 ../parser_main.c:872 #, c-format msgid "Cached load succeeded for \"%s\".\n" msgstr "" #: ../parser_main.c:744 ../parser_main.c:876 #, c-format msgid "Cached reload succeeded for \"%s\".\n" msgstr "" #: ../parser_main.c:910 ../parser_main.c:1058 #, c-format msgid "%s: Errors found in file. Aborting.\n" msgstr "%s: 文件中发现错误。正在中止。\n" #: ../parser_misc.c:426 ../parser_misc.c:597 msgid "" "Uppercase qualifiers \"RWLIMX\" are deprecated, please convert to lowercase\n" "See the apparmor.d(5) manpage for details.\n" msgstr "" "不允许使用大写限定符 “RWLIMX”,请转换为小写\n" "有关细节,请参见 apparmor.d(5) 手册页。\n" #: ../parser_misc.c:467 ../parser_misc.c:474 ../parser_misc.c:638 #: ../parser_misc.c:645 msgid "Conflict 'a' and 'w' perms are mutually exclusive." msgstr "冲突的“a”和“w”许可权限互相排斥。" #: ../parser_misc.c:491 ../parser_misc.c:662 msgid "Exec qualifier 'i' invalid, conflicting qualifier already specified" msgstr "Exec 限定符'i'无效,已指定了和其冲突的限定符" #: ../parser_misc.c:502 ../parser_misc.c:673 #, c-format msgid "" "Unconfined exec qualifier (%c%c) allows some dangerous environment variables " "to be passed to the unconfined process; 'man 5 apparmor.d' for details.\n" msgstr "" "无限制 exec 限定符 (%c%c) 允许将一些危险的环境变量传递到无限制的进程;有关细节,请参见“man 5 apparmor.d”。\n" #: ../parser_misc.c:510 ../parser_misc.c:551 ../parser_misc.c:681 #: ../parser_misc.c:722 #, c-format msgid "Exec qualifier '%c' invalid, conflicting qualifier already specified" msgstr "Exec 限定符“%c”无效,已指定了与其冲突的限定符" #: ../parser_misc.c:537 ../parser_misc.c:545 ../parser_misc.c:708 #: ../parser_misc.c:716 #, c-format msgid "" "Exec qualifier '%c%c' invalid, conflicting qualifier already specified" msgstr "执行限定符“%c%c”无效,与已经指定的限定符冲突" #: ../parser_misc.c:593 ../parser_misc.c:764 #, c-format msgid "Internal: unexpected mode character '%c' in input" msgstr "内部:输入中有意外方式字符“%c”" #: ../parser_misc.c:615 ../parser_misc.c:786 #, c-format msgid "Internal error generated invalid perm 0x%llx\n" msgstr "内部错误产生无效的权限 0x%llx\n" #: ../parser_misc.c:865 ../parser_symtab.c:561 ../parser_regex.c:626 #: ../parser_variable.c:229 #, c-format msgid "AppArmor parser error: %s\n" msgstr "AppArmor 语法分析器错误:%s\n" #: ../parser_merge.c:92 ../parser_merge.c:91 msgid "Couldn't merge entries. Out of Memory\n" msgstr "无法合并项。内存不足\n" #: ../parser_merge.c:111 ../parser_merge.c:113 #, c-format msgid "profile %s: has merged rule %s with conflicting x modifiers\n" msgstr "" #: parser_yacc.y:236 parser_yacc.y:277 msgid "Profile attachment must begin with a '/'." msgstr "" #: parser_yacc.y:260 parser_yacc.y:302 msgid "" "Profile names must begin with a '/', namespace or keyword 'profile' or 'hat'." msgstr "" #: parser_yacc.y:296 parser_yacc.y:338 #, c-format msgid "Failed to create alias %s -> %s\n" msgstr "无法创建别名 %s -> %s\n" #: parser_yacc.y:417 parser_yacc.y:460 msgid "Profile flag chroot_relative conflicts with namespace_relative" msgstr "" #: parser_yacc.y:421 parser_yacc.y:464 msgid "Profile flag mediate_deleted conflicts with delegate_deleted" msgstr "" #: parser_yacc.y:424 parser_yacc.y:467 msgid "" "Profile flag attach_disconnected conflicts with no_attach_disconnected" msgstr "" #: parser_yacc.y:427 parser_yacc.y:470 msgid "Profile flag chroot_attach conflicts with chroot_no_attach" msgstr "" #: parser_yacc.y:441 parser_yacc.y:484 msgid "Profile flag 'debug' is no longer valid." msgstr "配置文件标志“debug”不再有效。" #: parser_yacc.y:463 parser_yacc.y:506 #, c-format msgid "Invalid profile flag: %s." msgstr "无效的配置文件标志:%s。" #: parser_yacc.y:498 parser_yacc.y:520 parser_yacc.y:548 msgid "Assert: `rule' returned NULL." msgstr "声明:`rule'返回 NULL。" #: parser_yacc.y:501 parser_yacc.y:546 parser_yacc.y:552 parser_yacc.y:584 msgid "" "Invalid mode, in deny rules 'x' must not be preceded by exec qualifier 'i', " "'p', or 'u'" msgstr "模式无效,在拒绝规则中,“x”不能在执行限定符“i”、“p”或“u”之后" #: parser_yacc.y:524 parser_yacc.y:556 msgid "" "Invalid mode, 'x' must be preceded by exec qualifier 'i', 'p', 'c', or 'u'" msgstr "模式无效,“x”必须在执行限定符“i”、“p”、“c”或“u”之后" #: parser_yacc.y:549 parser_yacc.y:587 msgid "Invalid mode, 'x' must be preceded by exec qualifier 'i', 'p', or 'u'" msgstr "方式无效,“x”前面必须带有 exec 限定符“i”、“p”或“u”" #: parser_yacc.y:574 parser_yacc.y:612 parser_yacc.y:614 msgid "Assert: `network_rule' return invalid protocol." msgstr "声明:“network_rule”返回无效协议。" #: parser_yacc.y:649 parser_yacc.y:696 msgid "Assert: `change_profile' returned NULL." msgstr "声明:“change_profile”返回 NULL。" #: parser_yacc.y:680 parser_yacc.y:720 msgid "Assert: 'hat rule' returned NULL." msgstr "声明:'hat rule'返回 NULL。" #: parser_yacc.y:689 parser_yacc.y:729 msgid "Assert: 'local_profile rule' returned NULL." msgstr "声明:“local_profile rule”返回 NULL。" #: parser_yacc.y:824 parser_yacc.y:885 #, c-format msgid "Unset boolean variable %s used in if-expression" msgstr "取消设置 if 表达式中使用的布尔变量 %s" #: parser_yacc.y:882 parser_yacc.y:986 msgid "unsafe rule missing exec permissions" msgstr "不安全规则缺少 exec 许可权限" #: parser_yacc.y:901 parser_yacc.y:954 msgid "subset can only be used with link rules." msgstr "子集只能使用链接规则。" #: parser_yacc.y:903 parser_yacc.y:956 msgid "link and exec perms conflict on a file rule using ->" msgstr "链接和执行权限冲突,由于一个文件规则使用 ->" #: parser_yacc.y:905 parser_yacc.y:958 msgid "link perms are not allowed on a named profile transition.\n" msgstr "在命名的配置文件转换中,链接权限不受允许。\n" #: parser_yacc.y:921 parser_yacc.y:1003 #, c-format msgid "missing an end of line character? (entry: %s)" msgstr "是否缺少行结束字符?(项:%s)" #: parser_yacc.y:975 parser_yacc.y:985 parser_yacc.y:1057 parser_yacc.y:1067 msgid "Invalid network entry." msgstr "无效网络项。" #: parser_yacc.y:1039 parser_yacc.y:1048 parser_yacc.y:1254 #, c-format msgid "Invalid capability %s." msgstr "功能 %s 无效。" #: parser_yacc.y:1066 parser_yacc.y:1269 #, c-format msgid "AppArmor parser error for %s%s%s at line %d: %s\n" msgstr "" #: parser_yacc.y:1072 parser_yacc.y:1275 #, c-format msgid "AppArmor parser error,%s%s line %d: %s\n" msgstr "" #: ../parser_regex.c:244 #, c-format msgid "%s: Illegal open {, nesting groupings not allowed\n" msgstr "%s: 不合法的左侧大括号 {,不允许嵌套分组\n" #: ../parser_regex.c:265 ../parser_regex.c:274 #, c-format msgid "%s: Regex grouping error: Invalid number of items between {}\n" msgstr "%s: Regex 分组错误:{} 内的项目数无效\n" #: ../parser_regex.c:271 ../parser_regex.c:280 #, c-format msgid "" "%s: Regex grouping error: Invalid close }, no matching open { detected\n" msgstr "%s: Regex 分组错误:无效的右侧花括号 },未检测到匹配的左侧花括号 {\n" #: ../parser_regex.c:337 ../parser_regex.c:343 #, c-format msgid "" "%s: Regex grouping error: Unclosed grouping or character class, expecting " "close }\n" msgstr "%s: Regex 分组错误:组或字符类未关闭,需要右侧花括号 }\n" #: ../parser_regex.c:351 ../parser_regex.c:357 #, c-format msgid "%s: Internal buffer overflow detected, %d characters exceeded\n" msgstr "%s: 检测到内部缓冲区溢出,超过 %d 个字符\n" #: ../parser_regex.c:355 ../parser_regex.c:361 #, c-format msgid "%s: Unable to parse input line '%s'\n" msgstr "%s: 无法对输入行'%s'进行语法分析\n" #: ../parser_regex.c:397 ../parser_regex.c:405 #, c-format msgid "%s: Invalid profile name '%s' - bad regular expression\n" msgstr "" #: ../parser_policy.c:202 ../parser_policy.c:402 #, c-format msgid "ERROR merging rules for profile %s, failed to load\n" msgstr "合并配置文件 %s 的规则时出错,无法装载\n" #: ../parser_policy.c:234 #, c-format msgid "" "ERROR profile %s contains policy elements not usable with this kernel:\n" "\t'*', '?', character ranges, and alternations are not allowed.\n" "\t'**' may only be used at the end of a rule.\n" msgstr "" "错误 配置文件 %s 包含不能与此内核一起使用的策略元素:\n" "\t不允许“*”、“?”、字符范围,也不允许“或”操作。\n" "\t“**”只能在规则结尾处使用。\n" #: ../parser_policy.c:279 ../parser_policy.c:359 #, c-format msgid "ERROR processing regexs for profile %s, failed to load\n" msgstr "处理配置文件 %s 的 regex 时出错,无法装载\n" #: ../parser_policy.c:306 ../parser_policy.c:389 #, c-format msgid "ERROR expanding variables for profile %s, failed to load\n" msgstr "扩展配置文件 %s 的变量时出错,无法装载\n" #: ../parser_policy.c:390 ../parser_policy.c:382 #, c-format msgid "ERROR adding hat access rule for profile %s\n" msgstr "为配置文件 %s 添加 hat 访问规则时出错\n" #: ../parser_policy.c:490 ../parser_policy.c:271 #, c-format msgid "ERROR in profile %s, failed to load\n" msgstr "配置文件 %s 中存在错误,未能装载\n" #: ../parser_policy.c:675 #, c-format msgid "%s: Errors found during postprocessing. Aborting.\n" msgstr "%s:在后处理中发现错误。正在中止。\n" #: ../parser_policy.c:682 ../parser_policy.c:704 #, c-format msgid "%s: Errors found during regex postprocess. Aborting.\n" msgstr "%s:在 Regex 后处理中发现错误。正在中止。\n" #: ../parser_policy.c:689 #, c-format msgid "%s: Errors found during postprocess. Aborting.\n" msgstr "%s:在后处理中发现错误。正在中止。\n" #: ../parser_policy.c:696 #, c-format msgid "%s: Errors found in combining rules postprocessing. Aborting.\n" msgstr "%s: 在组合规则后处理中发现错误。正在中止。\n" #: parser_lex.l:180 #, c-format msgid "Could not process include directory '%s' in '%s'" msgstr "" #: ../parser_main.c:660 msgid "Feature buffer full." msgstr "" #: ../parser_main.c:1115 ../parser_main.c:1132 msgid "Out of memory" msgstr "" #: ../parser_main.c:1182 #, c-format msgid "Can't create cache directory: %s\n" msgstr "" #: ../parser_main.c:1185 #, c-format msgid "File in cache directory location: %s\n" msgstr "" #: ../parser_main.c:1188 #, c-format msgid "Can't update cache directory: %s\n" msgstr "" #: ../parser_misc.c:833 #, c-format msgid "Internal: unexpected DBus mode character '%c' in input" msgstr "" #: ../parser_misc.c:857 #, c-format msgid "Internal error generated invalid DBus perm 0x%x\n" msgstr "" #: parser_yacc.y:575 msgid "deny prefix not allowed" msgstr "" #: parser_yacc.y:612 msgid "owner prefix not allowed" msgstr "" #: parser_yacc.y:660 msgid "owner prefix not allow on mount rules" msgstr "" #: parser_yacc.y:677 msgid "owner prefix not allow on dbus rules" msgstr "" #: parser_yacc.y:704 msgid "owner prefix not allow on capability rules" msgstr "" #: parser_yacc.y:1357 #, c-format msgid "invalid mount conditional %s%s" msgstr "" #: parser_yacc.y:1374 msgid "bad mount rule" msgstr "" #: parser_yacc.y:1381 msgid "mount point conditions not currently supported" msgstr "" #: parser_yacc.y:1398 #, c-format msgid "invalid pivotroot conditional '%s'" msgstr "" #: ../parser_regex.c:241 #, c-format msgid "" "%s: Regex grouping error: Invalid close ], no matching open [ detected\n" msgstr "" #: ../parser_regex.c:257 #, c-format msgid "%s: Regex grouping error: Exceeded maximum nesting of {}\n" msgstr "" #: ../parser_policy.c:366 #, c-format msgid "ERROR processing policydb rules for profile %s, failed to load\n" msgstr "" #: ../parser_policy.c:396 #, c-format msgid "ERROR replacing aliases for profile %s, failed to load\n" msgstr ""