diff --git a/config/alfresco/messages/bpm-messages_fr.properties b/config/alfresco/messages/bpm-messages_fr.properties index 0cccbc10f1..884788a68b 100755 --- a/config/alfresco/messages/bpm-messages_fr.properties +++ b/config/alfresco/messages/bpm-messages_fr.properties @@ -86,6 +86,6 @@ listconstraint.bpm_allowedPriority.2=Moyenne listconstraint.bpm_allowedPriority.3=Basse listconstraint.bpm_allowedStatus.Not\ Yet\ Started=Pas encore d\u00e9marr\u00e9 listconstraint.bpm_allowedStatus.In\ Progress=En cours -listconstraint.bpm_allowedStatus.On\ Hold= Suspendu +listconstraint.bpm_allowedStatus.On\ Hold=Suspendu listconstraint.bpm_allowedStatus.Cancelled=Annul\u00e9 listconstraint.bpm_allowedStatus.Completed=Termin\u00e9 diff --git a/config/alfresco/messages/bpm-messages_it.properties b/config/alfresco/messages/bpm-messages_it.properties index e6e0486d95..28e08b123c 100755 --- a/config/alfresco/messages/bpm-messages_it.properties +++ b/config/alfresco/messages/bpm-messages_it.properties @@ -86,6 +86,6 @@ listconstraint.bpm_allowedPriority.2=Media listconstraint.bpm_allowedPriority.3=Bassa listconstraint.bpm_allowedStatus.Not\ Yet\ Started=Non ancora avviato listconstraint.bpm_allowedStatus.In\ Progress=In corso -listconstraint.bpm_allowedStatus.On\ Hold= In attesa +listconstraint.bpm_allowedStatus.On\ Hold=In attesa listconstraint.bpm_allowedStatus.Cancelled=Annullato listconstraint.bpm_allowedStatus.Completed=Completato diff --git a/config/alfresco/messages/bpm-messages_ja.properties b/config/alfresco/messages/bpm-messages_ja.properties index 24d8fc2bcf..f1204af436 100755 --- a/config/alfresco/messages/bpm-messages_ja.properties +++ b/config/alfresco/messages/bpm-messages_ja.properties @@ -86,6 +86,6 @@ listconstraint.bpm_allowedPriority.2=\u4e2d listconstraint.bpm_allowedPriority.3=\u4f4e listconstraint.bpm_allowedStatus.Not\ Yet\ Started=\u958b\u59cb\u524d listconstraint.bpm_allowedStatus.In\ Progress=\u9032\u884c\u4e2d -listconstraint.bpm_allowedStatus.On\ Hold= \u4fdd\u7559\u4e2d +listconstraint.bpm_allowedStatus.On\ Hold=\u4fdd\u7559\u4e2d listconstraint.bpm_allowedStatus.Cancelled=\u30ad\u30e3\u30f3\u30bb\u30eb\u6e08\u307f listconstraint.bpm_allowedStatus.Completed=\u5b8c\u4e86\u6e08\u307f diff --git a/config/alfresco/messages/bpm-messages_nb.properties b/config/alfresco/messages/bpm-messages_nb.properties index c3ffec4ea7..d6da74a7eb 100755 --- a/config/alfresco/messages/bpm-messages_nb.properties +++ b/config/alfresco/messages/bpm-messages_nb.properties @@ -86,6 +86,6 @@ listconstraint.bpm_allowedPriority.2=Middels listconstraint.bpm_allowedPriority.3=Lav listconstraint.bpm_allowedStatus.Not\ Yet\ Started=Enn\u00e5 ikke startet listconstraint.bpm_allowedStatus.In\ Progress=P\u00e5g\u00e5r -listconstraint.bpm_allowedStatus.On\ Hold= P\u00e5 vent +listconstraint.bpm_allowedStatus.On\ Hold=P\u00e5 vent listconstraint.bpm_allowedStatus.Cancelled=Avbrutt listconstraint.bpm_allowedStatus.Completed=Fullf\u00f8rt diff --git a/config/alfresco/messages/bpm-messages_pt_BR.properties b/config/alfresco/messages/bpm-messages_pt_BR.properties index e37c25a908..fbca26e6c2 100644 --- a/config/alfresco/messages/bpm-messages_pt_BR.properties +++ b/config/alfresco/messages/bpm-messages_pt_BR.properties @@ -86,6 +86,6 @@ listconstraint.bpm_allowedPriority.2=M\u00e9dio listconstraint.bpm_allowedPriority.3=Baixo listconstraint.bpm_allowedStatus.Not\ Yet\ Started=Ainda n\u00e3o come\u00e7ou listconstraint.bpm_allowedStatus.In\ Progress=Em andamento -listconstraint.bpm_allowedStatus.On\ Hold= Em espera +listconstraint.bpm_allowedStatus.On\ Hold=Em espera listconstraint.bpm_allowedStatus.Cancelled=Cancelado listconstraint.bpm_allowedStatus.Completed=Conclu\u00eddo diff --git a/config/alfresco/messages/bpm-messages_ru.properties b/config/alfresco/messages/bpm-messages_ru.properties index c47fc65213..5b2ce84140 100755 --- a/config/alfresco/messages/bpm-messages_ru.properties +++ b/config/alfresco/messages/bpm-messages_ru.properties @@ -86,6 +86,6 @@ listconstraint.bpm_allowedPriority.2=\u0421\u0440\u0435\u0434\u043d\u0438\u0439 listconstraint.bpm_allowedPriority.3=\u041d\u0438\u0437\u043a\u0438\u0439 listconstraint.bpm_allowedStatus.Not\ Yet\ Started=\u0415\u0449\u0435 \u043d\u0435 \u043d\u0430\u0447\u0430\u0442\u043e listconstraint.bpm_allowedStatus.In\ Progress=\u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 -listconstraint.bpm_allowedStatus.On\ Hold= \u041f\u0440\u0438\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e +listconstraint.bpm_allowedStatus.On\ Hold=\u041f\u0440\u0438\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e listconstraint.bpm_allowedStatus.Cancelled=\u041e\u0442\u043c\u0435\u043d\u0435\u043d\u043e listconstraint.bpm_allowedStatus.Completed=\u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u043e diff --git a/config/alfresco/messages/bpm-messages_zh_CN.properties b/config/alfresco/messages/bpm-messages_zh_CN.properties index 442dc19ff1..32b8fdfb33 100755 --- a/config/alfresco/messages/bpm-messages_zh_CN.properties +++ b/config/alfresco/messages/bpm-messages_zh_CN.properties @@ -86,6 +86,6 @@ listconstraint.bpm_allowedPriority.2=\u4e2d listconstraint.bpm_allowedPriority.3=\u4f4e listconstraint.bpm_allowedStatus.Not\ Yet\ Started=\u5c1a\u672a\u5f00\u59cb listconstraint.bpm_allowedStatus.In\ Progress=\u6b63\u5728\u8fdb\u884c -listconstraint.bpm_allowedStatus.On\ Hold= \u5df2\u6682\u505c +listconstraint.bpm_allowedStatus.On\ Hold=\u5df2\u6682\u505c listconstraint.bpm_allowedStatus.Cancelled=\u5df2\u53d6\u6d88 listconstraint.bpm_allowedStatus.Completed=\u5df2\u5b8c\u6210 diff --git a/config/alfresco/messages/quickshare-service_de.properties b/config/alfresco/messages/quickshare-service_de.properties index 6bc673b7ef..a668f36507 100644 --- a/config/alfresco/messages/quickshare-service_de.properties +++ b/config/alfresco/messages/quickshare-service_de.properties @@ -1,2 +1,6 @@ # QuickShare Service quickshare.notifier.email.subject={0} {1} hat {2} f\u00fcr Sie freigegeben + +# email template +template.quickshare-email.ftl.title={0} f\u00fcr Sie freigegeben +template.quickshare-email.ftl.detail={0} {1} hat {3} f\u00fcr Sie freigegeben. diff --git a/config/alfresco/messages/quickshare-service_es.properties b/config/alfresco/messages/quickshare-service_es.properties index 69938a534e..1edb217ea1 100644 --- a/config/alfresco/messages/quickshare-service_es.properties +++ b/config/alfresco/messages/quickshare-service_es.properties @@ -1,2 +1,6 @@ # QuickShare Service quickshare.notifier.email.subject={0} {1} ha compartido {2} con usted + +# email template +template.quickshare-email.ftl.title={0} compartido con usted +template.quickshare-email.ftl.detail={0} {1} ha compartido {3} con usted. diff --git a/config/alfresco/messages/quickshare-service_fr.properties b/config/alfresco/messages/quickshare-service_fr.properties index 7920eab999..b64b5d19b3 100644 --- a/config/alfresco/messages/quickshare-service_fr.properties +++ b/config/alfresco/messages/quickshare-service_fr.properties @@ -1,2 +1,6 @@ # QuickShare Service quickshare.notifier.email.subject={0} {1} a partag\u00e9 {2} avec vous + +# email template +template.quickshare-email.ftl.title={0} partag\u00e9 avec vous +template.quickshare-email.ftl.detail={0} {1} a partag\u00e9 {3} avec vous. diff --git a/config/alfresco/messages/quickshare-service_it.properties b/config/alfresco/messages/quickshare-service_it.properties index e91ff7f55c..3d0157e043 100644 --- a/config/alfresco/messages/quickshare-service_it.properties +++ b/config/alfresco/messages/quickshare-service_it.properties @@ -1,2 +1,6 @@ # QuickShare Service quickshare.notifier.email.subject={0} {1} ha condiviso {2} con te + +# email template +template.quickshare-email.ftl.title={0} condiviso con te +template.quickshare-email.ftl.detail={0} {1} ha condiviso {3} con te. diff --git a/config/alfresco/messages/quickshare-service_ja.properties b/config/alfresco/messages/quickshare-service_ja.properties index c600e6c466..af6bfd51ea 100644 --- a/config/alfresco/messages/quickshare-service_ja.properties +++ b/config/alfresco/messages/quickshare-service_ja.properties @@ -1,2 +1,6 @@ # QuickShare Service quickshare.notifier.email.subject={0} {1} \u304c\u3042\u306a\u305f\u3068 {2} \u3092\u5171\u6709\u3057\u307e\u3057\u305f + +# email template +template.quickshare-email.ftl.title={0} \u304c\u3042\u306a\u305f\u3068\u5171\u6709\u3055\u308c\u307e\u3057\u305f +template.quickshare-email.ftl.detail={1} {0} \u304c {3} \u3092\u3042\u306a\u305f\u3068\u5171\u6709\u3057\u307e\u3057\u305f\u3002 diff --git a/config/alfresco/messages/quickshare-service_nb.properties b/config/alfresco/messages/quickshare-service_nb.properties index 25555bb097..4b1ebabafa 100644 --- a/config/alfresco/messages/quickshare-service_nb.properties +++ b/config/alfresco/messages/quickshare-service_nb.properties @@ -1,2 +1,6 @@ # QuickShare Service quickshare.notifier.email.subject={0} {1} delte {2} med deg + +# email template +template.quickshare-email.ftl.title={0} delt med deg +template.quickshare-email.ftl.detail={0} {1} har delt {3} med deg. diff --git a/config/alfresco/messages/quickshare-service_nl.properties b/config/alfresco/messages/quickshare-service_nl.properties index 1523c53bcc..98e0ba388b 100644 --- a/config/alfresco/messages/quickshare-service_nl.properties +++ b/config/alfresco/messages/quickshare-service_nl.properties @@ -1,2 +1,6 @@ # QuickShare Service quickshare.notifier.email.subject={0} {1} heeft {2} met u gedeeld + +# email template +template.quickshare-email.ftl.title={0} is met u gedeeld +template.quickshare-email.ftl.detail={0} {1} heeft {3} met u gedeeld. diff --git a/config/alfresco/messages/quickshare-service_pt_BR.properties b/config/alfresco/messages/quickshare-service_pt_BR.properties index 654a23dafc..1349fc3257 100644 --- a/config/alfresco/messages/quickshare-service_pt_BR.properties +++ b/config/alfresco/messages/quickshare-service_pt_BR.properties @@ -1,2 +1,6 @@ # QuickShare Service quickshare.notifier.email.subject={0} {1} compartilhou {2} com voc\u00ea + +# email template +template.quickshare-email.ftl.title={0} compartilhado com voc\u00ea +template.quickshare-email.ftl.detail={0} {1} compartilhou {3} com voc\u00ea. diff --git a/config/alfresco/messages/quickshare-service_ru.properties b/config/alfresco/messages/quickshare-service_ru.properties index 6a235ee7f5..f486148be5 100644 --- a/config/alfresco/messages/quickshare-service_ru.properties +++ b/config/alfresco/messages/quickshare-service_ru.properties @@ -1,2 +1,6 @@ # QuickShare Service quickshare.notifier.email.subject={0} {1} \u043f\u043e\u0434\u0435\u043b\u0438\u043b\u0441\u044f {2} \u0441 \u0432\u0430\u043c\u0438 + +# email template +template.quickshare-email.ftl.title={0} \u043f\u043e\u0434\u0435\u043b\u0438\u043b\u0441\u044f \u0441 \u0432\u0430\u043c\u0438 +template.quickshare-email.ftl.detail={0} {1} \u043f\u043e\u0434\u0435\u043b\u0438\u043b\u0441\u044f {3} \u0441 \u0432\u0430\u043c\u0438. diff --git a/config/alfresco/messages/quickshare-service_zh_CN.properties b/config/alfresco/messages/quickshare-service_zh_CN.properties index a312d7ff39..f5e2411885 100644 --- a/config/alfresco/messages/quickshare-service_zh_CN.properties +++ b/config/alfresco/messages/quickshare-service_zh_CN.properties @@ -1,2 +1,6 @@ # QuickShare Service quickshare.notifier.email.subject={0} {1} \u4e0e\u60a8\u5171\u4eab {2} + +# email template +template.quickshare-email.ftl.title=\u4e0e\u60a8\u5171\u4eab\u7684 {0} +template.quickshare-email.ftl.detail={0} {1} \u5df2\u4e0e\u60a8\u5171\u4eab {3}\u3002 diff --git a/config/alfresco/messages/reset-password-messages_de.properties b/config/alfresco/messages/reset-password-messages_de.properties new file mode 100644 index 0000000000..faafe31753 --- /dev/null +++ b/config/alfresco/messages/reset-password-messages_de.properties @@ -0,0 +1,15 @@ +# Email subjects. +reset-password-request.email.subject=Passwort zur\u00fccksetzen +reset-password-confirmation.email.subject=Passwort erfolgreich zur\u00fcckgesetzt + +# Request reset password email +templates.reset-password-email.ftl.title=Passwort zur\u00fccksetzen +templates.reset-password-email.ftl.detail=Sie haben k\u00fcrzlich eine \u00c4nderung des Passworts f\u00fcr Ihr Benutzerkonto angefordert. +templates.reset-password-email.ftl.ignore_message=Wenn Sie ein Zur\u00fccksetzen Ihres Passworts nicht angefordert haben oder es nicht \u00e4ndern m\u00f6chten, dann k\u00f6nnen Sie diese Nachricht ignorieren und l\u00f6schen. Ihr Benutzerkonto bleibt dabei sicher. +templates.reset-password-email.ftl.having_trouble_clicking_button=Klicken Sie entweder auf 'Passwort zur\u00fccksetzen' oder kopieren Sie die folgende Adresse in Ihren Webbrowser: +templates.reset-password-email.ftl.reset_password_button=Passwort zur\u00fccksetzen + +# Reset password confirmation email +templates.reset-password-confirm-email.ftl.title=Passwort erfolgreich zur\u00fcckgesetzt +templates.reset-password-confirm-email.ftl.detail=Das Passwort f\u00fcr Ihr Alfresco-Konto wurde k\u00fcrzlich ge\u00e4ndert. +templates.reset-password-confirm-email.ftl.note=Wenn Sie ein Zur\u00fccksetzen Ihres Passworts nicht angefordert haben, wenden Sie sich bitte unverz\u00fcglich an Ihr IT-Team. diff --git a/config/alfresco/messages/reset-password-messages_es.properties b/config/alfresco/messages/reset-password-messages_es.properties new file mode 100644 index 0000000000..5cd90560b0 --- /dev/null +++ b/config/alfresco/messages/reset-password-messages_es.properties @@ -0,0 +1,15 @@ +# Email subjects. +reset-password-request.email.subject=Restablezca su contrase\u00f1a +reset-password-confirmation.email.subject=Restablecimiento de contrase\u00f1a correcto + +# Request reset password email +templates.reset-password-email.ftl.title=Restablezca su contrase\u00f1a +templates.reset-password-email.ftl.detail=Recientemente solicit\u00f3 cambiar la contrase\u00f1a de su cuenta. +templates.reset-password-email.ftl.ignore_message=Si no solicit\u00f3 un restablecimiento de contrase\u00f1a o no desea cambiarla, puede ignorar y eliminar este mensaje. Su cuenta continuar\u00e1 siendo segura. +templates.reset-password-email.ftl.having_trouble_clicking_button=Haga clic en el bot\u00f3n Restablecer contrase\u00f1a o copie y pegue la direcci\u00f3n siguiente en su navegador web: +templates.reset-password-email.ftl.reset_password_button=Restablecer contrase\u00f1a + +# Reset password confirmation email +templates.reset-password-confirm-email.ftl.title=Restablecimiento de contrase\u00f1a correcto +templates.reset-password-confirm-email.ftl.detail=La contrase\u00f1a de su cuenta Alfresco se cambi\u00f3 recientemente. +templates.reset-password-confirm-email.ftl.note=Si no solicit\u00f3 un restablecimiento de contrase\u00f1a, p\u00f3ngase en contacto con el equipo de TI inmediatamente. diff --git a/config/alfresco/messages/reset-password-messages_fr.properties b/config/alfresco/messages/reset-password-messages_fr.properties new file mode 100644 index 0000000000..c9bc81f4e4 --- /dev/null +++ b/config/alfresco/messages/reset-password-messages_fr.properties @@ -0,0 +1,15 @@ +# Email subjects. +reset-password-request.email.subject=R\u00e9initialiser votre mot de passe +reset-password-confirmation.email.subject=R\u00e9initialisation du mot de passe r\u00e9ussie + +# Request reset password email +templates.reset-password-email.ftl.title=R\u00e9initialiser votre mot de passe +templates.reset-password-email.ftl.detail=Nous avons re\u00e7u une demande de modification du mot de passe de votre compte. +templates.reset-password-email.ftl.ignore_message=Si vous n'avez pas fait de demande de r\u00e9initialisation du mot de passe ou si vous ne souhaitez pas le modifier, ignorez et supprimez ce message. Votre compte restera prot\u00e9g\u00e9. +templates.reset-password-email.ftl.having_trouble_clicking_button=Cliquez sur le bouton R\u00e9initialiser le mot de passe ou copiez-collez l'adresse suivante dans votre navigateur Web\u00a0: +templates.reset-password-email.ftl.reset_password_button=R\u00e9initialiser le mot de passe + +# Reset password confirmation email +templates.reset-password-confirm-email.ftl.title=R\u00e9initialisation du mot de passe r\u00e9ussie +templates.reset-password-confirm-email.ftl.detail=Le mot de passe de votre compte Alfresco a \u00e9t\u00e9 modifi\u00e9. +templates.reset-password-confirm-email.ftl.note=Si vous n'avez pas demand\u00e9 la r\u00e9initialisation de votre mot de passe, contactez au plus vite votre service informatique. diff --git a/config/alfresco/messages/reset-password-messages_it.properties b/config/alfresco/messages/reset-password-messages_it.properties new file mode 100644 index 0000000000..e96b7af8e3 --- /dev/null +++ b/config/alfresco/messages/reset-password-messages_it.properties @@ -0,0 +1,15 @@ +# Email subjects. +reset-password-request.email.subject=Ripristina password +reset-password-confirmation.email.subject=Ripristino password eseguito correttamente + +# Request reset password email +templates.reset-password-email.ftl.title=Ripristina password +templates.reset-password-email.ftl.detail=Hai recentemente richiesto di modificare la password del tuo account. +templates.reset-password-email.ftl.ignore_message=Se non ha richiesto un ripristino della password o non desideri modificarla, puoi ignorare ed eliminare questo messaggio e il tuo account rimarr\u00e0 protetto. +templates.reset-password-email.ftl.having_trouble_clicking_button=Fai clic sul pulsante Ripristina password oppure copia e incolla l'indirizzo seguente nel tuo browser Web: +templates.reset-password-email.ftl.reset_password_button=Ripristina password + +# Reset password confirmation email +templates.reset-password-confirm-email.ftl.title=Ripristino password eseguito correttamente +templates.reset-password-confirm-email.ftl.detail=La password del tuo account Alfresco \u00e8 stata recentemente modificata. +templates.reset-password-confirm-email.ftl.note=Se non ha richiesto un ripristino della password, contatta immediatamente il team IT. diff --git a/config/alfresco/messages/reset-password-messages_ja.properties b/config/alfresco/messages/reset-password-messages_ja.properties new file mode 100644 index 0000000000..ae588d0d97 --- /dev/null +++ b/config/alfresco/messages/reset-password-messages_ja.properties @@ -0,0 +1,15 @@ +# Email subjects. +reset-password-request.email.subject=\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u30ea\u30bb\u30c3\u30c8 +reset-password-confirmation.email.subject=\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u30ea\u30bb\u30c3\u30c8\u3055\u308c\u307e\u3057\u305f + +# Request reset password email +templates.reset-password-email.ftl.title=\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u30ea\u30bb\u30c3\u30c8 +templates.reset-password-email.ftl.detail=\u304a\u4f7f\u3044\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u5909\u66f4\u7533\u8acb\u3092\u53d7\u3051\u4ed8\u3051\u307e\u3057\u305f\u3002 +templates.reset-password-email.ftl.ignore_message=\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u5909\u66f4\u3092\u7533\u8acb\u3057\u305f\u899a\u3048\u304c\u306a\u3044\u3001\u307e\u305f\u306f\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u5909\u66f4\u3057\u305f\u304f\u306a\u3044\u5834\u5408\u306f\u3001\u3053\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u7121\u8996\u3057\u3001\u524a\u9664\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u30a2\u30ab\u30a6\u30f3\u30c8\u306f\u5909\u66f4\u3055\u308c\u307e\u305b\u3093\u3002 +templates.reset-password-email.ftl.having_trouble_clicking_button=[\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u30ea\u30bb\u30c3\u30c8] \u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u304b\u3001\u6b21\u306e\u30a2\u30c9\u30ec\u30b9\u3092\u30b3\u30d4\u30fc\u3057\u3066\u304a\u4f7f\u3044\u306eWeb\u30d6\u30e9\u30a6\u30b6\u306b\u8cbc\u308a\u4ed8\u3051\u3066\u304f\u3060\u3055\u3044\u3002 +templates.reset-password-email.ftl.reset_password_button=\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u30ea\u30bb\u30c3\u30c8 + +# Reset password confirmation email +templates.reset-password-confirm-email.ftl.title=\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u30ea\u30bb\u30c3\u30c8\u3055\u308c\u307e\u3057\u305f +templates.reset-password-confirm-email.ftl.detail=\u304a\u4f7f\u3044\u306e Alfresco \u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u6700\u8fd1\u5909\u66f4\u3055\u308c\u307e\u3057\u305f\u3002 +templates.reset-password-confirm-email.ftl.note=\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u30ea\u30bb\u30c3\u30c8\u3092\u7533\u8acb\u3057\u305f\u899a\u3048\u304c\u306a\u3044\u5834\u5408\u306f\u3001\u81f3\u6025 IT \u62c5\u5f53\u8005\u306b\u9023\u7d61\u3057\u3066\u304f\u3060\u3055\u3044\u3002 diff --git a/config/alfresco/messages/reset-password-messages_nb.properties b/config/alfresco/messages/reset-password-messages_nb.properties new file mode 100644 index 0000000000..7c4e4a1319 --- /dev/null +++ b/config/alfresco/messages/reset-password-messages_nb.properties @@ -0,0 +1,15 @@ +# Email subjects. +reset-password-request.email.subject=Tilbakestill ditt passord +reset-password-confirmation.email.subject=Passordet er n\u00e5 tilbakestilt + +# Request reset password email +templates.reset-password-email.ftl.title=Tilbakestill ditt passord +templates.reset-password-email.ftl.detail=Du har nylig bedt om \u00e5 f\u00e5 passordet til din konto endret. +templates.reset-password-email.ftl.ignore_message=Hvis du ikke ba om \u00e5 f\u00e5 passordet endret og du ikke vil endre det, kan du se bort fra denne meldingen, og din konto vil fortsatt v\u00e6re trygg. +templates.reset-password-email.ftl.having_trouble_clicking_button=Enten klikk p\u00e5 knappen Tilbakestill passord, eller kopier og lim inn f\u00f8lgende adresse i nettleseren din: +templates.reset-password-email.ftl.reset_password_button=Tilbakestill passord + +# Reset password confirmation email +templates.reset-password-confirm-email.ftl.title=Passordet er n\u00e5 tilbakestilt +templates.reset-password-confirm-email.ftl.detail=Passordet til din Alfresco-konto ble nylig endret. +templates.reset-password-confirm-email.ftl.note=Hvis du ikke ba om \u00e5 f\u00e5r et passord tilbakestilt. skal du kontakte ditt IT-team omg\u00e5ende. diff --git a/config/alfresco/messages/reset-password-messages_nl.properties b/config/alfresco/messages/reset-password-messages_nl.properties new file mode 100644 index 0000000000..de718588ac --- /dev/null +++ b/config/alfresco/messages/reset-password-messages_nl.properties @@ -0,0 +1,15 @@ +# Email subjects. +reset-password-request.email.subject=Uw wachtwoord opnieuw instellen +reset-password-confirmation.email.subject=Wachtwoord is opnieuw ingesteld + +# Request reset password email +templates.reset-password-email.ftl.title=Uw wachtwoord opnieuw instellen +templates.reset-password-email.ftl.detail=U hebt onlangs een aanvraag ingediend voor het wijzigen van het wachtwoord voor uw account. +templates.reset-password-email.ftl.ignore_message=Als u geen aanvraag voor het opnieuw instellen van uw wachtwoord hebt ingediend of u wilt uw wachtwoord niet wijzigen, kunt u dit bericht negeren en verwijderen. Uw account blijft veilig. +templates.reset-password-email.ftl.having_trouble_clicking_button=Klik op de knop Wachtwoord opnieuw instellen of kopieer het volgende adres en plak het in uw webbrowser: +templates.reset-password-email.ftl.reset_password_button=Wachtwoord opnieuw instellen + +# Reset password confirmation email +templates.reset-password-confirm-email.ftl.title=Wachtwoord is opnieuw ingesteld +templates.reset-password-confirm-email.ftl.detail=Het wachtwoord voor uw Alfresco-account is onlangs gewijzigd. +templates.reset-password-confirm-email.ftl.note=Neem direct contact op met uw IT-team als u geen wijziging van uw wachtwoord hebt aangevraagd. diff --git a/config/alfresco/messages/reset-password-messages_pt_BR.properties b/config/alfresco/messages/reset-password-messages_pt_BR.properties new file mode 100644 index 0000000000..3dab47f5e2 --- /dev/null +++ b/config/alfresco/messages/reset-password-messages_pt_BR.properties @@ -0,0 +1,15 @@ +# Email subjects. +reset-password-request.email.subject=Redefinir senha +reset-password-confirmation.email.subject=Senha redefinida com sucesso + +# Request reset password email +templates.reset-password-email.ftl.title=Redefinir senha +templates.reset-password-email.ftl.detail=Recentemente voc\u00ea solicitou a altera\u00e7\u00e3o da senha da sua conta. +templates.reset-password-email.ftl.ignore_message=Se voc\u00ea n\u00e3o solicitou a redefini\u00e7\u00e3o da senha ou se n\u00e3o deseja alter\u00e1-la, ignore e exclua esta mensagem. Sua conta continuar\u00e1 segura. +templates.reset-password-email.ftl.having_trouble_clicking_button=Clique no bot\u00e3o Redefinir senha ou copie e cole o endere\u00e7o a seguir no navegador da web: +templates.reset-password-email.ftl.reset_password_button=Redefinir senha + +# Reset password confirmation email +templates.reset-password-confirm-email.ftl.title=Senha redefinida com sucesso +templates.reset-password-confirm-email.ftl.detail=A senha da sua conta Alfresco foi alterada recentemente. +templates.reset-password-confirm-email.ftl.note=Se voc\u00ea n\u00e3o solicitou a redefini\u00e7\u00e3o da senha, entre em contato com a Equipe de TI imediatamente. diff --git a/config/alfresco/messages/reset-password-messages_ru.properties b/config/alfresco/messages/reset-password-messages_ru.properties new file mode 100644 index 0000000000..1acae9f2e3 --- /dev/null +++ b/config/alfresco/messages/reset-password-messages_ru.properties @@ -0,0 +1,15 @@ +# Email subjects. +reset-password-request.email.subject=\u0421\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u043f\u0430\u0440\u043e\u043b\u044c +reset-password-confirmation.email.subject=\u041f\u0430\u0440\u043e\u043b\u044c \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u0431\u0440\u043e\u0448\u0435\u043d + +# Request reset password email +templates.reset-password-email.ftl.title=\u0421\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u043f\u0430\u0440\u043e\u043b\u044c +templates.reset-password-email.ftl.detail=\u0412\u044b \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043f\u0430\u0440\u043e\u043b\u044f \u0441\u0432\u043e\u0435\u0439 \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438. +templates.reset-password-email.ftl.ignore_message=\u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u043b\u0438 \u0441\u0431\u0440\u043e\u0441 \u043f\u0430\u0440\u043e\u043b\u044f \u0438\u043b\u0438 \u043d\u0435 \u0445\u043e\u0442\u0438\u0442\u0435 \u0435\u0433\u043e \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u043e\u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0432\u0430\u0448\u0430 \u0443\u0447\u0435\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f \u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u043e\u0439. +templates.reset-password-email.ftl.having_trouble_clicking_button=\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043a\u043d\u043e\u043f\u043a\u0443 "\u0421\u0431\u0440\u043e\u0441 \u043f\u0430\u0440\u043e\u043b\u044f" \u0438\u043b\u0438 \u0441\u043a\u043e\u043f\u0438\u0440\u0443\u0439\u0442\u0435 \u0438 \u0432\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0430\u0434\u0440\u0435\u0441 \u0432 \u0430\u0434\u0440\u0435\u0441\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0432\u0430\u0448\u0435\u0433\u043e \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430: +templates.reset-password-email.ftl.reset_password_button=\u0421\u0431\u0440\u043e\u0441 \u043f\u0430\u0440\u043e\u043b\u044f + +# Reset password confirmation email +templates.reset-password-confirm-email.ftl.title=\u041f\u0430\u0440\u043e\u043b\u044c \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u0431\u0440\u043e\u0448\u0435\u043d +templates.reset-password-confirm-email.ftl.detail=\u041f\u0430\u0440\u043e\u043b\u044c \u043a \u0432\u0430\u0448\u0435\u0439 \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 Alfresco \u043d\u0430\u0434\u0432\u0430\u043d\u043e \u0431\u044b\u043b \u0438\u0437\u043c\u0435\u043d\u0435\u043d. +templates.reset-password-confirm-email.ftl.note=\u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u043b\u0438 \u0441\u0431\u0440\u043e\u0441 \u043f\u0430\u0440\u043e\u043b\u044f, \u043d\u0435\u0437\u0430\u043c\u0435\u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435\u0441\u044c \u0432 \u0441\u0432\u043e\u044e \u0418\u0422-\u0441\u043b\u0443\u0436\u0431\u0443. diff --git a/config/alfresco/messages/reset-password-messages_zh_CN.properties b/config/alfresco/messages/reset-password-messages_zh_CN.properties new file mode 100644 index 0000000000..6101dd4624 --- /dev/null +++ b/config/alfresco/messages/reset-password-messages_zh_CN.properties @@ -0,0 +1,15 @@ +# Email subjects. +reset-password-request.email.subject=\u91cd\u7f6e\u60a8\u7684\u5bc6\u7801 +reset-password-confirmation.email.subject=\u5bc6\u7801\u91cd\u7f6e\u6210\u529f + +# Request reset password email +templates.reset-password-email.ftl.title=\u91cd\u7f6e\u60a8\u7684\u5bc6\u7801 +templates.reset-password-email.ftl.detail=\u60a8\u6700\u8fd1\u8bf7\u6c42\u66f4\u6539\u5e10\u6237\u7684\u5bc6\u7801\u3002 +templates.reset-password-email.ftl.ignore_message=\u5982\u679c\u60a8\u6ca1\u6709\u8bf7\u6c42\u5bc6\u7801\u91cd\u7f6e\u6216\u4e0d\u5e0c\u671b\u66f4\u6539\u5b83\uff0c\u60a8\u53ef\u4ee5\u5ffd\u7565\u6216\u5220\u9664\u6b64\u4fe1\u606f\uff0c\u5e76\u4e14\u60a8\u7684\u5e10\u6237\u5c06\u4fdd\u6301\u5b89\u5168\u3002 +templates.reset-password-email.ftl.having_trouble_clicking_button=\u5355\u51fb\u201c\u91cd\u7f6e\u5bc6\u7801\u201d\u6309\u94ae\uff0c\u6216\u590d\u5236\u7c98\u8d34\u4ee5\u4e0b\u5730\u5740\u5230\u7f51\u7edc\u6d4f\u89c8\u5668\uff1a +templates.reset-password-email.ftl.reset_password_button=\u91cd\u7f6e\u5bc6\u7801 + +# Reset password confirmation email +templates.reset-password-confirm-email.ftl.title=\u5bc6\u7801\u91cd\u7f6e\u6210\u529f +templates.reset-password-confirm-email.ftl.detail=\u60a8\u7684 Alfresco \u5e10\u6237\u7684\u5bc6\u7801\u6700\u8fd1\u5df2\u66f4\u6539\u3002 +templates.reset-password-confirm-email.ftl.note=\u5982\u679c\u60a8\u6ca1\u6709\u8bf7\u6c42\u5bc6\u7801\u91cd\u7f6e\uff0c\u8bf7\u7acb\u5373\u8054\u7cfb\u60a8\u7684 IT \u56e2\u961f\u3002 diff --git a/config/alfresco/messages/templates-messages_de.properties b/config/alfresco/messages/templates-messages_de.properties index 0abf508bf7..46c79918f1 100755 --- a/config/alfresco/messages/templates-messages_de.properties +++ b/config/alfresco/messages/templates-messages_de.properties @@ -91,3 +91,9 @@ templates.invite-email-moderated.html.info={0} m\u00f6chte der Site ''{1}'' auf templates.invite-email-moderated.html.see_pending=Siehe ausstehende Anfragen templates.invite-email.html.salutation_generic=Hallo, + +# common for most email templates +templates.generic-email.ftl.salutation=Hallo {0}, +templates.generic-email.ftl.copy_right=Alle Rechte vorbehalten. +templates.generic-email.ftl.contact_us=Kontakt + diff --git a/config/alfresco/messages/templates-messages_es.properties b/config/alfresco/messages/templates-messages_es.properties index a002d6b8f6..9aaff407aa 100755 --- a/config/alfresco/messages/templates-messages_es.properties +++ b/config/alfresco/messages/templates-messages_es.properties @@ -91,3 +91,9 @@ templates.invite-email-moderated.html.info={0} solicit\u00f3 unirse al sitio ''{ templates.invite-email-moderated.html.see_pending=Ver solicitudes pendientes templates.invite-email.html.salutation_generic=Hola: + +# common for most email templates +templates.generic-email.ftl.salutation=Hola {0}, +templates.generic-email.ftl.copy_right=Todos los derechos reservados. +templates.generic-email.ftl.contact_us=P\u00f3ngase en contacto con nosotros + diff --git a/config/alfresco/messages/templates-messages_fr.properties b/config/alfresco/messages/templates-messages_fr.properties index e082ea8643..b045f206a2 100755 --- a/config/alfresco/messages/templates-messages_fr.properties +++ b/config/alfresco/messages/templates-messages_fr.properties @@ -91,3 +91,9 @@ templates.invite-email-moderated.html.info={0} a demand\u00e9 \u00e0 rejoindre l templates.invite-email-moderated.html.see_pending=Consultez le document relatif aux requ\u00eates en attente templates.invite-email.html.salutation_generic=Bonjour, + +# common for most email templates +templates.generic-email.ftl.salutation=Cher/Ch\u00e8re {0}, +templates.generic-email.ftl.copy_right=Tous droits r\u00e9serv\u00e9s. +templates.generic-email.ftl.contact_us=Contactez-nous + diff --git a/config/alfresco/messages/templates-messages_it.properties b/config/alfresco/messages/templates-messages_it.properties index 3a46ce4e22..f3a9030a59 100755 --- a/config/alfresco/messages/templates-messages_it.properties +++ b/config/alfresco/messages/templates-messages_it.properties @@ -91,3 +91,9 @@ templates.invite-email-moderated.html.info={0} ha richiesto di aderire al sito ' templates.invite-email-moderated.html.see_pending=Visualizza Richieste in sospeso templates.invite-email.html.salutation_generic=Salve, + +# common for most email templates +templates.generic-email.ftl.salutation=Salve {0}, +templates.generic-email.ftl.copy_right=Tutti i diritti riservati. +templates.generic-email.ftl.contact_us=Contattaci + diff --git a/config/alfresco/messages/templates-messages_ja.properties b/config/alfresco/messages/templates-messages_ja.properties index 8e15aab047..323beffd95 100755 --- a/config/alfresco/messages/templates-messages_ja.properties +++ b/config/alfresco/messages/templates-messages_ja.properties @@ -91,3 +91,9 @@ templates.invite-email-moderated.html.info={0} \u304c {2}''\u4e0a\u306e''''{1}'' templates.invite-email-moderated.html.see_pending=\u4fdd\u7559\u4e2d\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u898b\u308b templates.invite-email.html.salutation_generic=\u7686\u69d8\u3001 + +# common for most email templates +templates.generic-email.ftl.salutation={0} \u3055\u3093 +templates.generic-email.ftl.copy_right=All Rights Reserved. +templates.generic-email.ftl.contact_us=\u9023\u7d61\u5148 + diff --git a/config/alfresco/messages/templates-messages_nb.properties b/config/alfresco/messages/templates-messages_nb.properties index 929001d410..b0afcb5494 100755 --- a/config/alfresco/messages/templates-messages_nb.properties +++ b/config/alfresco/messages/templates-messages_nb.properties @@ -91,3 +91,9 @@ templates.invite-email-moderated.html.info={0} ba om \u00e5 bli med p\u00e5 omr\ templates.invite-email-moderated.html.see_pending=Se foresp\u00f8rsler som venter p\u00e5 svar templates.invite-email.html.salutation_generic=Hei, + +# common for most email templates +templates.generic-email.ftl.salutation=Hei {0}, +templates.generic-email.ftl.copy_right=Med enerett. +templates.generic-email.ftl.contact_us=Kontakt oss + diff --git a/config/alfresco/messages/templates-messages_nl.properties b/config/alfresco/messages/templates-messages_nl.properties index cbe1ad0262..3a6552cc50 100755 --- a/config/alfresco/messages/templates-messages_nl.properties +++ b/config/alfresco/messages/templates-messages_nl.properties @@ -91,3 +91,9 @@ templates.invite-email-moderated.html.info={0} heeft aangevraagd lid te worden v templates.invite-email-moderated.html.see_pending=Openstaande aanvragen bekijken templates.invite-email.html.salutation_generic=Hallo, + +# common for most email templates +templates.generic-email.ftl.salutation=Beste {0}, +templates.generic-email.ftl.copy_right=Alle rechten voorbehouden. +templates.generic-email.ftl.contact_us=Neem contact op + diff --git a/config/alfresco/messages/templates-messages_pt_BR.properties b/config/alfresco/messages/templates-messages_pt_BR.properties index 8aebc60dba..f2020bb99a 100644 --- a/config/alfresco/messages/templates-messages_pt_BR.properties +++ b/config/alfresco/messages/templates-messages_pt_BR.properties @@ -91,3 +91,9 @@ templates.invite-email-moderated.html.info={0} solicitou ingresso no site ''{1}' templates.invite-email-moderated.html.see_pending=Ver solicita\u00e7\u00f5es pendentes templates.invite-email.html.salutation_generic=Ol\u00e1, + +# common for most email templates +templates.generic-email.ftl.salutation=Oi {0}, +templates.generic-email.ftl.copy_right=Todos os direitos reservados. +templates.generic-email.ftl.contact_us=Entre em contato conosco + diff --git a/config/alfresco/messages/templates-messages_ru.properties b/config/alfresco/messages/templates-messages_ru.properties index 39c7595e62..ca45023539 100755 --- a/config/alfresco/messages/templates-messages_ru.properties +++ b/config/alfresco/messages/templates-messages_ru.properties @@ -91,3 +91,9 @@ templates.invite-email-moderated.html.info={0} \u0437\u0430\u043f\u0440\u043e\u0 templates.invite-email-moderated.html.see_pending=\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u043e\u0436\u0438\u0434\u0430\u044e\u0449\u0438\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 templates.invite-email.html.salutation_generic=\u041f\u0440\u0438\u0432\u0435\u0442, + +# common for most email templates +templates.generic-email.ftl.salutation=\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, {0}, +templates.generic-email.ftl.copy_right=\u0412\u0441\u0435 \u043f\u0440\u0430\u0432\u0430 \u0437\u0430\u0449\u0438\u0449\u0435\u043d\u044b. +templates.generic-email.ftl.contact_us=\u041a\u043e\u043d\u0442\u0430\u043a\u0442\u044b + diff --git a/config/alfresco/messages/templates-messages_zh_CN.properties b/config/alfresco/messages/templates-messages_zh_CN.properties index 4a7c9d1ebf..bdc626b804 100755 --- a/config/alfresco/messages/templates-messages_zh_CN.properties +++ b/config/alfresco/messages/templates-messages_zh_CN.properties @@ -91,3 +91,9 @@ templates.invite-email-moderated.html.info={0} \u8bf7\u6c42\u52a0\u5165 {2} ''{1 templates.invite-email-moderated.html.see_pending=\u53c2\u89c1\u5f85\u51b3\u8bf7\u6c42 templates.invite-email.html.salutation_generic=\u60a8\u597d\uff0c + +# common for most email templates +templates.generic-email.ftl.salutation=\u60a8\u597d {0}\uff0c, +templates.generic-email.ftl.copy_right=\u4fdd\u7559\u6240\u6709\u6743\u5229\u3002 +templates.generic-email.ftl.contact_us=\u8054\u7cfb\u6211\u4eec + diff --git a/config/alfresco/workflow/workflow-messages_de.properties b/config/alfresco/workflow/workflow-messages_de.properties index 7dff61d385..6776eedd42 100755 --- a/config/alfresco/workflow/workflow-messages_de.properties +++ b/config/alfresco/workflow/workflow-messages_de.properties @@ -1,7 +1,7 @@ # Display labels for out-of-the-box Content-oriented Workflows ####################### -# ACTIVITI WORKFLOWS # +# ACTIVITI WORKFLOWS # ####################### # @@ -54,7 +54,7 @@ publishWebContent.workflow.title=Activiti Prozess zum ver\u00f6ffentlichen von W publishWebContent.workflow.description=Ver\u00f6ffentlichen von Web Content mit der Activiti Workflow Engine ############################ -# WORKFLOW MODEL LABELS # +# WORKFLOW MODEL LABELS # ############################ # Adhoc Task Definitions @@ -92,6 +92,15 @@ wf_workflowmodel.type.wf_activitiReviewTask.description=Dokumente zwecks Genehmi wf_workflowmodel.property.wf_reviewOutcome.title=\u00dcberpr\u00fcfungsergebnis wf_workflowmodel.property.wf_reviewOutcome.description=Dem Inhalt genehmigen oder ablehnen +activitiReview.task.wf_submitReviewTask.title=\u00dcberpr\u00fcfung starten +activitiReview.task.wf_submitReviewTask.description=Dokumente zur \u00dcberpr\u00fcfung und Genehmigung vorlegen +activitiReview.task.wf_rejectedTask.title=Abgelehnt +activitiReview.task.wf_rejectedTask.description=Abgelehnt +activitiReview.task.wf_approvedTask.title=Genehmigt +activitiReview.task.wf_approvedTask.description=Genehmigt +activitiReview.task.wf_activitiReviewTask.title=\u00dcberpr\u00fcfen +activitiReview.task.wf_activitiReviewTask.description=Dokumente zur \u00dcberpr\u00fcfung und Zustimmung + # Parallel Review And Approve Task Definitions wf_workflowmodel.type.wf_submitParallelReviewTask.title=Dokument(e) zur \u00dcberpr\u00fcfung senden @@ -118,6 +127,7 @@ activitiParallelReview.task.wf_submitParallelReviewTask.description=Dokumentenge activitiParallelReview.property.wf_requiredApprovePercent.title=Erforderlicher Prozentsatz Genehmigung activitiParallelReview.property.wf_requiredApprovePercent.description=Prozentsatz Pr\u00fcfer, die zur Genehmigung genehmigen m\u00fcssen activitiParallelReview.task.wf_activitiReviewTask.title=\u00dcberpr\u00fcfen +activitiParallelReview.task.wf_activitiReviewTask.description=Dokumente zur \u00dcberpr\u00fcfung und Zustimmung activitiParallelReview.task.wf_rejectedParallelTask.title=Dokument abgelehnt activitiParallelReview.task.wf_approvedParallelTask.title=Dokument genehmigt activitiParallelReview.property.wf_reviewerCount.title=Anzahl Pr\u00fcfer @@ -130,12 +140,21 @@ activitiParallelReview.property.wf_actualPercent.title=Derzeitiger Prozentsatz G activitiParallelReview.property.wf_actualPercent.description=Derzeitiger Prozentsatz Genehmigung activitiParallelReview.property.wf_reviewOutcome.title=\u00dcberpr\u00fcfungsergebnis activitiParallelReview.property.wf_reviewOutcome.description=\u00dcberpr\u00fcfungsergebnis +activitiParallelGroupReview.task.wf_activitiReviewTask.title=\u00dcberpr\u00fcfen +activitiParallelGroupReview.task.wf_activitiReviewTask.description=Dokumente zur \u00dcberpr\u00fcfung und Zustimmung # Pooled Review Task Definitions wf_workflowmodel.type.wf_submitGroupReviewTask.title=Gruppen\u00fcberpr\u00fcfung starten wf_workflowmodel.type.wf_submitGroupReviewTask.description=Dokumente zur \u00dcberpr\u00fcfung und Zustimmung einer Mitarbeitergruppe vorlegen +activitiReviewPooled.task.wf_activitiReviewTask.title=\u00dcberpr\u00fcfen +activitiReviewPooled.task.wf_activitiReviewTask.description=Dokumente zur \u00dcberpr\u00fcfung und Zustimmung +activitiReviewPooled.task.wf_rejectedTask.title=Dokument abgelehnt +activitiReviewPooled.task.wf_rejectedTask.description=Dokument abgelehnt +activitiReviewPooled.task.wf_approvedTask.title=Dokument genehmigt +activitiReviewPooled.task.wf_approvedTask.description=Dokument genehmigt + # List constraint display labels listconstraint.wf_reviewOutcomeOptions.Approve=Genehmigen listconstraint.wf_reviewOutcomeOptions.Reject=Ablehnen @@ -146,3 +165,7 @@ workflowtask.outcome.Approve=Genehmigt workflowtask.outcome.Reject=Abgelehnt workflowtask.already.done.error=Diese Aufgabe wurde bereits abgeschlossen und kann nicht mehr bearbeitet werden. + +# Reset password Task Definitions +resetpasswordwf_resetpassword.resetpassword.workflow.title=Zur\u00fccksetzen des Passwortes anfordern. +resetpasswordwf_resetpassword.resetpassword.workflow.description=Wird von Benutzern verwendet, um ein Zur\u00fccksetzen ihres Passwortes anzufordern. diff --git a/config/alfresco/workflow/workflow-messages_es.properties b/config/alfresco/workflow/workflow-messages_es.properties index fac0756555..b7f3923776 100755 --- a/config/alfresco/workflow/workflow-messages_es.properties +++ b/config/alfresco/workflow/workflow-messages_es.properties @@ -1,7 +1,7 @@ # Display labels for out-of-the-box Content-oriented Workflows ####################### -# ACTIVITI WORKFLOWS # +# ACTIVITI WORKFLOWS # ####################### # @@ -54,7 +54,7 @@ publishWebContent.workflow.title=Publicar contenido Web con Activiti publishWebContent.workflow.description=Publicaci\u00f3n de contenido Web utilizando el motor de flujo de trabajo Activiti ############################ -# WORKFLOW MODEL LABELS # +# WORKFLOW MODEL LABELS # ############################ # Adhoc Task Definitions @@ -92,6 +92,15 @@ wf_workflowmodel.type.wf_activitiReviewTask.description=Revisar documentos para wf_workflowmodel.property.wf_reviewOutcome.title=Revisar resultado wf_workflowmodel.property.wf_reviewOutcome.description=Aprobar y rechazar el contenido +activitiReview.task.wf_submitReviewTask.title=Iniciar revisi\u00f3n +activitiReview.task.wf_submitReviewTask.description=Enviar documentos para su revisi\u00f3n y aprobaci\u00f3n +activitiReview.task.wf_rejectedTask.title=Rechazados +activitiReview.task.wf_rejectedTask.description=Rechazados +activitiReview.task.wf_approvedTask.title=Aprobadas +activitiReview.task.wf_approvedTask.description=Aprobadas +activitiReview.task.wf_activitiReviewTask.title=Revisar +activitiReview.task.wf_activitiReviewTask.description=Documentos para revisi\u00f3n y aprobaci\u00f3n + # Parallel Review And Approve Task Definitions wf_workflowmodel.type.wf_submitParallelReviewTask.title=Enviar documentos para revisar @@ -118,6 +127,7 @@ activitiParallelReview.task.wf_submitParallelReviewTask.description=Solicitar ap activitiParallelReview.property.wf_requiredApprovePercent.title=Porcentaje de aprobaci\u00f3n requerido activitiParallelReview.property.wf_requiredApprovePercent.description=Porcentaje de revisores que deben confirmar su aprobaci\u00f3n activitiParallelReview.task.wf_activitiReviewTask.title=Revisar +activitiParallelReview.task.wf_activitiReviewTask.description=Documentos para revisi\u00f3n y aprobaci\u00f3n activitiParallelReview.task.wf_rejectedParallelTask.title=Documento rechazado activitiParallelReview.task.wf_approvedParallelTask.title=Documento aprobado activitiParallelReview.property.wf_reviewerCount.title=N\u00famero de revisores @@ -130,12 +140,21 @@ activitiParallelReview.property.wf_actualPercent.title=Porcentaje de aprobaci\u0 activitiParallelReview.property.wf_actualPercent.description=Porcentaje de aprobaci\u00f3n real activitiParallelReview.property.wf_reviewOutcome.title=Revisar resultado activitiParallelReview.property.wf_reviewOutcome.description=Revisar resultado +activitiParallelGroupReview.task.wf_activitiReviewTask.title=Revisar +activitiParallelGroupReview.task.wf_activitiReviewTask.description=Documentos para revisi\u00f3n y aprobaci\u00f3n # Pooled Review Task Definitions wf_workflowmodel.type.wf_submitGroupReviewTask.title=Iniciar revisi\u00f3n en grupo wf_workflowmodel.type.wf_submitGroupReviewTask.description=Enviar documentos para su revisi\u00f3n y aprobaci\u00f3n a un grupo de personas +activitiReviewPooled.task.wf_activitiReviewTask.title=Revisar +activitiReviewPooled.task.wf_activitiReviewTask.description=Documentos para revisi\u00f3n y aprobaci\u00f3n +activitiReviewPooled.task.wf_rejectedTask.title=Documento rechazado +activitiReviewPooled.task.wf_rejectedTask.description=Documento rechazado +activitiReviewPooled.task.wf_approvedTask.title=Documento aprobado +activitiReviewPooled.task.wf_approvedTask.description=Documento aprobado + # List constraint display labels listconstraint.wf_reviewOutcomeOptions.Approve=Aprobar listconstraint.wf_reviewOutcomeOptions.Reject=Rechazar @@ -146,3 +165,7 @@ workflowtask.outcome.Approve=Aprobada workflowtask.outcome.Reject=Rechazada workflowtask.already.done.error=Esta tarea ya se ha completado y no puede editarse. + +# Reset password Task Definitions +resetpasswordwf_resetpassword.resetpassword.workflow.title=Solicitar restablecimiento de contrase\u00f1a. +resetpasswordwf_resetpassword.resetpassword.workflow.description=Utilizado por los usuarios para solicitar el restablecimiento de su contrase\u00f1a. diff --git a/config/alfresco/workflow/workflow-messages_fr.properties b/config/alfresco/workflow/workflow-messages_fr.properties index 43079831c4..6aa6da0441 100755 --- a/config/alfresco/workflow/workflow-messages_fr.properties +++ b/config/alfresco/workflow/workflow-messages_fr.properties @@ -1,7 +1,7 @@ # Display labels for out-of-the-box Content-oriented Workflows ####################### -# ACTIVITI WORKFLOWS # +# ACTIVITI WORKFLOWS # ####################### # @@ -54,7 +54,7 @@ publishWebContent.workflow.title=Processus Activiti de publication de contenu We publishWebContent.workflow.description=Publication de contenu Web \u00e0 l'aide du moteur de workflow Activi ############################ -# WORKFLOW MODEL LABELS # +# WORKFLOW MODEL LABELS # ############################ # Adhoc Task Definitions @@ -92,6 +92,15 @@ wf_workflowmodel.type.wf_activitiReviewTask.description=R\u00e9viser des documen wf_workflowmodel.property.wf_reviewOutcome.title=R\u00e9sultat de la r\u00e9vision wf_workflowmodel.property.wf_reviewOutcome.description=Approuver ou rejeter le contenu +activitiReview.task.wf_submitReviewTask.title=D\u00e9marrer la r\u00e9vision +activitiReview.task.wf_submitReviewTask.description=Soumettre des documents pour r\u00e9vision et approbation +activitiReview.task.wf_rejectedTask.title=Rejet\u00e9 +activitiReview.task.wf_rejectedTask.description=Rejet\u00e9 +activitiReview.task.wf_approvedTask.title=Approuv\u00e9 +activitiReview.task.wf_approvedTask.description=Approuv\u00e9 +activitiReview.task.wf_activitiReviewTask.title=R\u00e9viser +activitiReview.task.wf_activitiReviewTask.description=Documents pour r\u00e9vision et approbation + # Parallel Review And Approve Task Definitions wf_workflowmodel.type.wf_submitParallelReviewTask.title=Envoyer un (des) document(s) pour r\u00e9vision @@ -118,6 +127,7 @@ activitiParallelReview.task.wf_submitParallelReviewTask.description=Demander l'a activitiParallelReview.property.wf_requiredApprovePercent.title=Pourcentage d'approbation requis activitiParallelReview.property.wf_requiredApprovePercent.description=Pourcentage de r\u00e9viseurs qui doivent approuver le contenu pour qu'il soit approuv\u00e9 activitiParallelReview.task.wf_activitiReviewTask.title=R\u00e9viser +activitiParallelReview.task.wf_activitiReviewTask.description=Documents pour r\u00e9vision et approbation activitiParallelReview.task.wf_rejectedParallelTask.title=Document rejet\u00e9 activitiParallelReview.task.wf_approvedParallelTask.title=Document approuv\u00e9 activitiParallelReview.property.wf_reviewerCount.title=Nombre de r\u00e9viseurs @@ -130,12 +140,21 @@ activitiParallelReview.property.wf_actualPercent.title=Pourcentage d'approbation activitiParallelReview.property.wf_actualPercent.description=Pourcentage d'approbation exact activitiParallelReview.property.wf_reviewOutcome.title=R\u00e9sultat de la r\u00e9vision activitiParallelReview.property.wf_reviewOutcome.description=R\u00e9sultat de la r\u00e9vision +activitiParallelGroupReview.task.wf_activitiReviewTask.title=R\u00e9viser +activitiParallelGroupReview.task.wf_activitiReviewTask.description=Documents pour r\u00e9vision et approbation # Pooled Review Task Definitions wf_workflowmodel.type.wf_submitGroupReviewTask.title=D\u00e9marrer la r\u00e9vision de groupe wf_workflowmodel.type.wf_submitGroupReviewTask.description=Soumettre des documents pour r\u00e9vision et approbation \u00e0 un groupe de personnes +activitiReviewPooled.task.wf_activitiReviewTask.title=R\u00e9viser +activitiReviewPooled.task.wf_activitiReviewTask.description=Documents pour r\u00e9vision et approbation +activitiReviewPooled.task.wf_rejectedTask.title=Document rejet\u00e9 +activitiReviewPooled.task.wf_rejectedTask.description=Document rejet\u00e9 +activitiReviewPooled.task.wf_approvedTask.title=Document approuv\u00e9 +activitiReviewPooled.task.wf_approvedTask.description=Document approuv\u00e9 + # List constraint display labels listconstraint.wf_reviewOutcomeOptions.Approve=Approuver listconstraint.wf_reviewOutcomeOptions.Reject=Rejeter @@ -146,3 +165,7 @@ workflowtask.outcome.Approve=Approuv\u00e9 workflowtask.outcome.Reject=Rejet\u00e9 workflowtask.already.done.error=Cette t\u00e2che a d\u00e9j\u00e0 \u00e9t\u00e9 termin\u00e9e et n'est plus modifiable. + +# Reset password Task Definitions +resetpasswordwf_resetpassword.resetpassword.workflow.title=Demande de r\u00e9initialisation de mot de passe. +resetpasswordwf_resetpassword.resetpassword.workflow.description=Permet aux utilisateurs de demander la r\u00e9initialisation de leur mot de passe. diff --git a/config/alfresco/workflow/workflow-messages_it.properties b/config/alfresco/workflow/workflow-messages_it.properties index 3853a94b7e..b25e788f80 100755 --- a/config/alfresco/workflow/workflow-messages_it.properties +++ b/config/alfresco/workflow/workflow-messages_it.properties @@ -1,7 +1,7 @@ # Display labels for out-of-the-box Content-oriented Workflows ####################### -# ACTIVITI WORKFLOWS # +# ACTIVITI WORKFLOWS # ####################### # @@ -54,7 +54,7 @@ publishWebContent.workflow.title=Processo Activiti per la pubblicazione di conte publishWebContent.workflow.description=Pubblicazione di contenuti web utilizzando il motore Activiti di workflow ############################ -# WORKFLOW MODEL LABELS # +# WORKFLOW MODEL LABELS # ############################ # Adhoc Task Definitions @@ -92,6 +92,15 @@ wf_workflowmodel.type.wf_activitiReviewTask.description=Esamina i documenti per wf_workflowmodel.property.wf_reviewOutcome.title=Esamina risultato wf_workflowmodel.property.wf_reviewOutcome.description=Approva o respingi il contenuto +activitiReview.task.wf_submitReviewTask.title=Avvia esame +activitiReview.task.wf_submitReviewTask.description=Invia i documenti per l'esame e l'approvazione +activitiReview.task.wf_rejectedTask.title=Respinto +activitiReview.task.wf_rejectedTask.description=Respinto +activitiReview.task.wf_approvedTask.title=Approvato +activitiReview.task.wf_approvedTask.description=Approvato +activitiReview.task.wf_activitiReviewTask.title=Esamina +activitiReview.task.wf_activitiReviewTask.description=Documenti per l'esame e l'approvazione + # Parallel Review And Approve Task Definitions wf_workflowmodel.type.wf_submitParallelReviewTask.title=Invia documenti da esaminare @@ -118,6 +127,7 @@ activitiParallelReview.task.wf_submitParallelReviewTask.description=Richiede l'a activitiParallelReview.property.wf_requiredApprovePercent.title=Percentuale di approvazioni richiesta activitiParallelReview.property.wf_requiredApprovePercent.description=Percentuale di esaminatori che devono approvare il contenuto per l'approvazione activitiParallelReview.task.wf_activitiReviewTask.title=Esamina +activitiParallelReview.task.wf_activitiReviewTask.description=Documenti per l'esame e l'approvazione activitiParallelReview.task.wf_rejectedParallelTask.title=Documento respinto activitiParallelReview.task.wf_approvedParallelTask.title=Documento approvato activitiParallelReview.property.wf_reviewerCount.title=Numero di esaminatori @@ -130,12 +140,21 @@ activitiParallelReview.property.wf_actualPercent.title=Percentuale di approvazio activitiParallelReview.property.wf_actualPercent.description=Percentuale di approvazioni effettiva activitiParallelReview.property.wf_reviewOutcome.title=Esamina risultato activitiParallelReview.property.wf_reviewOutcome.description=Esamina risultato +activitiParallelGroupReview.task.wf_activitiReviewTask.title=Esamina +activitiParallelGroupReview.task.wf_activitiReviewTask.description=Documenti per l'esame e l'approvazione # Pooled Review Task Definitions wf_workflowmodel.type.wf_submitGroupReviewTask.title=Avvia esame di gruppo wf_workflowmodel.type.wf_submitGroupReviewTask.description=Invia i documenti per l'esame e l'approvazione a un gruppo di persone +activitiReviewPooled.task.wf_activitiReviewTask.title=Esamina +activitiReviewPooled.task.wf_activitiReviewTask.description=Documenti per l'esame e l'approvazione +activitiReviewPooled.task.wf_rejectedTask.title=Documento respinto +activitiReviewPooled.task.wf_rejectedTask.description=Documento respinto +activitiReviewPooled.task.wf_approvedTask.title=Documento approvato +activitiReviewPooled.task.wf_approvedTask.description=Documento approvato + # List constraint display labels listconstraint.wf_reviewOutcomeOptions.Approve=Approva listconstraint.wf_reviewOutcomeOptions.Reject=Respingi @@ -146,3 +165,7 @@ workflowtask.outcome.Approve=Approvato workflowtask.outcome.Reject=Respinto workflowtask.already.done.error=Questo compito \u00e8 gi\u00e0 stato completato e non \u00e8 pi\u00f9 modificabile. + +# Reset password Task Definitions +resetpasswordwf_resetpassword.resetpassword.workflow.title=Richiedi reset password. +resetpasswordwf_resetpassword.resetpassword.workflow.description=Utilizzato dagli utenti per richiedere il reset della password. diff --git a/config/alfresco/workflow/workflow-messages_ja.properties b/config/alfresco/workflow/workflow-messages_ja.properties index 544db7a036..d23900a0a8 100755 --- a/config/alfresco/workflow/workflow-messages_ja.properties +++ b/config/alfresco/workflow/workflow-messages_ja.properties @@ -1,7 +1,7 @@ # Display labels for out-of-the-box Content-oriented Workflows ####################### -# ACTIVITI WORKFLOWS # +# ACTIVITI WORKFLOWS # ####################### # @@ -54,7 +54,7 @@ publishWebContent.workflow.title=\u30a6\u30a7\u30d6\u30b3\u30f3\u30c6\u30f3\u30c publishWebContent.workflow.description=\u30a2\u30af\u30c6\u30a3\u30d3\u30c6\u30a3\u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u30a8\u30f3\u30b8\u30f3\u3092\u4f7f\u7528\u3057\u3066\u30a6\u30a7\u30d6\u30b3\u30f3\u30c6\u30f3\u30c4\u3092\u516c\u958b\u3059\u308b ############################ -# WORKFLOW MODEL LABELS # +# WORKFLOW MODEL LABELS # ############################ # Adhoc Task Definitions @@ -92,6 +92,15 @@ wf_workflowmodel.type.wf_activitiReviewTask.description=\u6587\u66f8\u3092\u30ec wf_workflowmodel.property.wf_reviewOutcome.title=\u30ec\u30d3\u30e5\u30fc\u7d50\u679c wf_workflowmodel.property.wf_reviewOutcome.description=\u30b3\u30f3\u30c6\u30f3\u30c4\u3092\u627f\u8a8d\u307e\u305f\u306f\u5374\u4e0b\u3059\u308b +activitiReview.task.wf_submitReviewTask.title=\u30ec\u30d3\u30e5\u30fc\u306e\u958b\u59cb +activitiReview.task.wf_submitReviewTask.description=\u30ec\u30d3\u30e5\u30fc\u3068\u627f\u8a8d\u7528\u306b\u6587\u66f8\u3092\u9001\u4fe1 +activitiReview.task.wf_rejectedTask.title=\u5374\u4e0b\u6e08\u307f +activitiReview.task.wf_rejectedTask.description=\u5374\u4e0b\u6e08\u307f +activitiReview.task.wf_approvedTask.title=\u627f\u8a8d\u6e08\u307f +activitiReview.task.wf_approvedTask.description=\u627f\u8a8d\u6e08\u307f +activitiReview.task.wf_activitiReviewTask.title=\u30ec\u30d3\u30e5\u30fc +activitiReview.task.wf_activitiReviewTask.description=\u30ec\u30d3\u30e5\u30fc\u3068\u627f\u8a8d\u3092\u884c\u3046\u6587\u66f8 + # Parallel Review And Approve Task Definitions wf_workflowmodel.type.wf_submitParallelReviewTask.title=\u6587\u66f8\u3092\u30ec\u30d3\u30e5\u30fc\u7528\u306b\u9001\u4fe1 @@ -118,6 +127,7 @@ activitiParallelReview.task.wf_submitParallelReviewTask.description=1\u540d\u4ee activitiParallelReview.property.wf_requiredApprovePercent.title=\u5fc5\u8981\u306a\u627f\u8a8d\u6bd4\u7387 activitiParallelReview.property.wf_requiredApprovePercent.description=\u627f\u8a8d\u3092\u53d7\u3051\u308b\u305f\u3081\u306b\u627f\u8a8d\u3059\u308b\u5fc5\u8981\u306e\u3042\u308b\u30ec\u30d3\u30e5\u30a2\u306e\u30d1\u30fc\u30bb\u30f3\u30c6\u30fc\u30b8 activitiParallelReview.task.wf_activitiReviewTask.title=\u30ec\u30d3\u30e5\u30fc +activitiParallelReview.task.wf_activitiReviewTask.description=\u30ec\u30d3\u30e5\u30fc\u3068\u627f\u8a8d\u3092\u884c\u3046\u6587\u66f8 activitiParallelReview.task.wf_rejectedParallelTask.title=\u6587\u66f8\u5374\u4e0b activitiParallelReview.task.wf_approvedParallelTask.title=\u6587\u66f8\u627f\u8a8d activitiParallelReview.property.wf_reviewerCount.title=\u30ec\u30d3\u30e5\u30a2\u306e\u6570 @@ -130,12 +140,21 @@ activitiParallelReview.property.wf_actualPercent.title=\u5b9f\u969b\u306e\u627f\ activitiParallelReview.property.wf_actualPercent.description=\u5b9f\u969b\u306e\u627f\u8a8d\u30d1\u30fc\u30bb\u30f3\u30c6\u30fc\u30b8 activitiParallelReview.property.wf_reviewOutcome.title=\u30ec\u30d3\u30e5\u30fc\u7d50\u679c activitiParallelReview.property.wf_reviewOutcome.description=\u30ec\u30d3\u30e5\u30fc\u7d50\u679c +activitiParallelGroupReview.task.wf_activitiReviewTask.title=\u30ec\u30d3\u30e5\u30fc +activitiParallelGroupReview.task.wf_activitiReviewTask.description=\u30ec\u30d3\u30e5\u30fc\u3068\u627f\u8a8d\u3092\u884c\u3046\u6587\u66f8 # Pooled Review Task Definitions wf_workflowmodel.type.wf_submitGroupReviewTask.title=\u30b0\u30eb\u30fc\u30d7\u30ec\u30d3\u30e5\u30fc\u306e\u958b\u59cb wf_workflowmodel.type.wf_submitGroupReviewTask.description=\u30ec\u30d3\u30e5\u30fc\u3068\u627f\u8a8d\u7528\u306b\u6587\u66f8\u3092\u30e6\u30fc\u30b6\u30fc\u30b0\u30eb\u30fc\u30d7\u3078\u9001\u4fe1 +activitiReviewPooled.task.wf_activitiReviewTask.title=\u30ec\u30d3\u30e5\u30fc +activitiReviewPooled.task.wf_activitiReviewTask.description=\u30ec\u30d3\u30e5\u30fc\u3068\u627f\u8a8d\u3092\u884c\u3046\u6587\u66f8 +activitiReviewPooled.task.wf_rejectedTask.title=\u6587\u66f8\u5374\u4e0b +activitiReviewPooled.task.wf_rejectedTask.description=\u6587\u66f8\u5374\u4e0b +activitiReviewPooled.task.wf_approvedTask.title=\u6587\u66f8\u627f\u8a8d +activitiReviewPooled.task.wf_approvedTask.description=\u6587\u66f8\u627f\u8a8d + # List constraint display labels listconstraint.wf_reviewOutcomeOptions.Approve=\u627f\u8a8d listconstraint.wf_reviewOutcomeOptions.Reject=\u5374\u4e0b @@ -146,3 +165,7 @@ workflowtask.outcome.Approve=\u627f\u8a8d\u6e08\u307f workflowtask.outcome.Reject=\u5374\u4e0b\u6e08\u307f workflowtask.already.done.error=\u3053\u306e\u30bf\u30b9\u30af\u306f\u3059\u3067\u306b\u5b8c\u4e86\u3057\u3066\u3044\u308b\u305f\u3081\u3001\u7de8\u96c6\u3067\u304d\u307e\u305b\u3093\u3002 + +# Reset password Task Definitions +resetpasswordwf_resetpassword.resetpassword.workflow.title=\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u30ea\u30bb\u30c3\u30c8\u7533\u8acb +resetpasswordwf_resetpassword.resetpassword.workflow.description=\u30e6\u30fc\u30b6\u30fc\u304c\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u30ea\u30bb\u30c3\u30c8\u3092\u7533\u8acb\u3059\u308b\u969b\u306b\u4f7f\u7528\u3057\u307e\u3059\u3002 diff --git a/config/alfresco/workflow/workflow-messages_nb.properties b/config/alfresco/workflow/workflow-messages_nb.properties index e51d4217fa..b3ce3a07fb 100755 --- a/config/alfresco/workflow/workflow-messages_nb.properties +++ b/config/alfresco/workflow/workflow-messages_nb.properties @@ -1,7 +1,7 @@ # Display labels for out-of-the-box Content-oriented Workflows ####################### -# ACTIVITI WORKFLOWS # +# ACTIVITI WORKFLOWS # ####################### # @@ -54,7 +54,7 @@ publishWebContent.workflow.title=Activit-prosess for publisering av Webinnhold publishWebContent.workflow.description=Publisering av Webinnhold ved hjelp av Activiti-arbeidsflytmotoren ############################ -# WORKFLOW MODEL LABELS # +# WORKFLOW MODEL LABELS # ############################ # Adhoc Task Definitions @@ -92,6 +92,15 @@ wf_workflowmodel.type.wf_activitiReviewTask.description=Gjennomg\u00e5 dokumente wf_workflowmodel.property.wf_reviewOutcome.title=Gjennomgangsresultat wf_workflowmodel.property.wf_reviewOutcome.description=Godkjenn eller avvis innholdet +activitiReview.task.wf_submitReviewTask.title=Start gjennomgang +activitiReview.task.wf_submitReviewTask.description=Send dokumenter til gjennomgang og godkjenning +activitiReview.task.wf_rejectedTask.title=Avvist +activitiReview.task.wf_rejectedTask.description=Avvist +activitiReview.task.wf_approvedTask.title=Godkjent +activitiReview.task.wf_approvedTask.description=Godkjent +activitiReview.task.wf_activitiReviewTask.title=Gjennomg\u00e5 +activitiReview.task.wf_activitiReviewTask.description=Dokumenter til gjennomgang og godkjenning + # Parallel Review And Approve Task Definitions wf_workflowmodel.type.wf_submitParallelReviewTask.title=Send dokumenter til gjennomgang @@ -118,6 +127,7 @@ activitiParallelReview.task.wf_submitParallelReviewTask.description=Be om dokume activitiParallelReview.property.wf_requiredApprovePercent.title=Obligatorisk godkjenningsprosent activitiParallelReview.property.wf_requiredApprovePercent.description=Prosent av korrekturlesere som m\u00e5 godkjenne for godkjennelse activitiParallelReview.task.wf_activitiReviewTask.title=Gjennomg\u00e5 +activitiParallelReview.task.wf_activitiReviewTask.description=Dokumenter til gjennomgang og godkjenning activitiParallelReview.task.wf_rejectedParallelTask.title=Dokument avvist activitiParallelReview.task.wf_approvedParallelTask.title=Dokument godkjent activitiParallelReview.property.wf_reviewerCount.title=Antall korrekturlesere @@ -130,12 +140,21 @@ activitiParallelReview.property.wf_actualPercent.title=Faktisk godkjenningsprose activitiParallelReview.property.wf_actualPercent.description=Faktisk godkjenningsprosent activitiParallelReview.property.wf_reviewOutcome.title=Gjennomgangsresultat activitiParallelReview.property.wf_reviewOutcome.description=Gjennomgangsresultat +activitiParallelGroupReview.task.wf_activitiReviewTask.title=Gjennomg\u00e5 +activitiParallelGroupReview.task.wf_activitiReviewTask.description=Dokumenter til gjennomgang og godkjenning # Pooled Review Task Definitions wf_workflowmodel.type.wf_submitGroupReviewTask.title=Start gruppegjennomgang wf_workflowmodel.type.wf_submitGroupReviewTask.description=Send dokumenter til gjennomgang og godkjenning til en gruppe av personer +activitiReviewPooled.task.wf_activitiReviewTask.title=Gjennomg\u00e5 +activitiReviewPooled.task.wf_activitiReviewTask.description=Dokumenter til gjennomgang og godkjenning +activitiReviewPooled.task.wf_rejectedTask.title=Dokument avvist +activitiReviewPooled.task.wf_rejectedTask.description=Dokument avvist +activitiReviewPooled.task.wf_approvedTask.title=Dokument godkjent +activitiReviewPooled.task.wf_approvedTask.description=Dokument godkjent + # List constraint display labels listconstraint.wf_reviewOutcomeOptions.Approve=Godkjenn listconstraint.wf_reviewOutcomeOptions.Reject=Avvis @@ -146,3 +165,7 @@ workflowtask.outcome.Approve=Godkjent workflowtask.outcome.Reject=Avvist workflowtask.already.done.error=Denne oppgaven er allrerede fulf\u00f8rt og kan ikke lenger redigeres. + +# Reset password Task Definitions +resetpasswordwf_resetpassword.resetpassword.workflow.title=Be om tilbakestilling av passord. +resetpasswordwf_resetpassword.resetpassword.workflow.description=Brukes av brukere for \u00e5 be om tilbakestilling av deres passord. diff --git a/config/alfresco/workflow/workflow-messages_nl.properties b/config/alfresco/workflow/workflow-messages_nl.properties index b21341bafd..ee7dd033f8 100755 --- a/config/alfresco/workflow/workflow-messages_nl.properties +++ b/config/alfresco/workflow/workflow-messages_nl.properties @@ -1,7 +1,7 @@ # Display labels for out-of-the-box Content-oriented Workflows ####################### -# ACTIVITI WORKFLOWS # +# ACTIVITI WORKFLOWS # ####################### # @@ -54,7 +54,7 @@ publishWebContent.workflow.title=Web Content Activiti-proces publiceren publishWebContent.workflow.description=Webcontent publiceren met de Activiti-workflowengine ############################ -# WORKFLOW MODEL LABELS # +# WORKFLOW MODEL LABELS # ############################ # Adhoc Task Definitions @@ -92,6 +92,15 @@ wf_workflowmodel.type.wf_activitiReviewTask.description=Documenten reviseren om wf_workflowmodel.property.wf_reviewOutcome.title=Resultaat van revisie wf_workflowmodel.property.wf_reviewOutcome.description=De content goedkeuren of afwijzen +activitiReview.task.wf_submitReviewTask.title=Revisie starten +activitiReview.task.wf_submitReviewTask.description=Documenten ter revisie en goedkeuring verzenden +activitiReview.task.wf_rejectedTask.title=Afgewezen +activitiReview.task.wf_rejectedTask.description=Afgewezen +activitiReview.task.wf_approvedTask.title=Goedgekeurd +activitiReview.task.wf_approvedTask.description=Goedgekeurd +activitiReview.task.wf_activitiReviewTask.title=Reviseren +activitiReview.task.wf_activitiReviewTask.description=Documenten voor revisie en goedkeuring + # Parallel Review And Approve Task Definitions wf_workflowmodel.type.wf_submitParallelReviewTask.title=Document(en) ter revisie verzenden @@ -118,6 +127,7 @@ activitiParallelReview.task.wf_submitParallelReviewTask.description=Een of meer activitiParallelReview.property.wf_requiredApprovePercent.title=Vereist goedkeuringspercentage activitiParallelReview.property.wf_requiredApprovePercent.description=Percentage van revisoren die hun goedkeuring moeten geven activitiParallelReview.task.wf_activitiReviewTask.title=Reviseren +activitiParallelReview.task.wf_activitiReviewTask.description=Documenten voor revisie en goedkeuring activitiParallelReview.task.wf_rejectedParallelTask.title=Document afgewezen activitiParallelReview.task.wf_approvedParallelTask.title=Document goedgekeurd activitiParallelReview.property.wf_reviewerCount.title=Aantal revisoren @@ -130,12 +140,21 @@ activitiParallelReview.property.wf_actualPercent.title=Goedkeuringspercentage activitiParallelReview.property.wf_actualPercent.description=Goedkeuringspercentage activitiParallelReview.property.wf_reviewOutcome.title=Resultaat van revisie activitiParallelReview.property.wf_reviewOutcome.description=Resultaat van revisie +activitiParallelGroupReview.task.wf_activitiReviewTask.title=Reviseren +activitiParallelGroupReview.task.wf_activitiReviewTask.description=Documenten voor revisie en goedkeuring # Pooled Review Task Definitions wf_workflowmodel.type.wf_submitGroupReviewTask.title=Groepsrevisie starten wf_workflowmodel.type.wf_submitGroupReviewTask.description=Documenten ter revisie en goedkeuring verzenden naar een groep mensen +activitiReviewPooled.task.wf_activitiReviewTask.title=Reviseren +activitiReviewPooled.task.wf_activitiReviewTask.description=Documenten voor revisie en goedkeuring +activitiReviewPooled.task.wf_rejectedTask.title=Document afgewezen +activitiReviewPooled.task.wf_rejectedTask.description=Document afgewezen +activitiReviewPooled.task.wf_approvedTask.title=Document goedgekeurd +activitiReviewPooled.task.wf_approvedTask.description=Document goedgekeurd + # List constraint display labels listconstraint.wf_reviewOutcomeOptions.Approve=Goedkeuren listconstraint.wf_reviewOutcomeOptions.Reject=Afwijzen @@ -146,3 +165,7 @@ workflowtask.outcome.Approve=Goedgekeurd workflowtask.outcome.Reject=Afgewezen workflowtask.already.done.error=Deze taak is al voltooid en kan niet langer worden bewerkt. + +# Reset password Task Definitions +resetpasswordwf_resetpassword.resetpassword.workflow.title=Opnieuw instellen van wachtwoord aanvragen. +resetpasswordwf_resetpassword.resetpassword.workflow.description=Gebruikt door gebruikers om opnieuw instellen van wachtwoord aan te vragen. diff --git a/config/alfresco/workflow/workflow-messages_pt_BR.properties b/config/alfresco/workflow/workflow-messages_pt_BR.properties index 8fb9291303..00b3aafc75 100644 --- a/config/alfresco/workflow/workflow-messages_pt_BR.properties +++ b/config/alfresco/workflow/workflow-messages_pt_BR.properties @@ -1,7 +1,7 @@ # Display labels for out-of-the-box Content-oriented Workflows ####################### -# ACTIVITI WORKFLOWS # +# ACTIVITI WORKFLOWS # ####################### # @@ -54,7 +54,7 @@ publishWebContent.workflow.title=Processo Activiti de publica\u00e7\u00e3o de co publishWebContent.workflow.description=Publica\u00e7\u00e3o de conte\u00fado da Web usando o mecanismo de fluxo de trabalho Activiti ############################ -# WORKFLOW MODEL LABELS # +# WORKFLOW MODEL LABELS # ############################ # Adhoc Task Definitions @@ -92,6 +92,15 @@ wf_workflowmodel.type.wf_activitiReviewTask.description=Revisar documentos para wf_workflowmodel.property.wf_reviewOutcome.title=Resultado de revis\u00e3o wf_workflowmodel.property.wf_reviewOutcome.description=Aprovar ou rejeitar o conte\u00fado +activitiReview.task.wf_submitReviewTask.title=Iniciar revis\u00e3o +activitiReview.task.wf_submitReviewTask.description=Enviar documentos para revis\u00e3o e aprova\u00e7\u00e3o +activitiReview.task.wf_rejectedTask.title=Rejeitado +activitiReview.task.wf_rejectedTask.description=Rejeitado +activitiReview.task.wf_approvedTask.title=Aprovado +activitiReview.task.wf_approvedTask.description=Aprovado +activitiReview.task.wf_activitiReviewTask.title=Revisar +activitiReview.task.wf_activitiReviewTask.description=Documentos para revis\u00e3o e aprova\u00e7\u00e3o + # Parallel Review And Approve Task Definitions wf_workflowmodel.type.wf_submitParallelReviewTask.title=Enviar documento(s) para revis\u00e3o @@ -118,6 +127,7 @@ activitiParallelReview.task.wf_submitParallelReviewTask.description=Solicitar a activitiParallelReview.property.wf_requiredApprovePercent.title=Porcentagem de aprova\u00e7\u00e3o obrigat\u00f3ria activitiParallelReview.property.wf_requiredApprovePercent.description=Porcentagem dos revisores que devem aprovar para obter a aprova\u00e7\u00e3o activitiParallelReview.task.wf_activitiReviewTask.title=Revisar +activitiParallelReview.task.wf_activitiReviewTask.description=Documentos para revis\u00e3o e aprova\u00e7\u00e3o activitiParallelReview.task.wf_rejectedParallelTask.title=Documento rejeitado activitiParallelReview.task.wf_approvedParallelTask.title=Documento aprovado activitiParallelReview.property.wf_reviewerCount.title=N\u00famero de revisores @@ -130,12 +140,21 @@ activitiParallelReview.property.wf_actualPercent.title=Porcentagem efetiva de ap activitiParallelReview.property.wf_actualPercent.description=Porcentagem efetiva de aprova\u00e7\u00e3o activitiParallelReview.property.wf_reviewOutcome.title=Resultado de revis\u00e3o activitiParallelReview.property.wf_reviewOutcome.description=Resultado de revis\u00e3o +activitiParallelGroupReview.task.wf_activitiReviewTask.title=Revisar +activitiParallelGroupReview.task.wf_activitiReviewTask.description=Documentos para revis\u00e3o e aprova\u00e7\u00e3o # Pooled Review Task Definitions wf_workflowmodel.type.wf_submitGroupReviewTask.title=Iniciar revis\u00e3o em grupo wf_workflowmodel.type.wf_submitGroupReviewTask.description=Enviar documentos a um grupo de pessoas para revis\u00e3o e aprova\u00e7\u00e3o +activitiReviewPooled.task.wf_activitiReviewTask.title=Revisar +activitiReviewPooled.task.wf_activitiReviewTask.description=Documentos para revis\u00e3o e aprova\u00e7\u00e3o +activitiReviewPooled.task.wf_rejectedTask.title=Documento rejeitado +activitiReviewPooled.task.wf_rejectedTask.description=Documento rejeitado +activitiReviewPooled.task.wf_approvedTask.title=Documento aprovado +activitiReviewPooled.task.wf_approvedTask.description=Documento aprovado + # List constraint display labels listconstraint.wf_reviewOutcomeOptions.Approve=Aprovar listconstraint.wf_reviewOutcomeOptions.Reject=Rejeitar @@ -146,3 +165,7 @@ workflowtask.outcome.Approve=Aprovado workflowtask.outcome.Reject=Rejeitado workflowtask.already.done.error=Esta tarefa foi conclu\u00edda e n\u00e3o \u00e9 mais edit\u00e1vel. + +# Reset password Task Definitions +resetpasswordwf_resetpassword.resetpassword.workflow.title=Solicitar redefini\u00e7\u00e3o de senha. +resetpasswordwf_resetpassword.resetpassword.workflow.description=Os usu\u00e1rios podem solicitar a redefini\u00e7\u00e3o da senha. diff --git a/config/alfresco/workflow/workflow-messages_ru.properties b/config/alfresco/workflow/workflow-messages_ru.properties index 4133acf6cb..f51bd38d51 100755 --- a/config/alfresco/workflow/workflow-messages_ru.properties +++ b/config/alfresco/workflow/workflow-messages_ru.properties @@ -1,7 +1,7 @@ # Display labels for out-of-the-box Content-oriented Workflows ####################### -# ACTIVITI WORKFLOWS # +# ACTIVITI WORKFLOWS # ####################### # @@ -54,7 +54,7 @@ publishWebContent.workflow.title=\u041f\u0440\u043e\u0446\u0435\u0441\u0441 Acti publishWebContent.workflow.description=\u041f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u0432\u0435\u0431-\u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0431\u0438\u0437\u043d\u0435\u0441-\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 Activiti ############################ -# WORKFLOW MODEL LABELS # +# WORKFLOW MODEL LABELS # ############################ # Adhoc Task Definitions @@ -92,6 +92,15 @@ wf_workflowmodel.type.wf_activitiReviewTask.description=\u041f\u0440\u043e\u0432 wf_workflowmodel.property.wf_reviewOutcome.title=\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 wf_workflowmodel.property.wf_reviewOutcome.description=\u041f\u0440\u0438\u043d\u044f\u0442\u044c \u0438\u043b\u0438 \u043e\u0442\u043a\u043b\u043e\u043d\u0438\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u043d\u0442 +activitiReview.task.wf_submitReviewTask.title=\u041d\u0430\u0447\u0430\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 +activitiReview.task.wf_submitReviewTask.description=\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0438 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 +activitiReview.task.wf_rejectedTask.title=\u041e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u043e +activitiReview.task.wf_rejectedTask.description=\u041e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u043e +activitiReview.task.wf_approvedTask.title=\u041f\u0440\u0438\u043d\u044f\u0442\u043e +activitiReview.task.wf_approvedTask.description=\u041f\u0440\u0438\u043d\u044f\u0442\u043e +activitiReview.task.wf_activitiReviewTask.title=\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 +activitiReview.task.wf_activitiReviewTask.description=\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0438 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 + # Parallel Review And Approve Task Definitions wf_workflowmodel.type.wf_submitParallelReviewTask.title=\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 @@ -118,6 +127,7 @@ activitiParallelReview.task.wf_submitParallelReviewTask.description=\u0417\u0430 activitiParallelReview.property.wf_requiredApprovePercent.title=\u0422\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u043d\u0442 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f activitiParallelReview.property.wf_requiredApprovePercent.description=\u041f\u0440\u043e\u0446\u0435\u043d\u0442 \u0440\u0435\u0446\u0435\u043d\u0437\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0443\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0435\u0433\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f activitiParallelReview.task.wf_activitiReviewTask.title=\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c +activitiParallelReview.task.wf_activitiReviewTask.description=\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0438 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 activitiParallelReview.task.wf_rejectedParallelTask.title=\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d activitiParallelReview.task.wf_approvedParallelTask.title=\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d activitiParallelReview.property.wf_reviewerCount.title=\u0427\u0438\u0441\u043b\u043e \u0440\u0435\u0446\u0435\u043d\u0437\u0435\u043d\u0442\u043e\u0432 @@ -130,12 +140,21 @@ activitiParallelReview.property.wf_actualPercent.title=\u0424\u0430\u043a\u0442\ activitiParallelReview.property.wf_actualPercent.description=\u0424\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0446\u0435\u043d\u0442 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f activitiParallelReview.property.wf_reviewOutcome.title=\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 activitiParallelReview.property.wf_reviewOutcome.description=\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 +activitiParallelGroupReview.task.wf_activitiReviewTask.title=\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 +activitiParallelGroupReview.task.wf_activitiReviewTask.description=\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0438 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 # Pooled Review Task Definitions wf_workflowmodel.type.wf_submitGroupReviewTask.title=\u041d\u0430\u0447\u0430\u0442\u044c \u0433\u0440\u0443\u043f\u043f\u043e\u0432\u0443\u044e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 wf_workflowmodel.type.wf_submitGroupReviewTask.description=\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0438 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u0433\u0440\u0443\u043f\u043f\u0435 \u043b\u044e\u0434\u0435\u0439 +activitiReviewPooled.task.wf_activitiReviewTask.title=\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 +activitiReviewPooled.task.wf_activitiReviewTask.description=\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0438 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 +activitiReviewPooled.task.wf_rejectedTask.title=\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d +activitiReviewPooled.task.wf_rejectedTask.description=\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d +activitiReviewPooled.task.wf_approvedTask.title=\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d +activitiReviewPooled.task.wf_approvedTask.description=\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d + # List constraint display labels listconstraint.wf_reviewOutcomeOptions.Approve=\u041f\u0440\u0438\u043d\u044f\u0442\u044c listconstraint.wf_reviewOutcomeOptions.Reject=\u041e\u0442\u043a\u043b\u043e\u043d\u0438\u0442\u044c @@ -146,3 +165,7 @@ workflowtask.outcome.Approve=\u041f\u0440\u0438\u043d\u044f\u0442\u043e workflowtask.outcome.Reject=\u041e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u043e workflowtask.already.done.error=\u0417\u0430\u0434\u0430\u0447\u0430 \u0443\u0436\u0435 \u0431\u044b\u043b\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430, \u0435\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435\u043b\u044c\u0437\u044f \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c. + +# Reset password Task Definitions +resetpasswordwf_resetpassword.resetpassword.workflow.title=\u0417\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0441\u0431\u0440\u043e\u0441 \u043f\u0430\u0440\u043e\u043b\u044f. +resetpasswordwf_resetpassword.resetpassword.workflow.description=\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c\u0438 \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043d\u0430 \u0441\u0431\u0440\u043e\u0441 \u0441\u0432\u043e\u0435\u0433\u043e \u043f\u0430\u0440\u043e\u043b\u044f. diff --git a/config/alfresco/workflow/workflow-messages_zh_CN.properties b/config/alfresco/workflow/workflow-messages_zh_CN.properties index ccdab9e463..580e261ca9 100755 --- a/config/alfresco/workflow/workflow-messages_zh_CN.properties +++ b/config/alfresco/workflow/workflow-messages_zh_CN.properties @@ -1,7 +1,7 @@ # Display labels for out-of-the-box Content-oriented Workflows ####################### -# ACTIVITI WORKFLOWS # +# ACTIVITI WORKFLOWS # ####################### # @@ -54,7 +54,7 @@ publishWebContent.workflow.title=\u53d1\u5e03 Web \u5185\u5bb9\u7684 Activiti \u publishWebContent.workflow.description=\u4f7f\u7528 Activiti \u5de5\u4f5c\u6d41\u7a0b\u5f15\u64ce\u53d1\u5e03 Web \u5185\u5bb9 ############################ -# WORKFLOW MODEL LABELS # +# WORKFLOW MODEL LABELS # ############################ # Adhoc Task Definitions @@ -92,6 +92,15 @@ wf_workflowmodel.type.wf_activitiReviewTask.description=\u590d\u67e5\u6587\u6863 wf_workflowmodel.property.wf_reviewOutcome.title=\u590d\u67e5\u7ed3\u679c wf_workflowmodel.property.wf_reviewOutcome.description=\u6279\u51c6\u6216\u62d2\u7edd\u5185\u5bb9 +activitiReview.task.wf_submitReviewTask.title=\u5f00\u59cb\u590d\u67e5 +activitiReview.task.wf_submitReviewTask.description=\u63d0\u4ea4\u6587\u6863\u4f9b\u590d\u67e5\u548c\u6279\u51c6 +activitiReview.task.wf_rejectedTask.title=\u5df2\u62d2\u7edd +activitiReview.task.wf_rejectedTask.description=\u5df2\u62d2\u7edd +activitiReview.task.wf_approvedTask.title=\u5df2\u6279\u51c6 +activitiReview.task.wf_approvedTask.description=\u5df2\u6279\u51c6 +activitiReview.task.wf_activitiReviewTask.title=\u590d\u67e5 +activitiReview.task.wf_activitiReviewTask.description=\u4f9b\u590d\u67e5\u548c\u6279\u51c6\u7684\u6587\u6863 + # Parallel Review And Approve Task Definitions wf_workflowmodel.type.wf_submitParallelReviewTask.title=\u53d1\u9001\u6587\u6863\u4f9b\u590d\u67e5 @@ -118,6 +127,7 @@ activitiParallelReview.task.wf_submitParallelReviewTask.description=\u4e00\u4f4d activitiParallelReview.property.wf_requiredApprovePercent.title=\u6240\u9700\u6279\u51c6\u767e\u5206\u6bd4 activitiParallelReview.property.wf_requiredApprovePercent.description=\u8fbe\u5230\u6279\u51c6\u6761\u4ef6\u6240\u9700\u6279\u51c6\u590d\u67e5\u8005\u6240\u5360\u767e\u5206\u6bd4 activitiParallelReview.task.wf_activitiReviewTask.title=\u590d\u67e5 +activitiParallelReview.task.wf_activitiReviewTask.description=\u4f9b\u590d\u67e5\u548c\u6279\u51c6\u7684\u6587\u6863 activitiParallelReview.task.wf_rejectedParallelTask.title=\u6587\u6863\u88ab\u62d2\u7edd activitiParallelReview.task.wf_approvedParallelTask.title=\u5df2\u6279\u51c6\u6587\u6863 activitiParallelReview.property.wf_reviewerCount.title=\u590d\u67e5\u8005\u6570 @@ -130,12 +140,21 @@ activitiParallelReview.property.wf_actualPercent.title=\u5b9e\u9645\u6279\u51c6\ activitiParallelReview.property.wf_actualPercent.description=\u5b9e\u9645\u6279\u51c6\u767e\u5206\u6bd4 activitiParallelReview.property.wf_reviewOutcome.title=\u590d\u67e5\u7ed3\u679c activitiParallelReview.property.wf_reviewOutcome.description=\u590d\u67e5\u7ed3\u679c +activitiParallelGroupReview.task.wf_activitiReviewTask.title=\u590d\u67e5 +activitiParallelGroupReview.task.wf_activitiReviewTask.description=\u4f9b\u590d\u67e5\u548c\u6279\u51c6\u7684\u6587\u6863 # Pooled Review Task Definitions wf_workflowmodel.type.wf_submitGroupReviewTask.title=\u5f00\u59cb\u7ec4\u590d\u67e5 wf_workflowmodel.type.wf_submitGroupReviewTask.description=\u5411\u4e00\u7ec4\u4eba\u5458\u63d0\u4ea4\u6587\u6863\u4f9b\u590d\u67e5\u548c\u6279\u51c6 +activitiReviewPooled.task.wf_activitiReviewTask.title=\u590d\u67e5 +activitiReviewPooled.task.wf_activitiReviewTask.description=\u4f9b\u590d\u67e5\u548c\u6279\u51c6\u7684\u6587\u6863 +activitiReviewPooled.task.wf_rejectedTask.title=\u6587\u6863\u88ab\u62d2\u7edd +activitiReviewPooled.task.wf_rejectedTask.description=\u6587\u6863\u88ab\u62d2\u7edd +activitiReviewPooled.task.wf_approvedTask.title=\u5df2\u6279\u51c6\u6587\u6863 +activitiReviewPooled.task.wf_approvedTask.description=\u5df2\u6279\u51c6\u6587\u6863 + # List constraint display labels listconstraint.wf_reviewOutcomeOptions.Approve=\u6279\u51c6 listconstraint.wf_reviewOutcomeOptions.Reject=\u62d2\u7edd @@ -146,3 +165,7 @@ workflowtask.outcome.Approve=\u5df2\u6279\u51c6 workflowtask.outcome.Reject=\u5df2\u62d2\u7edd workflowtask.already.done.error=\u6b64\u4efb\u52a1\u5df2\u5b8c\u6210\uff0c\u65e0\u6cd5\u518d\u7f16\u8f91\u3002 + +# Reset password Task Definitions +resetpasswordwf_resetpassword.resetpassword.workflow.title=\u8bf7\u6c42\u5bc6\u7801\u91cd\u7f6e\u3002 +resetpasswordwf_resetpassword.resetpassword.workflow.description=\u7531\u7528\u6237\u4f7f\u7528\u4ee5\u8bf7\u6c42\u91cd\u7f6e\u5176\u5bc6\u7801\u3002 diff --git a/source/java/org/alfresco/repo/forum/CommentServiceImpl.java b/source/java/org/alfresco/repo/forum/CommentServiceImpl.java index f24411bc0c..7ccabc873e 100644 --- a/source/java/org/alfresco/repo/forum/CommentServiceImpl.java +++ b/source/java/org/alfresco/repo/forum/CommentServiceImpl.java @@ -613,17 +613,18 @@ public class CommentServiceImpl extends AbstractLifecycleBean implements Comment NodeRef discussableNodeRef = getDiscussableAncestor(commentNodeRef); if (discussableNodeRef.equals(discussableNode)) { - if (!isWorkingCopyOrLocked(discussableNode)) + if (!isWorkingCopyOrLocked(discussableNode) + || isLockOwner(discussableNode)) { canEdit = canEditPermission(commentNodeRef); canDelete = canDeletePermission(commentNodeRef); } } - + Map map = new HashMap<>(2); map.put(CommentService.CAN_EDIT, canEdit); map.put(CommentService.CAN_DELETE, canDelete); - + return map; } @@ -637,12 +638,17 @@ public class CommentServiceImpl extends AbstractLifecycleBean implements Comment boolean isCoordinator = permissionService.hasPermission(commentNodeRef, PermissionService.COORDINATOR) == (AccessStatus.ALLOWED); return (isSiteManager || isCoordinator || currentUser.equals(creator) || currentUser.equals(owner)); } - + private boolean canDeletePermission(NodeRef commentNodeRef) { return permissionService.hasPermission(commentNodeRef, PermissionService.DELETE) == AccessStatus.ALLOWED; } + private boolean isLockOwner(NodeRef nodeRef) + { + return lockService.getLockStatus(nodeRef) == LockStatus.LOCK_OWNER; + } + private boolean isWorkingCopyOrLocked(NodeRef nodeRef) { boolean isWorkingCopy = false; @@ -667,7 +673,7 @@ public class CommentServiceImpl extends AbstractLifecycleBean implements Comment } return (isWorkingCopy || isLocked); } - + @Override public void onUpdateProperties(NodeRef commentNodeRef, Map before, Map after) { @@ -675,10 +681,11 @@ public class CommentServiceImpl extends AbstractLifecycleBean implements Comment if (discussableNodeRef != null) { if (behaviourFilter.isEnabled(ContentModel.ASPECT_LOCKABLE) - && isWorkingCopyOrLocked(discussableNodeRef)) + && isWorkingCopyOrLocked(discussableNodeRef) + && !isLockOwner(discussableNodeRef)) { List changedProperties = getChangedProperties(before, after); - + // check if comment updated (rather than some other change, eg. addition of lockable aspect only) boolean commentUpdated = false; for (QName changedProperty : changedProperties) @@ -693,7 +700,7 @@ public class CommentServiceImpl extends AbstractLifecycleBean implements Comment } } } - + if (commentUpdated) { throw new NodeLockedException(discussableNodeRef); @@ -741,20 +748,22 @@ public class CommentServiceImpl extends AbstractLifecycleBean implements Comment return results; } - + @Override public void beforeDeleteNode(final NodeRef commentNodeRef) { NodeRef discussableNodeRef = getDiscussableAncestor(commentNodeRef); if (discussableNodeRef != null) { + boolean canDelete = canDeletePermission(commentNodeRef); if (behaviourFilter.isEnabled(ContentModel.ASPECT_LOCKABLE) // eg. delete site (MNT-14671) - && isWorkingCopyOrLocked(discussableNodeRef)) + && isWorkingCopyOrLocked(discussableNodeRef) + && !isLockOwner(discussableNodeRef) + && !canDelete) { throw new NodeLockedException(discussableNodeRef); } - boolean canDelete = canDeletePermission(commentNodeRef); if (! canDelete) { throw new AccessDeniedException("Cannot delete comment"); diff --git a/source/java/org/alfresco/repo/site/SiteMembership.java b/source/java/org/alfresco/repo/site/SiteMembership.java index 404500ff86..7bba607d63 100644 --- a/source/java/org/alfresco/repo/site/SiteMembership.java +++ b/source/java/org/alfresco/repo/site/SiteMembership.java @@ -34,134 +34,142 @@ import org.alfresco.service.cmr.site.SiteRole; * @author steveglover * */ -public class SiteMembership -{ - private SiteInfo siteInfo; - private String personId; - private String firstName; - private String lastName; - private String role; - - public SiteMembership(SiteInfo siteInfo, String personId, String firstName, String lastName, String role) - { - super(); - if(siteInfo == null) - { - throw new java.lang.IllegalArgumentException(); - } - if(personId == null) - { - throw new java.lang.IllegalArgumentException(); - } - if(firstName == null) - { - throw new java.lang.IllegalArgumentException(); - } - if(lastName == null) - { - throw new java.lang.IllegalArgumentException(); - } - if(role == null) - { - throw new java.lang.IllegalArgumentException(); - } - this.siteInfo = siteInfo; - this.personId = personId; - this.firstName = firstName; - this.lastName = lastName; - this.role = role; - } - - public SiteMembership(SiteInfo siteInfo, String personId, String role) - { - super(); - if(siteInfo == null) - { - throw new java.lang.IllegalArgumentException(); - } - if(personId == null) - { - throw new java.lang.IllegalArgumentException(); - } - if(role == null) - { - throw new java.lang.IllegalArgumentException(); - } - - this.siteInfo = siteInfo; - this.personId = personId; - this.role = role; - } - - public SiteInfo getSiteInfo() - { - return siteInfo; - } - - public String getPersonId() - { - return personId; - } - - public String getFirstName() - { - return firstName; - } - - public String getLastName() - { - return lastName; - } - - public String getRole() - { - return role; - } - - @Override - public int hashCode() - { - final int prime = 31; - int result = 1; - result = prime * result - + ((personId == null) ? 0 : personId.hashCode()); - result = prime * result + ((role == null) ? 0 : role.hashCode()); - result = prime * result - + ((getSiteInfo() == null) ? 0 : getSiteInfo().hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) - { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - SiteMembership other = (SiteMembership) obj; - if (personId == null) { - if (other.personId != null) - return false; - } else if (!personId.equals(other.personId)) - return false; - if (role != other.role) - return false; - if (getSiteInfo() == null) { - if (other.getSiteInfo() != null) - return false; - } else if (!getSiteInfo().equals(other.getSiteInfo())) - return false; - return true; - } - - @Override - public String toString() - { - return "SiteMembership [siteInfo=" + getSiteInfo() - + ", personId=" + personId + ", firstName=" + firstName - + ", lastName=" + lastName + ", role=" + role + "]"; - } - -} +public class SiteMembership +{ + private SiteInfo siteInfo; + private String personId; + private String firstName; + private String lastName; + private String role; + + public SiteMembership(SiteInfo siteInfo, String personId, String firstName, String lastName, + String role) + { + super(); + if (siteInfo == null) + { + throw new java.lang.IllegalArgumentException(); + } + if (personId == null) + { + throw new java.lang.IllegalArgumentException( + "Person required building site membership of " + siteInfo.getShortName()); + } + if (firstName == null) + { + throw new java.lang.IllegalArgumentException( + "FirstName required building site membership of " + siteInfo.getShortName()); + } + if (lastName == null) + { + throw new java.lang.IllegalArgumentException( + "LastName required building site membership of " + siteInfo.getShortName()); + } + if (role == null) + { + throw new java.lang.IllegalArgumentException( + "Role required building site membership of " + siteInfo.getShortName()); + } + this.siteInfo = siteInfo; + this.personId = personId; + this.firstName = firstName; + this.lastName = lastName; + this.role = role; + } + + public SiteMembership(SiteInfo siteInfo, String personId, String role) + { + super(); + if (siteInfo == null) + { + throw new java.lang.IllegalArgumentException(); + } + if (personId == null) + { + throw new java.lang.IllegalArgumentException( + "Person required building site membership of " + siteInfo.getShortName()); + } + if (role == null) + { + throw new java.lang.IllegalArgumentException( + "Role required building site membership of " + siteInfo.getShortName()); + } + + this.siteInfo = siteInfo; + this.personId = personId; + this.role = role; + } + + public SiteInfo getSiteInfo() + { + return siteInfo; + } + + public String getPersonId() + { + return personId; + } + + public String getFirstName() + { + return firstName; + } + + public String getLastName() + { + return lastName; + } + + public String getRole() + { + return role; + } + + @Override + public int hashCode() + { + final int prime = 31; + int result = 1; + result = prime * result + ((personId == null) ? 0 : personId.hashCode()); + result = prime * result + ((role == null) ? 0 : role.hashCode()); + result = prime * result + ((getSiteInfo() == null) ? 0 : getSiteInfo().hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) + { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + SiteMembership other = (SiteMembership) obj; + if (personId == null) + { + if (other.personId != null) + return false; + } + else if (!personId.equals(other.personId)) + return false; + if (role != other.role) + return false; + if (getSiteInfo() == null) + { + if (other.getSiteInfo() != null) + return false; + } + else if (!getSiteInfo().equals(other.getSiteInfo())) + return false; + return true; + } + + @Override + public String toString() + { + return "SiteMembership [siteInfo=" + getSiteInfo() + ", personId=" + personId + + ", firstName=" + firstName + ", lastName=" + lastName + ", role=" + role + "]"; + } + +} diff --git a/source/test-java/org/alfresco/repo/forum/CommentsTest.java b/source/test-java/org/alfresco/repo/forum/CommentsTest.java index 4cc6b6e4c3..e24bb5c805 100644 --- a/source/test-java/org/alfresco/repo/forum/CommentsTest.java +++ b/source/test-java/org/alfresco/repo/forum/CommentsTest.java @@ -1,34 +1,35 @@ -/* - * #%L - * Alfresco Repository - * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited - * %% - * This file is part of the Alfresco software. - * If the software was purchased under a paid Alfresco license, the terms of - * the paid license agreement will prevail. Otherwise, the software is - * provided under the following open source license terms: - * - * Alfresco is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Alfresco is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Alfresco. If not, see . - * #L% - */ +/* + * #%L + * Alfresco Repository + * %% + * Copyright (C) 2005 - 2016 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ package org.alfresco.repo.forum; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; import java.io.Serializable; import java.util.ArrayList; @@ -41,6 +42,7 @@ import org.alfresco.model.ForumModel; import org.alfresco.repo.content.MimetypeMap; import org.alfresco.repo.domain.activities.ActivityPostDAO; import org.alfresco.repo.domain.activities.ActivityPostEntity; +import org.alfresco.repo.lock.mem.Lifetime; import org.alfresco.repo.model.Repository; import org.alfresco.repo.policy.BehaviourFilter; import org.alfresco.repo.security.authentication.AuthenticationComponent; @@ -50,6 +52,9 @@ import org.alfresco.repo.security.permissions.impl.ModelDAO; import org.alfresco.repo.security.permissions.impl.PermissionServiceImpl; import org.alfresco.repo.site.SiteModel; import org.alfresco.repo.transaction.RetryingTransactionHelper; +import org.alfresco.service.cmr.lock.LockService; +import org.alfresco.service.cmr.lock.LockType; +import org.alfresco.service.cmr.lock.NodeLockedException; import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.ContentData; import org.alfresco.service.cmr.repository.ContentService; @@ -65,6 +70,7 @@ import org.alfresco.service.cmr.site.SiteService; import org.alfresco.service.cmr.site.SiteVisibility; import org.alfresco.service.namespace.NamespaceService; import org.alfresco.service.namespace.QName; +import org.alfresco.util.GUID; import org.alfresco.util.PropertyMap; import org.alfresco.util.test.junitrules.AlfrescoPerson; import org.alfresco.util.test.junitrules.ApplicationContextInit; @@ -83,33 +89,35 @@ import org.junit.rules.RuleChain; * Test class for some {@link ForumModel forum model}-related functionality, specifically comments. * There is no (fully-featured) "CommentService" or "DiscussionService" and the REST API simply creates the appropriate * content structure as required by the forum model. - * + * * @author Neil McErlean * @since 4.0 */ public class CommentsTest { private static final ApplicationContextInit APP_CONTEXT_INIT = new ApplicationContextInit(); - + public static final String USER_ONE_NAME = "userone"; + public static final String USER_TWO_NAME = "usertwo"; + public static final String USER_THREE_NAME = "userthree"; public static final AlfrescoPerson TEST_USER1 = new AlfrescoPerson(APP_CONTEXT_INIT, USER_ONE_NAME); - + // Tie them together in a static Rule Chain @ClassRule public static RuleChain STATIC_RULE_CHAIN = RuleChain.outerRule(APP_CONTEXT_INIT) .around(TEST_USER1); - + // A JUnit Rule to run all tests as user1 public RunAsFullyAuthenticatedRule runAsRule = new RunAsFullyAuthenticatedRule(TEST_USER1); - + // A JUnit Rule to manage test nodes use in each test method public TemporaryNodes testNodes = new TemporaryNodes(APP_CONTEXT_INIT); public TemporarySites testSites = new TemporarySites(APP_CONTEXT_INIT); - + // Tie them together in a non-static rule chain. @Rule public RuleChain ruleChain = RuleChain.outerRule(runAsRule) .around(testSites) .around(testNodes); - + // Services private static BehaviourFilter behaviourFilter; private static ContentService contentService; @@ -124,13 +132,14 @@ public class CommentsTest private static ActivityPostDAO postDAO; private static PermissionServiceImpl permissionServiceImpl; private static ModelDAO permissionModelDAO; + private static LockService lockService; // These NodeRefs are used by the test methods. private static NodeRef COMPANY_HOME; private SiteInfo testSite; private NodeRef testFolder; private List testDocs; - + @BeforeClass public static void initBasicServices() throws Exception { behaviourFilter = (BehaviourFilter)APP_CONTEXT_INIT.getApplicationContext().getBean("policyBehaviourFilter"); @@ -139,7 +148,7 @@ public class CommentsTest repositoryHelper = (Repository)APP_CONTEXT_INIT.getApplicationContext().getBean("repositoryHelper"); siteService = (SiteService)APP_CONTEXT_INIT.getApplicationContext().getBean("SiteService"); transactionHelper = (RetryingTransactionHelper)APP_CONTEXT_INIT.getApplicationContext().getBean("retryingTransactionHelper"); - + authenticationComponent = (AuthenticationComponent)APP_CONTEXT_INIT.getApplicationContext().getBean("authenticationComponent"); commentService = (CommentService)APP_CONTEXT_INIT.getApplicationContext().getBean("commentService"); authenticationService = (MutableAuthenticationService)APP_CONTEXT_INIT.getApplicationContext().getBean("AuthenticationService"); @@ -147,10 +156,11 @@ public class CommentsTest postDAO = (ActivityPostDAO)APP_CONTEXT_INIT.getApplicationContext().getBean("postDAO"); permissionServiceImpl = (PermissionServiceImpl)APP_CONTEXT_INIT.getApplicationContext().getBean("permissionServiceImpl"); permissionModelDAO = (ModelDAO)APP_CONTEXT_INIT.getApplicationContext().getBean("permissionsModelDAO"); - + lockService = (LockService)APP_CONTEXT_INIT.getApplicationContext().getBean("lockService"); + COMPANY_HOME = repositoryHelper.getCompanyHome(); } - + @Before public void createSomeContentForCommentingOn() throws Exception { // Create some content which we will comment on. @@ -160,16 +170,14 @@ public class CommentsTest testDocs = new ArrayList(3); for (int i = 0; i < 3; i++) { - NodeRef testNode = testNodes.createQuickFile(MimetypeMap.MIMETYPE_TEXT_PLAIN, COMPANY_HOME, "testDocInFolder" + i, TEST_USER1.getUsername()); + NodeRef testNode = testNodes.createQuickFile(MimetypeMap.MIMETYPE_TEXT_PLAIN, testFolder, "testDocInFolder_" + GUID.generate() + "_" + i, TEST_USER1.getUsername()); testDocs.add(testNode); } } - + // MNT-11667 "createComment" method creates activity for users who are not supposed to see the file @Test public void testMNT11667() throws Exception { - final String userTwo = "usertwo"; - try { transactionHelper.doInTransaction(new RetryingTransactionHelper.RetryingTransactionCallback() @@ -179,17 +187,17 @@ public class CommentsTest { authenticationComponent.setCurrentUser(AuthenticationUtil.getAdminUserName()); - createUser(userTwo); + createUser(USER_TWO_NAME); assertTrue(siteService.hasSite(testSite.getShortName())); authenticationComponent.setCurrentUser(USER_ONE_NAME); // invite user to a site with 'Collaborator' role - siteService.setMembership(testSite.getShortName(), userTwo, SiteModel.SITE_COLLABORATOR); + siteService.setMembership(testSite.getShortName(), USER_TWO_NAME, SiteModel.SITE_COLLABORATOR); assertEquals(SiteModel.SITE_MANAGER, siteService.getMembersRole(testSite.getShortName(), USER_ONE_NAME)); - assertEquals(SiteModel.SITE_COLLABORATOR, siteService.getMembersRole(testSite.getShortName(), userTwo)); + assertEquals(SiteModel.SITE_COLLABORATOR, siteService.getMembersRole(testSite.getShortName(), USER_TWO_NAME)); // get container of site NodeRef doclib = siteService.getContainer(testSite.getShortName(), SiteService.DOCUMENT_LIBRARY); @@ -233,7 +241,7 @@ public class CommentsTest assertTrue(permissionServiceImpl.hasPermission(nodeRef, getPermission(PermissionService.WRITE)) == AccessStatus.ALLOWED); assertTrue(permissionServiceImpl.hasPermission(nodeRef, getPermission(PermissionService.DELETE)) == AccessStatus.ALLOWED); - authenticationComponent.setCurrentUser(userTwo); + authenticationComponent.setCurrentUser(USER_TWO_NAME); assertTrue(permissionServiceImpl.hasPermission(nodeRef, getPermission(PermissionService.READ)) == AccessStatus.DENIED); assertTrue(permissionServiceImpl.hasPermission(nodeRef, getPermission(PermissionService.WRITE)) == AccessStatus.DENIED); @@ -248,24 +256,24 @@ public class CommentsTest { authenticationComponent.setCurrentUser(AuthenticationUtil.getAdminUserName()); - if (personService.personExists(userTwo)) + if (personService.personExists(USER_TWO_NAME)) { - personService.deletePerson(userTwo); + personService.deletePerson(USER_TWO_NAME); } - if (authenticationService.authenticationExists(userTwo)) + if (authenticationService.authenticationExists(USER_TWO_NAME)) { - authenticationService.deleteAuthentication(userTwo); + authenticationService.deleteAuthentication(USER_TWO_NAME); } } } - + private PermissionReference getPermission(String permission) { return permissionModelDAO.getPermissionReference(null, permission); } - + private void createUser(String userName) { // if user with given user name doesn't already exist then create user @@ -273,7 +281,7 @@ public class CommentsTest { // create user authenticationService.createAuthentication(userName, "password".toCharArray()); - + // create person properties PropertyMap personProps = new PropertyMap(); personProps.put(ContentModel.PROP_USERNAME, userName); @@ -282,12 +290,12 @@ public class CommentsTest personProps.put(ContentModel.PROP_EMAIL, "FirstName123.LastName123@email.com"); personProps.put(ContentModel.PROP_JOBTITLE, "JobTitle123"); personProps.put(ContentModel.PROP_JOBTITLE, "Organisation123"); - + // create person node for user personService.createPerson(personProps); } } - + /** * This test method comments on some nodes asserting that the commentCount rollup property * responds correctly to the changing number of comments. @@ -304,28 +312,28 @@ public class CommentsTest { assertCommentCountIs(nr, 0); } - + // Comment on each node twice Map> mapDiscussableToComments = new HashMap>(); - + for (NodeRef nr : testDocs) { final ArrayList comments = new ArrayList(); mapDiscussableToComments.put(nr, comments); - + comments.add(applyComment(nr, "Test comment 1 " + System.currentTimeMillis())); Thread.sleep(50); // 50 ms sleep so comments aren't simultaneous. - + comments.add(applyComment(nr, "Test comment 2 " + System.currentTimeMillis())); Thread.sleep(50); } - + // Check that the rollup comment counts are accurate. for (NodeRef nr : testDocs) { assertCommentCountIs(nr, 2); } - + // Remove comments for (Map.Entry> entry : mapDiscussableToComments.entrySet()) { @@ -363,39 +371,126 @@ public class CommentsTest assertTrue("Not enough test docs for this test case", testDocs.size() >= 2); NodeRef node1 = testDocs.get(0); NodeRef node2 = testDocs.get(1); - + // We will simulate pre-Swift commenting by temporarily disabling the behaviours that add the aspect & do the rollups. behaviourFilter.disableBehaviour(ForumModel.TYPE_POST); - + for (NodeRef nr : new NodeRef[]{node1, node2}) { // All test nodes initially do not have the commentsRollup aspect. assertFalse("Test node had comments rollup aspect.", nodeService.hasAspect(nr, ForumModel.ASPECT_COMMENTS_ROLLUP)); } - + // Comment on each node - we need to save one comment noderef in order to delete it later. NodeRef commentOnNode1 = applyComment(node1, "Hello", true); applyComment(node1, "Bonjour", true); applyComment(node2, "Hola", true); applyComment(node2, "Bout ye?", true); - + // Check that the rollup comment counts are still not present. And re-enable the behaviours after we check. for (NodeRef nr : new NodeRef[]{node1, node2}) { assertFalse("Test node had comments rollup aspect.", nodeService.hasAspect(nr, ForumModel.ASPECT_COMMENTS_ROLLUP)); } behaviourFilter.enableBehaviour(ForumModel.TYPE_POST); - + // Now the addition or deletion of a comment, should trigger a recalculation of the comment rollup from scratch. applyComment(node2, "hello again"); nodeService.deleteNode(commentOnNode1); assertCommentCountIs(node2, 3); assertCommentCountIs(node1, 1); - + return null; } }); } + + /** + * REPO-2557, ALF-21907 + */ + @Test public void testAddingCommentOnLockedNode() + { + // create user 2 and 3 + transactionHelper.doInTransaction(new RetryingTransactionHelper.RetryingTransactionCallback() + { + @Override + public Void execute() throws Throwable + { + authenticationComponent.setCurrentUser(AuthenticationUtil.getAdminUserName()); + createUser(USER_TWO_NAME); + createUser(USER_THREE_NAME); + siteService.setMembership(testSite.getShortName(), USER_TWO_NAME, SiteModel.SITE_MANAGER); + siteService.setMembership(testSite.getShortName(), USER_THREE_NAME, SiteModel.SITE_MANAGER); + return null; + } + }); + + // switch to user 1 + authenticationComponent.setCurrentUser(USER_ONE_NAME); + + // create some comments + final NodeRef testDoc = testDocs.get(0); + transactionHelper.doInTransaction(new RetryingTransactionHelper.RetryingTransactionCallback() + { + @Override + public Void execute() throws Throwable + { + applyComment(testDoc, "Hello 1"); + applyComment(testDoc, "Hello 2"); + return null; + } + }); + + authenticationComponent.setCurrentUser(USER_TWO_NAME); + + // lock node + transactionHelper.doInTransaction(new RetryingTransactionHelper.RetryingTransactionCallback() + { + @Override + public Void execute() throws Throwable + { + lockService.lock(testDoc, LockType.WRITE_LOCK, (int) 3600, Lifetime.PERSISTENT, "someInfo"); + return null; + } + }); + + authenticationComponent.setCurrentUser(USER_THREE_NAME); + + try + { + transactionHelper.doInTransaction(new RetryingTransactionHelper.RetryingTransactionCallback() + { + @Override + public Void execute() throws Throwable + { + applyComment(testDoc, "Hello 3"); + return null; + } + }); + fail("NodeLockedException not thrown"); + } + catch(NodeLockedException e) + { + // Fails because is not the lock owner + } + + // change to lock owner + authenticationComponent.setCurrentUser(USER_TWO_NAME); + + transactionHelper.doInTransaction(new RetryingTransactionHelper.RetryingTransactionCallback() + { + @Override + public Void execute() throws Throwable + { + applyComment(testDoc, "Hello 3"); + return null; + } + }); + + assertCommentCountIs(testDoc, 3); + + authenticationComponent.setCurrentUser(AuthenticationUtil.getAdminUserName()); + } /** * This test method tests that nodes whose commentCount is set to -1 have their commentCounts recalculated. diff --git a/source/test-java/org/alfresco/repo/site/SiteMembershipTest.java b/source/test-java/org/alfresco/repo/site/SiteMembershipTest.java new file mode 100644 index 0000000000..5c787dfa72 --- /dev/null +++ b/source/test-java/org/alfresco/repo/site/SiteMembershipTest.java @@ -0,0 +1,136 @@ +/* + * #%L + * Alfresco Repository + * %% + * Copyright (C) 2005 - 2016 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ +package org.alfresco.repo.site; + +import static org.junit.Assert.assertEquals; + +import java.util.UUID; + +import org.alfresco.service.cmr.site.SiteInfo; +import org.alfresco.service.cmr.site.SiteVisibility; +import org.junit.Before; +import org.junit.Test; + +/** + * Test Membership constructor logs. Based on REPO-2520 + * + * @author Alexandru Epure + */ +public class SiteMembershipTest +{ + SiteInfo siteInfo; + SiteMembership siteMember; + String personId = UUID.randomUUID().toString(); + String firstName = UUID.randomUUID().toString(); + String lastName = UUID.randomUUID().toString(); + String role = "Consumer"; + + String personErrorMessage = "Person required building site membership of "; + String firstNameErrorMessage = "FirstName required building site membership of "; + String lastNameErrorMessage = "LastName required building site membership of "; + String roleErrorMessage = "Role required building site membership of "; + + @Before + public void createSite() + { + String sitePreset = "testSiteMembershipPreset"; + String shortName = "testSiteMembershipShortName"; + String title = "testSiteMembershipTile"; + String description = "testSiteMembershipDescription"; + siteInfo = new SiteInfoImpl(sitePreset, shortName, title, description, + SiteVisibility.PUBLIC, null); + } + + @Test + public void testNullpersonInfo() throws Exception + { + try + { + siteMember = new SiteMembership(siteInfo, null, firstName, lastName, role); + } + catch (IllegalArgumentException e) + { + assertEquals(personErrorMessage + siteInfo.getShortName(), e.getMessage()); + } + + try + { + siteMember = new SiteMembership(siteInfo, null, role); + } + catch (IllegalArgumentException e) + { + assertEquals(personErrorMessage + siteInfo.getShortName(), e.getMessage()); + } + } + + @Test + public void testNullRole() throws Exception + { + try + { + siteMember = new SiteMembership(siteInfo, personId, firstName, lastName, null); + } + catch (IllegalArgumentException e) + { + assertEquals(roleErrorMessage + siteInfo.getShortName(), e.getMessage()); + } + + try + { + siteMember = new SiteMembership(siteInfo, personId, null); + } + catch (IllegalArgumentException e) + { + assertEquals(roleErrorMessage + siteInfo.getShortName(), e.getMessage()); + } + } + + @Test + public void testNullFirstName() throws Exception + { + try + { + siteMember = new SiteMembership(siteInfo, personId, null, lastName, role); + } + catch (IllegalArgumentException e) + { + assertEquals(firstNameErrorMessage + siteInfo.getShortName(), e.getMessage()); + } + } + + @Test + public void testNullLastNale() throws Exception + { + try + { + siteMember = new SiteMembership(siteInfo, personId, firstName, null, role); + } + catch (IllegalArgumentException e) + { + assertEquals(lastNameErrorMessage + siteInfo.getShortName(), e.getMessage()); + } + } +}