From 59348eb3d790ff0772104e12bbfea46acd573aac Mon Sep 17 00:00:00 2001 From: "David M. Johnson" Date: Sat, 15 Aug 2026 15:49:40 -0400 Subject: [PATCH 1/2] Remove legacy outbound trackback action --- .../ui/struts2/editor/EntryEdit.java | 73 ------- .../roller/weblogger/util/Trackback.java | 201 ------------------ .../util/TrackbackNotAllowedException.java | 34 --- .../roller/weblogger/config/roller.properties | 6 - app/src/main/resources/struts.xml | 4 +- .../webapp/WEB-INF/jsps/editor/EntryEdit.jsp | 13 -- .../editor/EntryTrackbackRemovalTest.java | 76 +++++++ 7 files changed, 78 insertions(+), 329 deletions(-) delete mode 100644 app/src/main/java/org/apache/roller/weblogger/util/Trackback.java delete mode 100644 app/src/main/java/org/apache/roller/weblogger/util/TrackbackNotAllowedException.java create mode 100644 app/src/test/java/org/apache/roller/weblogger/ui/struts2/editor/EntryTrackbackRemovalTest.java diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java b/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java index a12dc18fff..58dd32064d 100644 --- a/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java +++ b/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java @@ -20,10 +20,8 @@ import java.sql.Timestamp; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collections; import java.util.Date; -import java.util.Iterator; import java.util.List; import java.util.Map; @@ -53,10 +51,6 @@ import org.apache.roller.weblogger.util.MediacastException; import org.apache.roller.weblogger.util.MediacastResource; import org.apache.roller.weblogger.util.MediacastUtil; -import org.apache.roller.weblogger.util.RollerMessages; -import org.apache.roller.weblogger.util.RollerMessages.RollerMessage; -import org.apache.roller.weblogger.util.Trackback; -import org.apache.roller.weblogger.util.TrackbackNotAllowedException; import org.apache.struts2.convention.annotation.AllowedMethods; import org.apache.struts2.interceptor.validation.SkipValidation; @@ -74,9 +68,6 @@ public final class EntryEdit extends UIAction { // the entry we are adding or editing private WeblogEntry entry = null; - // url to send trackback to - private String trackbackUrl = null; - public EntryEdit() { this.desiredMenu = "editor"; } @@ -359,70 +350,6 @@ public String getPreviewURL() { getEntry().getAnchor(), true); } - public String getTrackbackUrl() { - return trackbackUrl; - } - - public void setTrackbackUrl(String trackbackUrl) { - this.trackbackUrl = trackbackUrl; - } - - /** - * Send trackback to a specific url. - */ - @SkipValidation - public String trackback() { - - // make sure we have an entry to edit and it belongs to the action - // weblog - if (getEntry() == null) { - return ERROR; - } else if (!getEntry().getWebsite().equals(getActionWeblog())) { - return DENIED; - } - - if (!StringUtils.isEmpty(getTrackbackUrl())) { - RollerMessages results = null; - try { - Trackback trackback = new Trackback(getEntry(), - getTrackbackUrl()); - results = trackback.send(); - } catch (TrackbackNotAllowedException ex) { - addError("error.trackbackNotAllowed"); - } catch (Exception e) { - log.error("Error sending trackback", e); - // TODO: error handling - addError("error.general", e.getMessage()); - } - - if (results != null) { - for (Iterator mit = results.getMessages(); mit.hasNext();) { - RollerMessage msg = mit.next(); - if (msg.getArgs() == null) { - addMessage(msg.getKey()); - } else { - addMessage(msg.getKey(), Arrays.asList(msg.getArgs())); - } - } - - for (Iterator eit = results.getErrors(); eit.hasNext();) { - RollerMessage err = eit.next(); - if (err.getArgs() == null) { - addError(err.getKey()); - } else { - addError(err.getKey(), Arrays.asList(err.getArgs())); - } - } - } - - // reset trackback url - setTrackbackUrl(null); - - } - - return INPUT; - } - /** * Get the list of all categories for the action weblog */ diff --git a/app/src/main/java/org/apache/roller/weblogger/util/Trackback.java b/app/src/main/java/org/apache/roller/weblogger/util/Trackback.java deleted file mode 100644 index 88753a501b..0000000000 --- a/app/src/main/java/org/apache/roller/weblogger/util/Trackback.java +++ /dev/null @@ -1,201 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. The ASF licenses this file to You - * under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. For additional information regarding - * copyright in this work, please see the NOTICE file in the top level - * directory of this distribution. - */ - -package org.apache.roller.weblogger.util; - -import java.io.IOException; -import java.io.StringReader; -import java.net.MalformedURLException; -import java.net.URL; -import java.nio.charset.StandardCharsets; -import java.util.Map; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import org.apache.commons.httpclient.HttpClient; -import org.apache.commons.httpclient.HttpMethod; -import org.apache.commons.httpclient.HttpStatus; -import org.apache.commons.httpclient.methods.PostMethod; -import org.apache.commons.text.StringEscapeUtils; -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.roller.util.RollerConstants; -import org.apache.roller.weblogger.WebloggerException; -import org.apache.roller.weblogger.config.WebloggerConfig; -import org.apache.roller.weblogger.pojos.WeblogEntry; -import org.jdom2.Document; -import org.jdom2.Element; -import org.jdom2.JDOMException; -import org.jdom2.input.SAXBuilder; - - -/** - * Represents a trackback request. - */ -public class Trackback { - - private static final Log LOG = LogFactory.getLog(Trackback.class); - - private final WeblogEntry entry; - private final String trackbackURL; - - - public Trackback(WeblogEntry tEntry, String tURL) - throws TrackbackNotAllowedException { - - // Make sure trackback to URL is allowed - boolean allowTrackback = true; - String allowedURLs = WebloggerConfig.getProperty("trackback.allowedURLs"); - if (!StringUtils.isEmpty(allowedURLs)) { - // in the case that the administrator has enabled trackbacks - // for only specific URLs, set it to false by default - allowTrackback = false; - String[] splitURLs = allowedURLs.split("\\|\\|"); - for (int i=0; i < splitURLs.length; i++) { - Matcher m = Pattern.compile(splitURLs[i]).matcher(tURL); - if (m.matches()) { - allowTrackback = true; - break; - } - } - } - - if(!allowTrackback) { - throw new TrackbackNotAllowedException(tURL); - } else { - // test url - try { - new URL(tURL); - } catch(MalformedURLException ex) { - // bad url - throw new IllegalArgumentException("bad url: "+tURL); - } - - entry = tEntry; - trackbackURL = tURL; - } - - } - - - /** - * Sends trackback from entry to remote URL. - * See Trackback spec for details: http://www.sixapart.com/pronet/docs/trackback_spec - */ - public RollerMessages send() throws WebloggerException { - - RollerMessages messages = new RollerMessages(); - - LOG.debug("Sending trackback to url - " + trackbackURL); - - // Construct data - String title = entry.getTitle(); - String excerpt = StringUtils.left( Utilities.removeHTML(entry.getDisplayContent()), - RollerConstants.TEXTWIDTH_255); - String url = entry.getPermalink(); - String blog_name = entry.getWebsite().getName(); - - // build trackback post parameters as query string - Map params = Map.of("title", URLUtilities.encode(title), - "excerpt", URLUtilities.encode(excerpt), - "url", URLUtilities.encode(url), - "blog_name", URLUtilities.encode(blog_name)); - String queryString = URLUtilities.getQueryString(params); - - LOG.debug("query string - " + queryString); - - // prepare http request - HttpClient client = new HttpClient(); - client.setConnectionTimeout(45 * RollerConstants.SEC_IN_MS); - HttpMethod method = new PostMethod(trackbackURL); - method.setQueryString(queryString); - - try { - // execute trackback - int statusCode = client.executeMethod(method); - - // read response - byte[] response = method.getResponseBody(); - String responseString = Utilities.escapeHTML(new String(response, StandardCharsets.UTF_8)); - - LOG.debug("result = " + statusCode + " " + method.getStatusText()); - LOG.debug("response:\n" + responseString); - - if(statusCode == HttpStatus.SC_OK) { - // trackback request succeeded, message will give details - try { - messages = parseTrackbackResponse(new String(response, StandardCharsets.UTF_8), messages); - } catch (Exception e) { - // Cannot parse response, indicates failure - messages.addError("weblogEdit.trackbackErrorParsing", responseString); - } - } else if(statusCode == HttpStatus.SC_NOT_FOUND) { - // 404, invalid trackback url - messages.addError("weblogEdit.trackbackError404"); - } else { - // some other kind of error with url, like 500, 403, etc - // just provide a generic error message and give the http response text - messages.addError("weblogEdit.trackbackErrorResponse", - new String[] {""+statusCode, method.getStatusText()}); - } - - } catch (IOException e) { - // some kind of transport error sending trackback post - LOG.debug("Error sending trackback", e); - messages.addError("weblogEdit.trackbackErrorTransport"); - } finally { - // release used connection - method.releaseConnection(); - } - - return messages; - } - - - /** - * Parse XML returned from trackback POST, returns error or success message - * in RollerMessages object. - */ - private RollerMessages parseTrackbackResponse(String response, RollerMessages messages) - throws JDOMException, IOException { - - SAXBuilder builder = new SAXBuilder(); - Document doc = builder.build( - new StringReader(StringEscapeUtils.unescapeHtml4(response))); - Element root = doc.getRootElement(); - - if ("response".equals(root.getName())) { - int code = -99; - try { - code = Integer.parseInt(root.getChildText("error")); - } catch (NumberFormatException ignoredByDesign) {} - - String message = root.getChildText("message"); - if (code != 0) { - messages.addError("weblogEdit.trackbackFailure", Utilities.removeHTML(message)); - } else { - messages.addMessage("weblogEdit.trackbackSuccess"); - } - } else { - messages.addError("weblogEdit.trackbackErrorParsing", Utilities.removeHTML(response)); - } - - return messages; - } - -} diff --git a/app/src/main/java/org/apache/roller/weblogger/util/TrackbackNotAllowedException.java b/app/src/main/java/org/apache/roller/weblogger/util/TrackbackNotAllowedException.java deleted file mode 100644 index f5056f6936..0000000000 --- a/app/src/main/java/org/apache/roller/weblogger/util/TrackbackNotAllowedException.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. The ASF licenses this file to You - * under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. For additional information regarding - * copyright in this work, please see the NOTICE file in the top level - * directory of this distribution. - */ - -package org.apache.roller.weblogger.util; - -import org.apache.roller.weblogger.WebloggerException; - - -/** - * An exception thrown when a Trackback is formed for a url which is disallowed - * by the system administrator. - */ -public class TrackbackNotAllowedException extends WebloggerException { - - public TrackbackNotAllowedException(String url) { - super(url); - } - -} diff --git a/app/src/main/resources/org/apache/roller/weblogger/config/roller.properties b/app/src/main/resources/org/apache/roller/weblogger/config/roller.properties index d73e7f9ca1..8fba942175 100644 --- a/app/src/main/resources/org/apache/roller/weblogger/config/roller.properties +++ b/app/src/main/resources/org/apache/roller/weblogger/config/roller.properties @@ -198,12 +198,6 @@ site.bannedwordslist.enable.trackbacks=true # enables partial bannedwordslist check (not including bannedwordslist.txt) for each incoming referrer site.bannedwordslist.enable.referrers=false -# Trackback protection. Set this only if you need to limit the URLs to -# which users may send trackbacks. Regex expressions are allowed, for example: -# trackback.allowedURLs=http://w3.ibm.com/.*||http://another.example.com/.* -trackback.allowedURLs= - - #---------------------------------- # Planet Aggregator settings diff --git a/app/src/main/resources/struts.xml b/app/src/main/resources/struts.xml index cc94ba6588..e3bab427c9 100644 --- a/app/src/main/resources/struts.xml +++ b/app/src/main/resources/struts.xml @@ -359,7 +359,7 @@ ${weblog} ${bean.id} - execute,firstSave,publish,saveDraft,trackback + execute,firstSave,publish,saveDraft menu /roller-ui - execute,firstSave,publish,saveDraft,trackback + execute,firstSave,publish,saveDraft - - <%-- Trackback control - -
-

- -
- - - -
- --%> - diff --git a/app/src/test/java/org/apache/roller/weblogger/ui/struts2/editor/EntryTrackbackRemovalTest.java b/app/src/test/java/org/apache/roller/weblogger/ui/struts2/editor/EntryTrackbackRemovalTest.java new file mode 100644 index 0000000000..961593458d --- /dev/null +++ b/app/src/test/java/org/apache/roller/weblogger/ui/struts2/editor/EntryTrackbackRemovalTest.java @@ -0,0 +1,76 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.roller.weblogger.ui.struts2.editor; + +import java.io.InputStream; +import java.util.Set; +import javax.xml.parsers.DocumentBuilderFactory; + +import org.junit.jupiter.api.Test; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; + +class EntryTrackbackRemovalTest { + + @Test + void entryActionsDoNotAllowTrackbackMethod() throws Exception { + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + factory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false); + factory.setFeature("http://xml.org/sax/features/external-general-entities", false); + factory.setFeature("http://xml.org/sax/features/external-parameter-entities", false); + factory.setXIncludeAware(false); + factory.setExpandEntityReferences(false); + + try (InputStream input = getClass().getClassLoader().getResourceAsStream("struts.xml")) { + assertNotNull(input); + Document config = factory.newDocumentBuilder().parse(input); + NodeList actions = config.getElementsByTagName("action"); + Set expectedActions = Set.of("entryAdd", "entryEdit"); + int actionsChecked = 0; + + for (int i = 0; i < actions.getLength(); i++) { + Element action = (Element) actions.item(i); + if (expectedActions.contains(action.getAttribute("name"))) { + NodeList allowedMethods = action.getElementsByTagName("allowed-methods"); + assertEquals(1, allowedMethods.getLength()); + String methods = allowedMethods.item(0).getTextContent(); + assertFalse(Set.of(methods.trim().split("\\s*,\\s*")).contains("trackback")); + actionsChecked++; + } + } + + assertEquals(expectedActions.size(), actionsChecked); + } + } + + @Test + void outboundTrackbackImplementationIsRemoved() { + assertThrows(NoSuchMethodException.class, + () -> EntryEdit.class.getMethod("trackback")); + assertThrows(ClassNotFoundException.class, + () -> Class.forName("org.apache.roller.weblogger.util.Trackback")); + assertThrows(ClassNotFoundException.class, + () -> Class.forName( + "org.apache.roller.weblogger.util.TrackbackNotAllowedException")); + } +} From ddf474790c5cb479c4ff3cdf9af36ef0d6314177 Mon Sep 17 00:00:00 2001 From: "David M. Johnson" Date: Tue, 1 Sep 2026 15:31:43 -0400 Subject: [PATCH 2/2] Remove remaining outbound Trackback references --- .../resources/ApplicationResources.properties | 16 ----------- .../ApplicationResources_de.properties | 11 -------- .../ApplicationResources_es.properties | 5 ---- .../ApplicationResources_fr.properties | 9 ------- .../ApplicationResources_ja.properties | 13 --------- .../ApplicationResources_ko.properties | 15 +---------- .../ApplicationResources_ru.properties | 10 ------- .../ApplicationResources_zh_CN.properties | 18 ------------- app/src/main/webapp/themes/base.css | 7 +---- .../editor/EntryTrackbackRemovalTest.java | 3 ++- docs/roller-user-guide.adoc | 27 +------------------ 11 files changed, 5 insertions(+), 129 deletions(-) diff --git a/app/src/main/resources/ApplicationResources.properties b/app/src/main/resources/ApplicationResources.properties index 66072c23f0..d407e74842 100644 --- a/app/src/main/resources/ApplicationResources.properties +++ b/app/src/main/resources/ApplicationResources.properties @@ -464,11 +464,6 @@ error.general=ERROR: Unexpected Exception [{0}] has been logged. error.password.mismatch=Wrong username and password combination error.unmatched.openid=Unknown or invalid OpenID URL -error.trackback=Error sending trackback. Possible cause: incorrect \ -trackback URL. {0} -error.trackbackNotAllowed=Error sending trackback. The site administrator \ -does not permit sending tracbacks to the URL you specified. - error.title.403=Access Denied error.text.403=You do not have the privileges necessary to access the requested page. @@ -1592,17 +1587,6 @@ weblogEdit.pinnedToMain.tooltip=Pin blog entry to top of front page weblog \ weblogEdit.searchDescription=Search Description weblogEdit.searchDescription.tooltip=Short description of blog entry that gets \ placed in HTML header (if coded by your blog template) for SEO. -weblogEdit.trackback=Trackback -weblogEdit.sendTrackback=Send Trackback -weblogEdit.trackbackUrl=Trackback URL - -weblogEdit.trackbackSuccess=Trackback succeeded. -weblogEdit.trackbackFailure=Trackback failed, remote server said "{0}" -weblogEdit.trackbackErrorTransport=Trackback failed, could not reach trackback URL. Are you sure you put in the right URL? -weblogEdit.trackbackErrorResponse=Trackback failed, error in sending. Response was {0} - {1} -weblogEdit.trackbackErrorParsing=Trackback failed, URL indicated success but response message was improperly formatted. Response was: {0} -weblogEdit.trackbackError404=Trackback failed, could not reach trackback URL. Are you sure you put in the right URL? - weblogEdit.hasComments=Comments [{1}] weblogEdit.enclosureURL=Enclosure URL diff --git a/app/src/main/resources/ApplicationResources_de.properties b/app/src/main/resources/ApplicationResources_de.properties index 360c1e9dda..fe4a956b5b 100644 --- a/app/src/main/resources/ApplicationResources_de.properties +++ b/app/src/main/resources/ApplicationResources_de.properties @@ -340,8 +340,6 @@ error.text.403=Sie verf\u00FCgen nicht die notwendigen Rechte um auf die angefor error.text.404=Die von Ihnen angeforderte Seite konnte auf diesem Server nicht gefunden werden. error.title.403=Zugriff verweigert error.title.404=Sorry! Wir haben das von Ihnen angeforderte Dokument nicht gefunden -error.trackback=Fehler beim Senden des Trackbacks. M\u00F6gliche Ursache: Die Trackback-URL ist fehlerhaft. {0} -error.trackbackNotAllowed=Fehler beim Abschicken des Trackbacks. Die Systemadministration erlaubt das Senden von Trackbacks an die von Ihnen angegebene URL nicht. #---------------------------------------------------------------- Error messages error.untranslated={0} #---------------------------------------------------------------- Error messages @@ -786,7 +784,6 @@ weblogEdit.rightToLeft=Text von rechts-nach-links lesen weblogEdit.save=Als Entwurf speichern weblogEdit.scheduled=geplant weblogEdit.scheduledEntries=Geplante Eintr\u00E4ge -weblogEdit.sendTrackback=Sende Trackback weblogEdit.status=Status weblogEdit.submitForReview=Zur Durchsicht einreichen weblogEdit.submittedForReview=Eintrag zur Durchsicht eingereicht @@ -798,14 +795,6 @@ weblogEdit.title=Titel weblogEdit.title.editEntry=Eintrag bearbeiten weblogEdit.title.newEntry=Neuer Eintrag # ------------------------------------------------------------- User settings -weblogEdit.trackback=Trackback -weblogEdit.trackbackError404=Trackback fehlgeschlagen, Trackback URL konnte nicht erreicht werden. Sind Sie sicher, dass Sie die richtige URL eingegeben haben? -weblogEdit.trackbackErrorParsing=Trackback fehlgeschlagen, URL ist korrekt, aber die Fehlerantwort war falsch formatiert. Antwort: {0} -weblogEdit.trackbackErrorResponse=Trackback fehlgeschlagen, Fehlerantwort: {0} - {1} -weblogEdit.trackbackErrorTransport=Trackback fehlgeschlagen, Trackback URL konnte nicht erreicht werden. Sind Sie sicher, dass Sie die richtige URL eingegeben haben? -weblogEdit.trackbackFailure=Trackback fehlgeschlagen, Remote-Server meldet "{0}" -weblogEdit.trackbackSuccess=Trackbacks erfolgt -weblogEdit.trackbackUrl=Trackback URL # ------------------------------------------------------------- Weblog edit weblogEdit.unsaved=Nicht gesichert weblogEdit.updateTime=Letzter Update diff --git a/app/src/main/resources/ApplicationResources_es.properties b/app/src/main/resources/ApplicationResources_es.properties index b8dcbb0b36..342867e270 100644 --- a/app/src/main/resources/ApplicationResources_es.properties +++ b/app/src/main/resources/ApplicationResources_es.properties @@ -187,8 +187,6 @@ error.upload.filemax=Fichero mayor que el m\u00E1ximo permitido\: {0} MB error.upload.forbiddenFile=Puede cargar s\u00F3lo ficheros acabados en {0} error.general=ERROR\: Excepci\u00F3n inesperada [{0}] ha sido registrada. error.password.mismatch=Nombre de usuario o contrase\u00F1a incorrectos -error.trackback=Error al enviar referencia. Posible causa\: URL de referencia incorrecta. {0} -error.trackbackNotAllowed=Error al enviar referencia. El administrador del sitio ha deshabilitado el env\u00EDo de referencias a la URL especificada. error.title.403=Acceso denegado (404) error.text.403=No tiene los privilegios necesarios para acceder a la p\u00E1gina solicitada error.title.404=\!Lo sentimos\! No se ha podido encontrar su documento (404) @@ -485,9 +483,6 @@ weblogEdit.pluginsToApply=Plugins que aplicar weblogEdit.miscSettings=Ajustes de configuraci\u00F3n miscel\u00E1neos weblogEdit.rightToLeft=El texto se lee de derecha a izquierda weblogEdit.pinnedToMain=Poner en principal -weblogEdit.trackback=Referencia -weblogEdit.sendTrackback=Enviar referencia -weblogEdit.trackbackUrl=URL de la referencia weblogEdit.hasComments=Comentarios [{0}] weblogEdit.mediaCastFailedFetchingInfo=No se puede contactar con el servidor MediaCast. Compruebe el nombre del host en la URL. weblogEdit.mediaCastUrlMalformed=La URL de MediaCast no estaba bien formada. diff --git a/app/src/main/resources/ApplicationResources_fr.properties b/app/src/main/resources/ApplicationResources_fr.properties index 124fd323d7..33bd4b07b4 100644 --- a/app/src/main/resources/ApplicationResources_fr.properties +++ b/app/src/main/resources/ApplicationResources_fr.properties @@ -358,12 +358,6 @@ error.general=ERREUR : une erreur inattendue [{0}] est survenue. error.password.mismatch=Votre nom d'utilisateur ou votre mot de passe est incorrect. -error.trackback=Une erreur est survenue durant l'envoi du trackback, probablement due à \ -une adresse URL incorrecte. {0} -#FIXME -error.trackbackNotAllowed=Une erreur est survenue durant l'envoi du trackback. \ -L'administrateur de ce site a interdit l'envoi de trackbacks à l'adresse URL que vous avez spécifiée. - errorPage.title=Erreur inattendue errorPage.message=Une erreur inattendue est survenue durant l'execution de Roller. Celle ci a été enregistrée \ dans le fichier journal de l'application. @@ -971,9 +965,6 @@ weblogEdit.miscSettings=Paramètres avancés weblogEdit.rightToLeft=Lecture de droite à gauche weblogEdit.pinnedToMain=Collé à la page principale -weblogEdit.trackback=Trackback -weblogEdit.sendTrackback=Envoyer un trackback -weblogEdit.trackbackUrl=URL du trackback weblogEdit.hasComments=Commentaires [{0}] #FIXME ALLL THOSE DOWNTHERE - WHAT IS ENCLOSURE diff --git a/app/src/main/resources/ApplicationResources_ja.properties b/app/src/main/resources/ApplicationResources_ja.properties index 8802be030d..599a609e29 100644 --- a/app/src/main/resources/ApplicationResources_ja.properties +++ b/app/src/main/resources/ApplicationResources_ja.properties @@ -291,9 +291,6 @@ error.upload.forbiddenFile=\u5F62\u5F0F{0}\u306E\u30A2\u30C3\u30D7\u30ED\u30FC\u error.general=\u4E0D\u660E\u306A\u4F8B\u5916[{0}]\u304C\u8A18\u9332\u3055\u308C\u307E\u3057\u305F error.password.mismatch=\u30E6\u30FC\u30B6\u540D\u304B\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u8AA4\u3063\u3066\u3044\u307E\u3059 -error.trackback=\u30C8\u30E9\u30C3\u30AF\u30D0\u30C3\u30AF\u306E\u9001\u4FE1\u30A8\u30E9\u30FC: \u8003\u3048\u3089\u308C\u308B\u539F\u56E0: \u30C8\u30E9\u30C3\u30AF\u30D0\u30C3\u30AFURL\u306B\u8AA4\u308A\u304C\u3042\u308A\u307E\u3059 {0} -error.trackbackNotAllowed=\u30C8\u30E9\u30C3\u30AF\u30D0\u30C3\u30AF\u306E\u9001\u4FE1\u30A8\u30E9\u30FC\uFF1A \ -\u30B5\u30A4\u30C8\u30AA\u30FC\u30CA\u30FC\u306F\u30C8\u30E9\u30C3\u30AF\u30D0\u30C3\u30AF\u9001\u4FE1\u3092\u8A31\u53EF\u3057\u3066\u3044\u307E\u305B\u3093 error.title.403=\u30A2\u30AF\u30BB\u30B9\u304C\u62D2\u5426\u3055\u308C\u307E\u3057\u305F error.text.403=\u3042\u306A\u305F\u306B\u306F\u3053\u306E\u30DA\u30FC\u30B8\u3078\u30A2\u30AF\u30BB\u30B9\u3059\u308B\u305F\u3081\u306E\u6A29\u9650\u304C\u4E0E\u3048\u3089\u308C\u3066\u3044\u307E\u305B\u3093 @@ -728,10 +725,6 @@ weblogEdit.miscSettings=\u8A73\u7D30\u8A2D\u5B9A weblogEdit.rightToLeft=\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306E\u65B9\u5411\u3092\u53F3\u304B\u3089\u5DE6\u3068\u3059\u308B weblogEdit.pinnedToMain=\u30E1\u30A4\u30F3\u30DA\u30FC\u30B8\u3078\u56FA\u5B9A\u3059\u308B -weblogEdit.trackback=\u30C8\u30E9\u30C3\u30AF\u30D0\u30C3\u30AF -weblogEdit.sendTrackback=\u30C8\u30E9\u30C3\u30AF\u30D0\u30C3\u30AF\u3092\u9001\u4FE1\u3059\u308B -weblogEdit.trackbackUrl=\u30C8\u30E9\u30C3\u30AF\u30D0\u30C3\u30AFURL - # -------------------------------------------------------- Weblog entries Pager weblogEntriesPager.latest.home=\u30E1\u30A4\u30F3 @@ -1138,12 +1131,10 @@ themeEditor.setCustomTheme.success=\u5171\u6709\u30C6\u30FC\u30DE {0} \u304C\u30 planetGroups.column.subscriptions=\u30B5\u30D6\u30B9\u30AF\u30EA\u30D7\u30B7\u30E7\u30F3 mediaFileImageChooser.subtitle=\u753B\u50CF\u306E\u9078\u629E mediaFileView.filesOfSize=\u30B5\u30A4\u30BA\u304C {0} {1} {2} \u306E\u30D5\u30A1\u30A4\u30EB -weblogEdit.trackbackErrorResponse=\u9001\u4FE1\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u305F\u305F\u3081\u3001\u30C8\u30E9\u30C3\u30AF\u30D0\u30C3\u30AF\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u30EC\u30B9\u30DD\u30F3\u30B9\u306F\u3001\u3053\u306E\u3088\u3046\u306A\u5185\u5BB9\u3067\u3057\u305F {0} - {1} mediaFile.delete.error=\u30E1\u30C7\u30A3\u30A2\u30FB\u30D5\u30A1\u30A4\u30EB {0} \u3092\u524A\u9664\u3059\u308B\u969B\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 statCount.weblogEntryCommentCountType=\u30A8\u30F3\u30C8\u30EA\u30FC\u306E\u30B3\u30E1\u30F3\u30C8\u6570 configForm.allowAnalyticsCodeOverride=\u500B\u3005\u306E\u30D6\u30ED\u30B0\u3067\u306E\u4E0A\u66F8\u304D\u3092\u8A31\u53EF\u3057\u307E\u3059\u304B? yourWebsites.theme=\u30C6\u30FC\u30DE -weblogEdit.trackbackErrorTransport=\u30C8\u30E9\u30C3\u30AF\u30D0\u30C3\u30AFURL\u306B\u5230\u9054\u3067\u304D\u306A\u304B\u3063\u305F\u305F\u3081\u3001\u30C8\u30E9\u30C3\u30AF\u30D0\u30C3\u30AF\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002URL\u306F\u6B63\u3057\u3044\u3067\u3059\u304B? configForm.defaultAnalyticsTrackingCode=\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u30C8\u30E9\u30C3\u30AD\u30F3\u30B0\u30FB\u30B3\u30FC\u30C9 mediaFileView.sortBy=\u3053\u306E\u5C5E\u6027\u3067\u30BD\u30FC\u30C8\: MediaFile.error.nameNull=\u540D\u524D\u306F\u5FC5\u9808\u9805\u76EE\u3067\u3059 @@ -1203,7 +1194,6 @@ generic.changes.saved=\u5909\u66F4\u304C\u4FDD\u5B58\u3055\u308C\u307E\u3057\u30 error.commentPostFailedEmailAddress=\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u304C\u4E0D\u6B63\u3067\u3059\u3002 ConfigForm.title=Planet \u30BF\u30A4\u30C8\u30EB\t mediaFileView.viewFolder=\u3053\u306E\u30D5\u30A9\u30EB\u30C0\u3092\u8868\u793A\: -weblogEdit.trackbackFailure=\u30C8\u30E9\u30C3\u30AF\u30D0\u30C3\u30AF\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u30EA\u30E2\u30FC\u30C8\u30FB\u30B5\u30FC\u30D0\u306F\u3001\u3053\u306E\u3088\u3046\u306B\u8FD4\u7B54\u3057\u307E\u3057\u305F "{0}" mediaFile.move.confirm=\u9078\u629E\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u3092\u79FB\u52D5\u3057\u3066\u3088\u308D\u3057\u3044\u3067\u3059\u304B? pingTarget.updated=Ping\u30BF\u30FC\u30B2\u30C3\u30C8 "{0}" \u304C\u66F4\u65B0\u3055\u308C\u307E\u3057\u305F generic.name=\u540D\u524D @@ -1289,7 +1279,6 @@ pageRemoves.subtitle=\u30DA\u30FC\u30B8\u524A\u9664\u306E\u78BA\u8A8D userAdmin.userSaved=\u30E6\u30FC\u30B6\u60C5\u5831\u304C\u4FDD\u5B58\u3055\u308C\u307E\u3057\u305F mediaFileEdit.subtitle=\u30E1\u30C7\u30A3\u30A2\u30FB\u30D5\u30A1\u30A4\u30EB {0} \u306E\u7DE8\u96C6 mediaFileView.le=<\= -weblogEdit.trackbackError404=\u30C8\u30E9\u30C3\u30AF\u30D0\u30C3\u30AFURL\u306B\u5230\u9054\u3067\u304D\u306A\u304B\u3063\u305F\u305F\u3081\u30C8\u30E9\u30C3\u30AF\u30D0\u30C3\u30AF\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002URL\u306F\u6B63\u3057\u3044\u3067\u3059\u304B? macro.weblog.url=URL\: weblogEdit.enclosureURL.tooltip=\u3053\u306E\u30D6\u30ED\u30B0\u30FB\u30A8\u30F3\u30C8\u30EA\u30FC\u306ERSS\u3068Atom\u30D5\u30A3\u30FC\u30C9\u306B\u57CB\u3081\u8FBC\u307E\u308C\u308B\u3001Podcast\u307E\u305F\u306F\u4ED6\u306E\u30DE\u30EB\u30C1\u30E1\u30C7\u30A3\u30A2URL mediaFile.includeInGallery.error=\u30E1\u30C7\u30A3\u30A2\u30FB\u30D5\u30A1\u30A4\u30EB {0} \u3092\u30AE\u30E3\u30E9\u30EA\u30FC\u306B\u8FFD\u52A0\u3059\u308B\u969B\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 @@ -1315,7 +1304,6 @@ maintenance.prompt.reset=\u30D6\u30ED\u30B0\u306E\u30A2\u30AF\u30BB\u30B9\u30AB\ userRegister.tip.openid.hybrid=\u30E6\u30FC\u30B6\u540D\u3068\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u4F7F\u3063\u3066\u30ED\u30B0\u30A4\u30F3\u3059\u308B\u304B\u3001OpenID\u3092\u4F7F\u3063\u3066\u30ED\u30B0\u30A4\u30F3\u3059\u308B\u304B\u3001\u9078\u629E\u3067\u304D\u307E\u3059\u3002\u5F8C\u8005\u3092\u9078\u629E\u3059\u308B\u5834\u5408\u306F\u3001\u30D1\u30B9\u30EF\u30FC\u30C9\u6B04\u3092\u7A7A\u767D\u306E\u307E\u307E\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002 mediaFileSidebar.actions=\u30A2\u30AF\u30B7\u30E7\u30F3 bookmarksForm.deleteFolder=\u30D5\u30A9\u30EB\u30C0\u306E\u524A\u9664 -weblogEdit.trackbackErrorParsing=URL\u306F\u6B63\u5E38\u3067\u3059\u304C\u3001\u30EC\u30B9\u30DD\u30F3\u30B9\u30FB\u30E1\u30C3\u30BB\u30FC\u30B8\u304C\u4E0D\u6B63\u306A\u5F62\u5F0F\u3067\u3042\u3063\u305F\u305F\u3081\u3001\u30C8\u30E9\u30C3\u30AF\u30D0\u30C3\u30AF\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u30EC\u30B9\u30DD\u30F3\u30B9\u306F\u3001\u3053\u306E\u3088\u3046\u306A\u5185\u5BB9\u3067\u3057\u305F\: {0} installer.databaseUpgradeNeededExplanation=Roller\u306F\u30BF\u30A4\u30D7 [{0}] \u306E\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3078\u306E\u63A5\u7D9A\u306B\u6210\u529F\u3057\u3001\u30C6\u30FC\u30D6\u30EB\u3092\u767A\u898B\u3057\u307E\u3057\u305F\u304C\u3001\u30C6\u30FC\u30D6\u30EB\u306E\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9\u304C\u5FC5\u8981\u3067\u3059\u3002 mediaFileView.noFiles=\u3053\u306E\u30D5\u30A9\u30EB\u30C0\u306F\u7A7A\u3067\u3059\u3002 mediaFileAdd.pageTip=\u3053\u306E\u30DA\u30FC\u30B8\u3067\u306F\u3001\u6700\u59275\u3064\u307E\u3067\u306E\u65B0\u3057\u3044\u30E1\u30C7\u30A3\u30A2\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3067\u304D\u307E\u3059\u3002\u4EE5\u4E0B\u306E\u30D5\u30A9\u30FC\u30E0\u306B\u5165\u529B\u3055\u308C\u305F\u5185\u5BB9\u306F\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3055\u308C\u308B\u5168\u3066\u306E\u30D5\u30A1\u30A4\u30EB\u306B\u9069\u7528\u3055\u308C\u307E\u3059\u3002 @@ -1339,7 +1327,6 @@ commonPingTargets.error.disabling=Ping\u30BF\u30FC\u30B2\u30C3\u30C8\u306E\u7121 stylesheetEdit.revert=\u30B9\u30BF\u30A4\u30EB\u30B7\u30FC\u30C8\u3092\u5FA9\u5143 weblogEdit.submitForReview=\u30EC\u30D3\u30E5\u30FC\u4F9D\u983C\u3092\u9001\u4FE1 mediaFileView.filesOfType=\u30BF\u30A4\u30D7\u304C {0} \u306E\u30D5\u30A1\u30A4\u30EB -weblogEdit.trackbackSuccess=\u30C8\u30E9\u30C3\u30AF\u30D0\u30C3\u30AF\u306B\u6210\u529F\u3057\u307E\u3057\u305F\u3002 categoriesForm.imageUrl=\u753B\u50CF\u306EURL userAdmin.tip.openIdUrl=Open ID\u8B58\u5225\u5B50(URL\u5F62\u5F0F)\u3002 macro.weblog.searchalert=\u691C\u7D22\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002 diff --git a/app/src/main/resources/ApplicationResources_ko.properties b/app/src/main/resources/ApplicationResources_ko.properties index 0de377cae7..bf51cd18d5 100644 --- a/app/src/main/resources/ApplicationResources_ko.properties +++ b/app/src/main/resources/ApplicationResources_ko.properties @@ -380,9 +380,6 @@ error.upload.forbiddenFile=\ud5c8\uc6a9\ub41c \ud655\uc7a5\uc790\uc640 \ud5c8\uc error.general=\uc624\ub958: \uc608\uae30\uce58 \uc54a\uc740 \uc624\ub958 [{0}]\uc774(\uac00) \ub85c\uadf8\uc5d0 \uae30\ub85d\ub418\uc5c8\uc2b5\ub2c8\ub2e4. error.password.mismatch=\uc0ac\uc6a9\uc790\uba85\uacfc \ube44\ubc00\ubc88\ud638 \uc870\ud569 \uc624\ub958 -error.trackback=\ud2b8\ub799\ubc31 \uc804\uc1a1 \uc624\ub958. \uc608\uc0c1 \uc6d0\uc778: \ubd80\uc815\ud655\ud55c \ud2b8\ub799\ubc31 URL. {0} -error.trackbackNotAllowed=\ud2b8\ub799\ubc31 \uc804\uc1a1 \uc624\ub958. \uc0ac\uc774\ud2b8 \uad00\ub9ac\uc790\uac00 \uadc0\ud558\uac00 \uc124\uc815\ud55c URL\ub85c\uc758 \ -\ud2b8\ub799\ubc31 \uc804\uc1a1\uc744 \ud5c8\uc6a9\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. errorPage.title=\uc608\uae30\uce58 \uc54a\uc740 \uc624\ub958 errorPage.message=\uc2dc\uc2a4\ud15c\uc774 \uc608\uae30\uce58 \uc54a\uc740 \uc624\ub958\ub97c \ubc1c\uacac\ud558\uc5ec \ub85c\uadf8\uc5d0 \uae30\ub85d\ud558\uc600\uc2b5\ub2c8\ub2e4. @@ -1082,16 +1079,6 @@ weblogEdit.miscSettings=\uace0\uae09 \ud658\uacbd \uc124\uc815 \uc815\ubcf4 weblogEdit.rightToLeft=\ud14d\uc2a4\ud2b8\ub294 \uc624\ub978\ucabd\uc5d0\uc11c \uc67c\ucabd\uc73c\ub85c weblogEdit.pinnedToMain=\uba54\uc778\uc73c\ub85c \uace0\uc815 -weblogEdit.trackback=\ud2b8\ub799\ubc31 -weblogEdit.sendTrackback=\ud2b8\ub799\ubc31 \uc804\uc1a1 -weblogEdit.trackbackUrl=\ud2b8\ub799\ubc31 URL - -weblogEdit.trackbackSuccess=\ud2b8\ub799\ubc31\uc774 \uc131\uacf5\ud588\uc2b5\ub2c8\ub2e4. -weblogEdit.trackbackFailure=\ud2b8\ub799\ubc31\uc774 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4. \uc6d0\uaca9 \uc11c\ubc84\uc758 \uc751\ub2f5: "{0}" -weblogEdit.trackbackErrorTransport=\ud2b8\ub799\ubc31\uc774 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4. \ud2b8\ub799\ubc31 URL\uc5d0 \uc811\uadfc\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uc124\uc815\ud55c URL\uc744 \ub2e4\uc2dc \ud655\uc778\ud574 \uc8fc\uc2ed\uc2dc\uc624. -weblogEdit.trackbackErrorResponse=\ud2b8\ub799\ubc31 \uc804\uc1a1 \uc911 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4. \uc751\ub2f5\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4: {0} - {1} -weblogEdit.trackbackErrorParsing=\ud2b8\ub799\ubc31\uc774 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4. URL\uc5d0 \uc811\uadfc\ud558\uc600\uc73c\ub098, \uc751\ub2f5 \uba54\uc2dc\uc9c0\uac00 \uc801\uc808\ud55c \ud3ec\ub9f7\uc774 \uc544\ub2d9\ub2c8\ub2e4. \uc751\ub2f5\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4: {0} -weblogEdit.trackbackError404=\ud2b8\ub799\ubc31\uc774 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4. \ud2b8\ub799\ubc31 URL\uc5d0 \uc811\uadfc\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uc124\uc815\ud55c URL\uc744 \ub2e4\uc2dc \ud655\uc778\ud574 \uc8fc\uc2ed\uc2dc\uc624. weblogEdit.hasComments=\uc758\uacac, [{1}] @@ -1335,4 +1322,4 @@ user.account.activation.mail.content=\ welcome.user.account.activated=\uadc0\ud558\uc758 \uc0ac\uc6a9\uc790 \uacc4\uc815\uc774 \ud65c\uc131\ud654\ub418\uc5c8\uc2b5\ub2c8\ub2e4. welcome.user.account.not.activated=\uc2dc\uc2a4\ud15c\uc5d0 \ub85c\uadf8\uc778\ud558\uc2dc\ub824\uba74, \ \uc804\uc790\uc6b0\ud3b8\uc744 \ud1b5\ud574 \uadc0\ud558\uc5d0\uac8c \uc804\uc1a1\ub41c \ub9c1\ud06c\ub97c \ud074\ub9ad\ud568\uc73c\ub85c\uc368, \ -\uadc0\ud558\uc758 \uc0ac\uc6a9\uc790 \uacc4\uc815\uc744 \ud65c\uc131\ud654\uc2dc\ucf1c\uc57c \ud569\ub2c8\ub2e4. \ No newline at end of file +\uadc0\ud558\uc758 \uc0ac\uc6a9\uc790 \uacc4\uc815\uc744 \ud65c\uc131\ud654\uc2dc\ucf1c\uc57c \ud569\ub2c8\ub2e4. diff --git a/app/src/main/resources/ApplicationResources_ru.properties b/app/src/main/resources/ApplicationResources_ru.properties index ce5c69559c..7375cbe854 100644 --- a/app/src/main/resources/ApplicationResources_ru.properties +++ b/app/src/main/resources/ApplicationResources_ru.properties @@ -236,10 +236,6 @@ error.upload.forbiddenFile=\u041C\u043E\u0436\u043D\u043E \u0437\u0430\u0433\u04 error.general=\u041E\u0448\u0438\u0431\u043A\u0430: \u0417\u0430\u0444\u0438\u043A\u0441\u0438\u0440\u043E\u0432\u0430\u043D\u043E \u043D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0438\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 [{0}] error.password.mismatch=\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u043A\u043E\u043C\u0431\u0438\u043D\u0430\u0446\u0438\u044F \u0438\u043C\u0435\u043D\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u0438 \u043F\u0430\u0440\u043E\u043B\u044F -error.trackback=\u041E\u0448\u0438\u0431\u043A\u0430 \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0438 trackback. \u0412\u043E\u0437\u043C\u043E\u0436\u043D\u0430\u044F \u043F\u0440\u0438\u0447\u0438\u043D\u0430:\u043D\u0435\u043A\u043E\u0440\u0435\u043A\u0442\u043D\u0430\u044F \ -trackback URL. {0} -error.trackbackNotAllowed=\u041E\u0448\u0438\u0431\u043A\u0430 \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0438 trackback.\u0410\u0434\u043C\u0438\u043D\u0438\u0441\u0442\u0440\u0430\u0442\u043E\u0440 \u0441\u0430\u0439\u0442\u0430 \ \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C -tracbacks \u043F\u043E URL, \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043D\u043E\u043C\u0443 \u0412\u0430\u043C\u0438. error.title.403=\u0414\u043E\u0441\u0442\u0443\u043F \u0437\u0430\u043F\u0440\u0435\u0449\u0435\u043D (403) error.text.403=\u0423 \u0432\u0430\u0441 \u043D\u0435\u0442 \u043F\u0440\u0430\u0432 \u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u043A \u044D\u0442\u043E\u0439 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0435 \ \u0437\u0430\u043F\u0440\u043E\u0448\u0435\u043D\u043D\u043E\u0439 \u0412\u0430\u043C\u0438 @@ -705,12 +701,6 @@ weblogEdit.miscSettings = \u0420\u0430\u0437\u043D\u044B\u0435 \u043D\u0430\u044 weblogEdit.rightToLeft = \u0422\u0435\u043A\u0441\u0442 \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044F \u0441\u043F\u0440\u0430\u0432\u0430 \u043D\u0430\u043B\u0435\u0432\u043E weblogEdit.pinnedToMain = \u041F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u0435\u0442\u0441\u044F \u043A \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u043C\u0443 -weblogEdit.trackback = Trackback -weblogEdit.trackbacks = Trackbacks -weblogEdit.sendTrackback = \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C Trackback -weblogEdit.trackbackUrl = Trackback URL -weblogEdit.trackbackResults = Trackback \u043E\u0442\u0432\u0435\u0442\u0430 (\u043A\u043E\u0434 \u043E\u0448\u0438\u0431\u043A\u0438 0, \u0443\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442 \ -\u0423\u0441\u043F\u0435\u0445): < br / > < br / > {0} weblogEdit.comment=\u041A\u043E\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0439 diff --git a/app/src/main/resources/ApplicationResources_zh_CN.properties b/app/src/main/resources/ApplicationResources_zh_CN.properties index 93ac844968..1000dd54d1 100644 --- a/app/src/main/resources/ApplicationResources_zh_CN.properties +++ b/app/src/main/resources/ApplicationResources_zh_CN.properties @@ -461,11 +461,6 @@ error.general=\u5DF2\u8BB0\u5165\u9519\u8BEF\u65E5\u5FD7: [{0}] error.password.mismatch=\u7528\u6237\u540D\u6216\u5BC6\u7801\u51FA\u9519 error.unmatched.openid=OpenID\u7684URL\u672A\u77E5\u6216\u65E0\u6548 -error.trackback=\u53D1\u9001\u5F15\u7528\u65F6\u51FA\u9519\u3002\u53EF\u80FD\u539F\u56E0\uFF1A\u5F15\u7528URL\u65E0\u6548\u3002 {0} - -error.trackbackNotAllowed=\u53D1\u9001\u5F15\u7528\u65F6\u51FA\u9519\u3002\u7AD9\u70B9\u7BA1\u7406\u5458\u4E0D\u5141\u8BB8\u5411\u6307\u5B9A\u7684URL\u53D1\u9001\u5F15\u7528\u3002 - - error.title.403=\u62D2\u7EDD\u8BBF\u95EE error.text.403=\u4F60\u6CA1\u6709\u8BBF\u95EE\u6307\u5B9A\u9875\u9762\u7684\u6743\u9650\u3002 @@ -1589,16 +1584,6 @@ weblogEdit.pinnedToMain.tooltip=\u5C06\u535A\u5BA2\u6587\u7AE0\u5728\u4E3B\u9875 weblogEdit.searchDescription=\u641C\u7D22\u63CF\u8FF0 weblogEdit.searchDescription.tooltip=\u7528\u4E8E SEO \u7684\u653E\u7F6E\u4E8E HTML \u6807\u5934\u4E2D\u7684\u535A\u5BA2\u6587\u7AE0\u7684\u7B80\u77ED\u63CF\u8FF0\uFF08\u5982\u679C\u6709\u5728\u535A\u5BA2\u6A21\u677F\u4EE3\u7801\u4E2D\u8BBE\u7F6E\uFF09\u3002 -weblogEdit.trackback=\u5F15\u7528 -weblogEdit.sendTrackback=\u53D1\u9001\u5F15\u7528 -weblogEdit.trackbackUrl=\u5F15\u7528URL - -weblogEdit.trackbackSuccess=\u5F15\u7528\u6210\u529F\u3002 -weblogEdit.trackbackFailure=\u5F15\u7528\u5931\u8D25\uFF0C\u56DE\u5E94\u6D88\u606F "{0}" -weblogEdit.trackbackErrorTransport=\u5F15\u7528\u5931\u8D25\uFF0C\u65E0\u6CD5\u6253\u5F00\u5F15\u7528URL\uFF0C\u5730\u5740\u662F\u5426\u6B63\u786E\uFF1F -weblogEdit.trackbackErrorResponse=\u5F15\u7528\u5931\u8D25\uFF0C\u56DE\u5E94\u6D88\u606F {0} - {1} -weblogEdit.trackbackErrorParsing=\u5F15\u7528\u5931\u8D25\uFF0C\u76EE\u6807\u8FD4\u56DE\u7684\u4FE1\u606F\u683C\u5F0F\u4E0D\u6B63\u786E\uFF0C\u8FD4\u56DE\u4FE1\u606F: {0} -weblogEdit.trackbackError404=\u5F15\u7528\u5931\u8D25\uFF0C\u65E0\u6CD5\u6253\u5F00\u5F15\u7528URL\uFF0C\u5730\u5740\u662F\u5426\u6B63\u786E\uFF1F weblogEdit.hasComments=\u8BC4\u8BBA [{1}] @@ -1876,6 +1861,3 @@ error.activate.user.invalidActivationCode=\u6FC0\u6D3B\u7801\u65E0\u6548\u3002\u user.account.activation.mail.subject=Roller\uFF1A\u4F60\u7684\u8D26\u53F7\u6FC0\u6D3B\u7801 user.account.activation.mail.content=

