outcomes.invalid=\u4E0D\u662F\u5408\u6CD5\u5411\u5916\u8BF7\u6C42 outcomes.missing=\u6D88\u606F\u4E2D\u7F3A\u5C11\u8981\u6C42\u7684\u4FE1\u606F outcomes.sourcedid=\u65E0\u6CD5\u5904\u7406\u6E90id outcome.site.membership=\u4E0D\u662F\u6307\u5B9A\u7AD9\u70B9\u7684\u6210\u5458 outcome.no.assignment=\u6307\u5B9A\u7684\u8BC4\u5206\u4F5C\u4E1A\u4E0D\u5B58\u5728 outcome.grade.fail=\u50A8\u5B58\u6210\u7EE9\u5230\u6210\u7EE9\u518C\u5931\u8D25 outcome.no.validate=\u65E0\u6CD5\u9A8C\u8BC1\u6D88\u606F outcome.tool.finished=\u5916\u90E8\u5DE5\u5177\u5B8C\u6210 outcome.tool.lti_msg=\u5916\u90E8\u5DE5\u5177\u5DF2\u5B8C\u6210\uFF1A outcome.tool.lti_errormsg=\u5916\u90E8\u5DE5\u5177\u5B8C\u6210\u65F6\u53D1\u751F\u9519\u8BEF\uFF1A outcome.tool.close.window=\u7EE7\u7EED\u2026 outcomes.lori_api_token=lori_api_token\u9519\u8BEF setting.empty=\u7F3A\u5C11\u8BBE\u5B9A\u503C setting.save.fail=\u4FDD\u5B58\u8BBE\u7F6E\u65F6\u53D1\u751F\u9519\u8BEF setting.fail=\u65E0\u6CD5\u5904\u7406\u8BBE\u5B9A\u503C request.bad.url=\u8BF7\u6C42URL\u5730\u5740\u9519\u8BEF request.not.implemented=\u672A\u77E5\u8BF7\u6C42 deploy.register.valid=\u8BF7\u6C42\u683C\u5F0F\u4E0D\u6B63\u786E deploy.register.credentials=\u90E8\u7F72\u7F3A\u5C11\u8BC1\u4E66 deploy.register.signature=OAuth\u7B7E\u540D\u5931\u8D25 deploy.register.parse=JSON\u89E3\u6790\u5931\u8D25 deploy.register.notools=Profile\u4E2D\u6CA1\u6709\u5DE5\u5177 # from BasicLTIUtil.parseToolProfile deploy.register.launch=\u65E0\u6CD5\u786E\u5B9A\u51FA\u53D1URL deploy.register.messages=resource_handler\u4E0D\u80FD\u6709\u591A\u4E2Abasic-lti-launch-request deploy.register.nopath=basic-lti-launch-request\u4E2D\u5FC5\u987B\u8981\u6709\u8DEF\u5F84