diff --git a/src/main/java/org/olat/core/util/mail/MailerResult.java b/src/main/java/org/olat/core/util/mail/MailerResult.java index d0e92443a39e920d441e6a14575f4e4689a15359..2e4aed7a48ae527954ebb9dacfc70db1560d7705 100644 --- a/src/main/java/org/olat/core/util/mail/MailerResult.java +++ b/src/main/java/org/olat/core/util/mail/MailerResult.java @@ -28,6 +28,8 @@ package org.olat.core.util.mail; import java.util.ArrayList; import java.util.List; +import javax.mail.Address; + import org.olat.core.id.Identity; /** @@ -49,7 +51,9 @@ public class MailerResult { public static final int TEMPLATE_GENERAL_ERROR = 6; public static final int ATTACHMENT_INVALID = 7; - private final List<Identity> failedIdentites = new ArrayList<Identity>(); + private final List<String> invalidAddresses = new ArrayList<>(); + private final List<Identity> failedIdentites = new ArrayList<>(); + private int returnCode = OK; /** @@ -80,6 +84,18 @@ public class MailerResult { public void addFailedIdentites(Identity failedIdentity) { this.failedIdentites.add(failedIdentity); } + + public List<String> getInvalidAddresses() { + return invalidAddresses; + } + + public void addInvalidAddresses(Address[] addresses) { + if(addresses != null && addresses.length > 0) { + for(Address address:addresses) { + invalidAddresses.add(address.toString()); + } + } + } /** * Package helper to set the return code. @@ -97,6 +113,9 @@ public class MailerResult { if(newResult.getFailedIdentites() != null && newResult.getFailedIdentites().size() > 0) { failedIdentites.addAll(newResult.getFailedIdentites()); } + if(newResult.getInvalidAddresses() != null && newResult.getInvalidAddresses().size() > 0) { + invalidAddresses.addAll(newResult.getInvalidAddresses()); + } } @Override diff --git a/src/main/java/org/olat/core/util/mail/manager/MailManagerImpl.java b/src/main/java/org/olat/core/util/mail/manager/MailManagerImpl.java index 6c57f821c1972e153925a08f054fe7ac7c666d8e..70de7ce09bcb7e8dcc316f03011602d38cf53277 100644 --- a/src/main/java/org/olat/core/util/mail/manager/MailManagerImpl.java +++ b/src/main/java/org/olat/core/util/mail/manager/MailManagerImpl.java @@ -35,6 +35,7 @@ import java.util.Collections; import java.util.Date; import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Properties; import java.util.Set; import java.util.zip.Adler32; @@ -48,6 +49,7 @@ import javax.mail.BodyPart; import javax.mail.Message.RecipientType; import javax.mail.MessagingException; import javax.mail.Multipart; +import javax.mail.SendFailedException; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.AddressException; @@ -872,6 +874,9 @@ public class MailManagerImpl implements MailManager, InitializingBean { MimeMessage mail = createMimeMessage(fromId, from, toId, to, cc, bccLists, content, result); if(mail != null) { sendMessage(mail, result); + if(result != null && !result.isSuccessful()) { + handleErrors(result, fromId, toId, cc, bccLists); + } } return result; } @@ -1060,6 +1065,9 @@ public class MailManagerImpl implements MailManager, InitializingBean { //check that we send an email to someone if(!toAddress.isEmpty() || !ccAddress.isEmpty() || !bccAddress.isEmpty()) { sendRealMessage(fromAddress, toAddress, ccAddress, bccAddress, subject, body, attachments, result); + if(result != null && !result.isSuccessful()) { + handleErrors(result, fromId, toId, cc, bccLists); + } } } @@ -1080,6 +1088,83 @@ public class MailManagerImpl implements MailManager, InitializingBean { } } + /** + * Basically try to find compare the list of invalid addresses return by the mail server + * with the different recipients (in the form of Identity) of the mail. + * + * @param result The result which contains the invalid addresses + * @param fromId A recipient of the mail (optional can be null) + * @param toId A recipient of the mail (optional can be null) + * @param cc A recipient of the mail (optional can be null) + * @param bccLists A list of contact list of the mail (optional can be null or empty) + */ + private void handleErrors(MailerResult result, Identity fromId, Identity toId, Identity cc, List<ContactList> bccLists) { + if(result == null) return; + + List<String> invalidAddresses = result.getInvalidAddresses(); + if(invalidAddresses.size() > 0) { + if(match(fromId, invalidAddresses, true)) { + result.addFailedIdentites(fromId); + } + if(match(toId, invalidAddresses, true)) { + result.addFailedIdentites(fromId); + } + if(match(cc, invalidAddresses, true)) { + result.addFailedIdentites(fromId); + } + if(bccLists != null && bccLists.size() > 0) { + for(ContactList bccList:bccLists) { + Map<String,Identity> emailToIdentityMap = bccList.getIdentiEmails(); + for(Map.Entry<String,Identity> entry:emailToIdentityMap.entrySet()) { + if(match(entry.getKey(), invalidAddresses, true)) { + result.addFailedIdentites(entry.getValue()); + } + } + } + } + } + } + + /** + * Try to find the email or institutional email address of the identity in + * the list of addresses. + * + * @param identity The identity + * @param invalidAddresses The list of addresses to compare with + * @param removeMatch if true, the matched address will be removed of the list + * @return true if found + */ + private boolean match(Identity identity, List<String> invalidAddresses, boolean removeMatch) { + boolean match = false; + if(identity != null) { + match |= match(identity.getUser().getEmail(), invalidAddresses, removeMatch); + match |= match(identity.getUser().getProperty(UserConstants.INSTITUTIONALEMAIL, null), invalidAddresses, removeMatch); + } + return match; + } + + /** + * Try to find the email address the list of addresses. + * + * @param identity The email to compare + * @param invalidAddresses The list of addresses to compare with + * @param removeMatch if true, the matched address will be removed of the list + * @return true if found + */ + private boolean match(String email, List<String> invalidAddresses, boolean removeMatch) { + if(StringHelper.containsNonWhitespace(email) && invalidAddresses != null) { + for(String invalidAddress:invalidAddresses) { + if(email.toLowerCase().contains(invalidAddress.toLowerCase())) { + if(removeMatch) { + invalidAddresses.remove(invalidAddress); + } + return true; + } + } + } + return false; + } + private void appendRecipients(DBMailImpl mail, List<ContactList> ccLists, List<Address> toAddress, List<Address> ccAddress, boolean visible, boolean makeRealMail, MailerResult result) throws AddressException { @@ -1473,6 +1558,7 @@ public class MailManagerImpl implements MailManager, InitializingBean { p.put("mail.smtp.starttls.enable", "true"); p.put("mail.smtp.ssl.trust", mailhost); } + p.put("mail.smtp.sendpartial", Boolean.TRUE); Session mailSession; if (smtpAuth == null) { @@ -1628,6 +1714,11 @@ public class MailManagerImpl implements MailManager, InitializingBean { } else { result.setReturnCode(MailerResult.MAILHOST_UNDEFINED); } + } catch(SendFailedException e) { + result.setReturnCode(MailerResult.RECIPIENT_ADDRESS_ERROR); + result.addInvalidAddresses(e.getInvalidAddresses()); + result.addInvalidAddresses(e.getValidUnsentAddresses()); + log.warn("Could not send mail", e); } catch (MessagingException e) { result.setReturnCode(MailerResult.SEND_GENERAL_ERROR); log.warn("Could not send mail", e); @@ -1637,18 +1728,32 @@ public class MailManagerImpl implements MailManager, InitializingBean { private void logMessage(MimeMessage msg) throws MessagingException { try { log.info("E-mail send: " + msg.getSubject()); + logRecipients(msg, RecipientType.TO); + logRecipients(msg, RecipientType.BCC); + logRecipients(msg, RecipientType.CC); log.info("Content : " + msg.getContent()); //File file = new File("/HotCoffee/tmp/mail_" + CodeHelper.getForeverUniqueID() + ".msg"); //OutputStream os = new FileOutputStream(file); //msg.writeTo(os); //IOUtils.closeQuietly(os); - } catch (IOException e) { log.error("", e); } } + private void logRecipients(MimeMessage msg, RecipientType type) throws MessagingException { + Address[] recipients = msg.getRecipients(type); + if(recipients != null && recipients.length > 0) { + StringBuilder sb = new StringBuilder(); + for(Address recipient:recipients) { + if(sb.length() > 0) sb.append(", "); + sb.append(recipient.toString()); + } + log.info(type + " : " + sb); + } + } + private static class VFSDataSource implements DataSource { private final String name; diff --git a/src/main/java/org/olat/modules/co/ContactFormController.java b/src/main/java/org/olat/modules/co/ContactFormController.java index f3cc843a5de7f530039079d37ec75a9f38347334..18353f54cdf2d7862d44b0c3ffb87e6a1706e9a6 100644 --- a/src/main/java/org/olat/modules/co/ContactFormController.java +++ b/src/main/java/org/olat/modules/co/ContactFormController.java @@ -29,12 +29,6 @@ import java.io.File; import java.util.ArrayList; import java.util.List; -import javax.mail.Address; -import javax.mail.AuthenticationFailedException; -import javax.mail.MessagingException; -import javax.mail.SendFailedException; - -import org.olat.core.CoreSpringFactory; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; import org.olat.core.gui.control.Controller; @@ -45,11 +39,8 @@ import org.olat.core.gui.control.generic.messages.MessageUIFactory; import org.olat.core.gui.control.generic.modal.DialogBoxController; import org.olat.core.gui.control.generic.modal.DialogBoxUIFactory; import org.olat.core.id.Identity; -import org.olat.core.logging.OLATRuntimeException; -import org.olat.core.logging.OLog; -import org.olat.core.logging.Tracing; import org.olat.core.logging.activity.ThreadLocalUserActivityLogger; -import org.olat.core.util.WebappHelper; +import org.olat.core.util.StringHelper; import org.olat.core.util.mail.ContactList; import org.olat.core.util.mail.ContactMessage; import org.olat.core.util.mail.MailBundle; @@ -59,6 +50,8 @@ import org.olat.core.util.mail.MailHelper; import org.olat.core.util.mail.MailLoggingAction; import org.olat.core.util.mail.MailManager; import org.olat.core.util.mail.MailerResult; +import org.olat.user.UserManager; +import org.springframework.beans.factory.annotation.Autowired; /** * <b>Fires Event: </b> @@ -92,22 +85,23 @@ import org.olat.core.util.mail.MailerResult; * <LI>contact messages with pre-initialized subject and/or body</LI> * </UL> * <P> - * TODO:pb:b refactor ContactFormController and ContactForm to extract a ContactMessageManager, - * setSubject(..) setRecipients.. etc. should not be in the controller. Refactor to use ContactMessage! * @see org.olat.modules.co.ContactList * Initial Date: Jul 19, 2004 * @author patrick */ public class ContactFormController extends BasicController { - - private static final OLog log = Tracing.createLoggerFor(ContactFormController.class); - // + private Identity emailFrom; private ContactForm cntctForm; private DialogBoxController noUsersErrorCtr; - private ArrayList<String> myButtons; + private List<String> myButtons; + + @Autowired private MailManager mailService; + @Autowired + private UserManager userManager; + /** * * @param ureq @@ -122,8 +116,7 @@ public class ContactFormController extends BasicController { super(ureq, windowControl); //init email form - this.emailFrom = cmsg.getFrom(); - mailService = CoreSpringFactory.getImpl(MailManager.class); + emailFrom = cmsg.getFrom(); cntctForm = new ContactForm(ureq, windowControl, emailFrom, isReadonly,isCanceable,hasRecipientsEditable); listenTo(cntctForm); @@ -183,6 +176,7 @@ public class ContactFormController extends BasicController { * @see org.olat.core.gui.control.DefaultController#event(org.olat.core.gui.UserRequest, * org.olat.core.gui.control.Controller, org.olat.core.gui.control.Event) */ + @Override public void event(UserRequest ureq, Controller source, Event event) { if (source == noUsersErrorCtr) { if(event.equals(Event.CANCELLED_EVENT)) { @@ -196,212 +190,103 @@ public class ContactFormController extends BasicController { fireEvent(ureq, Event.CANCELLED_EVENT); } } - } - else if (source == cntctForm) { + } else if (source == cntctForm) { if (event == Event.DONE_EVENT) { - // - boolean success = false; - try { - File[] attachments = cntctForm.getAttachments(); - MailContext context = new MailContextImpl(getWindowControl().getBusinessControl().getAsString()); - - MailBundle bundle = new MailBundle(); - bundle.setContext(context); - if (emailFrom == null) { - // in case the user provides his own email in form - bundle.setFrom(cntctForm.getEmailFrom()); - } else { - bundle.setFromId(emailFrom); - } - bundle.setContactLists(cntctForm.getEmailToContactLists()); - bundle.setContent(cntctForm.getSubject(), cntctForm.getBody(), attachments); - - MailerResult result = mailService.sendMessage(bundle); - success = result.isSuccessful(); - if(cntctForm.isTcpFrom()) { - - MailBundle ccBundle = new MailBundle(); - ccBundle.setContext(context); - if (emailFrom == null) { - // in case the user provides his own email in form - ccBundle.setFrom(cntctForm.getEmailFrom()); - ccBundle.setTo(cntctForm.getEmailFrom()); - } else { - ccBundle.setFromId(emailFrom); - ccBundle.setCc(emailFrom); - } - ccBundle.setContent(cntctForm.getSubject(), cntctForm.getBody(), attachments); - - MailerResult ccResult = mailService.sendMessage(ccBundle); - success = ccResult.isSuccessful(); - } - } catch (Exception e) { - //error in recipient email address(es) - handleAddressException(success); + doSend(ureq); + } else if (event == Event.CANCELLED_EVENT) { + fireEvent(ureq, Event.CANCELLED_EVENT); + } + } + } + + private void doSend(UserRequest ureq) { + + MailerResult result; + try { + File[] attachments = cntctForm.getAttachments(); + MailContext context = new MailContextImpl(getWindowControl().getBusinessControl().getAsString()); + + MailBundle bundle = new MailBundle(); + bundle.setContext(context); + if (emailFrom == null) { + // in case the user provides his own email in form + bundle.setFrom(cntctForm.getEmailFrom()); + } else { + bundle.setFromId(emailFrom); + } + bundle.setContactLists(cntctForm.getEmailToContactLists()); + bundle.setContent(cntctForm.getSubject(), cntctForm.getBody(), attachments); + + result = mailService.sendMessage(bundle); + if(cntctForm.isTcpFrom()) { + MailBundle ccBundle = new MailBundle(); + ccBundle.setContext(context); + if (emailFrom == null) { + // in case the user provides his own email in form + ccBundle.setFrom(cntctForm.getEmailFrom()); + ccBundle.setTo(cntctForm.getEmailFrom()); + } else { + ccBundle.setFromId(emailFrom); + ccBundle.setCc(emailFrom); } - cntctForm.setDisplayOnly(true); - if (success) { + ccBundle.setContent(cntctForm.getSubject(), cntctForm.getBody(), attachments); + + MailerResult ccResult = mailService.sendMessage(ccBundle); + result.append(ccResult); + } + + if(result != null) { + if (result.isSuccessful()) { showInfo("msg.send.ok"); // do logging ThreadLocalUserActivityLogger.log(MailLoggingAction.MAIL_SENT, getClass()); fireEvent(ureq, Event.DONE_EVENT); } else { - showInfo("error.msg.send.nok"); + showError(result); fireEvent(ureq, Event.FAILED_EVENT); } - } else if (event == Event.CANCELLED_EVENT) { - fireEvent(ureq, Event.CANCELLED_EVENT); } + } catch (Exception e) { + logError("", e); + showWarning("error.msg.send.nok"); } + cntctForm.setDisplayOnly(true); } + + private void showError(MailerResult result) { + StringBuilder error = new StringBuilder(1024); + error.append(translate("error.msg.send.nok")); + if(result != null && (result.getFailedIdentites().size() > 0 || result.getInvalidAddresses().size() > 0)) { + error.append("<br />"); - /** - * handles events from Components <BR> - * creates an InfoMessage in the WindowController on error. <br> - * <b>Fires: </b> - * <UL> - * <LI><b>Event.DONE_EVENT: </B> <BR> - * email was sent successfully by the underlying Email subsystem</LI> - * <LI><b>Event.FAILED_EVENT: </B> <BR> - * email was not sent correct by the underlying Email subsystem <BR> - * email may be partially sent correct, but some parts failed.</LI> - * <LI><b>Event.CANCELLED_EVENT: </B> <BR> - * user interaction, i.e. canceled message creation</LI> - * </UL> - * <p> - * - * @param ureq - * @param source - * @param event - */ - public void event(UserRequest ureq, Component source, Event event) { - // - } - - /** - * @param success - */ - private void handleAddressException(boolean success) { - StringBuilder errorMessage = new StringBuilder(); - if (success) { - errorMessage.append(translate("error.msg.send.partially.nok")); - errorMessage.append("<br />"); - errorMessage.append(translate("error.msg.send.invalid.rcps")); - } else { - errorMessage.append(translate("error.msg.send.nok")); - errorMessage.append("<br />"); - errorMessage.append(translate("error.msg.send.553")); - } - this.getWindowControl().setError(errorMessage.toString()); - } - - /** - * handles the sendFailedException <p>generates an infoMessage - * - * @param e - * @throws OLATRuntimeException - * return boolean true: handling was successful, exception can be ignored; - * false: handling was not successful, refuse to proceed. - */ - public boolean handleSendFailedException(SendFailedException e) { - //get wrapped excpetion - MessagingException me = (MessagingException) e.getNextException(); - if (me instanceof AuthenticationFailedException) { - // catch this one separately, this kind of exception has no message - // as the other below - StringBuilder infoMessage = new StringBuilder(); - infoMessage.append(translate("error.msg.send.nok")); - infoMessage.append("<br />"); - infoMessage.append(translate("error.msg.smtp.authentication.failed")); - this.getWindowControl().setInfo(infoMessage.toString()); - log.warn("Mail message could not be sent: ", e); - // message could not be sent, however let user proceed with his action - return true; - } - String message = me.getMessage(); - if (message.startsWith("553")) { - //javax.mail.MessagingException: 553 5.5.4 <invalid>... Domain name - // required for sender address invalid@id.unizh.ch - //javax.mail.MessagingException: 553 5.1.8 <invalid@invalid.>... - // Domain of sender address invalid@invalid does not exist - //... - StringBuilder infoMessage = new StringBuilder(); - infoMessage.append(translate("error.msg.send.553")); - showInfo(infoMessage.toString()); - - } else if (message.startsWith("Invalid Addresses")) { - // javax.mail.SendFailedException: Sending failed; - // nested exception is: - // class javax.mail.SendFailedException: Invalid Addresses; - // nested exception is: - // class javax.mail.SendFailedException: 550 5.1.1 <dfgh>... User - // unknownhandleSendFailedException - StringBuilder infoMessage = new StringBuilder(); - infoMessage.append(translate("error.msg.send.nok")); - infoMessage.append("<br />"); - infoMessage.append(translate("error.msg.send.invalid.rcps")); - infoMessage.append(addressesArr2HtmlOList(e.getInvalidAddresses())); - this.getWindowControl().setInfo(infoMessage.toString()); - } else if (message.startsWith("503 5.0.0")) { - // message:503 5.0.0 Need RCPT (recipient) ,javax.mail.MessagingException - StringBuilder infoMessage = new StringBuilder(); - infoMessage.append(translate("error.msg.send.nok")); - infoMessage.append("<br />"); - infoMessage.append(translate("error.msg.send.no.rcps")); - this.getWindowControl().setInfo(infoMessage.toString()); - } else if (message.startsWith("Unknown SMTP host")) { - StringBuilder infoMessage = new StringBuilder(); - infoMessage.append(translate("error.msg.send.nok")); - infoMessage.append("<br />"); - infoMessage.append(translate("error.msg.unknown.smtp", WebappHelper.getMailConfig("mailFrom"))); - this.getWindowControl().setInfo(infoMessage.toString()); - log.warn("Mail message could not be sent: ", e); - // message could not be sent, however let user proceed with his action - return true; - } else if (message.startsWith("Could not connect to SMTP host")){ - //could not connect to smtp host, no connection or connection timeout - StringBuilder infoMessage = new StringBuilder(); - infoMessage.append(translate("error.msg.send.nok")); - infoMessage.append("<br />"); - infoMessage.append(translate("error.msg.notconnectto.smtp", WebappHelper.getMailConfig("mailhost"))); - this.getWindowControl().setInfo(infoMessage.toString()); - log.warn(null, e); - // message could not be sent, however let user proceed with his action - return true; - } - else { - throw new OLATRuntimeException(ContactFormController.class, "" + cntctForm.getEmailTo(), e.getNextException()); - } - // message could not be sent, return false - return false; - } - - /** - * converts an Address[] to an HTML ordered list - * - * @param invalidAdr Address[] with invalid addresses - * @return StringBuilder - */ - private StringBuilder addressesArr2HtmlOList(Address[] invalidAdr) { - StringBuilder iAddressesSB = new StringBuilder(); - if (invalidAdr != null && invalidAdr.length > 0) { - iAddressesSB.append("<ol>"); - for (int i = 0; i < invalidAdr.length; i++) { - iAddressesSB.append("<li>"); - iAddressesSB.append(invalidAdr[i].toString()); - iAddressesSB.append("</li>"); + StringBuilder ids = new StringBuilder(1024); + for(Identity identity:result.getFailedIdentites()) { + if(ids.length() > 0) ids.append(", "); + + String fullname = userManager.getUserDisplayName(identity); + if(StringHelper.containsNonWhitespace(fullname)) { + ids.append(fullname); + } + } + for(String invalidAddress:result.getInvalidAddresses()) { + if(ids.length() > 0) ids.append(", "); + ids.append(invalidAddress); } - iAddressesSB.append("</ol>"); + error.append(translate("error.msg.send.invalid.rcps", new String[]{ ids.toString() })); } - return iAddressesSB; + getWindowControl().setError(error.toString()); } + @Override + public void event(UserRequest ureq, Component source, Event event) { + // + } /** * @see org.olat.core.gui.control.DefaultController#doDispose(boolean) */ + @Override protected void doDispose() { // } - } \ No newline at end of file diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_ar.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_ar.properties index 79c245e6a751a6ac0cd7580b80e0dc7bfbdedf21..8f83ad6e98b4828a24b2628695598b3714feff1b 100644 --- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_ar.properties +++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_ar.properties @@ -13,7 +13,7 @@ error.msg.content.nok=\u0631\u0633\u0627\u0644\u062A\u0643 \u0623\u0648 \u0645\u error.msg.notconnectto.smtp=\u0644\u0627 \u064A\u0645\u0643\u0646 \u062A\u0643\u0648\u064A\u0646\u0647. <i>{0}</i> SMTP \u0627\u0644\u062A\u0648\u0635\u064A\u0644 \u0628\u0633\u064A\u0631\u0641\u0631 error.msg.nousers=\u0627\u0644\u0645\u062C\u0645\u0648\u0639\u0629 \u0627\u0644\u0645\u062D\u062F\u062F\u0629 \u0644\u0627 \u064A\u0648\u062C\u062F \u0628\u0647\u0627 \u0645\u0634\u0627\u0631\u0643\u064A\u0646\u060C \u0631\u0633\u0627\u0644\u062A\u0643 \u0627\u0644\u0628\u0631\u064A\u062F\u064A\u0629 \u0644\u0627 \u064A\u0645\u0643\u0646 \u0625\u0631\u0633\u0627\u0644\u0647\u0627. error.msg.send.553=\u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0645\u0631\u0633\u0644 \u0648/\u0623\u0648 \u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0645\u0633\u062A\u0644\u0645 \u063A\u064A\u0631 \u0635\u062D\u064A\u062D. -error.msg.send.invalid.rcps=\:\u062A\u062D\u0642\u0642 \u0645\u0646 \u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0645\u0633\u062A\u0644\u0645 +error.msg.send.invalid.rcps=\:\u062A\u062D\u0642\u0642 \u0645\u0646 \u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0645\u0633\u062A\u0644\u0645 {0} error.msg.send.no.rcps=\u0644\u0645 \u064A\u062A\u0645 \u062A\u062D\u062F\u064A\u062F \u0639\u0646\u0627\u0648\u064A\u0646 \u0627\u0644\u0645\u0633\u062A\u0644\u0645\u064A\u0646. error.msg.send.nok=\u0644\u0627 \u064A\u0645\u0643\u0646 \u0625\u0631\u0633\u0627\u0644 \u0627\u0644\u0631\u0633\u0627\u0644\u0629. error.msg.send.partially.nok=\u064A\u0645\u0643\u0646 \u0623\u0646 \u062A\u0631\u0633\u0644 \u0631\u0633\u0627\u0644\u062A\u0643 \u062C\u0632\u0626\u064A\u0627\u064B \u0641\u0642\u0637. diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_bg.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_bg.properties index 2fe43807ce6849a83cd84c3278633ee93dc21a35..7fc2070567c4553f144aa16dd36819efa7247c88 100644 --- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_bg.properties +++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_bg.properties @@ -11,7 +11,7 @@ error.msg.content.nok=\u0412\u0430\u0448\u0435\u0442\u043E \u0441\u044A\u043E\u0 error.msg.notconnectto.smtp=\u0412\u0440\u044A\u0437\u043A\u0430\u0442\u0430 \u0441 SMTP \u0441\u044A\u0440\u0432\u044A\u0440\u0430 <i>{0}</i> \u043D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0435\u043D\u0430. error.msg.nousers=\u0418\u0437\u0431\u0440\u0430\u043D\u0430\u0442\u0430 \u0433\u0440\u0443\u043F\u0430 \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u0435\u043B\u0438 \u043D\u044F\u043C\u0430 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u0446\u0438. \u0412\u0430\u0448\u0438\u044F\u0442 \u0438-\u043C\u0435\u0439\u043B \u043D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0438\u0437\u043F\u0440\u0430\u0442\u0435\u043D. error.msg.send.553=\u0410\u0434\u0440\u0435\u0441\u044A\u0442 \u043D\u0430 \u043F\u043E\u0434\u0430\u0442\u0435\u043B\u044F \u0438/\u0438\u043B\u0438 \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u0435\u043B\u044F \u0435 \u0433\u0440\u0435\u0448\u0435\u043D. -error.msg.send.invalid.rcps=\u041F\u0440\u043E\u0432\u0435\u0440\u0435\u0442\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 (\u0430\u0434\u0440\u0435\u0441\u0438\u0442\u0435) \u043D\u0430 \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u0435\u043B\u044F (\u043F\u043E\u043B\u0443\u0447\u0430\u0442\u0435\u043B\u0438\u0442\u0435)\: +error.msg.send.invalid.rcps=\u041F\u0440\u043E\u0432\u0435\u0440\u0435\u0442\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 (\u0430\u0434\u0440\u0435\u0441\u0438\u0442\u0435) \u043D\u0430 \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u0435\u043B\u044F (\u043F\u043E\u043B\u0443\u0447\u0430\u0442\u0435\u043B\u0438\u0442\u0435)\: {0} error.msg.send.no.rcps=\u041D\u0435 \u0441\u0430 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438 \u0430\u0434\u0440\u0435\u0441\u0438. error.msg.send.nok=\u0412\u0430\u0448\u0435\u0442\u043E \u0441\u044A\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0438\u0437\u043F\u0440\u0430\u0442\u0435\u043D\u043E. error.msg.send.partially.nok=\u0412\u0430\u0448\u0435\u0442\u043E \u0441\u044A\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0438\u0437\u043F\u0440\u0430\u0442\u0435\u043D\u043E \u0441\u0430\u043C\u043E \u0447\u0430\u0441\u0442\u0438\u0447\u043D\u043E. diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_cs.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_cs.properties index c9bec026d0b7a5d2a7f804e25250a24b84240379..1934dbd34811d960237438c95151e2683077ca47 100644 --- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_cs.properties +++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_cs.properties @@ -9,7 +9,7 @@ error.msg.content.nok=Spr\u00E1va nebo jej\u00ED p\u0159edm\u011Bt jsou chybn\u0 error.msg.notconnectto.smtp=Spojen\u00ED na SMTP server <i>{0}</i> nemohlo b\u00FDt vytvo\u0159eno. error.msg.nousers=Vybran\u00E1 skupina nem\u00E1 \u017E\u00E1dn\u00E9 \u010Dleny. V\u00E1\u0161 e-mail nem\u016F\u017Ee b\u00FDt odesl\u00E1n. error.msg.send.553=Adresa p\u0159\u00EDjemce nebo odes\u00EDlatele je chybn\u00E1. -error.msg.send.invalid.rcps=Zkontrolujte adresu p\u0159\u00EDjemce\: +error.msg.send.invalid.rcps=Zkontrolujte adresu p\u0159\u00EDjemce\: {0} error.msg.send.no.rcps=Nedefinovan\u00E9 adresy. error.msg.send.nok=Zpr\u00E1va nebyla odesl\u00E1na. error.msg.send.partially.nok=Zpr\u00E1va odesl\u00E1na pouze \u010D\u00E1ste\u010Dn\u011B. diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_da.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_da.properties index 7a05d4e5adb4c75a039168098afa14970a96371e..619b885288a89c94fb5088c46a959ceb7dbf0861 100644 --- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_da.properties +++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_da.properties @@ -9,7 +9,7 @@ error.msg.content.nok=Beskeden eller emnefeltet er ugyldigt. error.msg.notconnectto.smtp=En forbindelse til SMTP serveren <i>{0}</i> kunne ikke etableres. error.msg.nousers=Den valgte modtagergruppe har ingen medlemmer. Din e-mail kan ikke sendes. error.msg.send.553=Afsender's og/eller modtager adresse er ugyldig. -error.msg.send.invalid.rcps=Check modtager adresse(r)\: +error.msg.send.invalid.rcps=Check modtager adresse(r)\: {0} error.msg.send.no.rcps=Ingen adresser er defineret. error.msg.send.nok=Beskeden er ikke sendt. error.msg.send.partially.nok=Beskeden er delvist afsendt. diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_de.properties index e1f9b96f113545ed6839eae3fa4474eef5410462..2e24e74f2f09e9c8d821349894d503544b907857 100644 --- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_de.properties @@ -14,7 +14,7 @@ error.msg.content.nok=Die Betreffzeile oder die Nachricht sind ung\u00FCltig. error.msg.notconnectto.smtp=Die Verbindung zum SMTP-Server <i>{0}</i> konnte nicht hergestellt werden. error.msg.nousers=Die gew\u00E4hlte Empf\u00E4ngergruppe enth\u00E4lt keine Teilnehmer. Die E-Mail kann nicht abgeschickt werden. error.msg.send.553=Absender- und/oder Empf\u00E4ngeradresse ist nicht korrekt. -error.msg.send.invalid.rcps=\u00DCberpr\u00FCfen Sie die Empf\u00E4ngeradressen\: +error.msg.send.invalid.rcps=\u00DCberpr\u00FCfen Sie die Empf\u00E4ngeradressen\: {0} error.msg.send.no.rcps=Es wurden keine Empf\u00E4ngeradressen definiert. error.msg.send.nok=Die Nachricht konnte nicht gesendet werden. error.msg.send.partially.nok=Die Nachricht konnte nur teilweise gesendet werden. diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_el.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_el.properties index 851038a95c7a648c01fcda0bcf7fa53e7a5ebb06..532dc2c4ab1bb7169cbaeb8604b33e9b77194748 100644 --- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_el.properties +++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_el.properties @@ -13,7 +13,7 @@ error.msg.content.nok=\u03A4\u03BF \u03BC\u03AE\u03BD\u03C5\u03BD\u03B1 \u03AE \ error.msg.notconnectto.smtp=\u0394\u03B5\u03BD \u03BC\u03C0\u03CC\u03C1\u03B5\u03C3\u03B5 \u03BD\u03B1 \u03B3\u03AF\u03BD\u03B5\u03B9 \u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7 \u03BC\u03B5 \u03C4\u03BF\u03BD SMTP server <i>{0}</i>. error.msg.nousers=\u0397 \u03BF\u03BC\u03AC\u03B4\u03B1 \u03C0\u03B1\u03C1\u03B1\u03BB\u03B7\u03C0\u03C4\u03CE\u03BD \u03B4\u03B5\u03BD \u03C0\u03B5\u03C1\u03B9\u03AD\u03C7\u03B5\u03B9 \u03C3\u03C5\u03BC\u03BC\u03B5\u03C4\u03AD\u03C7\u03BF\u03BD\u03C4\u03B5\u03C2. \u03A4\u03BF e-mail \u03B4\u03B5\u03BD \u03BC\u03C0\u03BF\u03C1\u03B5\u03AF \u03BD\u03B1 \u03C3\u03C4\u03B1\u03BB\u03B5\u03AF. error.msg.send.553=\u039B\u03B1\u03BD\u03B8\u03B1\u03C3\u03BC\u03AD\u03BD\u03B5\u03C2 \u03B4\u03B9\u03B5\u03C5\u03B8\u03CD\u03BD\u03C3\u03B5\u03B9\u03C2 \u03B1\u03C0\u03BF\u03C3\u03C4\u03BF\u03BB\u03AD\u03B1 \u03BA\u03B1\u03B9/\u03AE \u03C0\u03B1\u03C1\u03B1\u03BB\u03AE\u03C0\u03C4\u03B7. -error.msg.send.invalid.rcps=\u0395\u03BB\u03AD\u03BE\u03C4\u03B5 \u03C4\u03B9\u03C2 \u03B4\u03B9\u03B5\u03C5\u03B8\u03CD\u03BD\u03C3\u03B5\u03B9\u03C2 \u03C4\u03C9\u03BD \u03C0\u03B1\u03C1\u03B1\u03BB\u03B7\u03C0\u03C4\u03CE\u03BD\: +error.msg.send.invalid.rcps=\u0395\u03BB\u03AD\u03BE\u03C4\u03B5 \u03C4\u03B9\u03C2 \u03B4\u03B9\u03B5\u03C5\u03B8\u03CD\u03BD\u03C3\u03B5\u03B9\u03C2 \u03C4\u03C9\u03BD \u03C0\u03B1\u03C1\u03B1\u03BB\u03B7\u03C0\u03C4\u03CE\u03BD\: {0} error.msg.send.no.rcps=\u0394\u03B5\u03BD \u03BF\u03C1\u03AF\u03C3\u03C4\u03B7\u03BA\u03B1\u03BD \u03B4\u03B9\u03B5\u03C5\u03B8\u03CD\u03BD\u03C3\u03B5\u03B9\u03C2. error.msg.send.nok=\u03A4\u03BF \u03BC\u03AE\u03BD\u03C5\u03BC\u03B1 \u03B4\u03B5\u03BD \u03C3\u03C4\u03AC\u03BB\u03B8\u03B7\u03BA\u03B5. error.msg.send.partially.nok=\u039C\u03CC\u03BD\u03BF \u03AD\u03BD\u03B1 \u03BC\u03AD\u03C1\u03BF\u03C2 \u03C4\u03BF\u03C5 \u03BC\u03B7\u03BD\u03CD\u03BC\u03B1\u03C4\u03BF\u03C2 \u03C3\u03C4\u03AC\u03BB\u03B8\u03B7\u03BA\u03B5. diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_en.properties index 24ce33743dabe5dbffbec43bd5b7b7ba7f6c4e5d..daceed472a78e382dd6d4c1692a2bcf4f3f01e99 100644 --- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_en.properties @@ -14,7 +14,7 @@ error.msg.content.nok=Your message or its subject is invalid. error.msg.notconnectto.smtp=A connection to the SMTP server <i>{0}</i> could not be established. error.msg.nousers=The selected recipient group has no participants. Your e-mail cannot be sent. error.msg.send.553=Sender's and/or recipient's address incorrect. -error.msg.send.invalid.rcps=Check the recipient's address(es)\: +error.msg.send.invalid.rcps=Check the recipient's address(es)\: {0} error.msg.send.no.rcps=No addressees defined. error.msg.send.nok=Your message could not be sent. error.msg.send.partially.nok=Your message could only be sent partially. diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_es.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_es.properties index bb931043966d955f8fb3e300032ffa93d0807502..0ba212017340e6d83143bc9acdf2bf25ae8c4312 100644 --- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_es.properties +++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_es.properties @@ -11,7 +11,7 @@ error.msg.content.nok=El mensaje o el sujeto no es v\u00E1lido. error.msg.notconnectto.smtp=Error\: La conexi\u00F3n con el servidor SMTP <i>{0}</i> pudo ser establecido. error.msg.nousers=El grupo de destinatarios seleccionado no tiene participantes. Tu e-mail no puede ser enviado. error.msg.send.553=Direcci\u00F3n incorrecta de remitente y/o destinatario -error.msg.send.invalid.rcps=Comprueba las direcciones de destinatarios\: +error.msg.send.invalid.rcps=Comprueba las direcciones de destinatarios\: {0} error.msg.send.no.rcps=No hay direcci\u00F3n definida. error.msg.send.nok=El mensaje no ha sido enviado. error.msg.send.partially.nok=El mensaje ha sido enviado s\u00F3lo parcialmente. diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_fa.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_fa.properties index ae7e50097465b4e0520f85c000be599af416aa1c..6acba745bad4ce6d446d908752f0b7d4db4ae541 100644 --- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_fa.properties +++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_fa.properties @@ -9,7 +9,7 @@ error.msg.content.nok=The message or its subject is invalid. error.msg.notconnectto.smtp=A connection to the SMTP server <i>{0}</i> could not be established. error.msg.nousers=The selected recipient group has no participants. Your e-mail cannot be sent. error.msg.send.553=Sender's and/or recipient's address incorrect. -error.msg.send.invalid.rcps=Check the recipient's address(es)\: +error.msg.send.invalid.rcps=Check the recipient's address(es)\: {0} error.msg.send.no.rcps=No addressees defined. error.msg.send.nok=The message was not sent. error.msg.send.partially.nok=The message was sent only partially. diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_fr.properties index d194c81579a10f0fc172186b65baa7f5af5a189d..18261af49337f68750299485776cd8009bf2003e 100644 --- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_fr.properties +++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_fr.properties @@ -14,7 +14,7 @@ error.msg.content.nok=L'objet ou le message n'est pas valable. error.msg.notconnectto.smtp=La connection au serveur SMTP <i>{0}</i> n'a pas pu \u00EAtre \u00E9tablie. error.msg.nousers=Le groupe de r\u00E9cepteurs s\u00E9lectionn\u00E9 ne contient aucun participant. Le message ne peut pas \u00EAtre envoy\u00E9. error.msg.send.553=L'adresse de l'exp\u00E9diteur et/ou du destinataire n'est pas correcte. -error.msg.send.invalid.rcps=V\u00E9rifier l'adresse du destinataire. +error.msg.send.invalid.rcps=V\u00E9rifier l'adresse courriel du ou des destinataires suivants: {0} error.msg.send.no.rcps=Aucun destinataire n'a \u00E9t\u00E9 d\u00E9finie. error.msg.send.nok=Le message n'a pas pu \u00EAtre envoy\u00E9. error.msg.send.partially.nok=Le message n'a pu \u00EAtre envoy\u00E9 que partiellement. diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_it.properties index d7f8b25788806735f161150b6834bc1e1da69998..a1d66b98050fd90d93548499a81ed070748a4866 100644 --- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_it.properties +++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_it.properties @@ -13,7 +13,7 @@ error.msg.content.nok="Soggetto" messaggio non valido. error.msg.notconnectto.smtp=La connessione al server SMTP <i>{0}</i> non \u00E8 stata stabilita. error.msg.nousers=Il gruppo di destinatari selezionato non contiene partecipanti. La e-mail non pu\u00F2 essere inviata. error.msg.send.553=L'indirizzo del mittente e/o del destinatario non \u00E8 corretto. -error.msg.send.invalid.rcps=Controlli gli indirizzi dei destinatari, p.f.\: +error.msg.send.invalid.rcps=Controlli gli indirizzi dei destinatari, p.f.\: {0} error.msg.send.no.rcps=Non \u00E8 stato definino alcun indirizzo per i destinatari. error.msg.send.nok=Il messaggio non ha potuto essere spedito. error.msg.send.partially.nok=Il messaggio \u00E8 stato spedito solo parzialmente. diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_jp.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_jp.properties index 842349e1f230c538f3fad86b03ec3557f1484d4c..bab3ab3a85581ab6276fdd822b8af011ad447159 100644 --- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_jp.properties +++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_jp.properties @@ -13,7 +13,7 @@ error.msg.content.nok=\u3042\u306A\u305F\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u30 error.msg.notconnectto.smtp=SMTP\u30B5\u30FC\u30D0 <i>{0}</i> \u3078\u306E\u63A5\u7D9A\u3092\u78BA\u7ACB\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002 error.msg.nousers=\u9078\u629E\u3055\u308C\u305F\u53D7\u4FE1\u30B0\u30EB\u30FC\u30D7\u306B\u306F\u3001\u53C2\u52A0\u8005\u304C\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u3042\u306A\u305F\u306EE\u30E1\u30FC\u30EB\u3092\u9001\u4FE1\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002 error.msg.send.553=\u9001\u4FE1\u8005\u307E\u305F\u306F\u53D7\u4FE1\u8005\u306E\u30A2\u30C9\u30EC\u30B9\u304C\u6B63\u3057\u304F\u3042\u308A\u307E\u305B\u3093\u3002 -error.msg.send.invalid.rcps=\u53D7\u4FE1\u8005\u306E\u30A2\u30C9\u30EC\u30B9\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +error.msg.send.invalid.rcps=\u53D7\u4FE1\u8005\u306E\u30A2\u30C9\u30EC\u30B9\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002 {0} error.msg.send.no.rcps=\u30A2\u30C9\u30EC\u30B9\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 error.msg.send.nok=\u3042\u306A\u305F\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u9001\u4FE1\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002 error.msg.send.partially.nok=\u3042\u306A\u305F\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u306F\u3001\u4E00\u90E8\u306E\u307F\u9001\u4FE1\u3055\u308C\u307E\u3057\u305F\u3002 diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_lt.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_lt.properties index 0ef73c4ffcfb0b7c4d1dc6915b3331d10bab6a4d..16346291b14b6c6b5b618b34e7fd0318748ecaec 100644 --- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_lt.properties +++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_lt.properties @@ -9,7 +9,7 @@ error.msg.content.nok=Neteisinga \u017Einut\u0117 arba jos pavadinimas error.msg.notconnectto.smtp=Negalima prisijungti prie SMTP serverio <i>{0}</i>. error.msg.nousers=Pasirinkta grup\u0117 neturi dalyvi\u0173. J\u016Bs\u0173 el. lai\u0161kas negali b\u016Bti i\u0161si\u0173stas. error.msg.send.553=Siunt\u0117jo ar/ir gav\u0117jo adresas neteisingas -error.msg.send.invalid.rcps=Patikrinkite gav\u0117jo adres\u0105 (-us) +error.msg.send.invalid.rcps=Patikrinkite gav\u0117jo adres\u0105 (-us) {0} error.msg.send.no.rcps=Nenurodyti adresai error.msg.send.nok=\u017Dinut\u0117s nepavyko i\u0161si\u0173sti error.msg.send.partially.nok=I\u0161si\u0173sta tik dalis \u017Einut\u0117s diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_nl_NL.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_nl_NL.properties index aa89d7f8358c8d8156e4220349395c6a935b0b16..5d3051880bafb4367bbc68da62609cb21c281681 100644 --- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_nl_NL.properties +++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_nl_NL.properties @@ -13,7 +13,7 @@ error.msg.content.nok=Uw bericht of zijn onderwerp is ongeldig. error.msg.notconnectto.smtp=Er kon geen connectie naar de SMTP server <i>{0}</i> vastgesteld worden. error.msg.nousers=De geselecteerde ontvangersgroep heeft geen cursisten. Uw e-mail kan niet verzonden worden. error.msg.send.553=Het adres van de zender en/of ontvanger is niet correct. -error.msg.send.invalid.rcps=Kijk het adres van de ontvanger(s) na\: +error.msg.send.invalid.rcps=Kijk het adres van de ontvanger(s) na\: {0} error.msg.send.no.rcps=Geen adressen gedefinieerd. error.msg.send.nok=Uw bericht kon niet verzonden worden. error.msg.send.partially.nok=Uw bericht kon enkel gedeeltelijk verzonden worden. diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_pl.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_pl.properties index 40e49f08720024125fa402a490736173ef9c6f63..8a28658bef55d74660b9ec7c64d9cafb67e2edb2 100644 --- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_pl.properties +++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_pl.properties @@ -13,7 +13,7 @@ error.msg.content.nok=Wiadomo\u015B\u0107 lub jej tytu\u0142 jest nieprawid\u014 error.msg.notconnectto.smtp=Po\u0142\u0105czenie z serwerem SMTP <i>{0}<i> nie zosta\u0142o nawi\u0105zane. error.msg.nousers=Wybrana grupa odbiorc\u00F3w nie zawiera \u017Cadnych cz\u0142onk\u00F3w. E-mail nie mo\u017Ce zosta\u0107 wys\u0142any. error.msg.send.553=Adres odbiorcy i/lub nadawcy nieprawid\u0142owy. -error.msg.send.invalid.rcps=Sprawd\u017A poprawno\u015B\u0107 adres\u00F3w. +error.msg.send.invalid.rcps=Sprawd\u017A poprawno\u015B\u0107 adres\u00F3w. {0} error.msg.send.no.rcps=Nie zdefiniowano adres\u00F3w. error.msg.send.nok=Wiadomo\u015B\u0107 nie zosta\u0142a wys\u0142ana. error.msg.send.partially.nok=Wiadomo\u015B\u0107 zosta\u0142a tylko cz\u0119\u015Bciowo wys\u0142ana. diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_pt_BR.properties index bae0eea64cb84403dc234b8e4465597d88f06f35..6eecb41d1d63a184c47f5883b6272cb56246a460 100644 --- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_pt_BR.properties +++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_pt_BR.properties @@ -14,7 +14,7 @@ error.msg.content.nok=A mensagem ou seu assunto \u00E9 inv\u00E1lido. error.msg.notconnectto.smtp=Uma conex\u00E3o ao servidor SMTP <i>{0}</i> n\u00E3o pode ser estabelecida. error.msg.nousers=O grupo receptor selecionado n\u00E3o tem participantes. Seu e-mail n\u00E3o pode ser enviado. error.msg.send.553=Endere\u00E7o do remetente e/ou do receptor incorreto. -error.msg.send.invalid.rcps=Checar o endere\u00E7o(s) do receptor\: +error.msg.send.invalid.rcps=Checar o endere\u00E7o(s) do receptor\: {0} error.msg.send.no.rcps=Nenhum endere\u00E7o definido. error.msg.send.nok=A mensagem n\u00E3o foi enviada. error.msg.send.partially.nok=A mensagem foi enviada somente parcialmente. diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_pt_PT.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_pt_PT.properties index e0e6132970bc414d3d4bef4227b9e05f749950cb..ac50531095e96f62f1a6f25d61c3de2800e623f5 100644 --- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_pt_PT.properties +++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_pt_PT.properties @@ -9,7 +9,7 @@ error.msg.content.nok=A mensagem ou seu assunto \u00E9 inv\u00E1lido. error.msg.notconnectto.smtp=Uma conex\u00E3o ao servidor SMTP <i>{0}</i> n\u00E3o pode ser estabelecida. error.msg.nousers=O grupo receptor selecionado n\u00E3o tem participantes. Seu e-mail n\u00E3o pode ser enviado. error.msg.send.553=Endere\u00E7o do remetente e/ou do receptor incorreto. -error.msg.send.invalid.rcps=Checar o endere\u00E7o(s) do receptor\: +error.msg.send.invalid.rcps=Checar o endere\u00E7o(s) do receptor\: {0} error.msg.send.no.rcps=Nenhum endere\u00E7o definido. error.msg.send.nok=A mensagem n\u00E3o foi enviada. error.msg.send.partially.nok=A mensagem foi enviada somente parcialmente. diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_ru.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_ru.properties index 0577d827dac71a9d573889f9fae0cd9bfdbc71eb..3d01f13dbb9ac7aae728749cb5a151e800cc5648 100644 --- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_ru.properties +++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_ru.properties @@ -11,7 +11,7 @@ error.msg.content.nok=\u0421\u0442\u0440\u043E\u043A\u0430 \u0442\u0435\u043C\u0 error.msg.notconnectto.smtp=\u041D\u0435\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u0431\u044B\u043B\u043E \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0441\u0432\u044F\u0437\u044C \u0441 SMTP \u0441\u0435\u0440\u0432\u0435\u0440\u043E\u043C <i>{0}</i>. error.msg.nousers=\u0412\u044B\u0431\u0440\u0430\u043D\u043D\u0430\u044F \u0433\u0440\u0443\u043F\u043F\u0430 \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u0435\u043B\u0435\u0439 \u043D\u0435 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442 \u0430\u0431\u043E\u043D\u0435\u043D\u0442\u043E\u0432. \u041D\u0435\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C e-mail. error.msg.send.553=\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u044B\u0439 \u0430\u0434\u0440\u0435\u0441 \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u0435\u043B\u044F \u0438/\u0438\u043B\u0438 \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u0435\u043B\u044F. -error.msg.send.invalid.rcps=\u041F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u0435\u043B\u0435\u0439\: +error.msg.send.invalid.rcps=\u041F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u0435\u043B\u0435\u0439\: {0} error.msg.send.no.rcps=\u0410\u0434\u0440\u0435\u0441\u0430 \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u0435\u043B\u0435\u0439 \u043D\u0435 \u0431\u044B\u043B\u0438 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u044B. error.msg.send.nok=\u0421\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043D\u0435\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u0431\u044B\u043B\u043E \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C. error.msg.send.partially.nok=\u0421\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u0431\u044B\u043B\u043E \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0442\u043E\u043B\u044C\u043A\u043E \u0447\u0430\u0441\u0442\u0438\u0447\u043D\u043E. diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_sq.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_sq.properties index e81b3ed25d9a87564d310ff2510939cfffdc4934..53f7431ab06401787b6df8ec8fcc39c424f2fd82 100644 --- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_sq.properties +++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_sq.properties @@ -9,7 +9,7 @@ error.msg.content.nok=Porosia apo subjekti i saj \u00EBsht\u00EB e pavlefshme. error.msg.notconnectto.smtp=Nj\u00EB lidhje me SMTP serverin <i>{0}</i> nuk mund t\u00EB vendoset. error.msg.nousers=Grupi i marr\u00EBsve t\u00EB p\u00EBrzgjedhur nuk ka pjes\u00EBmarr\u00EBs. E-posta juaj nuk mund t\u00EB d\u00EBrgohet. error.msg.send.553=Adresa e d\u00EBrguesit dhe/apo marr\u00EBsit nuk jan\u00EB korrekt. -error.msg.send.invalid.rcps=Kontrollo adres\u00EBn e marr\u00EBs-it/ve\: +error.msg.send.invalid.rcps=Kontrollo adres\u00EBn e marr\u00EBs-it/ve\: {0} error.msg.send.no.rcps=Nuk ka adresa t\u00EB paracaktuara. error.msg.send.nok=Porosia nuk \u00EBsht\u00EB d\u00EBrguar. error.msg.send.partially.nok=Porosia \u00EBsht\u00EB d\u00EBrguar vet\u00EBm pjes\u00EBrisht. diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_zh_CN.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_zh_CN.properties index 94b76f00158536e88c3b023ca5ee0e53707c51a6..8bfe787bce5f7ae84daa426f3d80a786962ae155 100644 --- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_zh_CN.properties +++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_zh_CN.properties @@ -12,7 +12,7 @@ error.msg.content.nok=\u6D88\u606F\u6216\u4E3B\u9898\u65E0\u6548\u3002 error.msg.notconnectto.smtp=\u65E0\u6CD5\u5EFA\u7ACB\u548CSMT\u670D\u52A1\u5668<i>{0}</i> \u7684\u8FDE\u63A5\u3002 error.msg.nousers=\u5DF2\u9009\u7684\u6536\u4EF6\u4EBA\u7EC4\u65E0\u53C2\u4E0E\u8005\uFF0C\u65E0\u6CD5\u53D1\u9001\u4F60\u7684e-mail\u3002 error.msg.send.553=\u53D1\u9001\u8005/\u6216\u6536\u4EF6\u4EBA\u5730\u5740\u9519\u8BEF\u3002 -error.msg.send.invalid.rcps=\u6838\u5BF9\u6536\u4EF6\u4EBA\u5730\u5740\uFF1A +error.msg.send.invalid.rcps=\u6838\u5BF9\u6536\u4EF6\u4EBA\u5730\u5740\uFF1A {0} error.msg.send.no.rcps=\u672A\u8BF4\u660E\u5730\u5740\u3002 error.msg.send.nok=\u672A\u53D1\u9001\u8BE5\u6D88\u606F\u3002 error.msg.send.partially.nok=\u53EA\u7ED9\u90E8\u5206\u6210\u5458\u53D1\u9001\u4E86\u8BE5\u6D88\u606F\u3002 diff --git a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_zh_TW.properties b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_zh_TW.properties index 249f9b34dc08e1711e4be6bab7d7ff807eec0037..de5c9335dc95a3aef41dea2360fbcdea8c31bf0d 100644 --- a/src/main/java/org/olat/modules/co/_i18n/LocalStrings_zh_TW.properties +++ b/src/main/java/org/olat/modules/co/_i18n/LocalStrings_zh_TW.properties @@ -11,7 +11,7 @@ error.msg.content.nok=\u60A8\u7684\u8A0A\u606F\u6216\u5B83\u7684\u4E3B\u65E8\u71 error.msg.notconnectto.smtp=\u7121\u6CD5\u5EFA\u7ACB\u5230 SMTP \u4F3A\u670D\u5668 <i>{0}</i>\u7684\u9023\u7DDA\u3002 error.msg.nousers=\u9078\u53D6\u7684\u6536\u4EF6\u4EBA\u7FA4\u7D44\u6C92\u6709\u53C3\u8207\u8005\u3002\u60A8\u7684\u96FB\u5B50\u90F5\u4EF6\u7121\u6CD5\u767C\u9001\u3002 error.msg.send.553=\u5BC4\u4EF6\u4EBA\u548C/\u6216\u6536\u4EF6\u4EBA\u7684\u96FB\u5B50\u90F5\u4EF6\u5730\u5740\u4E0D\u6B63\u78BA\u3002 -error.msg.send.invalid.rcps=\u6AA2\u67E5\u6536\u4EF6\u4EBA\u7684\u96FB\u5B50\u90F5\u4EF6\u5730\u5740\uFF1A +error.msg.send.invalid.rcps=\u6AA2\u67E5\u6536\u4EF6\u4EBA\u7684\u96FB\u5B50\u90F5\u4EF6\u5730\u5740\uFF1A {0} error.msg.send.no.rcps=\u6C92\u6709\u96FB\u5B50\u90F5\u4EF6\u5730\u5740\u88AB\u5B9A\u7FA9\u3002 error.msg.send.nok=\u60A8\u7684\u8A0A\u606F\u7121\u6CD5\u767C\u9001\u3002 error.msg.send.partially.nok=\u60A8\u7684\u8A0A\u606F\u53EA\u80FD\u88AB\u90E8\u5206\u767C\u9001\u3002