\u8981\u6FC0\u6D3B\u4F60\u7684Roller\u8D26\u6237[{1}]\uFF0C\u8BF7\u70B9\u51FB\u4EE5\u4E0B\u94FE\u63A5\uFF1A

{2}

- - - diff --git a/app/src/main/webapp/themes/base.css b/app/src/main/webapp/themes/base.css index 9be0d2c0fb..7f5f104b42 100644 --- a/app/src/main/webapp/themes/base.css +++ b/app/src/main/webapp/themes/base.css @@ -212,12 +212,7 @@ div#searchAgain { border: 1px solid #999; font-size: 1em; } -div.trackbackUrl { - background: transparent; - margin: 0px 10px 10px 10px; - text-align: left; -} -#nextEntry { +#nextEntry { text-align: right; } #previousEntry { diff --git a/app/src/test/java/org/apache/roller/weblogger/ui/struts2/editor/EntryTrackbackRemovalTest.java b/app/src/test/java/org/apache/roller/weblogger/ui/struts2/editor/EntryTrackbackRemovalTest.java index 961593458d..ee77d27e08 100644 --- a/app/src/test/java/org/apache/roller/weblogger/ui/struts2/editor/EntryTrackbackRemovalTest.java +++ b/app/src/test/java/org/apache/roller/weblogger/ui/struts2/editor/EntryTrackbackRemovalTest.java @@ -17,6 +17,7 @@ package org.apache.roller.weblogger.ui.struts2.editor; import java.io.InputStream; +import java.util.List; import java.util.Set; import javax.xml.parsers.DocumentBuilderFactory; @@ -54,7 +55,7 @@ void entryActionsDoNotAllowTrackbackMethod() throws Exception { NodeList allowedMethods = action.getElementsByTagName("allowed-methods"); assertEquals(1, allowedMethods.getLength()); String methods = allowedMethods.item(0).getTextContent(); - assertFalse(Set.of(methods.trim().split("\\s*,\\s*")).contains("trackback")); + assertFalse(List.of(methods.trim().split("\\s*,\\s*")).contains("trackback")); actionsChecked++; } } diff --git a/docs/roller-user-guide.adoc b/docs/roller-user-guide.adoc index 83ffd2e462..e047748c91 100644 --- a/docs/roller-user-guide.adoc +++ b/docs/roller-user-guide.adoc @@ -785,31 +785,6 @@ _javax.util.regex.Pattern_ for a guide to regular expressions). Don’t try to use a regular expression unless you really know what you’re doing. -=== Sending trackbacks - -If you are writing about something you read on another weblog, you want -to let the author and readers of that weblog know that you are doing so, -and that other weblog is trackback enabled, then you should send that -weblog a trackback ping. Here’s a story that illustrates how trackback -works: - -* You read an interesting blog entry on Otto’s blog. You notice that -Otto’s blog entry has a trackback URL, so instead of leaving a comment -on Otto’s blog you decide to comment by writing a blog entry in your own -blog. You copy that trackback URL (using ALT-C, or right-click-copy, or -whatever) cause you’ll need it later. - -* You go to your blog and write a new blog entry in response to Otto’s -entry. Click the Post to Weblog button to publish your new entry. After -you publish, scroll down on the New Entry page until you see the -following text field and button: -* Enter the trackback URL from Otto’s blog entry into the text field and -click the Send Trackback button. Roller will respond by printing the -response received from Otto’s blog server. If the trackback was -successful, you should see something like this: -* You should now see your trackback listed among the comments on Otto’s -blog entry. - == Choosing your weblog theme A weblog theme is a set of templates, style-sheets and image that @@ -1611,4 +1586,4 @@ feed subscriptions to the group. Enter the title, newsfeed URL and website URL for the feed you’d like to add and click the Save button to add it to the feeds list. Repeat once -for each subscription you’d like to add to the group. \ No newline at end of file +for each subscription you’d like to add to the group.