diff --git a/.hgtags b/.hgtags index ec219e24bf25210a1ab4d11608d47dd7791861a3..36fb80220db7a30531e6238743bf971cfd43a069 100644 --- a/.hgtags +++ b/.hgtags @@ -179,3 +179,4 @@ ced19a2138aadfc4039ebe223e60f5df63e70af2 OpenOLAT 11.2.3 6c5b3920efe9d0e7c28d10b3f10fd018d9776e8d OpenOLAT 11.2.4 aa02a5383a846d9b76620693f1713cc1f7a5c3b7 OpenOLAT 11.3.0 337b0fc7a050487d03ced1635bde15b0f42e7af7 OpenOLAT 11.3.1 +645a985d874cc6a08fd0abd38973b40e21d46161 OpenOLAT 11.3.2 diff --git a/src/main/java/org/olat/core/commons/chiefcontrollers/_i18n/LocalStrings_zh_CN.properties b/src/main/java/org/olat/core/commons/chiefcontrollers/_i18n/LocalStrings_zh_CN.properties index fc9f32d503317d61292e7c985a2882151eac0c69..7bf875fa0b1959ec84a17baa6b497a524814b0df 100644 --- a/src/main/java/org/olat/core/commons/chiefcontrollers/_i18n/LocalStrings_zh_CN.properties +++ b/src/main/java/org/olat/core/commons/chiefcontrollers/_i18n/LocalStrings_zh_CN.properties @@ -1,5 +1,6 @@ -#Sun Oct 09 05:05:08 CEST 2016 +#Tue Mar 28 14:18:25 CEST 2017 AssessmentManager=\u8BC4\u4F30\u5DE5\u5177 +Binder=\u7EC4\u5408 BinderTemplate=Portfolio 2.0 \u6A21\u677F BusinessGroup=\u4E8B\u52A1\u7EC4 CalendarManager=\u65E5\u5386 @@ -18,6 +19,7 @@ FileResource.ANIM=\u52A8\u753B FileResource.BLOG=\u535A\u5BA2 FileResource.DOC=Word FileResource.FILE=\u6587\u4EF6 +FileResource.FORM=\u8C03\u67E5\uFF08\u7EC4\u5408\uFF09 FileResource.GLOSSARY=\u672F\u8BED\u8BCD\u6C47\u8868 FileResource.IMAGE=\u56FE\u7247 FileResource.IMSCP=CP\u5B66\u4E60\u5185\u5BB9\u5305 @@ -40,6 +42,7 @@ GroupTask=\u4EFB\u52A1 Inbox=\u6536\u4EF6\u7BB1 InfoMessage=\u6D88\u606F LibrarySite=\u5E93 +PFCourseNode=\u4E0B\u62C9\u6846 ReturnboxController=\u53CD\u9988\u7BB1 SolutionController=\u793A\u4F8B\u65B9\u6848 User=\u7528\u6237 diff --git a/src/main/java/org/olat/core/commons/services/sms/ui/_i18n/LocalStrings_zh_CN.properties b/src/main/java/org/olat/core/commons/services/sms/ui/_i18n/LocalStrings_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..f400c5e8aa1f9822105650f52daf8b7bc6d7c2be --- /dev/null +++ b/src/main/java/org/olat/core/commons/services/sms/ui/_i18n/LocalStrings_zh_CN.properties @@ -0,0 +1,27 @@ +#Mon Mar 27 15:06:01 CEST 2017 +admin.configuration.description=\u77ED\u4FE1\u901A\u77E5\u662F\u4E00\u4E2A\u53EF\u9009\u7684\u7EC4\u4EF6\u3002\u8B66\u544A\uFF1A\u53D1\u9001\u77ED\u4FE1\u901A\u77E5\u9700\u8981\u4ED8\u8D39\uFF01 +admin.configuration.title=\u77ED\u4FE1\u914D\u7F6E +admin.enable=\u77ED\u4FE1\u53D1\u5E03 +admin.menu.title=SMS +admin.menu.title.alt=SMS\u914D\u7F6E\u548C\u7EDF\u8BA1 +admin.settings=SMS\u670D\u52A1\u914D\u7F6E +admin.statistics=SMS\u53D1\u9001 +confirm.sms.phone=<h3>\u77ED\u4FE1\u8BA4\u8BC1</h3><p>\u7CFB\u7EDF\u5141\u8BB8\u901A\u8FC7\u77ED\u4FE1\u9A8C\u8BC1\u91CD\u7F6E\u5BC6\u7801\u4E22\u5931\u3002\u8BF7\u8F93\u5165\u60A8\u7684\u624B\u673A\u53F7\u7801\u4EE5\u6FC0\u6D3B\u6B64\u670D\u52A1\u3002 +dont.activate=\u4E0D\u6FC0\u6D3B +error.invalid.token=code\u65E0\u6548 +error.phone.invalid=\u4E0D\u662F\u6709\u6548\u7684\u7535\u8BDD\u53F7\u7801\uFF08\u4F8B\u5982 +41 12 345 67 89\uFF09 +on=\u5F00\u542F +on.sms=SMS code +reset.password=\u91CD\u7F6E\u5BC6\u7801 +service=\u670D\u52A1 +sms.phone.number=\u79FB\u52A8\u7535\u8BDD +sms.phone.number.example=\u5FC5\u987B\u6309\u56FD\u9645\u683C\u5F0F\u8F93\u5165\u7535\u8BDD\u53F7\u7801\uFF08\u4F8B\u5982 +41 12 345 67 89\uFF09 +sms.phone.number.hint=+41 12 345 67 89 +sms.token=\u60A8\u7684\u4EE4\u724C\u662F{ 0 } +sms.token.number=Code +sms.token.number.explain=\u8BF7\u8F93\u51656\u4F4D\u6570\u5B57\u7684\u77ED\u4FE1\u9A8C\u8BC1\u7801\u3002\u5982\u679C1\u5206\u949F\u540E\u8FD8\u6CA1\u6709\u6536\u5230\u77ED\u4FE1\u9A8C\u8BC1\u7801\uFF0C\u8BF7\u786E\u8BA4\u60A8\u8F93\u5165\u4E86\u6B63\u786E\u7684\u56FD\u5BB6\u53F7\u7801\u3002 +start.sms.authentication=\u5F00\u59CB\u77ED\u4FE1\u8BA4\u8BC1 +table.header.month=\u6708\u4EFD +table.header.numOfMessages=\u77ED\u4FE1 +table.header.year=\u5E74 +warning.spi.not.configured=\u670D\u52A1\u672A\u8BBE\u7F6E diff --git a/src/main/java/org/olat/core/gui/render/velocity/VelocityTemplatesPreWarm.java b/src/main/java/org/olat/core/gui/render/velocity/VelocityTemplatesPreWarm.java index 8e7c09589e37c68fc04233e976328044fea5d4d1..72727061446f90598e224b7d6a96498511972a62 100644 --- a/src/main/java/org/olat/core/gui/render/velocity/VelocityTemplatesPreWarm.java +++ b/src/main/java/org/olat/core/gui/render/velocity/VelocityTemplatesPreWarm.java @@ -59,27 +59,26 @@ public class VelocityTemplatesPreWarm implements PreWarm { final File root = new File(WebappHelper.getContextRoot(), "WEB-INF/classes"); final Path fPath = root.toPath(); try { - Files.walkFileTree(fPath, new SimpleFileVisitor<Path>() { - - @Override - public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) { - try { - - String path = fPath.relativize(file).toString(); - if(path.endsWith(".html") && path.contains("/_content/")) { - StringOutput writer = new StringOutput(); - VelocityHelper.getInstance().mergeContent(path, context, writer, null); - - numOfTemplates.incrementAndGet(); + if(Files.exists(fPath)) { + Files.walkFileTree(fPath, new SimpleFileVisitor<Path>() { + @Override + public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) { + try { + String path = fPath.relativize(file).toString(); + if(path.endsWith(".html") && path.contains("/_content/")) { + StringOutput writer = new StringOutput(); + VelocityHelper.getInstance().mergeContent(path, context, writer, null); + numOfTemplates.incrementAndGet(); + } + } catch (ResourceNotFoundException e) { + log.error("", e); + } catch (ParseErrorException e) { + log.error("", e); } - } catch (ResourceNotFoundException e) { - log.error("", e); - } catch (ParseErrorException e) { - log.error("", e); + return FileVisitResult.CONTINUE; } - return FileVisitResult.CONTINUE; - } - }); + }); + } } catch (IOException e) { log.error("", e); } diff --git a/src/main/java/org/olat/course/nodes/_i18n/LocalStrings_zh_CN.properties b/src/main/java/org/olat/course/nodes/_i18n/LocalStrings_zh_CN.properties index 210e6faf6b52bdd4487ebeae498f7be5e1277467..bcb04ee9089d8826daab49b040634dd57990d038 100644 --- a/src/main/java/org/olat/course/nodes/_i18n/LocalStrings_zh_CN.properties +++ b/src/main/java/org/olat/course/nodes/_i18n/LocalStrings_zh_CN.properties @@ -1,12 +1,16 @@ -#Mon Oct 10 15:10:44 CEST 2016 +#Tue Mar 28 09:56:00 CEST 2017 editor.lock.message=\u672C\u5B66\u7A0B\u5143\u7D20\u6B63\u5728\u4FEE\u6539\uFF0C\u56E0\u6B64\u5DF2\u9501\u5B9A\u3002 editor.lock.title=\u5B66\u7A0B\u5143\u7D20\u5DF2\u9501\u5B9A +freezenoaccess.message=\u672C\u8BFE\u7A0B\u5904\u4E8E\u53EA\u8BFB\u6A21\u5F0F +freezenoaccess.title=\u4E0D\u53EF\u8BBF\u95EE guestnoaccess.message=\u6E38\u5BA2\u65E0\u6CD5\u8BBF\u95EE\u8BE5\u90E8\u5206\u5B66\u7A0B\u3002<p>\u4F60\u53EF\u4EE5\u6CE8\u518C\u4E3AOLAT\u7528\u6237\u6216\u8005\u901A\u8FC7\u4F60\u6240\u5728\u5927\u5B66\u7684\u9A8C\u8BC1\u624D\u53EF\u4EE5\u8BBF\u95EE\u8BE5\u90E8\u5206\u5B66\u7A0B</p>\u3002 guestnoaccess.title=\u6E38\u5BA2\u65E0\u6CD5\u8BBF\u95EE learningObjectives.title=\u63CF\u8FF0 +personal.title=\u6027\u80FD\u7EFC\u8FF0 preview.notavailable=\u65E0\u6CD5\u9884\u89C8\u8BE5\u5B66\u7A0B\u5143\u7D20\u3002 title_bc=\u6587\u4EF6\u5939 title_blog=\u535A\u5BA2 +title_checklist=\u68C0\u67E5\u6E05\u5355 title_cl=\u68C0\u67E5\u5217\u8868 title_co=\u7535\u5B50\u90AE\u4EF6 title_cp=CP\u5B66\u4E60\u5185\u5BB9\u5305 @@ -14,16 +18,21 @@ title_den=\u5165\u5B66\u65E5\u671F title_dialog=\u6587\u4EF6\u5BF9\u8BDD\u6846 title_en=\u5165\u5B66\u6CE8\u518C title_fo=\u8BBA\u575B +title_gta=\u7FA4\u7EC4\u4EFB\u52A1 title_iqself=\u81EA\u6D4B title_iqsurv=\u8C03\u67E5\u95EE\u5377 title_iqtest=\u6D4B\u9A8C +title_ita=\u4EFB\u52A1 title_ll=\u94FE\u63A5\u5217\u8868 title_ms=\u8BC4\u4F30 +title_pf=\u53C2\u5165\u8005\u6587\u4EF6\u5939 title_podcast=\u64AD\u5BA2 title_projectbroker=\u9879\u76EE\u7ECF\u7EAA\u4EBA +title_qti21assessment=\u6D4B\u9A8C (QTI 2.1) title_scorm=SCORM\u5B66\u4E60\u5185\u5BB9\u5305 title_sp=\u5185\u90E8html title_st=\u7ED3\u6784 title_ta=\u4EFB\u52A1 title_tu=\u5916\u90E8html +title_video=\u89C6\u5C4F title_wiki=\u7EF4\u57FA diff --git a/src/main/java/org/olat/course/nodes/basiclti/_i18n/LocalStrings_zh_CN.properties b/src/main/java/org/olat/course/nodes/basiclti/_i18n/LocalStrings_zh_CN.properties index fbbd86f0390c4e9406374e79c7b1134f2a545065..0a318c3c14caf141014be70953262d35fa7e4ad9 100644 --- a/src/main/java/org/olat/course/nodes/basiclti/_i18n/LocalStrings_zh_CN.properties +++ b/src/main/java/org/olat/course/nodes/basiclti/_i18n/LocalStrings_zh_CN.properties @@ -1,4 +1,4 @@ -#Wed Aug 25 10:19:17 CEST 2010 +#Tue Mar 28 11:40:36 CEST 2017 LTConfigForm.invalidurl=\u8BF7\u8F93\u5165\u4E00\u4E2A\u6709\u6548\u7684URL\u3002 LTConfigForm.key=\u5BC6\u94A5 LTConfigForm.key.example=\u4F8B\u5982\uFF1A12345 @@ -8,5 +8,57 @@ LTConfigForm.save=\u4FDD\u5B58 LTConfigForm.url=URL LTConfigForm.url.example=\u4F8B\u5982\uFF1Ahttp\://wiscrowd.appspot.com/wiscrowd/ LTConfigForm.user=\u7528\u6237\u540D - - +accept=\u6211\u63A5\u53D7\u6570\u636E\u4F20\u8F93 +accept.intro=\u4EE5\u4E0B\u9875\u9762\u662F\u4ECE\u5916\u90E8\u670D\u52A1\u5668\u52A0\u8F7D\u7684\u3002\u4E3A\u4E86\u8FD9\u4E2A\u76EE\u7684\uFF0C\u4F60\u7684\u4E00\u4E9B\u4E2A\u4EBA\u6570\u636E\u5C06\u88AB\u53D1\u9001\u5230\u5916\u90E8\u670D\u52A1\u5668\uFF0C\u5217\u51FA\u5982\u4E0B\u3002\u8BF7\u68C0\u67E5\u6570\u636E\u5E76\u63A5\u53D7\u6570\u636E\u7684\u4F20\u8F93\u3002 +accept.title=\u63A5\u53D7\u6570\u636E\u4F20\u8F93 +add=+ +assessable.label=\u4F20\u8F93\u5206\u6570 +attempts.yourattempts=$org.olat.course.nodes.scorm\:attempts.yourattempts +author.roles=\u4F5C\u8005 +coach.roles=\u6559\u5E08 +command.preview=\u663E\u793A\u9884\u89C8 +condition.accessibility.title=\u8BBF\u95EE +cshelp.lti1=LTI\u610F\u5473\u7740\u201C\u5B66\u4E60\u5DE5\u5177\u4E92\u64CD\u4F5C\u6027\u201D\uFF0C\u4EE3\u8868IMS\u6807\u51C6\uFF08\u5C06\u5916\u90E8\u5B66\u4E60\u5E94\u7528\u5D4C\u5165\u5230\u5B66\u4E60\u5E73\u53F0\u7684\u6807\u51C6\uFF09\u3002 +cutvalue.label=\u53CA\u683C\u5206\u6570 +display.config.custom=\u9644\u52A0\u5C5E\u6027 +display.config.doDebug=\u663E\u793A\u6240\u6709\u4F20\u8F93\u7684\u4FE1\u606F +display.config.free=\u6587\u672C +display.config.free.userprops=\u7528\u6237 +display.config.height=$org.olat.core.gui.control.generic.iframe\:height.label +display.config.sendEmail=\u4F20\u8F93email\u5730\u5740 +display.config.sendName=\u4F20\u8F93\u59D3\u540D +display.config.width=\u663E\u793A\u5BBD\u5EA6 +display.config.window=\u663E\u793A +display.config.window.fullScreen=\u53EA\u663E\u793A\u6A21\u5757\uFF0C\u9690\u85CFLMS(iFrame) +display.config.window.iframe=\u5D4C\u5165\u5728\u8BFE\u7A0B\u4E2D\uFF08iFrame\uFF09 +display.config.window.window=\u5728\u65B0\u7A97\u53E3\u4E2D\u6253\u5F00 +error.hostmissing.long=\u5728\u201C\u9875\u9762\u5185\u5BB9\u201D\u9875\u7B7E\uFF0C\u5FC5\u987B\u4E3A\u5916\u90E8\u9875\u9762\u201C{0}\u201D\u8BBE\u7F6E\u4E3B\u673A\u3002 +error.hostmissing.short=\u6CA1\u6709\u4E3A\u201C{0}\u201D\u6307\u5B9A\u4E3B\u673A\u3002 +form.error.wrongFloat=$org.olat.course.assessment\:form.error.wrongFloat +form.title=LTI\u9875\u9762\u7684\u8BBE\u7F6E +height.auto=$org.olat.core.gui.control.generic.iframe\:height.auto +pane.tab.accessibility=\u8BBF\u95EE +pane.tab.highscore=\u6700\u9AD8\u5206 +pane.tab.ltconfig=\u9875\u9762\u5185\u5BB9 +participant.roles=\u53C2\u5165\u8005 +passed.no=$org.olat.course.nodes.ms\:passed.no +passed.yes=$org.olat.course.nodes.ms\:passed.yes +passed.yourpassed=$org.olat.course.nodes.ms\:passed.yourpassed +popup.info=\u672C\u5B66\u4E60\u5185\u5BB9\u5C06\u5728\u65B0\u7A97\u53E3\u6253\u5F00\u3002\u5982\u679C\u65B0\u7A97\u53E3\u6CA1\u6709\u81EA\u52A8\u6253\u5F00\uFF0C\u8BF7\u70B9\u51FB\u4E0B\u9762\u7684\u94FE\u63A5\u3002 +popup.link=\u91CD\u65B0\u6253\u5F00\u5B66\u4E60\u5185\u5BB9 +preview=\u9884\u89C8 +remove=- +roles.lti.administrator=\u7BA1\u7406\u5458 +roles.lti.contentDeveloper=\u5B66\u4E60\u5185\u5BB9\u5F00\u53D1\u8005 +roles.lti.instructor=\u4EFB\u8BFE\u6559\u5E08 +roles.lti.learner=\u5B66\u4E60\u8005 +roles.lti.mentor=\u5BFC\u5E08 +roles.lti.teachingAssistant=\u6559\u5B66\u52A9\u7406 +roles.title.lti=LTI\u811A\u8272 +roles.title.oo=OpenOLAT\u811A\u8272 +scaleFactor=\u6BD4\u4F8B\u56E0\u5B50 +score.noscoreinfoyet=\u56E0\u4E3A\u60A8\u8FD8\u6CA1\u6709\u542F\u52A8LTI\u6A21\u5757\uFF0C\u8FD8\u6CA1\u6709\u5206\u6570\u3002 +score.title=$org.olat.course.nodes.scorm\:score.title +score.yourscore=\u6DFB\u52A0\u8BC4\u8BBA +start=\u542F\u52A8LTI\u5B66\u4E60\u6A21\u5757 +title_lti=LTI\u9875 diff --git a/src/main/java/org/olat/course/nodes/bc/_i18n/LocalStrings_zh_CN.properties b/src/main/java/org/olat/course/nodes/bc/_i18n/LocalStrings_zh_CN.properties index 4e11bdc46618fbdca94f8ec4a4c61e1f37f4fdfd..21f32e1bd42609c48013652643d6f10b6195c982 100644 --- a/src/main/java/org/olat/course/nodes/bc/_i18n/LocalStrings_zh_CN.properties +++ b/src/main/java/org/olat/course/nodes/bc/_i18n/LocalStrings_zh_CN.properties @@ -1,26 +1,31 @@ -#Tue Aug 17 15:38:16 CEST 2010 - - - - - - +#Tue Mar 28 11:58:21 CEST 2017 +chooseFolder=\u9009\u62E9\u6587\u4EF6\u5939 condition.accessDownloaders.title=\u53EA\u8BFB (\u4E0B\u8F7D) condition.accessUploaders.title=\u8BFB\u5199 (\u4E0A\u4F20/\u4E0B\u8F7D) +createButton=\u521B\u5EFA\u6587\u4EF6\u5939 +createPath=\u8981\u521B\u5EFA\u7684\u8DEF\u5F84 +error.missingfolder.long=\u6587\u4EF6\u5939\u8BBE\u7F6E\u4E0D\u5B8C\u6574 folder.view=\u6253\u5F00\u6587\u4EF6\u5939 - - - info.folder=\u5C06\u6587\u4EF6\u5B58\u5165\u6587\u4EF6\u5939 info.quota=\u4FEE\u6539\u8BE5\u6587\u4EF6\u5939\u914D\u989D +info.select=\u9009\u62E9\u6587\u4EF6\u5939 +info.sharedfolder=\u4E0D\u80FD\u4E0A\u4F20\u5230\u8BBE\u7F6E\u7684\u8D44\u6E90\u6587\u4EF6\u5939\uFF0C\u8BFE\u7A0B\u7684\u6240\u6709\u6210\u5458\u53EA\u6709\u8BFB\u53D6\uFF08\u4E0B\u8F7D\uFF09\u6743\u9650\u3002 +noFolder=\u9884\u7F6E\u7684\u6587\u4EF6\u5939\u4E0D\u5B58\u5728\uFF0C\u8BF7\u4E0E\u8BFE\u7A0B\u7BA1\u7406\u5458\u8054\u7CFB\u3002 pane.tab.accessibility=\u8BBF\u95EE\u6027 pane.tab.folder=\u6587\u4EF6\u5939\u914D\u7F6E +pathChoose=\u76EE\u6807\u6587\u4EF6 +pathChoose.auto=\u81EA\u52A8\u751F\u6210\u7684\u6587\u4EF6\u5939 +pathChoose.custom=\u4ECE\u8BFE\u7A0B\u5B58\u50A8\u9009\u62E9\u6587\u4EF6\u5939 peekview.allItemsLink=\u6240\u6709\u6587\u6863 preview.canDownload=\u5141\u8BB8\u4E0B\u8F7D preview.canUpload=\u5141\u8BB8\u4E0A\u4F20 preview.conf.toggle=\u5207\u6362\u914D\u7F6E \u5F00\u542F/\u5173\u95ED +preview.downloadfile=\u4E0B\u8F7D\u6587\u4EF6 preview.header=Configuration folder for simulated user preview.info=\u8BE5\u6587\u4EF6\u5939\u4E2D\u7684\u5185\u5BB9\u663E\u793A\u5982\u4E0B(\u53EA\u8BFB\!) preview.quotaKB=\u914D\u989D KB +subPathLab.dummy=\u8FD8\u6CA1\u6709\u8BBE\u7F6E\u6587\u4EF6\u5939 +subPathLab.label=\u6587\u4EF6\u8DEF\u5F84 title_bc=\u5171\u4EAB\u6587\u4EF6\u5939 warn.folderdelete=\u8B66\u544A\: \u8BE5\u6587\u4EF6\u5939\u4E2D\u7684\u6587\u4EF6\u90FD\u5C06\u5220\u9664 +warning.no.sharedfolder=\u8BBE\u7F6E\u7684\u8D44\u6E90\u6587\u4EF6\u5939\u4E0D\u518D\u5B58\u5728 diff --git a/src/main/java/org/olat/course/nodes/cal/_i18n/LocalStrings_zh_CN.properties b/src/main/java/org/olat/course/nodes/cal/_i18n/LocalStrings_zh_CN.properties index 8476403b64c42b9c8185d59845268c1ce443f86e..9171566b5c290fc75cb088d73e9ebd2fa52f7110 100644 --- a/src/main/java/org/olat/course/nodes/cal/_i18n/LocalStrings_zh_CN.properties +++ b/src/main/java/org/olat/course/nodes/cal/_i18n/LocalStrings_zh_CN.properties @@ -1,4 +1,4 @@ -#Thu Nov 05 14:27:46 CET 2015 +#Tue Mar 28 11:59:17 CEST 2017 calendar.date=\u65E5\u671F calendar.noEvents=\u60A8\u60F3\u8981\u4E86\u89E3\u7684\u65F6\u95F4\u6BB5\u5185\u65E0\u4EFB\u4F55\u65F6\u95F4 calendar.subject=\u63CF\u8FF0 @@ -6,7 +6,7 @@ calendar.title=\u65E5\u5386 calendar.today=\u4ECA\u5929 condition.accessibility.title=\u8BFB\u53D6 condition.editable.title=\u521B\u5EFA/\u7F16\u8F91\u4E8B\u4EF6 - +fhelp.start_date=\u786E\u5B9A\u662F\u5426\u8981\u663E\u793A\u5F53\u524D\u65E5\u5386\u5468\u6216\u9884\u8BBE\u65E5\u671F\uFF08\u4F8B\u5982\u67D0\u5B66\u671F\u7684\u4E00\u5468\uFF09\u3002 pane.tab.accessibility=\u8BBF\u95EE pane.tab.auto_date=\u5F53\u524D\u65E5\u671F pane.tab.calconfig=\u914D\u7F6E\u65E5\u5386 diff --git a/src/main/java/org/olat/course/nodes/cl/ui/_i18n/LocalStrings_zh_CN.properties b/src/main/java/org/olat/course/nodes/cl/ui/_i18n/LocalStrings_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..643ccdf886b26e6155256d1dd56fcbc7ac21335b --- /dev/null +++ b/src/main/java/org/olat/course/nodes/cl/ui/_i18n/LocalStrings_zh_CN.properties @@ -0,0 +1,65 @@ +#Tue Mar 28 12:45:19 CEST 2017 +add.checkbox=\u6DFB\u52A0\u590D\u9009\u6846 +assessment=\u8BC4\u4F30 +assessment.checkbox.description=\u7F16\u8F91\u6BCF\u4E2A\u590D\u9009\u6846\uFF1A\u5E94\u7528\u590D\u9009\u6846\u8FC7\u6EE4\u5668\u7F16\u8F91\u6240\u6709\u53C2\u4E0E\u8005\u76F8\u540C\u7684\u590D\u9009\u6846\u3002 +award.point.on=\u8BB0\u5206 +box.assessment=\u7F16\u8F91\u5355\u4E2A\u590D\u9009\u6846 +box.check=\u5355\u9009 +box.points=\u5206\u6570 +box.points.info=({0} \u5206) +checkbox.title=\u6807\u9898 +checklist=\u6E05\u5355 +checklist.point.example=\u5206\u6570\uFF08\u6700\u4F4E\uFF1A{0}/\u6700\u9AD8\uFF1A{1}\uFF09 +checklist.update.assessment=\u66F4\u65B0\u6240\u6709\u8BFE\u7A0B\u53C2\u5165\u8005\u7684\u8BC4\u4F30\u4FE1\u606F\u3002 +checklist.update.efficiencystatements=\u66F4\u65B0\u6240\u6709\u7528\u6237\u7684\u8BC1\u4E66\u3002 +coach.desc=\u5728\u4E0B\u9762\u7684\u5217\u8868\u4E2D\uFF0C\u60A8\u5C06\u627E\u5230\u60A8\u6240\u6559\u8BFE\u7A0B\u7684\u6240\u6709\u53C2\u5165\u8005\u3002\u9009\u62E9"$\:table.header.edit.checkbox" \u4FEE\u6539\u590D\u9009\u6807\u8BB0\u6216\u53C2\u5165\u8005\u7684\u5206\u6570 +coach.due.date.desc=\u8BF7\u6CE8\u610F\uFF0C\u672C\u6E05\u5355\u6709\u622A\u81F3\u65E5\u671F\u3002\u4F5C\u4E3A\u4E00\u540D\u6559\u5E08\uFF0C\u60A8\u5E94\u8BE5\u5728\u6700\u540E\u671F\u9650\u5230\u671F\u540E\u8FDB\u884C\u4FEE\u6539\u3002 +comment.nocomment=$org.olat.course.nodes.ms\:comment.nocomment +comment.title=$org.olat.course.nodes.ms\:comment.title +condition.accessibility.title=\u8BBF\u95EE +config.checkbox.description=\u70B9\u51FB "$\:add.checkbox" \u521B\u5EFA\u590D\u9009\u6846\u6216\u9009\u62E9"$org.olat.core\:edit" \u8BBE\u7F6E\u73B0\u6709\u590D\u9009\u6846\u3002 +config.checkbox.title=$\:pane.tab.checkbox +config.comment=\u4E2A\u4EBA\u8BC4\u8BBA +config.cutvalue=\u901A\u8FC7\u5206\u6570\u7EBF +config.description=\u9009\u62E9\u6E05\u5355\u7684\u622A\u6B62\u65E5\u671F\uFF0C\u622A\u6B62\u65E5\u671F\u540E\u6E05\u5355\u5BF9\u6240\u6709\u7528\u6237\u9501\u5B9A\u3002\u901A\u8FC7\u72B6\u6001\u6216\u5206\u6570\u7684\u4FE1\u606F\u5728\u8FD9\u91CC\u6FC0\u6D3B\u3002 +config.due.date=\u622A\u6B62\u65E5\u671F +config.due.date.on=\u622A\u6B62\u65E5\u671F\u9501\u5B9A\u7528\u6237\u6E05\u5355 +config.output=\u663E\u793A\u7C7B\u578B +config.output.coach=\u5BFC\u5E08\u624B\u52A8 +config.output.cutvalue=\u81EA\u52A8\uFF08\u6309\u5206\u6570\u7EBF\uFF09 +config.output.sum=\u81EA\u52A8\uFF08\u6309\u590D\u9009\u6846\u4E2A\u6570\uFF09 +config.passed=\u663E\u793A\u901A\u8FC7/\u672A\u901A\u8FC7 +config.points=\u5F97\u5206 +config.points.max=\u6700\u9AD8\u5206\u6570 +config.points.min=\u6700\u4F4E\u5206\u6570 +config.points.on=\u590D\u9009\u6846\u603B\u6570 +config.tip.coach=\u7ED9\u5BFC\u5E08\u7684\u901A\u77E5 +config.tip.user=\u7ED9\u6240\u6709\u7528\u6237\u7684\u901A\u77E5 +config.title=\u6E05\u5355\u8BBE\u7F6E +config.warning.inuse=\u7528\u6237\u5DF2\u7ECF\u9009\u62E9\u4E86\u590D\u9009\u6846\uFF0C\u4FEE\u6539\u5206\u6570\u4F1A\u5F71\u54CD\u4ED6\u4EEC\u7684\u6210\u7EE9\u3002 +description=\u63CF\u8FF0 +details=\u7EC6\u8282 +done.by=\u5B8C\u6210\u4E8E\uFF1A +edit.checkbox=\u7F16\u8F91\u590D\u9009\u6846 +file=\u6587\u4EF6 +filter.all=\u5168\u90E8\u663E\u793A +form.error.date=\u5FC5\u987B\u6307\u5B9A\u65E5\u671F +form.error.scoreOutOfRange=$org.olat.course.assessment\:form.error.scoreOutOfRange +form.error.wrongFloat=$org.olat.course.nodes.ms\:form.error.wrongFloat +info.title=$org.olat.course.nodes.ms\:info.title +label=\u6807\u7B7E +label.achieved=\u5F52\u6863 +label.controlled=\u5DF2\u9A8C\u8BC1 +label.done=\u5B8C\u6210 +label.fulfilled=\u5DF2\u5B8C\u6210 +label.inWork=\u5DF2\u5904\u7406 +label.passed=\u901A\u8FC7 +label.present=Attendant +label.presented=Presented +num.of.checklist=\u6570\u91CF +pane.tab.accessibility=\u8BBF\u95EE +pane.tab.checkbox=\u590D\u9009\u6846 +pane.tab.clconfig=\u8BBE\u7F6E +pane.tab.highscore=\u6700\u9AD8\u5206 +participants=\u6210\u5458 +passed.cut=$org.olat.course.nodes.ms\:passed.cut diff --git a/src/main/java/org/olat/course/nodes/gta/manager/GTAManagerImpl.java b/src/main/java/org/olat/course/nodes/gta/manager/GTAManagerImpl.java index bba5000030c01bb284bddbb616a09adaba03c344..b1e4a9023709f4582c0afe4cb31dd7694b0dee4d 100644 --- a/src/main/java/org/olat/course/nodes/gta/manager/GTAManagerImpl.java +++ b/src/main/java/org/olat/course/nodes/gta/manager/GTAManagerImpl.java @@ -26,10 +26,12 @@ import java.nio.file.Paths; import java.util.ArrayList; import java.util.Collections; import java.util.Date; +import java.util.HashMap; import java.util.HashSet; -import java.util.Iterator; import java.util.List; +import java.util.Map; import java.util.Set; +import java.util.concurrent.atomic.AtomicInteger; import javax.persistence.LockModeType; import javax.persistence.Query; @@ -889,18 +891,6 @@ public class GTAManagerImpl implements GTAManager, DeletableGroupData { } protected String nextSlotRoundRobin(String[] slots, List<String> usedSlots) { - //remove previous rounds - Set<String> usedOnce = new HashSet<>(); - for(Iterator<String> usedSlotIt=usedSlots.iterator(); usedSlotIt.hasNext(); ) { - String usedSlot = usedSlotIt.next(); - if(usedOnce.contains(usedSlot)) { - usedSlotIt.remove(); - } else { - usedOnce.add(usedSlot); - } - } - - //usedSlots are cleaned and contains only current round String nextSlot = null; for(String slot:slots) { if(!usedSlots.contains(slot)) { @@ -909,11 +899,41 @@ public class GTAManagerImpl implements GTAManager, DeletableGroupData { } } + //not found an used slot if(nextSlot == null) { - //begin a new round - if (slots.length > 0) { - nextSlot = slots[0]; + //statistics + Map<String,AtomicInteger> usages = new HashMap<>(); + for(String usedSlot:usedSlots) { + if(usages.containsKey(usedSlot)) { + usages.get(usedSlot).incrementAndGet(); + } else { + usages.put(usedSlot, new AtomicInteger(1)); + } + } + + int minimum = Integer.MAX_VALUE; + for(AtomicInteger slotUsage:usages.values()) { + minimum = Math.min(minimum, slotUsage.get()); } + Set<String> slotsWithMinimalUsage = new HashSet<>(); + for(Map.Entry<String, AtomicInteger> slotUsage:usages.entrySet()) { + if(slotUsage.getValue().get() == minimum) { + slotsWithMinimalUsage.add(slotUsage.getKey()); + } + } + + //found the next slot with minimal usage + for(String slot:slots) { + if(slotsWithMinimalUsage.contains(slot)) { + nextSlot = slot; + break; + } + } + } + + //security + if(nextSlot == null && slots.length > 0) { + nextSlot = slots[0]; } return nextSlot; } diff --git a/src/main/java/org/olat/course/nodes/iq/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/course/nodes/iq/_i18n/LocalStrings_it.properties index c91c1a18de9432b7084e85f4faab047f8a955632..0aea979b95e3922a776642671de4033095433d2a 100644 --- a/src/main/java/org/olat/course/nodes/iq/_i18n/LocalStrings_it.properties +++ b/src/main/java/org/olat/course/nodes/iq/_i18n/LocalStrings_it.properties @@ -1,4 +1,4 @@ -#Mon Mar 20 13:19:39 CET 2017 +#Tue Mar 28 11:56:35 CEST 2017 Intro.self=Prema su "Avviare" per cominciare l'autotest. Intro.surv=Prema su "Avviare" per cominciare il questionario. Intro.test=Prema su "Avviare" per cominciare il test. @@ -47,6 +47,7 @@ error.test.undefined.long=Non \u00E8 definito alcun test per "{0}". Ne selezioni error.test.undefined.short=Non \u00E8 definito alcun test per "{0}". fieldset.chosecreateeditfile=Testo informativo (pagina HTML) file.name=File selezionato +hour.short=h info.assessment=I risultati di questo test possono essere visionati dagli amministratori e dai tutori di questo corso. info.nodedelete=I dati finora raccolti su questo elemento di corso vengono archiviati nella Sua cartella personale sotto private/archive/[nome del corso]/. info.selfassessment=I risultati di questo autotest <b>non</b> non possono essere visionati dagli amministratori e dai tutori di questo corso. diff --git a/src/main/java/org/olat/course/nodes/projectbroker/service/ProjectBrokerExportGenerator.java b/src/main/java/org/olat/course/nodes/projectbroker/service/ProjectBrokerExportGenerator.java index cb95af8abffaba380daf0a609e12bffaca5505e1..cf648a1019233668f8b24bed096df762da609759 100644 --- a/src/main/java/org/olat/course/nodes/projectbroker/service/ProjectBrokerExportGenerator.java +++ b/src/main/java/org/olat/course/nodes/projectbroker/service/ProjectBrokerExportGenerator.java @@ -39,6 +39,7 @@ import org.olat.core.logging.Tracing; import org.olat.core.util.Util; import org.olat.course.ICourse; import org.olat.course.nodes.CourseNode; +import org.olat.course.nodes.projectbroker.ProjectBrokerControllerFactory; import org.olat.course.nodes.projectbroker.datamodel.CustomField; import org.olat.course.nodes.projectbroker.datamodel.Project; import org.olat.course.nodes.projectbroker.datamodel.ProjectEvent; @@ -66,7 +67,7 @@ public class ProjectBrokerExportGenerator { * @return String */ public static String createCourseResultsOverviewTable(CourseNode courseNode, ICourse course, Locale locale) { - Translator translator = Util.createPackageTranslator(ProjectBrokerExportGenerator.class, locale); + Translator translator = Util.createPackageTranslator(ProjectBrokerControllerFactory.class, locale); StringBuilder table = new StringBuilder(); ProjectBrokerModuleConfiguration moduleConfig = new ProjectBrokerModuleConfiguration(courseNode.getModuleConfiguration()); diff --git a/src/main/java/org/olat/course/nodes/scorm/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/course/nodes/scorm/_i18n/LocalStrings_it.properties index fc60edaff3a2e4b7114eaf4cffb778d56dd8d7ce..7c783066a02ade3c3b64794ce7ad24cbdc942cfb 100644 --- a/src/main/java/org/olat/course/nodes/scorm/_i18n/LocalStrings_it.properties +++ b/src/main/java/org/olat/course/nodes/scorm/_i18n/LocalStrings_it.properties @@ -1,4 +1,4 @@ -#Wed Jun 29 15:28:09 CEST 2016 +#Tue Mar 28 11:56:52 CEST 2017 advance.score.label=Impedire la diminuzione del punteggio per tentativi successivi assessable.label=Riportare punti da SCORM assessable.type.none=Non trasferire informazioni sul punteggio @@ -35,6 +35,7 @@ no.cp.chosen=<i>Nessun contenuto didattico SCORM selezionato</i> pane.tab.accessibility=Accesso pane.tab.cpconfig=Contenuto didattico pane.tab.delivery=$org.olat.core.gui.control.generic.iframe\:option.delivery +pane.tab.highscore=Classifica passed.no=Non superato passed.yes=Superato passed.yourpassed=Stato diff --git a/src/main/java/org/olat/course/nodes/st/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/course/nodes/st/_i18n/LocalStrings_it.properties index 73e2f5ac142c724f7d3fb8c0ecc575b420acb0a2..715edf16493f80e52d257c341f26152495a26c52 100644 --- a/src/main/java/org/olat/course/nodes/st/_i18n/LocalStrings_it.properties +++ b/src/main/java/org/olat/course/nodes/st/_i18n/LocalStrings_it.properties @@ -1,4 +1,4 @@ -#Wed Feb 01 14:16:35 CET 2017 +#Tue Mar 28 11:57:32 CEST 2017 calcedpassed=Stato calcedscore=Punteggio certification=Attestato di efficienza @@ -24,6 +24,7 @@ form.system=visione d'insieme automatica manual=Impostare manualmente pane.tab.accessibility=Accesso pane.tab.deliveryOptions=$org.olat.core.gui.control.generic.iframe\:option.delivery +pane.tab.highscore=Punteggio pane.tab.st_config=Visione d'insieme pane.tab.st_scorecalculation=Punteggio passed.no=Non superato diff --git a/src/main/java/org/olat/ims/qti/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/ims/qti/_i18n/LocalStrings_it.properties index 068ad1caee25608b30ea8d4ca484083fc790b384..308e177b530edc990b85fc8e53519e3ff58d3fe9 100644 --- a/src/main/java/org/olat/ims/qti/_i18n/LocalStrings_it.properties +++ b/src/main/java/org/olat/ims/qti/_i18n/LocalStrings_it.properties @@ -1,4 +1,4 @@ -#Tue Feb 07 13:12:04 CET 2017 +#Tue Mar 28 12:02:05 CEST 2017 DetailedResults=Risultati dettagliati ERROR_ASSESSMENT_OUTOFTIME=Il tempo a disposizione per questo test \u00E8 stato superato. ERROR_ITEM_OUTOFTIME=Il tempo a disposizione per questa domanda \u00E8 stato superato. @@ -27,6 +27,7 @@ column.header.assesspoints=Punteggio column.header.date=Data column.header.details=Dettagli column.header.duration=Durata +convert.qti21.hint=\u00C8 possibile trovare informazioni sulla conversione da QTI 1.2 a QTI 2.0 nel manuale date=Data days=Giorni dur=Durata diff --git a/src/main/java/org/olat/ims/qti/export/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/ims/qti/export/_i18n/LocalStrings_it.properties index 62875dd83a733d06f470394ec4c50b83df0f2e95..b4b0809ae19eb4175f91ab6fa84e1b277e9393d0 100644 --- a/src/main/java/org/olat/ims/qti/export/_i18n/LocalStrings_it.properties +++ b/src/main/java/org/olat/ims/qti/export/_i18n/LocalStrings_it.properties @@ -1,8 +1,9 @@ -#Mon Feb 13 14:10:47 CET 2017 +#Tue Mar 28 12:02:16 CEST 2017 action.choose=Archiviare archive.all.users=Utenti (Tutti i gruppi di utenti, es. autori, partecipanti ecc.) archive.anonymous.users=Utenti anonimi (ospiti) archive.noresults=Non \u00E8 ancora stato salvato alcun risultato per questo elemento di corso. +archive.noresults.short=Nessun risultato per questo elemento di corso archive.participants=Partecipanti (corso e gruppi collegati) archive.results.successfully=<b>I risultati sono stati salvati nella Sua cartella personale.</b> archive.wizard.title=Archivio di test e questionari diff --git a/src/main/java/org/olat/ims/qti/resultexport/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/ims/qti/resultexport/_i18n/LocalStrings_it.properties index 93b51da3c118b58bf417e3323b3bc5b48b2a08bc..2a71eea400ae735fc099b093d0ccee5f3bf681ac 100644 --- a/src/main/java/org/olat/ims/qti/resultexport/_i18n/LocalStrings_it.properties +++ b/src/main/java/org/olat/ims/qti/resultexport/_i18n/LocalStrings_it.properties @@ -1,9 +1,10 @@ -#Tue Feb 07 13:25:33 CET 2017 +#Tue Mar 28 12:02:20 CEST 2017 button.export=Risultati dell'esportazione button.return=Indietro button.show=Mostrare detail.results=Risultati dettagliati error.no.assessed.users=Nessuna valutazione disponibile +export.folder.name=Risultati table.all.firstname=Nome table.all.id=ID table.all.lastname=Cognome diff --git a/src/main/java/org/olat/ims/qti21/resultexport/_i18n/LocalStrings_zh_CN.properties b/src/main/java/org/olat/ims/qti21/resultexport/_i18n/LocalStrings_zh_CN.properties index f25c5a9e19b779ba793296ef113fbc890720403a..a9c1f6f7698b4fd37dd0f40f5d58d6f6564427dc 100644 --- a/src/main/java/org/olat/ims/qti21/resultexport/_i18n/LocalStrings_zh_CN.properties +++ b/src/main/java/org/olat/ims/qti21/resultexport/_i18n/LocalStrings_zh_CN.properties @@ -1,4 +1,4 @@ -#Sat Mar 18 16:35:59 CET 2017 +#Tue Mar 28 03:55:26 CEST 2017 button.export=\u5BFC\u51FA\u7ED3\u679C button.return=\u8FD4\u56DE button.show=\u663E\u793A @@ -13,7 +13,10 @@ table.all.tries=\u5C1D\u8BD5 table.all.username=\u7528\u6237\u540D table.grading=\u8BC4\u5206 table.overview=\u6982\u8FF0 +table.user.attempt=Attempt_ table.user.date=\u65E5\u671F table.user.duration=\u6301\u7EED\u65F6\u95F4 +table.user.email=Email +table.user.id=ID table.user.score=\u5206\u6570 table.user.trial=\u5C1D\u8BD5 diff --git a/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_zh_CN.properties b/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_zh_CN.properties index f34a8c8e8840f9c10d4bc5ff3513c0220141b324..4fbd927bdc1fb7beb332cc0681b46822f58381ae 100644 --- a/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_zh_CN.properties +++ b/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_zh_CN.properties @@ -1,4 +1,4 @@ -#Sun Mar 19 10:47:48 CET 2017 +#Tue Mar 28 13:48:09 CEST 2017 actualPoints=$org.olat.modules.iq\:actualPoints admin.menu.title=QTI 2.1 admin.menu.title.alt=QTI 2.1 \u8BBE\u7F6E @@ -57,7 +57,9 @@ confirm.finish.test.text=\u5B8C\u6210/\u786E\u5B9A\u5417\uFF1F\u8FD9\u5C06\u63D0 confirm.finish.test.title=\u6D4B\u8BD5\u5B8C\u6210 confirm.finish.testpart.text=\u5B8C\u6210/\u786E\u5B9A\u5417\uFF1F\u8FD9\u5C06\u63D0\u4EA4\u6D4B\u8BD5\u90E8\u5206\u7684\u7B54\u5377\u3002 confirm.finish.testpart.title=\u6D4B\u8BD5\u90E8\u5206\u5B8C\u6210 +confirm.suspend.test=$org.olat.modules.iq\:confirmSuspend confirmation=\u786E\u8BA4 +correct.solution=\u6B63\u786E\u7684\u89E3\u51B3\u65B9\u6848 correction=\u8BC4\u5206 debug.outcomes=\u8F93\u51FA\u6570\u636E debug.responses=\u54CD\u5E94\u6570\u636E @@ -68,12 +70,16 @@ digital.signature.certificate.hint=\u8BC1\u4E66\u5FC5\u987B\u4EE5\u79C1\u94A5pfx digital.signature.certificate.password=\u8BC1\u4E66\u5BC6\u7801 digital.signature.download=\u6D4B\u8BD5\u56DE\u6267 digital.signature.download.link=\u4E0B\u8F7D +digital.signature.mail.body=\u4F5C\u4E3A\u8FD9\u4E2A\u7535\u5B50\u90AE\u4EF6\u4E2D\u7684\u9644\u4EF6\uFF0C\u60A8\u53EF\u4EE5\u627E\u5230\u4EE5\u4E0B\u5728\u7EBF\u6D4B\u8BD5\u7684\u6570\u5B57\u7B7E\u540D\uFF1A\r\n\u6D4B\u8BD5{ 0 }\uFF08{ 1 }\uFF09\r\n\u65E5\u671F\uFF1A{ 6 }\r\n\u4ED4\u7EC6\u4FDD\u5B58\u6D4B\u8BD5\u7684\u6570\u5B57\u7B7E\u540D\u3002\u5B83\u53EF\u4EE5\u8BC1\u660E\u60A8\u5728\u4E0A\u8FF0\u65F6\u95F4\u5DF2\u7ECF\u5B8C\u6210\u4E86\u8FD9\u4E2A\u6D4B\u8BD5\uFF0C\u5E76\u5305\u542B\u786E\u8BA4\u6240\u4FDD\u5B58\u4FE1\u606F\u771F\u5B9E\u6027\u7684\u4FE1\u606F\u3002 +digital.signature.mail.subject=\u6D4B\u8BD5\u51ED\u636E digital.signature.mail.test.option=\u901A\u8FC7\u90AE\u4EF6\u53D1\u9001\u6D4B\u8BD5\u56DE\u6267 digital.signature.test.option=\u751F\u6210\u6D4B\u8BD5\u56DE\u6267 digital.signature.text=\u6D4B\u8BD5\u7ED3\u679C\u56DE\u6267 drawing.brushsize=\u753B\u7B14\u5927\u5C0F drawing.opacity=\u4E0D\u900F\u660E\u5EA6 error.as.directed=\u8BF7\u6309\u6307\u793A\u5B8C\u6210\u6B64\u4EA4\u4E92\u3002 +error.as.directed.kprim=\u8BF7\u6309\u6307\u5BFC\u5B8C\u6210\u672C\u4EA4\u4E92 +error.assessment.item=\u6587\u4EF6\u4E0D\u80FD\u88AB\u7FFB\u8BD1\uFF0C\u53EF\u80FD\u6587\u4EF6\u635F\u574F\u6216\u683C\u5F0F\u9519\u8BEF\u3002 error.choice=\u60A8\u5FC5\u987B\u81F3\u5C11\u9009\u62E9\u4E00\u4E2A\u4E0B\u9762\u7684\u9009\u9879 error.digital.certificate.cannotread=\u4E0D\u80FD\u8BFB\u8BC1\u4E66 error.digital.certificate.noPrivateKey=\u627E\u4E0D\u5230\u79C1\u94A5\uFF0C\u5B83\u662F\u5FC5\u987B\u7684\u3002 @@ -92,19 +98,109 @@ error.required.format=\u60A8\u7684\u8F93\u5165\u4E0D\u662F\u8981\u6C42\u7684\u68 error.textEntry.invalid=\u60A8\u7684\u8F93\u5165\u662F\u65E0\u6548\u7684 error.textEntry.invalid.float=\u60A8\u5FC5\u987B\u8F93\u5165\u4E00\u4E2A\u6570\u503C error.textEntry.invalid.record=\u60A8\u7684\u8F93\u5165\u5FC5\u987B\u662F\u4E00\u4E2A\u6709\u6548\u7684\u6570\u503C\u3002 +exploded.msg=\u5D29\u6E83 +form.metadata.title=\u6807\u9898 +graphic.gap.explanation=\u5C06\u4E0B\u56FE\u653E\u5728\u4E0A\u56FE\u4E2D\u7684\u4F4D\u7F6E\uFF0C\u6700\u597D\u63CF\u8FF0\u6B63\u786E\u7684\u7B54\u6848\u3002 +head.assessment.details=$org.olat.ims.qti\:head.ass.details +head.assessment.overview=$org.olat.ims.qti\:head.ass.details +interaction.order.drag.msg=\u4ECE\u8FD9\u91CC\u62D6\u52A8\u672A\u4F7F\u7528\u7684\u9879 +interaction.order.drop.msg=\u5728\u8FD9\u91CC\u653E\u7F6E\u9884\u5B9A\u60A8\u9009\u62E9\u7684\u9879 interaction.order.source=\u6E90 interaction.order.target=\u76EE\u6807 +kprim.minus=False +kprim.plus=True +math.extension=qtiworks\u6570\u5B66\u6269\u5C55 +math.extension.text=\u9700\u8981\u5728\u670D\u52A1\u5668\u5B89\u88C5Maxima menu.reset.title=\u91CD\u7F6E\u6D4B\u8BD5\u6570\u636E +menu.retrieve.tests.title=qtiworks\u6570\u5B66\u6269\u5C55 paint.erase=\u60A8\u60F3\u64E6\u6389\u60A8\u6240\u753B\u7684\u5417\uFF1F paint.erase.hint=\u4F60\u60F3\u64E6\u6389\u4F60\u7684\u753B\u5417\uFF1F +passed.no=$org.olat.course.nodes.iq\:passed.no +passed.yes=$org.olat.course.nodes.iq\:passed.yes +passed.yourpassed=$org.olat.course.nodes.iq\:passed.yourpassed +pull=\u62C9 +qti.form.allow.anonym=$org.olat.course.nodes.iq\:qti.form.allow.anonym qti.form.allow.anonym.hint=\u533F\u540D\u7528\u6237\u6216\u5BA2\u4EBA\u53EF\u4EE5\u505A\u6D4B\u8BD5\u3002\u8BE5\u6D4B\u8BD5\u53EF\u4EE5\u4E0D\u7528\u589E\u52A0\u5230\u8BFE\u7A0B\uFF0C\u4F5C\u4E3A\u5B66\u4E60\u8D44\u6E90\u4F7F\u7528\u3002 +qti.form.attempts=$org.olat.course.nodes.iq\:qti.form.attempts +qti.form.auto.memofield=$org.olat.course.nodes.iq\:qti.form.auto.memofield qti.form.auto.memofield.hint=\u6D4B\u8BD5\u8005\u53EF\u4EE5\u8BB0\u7B14\u8BB0\uFF0C\u9700\u8981\u5728\u201C\u5141\u8BB8\u8BC4\u8BBA\u201D\u8BBE\u7F6E +qti.form.block.afterSuccess=$org.olat.course.nodes.iq\:qti.form.block.afterSuccess +qti.form.enablecancel=$org.olat.course.nodes.iq\:qti.form.enablecancel +qti.form.enablesuspend=$org.olat.course.nodes.iq\:qti.form.enablesuspend qti.form.hide.lms=$org.olat.course.nodes.iq\:qti.form.fullwindow +qti.form.limit.attempts=$org.olat.course.nodes.iq\:qti.form.limit.attempts +qti.form.menudisplay=$org.olat.course.nodes.iq\:qti.form.menudisplay +qti.form.questionprogress=$org.olat.course.nodes.iq\:qti.form.questionprogress +qti.form.questiontitle=$org.olat.course.nodes.iq\:qti.form.questiontitle +qti.form.results.onfinish=$org.olat.course.nodes.iq\:qti.form.results.onfinish +qti.form.scoreprogress=$org.olat.course.nodes.iq\:qti.form.scoreprogress qti.form.setting.choose=\u9009\u62E9\u914D\u7F6E\u6587\u4EF6\u2026 qti.form.setting.formative=\u8FC7\u7A0B\u6D4B\u8BD5 qti.form.setting.summative=\u7EC8\u7ED3\u6D4B\u8BD5 +qti.form.summary=$org.olat.course.nodes.iq\:qti.form.summary qti.form.summary.help=$org.olat.course.nodes.iq\:qti.form.summary.help +qti.form.summary.metadata=$org.olat.course.nodes.iq\:qti.form.summary.metadata +qti.form.summary.questions=$org.olat.course.nodes.iq\:qti.form.summary.questions +qti.form.summary.questions.metadata=$org.olat.course.nodes.iq\:qti.form.summary.questions.metadata +qti.form.summary.responses=$org.olat.course.nodes.iq\:qti.form.summary.responses +qti.form.summary.sections=$org.olat.course.nodes.iq\:qti.form.summary.sections +qti.form.summary.solutions=$org.olat.course.nodes.iq\:qti.form.summary.solutions question=\u95EE\u9898 question.progress.answered=\u5DF2\u7B54 +question.progress.noMaxScore=$org.olat.modules.iq\:noMaxScore +question.progress.score=$org.olat.modules.iq\:actualPoints reset.data=\u91CD\u7F6E\u6570\u636E reset.test.data.acknowledge=\u6211\u660E\u767D\u6570\u636E\u5C06\u4F1A\u88AB\u5220\u9664\u3002 +reset.test.data.text=\u60A8\u786E\u8BA4\u8981\u91CD\u7F6E\u6D4B\u8BD5\u7684\u8BC4\u4F30\u6570\u636E\u5417\uFF1F<strong>{0} \u4E2A\u7528\u6237</strong>\u7684\u6210\u7EE9\u5C06\u88AB\u5220\u9664\u3002 +reset.test.data.text.ref=\u60A8\u4E0D\u80FD\u5220\u9664\u672C\u6D4B\u9A8C\u7684\u6240\u6709\u6570\u636E\uFF0C\u56E0\u4E3A\u8D44\u6E90\u201D{0}\u201C\u5F15\u7528\u4E86\u672C\u6D4B\u9A8C\u3002 +reset.test.data.title=\u91CD\u7F6E\u6D4B\u9A8C\u6570\u636E +response=\u54CD\u5E94 +results.duration=\u6301\u7EED\u65F6\u95F4 +results.empty=\u6CA1\u6709\u627E\u5230\u53EF\u663E\u793A\u7684\u6210\u7EE9 +results.end.time=\u7ED3\u675F\u65E5\u671F +results.entry.time=\u5F00\u59CB\u65E5\u671F +results.score.yourscore=$org.olat.course.nodes.iq\:score.yourscore +results.session.status=\u72B6\u6001 +results.session.status.final=\u5DF2\u89E3\u7B54 +results.session.status.initial=\u672A\u5F00\u59CB +results.session.status.pendingResponseProcessing=$\:results.session.status.pendingSubmission +results.session.status.pendingSubmission=\u5DF2\u9605\u8BFB\u672A\u89E3\u7B54 +results.summary.title=$org.olat.course.nodes\:personal.title +retrievetest.confirm.text=$org.olat.ims.qti\:retrievetest.confirm.text +retrievetest.confirm.text.plural=$org.olat.ims.qti.statistics.ui\:retrievetest.confirm.text.plural +retrievetest.confirm.title=$org.olat.ims.qti.statistics.ui\:retrievetest.confirm.title +retrievetest.nothing.todo=$org.olat.ims.qti.statistics.ui\:retrievetest.nothing.todo +review.responses=\u56DE\u987E\u60A8\u7684\u7B54\u6848 +review.responses.desc=\u60A8\u53EF\u4EE5\u56DE\u987E\u60A8\u7684\u7B54\u6848\uFF0C\u4E0B\u9762\u5217\u51FA\u4E86\u60A8\u53EF\u4EE5\u56DE\u987E\u7684\u7B54\u6848\u3002 +score.max=$org.olat.ims.qti\:score.max +serialize.error=\u4FDD\u5B58\u6587\u4EF6\u65F6\u53D1\u751F\u4E86\u4E00\u4E2A\u672A\u6599\u9519\u8BEF +settings.choose.descr=\u60A8\u53EF\u4EE5\u4E3A\u603B\u7ED3\u6027\u6216\u5F62\u6210\u6027\u6D4B\u8BD5\u9009\u62E9\u4E00\u4E2A\u9ED8\u8BA4\u8BBE\u7F6E\uFF0C\u4F7F\u5F97\u6D4B\u8BD5\u4EE5\u540E\u90FD\u4F7F\u7528\u8FD9\u4E2A\u8BBE\u7F6E\u6216\u8005\u4F60\u81EA\u5DF1\u4E5F\u53EF\u4EE5\u8FDB\u884C\u8BBE\u7F6E\u3002 +settings.choose.profile=\u662F\u914D\u7F6E\u751F\u6548 +settings.profile=\u6807\u51C6\u914D\u7F6E +solution=\u89E3\u51B3\u65B9\u6848 +submit=\u63D0\u4EA4\u7B54\u5377 +suspend.test=$org.olat.modules.iq\:suspendAssess +tab.options=\u9009\u9879 +tab.reset.data=\u91CD\u7F6E\u6570\u636E +table.header.action=\u52A8\u4F5C +table.header.duration=\u6301\u7EED\u65F6\u95F4 +table.header.lastModified=\u65E5\u671F +table.header.results=\u5206\u6570 +terminated.msg=\u6D4B\u9A8C\u5DF2\u5B8C\u6210 +test.complete=\u6D4B\u9A8C\u5B8C\u6210 +test.entry.page.text=\u672C\u6D4B\u9A8C\u7531\u81F3\u591A{0}\u4E2A\u90E8\u5206\u7EC4\u6210 +test.entry.page.title=\u5F00\u59CB\u6D4B\u9A8C +test.part.complete=\u6D4B\u9A8C\u90E8\u5206\u5B8C\u6210 +timelimit.1.minute=\u672C\u6D4B\u9A8C\u8FD8\u5269\u4E0D\u52301\u5206\u949F\uFF0C\u8BF7\u63D0\u4EA4\u7B54\u6848\uFF0C\u5426\u5219\uFF0C\u4E0D\u80FD\u4FDD\u5B58\u7B54\u5377\u3002 +timelimit.10.minutes=\u672C\u6D4B\u9A8C\u8FD8\u5269\u4E0D\u523010\u5206\u949F +timelimit.5.minutes=\u672C\u6D4B\u9A8C\u8FD8\u5269\u4E0D\u52305\u5206\u949F +timelimit.finished=\u6D4B\u9A8C\u7ED3\u675F\u65F6\u95F4\u5DF2\u5230\u3002 +timelimit.running=\u6D4B\u9A8C\u65F6\u95F4\u9650\u5236\uFF1A{1}\uFF08\u5728{2}\u7ED3\u675F\uFF09{0} +unsupported.custom.interaction=\u4E0D\u652F\u6301\u7684\u81EA\u5B9A\u4E49\u4EA4\u4E92 +upload.explanation=\u4ECE\u60A8\u7684\u7535\u8111\u9009\u62E9\u6587\u4EF6\u4E0A\u4F20 +validate.xml.signature=\u9A8C\u8BC1\u6D4B\u9A8C\u51ED\u636E +validate.xml.signature.file=XML\u6587\u4EF6 +validate.xml.signature.ok=\u6210\u529F\u9A8C\u8BC1\u6D4B\u9A8C\u51ED\u636E\u548C\u6210\u7EE9 +warning.reset.test.data.nobody=\u6CA1\u6709\u4EFB\u4F55\u53C2\u5165\u8005\u7684\u6570\u636E\u53EF\u4EE5\u88AB\u91CD\u7F6E\u3002 +warning.xml.signature.notok=\u7B7E\u540D\u548C\u6210\u7EE9\u4E0D\u80FD\u4E92\u76F8\u9A8C\u8BC1 +warning.xml.signature.session.not.found=\u627E\u4E0D\u5230\u6D4B\u9A8C\u6210\u7EE9 diff --git a/src/main/java/org/olat/ims/qti21/ui/assessment/_i18n/LocalStrings_zh_CN.properties b/src/main/java/org/olat/ims/qti21/ui/assessment/_i18n/LocalStrings_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..b4b063aa8e51aec52e1b298a5814a169fd7e46c1 --- /dev/null +++ b/src/main/java/org/olat/ims/qti21/ui/assessment/_i18n/LocalStrings_zh_CN.properties @@ -0,0 +1,22 @@ +#Tue Mar 28 05:31:11 CEST 2017 +assessed.identity=\u5DF2\u8BC4\u4F30\u7684\u7528\u6237 +comment=\u8BC4\u8BBA +correction=\u66F4\u6B63 +correction.min.max.score=\u5206\u6570\u5728{0}\u548C{1}\u4E4B\u95F4 +correction.test.title=\u8BC4\u5206 +grade.no.items=\u8FD9\u4E2A\u95EE\u9898\u6CA1\u6709\u8981\u66F4\u6B63\u7684\u6210\u7EE9\u3002 +grade.nobody=\u6CA1\u6709\u8981\u66F4\u6B63\u7684\u6210\u7EE9\u3002 +next.item=\u4E0B\u4E00\u4E2A\u95EE\u9898 +not.responded=\u6CA1\u6709\u89E3\u7B54\u8FD9\u4E2A\u95EE\u9898 +overview.tests=\u6D4F\u89C8\u5E76\u5173\u95ED +previous.item=\u524D\u4E00\u4E2A\u95EE\u9898 +save.next=\u4FDD\u5B58\u540E\u5230\u4E0B\u4E00\u4E2A\u95EE\u9898 +save.tests=\u4FDD\u5B58\u6210\u7EE9\uFF0C\u7ED3\u675F +score=\u5206\u6570 +table.header.corrected=\u66F4\u6B63 +table.header.finalScore=\u6700\u7EC8\u5206\u6570 +table.header.itemSessions=\#\u95EE\u9898 +table.header.manualScore=\u624B\u52A8\u5206\u6570 +table.header.responded=\u5DF2\u89E3\u7B54 +table.header.score=\u5206\u6570 +table.header.username=\u7528\u6237\u540D\u79F0 diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_zh_CN.properties b/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_zh_CN.properties index e95c8308d5eb82a3fb1ec75d446ccd7cb4d31aed..077ded23ec24eeb3e5e06df07cc35cace076ea58 100644 --- a/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_zh_CN.properties +++ b/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_zh_CN.properties @@ -1,16 +1,22 @@ -#Sun Mar 19 11:07:59 CET 2017 +#Tue Mar 28 14:13:21 CEST 2017 add.match.column=\u589E\u52A0\u5217 add.match.row=\u589E\u52A0\u884C answers=\u7B54\u6848 change.elements=\u7248\u672C correct.answers=\u6B63\u786E +cut.value=\u53CA\u683C\u5206\u6570 +delete.item=$org.olat.ims.qti.editor\:delete.item +delete.section=$org.olat.ims.qti.editor\:delete.section delete.testPart=\u60A8\u771F\u7684\u8981\u5220\u9664\u6D4B\u8BD5\u90E8\u5206\u53CA\u6240\u6709\u95EE\u9898\u5417\uFF1F editor.sc.title=\u5355\u4E2A\u9009\u62E9 editor.unkown.title=\u672A\u77E5\u4EA4\u4E92 +error.cannot.create.section=\u4EFB\u4F55\u5730\u65B9\u90FD\u4E0D\u80FD\u521B\u5EFA\u8282 error.cannot.delete=\u60A8\u4E0D\u80FD\u5220\u9664\u8FD9\u4E2A\u5BF9\u8C61 +error.double=$org.olat.ims.qti21.ui\:error.double error.import.question=\u5728\u5BFC\u5165\u95EE\u9898\u65F6\u51FA\u73B0\u4E86\u4E00\u4E2A\u672A\u6599\u9519\u8BEF error.lock=\u7528\u6237{ 0 }\u6B63\u5728\u7F16\u8F91\u6B64\u6D4B\u8BD5/\u95EE\u5377\uFF0C\u5B83\u88AB\u9501\u5B9A\u4E86\u3002 error.lock.title=\u6D4B\u8BD5\u88AB\u9501\u5B9A +error.mimetype=$org.olat.core.commons.modules.bc\:WrongMimeType error.need.correct.answer=\u60A8\u5FC5\u987B\u6709\u81F3\u5C11\u4E00\u4E2A\u6B63\u786E\u7B54\u6848 error.positive.double=\u53EA\u5141\u8BB8\u6B63\u6570\uFF0C\u4F8B\u5982\uFF1A15.0\uFF0C5\uFF0C5\uFF0C10 error.singlechoice=\u9009\u62E9\u4E00\u4E2A @@ -18,3 +24,136 @@ essay.expectedLength=\u5B57\u7B26\u6570 essay.max.strings=\u6700\u5927\u5B57\u7B26\u6570 essay.min.strings=\u6700\u5C0F\u5B57\u7B26\u6570 essay.rows=\u9AD8\u5EA6\uFF08\u884C\u6570\uFF09 +export.qpool.successful=$org.olat.ims.qti.editor\:export.qpool.successful +fib.alternative=\u5907\u9009 +fib.alternative.help=\u7528\u9017\u53F7\u5206\u9694\u4E0D\u540C\u7684\u5907\u9009 +fib.caseSensitive=\u533A\u5206\u5927\u5C0F\u5199 +fib.expectedLength=\u95F4\u9694\u5927\u5C0F +fib.placeholder=\u5360\u4F4D\u7B26 +fib.solution=\u89E3\u51B3\u65B9\u6848 +fib.tolerance.low=\u4E0B\u9650 +fib.tolerance.mode=\u5BB9\u5DEE\u6A21\u5F0F +fib.tolerance.mode.absolute=\u7EDD\u5BF9 +fib.tolerance.mode.absolute.example=\u6570\u503C\uFF0C\u4F8B\u59821.5\u62161322 +fib.tolerance.mode.exact=\u7CBE\u786E +fib.tolerance.mode.relative=\u76F8\u5BF9 +fib.tolerance.mode.relative.example=\u767E\u5206\u6570\uFF0C\u4F8B\u598215\u621699.0 +fib.tolerance.up=\u4E0A\u9650 +file=\u6587\u4EF6 +form.choice=\u9009\u62E9 +form.drawing=\u56FE\u753B +form.essay=\u5C0F\u8BBA\u6587 +form.feedback=\u53CD\u9988 +form.fib=\u7A7A\u767D\u6587\u672C +form.hotspot=\u70ED\u70B9 +form.imd.alignment=\u590D\u9009\u6846\u5BF9\u9F50 +form.imd.alignment.left=\u5DE6 +form.imd.alignment.right=\u53F3 +form.imd.answer=\u7B54\u6848 +form.imd.answered.text=\u53CD\u9988\u7684\u7B54\u6848 +form.imd.answered.title=\u6807\u9898 +form.imd.background=\u80CC\u666F +form.imd.correct.kprim=True +form.imd.correct.solution.text=\u6B63\u786E\u7B54\u6848 +form.imd.correct.solution.text.word=$\:form.imd.correct.solution.text (only for Word export) +form.imd.correct.solution.title=\u8868\u5934 +form.imd.correct.spots=Correct spots +form.imd.correct.text=\u5BF9\u6240\u6709\u6B63\u786E\u7B54\u6848\u7684\u53CD\u9988 +form.imd.correct.title=\u6807\u9898 +form.imd.descr=\u95EE\u9898 +form.imd.empty.text=\u53CD\u9988\u4E3A\u7A7A +form.imd.empty.title=\u7A7A\u6807\u9898 +form.imd.hint.text=\u63D0\u793A +form.imd.hint.title=\u6807\u9898 +form.imd.incorrect.text=\u7B54\u6848\u9519\u8BEF +form.imd.incorrect.title=\u6807\u9898 +form.imd.layout=$org.olat.ims.qti.editor\:form.imd.layout +form.imd.layout.horizontal=$org.olat.ims.qti.editor\:form.imd.layout.horizontal +form.imd.layout.vertical=$org.olat.ims.qti.editor\:form.imd.layout.vertical +form.imd.limittries=$org.olat.ims.qti.editor\:form.imd.limittries +form.imd.match.multiple.choice=\u591A\u9009\u9898 +form.imd.match.single.choice=\u5355\u9009\u9898 +form.imd.match.single.multiple=\u7C7B\u578B +form.imd.mimetype=\u671F\u671B\u7684mime\u7C7B\u578B +form.imd.rubric=\u63CF\u8FF0 +form.imd.shuffle=Shuffle answers +form.imd.title=\u6807\u9898 +form.imd.wrong.kprim=False +form.kprim=Kprim +form.match=\u914D\u5BF9 +form.metadata=\u5143\u6570\u636E +form.metadata.description=\u63CF\u8FF0 +form.metadata.title=\u6807\u9898 +form.score=\u5206\u6570 +form.score.answer.correct=\u6B63\u786E +form.score.answer.points=\u5F97\u5206 +form.score.answer.summary=Answer summary +form.score.assessment.all.correct=\u6240\u6709\u6B63\u786E\u7B54\u6848 +form.score.assessment.mode=\u8BC4\u4F30\u65B9\u6CD5 +form.score.assessment.per.answer=\u6BCF\u4E2A\u7B54\u6848\u5206\u6570 +form.section.selection_all=$org.olat.ims.qti.editor\:form.section.selection_all +form.section.selection_pre=\u672C\u8282\u7684\u95EE\u9898\u6570 +form.section.selection_pre.hover=\u9009\u62E9\u662F\u6D4B\u9A8C\u4E2D\u662F\u663E\u793A\u6240\u6709\u95EE\u9898\u8FD8\u662F\u6307\u5B9A\u6570\u91CF\u7684\u95EE\u9898 +form.section.shuffle=\u95EE\u9898\u968F\u673A\u6392\u5E8F\u5417\uFF1F +form.section.visible=\u5728\u6D4B\u9A8C\u4E2D\u663E\u793A\u8282\u7684\u6807\u9898 +form.test.correct.text=\u6240\u6709\u6B63\u786E\u7B54\u6848\u7684\u53CD\u9988 +form.test.correct.title=\u6807\u9898 +form.test.incorrect.text=\u9519\u8BEF\u7B54\u6848\u7684\u53CD\u9988 +form.test.incorrect.title=\u6807\u9898 +form.testPart.navigationMode=\u5BFC\u822A\u6A21\u5F0F +form.testPart.navigationMode.hint=\u7EBF\u6027\uFF1A\u5FC5\u987B\u6309\u7ED9\u5B9A\u7684\u987A\u5E8F\u89E3\u7B54\u95EE\u9898\u3002\u975E\u7EBF\u6027\uFF1A\u53EF\u4EE5\u9009\u62E9\u89E3\u7B54\u95EE\u9898\u7684\u987A\u5E8F\u3002 +form.testPart.navigationMode.linear=\u7EBF\u6027 +form.testPart.navigationMode.nonlinear=\u975E\u7EBF\u6027 +form.unkown=\u672A\u77E5 +form.upload=\u6587\u4EF6\u4E0A\u4F20 +hour.short=h +inherit=\u7EE7\u627F +item.session.control.allow.comment=\u5141\u8BB8\u8BC4\u8BBA +item.session.control.allow.comment.hint=\u6D4B\u9A8C\u53C2\u5165\u8005\u53EF\u4EE5\u8BB0\u4E2A\u4EBA\u7B14\u8BB0\u3002\u672C\u529F\u80FD\u9700\u8981\u5728\u201C\u9009\u9879\u201D\u4E0B\u542F\u7528\u3002 +item.session.control.allow.review=\u5141\u8BB8\u56DE\u770B\u95EE\u9898 +item.session.control.allow.review.hint=\u5728\u5B8C\u6210\u6D4B\u9A8C\u540E\uFF0C\u53EF\u4EE5\u56DE\u770B\u95EE\u9898 +item.session.control.allow.skipping=\u5141\u8BB8\u8DF3\u8FC7\u95EE\u9898 +item.session.control.allow.skipping.hint=\u5728\u6240\u6709\u95EE\u9898\u90FD\u88AB\u89E3\u7B54\u524D\u7ED3\u675F\u6D4B\u9A8C\u3002 +item.session.control.attempts=\u5C1D\u8BD5\u6B21\u6570 +item.session.control.attempts.hint=\u8FD9\u4E2A\u5C1D\u8BD5\u6B21\u6570\u9650\u5236\u53EA\u5BF9\u90E8\u5206\u6D4B\u9A8C\u6709\u6548\uFF0C\u6574\u4E2A\u6D4B\u9A8C\u7684\u5C1D\u8BD5\u6B21\u6570\u9650\u5236\u5728\u201C\u9009\u9879\u201D\u4E0B\u8BBE\u7F6E\u3002 +item.session.control.show.solution=\u663E\u793A\u7B54\u6848 +item.session.control.show.solution.hint=\u7B54\u6848\u4E5F\u5728\u6821\u5BF9\u65F6\u663E\u793A +max.score=\u6700\u9AD8\u5206\u6570 +min.score=\u6700\u4F4E\u5206\u6570 +minute.short=m +new.answer=\u65B0\u7B54\u6848 +new.circle=\u5706 +new.drawing=\u753B\u56FE +new.elements=\u589E\u52A0\u5143\u7D20 +new.essay=\u5C0F\u8BBA\u6587 +new.fib=\u7A7A\u683C\u6587\u672C +new.fib.numerical=\u6570\u503C\u8F93\u5165 +new.hotspot=Hotspot +new.kprim=Kprim +new.match=\u914D\u5BF9 +new.mc=\u591A\u9009\u9898 +new.rectangle=\u77E9\u5F62 +new.sc=\u5355\u9009\u9898 +new.section=\u8282 +new.spots=\u589E\u52A0\u70ED\u70B9 +new.testpart=\u6D4B\u8BD5\u90E8\u5206 +new.upload=\u4E0A\u4F20\u6587\u4EF6 +preview=\u9884\u89C8 +preview.solution=\u9884\u89C8\u7B54\u6848 +time.limit.max=\u65F6\u95F4\u9650\u5236 +title.add=$org.olat.ims.qti.editor\:title.add +tools.change.copy=$org.olat.ims.qti.editor\:tools.change.copy +tools.change.delete=$org.olat.ims.qti.editor\:tools.change.delete +tools.export.docx=$org.olat.ims.qti.editor\:tools.export.docx +tools.export.header=$org.olat.ims.qti.editor\:tools.export.header +tools.export.qpool=$org.olat.ims.qti.editor\:tools.export.qpool +tools.import.qpool=$org.olat.ims.qti.editor\:tools.import.qpool +tools.import.table=$org.olat.ims.qti.editor\:tools.import.table +tools.reload.from.files=\u91CD\u65B0\u52A0\u8F7D\u6587\u4EF6\uFF0C\u5237\u65B0\u7F13\u5B58 +tools.reload.from.files.tooltip=\u53EA\u6709\u7BA1\u7406\u5458\u53EF\u89C1 +warning.alien.assessment.item=OpenOLAT\u7F16\u8F91\u5668\u4E0D\u80FD\u5904\u7406\u8FD9\u79CD\u7C7B\u578B\u7684\u95EE\u9898 +warning.alien.assessment.test=OpenOLAT\u7F16\u8F91\u5668\u4E0D\u80FD\u5904\u7406\u8FD9\u4E2A\u6D4B\u9A8C\u3002 +warning.atleastonesection=\u672C\u8282\u4E0D\u80FD\u88AB\u5220\u9664\uFF0C\u6D4B\u9A8C\u6216\u6D4B\u9A8C\u90E8\u5206\u5FC5\u987B\u81F3\u5C11\u5305\u542B\u4E00\u4E2A\u8282\u3002 +warning.feedback.cutvalue=\u53CD\u9988\u662F\u57FA\u4E8E\u5206\u6570\u7EBF\u7684\uFF0C\u5FC5\u987B\u9996\u5148\u5B9A\u4E49\u5206\u6570\u7EBF\u3002 +warning.in.use=\u8D44\u6E90\u5DF2\u7528\u4E8E\u8BC4\u4F30\uFF0C\u9650\u5236\u7F16\u8F91\u3002 +warning.item.session.control.attempts=\u8FD9\u4E2A\u9650\u5236\u5BF9\u6BCF\u4E2A\u95EE\u9898\u7684\u5C1D\u8BD5\u6B21\u6570\u6709\u5F71\u54CD\u3002.<br/>\u8BF7\u518D\u68C0\u67E5\u95EE\u9898\u7684\u8BBE\u7F6E\u3002 diff --git a/src/main/java/org/olat/ims/qti21/ui/statistics/_i18n/LocalStrings_zh_CN.properties b/src/main/java/org/olat/ims/qti21/ui/statistics/_i18n/LocalStrings_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..ec88732671caa559a98f42ad2d6d0c686c32ea60 --- /dev/null +++ b/src/main/java/org/olat/ims/qti21/ui/statistics/_i18n/LocalStrings_zh_CN.properties @@ -0,0 +1,21 @@ +#Tue Mar 28 14:16:30 CEST 2017 +answer.correct=$org.olat.ims.qti.statistics.ui\:answer.correct +answer.false=$org.olat.ims.qti.statistics.ui\:answer.false +answer.noanswer=$org.olat.ims.qti.statistics.ui\:answer.noanswer +answer.points=$org.olat.ims.qti.statistics.ui\:answer.points +chart.cutscore=$org.olat.ims.qti.statistics.ui\:chart.cutscore +chart.duration.histogramm=$org.olat.ims.qti.statistics.ui\:chart.duration.histogramm +chart.duration.histogramm.legend=$org.olat.ims.qti.statistics.ui\:chart.duration.histogramm.legend +chart.item=$org.olat.ims.qti.statistics.ui\:chart.item +chart.maxscore=$org.olat.ims.qti.statistics.ui\:chart.maxscore +chart.percent.participants=$org.olat.ims.qti.statistics.ui\:chart.percent.participants +chart.percent.participants.num=$org.olat.ims.qti.statistics.ui\:chart.percent.participants.num +chart.points=$org.olat.ims.qti.statistics.ui\:chart.points +chart.responses=$org.olat.ims.qti.statistics.ui\:chart.responses +chart.score.histogramm=$org.olat.ims.qti.statistics.ui\:chart.score.histogramm +download.raw.data=$org.olat.ims.qti.statistics.ui\:download.raw.data +fib.wrong.answer=$org.olat.ims.qti.statistics.ui\:fib.wrong.answer +fig.averagedur=$org.olat.ims.qti.statistics.ui\:fig.averagedur +fig.averagescore=$org.olat.ims.qti.statistics.ui\:fig.averagescore +fig.avg=$org.olat.ims.qti.statistics.ui\:fig.avg +fig.correctanswers=$org.olat.ims.qti.statistics.ui\:fig.correctanswers diff --git a/src/main/java/org/olat/modules/assessment/ui/_i18n/LocalStrings_zh_CN.properties b/src/main/java/org/olat/modules/assessment/ui/_i18n/LocalStrings_zh_CN.properties index 4b57aa0aba02c9a011fd33aeecb3de323f6ff7f3..b372f989b247561740cd505b6dc8fd48acbd8ccf 100644 --- a/src/main/java/org/olat/modules/assessment/ui/_i18n/LocalStrings_zh_CN.properties +++ b/src/main/java/org/olat/modules/assessment/ui/_i18n/LocalStrings_zh_CN.properties @@ -1,5 +1,22 @@ -#Sun Oct 09 04:11:50 CEST 2016 +#Mon Mar 27 15:33:21 CEST 2017 assessment.status.done=\u8BC4\u4F30 assessment.status.inProgress=\u5F00\u59CB assessment.status.inReview=\u56DE\u987E assessment.status.notStart=\u672A\u5F00\u59CB +assessment.tool.numOfAssessedGroups={0} \u4E2A\u7FA4\u7EC4 +assessment.tool.numOfAssessedIdentities={0} \u7528\u6237 +assessment.tool.numOfFailed={0} \u4E2A\u5931\u8D25\u7528\u6237 +assessment.tool.numOfPassed={0}\u4E2A\u901A\u8FC7\u7528\u6237 +assessment.tool.overview=\u6982\u89C8 +assessment.tool.quick.links=\u5FEB\u901F\u94FE\u63A5 +command.next=\u8F6C\u5230\u4E0B\u4E2A\u7528\u6237 +command.previous=\u8F6C\u5230\u524D\u4E00\u4E2A\u7528\u6237 +filter=\u8FC7\u6EE4 +filter.anonymousUsers=\u533F\u540D\u7528\u6237 +filter.done=\u5DF2\u8BC4\u4F30 +filter.failed=\u672A\u901A\u8FC7 +filter.groups=\u7FA4\u7EC4 +filter.inProgress=\u5DF2\u5F00\u59CB +filter.inReview=\u56DE\u987E +filter.otherUsers=\u6240\u6709\u7528\u6237\uFF08\u5305\u62EC\u6240\u6709\u4EBA\u548C\u6559\u5E08\uFF09 +filter.passed=\u901A\u8FC7 diff --git a/src/main/java/org/olat/modules/coach/ui/_i18n/LocalStrings_zh_CN.properties b/src/main/java/org/olat/modules/coach/ui/_i18n/LocalStrings_zh_CN.properties index 13c3bf67cae4adfc61528f15a382bc3902be3c93..8f9bca85723cbaecddfba3ed1de3e270cf395ecd 100644 --- a/src/main/java/org/olat/modules/coach/ui/_i18n/LocalStrings_zh_CN.properties +++ b/src/main/java/org/olat/modules/coach/ui/_i18n/LocalStrings_zh_CN.properties @@ -1,4 +1,4 @@ -#Thu Sep 29 08:58:08 CEST 2016 +#Tue Mar 28 09:44:32 CEST 2017 coaching.enabled=\u542F\u7528\u8BB2\u8BFE coaching.on=\u6253\u5F00 coaching.title=\u8BB2\u8BFE\u540D\u79F0 @@ -33,6 +33,7 @@ previous=\u4E4B\u524D\u7684 previous.course=$\:previous\uFF08\u4E4B\u524D\u7684\uFF09 previous.group=$\:previous previous.student=$\:previous +results=\u6210\u7EE9 search=\u641C\u7D22 search.form.login=\u7528\u6237\u540D\u79F0 search.menu.title=\u7528\u6237\u641C\u7D22 diff --git a/src/main/java/org/olat/modules/fo/export/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/modules/fo/export/_i18n/LocalStrings_it.properties index 4ab1b098617b4fb0f02af39df64db3d576fb1510..146272e1fa386dc7af6a3289a1286f96d47c1a40 100644 --- a/src/main/java/org/olat/modules/fo/export/_i18n/LocalStrings_it.properties +++ b/src/main/java/org/olat/modules/fo/export/_i18n/LocalStrings_it.properties @@ -1,4 +1,4 @@ -#Mon Mar 20 14:30:16 CET 2017 +#Tue Mar 28 12:01:33 CEST 2017 forum.comment=Commento forum.forum=Forum forum.select=Selezionare @@ -19,3 +19,7 @@ thread.already.exits=Il thread selezionato \u00E8 gi\u00E0 esistente nella desti thread.moved.success=Il thread "{0}" \u00E8 stato spostato nel Forum "{1}" del corso "{2}" con successo. thread.moved.summary=Riepilogo thread.moving.info=Il thread "{0}" verr\u00E0 spostato nel Forum "{1}" del corso "{2}". +thread.not.selected=Selezionare un thread esistente o crearne uno. +title.wizard.movethread=Spostare thread "{0}" +wizard.mail.body=*** Questo \u00E8 un messaggio generato automaticamente. Non rispondere a questo messaggio *** \r\n\r\nIl forum-{0} "{1}" del corso "{2}" \u00E8 stato spostato in\: \r\n\r\nCorso\: "{3}"\r\nForum\: "{4}"\r\nThread\: "{5}"\r\n\r\nQuesta azione \u00E8 stata svolta da {6} ({7}). Stai ricevendo questo messaggio poich\u00E9 sei autore di forum-{0}s o di una risposta che \u00E8 stata spostata insieme ad esso. +wizard.mail.subject=Spostamento di {0} "{1}" diff --git a/src/main/java/org/olat/portfolio/manager/EPFrontendManager.java b/src/main/java/org/olat/portfolio/manager/EPFrontendManager.java index 846445fd0ccc2c1b6fb084c54bd9daadfeb448bb..694ee888bb3489b39211e029b18b0915d2f21328 100755 --- a/src/main/java/org/olat/portfolio/manager/EPFrontendManager.java +++ b/src/main/java/org/olat/portfolio/manager/EPFrontendManager.java @@ -187,8 +187,13 @@ public class EPFrontendManager implements UserDataDeletable, DeletableGroupData final Property mapKeyProperty = npm.findProperty(null, null, CollaborationTools.PROP_CAT_BG_COLLABTOOLS, CollaborationTools.KEY_PORTFOLIO); if (mapKeyProperty != null) { final Long mapKey = mapKeyProperty.getLongValue(); - final PortfolioStructure map = loadPortfolioStructureByKey(mapKey); - deletePortfolioStructure(map); + final String version = mapKeyProperty.getStringValue(); + if(!"2".equals(version)) { + final PortfolioStructure map = loadPortfolioStructureByKey(mapKey); + if(map != null) { + deletePortfolioStructure(map); + } + } return true; } return false; diff --git a/src/main/java/org/olat/repository/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/repository/_i18n/LocalStrings_it.properties index 6bb7c41f8b0771027c5783aa110f5a7e9987df05..9f67b506826fa49a28d96fca6f22329296d48256 100644 --- a/src/main/java/org/olat/repository/_i18n/LocalStrings_it.properties +++ b/src/main/java/org/olat/repository/_i18n/LocalStrings_it.properties @@ -1,4 +1,4 @@ -#Thu Feb 09 09:15:30 CET 2017 +#Tue Mar 28 11:58:01 CEST 2017 BinderTemplate=Portfolio 2.0 modello CourseModule=Corso EPStructuredMapTemplate=Modello di portfolio @@ -314,6 +314,7 @@ index.header=Risorse didattiche index.header.alt=Cerchi tra le risorse didattiche. info.could.not.delete.entry=L'entrata non \u00E8 stata eliminata. info.entry.deleted=L'entrata \u00E8 stata eliminata. +info.entry.read.only=Elemento terminato con successo. info.header=<i class\='o_icon o_icon-lg o_icon_info_resource'> </i> info.message.change.title=Il corso \u00E8 ora nello stato [terminato]. launch.noaccess=Lei non possiede i diritti necessari per avviare questa risorsa didattica. diff --git a/src/main/java/org/olat/search/ui/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/search/ui/_i18n/LocalStrings_it.properties index 319f14c6b94755e0cd89d685e9cb8c53706756a3..fa842bd468f01bb9593d7d4ecac8d909721aa67a 100644 --- a/src/main/java/org/olat/search/ui/_i18n/LocalStrings_it.properties +++ b/src/main/java/org/olat/search/ui/_i18n/LocalStrings_it.properties @@ -1,4 +1,4 @@ -#Mon Dec 12 09:18:22 CET 2016 +#Tue Mar 28 12:05:09 CEST 2017 EPSite=Portfolio HomeSite=Home LibrarySite=Biblioteca @@ -65,11 +65,26 @@ toolforum=Forum type.course.node=Elemento di corso type.course.node.bc=Elemento di corso, cartella type.course.node.blog=Elemento di corso, blog +type.course.node.checklist=Elemento di corso, checklist +type.course.node.co=Elemento di corso, E-mail type.course.node.cp=Elemento di corso, contenuto didattico CP +type.course.node.den=Elemento di corso, assegnazione di termini type.course.node.dialog.file=Elemento di corso, discussione documentata (file) type.course.node.dialog.forum.message=Elemento di corso, discussione documentata (discussione) +type.course.node.en=Elemento di corso, iscrizione type.course.node.ep=Elemento di corso, compito portfolio type.course.node.forum.message=Elemento di corso, forum +type.course.node.gotomeeting=Elemento di corso, GoToMeeting +type.course.node.gta=Elemento di corso, compito +type.course.node.iqself=Elemento di corso, autotest +type.course.node.iqsurv=Elemento di corso, sondaggio +type.course.node.iqtest=Elemento di corso, test +type.course.node.ll=Elemento di corso, lista link +type.course.node.lti=Elemento di corso, pagina LTI +type.course.node.membersCourseNodeConf=Elemento di corso, lista dei partecipanti +type.course.node.ms=Elemento di corso, valutazione +type.course.node.openmeetings=Elemento di corso, OpenMeetings +type.course.node.pf=Elemento di corso, cartella del partecipante type.course.node.podcast=Elemento di corso, podcast type.course.node.projectbroker=Elemento di corso, assegnazione temi type.course.node.scorm=Elemento di corso, SCORM @@ -79,6 +94,10 @@ type.course.node.ta.dropbox=Elemento di corso, compito (cartella di consegna) type.course.node.ta.returnbox=Elemento di corso, compito (cartella di restituzione) type.course.node.ta.solutionbox=Elemento di corso, compito (soluzione modello) type.course.node.ta.task=Elemento di corso, compito (cartella dei compiti) +type.course.node.tu=Elemento di corso, pagina esterna +type.course.node.vc=Elemento di corso, aula virtuale +type.course.node.video=Elemento di corso, video +type.course.node.vitero=Elemento di corso, vitero type.course.node.wiki=Elemento di corso, wiki type.db.EPDefaultMap=Raccoglitore per portfolio type.db.EPStructuredMap=Compito portfolio diff --git a/src/test/java/org/olat/course/nodes/gta/manager/GTAManagerTest.java b/src/test/java/org/olat/course/nodes/gta/manager/GTAManagerTest.java index 91eb3470a0007e6da262471151204cbc6eeb1190..f96e3b4394de2f9decacd1c0109acc09d91e1643 100644 --- a/src/test/java/org/olat/course/nodes/gta/manager/GTAManagerTest.java +++ b/src/test/java/org/olat/course/nodes/gta/manager/GTAManagerTest.java @@ -600,7 +600,7 @@ public class GTAManagerTest extends OlatTestCase { } @Test - public void roundsRobin() { + public void roundRobin_oneRound() { String[] slots = new String[]{ "A", "B", "C" }; List<String> usedSlots = new ArrayList<>(); usedSlots.add("A"); @@ -608,7 +608,40 @@ public class GTAManagerTest extends OlatTestCase { usedSlots.add("C"); usedSlots.add("A"); + String nextSlot = gtaManager.nextSlotRoundRobin(slots, usedSlots); + Assert.assertEquals("B", nextSlot); + } + + @Test + public void roundRobin_randomRound() { + String[] slots = new String[]{ "A", "B", "C" }; + List<String> usedSlots = new ArrayList<>(); + usedSlots.add("A"); + usedSlots.add("B"); + usedSlots.add("B"); + usedSlots.add("B"); + usedSlots.add("C"); + usedSlots.add("C"); + usedSlots.add("A"); + String nextSlot = gtaManager.nextSlotRoundRobin(slots, usedSlots); Assert.assertEquals("A", nextSlot); } + + @Test + public void roundRobin_randomRoundAlt() { + String[] slots = new String[]{ "A", "B", "C" }; + List<String> usedSlots = new ArrayList<>(); + usedSlots.add("A"); + usedSlots.add("B"); + usedSlots.add("B"); + usedSlots.add("B"); + usedSlots.add("C"); + usedSlots.add("C"); + usedSlots.add("A"); + usedSlots.add("A"); + + String nextSlot = gtaManager.nextSlotRoundRobin(slots, usedSlots); + Assert.assertEquals("C", nextSlot); + } } diff --git a/src/test/java/org/olat/ims/qti21/model/xml/OnyxToQtiWorksAssessementItemsTest.java b/src/test/java/org/olat/ims/qti21/model/xml/OnyxToQtiWorksAssessementItemsTest.java index 2b0cb257a7dce941c11b261054d4e730728d27b3..4f717dacfc0ecf0cfebd99ad082bda686d69a888 100644 --- a/src/test/java/org/olat/ims/qti21/model/xml/OnyxToQtiWorksAssessementItemsTest.java +++ b/src/test/java/org/olat/ims/qti21/model/xml/OnyxToQtiWorksAssessementItemsTest.java @@ -27,7 +27,6 @@ import java.net.URISyntaxException; import java.net.URL; import java.nio.charset.Charset; import java.nio.file.Files; -import java.nio.file.StandardCopyOption; import java.util.Arrays; import java.util.Collection; import java.util.UUID; @@ -114,10 +113,9 @@ public class OnyxToQtiWorksAssessementItemsTest { DefaultHandler2 myHandler = new Onyx38ToQtiWorksHandler(xtw); saxParser.setProperty("http://xml.org/sax/properties/lexical-handler", myHandler); saxParser.parse(in, myHandler); - - Files.copy(outputFile.toPath(), new File("/HotCoffee/Onyx", xmlFile.getName()).toPath(), StandardCopyOption.REPLACE_EXISTING); } catch(Exception e1) { log.error("", e1); + throw e1; } QtiXmlReader qtiXmlReader = new QtiXmlReader(new JqtiExtensionManager()); diff --git a/src/test/java/org/olat/ims/qti21/model/xml/OnyxToQtiWorksAssessementTestsTest.java b/src/test/java/org/olat/ims/qti21/model/xml/OnyxToQtiWorksAssessementTestsTest.java index 260ccedf1b111a40bef2c1f66966b2ab5be1a720..81304561cfcb39b8fcab114495a018ede42b7b0d 100644 --- a/src/test/java/org/olat/ims/qti21/model/xml/OnyxToQtiWorksAssessementTestsTest.java +++ b/src/test/java/org/olat/ims/qti21/model/xml/OnyxToQtiWorksAssessementTestsTest.java @@ -27,7 +27,6 @@ import java.net.URISyntaxException; import java.net.URL; import java.nio.charset.Charset; import java.nio.file.Files; -import java.nio.file.StandardCopyOption; import java.util.Arrays; import java.util.Collection; import java.util.UUID; @@ -103,10 +102,9 @@ public class OnyxToQtiWorksAssessementTestsTest { DefaultHandler2 myHandler = new Onyx38ToQtiWorksHandler(xtw); saxParser.setProperty("http://xml.org/sax/properties/lexical-handler", myHandler); saxParser.parse(in, myHandler); - - Files.copy(outputFile.toPath(), new File("/HotCoffee/Onyx", xmlFile.getName()).toPath(), StandardCopyOption.REPLACE_EXISTING); } catch(Exception e1) { log.error("", e1); + throw e1; } QtiXmlReader qtiXmlReader = new QtiXmlReader(new JqtiExtensionManager());