From e6aec78ccee7349516a32cc151285da7a7375901 Mon Sep 17 00:00:00 2001 From: Griatch Date: Fri, 3 May 2019 12:31:49 +0200 Subject: [PATCH] Add i18n for simplified chinese, courtesy of MaxAlex --- CHANGELOG.md | 3 + evennia/locale/zh/LC_MESSAGES/django.mo | Bin 0 -> 6725 bytes evennia/locale/zh/LC_MESSAGES/django.po | 333 ++++++++++++++++++++++++ 3 files changed, 336 insertions(+) create mode 100644 evennia/locale/zh/LC_MESSAGES/django.mo create mode 100644 evennia/locale/zh/LC_MESSAGES/django.po diff --git a/CHANGELOG.md b/CHANGELOG.md index 55ca761e56..0c21feada4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -150,6 +150,9 @@ Web/Django standard initiative (@strikaco) - Mail contrib was refactored to have optional Command classes `CmdMail` for OOC+IC mail (added to the CharacterCmdSet and `CmdMailCharacter` for IC-only mailing between chars (added to CharacterCmdSet) +### Translations + +- Simplified chinese, courtesy of user MaxAlex. ## Evennia 0.8 (2018) diff --git a/evennia/locale/zh/LC_MESSAGES/django.mo b/evennia/locale/zh/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..a0ec7c2c00710bf453510059e5bdc93bf02b0800 GIT binary patch literal 6725 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 literal 0 HcmV?d00001 diff --git a/evennia/locale/zh/LC_MESSAGES/django.po b/evennia/locale/zh/LC_MESSAGES/django.po new file mode 100644 index 0000000000..b093154282 --- /dev/null +++ b/evennia/locale/zh/LC_MESSAGES/django.po @@ -0,0 +1,333 @@ +# The Simplified Chinese translation for the Evennia server. +# Copyright (C) 2019 MaxAlex +# This file is distributed under the same license as the Evennia package. +# FIRST AUTHOR: MaxAlex , 2018- +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-05-03 17:04+0800\n" +"PO-Revision-Date: 2019-05-03 17:04+0800\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: zh-hans\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: .\accounts\accounts.py:440 +msgid "Account being deleted." +msgstr "用户已删除。" + +#: .\commands\cmdhandler.py:681 +msgid "There were multiple matches." +msgstr "发现多个匹配项。" + +#: .\commands\cmdhandler.py:704 +#, python-format +msgid "Command '%s' is not available." +msgstr "命令 '%s' 不可用。" + +#: .\commands\cmdhandler.py:709 +#, python-format +msgid " Maybe you meant %s?" +msgstr " 您指的是 %s 吗?" + +#: .\commands\cmdhandler.py:709 +msgid "or" +msgstr "或" + +#: .\commands\cmdhandler.py:711 +msgid " Type \"help\" for help." +msgstr " 键入 \"help\" 获得帮助。" + +#: .\commands\cmdsethandler.py:89 +#, python-brace-format +msgid "" +"{traceback}\n" +"Error loading cmdset '{path}'\n" +"(Traceback was logged {timestamp})" +msgstr "" +"{traceback}\n" +"读取CmdSet '{path}' 时发生错误 \n" +"(已记录 Traceback {timestamp})" + +#: .\commands\cmdsethandler.py:94 +#, python-brace-format +msgid "" +"Error loading cmdset: No cmdset class '{classname}' in '{path}'.\n" +"(Traceback was logged {timestamp})" +msgstr "" +"读取 CmdSet 时发生错误:在 '{path}' 处未找到 CmdSet '{classname}' 。\n" +"(已记录 Traceback {timestamp})" + +#: .\commands\cmdsethandler.py:98 +#, python-brace-format +msgid "" +"{traceback}\n" +"SyntaxError encountered when loading cmdset '{path}'.\n" +"(Traceback was logged {timestamp})" +msgstr "" +"{traceback}\n" +"读取在 '{path}' 处的 CmdSet 时发生 语法 错误。\n" +"(已记录 Traceback {timestamp})" + +#: .\commands\cmdsethandler.py:103 +#, python-brace-format +msgid "" +"{traceback}\n" +"Compile/Run error when loading cmdset '{path}'.\",\n" +"(Traceback was logged {timestamp})" +msgstr "" +"{traceback}\n" +"读取在 '{path}' 处的 CmdSet 时发生 编译/运行 错误。\",\n" +"(已记录 Traceback {timestamp})" + +#: .\commands\cmdsethandler.py:108 +#, python-brace-format +msgid "" +"\n" +"Error encountered for cmdset at path '{path}'.\n" +"Replacing with fallback '{fallback_path}'.\n" +msgstr "" +"\n" +"读取在 '{path}' 处的 CmdSet 时发生错误。\n" +"使用备选路径 '{fallback_path}' 。\n" + +#: .\commands\cmdsethandler.py:114 +#, python-brace-format +msgid "Fallback path '{fallback_path}' failed to generate a cmdset." +msgstr "在备选路径 '{fallback_path}' 处创建 CmdSet 失败。" + +#: .\commands\cmdsethandler.py:182 .\commands\cmdsethandler.py:192 +#, python-format +msgid "" +"\n" +"(Unsuccessfully tried '%s')." +msgstr "" +"\n" +"(尝试 '%s' 失败)。" + +#: .\commands\cmdsethandler.py:311 +#, python-brace-format +msgid "custom {mergetype} on cmdset '{cmdset}'" +msgstr "CmdSet '{cmdset}' 的自定义 {mergetype}" + +#: .\commands\cmdsethandler.py:314 +#, python-brace-format +msgid " : {current}" +msgstr "<合并 {mergelist} {mergetype},优先级 {prio}>: {current}" + +#: .\commands\cmdsethandler.py:322 +#, python-brace-format +msgid "" +" <{key} ({mergetype}, prio {prio}, {permstring})>:\n" +" {keylist}" +msgstr "" +" <{key} ({mergetype}, 优先级 {prio}, {permstring})>:\n" +" {keylist}" + +#: .\commands\cmdsethandler.py:426 +msgid "Only CmdSets can be added to the cmdsethandler!" +msgstr "只有 CmdSet 可以被添加给 cmdsethandler!" + +#: .\comms\channelhandler.py:100 +msgid "Say what?" +msgstr "您想说?" + +#: .\comms\channelhandler.py:105 +#, python-format +msgid "Channel '%s' not found." +msgstr "未找到频道 '%s' 。" + +#: .\comms\channelhandler.py:108 +#, python-format +msgid "You are not connected to channel '%s'." +msgstr "未连接至频道 '%s' 。" + +#: .\comms\channelhandler.py:112 +#, python-format +msgid "You are not permitted to send to channel '%s'." +msgstr "您未被允许在频道 '%s' 发送信息。" + +#: .\comms\channelhandler.py:155 +msgid " (channel)" +msgstr " (频道)" + +#: .\locks\lockhandler.py:236 +#, python-format +msgid "Lock: lock-function '%s' is not available." +msgstr "Lock:Lock函数 '%s' 不可用。" + +#: .\locks\lockhandler.py:249 +#, python-format +msgid "Lock: definition '%s' has syntax errors." +msgstr "Lock:定义 '%s' 发生语法错误。" + +#: .\locks\lockhandler.py:253 +#, python-format +msgid "" +"LockHandler on %(obj)s: access type '%(access_type)s' changed from " +"'%(source)s' to '%(goal)s' " +msgstr "" +"%(obj)s 上的 LockHandler: 访问类型 '%(access_type)s' 由 " +"'%(source)s' 改变为 '%(goal)s' " + +#: .\locks\lockhandler.py:320 +#, python-brace-format +msgid "Lock: '{lockdef}' contains no colon (:)." +msgstr "Lock:'{lockdef}' 缺少英文冒号 (:) 。" + +#: .\locks\lockhandler.py:328 +#, python-brace-format +msgid "Lock: '{lockdef}' has no access_type (left-side of colon is empty)." +msgstr "Lock: '{lockdef}' 无访问类型(冒号左侧缺少数据)。" + +#: .\locks\lockhandler.py:336 +#, python-brace-format +msgid "Lock: '{lockdef}' has mismatched parentheses." +msgstr "Lock: '{lockdef}' 英文括号不匹配。" + +#: .\locks\lockhandler.py:343 +#, python-brace-format +msgid "Lock: '{lockdef}' has no valid lock functions." +msgstr "Lock: '{lockdef}' 缺少合法Lock函数。" + +#: .\objects\objects.py:732 +#, python-format +msgid "Couldn't perform move ('%s'). Contact an admin." +msgstr "无法做出行动 ('%s')。请联系管理员。" + +#: .\objects\objects.py:742 +msgid "The destination doesn't exist." +msgstr "目的地不存在。" + +#: .\objects\objects.py:833 +#, python-format +msgid "Could not find default home '(#%d)'." +msgstr "无法定位默认寓所 '(#%d)' 。" + +#: .\objects\objects.py:849 +msgid "Something went wrong! You are dumped into nowhere. Contact an admin." +msgstr "出现错误!您进入了错误的地点。请联系管理员。" + +#: .\objects\objects.py:915 +#, python-format +msgid "Your character %s has been destroyed." +msgstr "您的角色 %s 被摧毁了。" + +#: .\scripts\scripthandler.py:53 +#, python-format +msgid "" +"\n" +" '%(key)s' (%(next_repeat)s/%(interval)s, %(repeats)s repeats): %(desc)s" +msgstr "" +"\n" +" '%(key)s' (%(next_repeat)s/%(interval)s, %(repeats)s repeats): %(desc)s" + +#: .\scripts\scripts.py:205 +#, python-format +msgid "" +"Script %(key)s(#%(dbid)s) of type '%(cname)s': at_repeat() error '%(err)s'." +msgstr "" +"'%(cname)s' 的脚本 %(key)s(#%(dbid)s): at_repeat() 出现 '%(err)s' 错误。" + +#: .\server\initial_setup.py:28 +msgid "" +"\n" +"Welcome to your new |wEvennia|n-based game! Visit http://www.evennia.com if " +"you need\n" +"help, want to contribute, report issues or just join the community.\n" +"As Account #1 you can create a demo/tutorial area with |w@batchcommand " +"tutorial_world.build|n.\n" +" " +msgstr "" +"\n" +"欢迎进入您的基于 |wEvennia|n 的游戏! 如果需要帮助、想要做些贡献、报告错误的话," +"请访问 http://www.evennia.com 。\n" +"\n" +"作为管理员,你可以使用 |w@batchcommand " +"tutorial_world.build|n 来创建一个演示/教程区域。\n" +" " + +#: .\server\initial_setup.py:92 +msgid "This is User #1." +msgstr "这是管理员。" + +#: .\server\initial_setup.py:105 +msgid "Limbo" +msgstr "边境" + +#: .\server\server.py:139 +msgid "idle timeout exceeded" +msgstr "连接超时" + +#: .\server\sessionhandler.py:386 +msgid " ... Server restarted." +msgstr " ... 服务器已启动。" + +#: .\server\sessionhandler.py:606 +msgid "Logged in from elsewhere. Disconnecting." +msgstr "异地登录。已断线。" + +#: .\server\sessionhandler.py:634 +msgid "Idle timeout exceeded, disconnecting." +msgstr "连接超时。已断线。" + +#: .\server\validators.py:50 +#, python-format +msgid "" +"%s From a terminal client, you can also use a phrase of multiple words if " +"you enclose the password in double quotes." +msgstr "" +"(%s) 在命令行客户端中,您可以使用英文引号将输入内容扩起," +"来使用包含空格的词组。" + +#: .\utils\evmenu.py:192 +#, python-brace-format +msgid "" +"Menu node '{nodename}' is either not implemented or caused an error. Make " +"another choice." +msgstr "" +"菜单节点 '{nodename}' 未实现或发生错误。" +"请尝试其他选项。" + +#: .\utils\evmenu.py:194 +#, python-brace-format +msgid "Error in menu node '{nodename}'." +msgstr "菜单节点 '{nodename}' 发生错误。" + +#: .\utils\evmenu.py:195 +msgid "No description." +msgstr "无描述。" + +#: .\utils\evmenu.py:196 +msgid "Commands: , help, quit" +msgstr "命令:, help, quit" + +#: .\utils\evmenu.py:197 +msgid "Commands: , help" +msgstr "命令: , help" + +#: .\utils\evmenu.py:198 +msgid "Commands: help, quit" +msgstr "命令: help, quit" + +#: .\utils\evmenu.py:199 +msgid "Commands: help" +msgstr "命令: help" + +#: .\utils\evmenu.py:200 +msgid "进行选择或者尝试键入 'help'。" +msgstr "" + +#: .\utils\utils.py:1866 +#, python-format +msgid "Could not find '%s'." +msgstr "无法找到 '%s'" + +#: .\utils\utils.py:1873 +#, python-format +msgid "More than one match for '%s' (please narrow target):\n" +msgstr "发现多个符合 '%s' 的匹配项 (请缩小范围):\n"