diff --git a/changelog.html b/changelog.html index 36b250d465..9344c28a81 100644 --- a/changelog.html +++ b/changelog.html @@ -20,7 +20,7 @@ Some tips: Changelog - + @@ -29,8 +29,8 @@ Some tips:
Legend: - major RFEmajor enhancement RFEenhancement - major bugmajor bug fix bugbug fix + major RFEmajor enhancement RFEenhancement + major bugmajor bug fix bugbug fix xxxxx
@@ -54,15 +54,54 @@ Upcoming changes +

What's new in 1.641 (2015/12/09)

+ +

What's new in 1.640 (2015/12/07)

+ +

What's new in 1.639 (2015/11/29)

-

What's new in 1.638 (2015/11/11)

-Older changelogs can be found in a separate file +Older changelogs can be found in a separate file diff --git a/cli/pom.xml b/cli/pom.xml index 6244cdb84f..b3ecb0312b 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.main pom - 1.639-SNAPSHOT + 1.642-SNAPSHOT cli diff --git a/cli/src/main/resources/hudson/cli/client/Messages_bg.properties b/cli/src/main/resources/hudson/cli/client/Messages_bg.properties new file mode 100644 index 0000000000..df0d2b57e1 --- /dev/null +++ b/cli/src/main/resources/hudson/cli/client/Messages_bg.properties @@ -0,0 +1,44 @@ +# The MIT License +# +# Bulgarian translation copyright 2015 Alexander Shopov . +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +CLI.Usage=\ + \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u0430 \u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0438\u044f \u0440\u0435\u0434 \u043d\u0430 Jenkins\n\ + \u0423\u043f\u043e\u0442\u0440\u0435\u0431\u0430: java -jar jenkins-cli.jar [-s \u0410\u0414\u0420\u0415\u0421] \u041a\u041e\u041c\u0410\u041d\u0414\u0410 [\u041e\u041f\u0426\u0418\u042f\u2026] \u0410\u0420\u0413\u0423\u041c\u0415\u041d\u0422\u2026\n\ + \u041e\u043f\u0446\u0438\u0438:\n\ + -s \u0410\u0414\u0420\u0415\u0421 : \u0430\u0434\u0440\u0435\u0441\u044a\u0442 \u043d\u0430 \u0441\u044a\u0440\u0432\u044a\u0440\u0430 (\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e \u0441\u0435 \u0432\u0437\u0438\u043c\u0430 \u043e\u0442 \u043f\u0440\u043e\u043c\u0435\u043d\u043b\u0438\u0432\u0430\u0442\u0430 \u043d\u0430\n\ + \u0441\u0440\u0435\u0434\u0430\u0442\u0430 \u201eJENKINS_URL\u201c)\n\ + -i \u041a\u041b\u042e\u0427 : \u0447\u0430\u0441\u0442\u0435\u043d \u043a\u043b\u044e\u0447 \u0437\u0430 SSH \u0437\u0430 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f\n\ + -p \u0425\u041e\u0421\u0422:\u041f\u041e\u0420\u0422 : \u0445\u043e\u0441\u0442 \u0438 \u043f\u043e\u0440\u0442 \u0437\u0430 \u0441\u044a\u0440\u0432\u044a\u0440-\u043f\u043e\u0441\u0440\u0435\u0434\u043d\u0438\u043a \u043f\u043e HTTP \u0437\u0430 \u0442\u0443\u043d\u0435\u043b \u043f\u043e HTTPS.\n\ + \u0417\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f: http://jenkins-ci.org/https-proxy-tunnel\n\ + -noCertificateCheck : \u0431\u0435\u0437 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0437\u0430 HTTPS (\u0412\u041d\u0418\u041c\u0410\u041d\u0418\u0415!)\n\ + -noKeyAuth : \u0431\u0435\u0437 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0441 \u0447\u0430\u0441\u0442\u0435\u043d \u043a\u043b\u044e\u0447 \u0437\u0430 SSH, \u043e\u043f\u0446\u0438\u044f\u0442\u0430 \u0435\n\ + \u043d\u0435\u0441\u044a\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u0430 \u0441 \u043e\u043f\u0446\u0438\u044f\u0442\u0430 \u201e-i\u201c\n\n\ + \u041d\u0430\u043b\u0438\u0447\u043d\u0438\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0438 \u0437\u0430\u0432\u0438\u0441\u044f\u0442 \u043e\u0442 \u0432\u0435\u0440\u0441\u0438\u044f\u0442\u0430 \u043d\u0430 \u0441\u044a\u0440\u0432\u044a\u0440\u0430. \u0417\u0430 \u0438\u0437\u0432\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0441\u043f\u0438\u0441\u044a\u043a\u0430\n\ + \u0438\u043c \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0439\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u0442\u0430 \u201ehelp\u201c.\n +CLI.NoURL=\ + \u0410\u0434\u0440\u0435\u0441\u044a\u0442 \u043d\u0435 \u0435 \u0437\u0430\u0434\u0430\u0434\u0435\u043d \u043d\u0438\u0442\u043e \u0447\u0440\u0435\u0437 \u043e\u043f\u0446\u0438\u044f\u0442\u0430 \u201e-s\u201c, \u043d\u0438\u0442\u043e \u0447\u0440\u0435\u0437 \u043f\u0440\u043e\u043c\u0435\u043d\u043b\u0438\u0432\u0430\u0442\u0430 \u043d\u0430\ + \u0441\u0440\u0435\u0434\u0430\u0442\u0430 \u201eJENKINS_URL\u201c. +CLI.VersionMismatch=\ + \u0412\u0435\u0440\u0441\u0438\u0438\u0442\u0435 \u043d\u0435 \u0441\u044a\u0432\u043f\u0430\u0434\u0430\u0442. \u0422\u0430\u0437\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0430 \u0437\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0435\u043d \u0440\u0435\u0434 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0438 \u0441 \u0442\u043e\u0437\u0438 \u0441\u044a\u0440\u0432\u044a\u0440\ + Jenkins. +CLI.NoSuchFileExists=\ + \u0422\u0430\u043a\u044a\u0432 \u0444\u0430\u0439\u043b \u043d\u0435 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430: {0} diff --git a/core/pom.xml b/core/pom.xml index e950e986ad..dd040f1d34 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -29,7 +29,7 @@ THE SOFTWARE. org.jenkins-ci.main pom - 1.639-SNAPSHOT + 1.642-SNAPSHOT jenkins-core @@ -200,7 +200,7 @@ THE SOFTWARE. org.jenkins-ci bytecode-compatibility-transformer - 1.7 + 1.8 org.jenkins-ci @@ -632,7 +632,7 @@ THE SOFTWARE. - + org.jenkins-ci.tools maven-hpi-plugin diff --git a/core/src/main/java/hudson/DNSMultiCast.java b/core/src/main/java/hudson/DNSMultiCast.java index 2ed4f28746..aa71b2e23b 100644 --- a/core/src/main/java/hudson/DNSMultiCast.java +++ b/core/src/main/java/hudson/DNSMultiCast.java @@ -67,7 +67,8 @@ public class DNSMultiCast implements Closeable { jmdns.registerService(ServiceInfo.create("_http._tcp.local.","Jenkins", jenkins_port,0,0,props)); } catch (IOException e) { - LOGGER.log(Level.WARNING,"Failed to advertise the service to DNS multi-cast",e); + LOGGER.log(Level.INFO, "Cannot advertise service to DNS multi-cast, skipping: {0}", e); + LOGGER.log(Level.FINE, null, e); } return null; } diff --git a/core/src/main/java/hudson/Plugin.java b/core/src/main/java/hudson/Plugin.java index 4808f208ed..75af4fda01 100644 --- a/core/src/main/java/hudson/Plugin.java +++ b/core/src/main/java/hudson/Plugin.java @@ -40,15 +40,18 @@ import java.io.File; import net.sf.json.JSONObject; import com.thoughtworks.xstream.XStream; +import hudson.init.Initializer; +import hudson.init.Terminator; import java.net.URI; import java.net.URISyntaxException; +import jenkins.model.GlobalConfiguration; import org.kohsuke.stapler.HttpResponses; /** * Base class of Hudson plugin. * *

- * A plugin may derive from this class, or it may directly define extension + * A plugin may {@linkplain #Plugin derive from this class}, or it may directly define extension * points annotated with {@link hudson.Extension}. For a list of extension * points, see * https://wiki.jenkins-ci.org/display/JENKINS/Extension+points. @@ -78,6 +81,22 @@ import org.kohsuke.stapler.HttpResponses; */ public abstract class Plugin implements Saveable { + /** + * You do not need to create custom subtypes: + *

+ * Note that every plugin gets a {@link DummyImpl} by default, + * which will still route the URL space, serve {@link #getWrapper}, and so on. + * @deprecated Use more modern APIs rather than subclassing. + */ + @Deprecated + protected Plugin() {} + /** * Set by the {@link PluginManager}, before the {@link #start()} method is called. * This points to the {@link PluginWrapper} that wraps diff --git a/core/src/main/java/hudson/PluginManager.java b/core/src/main/java/hudson/PluginManager.java index 802bbf180f..92feb2fb54 100644 --- a/core/src/main/java/hudson/PluginManager.java +++ b/core/src/main/java/hudson/PluginManager.java @@ -876,6 +876,7 @@ public abstract class PluginManager extends AbstractModelObject implements OnMas /** * Bare-minimum configuration mechanism to change the update center. */ + @RequirePOST public HttpResponse doSiteConfigure(@QueryParameter String site) throws IOException { Jenkins hudson = Jenkins.getInstance(); hudson.checkPermission(CONFIGURE_UPDATECENTER); @@ -891,6 +892,7 @@ public abstract class PluginManager extends AbstractModelObject implements OnMas } + @RequirePOST public HttpResponse doProxyConfigure(StaplerRequest req) throws IOException, ServletException { Jenkins jenkins = Jenkins.getInstance(); jenkins.checkPermission(CONFIGURE_UPDATECENTER); @@ -909,6 +911,7 @@ public abstract class PluginManager extends AbstractModelObject implements OnMas /** * Uploads a plugin. */ + @RequirePOST public HttpResponse doUploadPlugin(StaplerRequest req) throws IOException, ServletException { try { Jenkins.getInstance().checkPermission(UPLOAD_PLUGINS); diff --git a/core/src/main/java/hudson/UDPBroadcastThread.java b/core/src/main/java/hudson/UDPBroadcastThread.java index 9824f6c027..6b399c5b26 100644 --- a/core/src/main/java/hudson/UDPBroadcastThread.java +++ b/core/src/main/java/hudson/UDPBroadcastThread.java @@ -30,11 +30,11 @@ import jenkins.model.Jenkins; import hudson.util.OneShotEvent; import java.io.IOException; -import java.net.BindException; import java.net.DatagramPacket; import java.net.InetAddress; import java.net.MulticastSocket; import java.net.SocketAddress; +import java.net.SocketException; import java.net.UnknownHostException; import java.nio.channels.ClosedByInterruptException; import java.util.logging.Level; @@ -104,10 +104,13 @@ public class UDPBroadcastThread extends Thread { } } catch (ClosedByInterruptException e) { // shut down - } catch (BindException e) { - // if we failed to listen to UDP, just silently abandon it, as a stack trace + } catch (SocketException e) { + if (shutdown) { // forcibly closed + return; + } // if we failed to listen to UDP, just silently abandon it, as a stack trace // makes people unnecessarily concerned, for a feature that currently does no good. - LOGGER.log(Level.WARNING, "Failed to listen to UDP port "+PORT,e); + LOGGER.log(Level.INFO, "Cannot listen to UDP port {0}, skipping: {1}", new Object[] {PORT, e}); + LOGGER.log(Level.FINE, null, e); } catch (IOException e) { if (shutdown) return; // forcibly closed LOGGER.log(Level.WARNING, "UDP handling problem",e); diff --git a/core/src/main/java/hudson/cli/DeleteNodeCommand.java b/core/src/main/java/hudson/cli/DeleteNodeCommand.java index 5f52957aad..4d48e2b78f 100644 --- a/core/src/main/java/hudson/cli/DeleteNodeCommand.java +++ b/core/src/main/java/hudson/cli/DeleteNodeCommand.java @@ -25,10 +25,10 @@ package hudson.cli; import hudson.Extension; import hudson.model.Node; +import org.acegisecurity.AccessDeniedException; import jenkins.model.Jenkins; import org.kohsuke.args4j.Argument; -import java.nio.file.AccessDeniedException; import java.util.HashSet; import java.util.List; import java.util.logging.Logger; diff --git a/core/src/main/java/hudson/cli/OnlineNodeCommand.java b/core/src/main/java/hudson/cli/OnlineNodeCommand.java new file mode 100644 index 0000000000..2ed90c7461 --- /dev/null +++ b/core/src/main/java/hudson/cli/OnlineNodeCommand.java @@ -0,0 +1,85 @@ +/* + * The MIT License + * + * Copyright 2015 Red Hat, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package hudson.cli; + +import hudson.Extension; +import hudson.model.Computer; +import jenkins.model.Jenkins; + +import org.acegisecurity.AccessDeniedException; +import org.kohsuke.args4j.Argument; + +import java.util.logging.Logger; + +/** + * @author pjanouse + * @since TODO + */ +@Extension +public class OnlineNodeCommand extends CLICommand { + + @Argument(metaVar="NAME", usage="Slave name, or empty string for master") + public String computerName; + + private static final Logger LOGGER = Logger.getLogger(OnlineNodeCommand.class.getName()); + + @Override + public String getShortDescription() { + + return Messages.OnlineNodeCommand_ShortDescription(); + } + + @Override + protected int run() throws Exception { + + boolean errorOccurred = false; + + final Jenkins jenkins = Jenkins.getInstance(); + + Computer computer = jenkins.getComputer(computerName); + + if (computer == null) { + stderr.println(hudson.model.Messages.Computer_NoSuchSlaveExists(computerName, null)); + errorOccurred = true; + } else { + try { + computer.cliOnline(); + } catch (AccessDeniedException e) { + stderr.println(e.getMessage()); + errorOccurred = true; + } catch (Exception e) { + final String errorMsg = String.format("Unexpected exception occurred during performing online operation on node '%s': %s", + computer == null ? "(null)" : computer.getName(), + e.getMessage()); + stderr.println(errorMsg); + LOGGER.warning(errorMsg); + errorOccurred = true; + } + } + + return errorOccurred ? 1 : 0; + } + +} diff --git a/core/src/main/java/hudson/logging/LogRecorderManager.java b/core/src/main/java/hudson/logging/LogRecorderManager.java index d16ece6c2b..e35a098d4b 100644 --- a/core/src/main/java/hudson/logging/LogRecorderManager.java +++ b/core/src/main/java/hudson/logging/LogRecorderManager.java @@ -40,6 +40,7 @@ import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.HttpRedirect; +import org.kohsuke.stapler.interceptor.RequirePOST; import javax.servlet.ServletException; import java.io.File; @@ -106,6 +107,7 @@ public class LogRecorderManager extends AbstractModelObject implements ModelObje /** * Creates a new log recorder. */ + @RequirePOST public HttpResponse doNewLogRecorder(@QueryParameter String name) { Jenkins.checkGoodName(name); diff --git a/core/src/main/java/hudson/model/AbstractProject.java b/core/src/main/java/hudson/model/AbstractProject.java index f2fc2f5660..458d1b8f64 100644 --- a/core/src/main/java/hudson/model/AbstractProject.java +++ b/core/src/main/java/hudson/model/AbstractProject.java @@ -1930,6 +1930,7 @@ public abstract class AbstractProject

,R extends A /** * Wipes out the workspace. */ + @RequirePOST public HttpResponse doDoWipeOutWorkspace() throws IOException, ServletException, InterruptedException { checkPermission(Functions.isWipeOutPermissionEnabled() ? WIPEOUT : BUILD); R b = getSomeBuildWithWorkspace(); diff --git a/core/src/main/java/hudson/model/Computer.java b/core/src/main/java/hudson/model/Computer.java index 7f0f8673ec..394ad63757 100644 --- a/core/src/main/java/hudson/model/Computer.java +++ b/core/src/main/java/hudson/model/Computer.java @@ -523,7 +523,6 @@ public /*transient*/ abstract class Computer extends Actionable implements Acces setTemporarilyOffline(true, new ByCLI(cause)); } - @CLIMethod(name="online-node") public void cliOnline() throws ExecutionException, InterruptedException { checkPermission(CONNECT); setTemporarilyOffline(false, null); diff --git a/core/src/main/java/hudson/model/Descriptor.java b/core/src/main/java/hudson/model/Descriptor.java index d7b83bd952..1a210b7162 100644 --- a/core/src/main/java/hudson/model/Descriptor.java +++ b/core/src/main/java/hudson/model/Descriptor.java @@ -72,6 +72,7 @@ import java.lang.reflect.Type; import java.lang.reflect.Field; import java.lang.reflect.ParameterizedType; import java.beans.Introspector; +import java.util.IdentityHashMap; import javax.annotation.CheckForNull; import javax.annotation.Nonnull; @@ -559,7 +560,7 @@ public abstract class Descriptor> implements Saveable { * Signals a problem in the submitted form. * @since 1.145 */ - public T newInstance(StaplerRequest req, JSONObject formData) throws FormException { + public T newInstance(@CheckForNull StaplerRequest req, @Nonnull JSONObject formData) throws FormException { try { Method m = getClass().getMethod("newInstance", StaplerRequest.class); @@ -574,7 +575,20 @@ public abstract class Descriptor> implements Saveable { } // new behavior as of 1.206 - return verifyNewInstance(req.bindJSON(clazz,formData)); + BindInterceptor oldInterceptor = req.getBindInterceptor(); + try { + NewInstanceBindInterceptor interceptor; + if ((oldInterceptor instanceof NewInstanceBindInterceptor)) { + interceptor = (NewInstanceBindInterceptor) oldInterceptor; + } else { + interceptor = new NewInstanceBindInterceptor(oldInterceptor); + req.setBindInterceptor(interceptor); + } + interceptor.processed.put(formData, null); + return verifyNewInstance(req.bindJSON(clazz, formData)); + } finally { + req.setBindInterceptor(oldInterceptor); + } } } catch (NoSuchMethodException e) { throw new AssertionError(e); // impossible @@ -587,6 +601,78 @@ public abstract class Descriptor> implements Saveable { } } + /** + * Ensures that calls to {@link StaplerRequest#bindJSON(Class, JSONObject)} from {@link #newInstance(StaplerRequest, JSONObject)} recurse properly. + * {@code doConfigSubmit}-like methods will wind up calling {@code newInstance} directly + * or via {@link #newInstancesFromHeteroList(StaplerRequest, Object, Collection)}, + * which consult any custom {@code newInstance} overrides for top-level {@link Describable} objects. + * But for nested describable objects Stapler would know nothing about {@code newInstance} without this trick. + */ + @SuppressWarnings({"unchecked", "rawtypes"}) + private static class NewInstanceBindInterceptor extends BindInterceptor { + + private final BindInterceptor oldInterceptor; + private final Map processed = new IdentityHashMap<>(); + + NewInstanceBindInterceptor(BindInterceptor oldInterceptor) { + LOGGER.log(Level.FINER, "new interceptor delegating to {0}", oldInterceptor); + this.oldInterceptor = oldInterceptor; + } + + private boolean isApplicable(Class type, JSONObject json) { + if (Modifier.isAbstract(type.getModifiers())) { + LOGGER.log(Level.FINER, "ignoring abstract {0} {1}", new Object[] {type.getName(), json}); + return false; + } + if (!Describable.class.isAssignableFrom(type)) { + LOGGER.log(Level.FINER, "ignoring non-Describable {0} {1}", new Object[] {type.getName(), json}); + return false; + } + if (processed.containsKey(json)) { + LOGGER.log(Level.FINER, "already processed {0} {1}", new Object[] {type.getName(), json}); + return false; + } + return true; + } + + @Override + public Object instantiate(Class actualType, JSONObject json) { + if (isApplicable(actualType, json)) { + LOGGER.log(Level.FINE, "switching to newInstance {0} {1}", new Object[] {actualType.getName(), json}); + try { + return Jenkins.getActiveInstance().getDescriptor(actualType).newInstance(Stapler.getCurrentRequest(), json); + } catch (Exception x) { + LOGGER.log(Level.WARNING, "falling back to default instantiation " + actualType.getName() + " " + json, x); + // If nested objects are not using newInstance, bindJSON will wind up throwing the same exception anyway, + // so logging above will result in a duplicated stack trace. + // However if they *are* then this is the only way to find errors in that newInstance. + // Normally oldInterceptor.instantiate will just return DEFAULT, not actually do anything, + // so we cannot try calling the default instantiation and then decide which problem to report. + } + } + return oldInterceptor.instantiate(actualType, json); + } + + @Override + public Object onConvert(Type targetType, Class targetTypeErasure, Object jsonSource) { + if (jsonSource instanceof JSONObject) { + JSONObject json = (JSONObject) jsonSource; + if (isApplicable(targetTypeErasure, json)) { + LOGGER.log(Level.FINE, "switching to newInstance {0} {1}", new Object[] {targetTypeErasure.getName(), json}); + try { + return Jenkins.getActiveInstance().getDescriptor(targetTypeErasure).newInstance(Stapler.getCurrentRequest(), json); + } catch (Exception x) { + LOGGER.log(Level.WARNING, "falling back to default instantiation " + targetTypeErasure.getName() + " " + json, x); + } + } + } else { + LOGGER.log(Level.FINER, "ignoring non-object {0}", jsonSource); + } + return oldInterceptor.onConvert(targetType, targetTypeErasure, jsonSource); + } + + } + /** * Look out for a typical error a plugin developer makes. * See http://hudson.361315.n4.nabble.com/Help-Hint-needed-Post-build-action-doesn-t-stay-activated-td2308833.html diff --git a/core/src/main/java/hudson/model/DirectoryBrowserSupport.java b/core/src/main/java/hudson/model/DirectoryBrowserSupport.java index 16dacc90a2..8be60142d0 100644 --- a/core/src/main/java/hudson/model/DirectoryBrowserSupport.java +++ b/core/src/main/java/hudson/model/DirectoryBrowserSupport.java @@ -47,6 +47,8 @@ import jenkins.util.VirtualFile; import org.apache.commons.io.IOUtils; import org.apache.tools.zip.ZipEntry; import org.apache.tools.zip.ZipOutputStream; +import org.kohsuke.accmod.Restricted; +import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; @@ -309,6 +311,17 @@ public final class DirectoryBrowserSupport implements HttpResponse { // pseudo file name to let the Stapler set text/plain rsp.serveFile(req, in, lastModified, -1, length, "plain.txt"); } else { + String csp = System.getProperty(DirectoryBrowserSupport.class.getName() + ".CSP"); + if (csp == null) { + // default value unless overridden with system property + csp = DEFAULT_CSP_VALUE; + } + if (!csp.trim().equals("")) { + // allow users to prevent sending this header by setting empty system property + for (String header : new String[]{"Content-Security-Policy", "X-WebKit-CSP", "X-Content-Security-Policy"}) { + rsp.setHeader(header, csp); + } + } rsp.serveFile(req, in, lastModified, -1, length, baseFile.getName() ); } } @@ -576,4 +589,7 @@ public final class DirectoryBrowserSupport implements HttpResponse { private static final Logger LOGGER = Logger.getLogger(DirectoryBrowserSupport.class.getName()); + + @Restricted(NoExternalUse.class) + public static final String DEFAULT_CSP_VALUE = "sandbox; default-src 'none'; img-src 'self'; style-src 'self';"; } diff --git a/core/src/main/java/hudson/model/JobProperty.java b/core/src/main/java/hudson/model/JobProperty.java index d664fe8e82..2c982286e4 100644 --- a/core/src/main/java/hudson/model/JobProperty.java +++ b/core/src/main/java/hudson/model/JobProperty.java @@ -25,7 +25,6 @@ package hudson.model; import hudson.ExtensionPoint; import hudson.Launcher; -import hudson.Plugin; import hudson.model.Descriptor.FormException; import hudson.model.queue.SubTask; import hudson.tasks.BuildStep; @@ -49,7 +48,7 @@ import javax.annotation.Nonnull; * Extensible property of {@link Job}. * *

- * {@link Plugin}s can extend this to define custom properties + * Plugins can extend this to define custom properties * for {@link Job}s. {@link JobProperty}s show up in the user * configuration screen, and they are persisted with the job object. * diff --git a/core/src/main/java/hudson/model/Node.java b/core/src/main/java/hudson/model/Node.java index bdb4f8660f..ac3f069945 100644 --- a/core/src/main/java/hudson/model/Node.java +++ b/core/src/main/java/hudson/model/Node.java @@ -57,6 +57,7 @@ import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; +import java.util.concurrent.atomic.AtomicReference; import java.util.logging.Logger; import javax.annotation.CheckForNull; import javax.annotation.Nonnull; @@ -470,10 +471,13 @@ public abstract class Node extends AbstractModelObject implements Reconfigurable if (form==null) return null; final JSONObject jsonForProperties = form.optJSONObject("nodeProperties"); - BindInterceptor old = req.setBindListener(new BindInterceptor() { + final AtomicReference old = new AtomicReference<>(); + old.set(req.setBindListener(new BindInterceptor() { @Override public Object onConvert(Type targetType, Class targetTypeErasure, Object jsonSource) { - if (jsonForProperties!=jsonSource) return DEFAULT; + if (jsonForProperties != jsonSource) { + return old.get().onConvert(targetType, targetTypeErasure, jsonSource); + } try { DescribableList, NodePropertyDescriptor> tmp = new DescribableList, NodePropertyDescriptor>(Saveable.NOOP,getNodeProperties().toList()); @@ -485,12 +489,12 @@ public abstract class Node extends AbstractModelObject implements Reconfigurable throw new IllegalArgumentException(e); } } - }); + })); try { return getDescriptor().newInstance(req, form); } finally { - req.setBindListener(old); + req.setBindListener(old.get()); } } diff --git a/core/src/main/java/hudson/model/PageDecorator.java b/core/src/main/java/hudson/model/PageDecorator.java index 550db5805d..5411b346b5 100644 --- a/core/src/main/java/hudson/model/PageDecorator.java +++ b/core/src/main/java/hudson/model/PageDecorator.java @@ -24,7 +24,6 @@ package hudson.model; import hudson.ExtensionPoint; -import hudson.Plugin; import hudson.Extension; import hudson.ExtensionList; import hudson.util.DescriptorList; @@ -45,7 +44,7 @@ import java.util.List; * *

Life-cycle

*

- * {@link Plugin}s that contribute this extension point + * Plugins that contribute this extension point * should implement a new decorator and put {@link Extension} on the class. * *

Associated Views

diff --git a/core/src/main/java/hudson/model/Queue.java b/core/src/main/java/hudson/model/Queue.java index f66303efa5..4f783ff8b9 100644 --- a/core/src/main/java/hudson/model/Queue.java +++ b/core/src/main/java/hudson/model/Queue.java @@ -64,6 +64,8 @@ import hudson.model.queue.CauseOfBlockage.BecauseNodeIsOffline; import hudson.model.queue.CauseOfBlockage.BecauseLabelIsOffline; import hudson.model.queue.CauseOfBlockage.BecauseNodeIsBusy; import hudson.model.queue.WorkUnitContext; +import hudson.security.AccessControlled; +import hudson.security.Permission; import jenkins.security.QueueItemAuthenticatorProvider; import jenkins.util.Timer; import hudson.triggers.SafeTimerTask; @@ -783,25 +785,26 @@ public class Queue extends ResourceController implements Saveable { List r = new ArrayList(); for(WaitingItem p : s.waitingList) { - r = filterItemListBasedOnPermissions(r, p); + r = checkPermissionsAndAddToList(r, p); } for (BlockedItem p : s.blockedProjects){ - r = filterItemListBasedOnPermissions(r, p); + r = checkPermissionsAndAddToList(r, p); } for (BuildableItem p : reverse(s.buildables)) { - r = filterItemListBasedOnPermissions(r, p); + r = checkPermissionsAndAddToList(r, p); } for (BuildableItem p : reverse(s.pendings)) { - r= filterItemListBasedOnPermissions(r, p); + r= checkPermissionsAndAddToList(r, p); } Item[] items = new Item[r.size()]; r.toArray(items); return items; } - private List filterItemListBasedOnPermissions(List r, Item t) { - if (t.task instanceof hudson.model.Item) { - if (((hudson.model.Item)t.task).hasPermission(hudson.model.Item.READ)) { + private List checkPermissionsAndAddToList(List r, Item t) { + if (t.task instanceof hudson.security.AccessControlled) { + if (((hudson.security.AccessControlled)t.task).hasPermission(hudson.model.Item.READ) + || ((hudson.security.AccessControlled) t.task).hasPermission(hudson.security.Permission.READ)) { r.add(t); } } @@ -1436,9 +1439,13 @@ public class Queue extends ResourceController implements Saveable { // we need to clear lost pendings as we cannot know what work unit was on this executor // while it is interrupted. (All this dancing is a result of Executor extending Thread) lostPendings.clear(); // we'll get them next time around when the flag is cleared. + LOGGER.log(Level.FINEST, + "Interrupt thread for executor {0} is set and we do not know what work unit was on the executor.", + e.getDisplayName()); continue; } if (e.isParking()) { + LOGGER.log(Level.FINEST, "{0} is parking and is waiting for a job to execute.", e.getDisplayName()); parked.put(e, new JobOffer(e)); } final WorkUnit workUnit = e.getCurrentWorkUnit(); @@ -1470,7 +1477,13 @@ public class Queue extends ResourceController implements Saveable { Collections.sort(blockedItems, QueueSorter.DEFAULT_BLOCKED_ITEM_COMPARATOR); } for (BlockedItem p : blockedItems) { + String taskDisplayName = p.task.getFullDisplayName(); + LOGGER.log(Level.FINEST, "Current blocked item: {0}", taskDisplayName); if (!isBuildBlocked(p) && allowNewBuildableTask(p.task)) { + LOGGER.log(Level.FINEST, + "BlockedItem {0}: blocked -> buildable as the build is not blocked and new tasks are allowed", + taskDisplayName); + // ready to be executed Runnable r = makeBuildable(new BuildableItem(p)); if (r != null) { @@ -1489,17 +1502,22 @@ public class Queue extends ResourceController implements Saveable { while (!waitingList.isEmpty()) { WaitingItem top = peek(); - if (top.timestamp.compareTo(new GregorianCalendar()) > 0) + if (top.timestamp.compareTo(new GregorianCalendar()) > 0) { + LOGGER.log(Level.FINEST, "Finished moving all ready items from queue."); break; // finished moving all ready items from queue + } top.leave(this); Task p = top.task; if (!isBuildBlocked(top) && allowNewBuildableTask(p)) { // ready to be executed immediately Runnable r = makeBuildable(new BuildableItem(top)); + String topTaskDisplayName = top.task.getFullDisplayName(); if (r != null) { + LOGGER.log(Level.FINEST, "Executing runnable {0}", topTaskDisplayName); r.run(); } else { + LOGGER.log(Level.FINEST, "Item {0} was unable to be made a buildable and is now a blocked item.", topTaskDisplayName); new BlockedItem(top).enter(this); } } else { @@ -1529,19 +1547,27 @@ public class Queue extends ResourceController implements Saveable { continue; } + String taskDisplayName = p.task.getFullDisplayName(); + if (p.task instanceof FlyweightTask) { Runnable r = makeFlyWeightTaskBuildable(new BuildableItem(p)); if (r != null) { p.leave(this); + LOGGER.log(Level.FINEST, "Executing flyweight task {0}", taskDisplayName); r.run(); updateSnapshot(); } } else { List candidates = new ArrayList(parked.size()); - for (JobOffer j : parked.values()) - if (j.canTake(p)) + for (JobOffer j : parked.values()) { + if (j.canTake(p)) { + LOGGER.log(Level.FINEST, + "{0} is a potential candidate for task {1}", + new Object[]{j.executor.getDisplayName(), taskDisplayName}); candidates.add(j); + } + } MappingWorksheet ws = new MappingWorksheet(p, candidates); Mapping m = loadBalancer.map(p.task, ws); @@ -1556,14 +1582,16 @@ public class Queue extends ResourceController implements Saveable { // found a matching executor. use it. WorkUnitContext wuc = new WorkUnitContext(p); + LOGGER.log(Level.FINEST, "Found a matching executor for {0}. Using it.", taskDisplayName); m.execute(wuc); p.leave(this); if (!wuc.getWorkUnits().isEmpty()) { + LOGGER.log(Level.FINEST, "BuildableItem {0} marked as pending.", taskDisplayName); makePending(p); } else - LOGGER.log(Level.FINE, "BuildableItem {0} with empty work units!?", p); + LOGGER.log(Level.FINEST, "BuildableItem {0} with empty work units!?", p); // Ensure that identification of blocked tasks is using the live state: JENKINS-27708 & JENKINS-27871 // The creation of a snapshot itself should be relatively cheap given the expected rate of @@ -1590,10 +1618,11 @@ public class Queue extends ResourceController implements Saveable { */ private @CheckForNull Runnable makeBuildable(final BuildableItem p) { if (p.task instanceof FlyweightTask) { + String taskDisplayName = p.task.getFullDisplayName(); if (!isBlockedByShutdown(p.task)) { Runnable runnable = makeFlyWeightTaskBuildable(p); - + LOGGER.log(Level.FINEST, "Converting flyweight task: {0} into a BuildableRunnable", taskDisplayName); if(runnable != null){ return runnable; } @@ -1602,9 +1631,11 @@ public class Queue extends ResourceController implements Saveable { //if the execution gets here, it means the task could not be scheduled since the node //the task is supposed to run on is offline or not available. //Thus, the flyweighttask enters the buildables queue and will ask Jenkins to provision a node + LOGGER.log(Level.FINEST, "Flyweight task {0} is entering as buildable to provision a node.", taskDisplayName); return new BuildableRunnable(p); } // if the execution gets here, it means the task is blocked by shutdown and null is returned. + LOGGER.log(Level.FINEST, "Task {0} is blocked by shutdown.", taskDisplayName); return null; } else { // regular heavyweight task @@ -1646,6 +1677,8 @@ public class Queue extends ResourceController implements Saveable { if (n.canTake(p) != null) { continue; } + + LOGGER.log(Level.FINEST, "Creating flyweight task {0} for computer {1}", new Object[]{p.task.getFullDisplayName(), c.getName()}); return new Runnable() { @Override public void run() { c.startFlyWeightTask(new WorkUnitContext(p).createWorkUnit(p.task)); @@ -1729,6 +1762,10 @@ public class Queue extends ResourceController implements Saveable { * compatibility with future changes to this interface. * *

+ * Plugins are encouraged to implement {@link AccessControlled} otherwise + * the tasks will be hidden from display in the queue. + * + *

* For historical reasons, {@link Task} object by itself * also represents the "primary" sub-task (and as implied by this * design, a {@link Task} must have at least one sub-task.) @@ -1780,6 +1817,9 @@ public class Queue extends ResourceController implements Saveable { /** * Checks the permission to see if the current user can abort this executable. * Returns normally from this method if it's OK. + *

+ * NOTE: If you have implemented {@link AccessControlled} this should just be + * {@code checkPermission(hudson.model.Item.CANCEL);} * * @throws AccessDeniedException if the permission is not granted. */ @@ -1789,6 +1829,12 @@ public class Queue extends ResourceController implements Saveable { * Works just like {@link #checkAbortPermission()} except it indicates the status by a return value, * instead of exception. * Also used by default for {@link hudson.model.Queue.Item#hasCancelPermission}. + *

+ * NOTE: If you have implemented {@link AccessControlled} this should just be + * {@code return hasPermission(hudson.model.Item.CANCEL);} + * + * @return false + * if the user doesn't have the permission. */ boolean hasAbortPermission(); diff --git a/core/src/main/java/hudson/model/UpdateCenter.java b/core/src/main/java/hudson/model/UpdateCenter.java index c7828aeb48..5360add79e 100644 --- a/core/src/main/java/hudson/model/UpdateCenter.java +++ b/core/src/main/java/hudson/model/UpdateCenter.java @@ -55,6 +55,7 @@ import jenkins.model.Jenkins; import jenkins.util.io.OnMaster; import org.acegisecurity.Authentication; import org.acegisecurity.context.SecurityContext; +import org.apache.commons.codec.binary.Base64; import org.apache.commons.io.input.CountingInputStream; import org.apache.commons.io.output.NullOutputStream; import org.jvnet.localizer.Localizable; @@ -62,9 +63,11 @@ import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; +import javax.annotation.Nonnull; import javax.net.ssl.SSLHandshakeException; import javax.servlet.ServletException; import java.io.File; +import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; @@ -72,6 +75,10 @@ import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.net.UnknownHostException; +import java.security.DigestInputStream; +import java.security.DigestOutputStream; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; @@ -749,6 +756,15 @@ public class UpdateCenter extends AbstractModelObject implements Saveable, OnMas * @see DownloadJob */ public File download(DownloadJob job, URL src) throws IOException { + MessageDigest sha1 = null; + try { + sha1 = MessageDigest.getInstance("SHA-1"); + } catch (NoSuchAlgorithmException ignored) { + // Irrelevant as the Java spec says SHA-1 must exist. Still, if this fails + // the DownloadJob will just have computedSha1 = null and that is expected + // to be handled by caller + } + CountingInputStream in = null; OutputStream out = null; URLConnection con = null; @@ -762,6 +778,9 @@ public class UpdateCenter extends AbstractModelObject implements Saveable, OnMas File dst = job.getDestination(); File tmp = new File(dst.getPath()+".tmp"); out = new FileOutputStream(tmp); + if (sha1 != null) { + out = new DigestOutputStream(out, sha1); + } LOGGER.info("Downloading "+job.getName()); Thread t = Thread.currentThread(); @@ -775,6 +794,7 @@ public class UpdateCenter extends AbstractModelObject implements Saveable, OnMas } catch (IOException e) { throw new IOException("Failed to load "+src+" to "+tmp,e); } finally { + IOUtils.closeQuietly(out); t.setName(oldName); } @@ -785,6 +805,10 @@ public class UpdateCenter extends AbstractModelObject implements Saveable, OnMas throw new IOException("Inconsistent file length: expected "+total+" but only got "+tmp.length()); } + if (sha1 != null) { + byte[] digest = sha1.digest(); + job.computedSHA1 = Base64.encodeBase64String(digest); + } return tmp; } catch (IOException e) { // assist troubleshooting in case of e.g. "too many redirects" by printing actual URL @@ -1105,6 +1129,17 @@ public class UpdateCenter extends AbstractModelObject implements Saveable, OnMas */ protected abstract void onSuccess(); + /** + * During download, an attempt is made to compute the SHA-1 checksum of the file. + * + * @since TODO + */ + @CheckForNull + protected String getComputedSHA1() { + return computedSHA1; + } + + private String computedSHA1; private Authentication authentication; @@ -1256,6 +1291,26 @@ public class UpdateCenter extends AbstractModelObject implements Saveable, OnMas } } + /** + * If expectedSHA1 is non-null, ensure that actualSha1 is the same value, otherwise throw. + * + * Utility method for InstallationJob and HudsonUpgradeJob. + * + * @throws IOException when checksums don't match, or actual checksum was null. + */ + private void verifyChecksums(String expectedSHA1, String actualSha1, File downloadedFile) throws IOException { + if (expectedSHA1 != null) { + if (actualSha1 == null) { + // refuse to install if SHA-1 could not be computed + throw new IOException("Failed to compute SHA-1 of downloaded file, refusing installation"); + } + if (!expectedSHA1.equals(actualSha1)) { + throw new IOException("Downloaded file " + downloadedFile.getAbsolutePath() + " does not match expected SHA-1, expected '" + expectedSHA1 + "', actual '" + actualSha1 + "'"); + // keep 'downloadedFile' around for investigating what's going on + } + } + } + /** * Represents the state of the installation activity of one plugin. */ @@ -1348,18 +1403,24 @@ public class UpdateCenter extends AbstractModelObject implements Saveable, OnMas */ @Override protected void replace(File dst, File src) throws IOException { - File bak = Util.changeExtension(dst,".bak"); - + + verifyChecksums(plugin.getSha1(), getComputedSHA1(), src); + + File bak = Util.changeExtension(dst, ".bak"); bak.delete(); + final File legacy = getLegacyDestination(); - if(legacy.exists()){ - legacy.renameTo(bak); - }else{ - dst.renameTo(bak); + if (legacy.exists()) { + if (!legacy.renameTo(bak)) { + legacy.delete(); + } } - legacy.delete(); - dst.delete(); // any failure up to here is no big deal - + if (dst.exists()) { + if (!dst.renameTo(bak)) { + dst.delete(); + } + } + if(!src.renameTo(dst)) { throw new IOException("Failed to rename "+src+" to "+dst); } @@ -1477,6 +1538,8 @@ public class UpdateCenter extends AbstractModelObject implements Saveable, OnMas @Override protected void replace(File dst, File src) throws IOException { + String expectedSHA1 = site.getData().core.getSha1(); + verifyChecksums(expectedSHA1, getComputedSHA1(), src); Lifecycle.get().rewriteHudsonWar(src); } } diff --git a/core/src/main/java/hudson/model/UpdateSite.java b/core/src/main/java/hudson/model/UpdateSite.java index 57c44f0522..de3cd05406 100644 --- a/core/src/main/java/hudson/model/UpdateSite.java +++ b/core/src/main/java/hudson/model/UpdateSite.java @@ -27,7 +27,7 @@ package hudson.model; import hudson.PluginManager; import hudson.PluginWrapper; -import jenkins.util.SystemProperties; +import hudson.Util; import hudson.lifecycle.Lifecycle; import hudson.model.UpdateCenter.UpdateCenterJob; import hudson.util.FormValidation; @@ -58,6 +58,7 @@ import javax.annotation.Nonnull; import jenkins.model.Jenkins; import jenkins.model.DownloadSettings; import jenkins.util.JSONSignatureValidator; +import jenkins.util.SystemProperties; import net.sf.json.JSONException; import net.sf.json.JSONObject; import org.apache.commons.io.IOUtils; @@ -127,6 +128,8 @@ public class UpdateSite { */ private final String url; + + public UpdateSite(String id, String url) { this.id = id; this.url = url; @@ -509,6 +512,11 @@ public class UpdateSite { @Exported public final String url; + + // non-private, non-final for test + @Restricted(NoExternalUse.class) + /* final */ String sha1; + public Entry(String sourceId, JSONObject o) { this(sourceId, o, null); } @@ -517,6 +525,11 @@ public class UpdateSite { this.sourceId = sourceId; this.name = o.getString("name"); this.version = o.getString("version"); + + // Trim this to prevent issues when the other end used Base64.encodeBase64String that added newlines + // to the end in old commons-codec. Not the case on updates.jenkins-ci.org, but let's be safe. + this.sha1 = Util.fixEmptyAndTrim(o.optString("sha1")); + String url = o.getString("url"); if (!URI.create(url).isAbsolute()) { if (baseURL == null) { @@ -527,6 +540,16 @@ public class UpdateSite { this.url = url; } + /** + * The base64 encoded binary SHA-1 checksum of the file. + * Can be null if not provided by the update site. + * @since TODO + */ + // TODO @Exported assuming we want this in the API + public String getSha1() { + return sha1; + } + /** * Checks if the specified "current version" is older than the version of this entry. * diff --git a/core/src/main/java/hudson/model/UserProperty.java b/core/src/main/java/hudson/model/UserProperty.java index 3400bb27ee..0f0958d95c 100644 --- a/core/src/main/java/hudson/model/UserProperty.java +++ b/core/src/main/java/hudson/model/UserProperty.java @@ -24,7 +24,6 @@ package hudson.model; import hudson.ExtensionPoint; -import hudson.Plugin; import hudson.DescriptorExtensionList; import hudson.model.Descriptor.FormException; import jenkins.model.Jenkins; @@ -37,7 +36,7 @@ import org.kohsuke.stapler.export.ExportedBean; * Extensible property of {@link User}. * *

- * {@link Plugin}s can extend this to define custom properties + * Plugins can extend this to define custom properties * for {@link User}s. {@link UserProperty}s show up in the user * configuration screen, and they are persisted with the user object. * diff --git a/core/src/main/java/hudson/model/queue/AbstractQueueTask.java b/core/src/main/java/hudson/model/queue/AbstractQueueTask.java index d3586384f0..7a1bae3f7a 100644 --- a/core/src/main/java/hudson/model/queue/AbstractQueueTask.java +++ b/core/src/main/java/hudson/model/queue/AbstractQueueTask.java @@ -27,6 +27,7 @@ package hudson.model.queue; import hudson.model.Queue; import hudson.model.Queue.Task; import hudson.security.ACL; +import hudson.security.AccessControlled; import org.acegisecurity.Authentication; import javax.annotation.Nonnull; @@ -37,6 +38,10 @@ import java.util.Collections; * Abstract base class for {@link hudson.model.Queue.Task} to protect plugins * from new additions to the interface. * + *

+ * Plugins are encouraged to implement {@link AccessControlled} otherwise + * the tasks will be hidden from display in the queue. + * * @author Kohsuke Kawaguchi * @since 1.360 */ diff --git a/core/src/main/java/hudson/security/csrf/CrumbFilter.java b/core/src/main/java/hudson/security/csrf/CrumbFilter.java index 9cecfa5daa..8e0fe64cb6 100644 --- a/core/src/main/java/hudson/security/csrf/CrumbFilter.java +++ b/core/src/main/java/hudson/security/csrf/CrumbFilter.java @@ -81,8 +81,8 @@ public class CrumbFilter implements Filter { LOGGER.log(Level.WARNING, "Found invalid crumb {0}. Will check remaining parameters for a valid one...", crumb); } } - // Multipart requests need to be handled by each handler. - if (valid || isMultipart(httpRequest)) { + + if (valid) { chain.doFilter(request, response); } else { LOGGER.log(Level.WARNING, "No valid crumb was included in request for {0}. Returning {1}.", new Object[] {httpRequest.getRequestURI(), HttpServletResponse.SC_FORBIDDEN}); diff --git a/core/src/main/java/hudson/tools/JDKInstaller.java b/core/src/main/java/hudson/tools/JDKInstaller.java index 3ad212a0db..9072437af8 100644 --- a/core/src/main/java/hudson/tools/JDKInstaller.java +++ b/core/src/main/java/hudson/tools/JDKInstaller.java @@ -512,7 +512,7 @@ public class JDKInstaller extends ToolInstaller { m = post; } else { - log.getLogger().println("Downloading " + m.getResponseContentLength() + "bytes"); + log.getLogger().println("Downloading " + m.getResponseContentLength() + " bytes"); // download to a temporary file and rename it in to handle concurrency and failure correctly, File tmp = new File(cache.getPath()+".tmp"); diff --git a/core/src/main/java/hudson/triggers/TimerTrigger.java b/core/src/main/java/hudson/triggers/TimerTrigger.java index 1925f00b90..c2a3ee4574 100644 --- a/core/src/main/java/hudson/triggers/TimerTrigger.java +++ b/core/src/main/java/hudson/triggers/TimerTrigger.java @@ -34,7 +34,10 @@ import hudson.scheduler.CronTabList; import hudson.scheduler.Hash; import hudson.util.FormValidation; import java.text.DateFormat; +import java.util.ArrayList; import java.util.Calendar; +import java.util.Collection; + import org.kohsuke.stapler.AncestorInPath; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.QueryParameter; @@ -83,22 +86,32 @@ public class TimerTrigger extends Trigger { public FormValidation doCheckSpec(@QueryParameter String value, @AncestorInPath Item item) { try { CronTabList ctl = CronTabList.create(fixNull(value), item != null ? Hash.from(item.getFullName()) : null); - String msg = ctl.checkSanity(); - if(msg!=null) return FormValidation.warning(msg); - Calendar prev = ctl.previous(); - Calendar next = ctl.next(); - if (prev != null && next != null) { - DateFormat fmt = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL); - return FormValidation.ok(Messages.TimerTrigger_would_last_have_run_at_would_next_run_at(fmt.format(prev.getTime()), fmt.format(next.getTime()))); - } else { - return FormValidation.warning(Messages.TimerTrigger_no_schedules_so_will_never_run()); - } + Collection validations = new ArrayList<>(); + updateValidationsForSanity(validations, ctl); + updateValidationsForNextRun(validations, ctl); + return FormValidation.aggregate(validations); } catch (ANTLRException e) { if (value.trim().indexOf('\n')==-1 && value.contains("**")) return FormValidation.error(Messages.TimerTrigger_MissingWhitespace()); return FormValidation.error(e.getMessage()); } } + + private void updateValidationsForSanity(Collection validations, CronTabList ctl) { + String msg = ctl.checkSanity(); + if(msg!=null) validations.add(FormValidation.warning(msg)); + } + + private void updateValidationsForNextRun(Collection validations, CronTabList ctl) { + Calendar prev = ctl.previous(); + Calendar next = ctl.next(); + if (prev != null && next != null) { + DateFormat fmt = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL); + validations.add(FormValidation.ok(Messages.TimerTrigger_would_last_have_run_at_would_next_run_at(fmt.format(prev.getTime()), fmt.format(next.getTime())))); + } else { + validations.add(FormValidation.warning(Messages.TimerTrigger_no_schedules_so_will_never_run())); + } + } } public static class TimerTriggerCause extends Cause { diff --git a/core/src/main/java/jenkins/security/s2m/MasterKillSwitchConfiguration.java b/core/src/main/java/jenkins/security/s2m/MasterKillSwitchConfiguration.java index c5b23e5290..69bb8e34bc 100644 --- a/core/src/main/java/jenkins/security/s2m/MasterKillSwitchConfiguration.java +++ b/core/src/main/java/jenkins/security/s2m/MasterKillSwitchConfiguration.java @@ -1,8 +1,6 @@ package jenkins.security.s2m; import hudson.Extension; -import hudson.ExtensionList; -import hudson.ExtensionPoint; import javax.inject.Inject; import jenkins.model.GlobalConfiguration; import jenkins.model.GlobalConfigurationCategory; @@ -48,45 +46,7 @@ public class MasterKillSwitchConfiguration extends GlobalConfiguration { * Unless this option is relevant, we don't let users choose this. */ public boolean isRelevant() { - if (rule.getMasterKillSwitch()) { - return true; // always relevant if it is enabled. - } - return jenkins.isUseSecurity() // if security is off, there's no point - && (jenkins.getComputers().length>1 // if there's no slave, - || !jenkins.clouds.isEmpty() // and no clouds, likewise this is pointless - || Relevance.fromExtension() // unless a plugin thinks otherwise - ) - ; - } - - /** - * Some plugins may cause the {@link MasterKillSwitchConfiguration} to be relevant for additional reasons, - * by implementing this extension point they can indicate such additional conditions. - * - * @since FIXME - */ - public static abstract class Relevance implements ExtensionPoint { - - /** - * Is the {@link MasterKillSwitchConfiguration} relevant. - * - * @return {@code true} if the {@link MasterKillSwitchConfiguration} relevant. - */ - public abstract boolean isRelevant(); - - /** - * Is the {@link MasterKillSwitchConfiguration} relevant for any of the {@link Relevance} extensions. - * - * @return {@code true} if and only if {@link Relevance#isRelevant()} for at least one extension. - */ - public static boolean fromExtension() { - for (Relevance r : ExtensionList.lookup(Relevance.class)) { - if (r.isRelevant()) { - return true; - } - } - return false; - } + return jenkins.hasPermission(Jenkins.RUN_SCRIPTS) && jenkins.isUseSecurity(); } } diff --git a/core/src/main/resources/hudson/Messages_bg.properties b/core/src/main/resources/hudson/Messages_bg.properties new file mode 100644 index 0000000000..3f7b19a557 --- /dev/null +++ b/core/src/main/resources/hudson/Messages_bg.properties @@ -0,0 +1,108 @@ +# The MIT License +# +# Bulgarian translation copyright 2015 Alexander Shopov . +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +FilePath.did_not_manage_to_validate_may_be_too_sl=\ + \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430\u0442\u0430 \u043d\u0430 \u201e{0}\u201c \u043d\u0435 \u0435 \u0437\u0430\u0432\u044a\u0440\u0448\u0438\u043b\u0430, \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440\u044a\u0442 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0435 \u043f\u0440\u0435\u043a\u0430\u043b\u0435\u043d\u043e \u0431\u0430\u0432\u0435\u043d. +FilePath.validateAntFileMask.whitespaceSeprator=\ + \u041f\u0440\u0430\u0437\u043d\u0438\u0442\u0435 \u0437\u043d\u0430\u0446\u0438 \u0432\u0435\u0447\u0435 \u043d\u0435 \u0441\u0435 \u043f\u043e\u043b\u0437\u0432\u0430\u0442 \u0437\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u0438. \u041f\u043e\u043b\u0437\u0432\u0430\u0439\u0442\u0435 \u0437\u0430\u043f\u0435\u0442\u0430\u044f \u2014 \u201e,\u201c. +FilePath.validateAntFileMask.doesntMatchAndSuggest=\ + \u201e{0}\u201c \u043d\u0435 \u0441\u044a\u0432\u043f\u0430\u0434\u0430 \u0441 \u043d\u0438\u0449\u043e, \u043d\u043e \u201e{1}\u201c \u0441\u044a\u0432\u043f\u0430\u0434\u0430. \u0422\u043e\u0432\u0430 \u043b\u0438 \u0438\u043c\u0430\u0445\u0442\u0435 \u043f\u0440\u0435\u0434\u0432\u0438\u0434? +FilePath.validateAntFileMask.portionMatchAndSuggest=\ + \u201e{0}\u201c \u043d\u0435 \u0441\u044a\u0432\u043f\u0430\u0434\u0430 \u0441 \u043d\u0438\u0449\u043e, \u043d\u043e \u201e{1}\u201c \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430. +FilePath.validateAntFileMask.portionMatchButPreviousNotMatchAndSuggest=\ + \u201e{0}\u201c \u043d\u0435 \u0441\u044a\u0432\u043f\u0430\u0434\u0430 \u0441 \u043d\u0438\u0449\u043e: \u201e{1}\u201c \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430, \u043d\u043e \u043d\u0435 \u0438 \u201e{1}\u201c. +FilePath.validateAntFileMask.doesntMatchAnything=\ + \u201e{0}\u201c \u043d\u0435 \u0441\u044a\u0432\u043f\u0430\u0434\u0430 \u0441 \u043d\u0438\u0449\u043e. +FilePath.validateAntFileMask.matchWithCaseInsensitive=\ + \u201e{0}\u201c \u043d\u0435 \u0441\u044a\u0432\u043f\u0430\u0434\u0430 \u0441 \u043d\u0438\u0449\u043e, \u0437\u0430\u0449\u043e\u0442\u043e \u043f\u0440\u0430\u0432\u0438 \u0440\u0430\u0437\u043b\u0438\u043a\u0430 \u043c\u0435\u0436\u0434\u0443 \u0433\u043b\u0430\u0432\u043d\u0438 \u0438 \u043c\u0430\u043b\u043a\u0438 \u0431\u0443\u043a\u0432\u0438.\ + \u041c\u043e\u0436\u0435 \u0434\u0430 \u0438\u0437\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0432\u0430\u043d\u0435\u0442\u043e, \u0437\u0430 \u0434\u0430 \u0438\u043c\u0430 \u0441\u044a\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f. +FilePath.validateAntFileMask.doesntMatchAnythingAndSuggest=\ + \u201e{0}\u201c \u043d\u0435 \u0441\u044a\u0432\u043f\u0430\u0434\u0430 \u0441 \u043d\u0438\u0449\u043e, \u0434\u043e\u0440\u0438 \u0438 \u201e{1}\u201c \u043d\u0435 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430. + +FilePath.validateRelativePath.wildcardNotAllowed=\ + \u0417\u043d\u0430\u043a\u044a\u0442 \u201e*\u201c \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u043f\u043e\u043b\u0437\u0432\u0430 +FilePath.validateRelativePath.notFile=\ + \u201e{0}\u201c \u043d\u0435 \u0435 \u0444\u0430\u0439\u043b +FilePath.validateRelativePath.notDirectory=\ + \u201e{0}\u201c \u043d\u0435 \u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f +FilePath.validateRelativePath.noSuchFile=\ + \u041b\u0438\u043f\u0441\u0432\u0430 \u0444\u0430\u0439\u043b \u201e{0}\u201c +FilePath.validateRelativePath.noSuchDirectory=\ + \u041b\u0438\u043f\u0441\u0432\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u201e{0}\u201c + +PluginManager.PluginDoesntSupportDynamicLoad.RestartRequired=\ + \u041f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430\u0442\u0430 \u201e{0}\u201c \u043d\u0435 \u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u043d\u043e \u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435. \u041f\u0440\u043e\u043c\u044f\u043d\u0430\u0442\u0430 \u043d\u0430\u043b\u0430\u0433\u0430\ + \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 Jenkins. +PluginManager.PluginIsAlreadyInstalled.RestartRequired=\ + \u041f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430\u0442\u0430 \u201e{0}\u201c \u0432\u0435\u0447\u0435 \u0435 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0430. \u041f\u0440\u043e\u043c\u044f\u043d\u0430\u0442\u0430 \u043d\u0430\u043b\u0430\u0433\u0430 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 Jenkins +Util.millisecond=\ + {0} {0,choice,0#\u043c\u0438\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u0438|1#\u043c\u0438\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u0430|1<\u043c\u0438\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u0438} +Util.second=\ + {0} {0,choice,0#\u0441\u0435\u043a\u0443\u043d\u0434\u0438|1#\u0441\u0435\u043a\u0443\u043d\u0434\u0430|1\u0441\u0435\u043a\u0443\u043d\u0434\u0438} +Util.minute=\ + {0} {0,choice,0#\u043c\u0438\u043d\u0443\u0442\u0438|1#\u043c\u0438\u043d\u0443\u0442\u0430|1<\u043c\u0438\u043d\u0443\u0442\u0438} +Util.hour =\ + {0} {0,choice,0#\u0447\u0430\u0441\u0430|1#\u0447\u0430\u0441|1<\u0447\u0430\u0441\u0430} +Util.day =\ + {0} {0,choice,0#\u0434\u043d\u0438|1#\u0434\u0435\u043d|1<\u0434\u043d\u0438} +Util.month =\ + {0} {0,choice,0#\u043c\u0435\u0441\u0435\u0446\u0430|1#\u043c\u0435\u0441\u0435\u0446|1<\u043c\u0435\u0441\u0435\u0446\u0430} +Util.year =\ + {0} {0,choice,0#\u0433\u043e\u0434\u0438\u043d\u0438|1#\u0433\u043e\u0434\u0438\u043d\u0430|1<\u0433\u043e\u0434\u0438\u043d\u0438} + +# ideally it should be "{0} ago" but this saves more space +# another implication of this is that where we use this, +# we often want to add "ago" there +Util.pastTime=\ + {0} +FilePath.TildaDoesntWork=\ + \u201e~\u201c \u0441\u0435 \u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430 \u0441\u0430\u043c\u043e \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0438\u0442\u0435 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440\u0438 \u043d\u0430 Unix \u0438 \u043d\u0438\u043a\u044a\u0434\u0435 \u0434\u0440\u0443\u0433\u0430\u0434\u0435. + +PluginManager.DisplayName=\ + \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438 +PluginManager.PortNotANumber=\ + \u0421\u0442\u043e\u0439\u043d\u043e\u0441\u0442\u0442\u0430 \u0437\u0430 \u043f\u043e\u0440\u0442\u0430 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0435 \u0447\u0438\u0441\u043b\u043e +PluginManager.PortNotInRange=\ + \u0421\u0442\u043e\u0439\u043d\u043e\u0441\u0442\u0442\u0430 \u0437\u0430 \u043f\u043e\u0440\u0442\u0430 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0435 \u0432 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 [{0}; {1}] +PluginManager.UploadPluginsPermission.Description=\ + \u041f\u0440\u0430\u0432\u043e\u0442\u043e \u0437\u0430 \u043a\u0430\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438 \u0434\u0430\u0432\u0430 \u0432\u044a\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442 \u043d\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u044f \u0434\u0430 \u043a\u0430\u0447\u0438\ + \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430. +PluginManager.ConfigureUpdateCenterPermission.Description=\ + \u041f\u0440\u0430\u0432\u043e\u0442\u043e \u0437\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u0432\u0430\u043d\u0435 \u0434\u0430\u0432\u0430 \u0432\u044a\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442 \u043d\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u044f \u0434\u0430 \u043f\u0440\u043e\u043c\u0435\u043d\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u0442\u0435\ + \u043d\u0430 \u0441\u0430\u0439\u0442\u043e\u0432\u0435\u0442\u0435 \u0438 \u0441\u044a\u0440\u0432\u044a\u0440\u0430-\u043f\u043e\u0441\u0440\u0435\u0434\u043d\u0438\u043a. + +AboutJenkins.DisplayName=\ + \u041e\u0442\u043d\u043e\u0441\u043d\u043e Jenkins +AboutJenkins.Description=\ + \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u0432\u0435\u0440\u0441\u0438\u044f\u0442\u0430 \u0438 \u043b\u0438\u0446\u0435\u043d\u0437\u0430. + +ProxyConfiguration.TestUrlRequired=\ + \u0418\u0437\u0438\u0441\u043a\u0432\u0430 \u0441\u0435 \u0430\u0434\u0440\u0435\u0441 \u0437\u0430 \u043f\u0440\u043e\u0431\u0430. +ProxyConfiguration.FailedToConnectViaProxy=\ + \u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435 \u043a\u044a\u043c \u201e{0}\u201c. +ProxyConfiguration.FailedToConnect=\ + \u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0430 \u043a\u044a\u043c \u201e{0}\u201c (\u043a\u043e\u0434: {1}). +ProxyConfiguration.Success=\ + \u0423\u0441\u043f\u0435\u0445 + +Functions.NoExceptionDetails=\ + \u041d\u044f\u043c\u0430 \u0434\u043e\u043f\u044a\u043b\u043d\u0438\u0442\u0435\u043b\u043d\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u0438\u0437\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u0442\u043e. diff --git a/core/src/main/resources/hudson/cli/Messages.properties b/core/src/main/resources/hudson/cli/Messages.properties index 1db074afcf..3f73403341 100644 --- a/core/src/main/resources/hudson/cli/Messages.properties +++ b/core/src/main/resources/hudson/cli/Messages.properties @@ -85,3 +85,4 @@ DeleteNodeCommand.ShortDescription=Deletes node(s) ReloadJobCommand.ShortDescription=Reload job(s) +OnlineNodeCommand.ShortDescription=Resume using a node for performing builds, to cancel out the earlier "offline-node" command. diff --git a/core/src/main/resources/hudson/cli/Messages_bg.properties b/core/src/main/resources/hudson/cli/Messages_bg.properties new file mode 100644 index 0000000000..c218a653cf --- /dev/null +++ b/core/src/main/resources/hudson/cli/Messages_bg.properties @@ -0,0 +1,124 @@ +# The MIT License +# +# Bulgarian translation copyright 2015 Alexander Shopov . +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +InstallPluginCommand.DidYouMean=\ + \u201e{0}\u201c \u0435 \u043a\u0440\u0430\u0442\u043a\u043e \u0438\u043c\u0435 \u0437\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430. \u201e{1}\u201c \u043b\u0438 \u0438\u043c\u0430\u0442\u0435 \u043f\u0440\u0435\u0434\u0432\u0438\u0434? +InstallPluginCommand.InstallingFromUpdateCenter=\ + \u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430\u0442\u0430 \u201e{0}\u201c \u043e\u0442 \u0441\u0430\u0439\u0442\u0430 \u0437\u0430 \u043e\u0431\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 +InstallPluginCommand.InstallingPluginFromLocalFile=\ + \u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430 \u043e\u0442 \u043b\u043e\u043a\u0430\u043b\u0435\u043d \u0444\u0430\u0439\u043b \u201e{0}\u201c +InstallPluginCommand.InstallingPluginFromUrl=\ + \u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430 \u043e\u0442 \u0430\u0434\u0440\u0435\u0441 \u201e{0}\u201c +InstallPluginCommand.NoUpdateCenterDefined=\ + \u041d\u0435 \u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d \u0441\u0430\u0439\u0442 \u0437\u0430 \u043e\u0431\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u0432 \u0442\u0430\u0437\u0438 \u0438\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u044f \u043d\u0430 Jenkins. +InstallPluginCommand.NoUpdateDataRetrieved=\ + \u0412\u0441\u0435 \u043e\u0449\u0435 \u043d\u0435 \u0441\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438 \u043d\u0438\u043a\u0430\u043a\u0432\u0438 \u0434\u0430\u043d\u043d\u0438 \u043e\u0442 \u0446\u0435\u043d\u0442\u044a\u0440\u0430 \u0437\u0430 \u043e\u0431\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435: {0} +InstallPluginCommand.NotAValidSourceName=\ + \u201e{0}\u201c \u043d\u0435 \u0435 \u043d\u0438\u0442\u043e \u0444\u0430\u0439\u043b \u0441 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430, \u043d\u0438\u0442\u043e \u0430\u0434\u0440\u0435\u0441, \u043d\u0438\u0442\u043e \u0438\u043c\u0435 \u043d\u0430 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442 \u043e\u0442 \u0441\u0430\u0439\u0442\u0430 \u0437\u0430\ + \u043e\u0431\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435. + +AddJobToViewCommand.ShortDescription=\ + \u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u043a\u044a\u043c \u0438\u0437\u0433\u043b\u0435\u0434. +BuildCommand.ShortDescription=\ + \u0418\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0438 \u0438\u0437\u0447\u0430\u043a\u0432\u0430\u043d\u0435 \u043d\u0430 \u0437\u0430\u0432\u044a\u0440\u0448\u0432\u0430\u043d\u0435\u0442\u043e \u045d (\u043f\u043e \u0438\u0437\u0431\u043e\u0440). +ConsoleCommand.ShortDescription=\ + \u0418\u0437\u0432\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u0445\u043e\u0434\u0430 \u043e\u0442 \u0437\u0430\u0434\u0430\u0447\u0430 \u043a\u044a\u043c \u043a\u043e\u043d\u0437\u043e\u043b\u0430\u0442\u0430. +CopyJobCommand.ShortDescription=\ + \u041a\u043e\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0437\u0430\u0434\u0430\u0447\u0430. +CreateJobCommand.ShortDescription=\ + \u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043d\u043e\u0432\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u043d\u0430 \u0431\u0430\u0437\u0430\u0442\u0430 \u043d\u0430 \u043f\u0440\u043e\u0447\u0435\u0442\u0435\u043d\u043e\u0442\u043e \u043e\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438\u044f \u0432\u0445\u043e\u0434 \u0432\u044a\u0432\ + \u0444\u043e\u0440\u043c\u0430\u0442 XML. +CreateNodeCommand.ShortDescription=\ + \u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043d\u043e\u0432\u0430 \u043c\u0430\u0448\u0438\u043d\u0430 \u043d\u0430 \u0431\u0430\u0437\u0430\u0442\u0430 \u043d\u0430 \u043f\u0440\u043e\u0447\u0435\u0442\u0435\u043d\u043e\u0442\u043e \u043e\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438\u044f \u0432\u0445\u043e\u0434 \u0432\u044a\u0432\ + \u0444\u043e\u0440\u043c\u0430\u0442 XML. +DeleteBuildsCommand.ShortDescription=\ + \u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430\u0442\u0430 \u0437\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u044f\u0442\u0430. +DeleteViewCommand.ShortDescription=\ + \u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u0433\u043b\u0435\u0434\u0438. +DeleteJobCommand.ShortDescription=\ + \u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u0437\u0430\u0434\u0430\u0447\u0438. +GroovyCommand.ShortDescription=\ + \u0418\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u043a\u0440\u0438\u043f\u0442 \u043d\u0430 Groovy. +GroovyshCommand.ShortDescription=\ + \u0418\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u0435\u043d \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440 \u043d\u0430 Groovy. +HelpCommand.ShortDescription=\ + \u0418\u0437\u0432\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0438 \u0438\u043b\u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430. +InstallPluginCommand.ShortDescription=\ + \u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430 \u043e\u0442 \u0444\u0430\u0439\u043b, \u0430\u0434\u0440\u0435\u0441 \u0438\u043b\u0438 \u0446\u0435\u043d\u0442\u044a\u0440\u0430 \u0437\u0430 \u043e\u0431\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435. +InstallToolCommand.ShortDescription=\ + \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0438 \u0438\u0437\u0432\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0442\u043e \u043c\u0443 \u043d\u0430\ + \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438\u044f \u0438\u0437\u0445\u043e\u0434. \u041c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0438\u0437\u0432\u0438\u043a\u0432\u0430 \u0441\u0430\u043c\u043e \u043e\u0442 \u0437\u0430\u0434\u0430\u0447\u0430. +ListChangesCommand.ShortDescription=\ + \u0418\u0437\u0432\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0436\u0443\u0440\u043d\u0430\u043b\u0430 \u0441 \u043f\u0440\u043e\u043c\u0435\u043d\u0438 \u0437\u0430 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0442\u0435 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u044f. +ListJobsCommand.ShortDescription=\ + \u0418\u0437\u0432\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d \u0438\u0437\u0433\u043b\u0435\u0434 \u0438\u043b\u0438 \u0433\u0440\u0443\u043f\u0430. +ListPluginsCommand.ShortDescription=\ + \u0418\u0437\u0432\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0441\u043f\u0438\u0441\u044a\u043a\u0430 \u0441 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0438\u0442\u0435 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438. +LoginCommand.ShortDescription=\ + \u0417\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0438\u0442\u0435 \u0434\u0430\u043d\u043d\u0438 \u0437\u0430 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f, \u0437\u0430 \u0434\u0430 \u043c\u043e\u0433\u0430\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u0432\u0430\u0449\u0438\u0442\u0435\ + \u043a\u043e\u043c\u0430\u043d\u0434\u0438 \u0434\u0430 \u0441\u0435 \u0438\u0437\u043f\u044a\u043b\u043d\u044f\u0432\u0430\u0442, \u0431\u0435\u0437 \u0442\u0435\u0437\u0438 \u0434\u0430\u043d\u043d\u0438 \u0434\u0430 \u0441\u0435 \u0432\u044a\u0432\u0435\u0436\u0434\u0430\u0442 \u043d\u0430\u043d\u043e\u0432\u043e. +LogoutCommand.ShortDescription=\ + \u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u0434\u0430\u043d\u043d\u0438\u0442\u0435 \u0437\u0430 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f, \u0437\u0430\u043f\u0430\u0437\u0435\u043d\u0438 \u0441 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u0442\u0430 \u0437\u0430 \u0432\u043b\u0438\u0437\u0430\u043d\u0435. +MailCommand.ShortDescription=\ + \u0418\u0437\u0447\u0438\u0442\u0430\u043d\u0435 \u043d\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438\u044f \u0432\u0445\u043e\u0434 \u0438 \u0438\u0437\u043f\u0440\u0430\u0449\u0430\u043d\u0435 \u043f\u043e \u0435-\u043f\u043e\u0449\u0430. +SetBuildDescriptionCommand.ShortDescription=\ + \u0417\u0430\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u0442\u043e \u043d\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435. +SetBuildParameterCommand.ShortDescription=\ + \u041f\u0440\u043e\u043c\u044f\u043d\u0430/\u0437\u0430\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0442\u0435 \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u043e\u0442\u043e \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435. +SetBuildResultCommand.ShortDescription=\ + \u0417\u0430\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0435\u0437\u0443\u043b\u0442\u0430\u0442\u0430 \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u043e\u0442\u043e \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435. \u041c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0438\u0437\u0432\u0438\u043a\u0432\u0430 \u0441\u0430\u043c\u043e \u043e\u0442\ + \u0437\u0430\u0434\u0430\u0447\u0430. +RemoveJobFromViewCommand.ShortDescription=\ + \u0418\u0437\u0432\u0430\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u043e\u0442 \u0438\u0437\u0433\u043b\u0435\u0434. +VersionCommand.ShortDescription=\ + \u0418\u0437\u0432\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u044f\u0442\u0430 \u043d\u0430 Jenkins. +GetJobCommand.ShortDescription=\ + \u0418\u0437\u0432\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0434\u0435\u0444\u0438\u043d\u0438\u0446\u0438\u044f\u0442\u0430 \u043d\u0430 \u0437\u0430\u0434\u0430\u0447\u0430\u0442\u0430 \u0432\u044a\u0432 \u0444\u043e\u0440\u043c\u0430\u0442 XML \u043a\u044a\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438\u044f \u0438\u0437\u0445\u043e\u0434. +GetNodeCommand.ShortDescription=\ + \u0418\u0437\u0432\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0434\u0435\u0444\u0438\u043d\u0438\u0446\u0438\u044f\u0442\u0430 \u043d\u0430 \u0441\u044a\u0440\u0432\u044a\u0440 \u0432\u044a\u0432 \u0444\u043e\u0440\u043c\u0430\u0442 XML \u043a\u044a\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438\u044f \u0438\u0437\u0445\u043e\u0434. +GetViewCommand.ShortDescription=\ + \u0418\u0437\u0432\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0434\u0435\u0444\u0438\u043d\u0438\u0446\u0438\u044f\u0442\u0430 \u043d\u0430 \u0438\u0437\u0433\u043b\u0435\u0434\u0430 \u0432\u044a\u0432 \u0444\u043e\u0440\u043c\u0430\u0442 XML \u043a\u044a\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438\u044f \u0438\u0437\u0445\u043e\u0434. +SetBuildDisplayNameCommand.ShortDescription=\ + \u0417\u0430\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0438\u043c\u0435\u0442\u043e (displayName) \u043d\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435. +WhoAmICommand.ShortDescription=\ + \u0418\u0437\u0432\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0434\u0430\u043d\u043d\u0438\u0442\u0435 \u0437\u0430 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0438 \u043f\u0440\u0430\u0432\u0430\u0442\u0430. +UpdateJobCommand.ShortDescription=\ + \u041e\u0431\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0434\u0435\u0444\u0438\u043d\u0438\u0446\u0438\u044f\u0442\u0430 \u043d\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u043e\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438\u044f \u0432\u0445\u043e\u0434 \u0432\u044a\u0432 \u0444\u043e\u0440\u043c\u0430\u0442 XML.\ + \u041e\u0431\u0440\u0430\u0442\u043d\u043e\u0442\u043e \u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u0442\u0430 \u201eget-job\u201c. +UpdateNodeCommand.ShortDescription=\ + \u041e\u0431\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0434\u0435\u0444\u0438\u043d\u0438\u0446\u0438\u044f\u0442\u0430 \u043d\u0430 \u0441\u044a\u0440\u0432\u044a\u0440 \u043e\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438\u044f \u0432\u0445\u043e\u0434 \u0432\u044a\u0432 \u0444\u043e\u0440\u043c\u0430\u0442 XML.\ + \u041e\u0431\u0440\u0430\u0442\u043d\u043e\u0442\u043e \u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u0442\u0430 \u201eget-node\u201c. +SessionIdCommand.ShortDescription=\ + \u0418\u0437\u0432\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430 \u043d\u0430 \u0441\u0435\u0441\u0438\u044f\u0442\u0430. \u0422\u043e\u0439 \u0441\u0435 \u0441\u043c\u0435\u043d\u044f \u043f\u0440\u0438 \u0432\u0441\u044f\u043a\u043e \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430\ + Jenkins. +UpdateViewCommand.ShortDescription=\ + \u041e\u0431\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0434\u0435\u0444\u0438\u043d\u0438\u0446\u0438\u044f\u0442\u0430 \u043d\u0430 \u0438\u0437\u0433\u043b\u0435\u0434 \u043e\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438\u044f \u0432\u0445\u043e\u0434 \u0432\u044a\u0432 \u0444\u043e\u0440\u043c\u0430\u0442 XML.\ + \u041e\u0431\u0440\u0430\u0442\u043d\u043e\u0442\u043e \u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u0442\u0430 \u201eget-view\u201c. + +BuildCommand.CLICause.ShortDescription=\ + \u0417\u0430\u0434\u0430\u0447\u0430\u0442\u0430 \u0435 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0430 \u043e\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0438\u044f \u0440\u0435\u0434 \u043e\u0442 \u201e{0}\u201c +BuildCommand.CLICause.CannotBuildDisabled=\ + \u0417\u0430\u0434\u0430\u0447\u0430\u0442\u0430 \u201e{0}\u201c \u0435 \u0438\u0437\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u0438 \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0438\u0437\u0433\u0440\u0430\u0434\u0438. +BuildCommand.CLICause.CannotBuildConfigNotSaved=\ + \u0417\u0430\u0434\u0430\u0447\u0430\u0442\u0430 \u201e{0}\u201c \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0438\u0437\u0433\u0440\u0430\u0434\u0438, \u0437\u0430\u0449\u043e\u0442\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u0442\u0435 \u045d \u043d\u0435 \u0441\u0430 \u0437\u0430\u043f\u0430\u0437\u0435\u043d\u0438. +BuildCommand.CLICause.CannotBuildUnknownReasons=\ + \u0417\u0430\u0434\u0430\u0447\u0430\u0442\u0430 \u201e{0}\u201c \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0438\u0437\u0433\u0440\u0430\u0434\u0438 \u043f\u043e \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0438 \u043f\u0440\u0438\u0447\u0438\u043d\u0438. diff --git a/core/src/main/resources/hudson/cli/Messages_da.properties b/core/src/main/resources/hudson/cli/Messages_da.properties index 13079b94be..1bee62f87b 100644 --- a/core/src/main/resources/hudson/cli/Messages_da.properties +++ b/core/src/main/resources/hudson/cli/Messages_da.properties @@ -1,2 +1,4 @@ DeleteNodeCommand.ShortDescription=Sletter en node DeleteJobCommand.ShortDescription=Sletter et job + +OnlineNodeCommand.ShortDescription=Genoptag brugen af en byggenode, for at annullere en tidligere udstedt "offline-node" kommando. diff --git a/core/src/main/resources/hudson/cli/Messages_de.properties b/core/src/main/resources/hudson/cli/Messages_de.properties index 21643e31c7..4df178a57b 100644 --- a/core/src/main/resources/hudson/cli/Messages_de.properties +++ b/core/src/main/resources/hudson/cli/Messages_de.properties @@ -1,2 +1,4 @@ DeleteNodeCommand.ShortDescription=Knoten l\u00f6schen. DeleteJobCommand.ShortDescription=Job l\u00f6schen. + +OnlineNodeCommand.ShortDescription=Knoten wird wieder f\u00fcr neue Builds verwendet. Hebt ein vorausgegangenes "offline-node"-Kommando auf. diff --git a/core/src/main/resources/hudson/cli/Messages_es.properties b/core/src/main/resources/hudson/cli/Messages_es.properties index 4703a13dd9..b0f51daa04 100644 --- a/core/src/main/resources/hudson/cli/Messages_es.properties +++ b/core/src/main/resources/hudson/cli/Messages_es.properties @@ -50,3 +50,5 @@ SetBuildDescriptionCommand.ShortDescription=Establece la descripci DeleteJobCommand.ShortDescription=Borrar una tarea DeleteNodeCommand.ShortDescription=Borrar un nodo + +OnlineNodeCommand.ShortDescription=Continuar usando un nodo y candelar el comando "offline-node" mas reciente. diff --git a/core/src/main/resources/hudson/cli/Messages_it.properties b/core/src/main/resources/hudson/cli/Messages_it.properties index 6a79e3ab9d..c5010ed77a 100644 --- a/core/src/main/resources/hudson/cli/Messages_it.properties +++ b/core/src/main/resources/hudson/cli/Messages_it.properties @@ -1,2 +1,4 @@ DeleteNodeCommand.ShortDescription=Cancella un nodo DeleteJobCommand.ShortDescription=Cancella un job + +OnlineNodeCommand.ShortDescription=Resume using a node for performing builds, to cancel out the earlier "offline-node" command. diff --git a/core/src/main/resources/hudson/cli/Messages_ja.properties b/core/src/main/resources/hudson/cli/Messages_ja.properties index a6cdca19f4..908949a71c 100644 --- a/core/src/main/resources/hudson/cli/Messages_ja.properties +++ b/core/src/main/resources/hudson/cli/Messages_ja.properties @@ -72,3 +72,5 @@ BuildCommand.CLICause.CannotBuildUnknownReasons=\ DeleteNodeCommand.ShortDescription=\u30ce\u30fc\u30c9\u3092\u524a\u9664\u3057\u307e\u3059\u3002 DeleteJobCommand.ShortDescription=\u30b8\u30e7\u30d6\u3092\u524a\u9664\u3057\u307e\u3059\u3002 + +OnlineNodeCommand.ShortDescription=\u76f4\u524d\u306b\u5b9f\u884c\u3057\u305f"online-node"\u30b3\u30de\u30f3\u30c9\u3092\u53d6\u308a\u6d88\u3057\u3001\u30d3\u30eb\u30c9\u3092\u5b9f\u884c\u3059\u308b\u30ce\u30fc\u30c9\u306e\u4f7f\u7528\u3092\u518d\u958b\u3057\u307e\u3059\u3002 diff --git a/core/src/main/resources/hudson/cli/Messages_pt_BR.properties b/core/src/main/resources/hudson/cli/Messages_pt_BR.properties index c3a6726cde..6b924aa8de 100644 --- a/core/src/main/resources/hudson/cli/Messages_pt_BR.properties +++ b/core/src/main/resources/hudson/cli/Messages_pt_BR.properties @@ -118,3 +118,5 @@ DeleteJobCommand.ShortDescription=Remover uma job(s) ReloadJobCommand.ShortDescription=\ Recarrega job(s) do disco. + +OnlineNodeCommand.ShortDescription=Continuar usando um n\u00f3 para realizar os builds diff --git a/core/src/main/resources/hudson/diagnosis/Messages_bg.properties b/core/src/main/resources/hudson/diagnosis/Messages_bg.properties new file mode 100644 index 0000000000..e3c18a009a --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/Messages_bg.properties @@ -0,0 +1,33 @@ +# The MIT License +# +# Bulgarian translation copyright 2015 Alexander Shopov . +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +MemoryUsageMonitor.USED=\ + \u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0438 +MemoryUsageMonitor.TOTAL=\ + \u041e\u0431\u0449\u043e +OldDataMonitor.Description=\ + \u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435\u0442\u0435 \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438, \u0437\u0430 \u0434\u0430 \u0441\u0435 \u0438\u0437\u0447\u0438\u0441\u0442\u044f\u0442 \u043e\u0441\u0442\u0430\u0442\u044a\u0446\u0438\u0442\u0435 \u043e\u0442 \u0441\u0442\u0430\u0440\u0438\ + \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438 \u0438 \u0432\u0435\u0440\u0441\u0438\u0438. +OldDataMonitor.DisplayName=\ + \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u0442\u0430\u0440\u0438\u0442\u0435 \u0434\u0430\u043d\u043d\u0438 +HudsonHomeDiskUsageMonitor.DisplayName=\ + \u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d\u043e \u0434\u0438\u0441\u043a\u043e\u0432\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e diff --git a/core/src/main/resources/hudson/fsp/Messages_bg.properties b/core/src/main/resources/hudson/fsp/Messages_bg.properties new file mode 100644 index 0000000000..c7382a4a99 --- /dev/null +++ b/core/src/main/resources/hudson/fsp/Messages_bg.properties @@ -0,0 +1,36 @@ +# The MIT License +# +# Bulgarian translation copyright 2015 Alexander Shopov . +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +WorkspaceSnapshotSCM.NoSuchJob=\ + \u0417\u0430\u0434\u0430\u0447\u0430 \u0441 \u0438\u043c\u0435 \u201e{0}\u201c \u043d\u0435 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430. \u201e{1}\u201c \u043b\u0438 \u0438\u043c\u0430\u0442\u0435 \u043f\u0440\u0435\u0434\u0432\u0438\u0434? +WorkspaceSnapshotSCM.IncorrectJobType=\ + \u0417\u0430\u0434\u0430\u0447\u0430\u0442\u0430 \u201e{0}\u201c \u043d\u044f\u043c\u0430 \u0440\u0430\u0431\u043e\u0442\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e. +WorkspaceSnapshotSCM.NoBuild=\ + \u041d\u0438\u043a\u043e\u0435 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 \u043d\u0435 \u0441\u044a\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0430 \u043d\u0430 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u0430\u0442\u0430 \u0432\u0440\u044a\u0437\u043a\u0430 \u201e{0}\u201c \u043a\u044a\u043c \u043d\u0430\u0441\u043b\u0435\u0434\u0435\u043d\u043e\u0442\u043e\ + \u0440\u0430\u0431\u043e\u0442\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043e\u0442 \u201e{1}\u201c. +WorkspaceSnapshotSCM.NoSuchPermalink=\ + \u041b\u0438\u043f\u0441\u0432\u0430 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u0430\u0442\u0430 \u0432\u0440\u044a\u0437\u043a\u0430 \u201e{0}\u201c \u043a\u044a\u043c \u043d\u0430\u0441\u043b\u0435\u0434\u0435\u043d\u043e\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043e\u0442 \u201e{1}\u201c. +WorkspaceSnapshotSCM.NoWorkspace=\ + \u041b\u0438\u043f\u0441\u0432\u0430 \u0440\u0430\u0431\u043e\u0442\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043a\u044a\u043c \u0437\u0430\u0434\u0430\u0447\u0430 {0} \u0441 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0430\ + {1}.\n\u041d\u0430\u0439-\u0432\u0435\u0440\u043e\u044f\u0442\u043d\u0430\u0442\u0430 \u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u0435, \u0447\u0435 \u043d\u0438\u043a\u043e\u044f \u0434\u0440\u0443\u0433\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u043d\u0435 \u0441\u0435 \u0435 \u043d\u0443\u0436\u0434\u0430\u0435\u043b\u0430 \u043e\u0442\ + \u0440\u0430\u0431\u043e\u0442\u043d\u043e\u0442\u043e \u045d \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043f\u043e \u0432\u0440\u0435\u043c\u0435 \u043d\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435\u0442\u043e.\n\u0421\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u0439\u0442\u0435 \u043d\u043e\u0432\u043e\ + \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 {0}, \u0437\u0430 \u0434\u0430 \u0441\u0435 \u0437\u0430\u043f\u0430\u0437\u0438 \u0441\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u0442\u043e \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u043d\u043e\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e. diff --git a/core/src/main/resources/hudson/init/impl/Messages_bg.properties b/core/src/main/resources/hudson/init/impl/Messages_bg.properties new file mode 100644 index 0000000000..01a1bfd123 --- /dev/null +++ b/core/src/main/resources/hudson/init/impl/Messages_bg.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Bulgarian translation copyright 2015 Alexander Shopov . +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +GroovyInitScript.init=\ + \u0418\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0441\u043a\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u0449 \u0441\u043a\u0440\u0438\u043f\u0442 +InitialUserContent.init=\ + \u041f\u043e\u0434\u0433\u043e\u0442\u0432\u044f\u043d\u0435 \u043d\u0430 \u043f\u044a\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u043d\u043e\u0442\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0441\u043a\u043e \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435 diff --git a/core/src/main/resources/hudson/lifecycle/Messages_bg.properties b/core/src/main/resources/hudson/lifecycle/Messages_bg.properties new file mode 100644 index 0000000000..9c994c04f8 --- /dev/null +++ b/core/src/main/resources/hudson/lifecycle/Messages_bg.properties @@ -0,0 +1,36 @@ +# The MIT License +# +# Bulgarian translation copyright 2015 Alexander Shopov . +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +WindowsInstallerLink.DisplayName=\ + \u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u043a\u0430\u0442\u043e \u0443\u0441\u043b\u0443\u0433\u0430 \u043d\u0430 Windows +WindowsInstallerLink.Description=\ + \u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 Jenkins \u043a\u0430\u0442\u043e \u0443\u0441\u043b\u0443\u0433\u0430 \u043d\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0438\u044f \u043d\u0430 \u0442\u0430\u0437\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 Windows, \u0437\u0430\ + \u0434\u0430 \u043c\u043e\u0436\u0435 \u0442\u043e\u0439 \u0434\u0430 \u0441\u0435 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430 \u0437\u0430\u0435\u0434\u043d\u043e \u0441 \u043c\u0430\u0448\u0438\u043d\u0430\u0442\u0430. +WindowsSlaveInstaller.ConfirmInstallation=\ + \u0422\u043e\u0432\u0430 \u0449\u0435 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d \u0430\u0433\u0435\u043d\u0442 \u043a\u0430\u0442\u043e \u0443\u0441\u043b\u0443\u0433\u0430 \u043d\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0438\u044f \u043d\u0430 \u0442\u0430\u0437\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\ + Windows, \u0437\u0430 \u0434\u0430 \u043c\u043e\u0436\u0435 \u0442\u043e\u0439 \u0434\u0430 \u0441\u0435 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430 \u0437\u0430\u0435\u0434\u043d\u043e \u0441 \u043c\u0430\u0448\u0438\u043d\u0430\u0442\u0430. +WindowsSlaveInstaller.DotNetRequired=\ + \u0417\u0430 \u0442\u043e\u0432\u0430 \u0441\u0435 \u0438\u0437\u0438\u0441\u043a\u0432\u0430 .NET Framework, \u0432\u0435\u0440\u0441\u0438\u044f 2.0 \u0438\u043b\u0438 \u043f\u043e-\u0432\u0438\u0441\u043e\u043a\u0430 +WindowsSlaveInstaller.InstallationSuccessful=\ + \u0423\u0441\u043f\u0435\u0448\u043d\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u044f. \u0414\u0430 \u0441\u0435 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430 \u043b\u0438 \u0443\u0441\u043b\u0443\u0433\u0430\u0442\u0430? +WindowsSlaveInstaller.RootFsDoesntExist=\ + \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u0442\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u043d\u0430 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u0438\u044f \u0430\u0433\u0435\u043d\u0442 \u201e{0}\u201c \u043d\u0435 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430. diff --git a/core/src/main/resources/hudson/logging/Messages_bg.properties b/core/src/main/resources/hudson/logging/Messages_bg.properties new file mode 100644 index 0000000000..2c8f53b916 --- /dev/null +++ b/core/src/main/resources/hudson/logging/Messages_bg.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Bulgarian translation copyright 2015 Alexander Shopov . +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +LogRecorderManager.init=\ + \u041f\u043e\u0434\u0433\u043e\u0442\u0432\u044f\u043d\u0435 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0436\u0443\u0440\u043d\u0430\u043b\u0438\u0442\u0435 +LogRecorderManager.DisplayName=\ + \u0436\u0443\u0440\u043d\u0430\u043b diff --git a/core/src/main/resources/hudson/markup/Messages_bg.properties b/core/src/main/resources/hudson/markup/Messages_bg.properties new file mode 100644 index 0000000000..e1a1c9c1e8 --- /dev/null +++ b/core/src/main/resources/hudson/markup/Messages_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation copyright 2015 Alexander Shopov . +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +EscapedMarkupFormatter.DisplayName=\ + \u041e\u0431\u0438\u043a\u043d\u043e\u0432\u0435\u043d \u0442\u0435\u043a\u0441\u0442 diff --git a/core/src/main/resources/hudson/model/Messages.properties b/core/src/main/resources/hudson/model/Messages.properties index bda3db8304..571ec8867f 100644 --- a/core/src/main/resources/hudson/model/Messages.properties +++ b/core/src/main/resources/hudson/model/Messages.properties @@ -95,7 +95,6 @@ CLI.disable-job.shortDescription=Disables a job. CLI.enable-job.shortDescription=Enables a job. CLI.disconnect-node.shortDescription=Disconnects from a node. CLI.connect-node.shortDescription=Reconnect to a node. -CLI.online-node.shortDescription=Resume using a node for performing builds, to cancel out the earlier "offline-node" command. CLI.offline-node.shortDescription=Stop using a node for performing builds temporarily, until the next "online-node" command. CLI.wait-node-online.shortDescription=Wait for a node to become online. CLI.wait-node-offline.shortDescription=Wait for a node to become offline. diff --git a/core/src/main/resources/hudson/model/Messages_bg.properties b/core/src/main/resources/hudson/model/Messages_bg.properties index b9c6f20f19..0230072dea 100644 --- a/core/src/main/resources/hudson/model/Messages_bg.properties +++ b/core/src/main/resources/hudson/model/Messages_bg.properties @@ -1 +1,682 @@ -ParametersDefinitionProperty.DisplayName=\u0422\u043E\u0437\u0438 \u0431\u0438\u043B\u0434 \u0435 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0438\u0437\u0438\u0440\u0430\u043D +# The MIT License +# +# Bulgarian translation copyright 2015 Alexander Shopov . +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +AbstractBuild.BuildingRemotely=\ + \u041e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u043e \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 \u0432\u044a\u0440\u0445\u0443 \u201e{0}\u201c +AbstractBuild.BuildingOnMaster=\ + \u0418\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 \u0432\u044a\u0440\u0445\u0443 \u043e\u0441\u043d\u043e\u0432\u043d\u0438\u044f \u0441\u044a\u0440\u0432\u044a\u0440 +AbstractBuild_Building=\ + \u0418\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 +AbstractBuild.BuildingInWorkspace=\ + \ \u0432 \u0440\u0430\u0431\u043e\u0442\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u201e{0}\u201c +AbstractBuild.KeptBecause=\ + \u0422\u043e\u0432\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 \u0441\u0435 \u043f\u0430\u0437\u0438, \u0437\u0430\u0440\u0430\u0434\u0438 \u201e{0}\u201c. + +AbstractItem.NoSuchJobExists=\ + \u041d\u0435 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u043d\u0430 \u0438\u043c\u0435 \u201e{0}\u201c. \u201e{1}\u201c \u043b\u0438 \u0438\u043c\u0430\u0445\u0442\u0435 \u043f\u0440\u0435\u0434\u0432\u0438\u0434? +AbstractItem.NoSuchJobExistsWithoutSuggestion=\ + \u041d\u0435 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u043d\u0430 \u0438\u043c\u0435 \u201e{0}\u201c. +AbstractItem.Pronoun=\ + \u0415\u043b\u0435\u043c\u0435\u043d\u0442 +AbstractProject.AssignedLabelString_NoMatch_DidYouMean=\ + \u041d\u0438\u043a\u043e\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043d\u0435 \u043e\u0442\u0433\u043e\u0432\u0430\u0440\u044f \u0437\u0430 \u0442\u0430\u0437\u0438 \u0437\u0430\u0434\u0430\u0447\u0430. \u0414\u0430 \u043d\u044f\u043c\u0430\u0442\u0435 \u043f\u0440\u0435\u0434\u0432\u0438\u0434 \u201e{1}\u201c \u0432\u043c\u0435\u0441\u0442\u043e \u201e{0}\u201c? +AbstractProject.NewBuildForWorkspace=\ + \u041d\u0430\u0441\u0440\u043e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u043d\u043e\u0432\u043e \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435, \u0437\u0430 \u0434\u0430 \u0441\u0435 \u043f\u043e\u043b\u0443\u0447\u0438 \u0440\u0430\u0431\u043e\u0442\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e. +AbstractProject.AwaitingBuildForWorkspace=\ + \u0418\u0437\u0447\u0430\u043a\u0432\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435, \u0437\u0430 \u0434\u0430 \u0441\u0435 \u043f\u043e\u043b\u0443\u0447\u0438 \u0440\u0430\u0431\u043e\u0442\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e. +AbstractProject.AwaitingWorkspaceToComeOnline=\ + \u0422\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0441\u0435 \u043d\u0430\u0441\u0440\u043e\u0447\u0438 \u043d\u043e\u0432\u043e \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435, \u0437\u0430 \u0434\u0430 \u043f\u043e\u043b\u0443\u0447\u0438 \u0440\u0430\u0431\u043e\u0442\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e.\ + \u0417\u0430\u0431\u0430\u0432\u044f\u043d\u0435 \u043e\u0442 {0}\u200ams \u0441 \u043d\u0430\u0434\u0435\u0436\u0434\u0430 \u0434\u0430 \u0441\u0435 \u043e\u0441\u0432\u043e\u0431\u043e\u0434\u0438 \u043d\u044f\u043a\u043e\u0435 \u0440\u0430\u0431\u043e\u0442\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e +AbstractProject.Pronoun=\ + \u041f\u0440\u043e\u0435\u043a\u0442 +AbstractProject.Aborted=\ + \u041f\u0440\u0435\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0435\u043d +AbstractProject.BuildInProgress=\ + \u0418\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 \u2116\u200a{0} \u0432\u0435\u0447\u0435 \u0441\u0435 \u0438\u0437\u043f\u044a\u043b\u043d\u044f\u0432\u0430{1} +AbstractProject.BuildNow=\ + \u041d\u0435\u0437\u0430\u0431\u0430\u0432\u043d\u043e \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 +AbstractProject.build_with_parameters=\ + \u0418\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438 +AbstractProject.UpstreamBuildInProgress=\ + \u201e{0}\u201c \u2014 \u0437\u0430\u0434\u0430\u0447\u0430, \u043e\u0442 \u043a\u043e\u044f\u0442\u043e \u0437\u0430\u0432\u0438\u0441\u0438 \u0442\u0435\u043a\u0443\u0449\u043e\u0442\u043e \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435, \u0432\u0435\u0447\u0435 \u0435 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0430. +AbstractProject.DownstreamBuildInProgress=\ + \u201e{0}\u201c \u2014 \u0437\u0430\u0434\u0430\u0447\u0430, \u043a\u043e\u044f\u0442\u043e \u0437\u0430\u0432\u0438\u0441\u0438 \u043e\u0442 \u0442\u0435\u043a\u0443\u0449\u043e\u0442\u043e \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435, \u0432\u0435\u0447\u0435 \u0435 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0430. +AbstractProject.Disabled=\ + \u0418\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435\u0442\u043e \u0435 \u0438\u0437\u043a\u043b\u044e\u0447\u0435\u043d\u043e +AbstractProject.ETA=\ + \ (\u043e\u0441\u0442\u0430\u0432\u0430\u0442:{0}) +AbstractProject.NoBuilds=\ + \u041d\u0435 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435. \u041d\u0430\u0441\u0440\u043e\u0447\u0432\u0430 \u0441\u0435 \u043d\u043e\u0432\u043e. +AbstractProject.NoSCM=\ + \u041d\u044f\u043c\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0437\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u0438\u0442\u0435 +AbstractProject.NoWorkspace=\ + \u041d\u044f\u043c\u0430 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0438 \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438 \u0437\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f. +AbstractProject.WorkspaceTitle=\ + \u0420\u0430\u0431\u043e\u0442\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u201e{0}\u201c +AbstractProject.WorkspaceTitleOnComputer=\ + \u0420\u0430\u0431\u043e\u0442\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u201e{0}\u201c \u043d\u0430 \u201e{1}\u201c +AbstractProject.PollingABorted=\ + \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430\u0442\u0430 \u043d\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0438\u0442\u0435 \u0437\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u0438\u0442\u0435 \u0435 \u043f\u0440\u0435\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0435\u043d\u0430 +AbstractProject.ScmAborted=\ + \u0418\u0437\u0442\u0435\u0433\u043b\u044f\u043d\u0435\u0442\u043e \u043e\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u0438\u0442\u0435 \u0437\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u0438\u0442\u0435 \u0435 \u043f\u0440\u0435\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0435\u043d\u043e +AbstractProject.WorkspaceOffline=\ + \u0420\u0430\u0431\u043e\u0442\u043d\u043e\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043d\u0435 \u0435 \u043d\u0430\u043b\u0438\u0447\u043d\u043e. +AbstractProject.BuildPermission.Description=\ + \u0422\u043e\u0432\u0430 \u0434\u0430\u0432\u0430 \u043f\u0440\u0430\u0432\u043e\u0442\u043e \u0437\u0430 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043d\u043e\u0432\u043e \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435. +AbstractProject.WorkspacePermission.Description=\ + \u0422\u043e\u0432\u0430 \u0434\u0430\u0432\u0430 \u043f\u0440\u0430\u0432\u043e \u0434\u0430 \u0441\u0435 \u0440\u0430\u0437\u0433\u043b\u0435\u0436\u0434\u0430 \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435\u0442\u043e \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u043d\u043e\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043f\u0440\u0438\ + \u0438\u0437\u0432\u044a\u0440\u0448\u0432\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u044f \u043e\u0442 Jenkins. \u041e\u0442\u043d\u0435\u043c\u0435\u0442\u0435 \u0433\u043e, \u0430\u043a\u043e \u043d\u0435 \u0438\u0441\u043a\u0430\u0442\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\ + \u0434\u0430 \u0434\u043e\u0441\u0442\u044a\u043f\u0432\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435\u0442\u0435 \u0432 \u0440\u0430\u0431\u043e\u0442\u043d\u043e\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e (\u043d\u0430\u043f\u0440. \u0438\u0437\u0445\u043e\u0434\u043d\u0438\u044f \u043a\u043e\u0434, \u0438\u0437\u0442\u0435\u0433\u043b\u0435\u043d\ + \u043e\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0430 \u0437\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u0438\u0442\u0435 \u0438\u043b\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0438\u0442\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u043f\u0440\u0438 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435\u0442\u043e). +AbstractProject.ExtendedReadPermission.Description=\ + \u0422\u043e\u0432\u0430 \u0434\u0430\u0432\u0430 \u043f\u0440\u0430\u0432\u043e \u0437\u0430 \u0434\u043e\u0441\u0442\u044a\u043f \u0434\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u0442\u0435 \u043d\u0430 \u0437\u0430\u0434\u0430\u0447\u0430\u0442\u0430 \u0437\u0430 \u0447\u0435\u0442\u0435\u043d\u0435 \u0438 \u043c\u043e\u0436\u0435 \u0434\u0430\ + \u0434\u043e\u0432\u0435\u0434\u0435 \u0434\u043e \u0440\u0430\u0437\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u0430\u0439\u043d\u0438, \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0438 \u0437\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u044f\u0442\u0430 \u2014 \u043a\u0430\u0442\u043e \u043f\u0430\u0440\u043e\u043b\u0438\ + \u0437\u0430 \u0434\u043e\u0441\u0442\u044a\u043f \u0434\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u0438 \u0437\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u0438\u0442\u0435. +AbstractProject.DiscoverPermission.Description=\ + \u0422\u043e\u0432\u0430 \u0434\u0430\u0432\u0430 \u043f\u0440\u0430\u0432\u043e \u0437\u0430 \u043e\u0442\u043a\u0440\u0438\u0432\u0430\u043d\u0435 \u0438 \u0438\u0437\u0431\u0440\u043e\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0437\u0430\u0434\u0430\u0447\u0438\u0442\u0435. \u041f\u0440\u0430\u0432\u043e\u0442\u043e \u0435 \u043f\u043e-\u0441\u043b\u0430\u0431\u043e \u043e\u0442\ + \u0434\u043e\u0441\u0442\u044a\u043f\u0430 \u0434\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u0442\u0435 \u043d\u0430 \u0437\u0430\u0434\u0430\u0447\u0430\u0442\u0430 \u0437\u0430 \u0447\u0435\u0442\u0435\u043d\u0435, \u043d\u043e \u0432\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0432\u0430 \u0434\u0430 \u043f\u0440\u0435\u043d\u0430\u0441\u043e\u0447\u0438\u0442\u0435\ + \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u0438\u0442\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0438 \u043a\u044a\u043c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0442\u0430 \u0437\u0430 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f, \u043a\u043e\u0433\u0430\u0442\u043e \u0441\u0435 \u043e\u043f\u0438\u0442\u0430\u0442 \u0434\u0430\ + \u043e\u0442\u0432\u043e\u0440\u044f\u0442 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0442\u0430 \u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430 \u0437\u0430\u0434\u0430\u0447\u0430. \u0410\u043a\u043e \u043f\u0440\u0430\u0432\u043e\u0442\u043e \u043d\u0435 \u0435 \u0434\u0430\u0434\u0435\u043d\u043e, \u043e\u0442\u0433\u043e\u0432\u043e\u0440\u044a\u0442\ + \u043d\u0430 \u0437\u0430\u044f\u0432\u043a\u0438\u0442\u0435 \u0437\u0430 \u0434\u043e\u0441\u0442\u044a\u043f \u0434\u043e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0438\u0442\u0435 \u043d\u0430 \u0437\u0430\u0434\u0430\u0447\u0438\u0442\u0435 \u0449\u0435 \u0435 \u0433\u0440\u0435\u0448\u043a\u0430 404 \u0438 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u0438\u0442\u0435\ + \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0438 \u043d\u044f\u043c\u0430 \u0434\u0430 \u043d\u0430\u0443\u0447\u0430\u0432\u0430\u0442 \u0438\u043c\u0435\u043d\u0430\u0442\u0430 \u043d\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0442\u0435. +# hudson.security.WipeOutPermission is set to true +AbstractProject.WipeOutPermission.Description=\ + \u0422\u043e\u0432\u0430 \u0434\u0430\u0432\u0430 \u043f\u0440\u0430\u0432\u043e \u0437\u0430 \u0438\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u0446\u044f\u043b\u043e\u0442\u043e \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435 \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e. +AbstractProject.CancelPermission.Description=\ + \u0422\u043e\u0432\u0430 \u0434\u0430\u0432\u0430 \u043f\u0440\u0430\u0432\u043e \u0437\u0430 \u043e\u0442\u043c\u044f\u043d\u0430 \u043d\u0430 \u0437\u0430\u043f\u043b\u0430\u043d\u0443\u0432\u0430\u043d\u043e \u0438 \u0441\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u043f\u044a\u043b\u043d\u044f\u0432\u0430\u043d\u043e \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435. +AbstractProject.AssignedLabelString.InvalidBooleanExpression=\ + \u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u0435\u043d \u0431\u0443\u043b\u0435\u0432 \u0438\u0437\u0440\u0430\u0437: {0} +AbstractProject.AssignedLabelString.NoMatch=\ + \u041d\u0438\u043a\u043e\u044f \u043c\u0430\u0448\u0438\u043d\u0430 \u0438\u043b\u0438 \u043e\u0431\u043b\u0430\u043a \u043d\u0435 \u043e\u0442\u0433\u043e\u0432\u0430\u0440\u044f \u043d\u0430 \u0442\u0430\u0437\u0438 \u0437\u0430\u0434\u0430\u0447\u0430. +AbstractProject.CustomWorkspaceEmpty=\ + \u041f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0441\u043a\u043e\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0435 \u043f\u0440\u0430\u0437\u043d\u043e. +AbstractProject.LabelLink=\ + \u0415\u0442\u0438\u043a\u0435\u0442\u044a\u0442 \u0441\u0435 \u043e\u0431\u0441\u043b\u0443\u0436\u0432\u0430 \u043e\u0442\ + {2,choice,0#\u043d\u0438\u043a\u043e\u043b\u043a\u043e \u043c\u0430\u0448\u0438\u043d\u0438|1#1 \u043c\u0430\u0448\u0438\u043d\u0430|1<{2} \u043c\u0430\u0448\u0438\u043d\u0438}{3,choice,0#|1# \u0438 1 \u043e\u0431\u043b\u0430\u043a|1< \u0438 {3} \u043e\u0431\u043b\u0430\u043a\u0430} + +Api.MultipleMatch=\ + \u0418\u0437\u0440\u0430\u0437\u044a\u0442 \u0447\u0440\u0435\u0437 XPath \u201e{0}\u201c \u043e\u0442\u0433\u043e\u0432\u0430\u0440\u044f \u043d\u0430 {1} \u043c\u0430\u0448\u0438\u043d\u0438. \u0417\u0430\u0434\u0430\u0439\u0442\u0435 \u0438\u0437\u0440\u0430\u0437, \u043a\u043e\u0439\u0442\u043e \u0434\u0430 + \u043d\u0430\u043f\u0430\u0441\u0432\u0430 \u0441\u0430\u043c\u043e \u0435\u0434\u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0430 \u0438\u043b\u0438 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0439\u0442\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u044a\u0440\u0430 \u201ewrapper\u201c, \u0437\u0430 \u0434\u0430 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0435\ + \u0432\u0441\u0438\u0447\u043a\u0438 \u0442\u0435\u0437\u0438 \u043c\u0430\u0448\u0438\u043d\u0438 \u0432 \u043e\u0431\u0449 \u0435\u043b\u0435\u043c\u0435\u043d\u0442. +Api.NoXPathMatch=\ + \u0418\u0437\u0440\u0430\u0437\u044a\u0442 \u0447\u0440\u0435\u0437 XPath \u201e{0}\u201c \u043d\u0435 \u043d\u0430\u043f\u0430\u0441\u0432\u0430 \u0441 \u043d\u0438\u043a\u043e\u044f \u043c\u0430\u0448\u0438\u043d\u0430. + +BallColor.Aborted=\ + \u041e\u0442\u043c\u0435\u043d\u0435\u043d\u043e +BallColor.Disabled=\ + \u0418\u0437\u043a\u043b\u044e\u0447\u0435\u043d\u043e +BallColor.Failed=\ + \u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e +BallColor.InProgress=\ + \u0418\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 +BallColor.NotBuilt=\ + \u041d\u0435\u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u043e +BallColor.Pending=\ + \u041f\u0440\u0435\u0434\u0441\u0442\u043e\u0438 +BallColor.Success=\ + \u0423\u0441\u043f\u0435\u0448\u043d\u043e +BallColor.Unstable=\ + \u041d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u043d\u043e + +Build.post_build_steps_failed=\ + \u0421\u0442\u044a\u043f\u043a\u0438\u0442\u0435 \u0441\u043b\u0435\u0434 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435\u0442\u043e \u0441\u0430 \u043d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u0438 +CLI.clear-queue.shortDescription=\ + \u0418\u0437\u0447\u0438\u0441\u0442\u0432\u0430\u043d\u0435 \u043d\u0430 \u043e\u043f\u0430\u0448\u043a\u0430\u0442\u0430 \u0441\u044a\u0441 \u0437\u0430\u0434\u0430\u0447\u0438. +CLI.delete-job.shortDescription=\ + \u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u0437\u0430\u0434\u0430\u0447\u0430. +CLI.reload-job.shortDescription=\ + \u041f\u0440\u0435\u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0437\u0430\u0434\u0430\u0447\u0430\u0442\u0430 \u043e\u0442 \u0434\u0438\u0441\u043a\u0430. +CLI.disable-job.shortDescription=\ + \u0418\u0437\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0437\u0430\u0434\u0430\u0447\u0430. +CLI.enable-job.shortDescription=\ + \u0412\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0437\u0430\u0434\u0430\u0447\u0430. +CLI.delete-node.shortDescription=\ + \u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0430. +CLI.disconnect-node.shortDescription=\ + \u041f\u0440\u0435\u043a\u044a\u0441\u0432\u0430\u043d\u0435 \u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0430\u0442\u0430 \u0441 \u043c\u0430\u0448\u0438\u043d\u0430. +CLI.connect-node.shortDescription=\ + \u0421\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435 \u043a\u044a\u043c \u043c\u0430\u0448\u0438\u043d\u0430. +CLI.online-node.shortDescription=\ + \u041e\u0442\u043d\u043e\u0432\u043e \u0434\u0430 \u0441\u0435 \u043f\u043e\u043b\u0437\u0432\u0430 \u043c\u0430\u0448\u0438\u043d\u0430 \u0437\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u044f. \u041e\u0442\u043c\u0435\u043d\u044f\u043d\u0435 \u043d\u0430 \u043f\u0440\u0435\u0434\u0445\u043e\u0434\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\ + \u201eoffline-node\u201c. +CLI.offline-node.shortDescription=\ + \u0412\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043f\u0440\u0435\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0430 \u0437\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u044f \u0434\u043e\u043a\u0430\u0442\u043e \u043d\u0435 \u0441\u0435\ + \u0432\u044a\u0432\u0435\u0434\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u0442\u0430 \u201eonline-node\u201c. +CLI.wait-node-online.shortDescription=\ + \u0418\u0437\u0447\u0430\u043a\u0432\u0430\u043d\u0435 \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0430 \u0434\u0430 \u0435 \u043d\u0430 \u043b\u0438\u043d\u0438\u044f. +CLI.wait-node-offline.shortDescription=\ + \u0418\u0437\u0447\u0430\u043a\u0432\u0430\u043d\u0435 \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0430 \u0434\u0430 \u043d\u0435 \u0435 \u043d\u0430 \u043b\u0438\u043d\u0438\u044f. + +Computer.Caption=\ + \u041a\u043e\u043c\u043f\u044e\u0442\u044a\u0440 \u201e{0}\u201c +Computer.NoSuchSlaveExists=\ + \u041d\u0435 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440 \u201e{0}\u201c. \u201e{1}\u201c \u043b\u0438 \u0438\u043c\u0430\u0442\u0435 \u043f\u0440\u0435\u0434\u0432\u0438\u0434? +Computer.Permissions.Title=\ + \u041f\u043e\u0434\u0447\u0438\u043d\u0435\u043d \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440 +Computer.ExtendedReadPermission.Description=\ + \u0422\u043e\u0432\u0430 \u0434\u0430\u0432\u0430 \u043f\u0440\u0430\u0432\u043e \u0437\u0430 \u0434\u043e\u0441\u0442\u044a\u043f \u0437\u0430 \u0447\u0435\u0442\u0435\u043d\u0435 \u0434\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u0442\u0435 \u043d\u0430 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u0438\u0442\u0435 \u043a\u043e\u043c\u043f\u044e\u0442\u0440\u0438. +Computer.ConfigurePermission.Description=\ + \u0422\u043e\u0432\u0430 \u0434\u0430\u0432\u0430 \u043f\u0440\u0430\u0432\u043e \u0437\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u0438 \u043a\u043e\u043c\u043f\u044e\u0442\u0440\u0438. +Computer.DeletePermission.Description=\ + \u0422\u043e\u0432\u0430 \u0434\u0430\u0432\u0430 \u043f\u0440\u0430\u0432\u043e \u0437\u0430 \u043c\u0430\u0445\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u0438 \u043a\u043e\u043c\u043f\u044e\u0442\u0440\u0438. +Computer.CreatePermission.Description=\ + \u0422\u043e\u0432\u0430 \u0434\u0430\u0432\u0430 \u043f\u0440\u0430\u0432\u043e \u0437\u0430 \u0434\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u0438 \u043a\u043e\u043c\u043f\u044e\u0442\u0440\u0438. +Computer.ConnectPermission.Description=\ + \u0422\u043e\u0432\u0430 \u0434\u0430\u0432\u0430 \u043f\u0440\u0430\u0432\u043e \u0437\u0430 \u0434\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u0438 \u043a\u043e\u043c\u043f\u044e\u0442\u0440\u0438 \u0438 \u043e\u0431\u044f\u0432\u044f\u0432\u0430\u043d\u0435\u0442\u043e \u0438\u043c, \u0447\u0435 \u0441\u0430 \u043d\u0430\ + \u043b\u0438\u043d\u0438\u044f. +Computer.DisconnectPermission.Description=\ + \u0422\u043e\u0432\u0430 \u0434\u0430\u0432\u0430 \u043f\u0440\u0430\u0432\u043e \u0437\u0430 \u043c\u0430\u0445\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u0438 \u043a\u043e\u043c\u043f\u044e\u0442\u0440\u0438 \u0438 \u043e\u0431\u044f\u0432\u044f\u0432\u0430\u043d\u0435\u0442\u043e \u0438\u043c, \u0447\u0435 \u043d\u0435 \u0441\u0430 \u043d\u0430\ + \u043b\u0438\u043d\u0438\u044f. +Computer.BuildPermission.Description=\ + \u0422\u043e\u0432\u0430 \u0434\u0430\u0432\u0430 \u043f\u0440\u0430\u0432\u043e \u043d\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0438\u0442\u0435 \u0434\u0430 \u0438\u0437\u043f\u044a\u043b\u043d\u044f\u0432\u0430\u0442 \u0437\u0430\u0434\u0430\u0447\u0438 \u043e\u0442 \u0441\u0432\u043e\u0435 \u0438\u043c\u0435 \u043d\u0430\ + \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u0438\u0442\u0435 \u043a\u043e\u043c\u043f\u044e\u0442\u0440\u0438. +Computer.BadChannel=\ + \u0410\u043a\u043e \u0442\u043e\u0432\u0430 \u0435 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440, \u0442\u043e\u0439 \u043d\u0435 \u0435 \u043d\u0430 \u043b\u0438\u043d\u0438\u044f. + +ComputerSet.NoSuchSlave=\ + \u041d\u044f\u043c\u0430 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440 \u043d\u0430 \u0438\u043c\u0435 \u201e{0}\u201c. +ComputerSet.SlaveAlreadyExists=\ + \u0412\u0435\u0447\u0435 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440 \u043d\u0430 \u0438\u043c\u0435 \u201e{0}\u201c. +ComputerSet.SpecifySlaveToCopy=\ + \u0412\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440 \u0437\u0430 \u043a\u043e\u043f\u0438\u0440\u0430\u043d\u0435 +ComputerSet.DisplayName=\ + \u041a\u043e\u043c\u043f\u044e\u0442\u0440\u0438 + +Descriptor.From=\ + (\u043e\u0442 {0}) + +Executor.NotAvailable=\ + \u041b\u0438\u043f\u0441\u0432\u0430 + +FreeStyleProject.DisplayName=\ + \u041f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0441\u043a\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 + +HealthReport.EmptyString= + +Hudson.BadPortNumber=\ + \u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u0435\u043d \u043d\u043e\u043c\u0435\u0440 \u043d\u0430 \u043f\u043e\u0440\u0442 \u201e{0}\u201c +Hudson.Computer.Caption=\ + \u0423\u043f\u0440\u0430\u0432\u043b\u044f\u0432\u0430\u0449 \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440 +Hudson.Computer.DisplayName=\ + \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0432\u0430\u0449 \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440 +Hudson.ControlCodeNotAllowed=\ + \u041a\u043e\u043d\u0442\u0440\u043e\u043b\u043d\u0438 \u0437\u043d\u0430\u0446\u0438 \u043d\u0435 \u0441\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u0435\u043d\u0438: {0} +Hudson.DisplayName=\ + Jenkins +Hudson.JobAlreadyExists=\ + \u0412\u0435\u0447\u0435 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u043d\u0430 \u0438\u043c\u0435 \u201e{0}\u201c. +Hudson.NoJavaInPath=\ + \u0418\u0437\u043f\u044a\u043b\u043d\u0438\u043c\u0438\u044f\u0442 \u0444\u0430\u0439\u043b \u201ejava\u201c \u043d\u0435 \u0435 \u0432 \u043f\u044a\u0442\u0438\u0449\u0430\u0442\u0430, \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438 \u0432 \u043f\u0440\u043e\u043c\u0435\u043d\u043b\u0438\u0432\u0430\u0442\u0430 \u043d\u0430 \u0441\u0440\u0435\u0434\u0430\u0442\u0430\ + \u201ePATH\u201c. \u041f\u0440\u043e\u0431\u0432\u0430\u0439\u0442\u0435 \u0434\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u0435 \u0441\u0440\u0435\u0434\u0430\u0442\u0430 \u0437\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430\ + \u043d\u0430 Java (JDK). +Hudson.NoName=\ + \u041d\u0435 \u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u0438\u043c\u0435. +Hudson.NoSuchDirectory=\ + \u041d\u044f\u043c\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u043d\u0430 \u0438\u043c\u0435 \u201e{0}\u201c +Hudson.NodeBeingRemoved=\ + \u041a\u043e\u043c\u043f\u044e\u0442\u044a\u0440\u0430 \u0441\u0435 \u0438\u0437\u0432\u0430\u0436\u0434\u0430 \u043e\u0442 \u043a\u043b\u044a\u0441\u0442\u044a\u0440\u0430 +Hudson.NotAPlugin=\ + \u201e{0}\u201c \u043d\u0435 \u0435 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430 \u043d\u0430 Jenkins. +Hudson.NotJDKDir=\ + \u201e{0}\u201c \u043d\u0435 \u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u043d\u0430 \u0441\u0440\u0435\u0434\u0430\u0442\u0430 \u0437\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043d\u0430 Java (JDK). +Hudson.Permissions.Title=\ + \u041e\u0431\u0449\u043e +Hudson.USER_CONTENT_README=\ + \u0424\u0430\u0439\u043b\u043e\u0432\u0435\u0442\u0435 \u0432 \u0442\u0430\u0437\u0438 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0449\u0435 \u0441\u0430 \u0434\u043e\u0441\u0442\u044a\u043f\u043d\u0438 \u043f\u0440\u0435\u0437 \u0430\u0434\u0440\u0435\u0441\u0430 \ + \u201ehttp://server/jenkins/userContent/\u201c. +Hudson.UnsafeChar=\ + \u041e\u043f\u0430\u0441\u043d\u043e \u0435 \u0434\u0430 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0442\u0435 \u0437\u043d\u0430\u043a\u0430 \u201e{0}\u201c. +Hudson.ViewAlreadyExists=\ + \u0412\u0435\u0447\u0435 \u0438\u043c\u0430 \u0438\u0437\u0433\u043b\u0435\u0434 \u0441 \u0438\u043c\u0435 \u201e{0}\u201c. +Hudson.ViewName=\ + \u0412\u0441\u0438\u0447\u043a\u0438 +Hudson.NotANumber=\ + \u041d\u0435 \u0435 \u0447\u0438\u0441\u043b\u043e. +Hudson.NotAPositiveNumber=\ + \u041d\u0435 \u0435 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u043d\u043e \u0447\u0438\u0441\u043b\u043e. +Hudson.NotANonNegativeNumber=\ + \u0427\u0438\u0441\u043b\u043e\u0442\u043e \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0435 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u043d\u043e. +Hudson.NotANegativeNumber=\ + \u0427\u0438\u0441\u043b\u043e\u0442\u043e \u043d\u0435 \u0435 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u043d\u043e. +Hudson.NotUsesUTF8ToDecodeURL=\ + \u041a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044a\u0442 \u0437\u0430 \u0441\u044a\u0440\u0432\u043b\u0435\u0442\u0438 \u043d\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430 UTF-8 \u0437\u0430 \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0430\u0434\u0440\u0435\u0441\u0438. \u0417\u043d\u0430\u0446\u0438\ + \u0438\u0437\u0432\u044a\u043d ASCII \u0432 \u0438\u043c\u0435\u043d\u0430\u0442\u0430 \u043d\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u0438 \u0434\u0440. \u0449\u0435 \u043f\u0440\u0438\u0447\u0438\u043d\u044f\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0438. \u0417\u0430 \u043f\u043e\u0432\u0435\u0447\u0435\ + \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043f\u043e\u0433\u043b\u0435\u0434\u043d\u0435\u0442\u0435\ + \u041a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0438\ + \u0438\ + \ + \u0418\u043d\u0442\u0435\u0440\u043d\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0430 Tomcat. +Hudson.AdministerPermission.Description=\ + \u0422\u043e\u0432\u0430 \u0434\u0430\u0432\u0430 \u043f\u0440\u0430\u0432\u043e \u0437\u0430 \u043f\u0440\u043e\u043c\u044f\u043d\u0430 \u043d\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0438\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438, \u043a\u0430\u043a\u0442\u043e \u0438 \u043f\u044a\u043b\u0435\u043d \u0434\u043e\u0441\u0442\u044a\u043f \u0434\u043e\ + \u043b\u043e\u043a\u0430\u043b\u043d\u0430\u0442\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0432 \u0440\u0430\u043c\u043a\u0438\u0442\u0435 \u043d\u0430 \u043f\u0440\u0430\u0432\u0430\u0442\u0430 \u0441\u043f\u043e\u0440\u0435\u0434 \u0440\u0430\u0431\u043e\u0442\u0435\u0449\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0430\ + \u0441\u0438\u0441\u0442\u0435\u043c\u0430. +Hudson.ReadPermission.Description=\ + \u0422\u043e\u0432\u0430 \u0434\u0430\u0432\u0430 \u043f\u0440\u0430\u0432\u043e \u0437\u0430 \u0440\u0430\u0437\u0433\u043b\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0438\u0447\u043a\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0438 \u043d\u0430 Jenkins. \u0410\u043a\u043e \u043d\u0435\ + \u0438\u0441\u043a\u0430\u0442\u0435 \u043d\u0435\u043f\u043e\u0437\u043d\u0430\u0442\u0438\u0442\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0438 \u0434\u0430 \u0432\u0438\u0436\u0434\u0430\u0442 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0438\u0442\u0435 \u043d\u0430 Jenkins, \u043e\u0442\u043d\u0435\u043c\u0435\u0442\u0435 \u0442\u043e\u0432\u0430\ + \u043f\u0440\u0430\u0432\u043e \u043d\u0430 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u0438\u044f \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b (\u201eanonymous\u201c) \u0438 \u0433\u043e \u0434\u0430\u0439\u0442\u0435 \u043d\u0430 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u0430\u043b\u0438\u0442\u0435 \u0441\u0435\ + \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0438 (\u201eauthenticated\u201c). +Hudson.RunScriptsPermission.Description=\ + \u0422\u043e\u0432\u0430 \u0434\u0430\u0432\u0430 \u043f\u0440\u0430\u0432\u043e \u0437\u0430 \u0438\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432\u0435 \u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0430 \u043d\u0430 \u043f\u0440\u0435\u0437 \u043a\u043e\u043d\u0437\u043e\u043b\u0430\u0442\u0430 \u043d\u0430\ + Groovy \u0438\u043b\u0438 \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0438\u0442\u0435 \u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0438\u044f \u0440\u0435\u0434. +Hudson.NodeDescription=\ + \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0432\u0430\u0449\u0438\u044f\u0442 \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440 \u043d\u0430 Jenkins + +Item.Permissions.Title=\ + \u0417\u0430\u0434\u0430\u0447\u0430 +Item.CREATE.description=\ + \u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0437\u0430\u0434\u0430\u0447\u0430. +Item.DELETE.description=\ + \u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u0437\u0430\u0434\u0430\u0447\u0430. +Item.CONFIGURE.description=\ + \u041f\u0440\u043e\u043c\u044f\u043d\u0430 \u043d\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u0442\u0435 \u043d\u0430 \u0437\u0430\u0434\u0430\u0447\u0430. +Item.READ.description=\ + \u041f\u0440\u0435\u0433\u043b\u0435\u0434 \u043d\u0430 \u0437\u0430\u0434\u0430\u0447\u0430. (\u041c\u043e\u0436\u0435 \u0434\u0430 \u043e\u0442\u043c\u0435\u043d\u0438\u0442\u0435 \u0442\u043e\u0432\u0430 \u043f\u0440\u0430\u0432\u043e, \u043d\u043e \u0447\u0440\u0435\u0437 \u043f\u0440\u0430\u0432\u043e\u0442\u043e \u0437\u0430 \u043e\u0442\u043a\u0440\u0438\u0432\u0430\u043d\u0435\ + \u0434\u0430 \u043d\u0430\u043a\u0430\u0440\u0430\u0442\u0435 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u0438\u0442\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0438 \u0434\u0430 \u0441\u0435 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u0430\u0442, \u0437\u0430 \u0434\u0430 \u0432\u0438\u0434\u044f\u0442 \u0437\u0430\u0434\u0430\u0447\u0430\u0442\u0430.) + +Job.AllRecentBuildFailed=\ + \u0412\u0441\u0438\u0447\u043a\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u044f \u0441\u0430 \u043d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u0438. +Job.BuildStability=\ + \u0421\u0442\u0430\u0431\u0438\u043b\u043d\u043e\u0441\u0442 \u043d\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u044f\u0442\u0430: {0} +Job.NOfMFailed=\ + {0} \u043e\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0442\u0435 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u044f {1} \u0441\u0430 \u043d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u0438. +Job.NoRecentBuildFailed=\ + \u0421\u043a\u043e\u0440\u043e \u043d\u0435 \u0435 \u0438\u043c\u0430\u043b\u043e \u043d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u0438 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u044f. +Job.Pronoun=\ + \u041f\u0440\u043e\u0435\u043a\u0442 +Job.minutes=\ + \u043c\u0438\u043d. + +Job.you_must_use_the_save_button_if_you_wish=\ + \u0417\u0430 \u0434\u0430 \u043f\u0440\u0435\u0438\u043c\u0435\u043d\u0443\u0432\u0430\u0442\u0435 \u0437\u0430\u0434\u0430\u0447\u0430, \u043d\u0430\u0442\u0438\u0441\u043d\u0435\u0442\u0435 \u0431\u0443\u0442\u043e\u043d\u0430 \u201e\u0417\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435\u201c. +Label.GroupOf=\ + \u0433\u0440\u0443\u043f\u0430\u0442\u0430 \u043d\u0430 {0} +Label.InvalidLabel=\ + \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u0435\u043d \u0435\u0442\u0438\u043a\u0435\u0442 +Label.ProvisionedFrom=\ + \u041d\u0430\u0431\u0430\u0432\u0435\u043d\u0430 \u043e\u0442 {0} +ManageJenkinsAction.DisplayName=\ + \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 Jenkins +MultiStageTimeSeries.EMPTY_STRING= +Queue.AllNodesOffline=\ + \u041d\u0438\u043a\u043e\u044f \u043c\u0430\u0448\u0438\u043d\u0430 \u0441 \u0435\u0442\u0438\u043a\u0435\u0442 \u201e{0}\u201c \u043d\u0435 \u0435 \u043d\u0430 \u043b\u0438\u043d\u0438\u044f. +Queue.LabelHasNoNodes=\ + \u041d\u044f\u043c\u0430 \u043c\u0430\u0448\u0438\u043d\u0430 \u0441 \u0435\u0442\u0438\u043a\u0435\u0442 \u201e{0}\u201c. +Queue.BlockedBy=\ + \u0411\u043b\u043e\u043a\u0438\u0440\u0430\u043d\u043e \u043e\u0442 \u201e{0}\u201c. +Queue.HudsonIsAboutToShutDown=\ + Jenkins \u0449\u0435 \u0441\u0435 \u0441\u043f\u0440\u0435. +Queue.InProgress=\ + \u0418\u0437\u0432\u044a\u0440\u0448\u0432\u0430 \u0441\u0435 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435. +Queue.InQuietPeriod=\ + \u0418\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u0442\u0438\u0448\u0438\u043d\u0430, \u0438\u0437\u0442\u0438\u0447\u0430 \u0441\u043b\u0435\u0434 {0} +Queue.NodeOffline=\ + \u201e{0}\u201c \u043d\u0435 \u0435 \u043d\u0430 \u043b\u0438\u043d\u0438\u044f. +Queue.Unknown=\ + \u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e +Queue.WaitingForNextAvailableExecutor=\ + \u0418\u0437\u0447\u0430\u043a\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u043b\u0435\u0434\u0432\u0430\u0449\u0438\u044f \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440. +Queue.WaitingForNextAvailableExecutorOn=\ + \u0418\u0437\u0447\u0430\u043a\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u043b\u0435\u0434\u0432\u0430\u0449\u0438\u044f \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440 \u0437\u0430 \u201e{0}\u201c. +Queue.init=\ + \u0412\u044a\u0437\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u043e\u043f\u0430\u0448\u043a\u0430\u0442\u0430 \u0441 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u044f. + +ResultTrend.Aborted=\ + \u041f\u0440\u0435\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0435\u043d\u043e +ResultTrend.Failure=\ + \u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e +ResultTrend.Fixed=\ + \u041e\u043f\u0440\u0430\u0432\u0435\u043d\u043e +ResultTrend.NotBuilt=\ + \u041d\u0435\u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u043e +ResultTrend.NowUnstable=\ + \u041d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u043d\u043e +ResultTrend.StillFailing=\ + \u0412\u0441\u0435 \u043e\u0449\u0435 \u043d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e +ResultTrend.StillUnstable=\ + \u0412\u0441\u0435 \u043e\u0449\u0435 \u043d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u043d\u043e +ResultTrend.Success=\ + \u0423\u0441\u043f\u0435\u0448\u043d\u043e +ResultTrend.Unstable=\ + \u041d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u043d\u043e +Run._is_waiting_for_a_checkpoint_on_=\ + {0} \u0438\u0437\u0447\u0430\u043a\u0432\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u043d\u0438\u044f \u043c\u043e\u043c\u0435\u043d\u0442 \u0437\u0430 {1} +Run.BuildAborted=\ + \u041f\u0440\u0435\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0435\u043d\u043e \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 +Run.MarkedExplicitly=\ + \u0422\u043e\u0437\u0438 \u0437\u0430\u043f\u0438\u0441 \u0435 \u043e\u0442\u0431\u0435\u043b\u044f\u0437\u0430\u043d \u0437\u0430 \u0441\u044a\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435. +Run.Permissions.Title=\ + \u0418\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 +Run.running_as_=\ + \u0418\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u0430\u0442\u043e \u201e{0}\u201c +Run.UnableToDelete=\ + \u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0438\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u201e{0}\u201c: {1} +Run.DeletePermission.Description=\ + \u0422\u043e\u0432\u0430 \u0434\u0430\u0432\u0430 \u043f\u0440\u0430\u0432\u043e \u0437\u0430 \u0438\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u043f\u043e\u0441\u043e\u0447\u0435\u043d\u0438 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u044f \u043e\u0442 \u0438\u0441\u0442\u043e\u0440\u0438\u044f\u0442\u0430 \u043d\u0430\ + \u0437\u0430\u0434\u0430\u0447\u0438\u0442\u0435. +Run.UpdatePermission.Description=\ + \u0422\u043e\u0432\u0430 \u0434\u0430\u0432\u0430 \u043f\u0440\u0430\u0432\u043e \u0437\u0430 \u043f\u0440\u043e\u043c\u044f\u043d\u0430\u0442\u0430 \u043d\u0430 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u0442\u043e \u0438 \u0434\u0440\u0443\u0433\u0438\u0442\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435.\ + \u0422\u0430\u043a\u0430 \u043c\u043e\u0433\u0430\u0442 \u0434\u0430 \u0441\u0435 \u0437\u0430\u043f\u0430\u0437\u0432\u0430\u0442 \u043f\u0440\u0438\u0447\u0438\u043d\u0438\u0442\u0435 \u0437\u0430 \u043d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440. +Run.ArtifactsPermission.Description=\ + \u0422\u043e\u0432\u0430 \u0434\u0430\u0432\u0430 \u043f\u0440\u0430\u0432\u043e \u0437\u0430 \u0434\u043e\u0441\u0442\u044a\u043f \u0434\u043e \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0438\u0442\u0435, \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438 \u043e\u0442 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u044f\u0442\u0430. \u041d\u0435\ + \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0442\u043e\u0432\u0430 \u043f\u0440\u0430\u0432\u043e, \u0430\u043a\u043e \u0438\u0441\u043a\u0430\u0442\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0438\u0442\u0435 \u0434\u0430 \u043d\u0435 \u043c\u043e\u0433\u0430\u0442 \u0434\u0430 \u0438\u0437\u0442\u0435\u0433\u043b\u044f\u0442\ + \u0438\u0437\u0433\u0440\u0430\u0434\u0435\u043d\u043e\u0442\u043e. +Run.InProgressDuration=\ + {0} \u0438 \u0440\u0430\u0441\u0442\u0435 +Run.NotStartedYet=\ + \u041e\u0449\u0435 \u043d\u0435 \u0435 \u0437\u0430\u043f\u043e\u0447\u043d\u0430\u043b\u043e +Run.ArtifactsBrowserTitle= + \u0410\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0438 \u043d\u0430 {0} {1} + +Run.Summary.Stable=\ + \u0441\u0442\u0430\u0431\u0438\u043b\u043d\u043e +Run.Summary.Unstable=\ + \u043d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u043d\u043e +Run.Summary.Aborted=\ + \u043f\u0440\u0435\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0435\u043d\u043e +Run.Summary.NotBuilt=\ + \u043d\u0435\u0438\u0437\u0433\u0440\u0430\u0434\u0435\u043d\u043e +Run.Summary.BackToNormal=\ + \u043d\u043e\u0440\u043c\u0430\u043b\u043d\u043e +Run.Summary.BrokenForALongTime=\ + \u0441\u0447\u0443\u043f\u0435\u043d\u043e \u043e\u0442 \u043c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435 +Run.Summary.BrokenSinceThisBuild=\ + \u0441\u0447\u0443\u043f\u0435\u043d\u043e \u043e\u0442 \u0442\u043e\u0432\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 +Run.Summary.BrokenSince=\ + \u0441\u0447\u0443\u043f\u0435\u043d\u043e \u043e\u0442 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 \u2116\u200a{0} +Run.Summary.Unknown=\ + \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e + +Slave.InvalidConfig.Executors=\ + \u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u043d\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0430 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440 \u201e{0}\u201c \u2014 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u0435\u043d \u0431\u0440\u043e\u0439 \u043d\u0430\ + \u0438\u0437\u043f\u044a\u043b\u043d\u0438\u0442\u0435\u043b\u0438\u0442\u0435. +Slave.InvalidConfig.NoName=\ + \u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u043d\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0430 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440 \u2014 \u0438\u043c\u0435\u0442\u043e \u0435 \u043f\u0440\u0430\u0437\u043d\u043e. +Slave.InvalidConfig.NoRemoteDir=\ + \u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u043d\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0430 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440 \u201e{0}\u201c \u2014 \u043b\u0438\u043f\u0441\u0432\u0430 \u043e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f. +Slave.Launching=\ + {0} \u2014 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d \u043f\u0440\u043e\u0446\u0435\u0441 +Slave.Network.Mounted.File.System.Warning=\ + \u0421\u0438\u0433\u0443\u0440\u043d\u0438 \u043b\u0438 \u0441\u0442\u0435, \u0447\u0435 \u0438\u0441\u043a\u0430\u0442\u0435 \u0441\u0430 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0442\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430, \u043c\u043e\u043d\u0442\u0438\u0440\u0430\u043d\u0430 \u043f\u043e\ + \u043c\u0440\u0435\u0436\u0430\u0442\u0430, \u043a\u0430\u0442\u043e \u043a\u043e\u0440\u0435\u043d\u043e\u0432\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f? \u041d\u044f\u043c\u0430 \u043d\u0443\u0436\u0434\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f\u0442\u0430 \u0434\u0430 \u0441\u0435 \u0432\u0438\u0436\u0434\u0430 \u043e\u0442\ + \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0432\u0430\u0449\u0438\u044f \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440. +Slave.Remote.Director.Mandatory=\ + \u041e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u0430\u0442\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0435 \u0437\u0430\u0434\u044a\u043b\u0436\u0438\u0442\u0435\u043b\u043d\u0430. +Slave.Terminated=\ + {0} \u2014 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u0438\u044f\u0442 \u043f\u0440\u043e\u0446\u0435\u0441 \u0431\u0435 \u043f\u0440\u0435\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0435\u043d +Slave.Remote.Relative.Path.Warning=\ + \u0421\u0438\u0433\u0443\u0440\u043d\u0438 \u043b\u0438 \u0441\u0442\u0435, \u0447\u0435 \u0438\u0441\u043a\u0430\u0442\u0435 \u0441\u0430 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0442\u0435 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u0435\u043d \u043f\u044a\u0442 \u043a\u0430\u0442\u043e \u043a\u043e\u0440\u0435\u043d\u043e\u0432\u0430\ + \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f? \u041f\u0440\u043e\u0432\u0435\u0440\u0435\u0442\u0435 \u0434\u0430\u043b\u0438 \u0438\u0437\u0431\u0440\u0430\u043d\u0438\u044f\u0442 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u0449 \u043f\u0440\u043e\u0446\u0435\u0441 \u043e\u0441\u0438\u0433\u0443\u0440\u044f\u0432\u0430 \u043a\u043e\u043d\u0441\u0438\u0441\u0442\u0435\u043d\u0442\u043d\u043e\u0441\u0442\ + \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0430\u0442\u0430 \u0440\u0430\u0431\u043e\u0442\u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f. \u041f\u0440\u0435\u043f\u043e\u0440\u044a\u0447\u0438\u0442\u0435\u043b\u043d\u043e \u0435 \u0434\u0430 \u043f\u043e\u043b\u0437\u0432\u0430\u0442\u0435 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u0435\u043d \u043f\u044a\u0442. +Slave.UnableToLaunch=\ + \u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d \u043f\u0440\u043e\u0446\u0435\u0441 \u0437\u0430 \u201e{0}{1}\u201c +Slave.UnixSlave=\ + \u041f\u043e\u0434\u0447\u0438\u043d\u0435\u043d \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440 \u0441 Unix. +Slave.WindowsSlave=\ + \u041f\u043e\u0434\u0447\u0438\u043d\u0435\u043d \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440 \u0441 Windows. + +TopLevelItemDescriptor.NotApplicableIn=\ + {0} \u0435\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043d\u0435 \u043c\u043e\u0433\u0430\u0442 \u0434\u0430 \u0441\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0430\u0442 \u0432 {1} + +UpdateCenter.DownloadButNotActivated=\ + \u0423\u0441\u043f\u0435\u0448\u043d\u043e \u0438\u0437\u0442\u0435\u0433\u043b\u044f\u043d\u0435. \u0429\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0438 \u0441\u043b\u0435\u0434 \u0441\u043b\u0435\u0434\u0432\u0430\u0449\u043e\u0442\u043e \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435. +UpdateCenter.n_a=\ + \u041b\u0438\u043f\u0441\u0432\u0430 +View.Permissions.Title=\ + \u0418\u0437\u0433\u043b\u0435\u0434 +View.CreatePermission.Description=\ + \u0422\u043e\u0432\u0430 \u0434\u0430\u0432\u0430 \u043f\u0440\u0430\u0432\u043e \u0437\u0430 \u0441\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043d\u043e\u0432\u0438 \u0438\u0437\u0433\u043b\u0435\u0434\u0438. +View.DeletePermission.Description=\ + \u0422\u043e\u0432\u0430 \u0434\u0430\u0432\u0430 \u043f\u0440\u0430\u0432\u043e \u0437\u0430 \u0438\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430\u0449\u0438 \u0438\u0437\u0433\u043b\u0435\u0434\u0438. +View.ConfigurePermission.Description=\ + \u0422\u043e\u0432\u0430 \u0434\u0430\u0432\u0430 \u043f\u0440\u0430\u0432\u043e \u0437\u0430 \u043f\u0440\u043e\u043c\u044f\u043d\u0430 \u043d\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u0442\u0435 \u043d\u0430 \u0438\u0437\u0433\u043b\u0435\u0434\u0438\u0442\u0435. +View.ReadPermission.Description=\ + \u0422\u043e\u0432\u0430 \u0434\u0430\u0432\u0430 \u043f\u0440\u0430\u0432\u043e \u0437\u0430 \u0432\u0438\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u0433\u043b\u0435\u0434\u0438\u0442\u0435 (\u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430 \u0441\u0435 \u043f\u0440\u0438 \u043e\u0431\u0449\u043e \u043f\u0440\u0430\u0432\u043e \u0437\u0430\ + \u0434\u043e\u0441\u0442\u044a\u043f). +View.MissingMode=\ + \u0412\u0438\u0434\u044a\u0442 \u043d\u0430 \u0438\u0437\u0433\u043b\u0435\u0434\u0430 \u043d\u0435 \u0435 \u0438\u0437\u0431\u0440\u0430\u043d. + +UpdateCenter.Status.CheckingInternet=\ + \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0430\u0442\u0430 \u043a\u044a\u043c \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442 +UpdateCenter.Status.CheckingJavaNet=\ + \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0430\u0442\u0430 \u043a\u044a\u043c \u0446\u0435\u043d\u0442\u044a\u0440\u0430 \u0437\u0430 \u043e\u0431\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 +UpdateCenter.Status.Success=\ + \u0423\u0441\u043f\u0435\u0445 +UpdateCenter.Status.UnknownHostException=\ + \u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0430\u0434\u0440\u0435\u0441\u0430 \u201e{0}\u201c.\ + \u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u0435\ + \u0441\u044a\u0440\u0432\u044a\u0440-\u043f\u043e\u0441\u0440\u0435\u0434\u043d\u0438\u043a \u0437\u0430 HTTP. +UpdateCenter.Status.ConnectionFailed=\ + \u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u0435\ + \u0441\u044a\u0440\u0432\u044a\u0440-\u043f\u043e\u0441\u0440\u0435\u0434\u043d\u0438\u043a \u0437\u0430 HTTP. +UpdateCenter.init=\ + \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0446\u0435\u043d\u0442\u044a\u0440\u0430 \u0437\u0430 \u043e\u0431\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 +UpdateCenter.PluginCategory.android=\ + \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u0438\u0440\u0430\u043d\u0435 \u0437\u0430 Android +UpdateCenter.PluginCategory.builder=\ + \u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0438 \u0437\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 +UpdateCenter.PluginCategory.buildwrapper=\ + \u0421\u043a\u0440\u0438\u043f\u0442\u043e\u0432\u0435, \u043e\u0431\u0432\u0438\u0432\u0430\u0449\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0438\u0442\u0435 \u0437\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 +UpdateCenter.PluginCategory.cli=\ + \u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0438\u044f \u0440\u0435\u0434 +UpdateCenter.PluginCategory.cloud=\ + \u0414\u043e\u0441\u0442\u0430\u0432\u0447\u0438\u0446\u0438 \u043d\u0430 \u043e\u0431\u043b\u0430\u0447\u043d\u0438 \u0443\u0441\u043b\u0443\u0433\u0438 +UpdateCenter.PluginCategory.cluster=\ + \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u043a\u043b\u044a\u0441\u0442\u044a\u0440\u0430 \u0438 \u0440\u0430\u0437\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e\u0442\u043e \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 +UpdateCenter.PluginCategory.database=\ + \u0411\u0430\u0437\u0438 \u043e\u0442 \u0434\u0430\u043d\u043d\u0438 +UpdateCenter.PluginCategory.deployment=\ + \u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 +UpdateCenter.PluginCategory.devops=\ + DevOps +UpdateCenter.PluginCategory.dotnet=\ + \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u0438\u0440\u0430\u043d\u0435 \u0437\u0430 .NET +UpdateCenter.PluginCategory.external=\ + \u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441\u044a\u0441 \u0441\u0430\u0439\u0442\u043e\u0432\u0435 \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0438 +UpdateCenter.PluginCategory.groovy-related=\ + \u0421\u0432\u044a\u0440\u0437\u0430\u043d\u0438 \u0441 Groovy +UpdateCenter.PluginCategory.ios=\ + \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u0438\u0440\u0430\u043d\u0435 \u0437\u0430 iOS +UpdateCenter.PluginCategory.library=\ + \u041f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 (\u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0442 \u0441\u0435 \u043e\u0442 \u0434\u0440\u0443\u0433\u0438 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438) +UpdateCenter.PluginCategory.listview-column=\ + \u041a\u043e\u043b\u043e\u043d\u0438 \u0432 \u0441\u043f\u0438\u0441\u044a\u0447\u043d\u0438\u044f \u0438\u0437\u0433\u043b\u0435\u0434 +UpdateCenter.PluginCategory.maven=\ + Maven +UpdateCenter.PluginCategory.misc=\ + \u0420\u0430\u0437\u043d\u0438 +UpdateCenter.PluginCategory.notifier=\ + \u0418\u0437\u0432\u0435\u0441\u0442\u044f\u0432\u0430\u043d\u0435 \u043f\u0440\u0438 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 +UpdateCenter.PluginCategory.page-decorator=\ + \u0414\u0435\u043a\u043e\u0440\u0430\u0446\u0438\u044f \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0438\u0442\u0435 +UpdateCenter.PluginCategory.parameter=\ + \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438 \u0437\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 +UpdateCenter.PluginCategory.post-build=\ + \u0414\u043e\u043f\u044a\u043b\u043d\u0438\u0442\u0435\u043b\u043d\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441\u043b\u0435\u0434 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 +UpdateCenter.PluginCategory.python=\ + \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 Python +UpdateCenter.PluginCategory.report=\ + \u041e\u0442\u0447\u0435\u0442\u0438 \u0437\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u044f\u0442\u0430 +UpdateCenter.PluginCategory.ruby=\ + \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 Ruby +UpdateCenter.PluginCategory.runcondition=\ + \u0423\u0441\u043b\u043e\u0432\u0438\u044f \u0437\u0430 \u0438\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 (\u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430 \u0441\u0435 \u043e\u0442 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430\u0442 RunConditions) +UpdateCenter.PluginCategory.scala=\ + \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 Scala +UpdateCenter.PluginCategory.scm=\ + \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0437\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u0438\u0442\u0435 +UpdateCenter.PluginCategory.scm-related=\ + \u041e\u0449\u0435 \u0437\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u0442\u043e \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u0438\u0442\u0435 +UpdateCenter.PluginCategory.security=\ + \u0421\u0438\u0433\u0443\u0440\u043d\u043e\u0441\u0442 +UpdateCenter.PluginCategory.slaves=\ + \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u0438\u0442\u0435 \u0438\u0437\u043f\u044a\u043b\u043d\u0438\u0442\u0435\u043b\u0438 \u043d\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 +UpdateCenter.PluginCategory.test=\ + \u0422\u0435\u0441\u0442\u0432\u0430\u043d\u0435 +UpdateCenter.PluginCategory.trigger=\ + \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u044f +UpdateCenter.PluginCategory.ui=\ + \u041f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0441\u043a\u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 +UpdateCenter.PluginCategory.upload=\ + \u041a\u0430\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0438 +UpdateCenter.PluginCategory.user=\ + \u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0438 +UpdateCenter.PluginCategory.view=\ + \u0418\u0437\u0433\u043b\u0435\u0434\u0438 +UpdateCenter.PluginCategory.must-be-labeled=\ + \u0411\u0435\u0437 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f +UpdateCenter.PluginCategory.unrecognized=\ + \u0420\u0430\u0437\u043d\u0438 ({0}) + +Permalink.LastBuild=\ + \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u043e \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 +Permalink.LastStableBuild=\ + \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u043e \u0441\u0442\u0430\u0431\u0438\u043b\u043d\u043e \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 +Permalink.LastUnstableBuild=\ + \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u043e \u043d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u043d\u043e \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 +Permalink.LastUnsuccessfulBuild=\ + \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u043e \u043d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 +Permalink.LastSuccessfulBuild=\ + \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u043e \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 +Permalink.LastFailedBuild=\ + \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u043e \u043d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 +Permalink.LastCompletedBuild=\ + \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u043e \u0437\u0430\u0432\u044a\u0440\u0448\u0435\u043d\u043e \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 + +ParameterAction.DisplayName=\ + \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438 +ParametersDefinitionProperty.DisplayName=\ + \u0422\u043e\u0432\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 \u0435 \u043f\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438 +StringParameterDefinition.DisplayName=\ + \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u044a\u0440-\u043d\u0438\u0437 +TextParameterDefinition.DisplayName=\ + \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u044a\u0440-\u0442\u0435\u043a\u0441\u0442 +FileParameterDefinition.DisplayName=\ + \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u044a\u0440-\u0444\u0430\u0439\u043b +BooleanParameterDefinition.DisplayName=\ + \u0411\u0443\u043b\u0435\u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u044a\u0440 +ChoiceParameterDefinition.DisplayName=\ + \u0421\u043f\u0438\u0441\u044a\u0447\u0435\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u044a\u0440 +ChoiceParameterDefinition.MissingChoices=\ + \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u0435 \u0441\u043f\u0438\u0441\u044a\u043a \u043e\u0442 \u0441\u0442\u043e\u0439\u043d\u043e\u0441\u0442\u0438. +RunParameterDefinition.DisplayName=\ + \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u044a\u0440 \u0437\u0430 \u0438\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 +PasswordParameterDefinition.DisplayName=\ + \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u044a\u0440-\u043f\u0430\u0440\u043e\u043b\u0430 + +Node.BecauseNodeIsReserved=\ + \u201e{0}\u201c \u0435 \u0437\u0430\u043f\u0430\u0437\u0435\u043d\u0430 \u0437\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441 \u043e\u0442\u0433\u043e\u0432\u0430\u0440\u044f\u0449 \u0435\u0442\u0438\u043a\u0435\u0442. +Node.BecauseNodeIsNotAcceptingTasks=\ + \u201e{0}\u201c \u043d\u0435 \u043f\u0440\u0438\u0435\u043c\u0430 \u0437\u0430\u0434\u0430\u0447\u0438. +Node.LabelMissing=\ + \u201e{0}\u201c \u043d\u044f\u043c\u0430 \u0435\u0442\u0438\u043a\u0435\u0442\u0430 \u201e{1}\u201c. +Node.LackingBuildPermission=\ + \u201e{0}\u201c \u043d\u044f\u043c\u0430 \u043f\u0440\u0430\u0432\u043e \u0434\u0430 \u0441\u0435 \u0438\u0437\u043f\u044a\u043b\u043d\u044f\u0432\u0430 \u043e\u0442 \u201e{1}\u201c. +Node.Mode.NORMAL=\ + \u0422\u0430\u0437\u0438 \u043c\u0430\u0448\u0438\u043d\u0430 \u0434\u0435 \u0441\u0435 \u043f\u043e\u043b\u0437\u0432\u0430 \u0432\u044a\u0437\u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439-\u043c\u043d\u043e\u0433\u043e. +Node.Mode.EXCLUSIVE=\ + \u0414\u0430 \u0441\u0435 \u0438\u0437\u043f\u044a\u043b\u043d\u044f\u0432\u0430\u0442 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441 \u0435\u0442\u0438\u043a\u0435\u0442\u0438 \u043e\u0442\u0433\u043e\u0432\u0430\u0440\u044f\u0449\u0438 \u043d\u0430 \u0442\u0430\u0437\u0438 \u043c\u0430\u0448\u0438\u043d\u0430. + +ListView.DisplayName=\ + \u0421\u043f\u0438\u0441\u044a\u0447\u0435\u043d \u0438\u0437\u0433\u043b\u0435\u0434 + +MyView.DisplayName=\ + \u041c\u043e\u044f\u0442 \u0438\u0437\u0433\u043b\u0435\u0434 + +LoadStatistics.Legends.DefinedExecutors=\ + \u0414\u0435\u0444\u0438\u043d\u0438\u0440\u0430\u043d\u0438 \u043c\u0430\u0448\u0438\u043d\u0438-\u0438\u0437\u043f\u044a\u043b\u043d\u0438\u0442\u0435\u043b\u0438 +LoadStatistics.Legends.OnlineExecutors=\ + \u041c\u0430\u0448\u0438\u043d\u0438-\u0438\u0437\u043f\u044a\u043b\u043d\u0438\u0442\u0435\u043b\u0438 \u043d\u0430 \u043b\u0438\u043d\u0438\u044f +LoadStatistics.Legends.ConnectingExecutors=\ + \u0421\u0432\u044a\u0440\u0437\u0430\u043d\u0438 \u043c\u0430\u0448\u0438\u043d\u0438-\u0438\u0437\u043f\u044a\u043b\u043d\u0438\u0442\u0435\u043b\u0438 +LoadStatistics.Legends.TotalExecutors=\ + \u041e\u0431\u0449\u043e \u043c\u0430\u0448\u0438\u043d\u0438-\u0438\u0437\u043f\u044a\u043b\u043d\u0438\u0442\u0435\u043b\u0438 +LoadStatistics.Legends.BusyExecutors=\ + \u0417\u0430\u0435\u0442\u0438 \u043c\u0430\u0448\u0438\u043d\u0438-\u0438\u0437\u043f\u044a\u043b\u043d\u0438\u0442\u0435\u043b\u0438 +LoadStatistics.Legends.IdleExecutors=\ + \u0421\u0432\u043e\u0431\u043e\u0434\u043d\u0438 \u043c\u0430\u0448\u0438\u043d\u0438-\u0438\u0437\u043f\u044a\u043b\u043d\u0438\u0442\u0435\u043b\u0438 +LoadStatistics.Legends.AvailableExecutors=\ + \u041d\u0430\u043b\u0438\u0447\u043d\u0438 \u043c\u0430\u0448\u0438\u043d\u0438-\u0438\u0437\u043f\u044a\u043b\u043d\u0438\u0442\u0435\u043b\u0438 +LoadStatistics.Legends.QueueLength=\ + \u0414\u044a\u043b\u0436\u0438\u043d\u0430 \u043d\u0430 \u043e\u043f\u0430\u0448\u043a\u0430\u0442\u0430 + +Cause.LegacyCodeCause.ShortDescription=\ + \u0421\u0442\u0430\u0440 \u043a\u043e\u0434 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430 \u0442\u0430\u0437\u0438 \u0437\u0430\u0434\u0430\u0447\u0430 \u2014 \u043b\u0438\u043f\u0441\u0432\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u0442\u0430. +Cause.UpstreamCause.ShortDescription=\ + \u0421\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0430 \u043e\u0442 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u201e{0}\u201c, \u043e\u0442 \u043a\u043e\u0439\u0442\u043e \u0442\u044f \u0437\u0430\u0432\u0438\u0441\u0438, \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 \u2116\u200a{1} +Cause.UpstreamCause.CausedBy=\ + \u043f\u044a\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u043d\u043e \u043f\u043e\u0440\u0430\u0434\u0438: +Cause.UserCause.ShortDescription=\ + \u0421\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0430 \u043e\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b: \u201e{0}\u201c +Cause.UserIdCause.ShortDescription=\ + \u0421\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0430 \u043e\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b: \u201e{0}\u201c +Cause.RemoteCause.ShortDescription=\ + \u0421\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u043e \u043e\u0442 \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440\u0430: \u201e{0}\u201c +Cause.RemoteCause.ShortDescriptionWithNote=\ + \u0421\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u043e \u043e\u0442 \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440\u0430: \u201e{0}\u201c \u0441\u044a\u0441 \u0441\u043b\u0435\u0434\u043d\u0430\u0442\u0430 \u0431\u0435\u043b\u0435\u0436\u043a\u0430: \u201e{1}\u201c + +ProxyView.NoSuchViewExists=\ + \u0413\u043b\u043e\u0431\u0430\u043b\u043d\u0438\u044f\u0442 \u0438\u0437\u0433\u043b\u0435\u0434 \u201e{0}\u201c \u043d\u0435 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430 +ProxyView.DisplayName=\ + \u0412\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0433\u043b\u043e\u0431\u0430\u043b\u0435\u043d \u0438\u0437\u0433\u043b\u0435\u0434 + +MyViewsProperty.DisplayName=\ + \u041c\u043e\u0438\u0442\u0435 \u0438\u0437\u0433\u043b\u0435\u0434\u0438 +MyViewsProperty.GlobalAction.DisplayName=\ + \u041c\u043e\u0438\u0442\u0435 \u0438\u0437\u0433\u043b\u0435\u0434\u0438 +MyViewsProperty.ViewExistsCheck.NotExist=\ + \u0418\u0437\u0433\u043b\u0435\u0434 \u0441 \u0438\u043c\u0435 \u201e{0}\u201c \u043d\u0435 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430 +MyViewsProperty.ViewExistsCheck.AlreadyExists=\ + \u0418\u0437\u0433\u043b\u0435\u0434 \u0441 \u0438\u043c\u0435 \u201e{0}\u201c \u0432\u0435\u0447\u0435 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430 + +CLI.restart.shortDescription=\ + \u0420\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 Jenkins +CLI.safe-restart.shortDescription=\ + \u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 Jenkins +CLI.keep-build.shortDescription=\ + \u041e\u0442\u0431\u0435\u043b\u044f\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435\u0442\u043e \u0434\u0430 \u0441\u0435 \u0437\u0430\u043f\u0430\u0437\u0438 \u0437\u0430\u0432\u0438\u043d\u0430\u0433\u0438. +CLI.quiet-down.shortDescription=\ + \u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043d\u0430 Jenkins \u0437\u0430 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435. \u0414\u0430 \u043d\u0435 \u0441\u0435 \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u0442 \u043d\u043e\u0432\u0438 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u044f. +CLI.cancel-quiet-down.shortDescription=\ + \u041e\u0442\u043c\u044f\u043d\u0430 \u043d\u0430 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430\u0442\u0430 \u0437\u0430 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u2014 \u0449\u0435 \u0441\u0435 \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u0442 \u043d\u043e\u0432\u0438 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u044f. +CLI.reload-configuration.shortDescription=\ + \u0418\u0437\u0447\u0438\u0441\u0442\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u0430\u043c\u0435\u0442\u0442\u0430 \u0438 \u043f\u0440\u0435\u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u043e \u043d\u0430\u043d\u043e\u0432\u043e \u043e\u0442 \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u0442\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430.\ + \u0422\u043e\u0432\u0430 \u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u043f\u0440\u0438 \u043f\u0440\u043e\u043c\u044f\u043d\u0430 \u043d\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u0442\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043d\u043e \u043f\u043e \u0434\u0438\u0441\u043a\u0430. + +BuildAuthorizationToken.InvalidTokenProvided=\ + \u0417\u0430\u0434\u0430\u0434\u0435\u043d \u0435 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u0435\u043d \u0436\u0435\u0442\u043e\u043d \u0437\u0430 \u0441\u0438\u0433\u0443\u0440\u043d\u043e\u0441\u0442. + +Jenkins.CheckDisplayName.NameNotUniqueWarning=\ + \u0418\u043c\u0435\u0442\u043e \u201e{0}\u201c \u0441\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430 \u0438 \u0437\u0430 \u0437\u0430\u0434\u0430\u0447\u0430, \u043a\u043e\u0435\u0442\u043e \u043c\u043e\u0436\u0435 \u0434\u0430 \u0434\u043e\u0432\u0435\u0434\u0435 \u0434\u043e \u043e\u0431\u044a\u0440\u043a\u0432\u0430\u043d\u0435 \u043f\u0440\u0438\ + \u0442\u044a\u0440\u0441\u0435\u043d\u0435. +Jenkins.CheckDisplayName.DisplayNameNotUniqueWarning=\ + \u0418\u043c\u0435\u0442\u043e \u201e{0}\u201c \u0441\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430 \u0437\u0430 \u0434\u0440\u0443\u0433\u0430 \u0437\u0430\u0434\u0430\u0447\u0430, \u043a\u043e\u0435\u0442\u043e \u043c\u043e\u0436\u0435 \u0434\u0430 \u0434\u043e\u0432\u0435\u0434\u0435 \u0434\u043e \u0437\u0430\u0431\u0430\u0432\u044f\u043d\u0435 \u0438\ + \u043e\u0431\u044a\u0440\u043a\u0432\u0430\u043d\u0435 \u043f\u0440\u0438 \u0442\u044a\u0440\u0441\u0435\u043d\u0435. + +Jenkins.NotAllowedName=\ + \u041d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0442\u0435 \u0438\u043c\u0435\u0442\u043e \u201e{0}\u201c +Jenkins.IsRestarting=\ + Jenkins \u0441\u0435 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430 \u0432 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 + +User.IllegalUsername=\ + \u041d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0442\u0435 \u201e{0}\u201c \u0437\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0441\u043a\u043e \u0438\u043c\u0435 \u0437\u0430\u0440\u0430\u0434\u0438 \u0441\u0438\u0433\u0443\u0440\u043d\u043e\u0441\u0442\u0442\u0430. +User.IllegalFullname=\ + \u041d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0442\u0435 \u201e{0}\u201c \u0437\u0430 \u043f\u044a\u043b\u043d\u043e \u0438\u043c\u0435 \u0437\u0430\u0440\u0430\u0434\u0438 \u0441\u0438\u0433\u0443\u0440\u043d\u043e\u0441\u0442\u0442\u0430. diff --git a/core/src/main/resources/hudson/model/Messages_da.properties b/core/src/main/resources/hudson/model/Messages_da.properties index 0d56bd9348..398a544ac9 100644 --- a/core/src/main/resources/hudson/model/Messages_da.properties +++ b/core/src/main/resources/hudson/model/Messages_da.properties @@ -216,7 +216,6 @@ Queue.InProgress=Et byg er allerede i gang Computer.DeletePermission.Description=Denne rettighed tillader brugere at slette eksisterende slaver. UpdateCenter.Status.ConnectionFailed= UpdateCenter.PluginCategory.maven=Maven -CLI.online-node.shortDescription=Genoptag brugen af en byggenode, for at annullere en tidligere udstedt "offline-node" kommando. Computer.Permissions.Title=Slave BallColor.Success=Succes UpdateCenter.PluginCategory.upload=Artifaktsendere diff --git a/core/src/main/resources/hudson/model/Messages_de.properties b/core/src/main/resources/hudson/model/Messages_de.properties index 224c57120b..5200d02ed0 100644 --- a/core/src/main/resources/hudson/model/Messages_de.properties +++ b/core/src/main/resources/hudson/model/Messages_de.properties @@ -84,7 +84,6 @@ CLI.enable-job.shortDescription=Job aktivieren. CLI.connect-node.shortDescription=Erneut mit Knoten verbinden. CLI.disconnect-node.shortDescription=Knoten trennen. CLI.offline-node.shortDescription=Knoten wird bis zum n\u00e4chsten "online-node"-Kommando f\u00fcr keine neuen Builds verwendet. -CLI.online-node.shortDescription=Knoten wird wieder f\u00fcr neue Builds verwendet. Hebt ein vorausgegangenes "offline-node"-Kommando auf. CLI.safe-restart.shortDescription=Startet Jenkins neu. Queue.init=Build-Warteschlange neu initialisieren diff --git a/core/src/main/resources/hudson/model/Messages_es.properties b/core/src/main/resources/hudson/model/Messages_es.properties index 80298ea215..6d34cc004d 100644 --- a/core/src/main/resources/hudson/model/Messages_es.properties +++ b/core/src/main/resources/hudson/model/Messages_es.properties @@ -61,7 +61,6 @@ CLI.disable-job.shortDescription=Desactivar una tarea CLI.enable-job.shortDescription=Activar una tarea CLI.disconnect-node.shortDescription=Desconectarse de un nodo CLI.connect-node.shortDescription=Reconectarse con un nodo -CLI.online-node.shortDescription=Continuar usando un nodo y candelar el comando "offline-node" mas reciente. CLI.offline-node.shortDescription=Dejar de utilizar un nodo temporalmente hasta que se ejecute el comando "online-node". Computer.Caption=Remoto {0} diff --git a/core/src/main/resources/hudson/model/Messages_it.properties b/core/src/main/resources/hudson/model/Messages_it.properties index e4fcfab23f..6b5ceb2116 100644 --- a/core/src/main/resources/hudson/model/Messages_it.properties +++ b/core/src/main/resources/hudson/model/Messages_it.properties @@ -78,7 +78,6 @@ CLI.disable-job.shortDescription=Disabilita un job CLI.enable-job.shortDescription=Abilita un job CLI.disconnect-node.shortDescription=Disconnects from a node CLI.connect-node.shortDescription=Riconnettersi ad un nodo -CLI.online-node.shortDescription=Resume using a node for performing builds, to cancel out the earlier "offline-node" command. CLI.offline-node.shortDescription=Stop using a node for performing builds temporarily, until the next "online-node" command. CLI.wait-node-online.shortDescription=Attende che il nodo sia attivo CLI.wait-node-offline.shortDescription=Attende che un nodo sia disattivo diff --git a/core/src/main/resources/hudson/model/Messages_ja.properties b/core/src/main/resources/hudson/model/Messages_ja.properties index 688164d11f..a861286d67 100644 --- a/core/src/main/resources/hudson/model/Messages_ja.properties +++ b/core/src/main/resources/hudson/model/Messages_ja.properties @@ -320,7 +320,6 @@ CLI.disable-job.shortDescription=\u30b8\u30e7\u30d6\u3092\u7121\u52b9\u5316\u305 CLI.enable-job.shortDescription=\u30b8\u30e7\u30d6\u3092\u6709\u52b9\u5316\u3057\u307e\u3059\u3002 CLI.disconnect-node.shortDescription=\u30ce\u30fc\u30c9\u3068\u306e\u63a5\u7d9a\u3092\u5207\u65ad\u3057\u307e\u3059\u3002 CLI.connect-node.shortDescription=\u30ce\u30fc\u30c9\u3068\u518d\u63a5\u7d9a\u3057\u307e\u3059\u3002 -CLI.online-node.shortDescription=\u76f4\u524d\u306b\u5b9f\u884c\u3057\u305f"online-node"\u30b3\u30de\u30f3\u30c9\u3092\u53d6\u308a\u6d88\u3057\u3001\u30d3\u30eb\u30c9\u3092\u5b9f\u884c\u3059\u308b\u30ce\u30fc\u30c9\u306e\u4f7f\u7528\u3092\u518d\u958b\u3057\u307e\u3059\u3002 CLI.offline-node.shortDescription="online-node"\u30b3\u30de\u30f3\u30c9\u304c\u5b9f\u884c\u3055\u308c\u308b\u307e\u3067\u3001\u30d3\u30eb\u30c9\u3092\u5b9f\u884c\u3059\u308b\u30ce\u30fc\u30c9\u306e\u4f7f\u7528\u3092\u4e00\u6642\u7684\u306b\u505c\u6b62\u3057\u307e\u3059\u3002 CLI.wait-node-online.shortDescription=\u30ce\u30fc\u30c9\u304c\u30aa\u30f3\u30e9\u30a4\u30f3\u306b\u306a\u308b\u306e\u3092\u5f85\u3061\u307e\u3059\u3002 CLI.wait-node-offline.shortDescription=\u30ce\u30fc\u30c9\u304c\u30aa\u30d5\u30e9\u30a4\u30f3\u306b\u306a\u308b\u306e\u3092\u5f85\u3061\u307e\u3059\u3002 diff --git a/core/src/main/resources/hudson/model/Messages_pt_BR.properties b/core/src/main/resources/hudson/model/Messages_pt_BR.properties index b3c522587d..4f2f98122b 100644 --- a/core/src/main/resources/hudson/model/Messages_pt_BR.properties +++ b/core/src/main/resources/hudson/model/Messages_pt_BR.properties @@ -357,8 +357,6 @@ UpdateCenter.Status.ConnectionFailed=Erro ao conectar {0} / UpdateCenter.PluginCategory.maven=Maven # Slave Computer.Permissions.Title=Slave -# Resume using a node for performing builds, to cancel out the earlier "offline-node" command. -CLI.online-node.shortDescription=Continuar usando um n\u00f3 para realizar os builds # Artifact Uploaders UpdateCenter.PluginCategory.upload=Carregadores de artefatos # Last unstable build diff --git a/core/src/main/resources/hudson/model/queue/Messages_bg.properties b/core/src/main/resources/hudson/model/queue/Messages_bg.properties new file mode 100644 index 0000000000..ecdebcf22b --- /dev/null +++ b/core/src/main/resources/hudson/model/queue/Messages_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation copyright 2015 Alexander Shopov . +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +QueueSorter.installDefaultQueueSorter=\ + \u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043c\u043e\u0434\u0443\u043b\u0430 \u0437\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430 \u043f\u043e\u0434\u0440\u0435\u0434\u0431\u0430 \u043d\u0430 \u043e\u043f\u0430\u0448\u043a\u0438 diff --git a/core/src/main/resources/hudson/node_monitors/Messages_bg.properties b/core/src/main/resources/hudson/node_monitors/Messages_bg.properties new file mode 100644 index 0000000000..cbbb31c381 --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/Messages_bg.properties @@ -0,0 +1,46 @@ +# The MIT License +# +# Bulgarian translation copyright 2015 Alexander Shopov . +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +ArchitectureMonitor.DisplayName=\ + \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 +ClockMonitor.DisplayName=\ + \u0420\u0430\u0437\u043b\u0438\u043a\u0430 \u0432 \u0447\u0430\u0441\u043e\u0432\u043d\u0438\u0446\u0438\u0442\u0435 +DiskSpaceMonitor.MarkedOffline=\ + \u0412\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0438\u0437\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u201e{0}\u201c \u2014 \u043d\u044f\u043c\u0430 \u0434\u043e\u0441\u0442\u0430\u0442\u044a\u0447\u043d\u043e \u0434\u0438\u0441\u043a\u043e\u0432\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e +DiskSpaceMonitor.MarkedOnline=\ + \u0412\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u201e{0}\u201c \u2014 \u0438\u043c\u0430 \u0434\u043e\u0441\u0442\u0430\u0442\u044a\u0447\u043d\u043e \u0434\u0438\u0441\u043a\u043e\u0432\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e +DiskSpaceMonitor.DisplayName=\ + \u0421\u0432\u043e\u0431\u043e\u0434\u043d\u043e \u0434\u0438\u0441\u043a\u043e\u0432\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e +ResponseTimeMonitor.DisplayName=\ + \u0412\u0440\u0435\u043c\u0435 \u0437\u0430 \u043e\u0442\u0433\u043e\u0432\u043e\u0440 +ResponseTimeMonitor.MarkedOffline=\ + \u0412\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0438\u0437\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u201e{0}\u201c \u2014 \u043b\u0438\u043f\u0441\u0432\u0430 \u043e\u0442\u0433\u043e\u0432\u043e\u0440 +ResponseTimeMonitor.TimeOut=\ + \u0418\u0437\u0442\u0435\u0447\u0435 \u0432\u0440\u0435\u043c\u0435\u0442\u043e \u043f\u0440\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u044f \u043e\u043f\u0438\u0442 \u0437\u0430 \u201e{0}\u201c +SwapSpaceMonitor.DisplayName=\ + \u0421\u0432\u043e\u0431\u043e\u0434\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0437\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0438\u0440\u0430\u043d\u0435 +TemporarySpaceMonitor.DisplayName=\ + \u0421\u0432\u043e\u0431\u043e\u0434\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0437\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0438 \u0434\u0430\u043d\u043d\u0438 +AbstractNodeMonitorDescriptor.NoDataYet=\ + \u041d\u044f\u043c\u0430 \u0434\u0430\u043d\u043d\u0438 +DiskSpaceMonitorDescriptor.DiskSpace.FreeSpaceTooLow=\ + \u0414\u0438\u0441\u043a\u043e\u0432\u043e\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043f\u0440\u0438\u0432\u044a\u0440\u0448\u0432\u0430. \u041d\u0430 {1} \u043e\u0441\u0442\u0430\u0432\u0430\u0442 \u0441\u0430\u043c\u043e {0}\u200aGB. diff --git a/core/src/main/resources/hudson/scheduler/Messages_bg.properties b/core/src/main/resources/hudson/scheduler/Messages_bg.properties new file mode 100644 index 0000000000..50e8002162 --- /dev/null +++ b/core/src/main/resources/hudson/scheduler/Messages_bg.properties @@ -0,0 +1,37 @@ +# The MIT License +# +# Bulgarian translation copyright 2015 Alexander Shopov . +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +BaseParser.StartEndReversed=\ + \u0420\u0430\u0437\u043c\u0435\u043d\u0435\u043d\u0438 \u0441\u0442\u043e\u0439\u043d\u043e\u0441\u0442\u0438, \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e \u0438\u043c\u0430\u0442\u0435 \u043f\u0440\u0435\u0434\u0432\u0438\u0434 \u201e{0}-{1}\u201c? +BaseParser.MustBePositive=\ + \u0421\u0442\u044a\u043f\u043a\u0430\u0442\u0430 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0435 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u043d\u043e \u0447\u0438\u0441\u043b\u043e, \u0430 \u043d\u0435 \u201e{0}\u201c +BaseParser.OutOfRange=\ + \u201e{0}\u201c \u0435 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u043d\u0430 \u0441\u0442\u043e\u0439\u043d\u043e\u0441\u0442. \u0422\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0435 \u043c\u0435\u0436\u0434\u0443 \u201e{1}\u201c \u0438 \u201e{2}\u201c \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u043d\u043e +CronTab.do_you_really_mean_every_minute_when_you=\ + \u0421\u0442\u043e\u0439\u043d\u043e\u0441\u0442\u0442\u0430 \u201e{0}\u201c \u043e\u0437\u043d\u0430\u0447\u0430\u0432\u0430 \u201e\u0432\u0441\u044f\u043a\u0430 \u043c\u0438\u043d\u0443\u0442\u0430\u201c. \u0421\u0438\u0433\u0443\u0440\u043d\u0438 \u043b\u0438 \u0441\u0442\u0435, \u0447\u0435 \u0438\u0441\u043a\u0430\u0442\u0435 \u0442\u043e\u0432\u0430?\ + \u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e \u0438\u043c\u0430\u0442\u0435 \u043f\u0440\u0435\u0434\u0432\u0438\u0434 \u201e{0}\u201c \u2014 \u0432\u0435\u0434\u043d\u044a\u0436 \u043d\u0430 \u0432\u0441\u0435\u043a\u0438 \u0447\u0430\u0441. +CronTab.short_cycles_in_the_day_of_month_field_w=\ + \u041a\u044a\u0441\u0438 \u0446\u0438\u043a\u043b\u0438 \u0432 \u043f\u043e\u043b\u0435\u0442\u043e \u201e\u0434\u0435\u043d \u043e\u0442 \u043c\u0435\u0441\u0435\u0446\u0430\u201c \u0432\u043e\u0434\u044f\u0442 \u0434\u043e \u0441\u0442\u0440\u0430\u043d\u043d\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u043a\u0440\u0430\u044f \u043d\u0430 \u043c\u0435\u0441\u0435\u0446\u0430 +CronTab.spread_load_evenly_by_using_rather_than_=\ + \u0420\u0430\u0437\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u0430 \u043d\u0430\u0442\u043e\u0432\u0430\u0440\u0432\u0430\u043d\u0435\u0442\u043e \u0447\u0440\u0435\u0437 \u201e{0}\u201c, \u0430 \u043d\u0435 \u201e{1}\u201c +CronTabList.InvalidInput=\ + \u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u043d\u0438 \u0432\u0445\u043e\u0434\u043d\u0438 \u0434\u0430\u043d\u043d\u0438: \u201e{0}\u201c: {1} diff --git a/core/src/main/resources/hudson/scm/Messages_bg.properties b/core/src/main/resources/hudson/scm/Messages_bg.properties new file mode 100644 index 0000000000..f61305da6d --- /dev/null +++ b/core/src/main/resources/hudson/scm/Messages_bg.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Bulgarian translation copyright 2015 Alexander Shopov . +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +NullSCM.DisplayName=\ + \u041d\u044f\u043c\u0430 +SCM.Permissions.Title=\ + \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0437\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u0438\u0442\u0435 +SCM.TagPermission.Description=\ + \u0422\u043e\u0432\u0430 \u0434\u0430\u0432\u0430 \u0432\u044a\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442 \u0434\u0430 \u0441\u0435 \u0441\u044a\u0437\u0434\u0430\u0432\u0430 \u043d\u043e\u0432 \u0435\u0442\u0438\u043a\u0435\u0442 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0430 \u0437\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b \u043d\u0430\ + \u0432\u0435\u0440\u0441\u0438\u0438\u0442\u0435 \u043f\u0440\u0438 \u0432\u0441\u044f\u043a\u043e \u043d\u043e\u0432\u043e \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435. diff --git a/core/src/main/resources/hudson/search/Messages_bg.properties b/core/src/main/resources/hudson/search/Messages_bg.properties new file mode 100644 index 0000000000..98eebcad2c --- /dev/null +++ b/core/src/main/resources/hudson/search/Messages_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation copyright 2015 Alexander Shopov . +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +UserSearchProperty.DisplayName=\ + \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0430 \u0442\u044a\u0440\u0441\u0435\u043d\u0435\u0442\u043e diff --git a/core/src/main/resources/hudson/security/Messages_bg.properties b/core/src/main/resources/hudson/security/Messages_bg.properties new file mode 100644 index 0000000000..8fbddade1a --- /dev/null +++ b/core/src/main/resources/hudson/security/Messages_bg.properties @@ -0,0 +1,104 @@ +# The MIT License +# +# Bulgarian translation copyright 2015 Alexander Shopov . +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +GlobalSecurityConfiguration.DisplayName=\ + \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0430 \u0441\u0438\u0433\u0443\u0440\u043d\u043e\u0441\u0442\u0442\u0430 +GlobalSecurityConfiguration.Description=\ + \u041e\u0441\u0438\u0433\u0443\u0440\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u0438\u0433\u0443\u0440\u043d\u043e\u0441\u0442\u0442\u0430 \u043d\u0430 Jenkins \u2014 \u043a\u043e\u0439 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0433\u043e \u0434\u043e\u0441\u0442\u044a\u043f\u0432\u0430 \u0438 \u043f\u043e\u043b\u0437\u0432\u0430. + +HudsonPrivateSecurityRealm.WouldYouLikeToSignUp=\ + \u041f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u044f\u0442 \u043d\u0430 \u201e{0} {1}\u201c \u0435 \u043d\u0435\u043f\u043e\u0437\u043d\u0430\u0442 \u0437\u0430 Jenkins. \u0418\u0441\u043a\u0430\u0442\u0435 \u043b\u0438 \u0434\u0430 \u0433\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0430\u0442\u0435? +LegacyAuthorizationStrategy.DisplayName=\ + \u041e\u0441\u0442\u0430\u0440\u044f\u043b \u0440\u0435\u0436\u0438\u043c + +HudsonPrivateSecurityRealm.DisplayName=\ + \u0411\u0430\u0437\u0430\u0442\u0430 \u043e\u0442 \u0434\u0430\u043d\u043d\u0438 \u0441 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0438 \u043d\u0430 Jenkins +HudsonPrivateSecurityRealm.Details.DisplayName=\ + \u041f\u0430\u0440\u043e\u043b\u0430 +HudsonPrivateSecurityRealm.Details.PasswordError=\ + \u0414\u0432\u0435\u0442\u0435 \u043f\u0430\u0440\u043e\u043b\u0438 \u043d\u0435 \u0441\u044a\u0432\u043f\u0430\u0434\u0430\u0442, \u0430 \u0442\u0440\u044f\u0431\u0432\u0430. \u0412\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u0433\u0438 \u043e\u0442\u043d\u043e\u0432\u043e. +HudsonPrivateSecurityRealm.ManageUserLinks.DisplayName=\ + \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0438\u0442\u0435 +HudsonPrivateSecurityRealm.ManageUserLinks.Description=\ + \u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435/\u0438\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435/\u043f\u0440\u043e\u043c\u044f\u043d\u0430 \u043d\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0438\u0442\u0435 \u043d\u0430 Jenkins + +HudsonPrivateSecurityRealm.CreateAccount.TextNotMatchWordInImage=\ + \u0422\u0435\u043a\u0441\u0442\u044a\u0442 \u043d\u0435 \u043e\u0442\u0433\u043e\u0432\u0430\u0440\u044f \u043d\u0430 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e\u0442\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 +HudsonPrivateSecurityRealm.CreateAccount.PasswordNotMatch=\ + \u041f\u0430\u0440\u043e\u043b\u0430\u0442\u0430 \u043d\u0435 \u0441\u044a\u0432\u043f\u0430\u0434\u0430 +HudsonPrivateSecurityRealm.CreateAccount.PasswordRequired=\ + \u041f\u0430\u0440\u043e\u043b\u0430\u0442\u0430 \u0435 \u0437\u0430\u0434\u044a\u043b\u0436\u0438\u0442\u0435\u043b\u043d\u0430 +HudsonPrivateSecurityRealm.CreateAccount.UserNameRequired=\ + \u0418\u043c\u0435\u0442\u043e \u043d\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u044f \u0435 \u0437\u0430\u0434\u044a\u043b\u0436\u0438\u0442\u0435\u043b\u043d\u043e +HudsonPrivateSecurityRealm.CreateAccount.InvalidEmailAddress=\ + \u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u0435\u043d \u0430\u0434\u0440\u0435\u0441 \u043d\u0430 \u0435-\u043f\u043e\u0449\u0430 +HudsonPrivateSecurityRealm.CreateAccount.UserNameAlreadyTaken=\ + \u0418\u043c\u0435\u0442\u043e \u043d\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u044f \u0435 \u0437\u0430\u0435\u0442\u043e + +FullControlOnceLoggedInAuthorizationStrategy.DisplayName=\ + \u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u0430\u043b\u0438\u0442\u0435 \u0441\u0435, \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0430\u043d\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0438, \u043c\u043e\u0433\u0430\u0442 \u0432\u0441\u0438\u0447\u043a\u043e + +AuthorizationStrategy.DisplayName=\ + \u0412\u0441\u0435\u043a\u0438 \u043c\u043e\u0436\u0435 \u0432\u0441\u0438\u0447\u043a\u043e + +LDAPSecurityRealm.DisplayName=\ + LDAP +LDAPSecurityRealm.SyntaxOfServerField=\ + \u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u044a\u0442 \u043d\u0430 \u043f\u043e\u043b\u0435\u0442\u043e \u0437\u0430 \u0441\u044a\u0440\u0432\u044a\u0440\u0430 \u0435: \u0421\u042a\u0420\u0412\u042a\u0420 \u0438\u043b\u0438 \u0421\u042a\u0420\u0412\u042a\u0420:\u041f\u041e\u0420\u0422, \u0438\u043b\u0438\ + ldaps://\u0421\u042a\u0420\u0412\u042a\u0420[:\u041f\u041e\u0420\u0422] +LDAPSecurityRealm.UnknownHost=\ + \u041d\u0435\u043f\u043e\u0437\u043d\u0430\u0442 \u0445\u043e\u0441\u0442: {0} +LDAPSecurityRealm.UnableToConnect=\ + \u041d\u044f\u043c\u0430 \u0432\u0440\u044a\u0437\u043a\u0430 \u0441 \u201e{0}\u201c : {1} +LDAPSecurityRealm.InvalidPortNumber=\ + \u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u0435\u043d \u043d\u043e\u043c\u0435\u0440 \u043d\u0430 \u043f\u043e\u0440\u0442 + +LegacySecurityRealm.Displayname=\ + \u041e\u0441\u0442\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0437\u0430 \u0441\u044a\u0440\u0432\u043b\u0435\u0442\u0438 \u0434\u0430 \u0441\u0435 \u0433\u0440\u0438\u0436\u0438 \u0437\u0430 \u0442\u043e\u0432\u0430 + +UserDetailsServiceProxy.UnableToQuery=\ + \u041d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u043f\u043e\u043b\u0443\u0447\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u044f \u201e{0}\u201c + +PAMSecurityRealm.DisplayName=\ + \u0411\u0430\u0437\u0430\u0442\u0430 \u043e\u0442 \u0434\u0430\u043d\u043d\u0438 \u0441 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0438 \u0438 \u0433\u0440\u0443\u043f\u0438 \u043d\u0430 Unix +PAMSecurityRealm.ReadPermission=\ + Jenkins \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0447\u0435\u0442\u0435 \u0444\u0430\u0439\u043b\u0430 \u201e/etc/shadow\u201c. +PAMSecurityRealm.BelongToGroup=\ + \u201e{0}\u201c \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0435 \u0432 \u0433\u0440\u0443\u043f\u0430 \u201e{1}\u201c, \u0437\u0430 \u0434\u0430 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0447\u0435\u0442\u0435 \u0444\u0430\u0439\u043b\u0430 \u201e/etc/shadow\u201c. +PAMSecurityRealm.RunAsUserOrBelongToGroupAndChmod=\ + Jenkins \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0435 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d \u043a\u0430\u0442\u043e \u201e{0}\u201c \u0438\u043b\u0438 \u201e{1}\u201c \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0435 \u0432 \u0433\u0440\u0443\u043f\u0430 \u201e{2}\u201c \u0438\ + \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0441\u0435 \u0438\u0437\u043f\u044a\u043b\u043d\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u0442\u0430 \u201echmod g+r /etc/shadow\u201c, \u0437\u0430 \u0434\u0430 \u0441\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u0438 \u043d\u0430\ + Jenkins \u0434\u0430 \u0447\u0435\u0442\u0435 \u0444\u0430\u0439\u043b\u0430 \u201e/etc/shadow\u201c. +PAMSecurityRealm.Success=\ + \u0423\u0441\u043f\u0435\u0445 +PAMSecurityRealm.User=\ + \u041f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b \u201e{0}\u201c +PAMSecurityRealm.CurrentUser=\ + \u0422\u0435\u043a\u0443\u0449\u0438\u044f\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b +PAMSecurityRealm.Uid=\ + \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043d\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b: {0} + +# not in use +Permission.Permissions.Title=\ + \u041b\u0438\u043f\u0441\u0432\u0430 +AccessDeniedException2.MissingPermission=\ + \u201e{0}\u201c \u043d\u044f\u043c\u0430 \u043f\u0440\u0430\u0432\u043e\u0442\u043e \u201e{1}\u201c diff --git a/core/src/main/resources/hudson/security/csrf/Messages_bg.properties b/core/src/main/resources/hudson/security/csrf/Messages_bg.properties new file mode 100644 index 0000000000..c44141cacd --- /dev/null +++ b/core/src/main/resources/hudson/security/csrf/Messages_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation copyright 2015 Alexander Shopov . +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +DefaultCrumbIssuer.DisplayName=\ + \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e \u0441\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u044a\u0442\u0435\u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438 diff --git a/core/src/main/resources/hudson/slaves/Messages_bg.properties b/core/src/main/resources/hudson/slaves/Messages_bg.properties new file mode 100644 index 0000000000..dccd5efbbd --- /dev/null +++ b/core/src/main/resources/hudson/slaves/Messages_bg.properties @@ -0,0 +1,66 @@ +# The MIT License +# +# Bulgarian translation copyright 2015 Alexander Shopov . +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +RetentionStrategy.Always.displayName=\ + \u0422\u043e\u0437\u0438 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440 \u0434\u0430 \u0435 \u0432\u044a\u0437\u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439-\u0434\u044a\u043b\u0433\u043e \u043d\u0430 \u043b\u0438\u043d\u0438\u044f. +RetentionStrategy.Demand.displayName=\ + \u0422\u043e\u0437\u0438 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440 \u0434\u0430 \u0435 \u043d\u0430 \u043b\u0438\u043d\u0438\u044f \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442 \u0438 \u0438\u0437\u043a\u043b\u044e\u0447\u0435\u043d \u0432 \u0434\u0440\u0443\u0433\u043e\u0442\u043e\ + \u0432\u0440\u0435\u043c\u0435. +RetentionStrategy.Demand.OfflineIdle=\ + \u041d\u0435 \u0435 \u043d\u0430 \u043b\u0438\u043d\u0438\u044f, \u0437\u0430\u0449\u043e\u0442\u043e \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440\u044a\u0442 \u0431\u0435\u0437\u0434\u0435\u0439\u0441\u0442\u0432\u0430. \u0429\u0435 \u0441\u0435 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430 \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442. +CommandLauncher.displayName=\ + \u0421\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440 \u0447\u0440\u0435\u0437 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043e\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u0438\u044f. +JNLPLauncher.displayName=\ + \u0421\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u0438\u044f Jenkins \u0447\u0440\u0435\u0437 Java Web Start +ComputerLauncher.unexpectedError=\ + \u041d\u0435\u043e\u0447\u0430\u043a\u0432\u0430\u043d\u0430 \u0433\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u0438\u044f Jenkins. \u0422\u043e\u0432\u0430 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e \u0435\ + \u0433\u0440\u0435\u0448\u043a\u0430 \u0432 \u0441\u0430\u043c\u0438\u044f Jenkins +ComputerLauncher.abortedLaunch=\ + \u041f\u0440\u0435\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0435\u043d\u043e \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u0438\u044f Jenkins. +CommandLauncher.NoLaunchCommand=\ + \u041d\u0435 \u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0437\u0430 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435. +ConnectionActivityMonitor.OfflineCause=\ + \u041c\u043d\u043e\u0433\u043e\u043a\u0440\u0430\u0442\u043d\u0438\u0442\u0435 \u043e\u043f\u0438\u0442\u0438 \u0437\u0430 \u0432\u0440\u044a\u0437\u043a\u0430 \u0447\u0440\u0435\u0437 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u0442\u0430 \u201eping\u201c \u0441\u0430 \u043d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u0438 +DumbSlave.displayName=\ + \u0418\u0437\u0446\u044f\u043b\u043e \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d Jenkins +NodeProvisioner.EmptyString= +OfflineCause.LaunchFailed=\ + \u041c\u0430\u0448\u0438\u043d\u0430\u0442\u0430 \u0435 \u0434\u043e\u043a\u043b\u0430\u0434\u0432\u0430\u043d\u0430 \u043a\u0430\u0442\u043e \u0438\u0437\u043a\u043b\u044e\u0447\u0435\u043d\u0430, \u0437\u0430\u0449\u043e\u0442\u043e \u043e\u043f\u0438\u0442\u044a\u0442 \u0437\u0430 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\ + \u043f\u0440\u043e\u0446\u0435\u0441 \u043d\u0430 Jenkins \u0431\u0435 \u043d\u0435\u0443\u0441\u043f\u0435\u0448\u0435\u043d. +OfflineCause.connection_was_broken_=\ + \u0412\u0440\u044a\u0437\u043a\u0430\u0442\u0430 \u0431\u0435 \u043f\u0440\u0435\u043a\u044a\u0441\u043d\u0430\u0442\u0430: {0} +SimpleScheduledRetentionStrategy.FinishedUpTime=\ + \u041a\u043e\u043c\u043f\u044e\u0442\u044a\u0440\u044a\u0442 \u043f\u0440\u0438\u0432\u044a\u0440\u0448\u0438 \u043f\u043b\u0430\u043d\u0438\u0440\u0430\u043d\u043e\u0442\u043e \u0432\u0440\u0435\u043c\u0435 \u0437\u0430 \u0440\u0430\u0431\u043e\u0442\u0430 +SimpleScheduledRetentionStrategy.displayName=\ + \u0412\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u0438\u044f Jenkins \u043f\u043e \u043f\u043b\u0430\u043d +EnvironmentVariablesNodeProperty.displayName=\ + \u041f\u0440\u043e\u043c\u0435\u043d\u043b\u0438\u0432\u0438 \u043d\u0430 \u0441\u0440\u0435\u0434\u0430\u0442\u0430 +SlaveComputer.DisconnectedBy=\ + \u0412\u0440\u044a\u0437\u043a\u0430\u0442\u0430 \u0431\u0435 \u043f\u0440\u0435\u043a\u044a\u0441\u043d\u0430\u0442\u0430 \u043e\u0442 \u201e{0}{1}\u201c +NodeDescripter.CheckName.Mandatory=\ + \u0418\u043c\u0435\u0442\u043e \u0435 \u0437\u0430\u0434\u044a\u043b\u0436\u0438\u0442\u0435\u043b\u043d\u043e +ComputerLauncher.NoJavaFound=\ + \u041e\u0442\u043a\u0440\u0438\u0442\u0430 \u0431\u0435 \u0432\u0435\u0440\u0441\u0438\u044f \u201e{0}\u201c \u043d\u0430 Java, \u043d\u043e \u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430 \u0432\u0435\u0440\u0441\u0438\u044f \u043f\u043e\u043d\u0435 \u201e1.6\u201c. +ComputerLauncher.JavaVersionResult=\ + \u041a\u043e\u043c\u0430\u043d\u0434\u0430\u0442\u0430 \u201e{0} -version\u201c \u0432\u044a\u0440\u043d\u0430 \u201e{1}\u201c. +ComputerLauncher.UknownJavaVersion=\ + \u0412\u0435\u0440\u0441\u0438\u044f\u0442\u0430 \u043d\u0430 Java \u043d\u0430 \u201e{0}\u201c \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0431\u044a\u0434\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430 diff --git a/core/src/main/resources/hudson/tasks/Messages_bg.properties b/core/src/main/resources/hudson/tasks/Messages_bg.properties new file mode 100644 index 0000000000..fae5360a11 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Messages_bg.properties @@ -0,0 +1,136 @@ +# The MIT License +# +# Bulgarian translation copyright 2015 Alexander Shopov . +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Ant.DisplayName=\ + \u0421\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 ant. +Ant.ExecFailed=\ + \u043d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0438\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430. +Ant.ExecutableNotFound=\ + \u0412 \u0443\u043a\u0430\u0437\u0430\u043d\u0430\u0442\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u044f \u043d\u0430 ant \u201e{0}\u201c \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u043e\u0442\u043a\u0440\u0438\u0435 \u0438\u0437\u043f\u044a\u043b\u043d\u0438\u043c\u0438\u044f\u0442 \u0444\u0430\u0439\u043b. +Ant.GlobalConfigNeeded=\ + \u041f\u0440\u043e\u0431\u0432\u0430\u0439\u0442\u0435 \u0434\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u0435 \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0442\u043e \u043d\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u044f\u0442\u0430 \u043d\u0430 ant. +Ant.NotADirectory=\ + \u201e{0}\u201c \u043d\u0435 \u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f. +Ant.NotAntDirectory=\ + \u201e{0}\u201c \u043d\u0435 \u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0441 ant. +Ant.ProjectConfigNeeded= \ + \u041f\u0440\u043e\u0431\u0432\u0430\u0439\u0442\u0435 \u0434\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u0435 \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0442\u043e \u043d\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u044f\u0442\u0430 \u043d\u0430 ant \u0437\u0430 \u0437\u0430\u0434\u0430\u0447\u0430\u0442\u0430. + +ArtifactArchiver.ARCHIVING_ARTIFACTS=\ + \u0410\u0440\u0445\u0438\u0432\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0438\u0442\u0435 +ArtifactArchiver.DisplayName=\ + \u0410\u0440\u0445\u0438\u0432\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0438\u0442\u0435 +ArtifactArchiver.SkipBecauseOnlyIfSuccessful=\ + \u041f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u0430\u043d\u0435\u0442\u043e, \u0437\u0430\u0449\u043e\u0442\u043e \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435\u0442\u043e \u0435 \u043d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e. +ArtifactArchiver.FailedToArchive=\ + \u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0438: {0} +ArtifactArchiver.NoIncludes=\ + \u041d\u0435 \u0441\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0438 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0438 \u0437\u0430 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u0430\u043d\u0435.\n\\u041f\u0440\u043e\u0431\u0432\u0430\u0439\u0442\u0435\ + \u0434\u0430 \u0443\u043a\u0430\u0436\u0435\u0442\u0435 \u0448\u0430\u0431\u043b\u043e\u043d \u0437\u0430 \u0438\u043c\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u0442\u0435.\n\\u0410\u043a\u043e\ + \u0438\u0441\u043a\u0430\u0442\u0435 \u0434\u0430 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u0430\u0442\u0435 \u0432\u0441\u0438\u0447\u043a\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u043e\u0442 \u0440\u0430\u0431\u043e\u0442\u043d\u043e\u0442\u043e \u043c\u044f\u0441\u0442\u043e, \u0443\u043a\u0430\u0436\u0435\u0442\u0435 \u201e**\u201c. +ArtifactArchiver.NoMatchFound=\ + \u041d\u0438\u043a\u043e\u0439 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442 \u043d\u0435 \u0441\u044a\u0432\u043f\u0430\u0434\u0430 \u0441 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u201e{0}\u201c. \u0422\u043e\u0432\u0430 \u0433\u0440\u0435\u0448\u043a\u0430 \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u0442\u0435 \u043b\u0438 \u0435? + +BatchFile.DisplayName=\ + \u0418\u0437\u043f\u044a\u043b\u043d\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0438 \u0441 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440 \u043d\u0430 Windows + +BuildTrigger.Disabled=\ + \u0417\u0430\u0434\u0430\u0447\u0430\u0442\u0430 \u201e{0}\u201c \u0435 \u0438\u0437\u043a\u043b\u044e\u0447\u0435\u043d\u0430. \u041f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435\u0442\u043e \u045d +BuildTrigger.DisplayName=\ + \u0418\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0434\u0440\u0443\u0433\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0438 +BuildTrigger.InQueue=\ + \u201e{0}\u201c \u0432\u0435\u0447\u0435 \u0435 \u0432 \u043e\u043f\u0430\u0448\u043a\u0430\u0442\u0430 +BuildTrigger.NoSuchProject= + \u041d\u044f\u043c\u0430 \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430 \u0438\u043c\u0435 \u201e{0}\u201c. \u201e{1}\u201c \u043b\u0438 \u0438\u043c\u0430\u0442\u0435 \u043f\u0440\u0435\u0434\u0432\u0438\u0434? +BuildTrigger.NoProjectSpecified=\ + \u041d\u0435 \u0435 \u0443\u043a\u0430\u0437\u0430\u043d \u043f\u0440\u043e\u0435\u043a\u0442 +BuildTrigger.NotBuildable=\ + \u201e{0}\u201c \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0438\u0437\u0433\u0440\u0430\u0434\u0438 +BuildTrigger.Triggering=\ + \u0421\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043d\u043e\u0432\u043e \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u201e{0}\u201c +BuildTrigger.warning_access_control_for_builds_in_glo=\ + \u041f\u0420\u0415\u0414\u0423\u041f\u0420\u0415\u0416\u0414\u0415\u041d\u0418\u0415: \u041f\u043e\u043b\u0435\u0442\u043e \u201e\u041f\u0440\u0430\u0432\u0430 \u0437\u0430 \u0434\u043e\u0441\u0442\u044a\u043f \u0434\u043e \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u044f\u0442\u0430\u201c \u0432 \u043e\u0431\u0449\u0438\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\ + \u0437\u0430 \u0441\u0438\u0433\u0443\u0440\u043d\u043e\u0441\u0442\u0442\u0430 \u043d\u0435 \u0435 \u043f\u043e\u043f\u044a\u043b\u043d\u0435\u043d\u043e. \u0429\u0435 \u0441\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430 \u043e\u0441\u0442\u0430\u0440\u044f\u043b\u043e\u0442\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043d\u0430\ + \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u0438 \u0437\u0430\u0434\u0430\u0447\u0438, \u0437\u0430\u0432\u0438\u0441\u0435\u0449\u0438 \u043e\u0442 \u0442\u0430\u0437\u0438 +BuildTrigger.warning_this_build_has_no_associated_aut=\ + \u041f\u0420\u0415\u0414\u0423\u041f\u0420\u0415\u0416\u0414\u0415\u041d\u0418\u0415: \u043b\u0438\u043f\u0441\u0432\u0430 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0437\u0430 \u0442\u043e\u0432\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435, \u0437\u0430\u0442\u043e\u0432\u0430 \u0438 \u043f\u0440\u0430\u0432\u0430\u0442\u0430 \u043a\u044a\u043c\ + \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435\u0442\u043e \u043d\u044f\u043c\u0430 \u0434\u0430 \u0441\u0430 \u043f\u044a\u043b\u043d\u0438. \u0417\u0430\u0432\u0438\u0441\u0435\u0449\u0438\u0442\u0435 \u043e\u0442 \u0442\u043e\u0432\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0438, \u043a\u043e\u0438\u0442\u043e\ + \u043d\u0435 \u0441\u0435 \u0432\u0438\u0436\u0434\u0430\u0442 \u043e\u0442 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0438, \u0449\u0435 \u0431\u044a\u0434\u0430\u0442 \u043f\u0440\u043e\u043f\u0443\u0441\u043d\u0430\u0442\u0438. +BuildTrigger.warning_you_have_no_plugins_providing_ac=\ + \u041f\u0420\u0415\u0414\u0423\u041f\u0420\u0415\u0416\u0414\u0415\u041d\u0418\u0415: \u043b\u0438\u043f\u0441\u0432\u0430\u0442 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438 \u0437\u0430 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u043f\u0440\u0430\u0432\u0430 \u0437\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u044f. \u0429\u0435\ + \u0441\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430 \u043e\u0441\u0442\u0430\u0440\u044f\u043b\u043e\u0442\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u0438\ + \u0437\u0430\u0434\u0430\u0447\u0438, \u0437\u0430\u0432\u0438\u0441\u0435\u0449\u0438 \u043e\u0442 \u0442\u0430\u0437\u0438 +BuildTrigger.you_have_no_permission_to_build_=\ + \u041d\u044f\u043c\u0430\u0442\u0435 \u043f\u0440\u0430\u0432\u0430 \u0434\u0430 \u0438\u0437\u0433\u0440\u0430\u0434\u0438\u0442\u0435 \u201e{0}\u201c + +CommandInterpreter.CommandFailed=\ + \u043d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0438\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 +CommandInterpreter.UnableToDelete=\ + \u0421\u043a\u0440\u0438\u043f\u0442\u044a\u0442 \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0438\u0437\u0442\u0440\u0438\u0435 \u201e{0}\u201c +CommandInterpreter.UnableToProduceScript=\ + \u041d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0430 \u0441\u043a\u0440\u0438\u043f\u0442 + +Fingerprinter.Aborted=\ + \u041f\u0440\u0435\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0435\u043d\u043e +Fingerprinter.Action.DisplayName=\ + \u0418\u0437\u0432\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0446\u0438\u0444\u0440\u043e\u0432\u0438\u0442\u0435 \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u044a\u0446\u0438 +Fingerprinter.DigestFailed=\ + \u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0438\u0437\u0447\u0438\u0441\u043b\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0446\u0438\u0444\u0440\u043e\u0432\u0438\u044f \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u044a\u043a \u043d\u0430 \u201e{0}\u201c +Fingerprinter.DisplayName=\ + \u0417\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0446\u0438\u0444\u0440\u043e\u0432\u0438\u0442\u0435 \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u044a\u0446\u0438 \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435\u0442\u0435 \u0437\u0430 \u043f\u0440\u043e\u0441\u043b\u0435\u0434\u044f\u0432\u0430\u043d\u0435 \u043d\u0430\ + \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d\u043e\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e +Fingerprinter.Failed=\ + \u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0437\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0446\u0438\u0444\u0440\u043e\u0432\u0438\u0442\u0435 \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u044a\u0446\u0438 +Fingerprinter.FailedFor=\ + \u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0437\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0446\u0438\u0444\u0440\u043e\u0432\u0438\u044f \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u044a\u043a \u043d\u0430 \u201e{0}\u201c +Fingerprinter.Recording=\ + \u0417\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0446\u0438\u0444\u0440\u043e\u0432\u0438\u0442\u0435 \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u044a\u0446\u0438 + +InstallFromApache=\ + \u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u043e\u0442 \u0441\u0430\u0439\u0442\u0430 \u043d\u0430 Apache + +JavadocArchiver.DisplayName=\ + \u041f\u0443\u0431\u043b\u0438\u043a\u0443\u0432\u0430\u043d\u0435 \u043d\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f\u0442\u0430 \u0437\u0430 Java +JavadocArchiver.DisplayName.Generic=\ + \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442 +JavadocArchiver.DisplayName.Javadoc=\ + \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0437\u0430 Java +TestJavadocArchiver.DisplayName.Javadoc=\ + \u0422\u0435\u0441\u0442\u0432\u0430\u043d\u0435 \u043d\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f\u0442\u0430 \u0437\u0430 Java +JavadocArchiver.NoMatchFound=\ + \u041b\u0438\u043f\u0441\u0432\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0437\u0430 Java \u0432 \u201e{0}\u201c: {1} +JavadocArchiver.Publishing=\ + \u041f\u0443\u0431\u043b\u0438\u043a\u0443\u0432\u0430\u043d\u0435 \u043d\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f\u0442\u0430 \u0437\u0430 Java +JavadocArchiver.UnableToCopy=\ + \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f\u0442\u0430 \u0437\u0430 Java \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u043a\u043e\u043f\u0438\u0440\u0430 \u043e\u0442 \u201e{0}\u201c \u0432 \u201e{1}\u201c + +Maven.DisplayName=\ + \u0418\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u0430 \u0446\u0435\u043b \u043d\u0430 Maven +Maven.ExecFailed=\ + \u043d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0438\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 +Maven.NotMavenDirectory=\ + \u201e{0}\u201c \u043d\u0435 \u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u043d\u0430 Maven +Maven.NoExecutable=\ + \u041d\u044f\u043c\u0430 \u0438\u0437\u043f\u044a\u043b\u043d\u0438\u043c \u0444\u0430\u0439\u043b \u0432 \u201e{0}\u201c + +Shell.DisplayName=\ + \u0418\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0435\u043d \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440 diff --git a/core/src/main/resources/hudson/tools/Messages_bg.properties b/core/src/main/resources/hudson/tools/Messages_bg.properties new file mode 100644 index 0000000000..478d54594f --- /dev/null +++ b/core/src/main/resources/hudson/tools/Messages_bg.properties @@ -0,0 +1,61 @@ +# The MIT License +# +# Bulgarian translation copyright 2015 Alexander Shopov . +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +ToolLocationNodeProperty.displayName=\ + \u041c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0438\u0442\u0435 +CommandInstaller.DescriptorImpl.displayName=\ + \u0418\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043d\u0430 \u043e\u0431\u0432\u0438\u0432\u043a\u0430\u0442\u0430 +CommandInstaller.no_command=\ + \u0422\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0443\u043a\u0430\u0436\u0435\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0430, \u043a\u043e\u044f\u0442\u043e \u0434\u0430 \u0441\u0435 \u0438\u0437\u043f\u044a\u043b\u043d\u0438. +CommandInstaller.no_toolHome=\ + \u0422\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0443\u043a\u0430\u0436\u0435\u0442\u0435 \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0442\u043e \u043d\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0438\u0442\u0435 +BatchCommandInstaller.DescriptorImpl.displayName=\ + \u0418\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u0444\u0430\u0439\u043b +JDKInstaller.FailedToInstallJDK=\ + \u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 JDK (\u0440\u0430\u0437\u0432\u043e\u0439\u043d\u0438\u0442\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0438 \u0437\u0430 Java). \u0418\u0437\u0445\u043e\u0434\u043d\u0438\u044f\u0442 \u043a\u043e\u0434\ + \u0435 {0} +JDKInstaller.RequireOracleAccount=\ + \u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435\u0442\u043e \u043d\u0430 JDK (\u0440\u0430\u0437\u0432\u043e\u0439\u043d\u0438\u0442\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0438 \u0437\u0430 Java) \u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f\ + \u043a\u044a\u043c Oracle. \u0412\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0441\u043a\u043e\u0442\u043e \u0441\u0438 \u0438\u043c\u0435 \u0438\ + \u043f\u0430\u0440\u043e\u043b\u0430\u0442\u0430 +JDKInstaller.UnableToInstallUntilLicenseAccepted=\ + \u0422\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u043f\u0440\u0438\u0435\u043c\u0435\u0442\u0435 \u043b\u0438\u0446\u0435\u043d\u0437\u0430 \u0437\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e\u0442\u043e \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 JDK (\u0440\u0430\u0437\u0432\u043e\u0439\u043d\u0438\u0442\u0435\ + \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0438 \u0437\u0430 Java). +ZipExtractionInstaller.DescriptorImpl.displayName=\ + \u0420\u0430\u0437\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435\u0442\u0435 \u0441 \u0440\u0430\u0437\u0448\u0438\u0440\u0435\u043d\u0438\u0435 *.zip/*.tar.gz +ZipExtractionInstaller.bad_connection=\ + \u0421\u044a\u0440\u0432\u044a\u0440\u044a\u0442 \u043e\u0442\u043a\u0430\u0437\u0430 \u0432\u0440\u044a\u0437\u043a\u0430\u0442\u0430. +ZipExtractionInstaller.malformed_url=\ + \u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u0435\u043d \u0430\u0434\u0440\u0435\u0441. +ZipExtractionInstaller.could_not_connect=\ + \u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0430 \u043a\u044a\u043c \u0430\u0434\u0440\u0435\u0441\u0430. +InstallSourceProperty.DescriptorImpl.displayName=\ + \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 +JDKInstaller.DescriptorImpl.displayName=\ + \u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u043e\u0442 \u0430\u0434\u0440\u0435\u0441\u0430 java.sun.com +JDKInstaller.DescriptorImpl.doCheckId=\ + \u0423\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430 \u043d\u0430 JDK (\u0440\u0430\u0437\u0432\u043e\u0439\u043d\u0438\u0442\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0438 \u0437\u0430 Java) +JDKInstaller.DescriptorImpl.doCheckAcceptLicense=\ + \u0422\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u043f\u0440\u0438\u0435\u043c\u0435\u0442\u0435 \u043b\u0438\u0446\u0435\u043d\u0437\u0430, \u0437\u0430 \u0434\u0430 \u0441\u0432\u0430\u043b\u0438\u0442\u0435 JDK (\u0440\u0430\u0437\u0432\u043e\u0439\u043d\u0438\u0442\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0438 \u0437\u0430 Java). +ToolDescriptor.NotADirectory=\ + \u201e{0}\u201c \u043d\u0435 \u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u0438\u044f \u0441\u044a\u0440\u0432\u044a\u0440 \u043d\u0430 Jenkins (\u0432\u044a\u0437\u043c\u043e\u0436\u043d\u043e \u0435 \u0434\u0430 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430\ + \u043d\u0430 \u043d\u044f\u043a\u043e\u0438 \u043e\u0442 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u0438\u0442\u0435 \u043c\u0430\u0448\u0438\u043d\u0438) diff --git a/core/src/main/resources/hudson/triggers/Messages_bg.properties b/core/src/main/resources/hudson/triggers/Messages_bg.properties new file mode 100644 index 0000000000..676b066393 --- /dev/null +++ b/core/src/main/resources/hudson/triggers/Messages_bg.properties @@ -0,0 +1,42 @@ +# The MIT License +# +# Bulgarian translation copyright 2015 Alexander Shopov . +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +SCMTrigger.DisplayName=\ + \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0430 \u0437\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u0438\u0442\u0435 +SCMTrigger.getDisplayName=\ + \u0416\u0443\u0440\u043d\u0430\u043b \u0437\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438\u0442\u0435 \u043d\u0430 \u201e{0}\u201c +SCMTrigger.BuildAction.DisplayName=\ + \u0416\u0443\u0440\u043d\u0430\u043b \u0437\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438\u0442\u0435 +SCMTrigger.SCMTriggerCause.ShortDescription=\ + \u0421\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u043e \u043e\u0442 \u043f\u0440\u043e\u043c\u044f\u043d\u0430 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0430 \u0437\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u0438\u0442\u0435 +TimerTrigger.DisplayName=\ + \u041f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u043d\u043e \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 +TimerTrigger.MissingWhitespace=\ + \u041b\u0438\u043f\u0441\u0432\u0430 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u043c\u0435\u0436\u0434\u0443 \u0434\u0432\u0430\u0442\u0430 \u0437\u043d\u0430\u043a\u0430 \u201e*\u201c. +TimerTrigger.no_schedules_so_will_never_ru\u00a7n=\ + \u041d\u044f\u043c\u0430 \u043f\u043b\u0430\u043d \u0437\u0430 \u0438\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435, \u043d\u0438\u0449\u043e \u043d\u044f\u043c\u0430 \u0434\u0430 \u0441\u0435 \u0438\u0437\u043f\u044a\u043b\u043d\u0438. +TimerTrigger.TimerTriggerCause.ShortDescription=\ + \u0421\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d \u043e\u0442 \u0445\u0440\u043e\u043d\u043e\u043c\u0435\u0442\u044a\u0440 +TimerTrigger.would_last_have_run_at_would_next_run_at=\ + \u041f\u0440\u0435\u0434\u0438\u0448\u043d\u043e\u0442\u043e \u0438\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 \u0431\u0438 \u0431\u0438\u043b\u043e \u0432 {0}. \u0421\u043b\u0435\u0434\u0432\u0430\u0449\u043e\u0442\u043e \u0438\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 \u0441\u043b\u0435\u0434\u0432\u0430 \u0434\u0430 \u0435 \u0432 {1}. +Trigger.init=\ + \u0421\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0432\u0440\u0435\u043c\u0435\u0442\u043e \u043d\u0430 \u0445\u0440\u043e\u043d\u043e\u043c\u0435\u0442\u0440\u0438\u0442\u0435 diff --git a/core/src/main/resources/hudson/util/Messages_bg.properties b/core/src/main/resources/hudson/util/Messages_bg.properties new file mode 100644 index 0000000000..54e52ee25b --- /dev/null +++ b/core/src/main/resources/hudson/util/Messages_bg.properties @@ -0,0 +1,38 @@ +# The MIT License +# +# Bulgarian translation copyright 2015 Alexander Shopov . +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +ClockDifference.InSync=\ + \u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u0430\u043d +ClockDifference.Ahead=\ + {0} \u043d\u0430\u043f\u0440\u0435\u0434 +ClockDifference.Behind=\ + {0} \u043d\u0430\u0437\u0430\u0434 +ClockDifference.Failed=\ + \u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 +FormFieldValidator.did_not_manage_to_validate_may_be_too_sl=\ + \u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 {0} (\u043c\u043e\u0436\u0435 Jenkins \u0434\u0430 \u0435 \u043f\u0440\u0435\u043a\u0430\u043b\u0435\u043d\u043e \u0431\u0430\u0432\u0435\u043d) +FormValidation.ValidateRequired=\ + \u0417\u0430\u0434\u044a\u043b\u0436\u0438\u0442\u0435\u043b\u043d\u0430 \u0441\u0442\u043e\u0439\u043d\u043e\u0441\u0442 +FormValidation.Error.Details=\ + (\u0434\u0435\u0442\u0430\u0439\u043b\u0438) +HttpResponses.Saved=\ + \u0417\u0430\u043f\u0430\u0437\u0435\u043d\u043e diff --git a/core/src/main/resources/hudson/views/Messages_bg.properties b/core/src/main/resources/hudson/views/Messages_bg.properties new file mode 100644 index 0000000000..517870597a --- /dev/null +++ b/core/src/main/resources/hudson/views/Messages_bg.properties @@ -0,0 +1,42 @@ +# The MIT License +# +# Bulgarian translation copyright 2015 Alexander Shopov . +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +BuildButtonColumn.DisplayName=\ + \u0418\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 +JobColumn.DisplayName=\ + \u0418\u043c\u0435 +LastDurationColumn.DisplayName=\ + \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u043e \u0432\u0440\u0435\u043c\u0435\u0442\u0440\u0430\u0435\u043d\u0435 +LastFailureColumn.DisplayName=\ + \u041f\u043e\u0441\u043b\u0435\u0434\u0435\u043d \u043d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 +LastStableColumn.DisplayName=\ + \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0430 \u0441\u0442\u0430\u0431\u0438\u043b\u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u044f +LastSuccessColumn.DisplayName=\ + \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u043e \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 +StatusColumn.DisplayName=\ + \u0421\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435 +WeatherColumn.DisplayName=\ + \u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u043d\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u044f\u0442\u0430 +DefaultViewsTabsBar.DisplayName=\ + \u041b\u0435\u043d\u0442\u0430 \u0437\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438\u0442\u0435 \u0438\u0437\u0433\u043b\u0435\u0434\u0438 +DefaultMyViewsTabsBar.DisplayName=\ + \u041b\u0435\u043d\u0442\u0430 \u0437\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438\u0442\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0441\u043a\u0438 \u0438\u0437\u0433\u043b\u0435\u0434\u0438 diff --git a/core/src/main/resources/hudson/widgets/Messages_bg.properties b/core/src/main/resources/hudson/widgets/Messages_bg.properties new file mode 100644 index 0000000000..861f6002f3 --- /dev/null +++ b/core/src/main/resources/hudson/widgets/Messages_bg.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Bulgarian translation copyright 2015 Alexander Shopov . +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +BuildHistoryWidget.DisplayName=\ + \u0418\u0441\u0442\u043e\u0440\u0438\u044f \u043d\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u044f\u0442\u0430 diff --git a/core/src/main/resources/jenkins/management/Messages_bg.properties b/core/src/main/resources/jenkins/management/Messages_bg.properties index f5fcc33c85..960e9bf8ed 100644 --- a/core/src/main/resources/jenkins/management/Messages_bg.properties +++ b/core/src/main/resources/jenkins/management/Messages_bg.properties @@ -1,7 +1,6 @@ -# # The MIT License # -# Copyright (c) 2012, CloudBees, Intl., Nicolas De loof +# Bulgarian translation copyright 2015 Alexander Shopov . # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,16 +19,61 @@ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -# -PluginsLink.Description=\u0414\u043E\u0431\u0430\u0432\u044F\u043D\u0435, \u043F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435, \u0441\u043F\u0438\u0440\u0430\u043D\u0435 \u0438 \u043F\u0443\u0441\u043A\u0430\u043D\u0435 \u043D\u0430 \u043F\u043B\u044A\u0433\u0438\u043D\u0438, \u043A\u043E\u0438\u0442\u043E \u043C\u043E\u0433\u0430\u0442 \u0434\u0430 \u0440\u0430\u0437\u0448\u0438\u0440\u044F\u0442 \u0444\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u043D\u043E\u0441\u0442\u0442\u0430 \u043D\u0430 Jenkins. -ConfigureLink.DisplayName=\u0421\u0438\u0441\u0442\u0435\u043C\u043D\u0430 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 -ConfigureLink.Description=\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0433\u043B\u0430\u0432\u043D\u0438\u0442\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0438 \u043F\u044A\u0442\u0435\u043A\u0438 -SystemInfoLink.Description=\u041F\u043E\u043A\u0430\u0437\u0432\u0430 \u0440\u0430\u0437\u043D\u043E\u043E\u0431\u0440\u0430\u0437\u043D\u0430 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u0437\u0430 \u0441\u0440\u0435\u0434\u0430\u0442\u0430 \u0441 \u0446\u0435\u043B \u0434\u0430 \u0430\u0441\u0438\u0441\u0442\u0438\u0440\u0430 \u043E\u0442\u0441\u0442\u0440\u0430\u043D\u044F\u0432\u0430\u043D\u0435\u0442\u043E \u043D\u0430 \u043F\u0440\u043E\u0431\u043B\u0435\u043C\u0438. -StatisticsLink.DisplayName=\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 \u043D\u0430 \u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043D\u0435\u0442\u043E -NodesLink.DisplayName=\u0423\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043D\u0430 \u043C\u0430\u0448\u0438\u043D\u0438 -PluginsLink.DisplayName=\u0423\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043D\u0430 \u043F\u043B\u044A\u0433\u0438\u043D\u0438 -ShutdownLink.DisplayName_prepare=\u041F\u043E\u0434\u0433\u043E\u0442\u043E\u0432\u043A\u0430 \u0437\u0430 \u0438\u0437\u043A\u043B\u044E\u0447\u0432\u0430\u043D\u0435 -ReloadLink.DisplayName=\u041F\u0440\u0435\u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043D\u0435 \u043D\u0430 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u043E\u0442 \u0434\u0438\u0441\u043A\n\ - \u041F\u043E\u043B\u0435\u0437\u043D\u043E \u0435 \u0430\u043A\u043E \u0441\u0442\u0435 \u043C\u043E\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u0430\u043B\u0438 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u0438\u0442\u0435 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 \u0434\u0438\u0440\u0435\u043A\u0442\u043D\u043E \u043D\u0430 \u0434\u0438\u0441\u043A\u0430. -SystemInfoLink.DisplayName=\u0421\u0438\u0441\u0442\u0435\u043C\u043D\u0430 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F. +ConfigureLink.DisplayName=\ + \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0430 +ConfigureLink.Description=\ + \u041e\u0431\u0449\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0438 \u043f\u044a\u0442\u0438\u0449\u0430. + +ReloadLink.DisplayName=\ + \u041f\u0440\u0435\u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u0442\u0435 \u043e\u0442 \u0434\u0438\u0441\u043a\u0430 +ReloadLink.Description=\ + \u0418\u0437\u0447\u0438\u0441\u0442\u0432\u0430\u043d\u0435 \u043d\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u0442\u0435 \u0432 \u043f\u0430\u043c\u0435\u0442\u0442\u0430 \u0438 \u043f\u0440\u0435\u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u043e\u0442\ + \u0434\u0438\u0441\u043a\u0430.\n\u0422\u043e\u0432\u0430 \u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u043e, \u043a\u043e\u0433\u0430\u0442\u043e \u0441\u0442\u0435 \u043f\u0440\u043e\u043c\u0435\u043d\u044f\u043b\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u0435\u0442\u0435 \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e \u0434\u0438\u0441\u043a\u0430. + +PluginsLink.DisplayName=\ + \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438\u0442\u0435 +PluginsLink.Description=\ + \u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435, \u043f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435, \u0441\u043f\u0438\u0440\u0430\u043d\u0435 \u0438 \u043f\u0443\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0438, \u043a\u043e\u0438\u0442\u043e \u0434\u043e\u043f\u044a\u043b\u0432\u0430\u0442 \u0438\ + \u0440\u0430\u0437\u0448\u0438\u0440\u044f\u0432\u0430\u0442 \u0432\u044a\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438\u0442\u0435 \u043d\u0430 Jenkins. + +SystemInfoLink.DisplayName=\ + \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0430 +SystemInfoLink.Description=\ + \u0418\u0437\u0432\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u0441\u0440\u0435\u0434\u0430\u0442\u0430 \u0441 \u0446\u0435\u043b \u043e\u0442\u0441\u0442\u0440\u0430\u043d\u044f\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0438. + +SystemLogLink.DisplayName=\ + \u0421\u0438\u0441\u0442\u0435\u043c\u0435\u043d \u0436\u0443\u0440\u043d\u0430\u043b +SystemLogLink.Description=\ + \u0412 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0438\u044f \u0436\u0443\u0440\u043d\u0430\u043b \u0441\u0435 \u0437\u0430\u043f\u0438\u0441\u0432\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f\u0442\u0430 \u043e\u0442 java.util.logging \u0437\u0430\ + Jenkins. + +StatisticsLink.DisplayName=\ + \u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u043d\u0430 \u043d\u0430\u0442\u043e\u0432\u0430\u0440\u0432\u0430\u043d\u0435\u0442\u043e +StatisticsLink.Description=\ + \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0438\u0442\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u0438, \u0437\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u0430 \u0435\u0432\u0435\u043d\u0442\u0443\u0430\u043b\u043d\u0430\u0442\u0430 \u043d\u0443\u0436\u0434\u0430 \u043e\u0442 \u043e\u0449\u0435\ + \u043c\u0430\u0448\u0438\u043d\u0438 \u0437\u0430 Jenkins. + +CliLink.DisplayName=\ + Jenkins \u043e\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0438\u044f \u0440\u0435\u0434 +CliLink.Description=\ + \u0414\u043e\u0441\u0442\u044a\u043f \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 Jenkins \u043e\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0438\u044f \u0440\u0435\u0434 \u0438\u043b\u0438 \u0441\u043a\u0440\u0438\u043f\u0442. + +ConsoleLink.DisplayName=\ + \u041a\u043e\u043d\u0437\u043e\u043b\u0430 +ConsoleLink.Description=\ + \u0418\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u0435\u043d \u0441\u043a\u0440\u0438\u043f\u0442 \u0437\u0430 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0438\u0440\u0430\u043d\u0435, \u043e\u0442\u043a\u0440\u0438\u0432\u0430\u043d\u0435 \u0438 \u043e\u0442\u0441\u0442\u0440\u0430\u043d\u044f\u0432\u0430\u043d\u0435\ + \u043d\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0438. + +NodesLink.DisplayName=\ + \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0438 +NodesLink.Description=\ + \u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435, \u043f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435, \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u0438\u0442\u0435 \u043c\u0430\u0448\u0438\u043d\u0438, \u043d\u0430 \u043a\u043e\u0438\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0438 Jenkins. + +ShutdownLink.DisplayName_prepare=\ + \u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0437\u0430 \u0438\u0437\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 +ShutdownLink.DisplayName_cancel=\ + \u041e\u0442\u043c\u044f\u043d\u0430 \u043d\u0430 \u0438\u0437\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435\u0442\u043e +ShutdownLink.Description=\ + \u041d\u0435\u0434\u043e\u043f\u0443\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 \u043d\u043e\u0432\u0438 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u044f, \u0437\u0430 \u0434\u0430 \u043c\u043e\u0436\u0435 \u0432 \u0434\u0430\u0434\u0435\u043d \u043c\u043e\u043c\u0435\u043d\u0442 \u043c\u0430\u0448\u0438\u043d\u0430\u0442\u0430 \u0434\u0430 \u0431\u044a\u0434\u0435\ + \u0441\u043f\u0440\u044f\u043d\u0430. diff --git a/core/src/main/resources/jenkins/model/Messages_bg.properties b/core/src/main/resources/jenkins/model/Messages_bg.properties index 3ecd599250..21bcd85721 100644 --- a/core/src/main/resources/jenkins/model/Messages_bg.properties +++ b/core/src/main/resources/jenkins/model/Messages_bg.properties @@ -1 +1,116 @@ -BuildDiscarderProperty.displayName=\u041F\u0440\u0435\u043D\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u0442\u0430\u0440\u0438\u0442\u0435 \u0431\u0438\u043B\u0434\u043E\u0432\u0435 +# The MIT License +# +# Bulgarian translation copyright 2015 Alexander Shopov . +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Hudson.BadPortNumber=\ + \u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u0435\u043d \u043d\u043e\u043c\u0435\u0440 \u043d\u0430 \u043f\u043e\u0440\u0442: {0} +Hudson.Computer.Caption=\ + \u041e\u0441\u043d\u043e\u0432\u0435\u043d \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440 +Hudson.Computer.DisplayName=\ + \u043e\u0441\u043d\u043e\u0432\u0435\u043d \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440 +Hudson.ControlCodeNotAllowed=\ + \u041d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u043f\u043e\u043b\u0437\u0432\u0430\u0442\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043d\u0438 \u0437\u043d\u0430\u0446\u0438: {0} +Hudson.DisplayName=\ + Jenkins +Hudson.JobAlreadyExists=\ + \u0412\u0435\u0447\u0435 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441 \u0438\u043c\u0435 \u201e{0}\u201c +Hudson.NoJavaInPath=\ + \u0412 \u043f\u044a\u0442\u0438\u0449\u0430\u0442\u0430 \u0441\u043e\u0447\u0435\u043d\u0438 \u043e\u0442 \u043f\u0440\u043e\u043c\u0435\u043d\u043b\u0438\u0432\u0430\u0442\u0430 \u201ePATH\u201c \u043b\u0438\u043f\u0441\u0432\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u0442\u0430 \u201ejava\u201c.\u00a0\u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e\ + \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u0435 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442 \u0437\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043d\u0430 JAVA\ + \u2014 JDK? +Hudson.NoName=\ + \u041b\u0438\u043f\u0441\u0432\u0430 \u0438\u043c\u0435 +Hudson.NodeBeingRemoved=\ + \u0418\u0437\u0432\u0430\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0430\u0442\u0430 \u043e\u0442 \u0433\u0440\u0443\u043f\u0430\u0442\u0430 +Hudson.UnsafeChar=\ + \u0417\u043d\u0430\u0446\u0438 \u043a\u0430\u0442\u043e \u201e{0}\u201c \u0435 \u043e\u043f\u0430\u0441\u043d\u043e \u0434\u0430 \u0441\u0435 \u043f\u043e\u043b\u0437\u0432\u0430\u0442 +Hudson.JobNameConventionNotApplyed=\ + \u201e{0}\u201c \u043d\u0435 \u043d\u0430\u043f\u0430\u0441\u0432\u0430 \u043d\u0430 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0437\u0430 \u0438\u043c\u0435 \u043d\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u201e{1}\u201c +Hudson.ViewAlreadyExists=\ + \u0412\u0435\u0447\u0435 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430 \u0438\u0437\u0433\u043b\u0435\u0434 \u0441 \u0438\u043c\u0435 \u201e{0}\u201c +Hudson.ViewName=\ + \u0412\u0441\u0438\u0447\u043a\u0438 +Hudson.NotUsesUTF8ToDecodeURL=\ + \u041a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044a\u0442 \u0437\u0430 \u0441\u044a\u0440\u0432\u043b\u0435\u0442\u0438, \u0432 \u043a\u043e\u0439\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0438 Jenkins, \u043d\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430 UTF-8 \u0437\u0430\ + \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0430\u0434\u0440\u0435\u0441\u0438\u0442\u0435. \u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0437\u043d\u0430\u0446\u0438 \u0438\u0437\u0432\u044a\u043d ASCII \u0432 \u0438\u043c\u0435\u043d\u0430\u0442\u0430 \u043d\u0430 \u0437\u0430\u0434\u0430\u0447\u0438\ + \u0438 \u0434\u0440. \u043c\u043e\u0436\u0435 \u0434\u0430 \u0434\u043e\u0432\u0435\u0434\u0435 \u0434\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0438. \u0417\u0430 \u043f\u043e\u0432\u0435\u0447\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043f\u043e\u0433\u043b\u0435\u0434\u043d\u0435\u0442\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0430 \u0437\u0430\ + \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0438\ + \u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0430 \u0437\u0430 \ + \u0438\u043d\u0442\u0435\u0440\u043d\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0430 Tomcat i18n. +Hudson.NodeDescription=\ + \u043e\u0441\u043d\u043e\u0432\u043d\u0438\u044f\u0442 \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440 \u043d\u0430 Jenkins + + +CLI.restart.shortDescription=\ + \u0420\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 Jenkins. +CLI.safe-restart.shortDescription=\ + \u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 Jenkins. +CLI.keep-build.shortDescription=\ + \u0422\u043e\u0432\u0430 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 \u0434\u0430 \u0441\u0435 \u0437\u0430\u043f\u0430\u0437\u0438 \u0437\u0430\u0432\u0438\u043d\u0430\u0433\u0438. +CLI.quiet-down.shortDescription=\ + \u041f\u0440\u0438\u0432\u044a\u0440\u0448\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u0430 \u043d\u0430 Jenkins \u043f\u0440\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430\u0442\u0430 \u0437\u0430 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435. \u0414\u0430 \u043d\u0435\ + \u0437\u0430\u043f\u043e\u0447\u0432\u0430\u0442 \u043d\u043e\u0432\u0438 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u044f. +CLI.cancel-quiet-down.shortDescription=\ + \u041e\u0442\u043c\u044f\u043d\u0430 \u043d\u0430 \u0435\u0444\u0435\u043a\u0442\u0430 \u043d\u0430 \u043f\u0440\u0438\u0432\u044a\u0440\u0448\u0432\u0430\u043d\u0435\u0442\u043e. +CLI.reload-configuration.shortDescription=\ + \u0418\u0437\u0447\u0438\u0441\u0442\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u0430\u043c\u0435\u0442\u0442\u0430 \u0438 \u043f\u0440\u0435\u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u043e \u043e\u0442 \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u0442\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430.\ + \u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0439\u0442\u0435 \u043f\u0440\u0438 \u043f\u0440\u043e\u043c\u044f\u043d\u0430 \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e \u0434\u0438\u0441\u043a\u0430. +CauseOfInterruption.ShortDescription=\ + \u041f\u0440\u0435\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0435\u043d\u043e \u043e\u0442 \u201e{0}\u201c +CLI.shutdown.shortDescription=\ + \u041d\u0435\u0437\u0430\u0431\u0430\u0432\u043d\u043e \u0441\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 Jenkins. +CLI.safe-shutdown.shortDescription=\ + \u041f\u043e\u0441\u0442\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 Jenkins \u0432 \u0440\u0435\u0436\u0438\u043c \u043d\u0430 \u043f\u0440\u0438\u0432\u044a\u0440\u0448\u0432\u0430\u043d\u0435 \u2014 \u043d\u0435 \u0441\u0435 \u043f\u0440\u0438\u0435\u043c\u0430\u0442 \u043d\u043e\u0432\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u0437\u0430\ + \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435, \u0430 \u0432\u0435\u0447\u0435 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0438\u0442\u0435 \u0441\u0435 \u0438\u0437\u0447\u0430\u043a\u0432\u0430\u0442. + +DefaultProjectNamingStrategy.DisplayName=\ + \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e + +IdStrategy.CaseInsensitive.DisplayName=\ + \u0411\u0435\u0437 \u0440\u0430\u0437\u043b\u0438\u043a\u0430 \u0433\u043b\u0430\u0432\u043d\u0438/\u043c\u0430\u043b\u043a\u0438 +IdStrategy.CaseSensitive.DisplayName=\ + \u0420\u0430\u0437\u043b\u0438\u043a\u0430 \u0433\u043b\u0430\u0432\u043d\u0438/\u043c\u0430\u043b\u043a\u0438 +IdStrategy.CaseSensitiveEmailAddress.DisplayName=\ + \u0420\u0430\u0437\u043b\u0438\u043a\u0430 \u0433\u043b\u0430\u0432\u043d\u0438/\u043c\u0430\u043b\u043a\u0438 (\u0437\u0430 \u0430\u0434\u0440\u0435\u0441\u0430 \u0437\u0430 \u0435-\u043f\u043e\u0449\u0430) + +Mailer.Address.Not.Configured=\ + \u0430\u0434\u0440\u0435\u0441\u044a\u0442 \u043d\u0435 \u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d +Mailer.Localhost.Error=\ + \u0417\u0430\u0434\u0430\u0439\u0442\u0435 \u0434\u0440\u0443\u0433\u043e \u0438\u043c\u0435 \u043d\u0430 \u0445\u043e\u0441\u0442, \u0430 \u043d\u0435 \u201elocalhost\u201c + +PatternProjectNamingStrategy.DisplayName=\ + \u0428\u0430\u0431\u043b\u043e\u043d +PatternProjectNamingStrategy.NamePatternRequired=\ + \u0418\u0437\u0438\u0441\u043a\u0432\u0430 \u0441\u0435 \u0448\u0430\u0431\u043b\u043e\u043d \u0437\u0430 \u0438\u043c\u0435\u0442\u043e +PatternProjectNamingStrategy.NamePatternInvalidSyntax=\ + \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u0435\u043d \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u0435\u043d \u0438\u0437\u0440\u0430\u0437. +ParameterizedJobMixIn.build_with_parameters=\ + \u0418\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438 +ParameterizedJobMixIn.build_now=\ + \u0418\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 \u0441\u0435\u0433\u0430 +BlockedBecauseOfBuildInProgress.shortDescription=\ + \u0418\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 \u2116\u200a{0} \u0432\u0435\u0447\u0435 \u0441\u0435 \u0438\u0437\u043f\u044a\u043b\u043d\u044f\u0432\u0430{1} +BlockedBecauseOfBuildInProgress.ETA=\ + \ (\u043e\u0441\u0442\u0430\u0432\u0430\u0442: {0}) +BuildDiscarderProperty.displayName=\ + \u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u0442\u0430\u0440\u0438\u0442\u0435 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u044f diff --git a/core/src/main/resources/jenkins/mvn/Messages_bg.properties b/core/src/main/resources/jenkins/mvn/Messages_bg.properties new file mode 100644 index 0000000000..c74aae881b --- /dev/null +++ b/core/src/main/resources/jenkins/mvn/Messages_bg.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Bulgarian translation copyright 2015 Alexander Shopov . +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +DefaultSettingsProvider.DisplayName=\ + \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0430 maven +DefaultGlobalSettingsProvider.DisplayName=\ + \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438 \u0433\u043b\u043e\u0431\u0430\u043b\u043d\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0430 maven +FilePathGlobalSettingsProvider.DisplayName=\ + \u0413\u043b\u043e\u0431\u0430\u043b\u043d\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043e\u0442 \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u0442\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 +FilePathSettingsProvider.DisplayName=\ + \u0424\u0430\u0439\u043b \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0432\u044a\u0432 \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u0442\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 diff --git a/core/src/main/resources/jenkins/security/Messages_bg.properties b/core/src/main/resources/jenkins/security/Messages_bg.properties new file mode 100644 index 0000000000..f11e5d4a0b --- /dev/null +++ b/core/src/main/resources/jenkins/security/Messages_bg.properties @@ -0,0 +1,33 @@ +# The MIT License +# +# Bulgarian translation copyright 2015 Alexander Shopov . +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +ApiTokenProperty.DisplayName=\ + \u041d\u0438\u0437 \u0437\u0430 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0437\u0430 API +ApiTokenProperty.ChangeToken.TokenIsHidden=\ + \u041d\u0438\u0437\u044a\u0442 \u0437\u0430 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0435 \u0441\u043a\u0440\u0438\u0442 +ApiTokenProperty.ChangeToken.Success=\ +

\u041f\u0440\u043e\u043c\u0435\u043d\u0435\u043d. \u041d\u043e\u0432\u0438\u044f\u0442 \u043d\u0438\u0437 \u0437\u0430 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0435 \u0432 \u043f\u043e\u043b\u0435\u0442\u043e \u043e\u0442\u0433\u043e\u0440\u0435
+ApiTokenProperty.ChangeToken.SuccessHidden=\ +
\u041f\u0440\u043e\u043c\u0435\u043d\u0435\u043d. \u0422\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0432\u043b\u0435\u0437\u0435\u0442\u0435 \u043a\u0430\u0442\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u044f, \u0437\u0430 \u0434\u0430 \u0432\u0438\u0434\u0438\u0442\u0435 \u043d\u0438\u0437\u0430 \u0437\u0430\ + \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f
+RekeySecretAdminMonitor.DisplayName=\ + \u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043d\u043e\u0432 \u043a\u043b\u044e\u0447 diff --git a/core/src/main/resources/jenkins/slaves/systemInfo/Messages_bg.properties b/core/src/main/resources/jenkins/slaves/systemInfo/Messages_bg.properties new file mode 100644 index 0000000000..7a8edaa248 --- /dev/null +++ b/core/src/main/resources/jenkins/slaves/systemInfo/Messages_bg.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Bulgarian translation copyright 2015 Alexander Shopov . +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +SystemPropertySlaveInfo.DisplayName=\ + \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0430 +EnvVarsSlaveInfo.DisplayName=\ + \u041f\u0440\u043e\u043c\u0435\u043d\u043b\u0438\u0432\u0438 \u043d\u0430 \u0441\u0440\u0435\u0434\u0430\u0442\u0430 +ThreadDumpSlaveInfo.DisplayName=\ + \u0421\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0438 \u0441\u0442\u0435\u043a\u043e\u0432\u0435 \u043d\u0430 \u043d\u0438\u0448\u043a\u0438\u0442\u0435 +ClassLoaderStatisticsSlaveInfo.DisplayName=\ + \u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u043d\u0430 \u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u043e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u0438 \u043a\u043b\u0430\u0441\u043e\u0432\u0435 diff --git a/core/src/main/resources/jenkins/triggers/Messages_bg.properties b/core/src/main/resources/jenkins/triggers/Messages_bg.properties new file mode 100644 index 0000000000..0037907e8a --- /dev/null +++ b/core/src/main/resources/jenkins/triggers/Messages_bg.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Bulgarian translation copyright 2015 Alexander Shopov . +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +ReverseBuildTrigger.build_after_other_projects_are_built=\ + \u0418\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 \u0441\u043b\u0435\u0434 \u0438\u0437\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0434\u0440\u0443\u0433\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0438. +ReverseBuildTrigger.running_as_cannot_even_see_for_trigger_f=\ + \u041f\u0440\u043e\u0446\u0435\u0441, \u0440\u0430\u0431\u043e\u0442\u0435\u0449 \u0441 \u043f\u0440\u0430\u0432\u0430\u0442\u0430 \u043d\u0430 \u201e{0}\u201c \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0432\u0438\u0434\u0438 \u0437\u0430\u0434\u0430\u0447\u0430\u0442\u0430 \u201e{1}\u201c \u043e\u0442\ + \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e\u0442\u043e \u0438\u0437\u043f\u044a\u043b\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 \u201e{2}\u201c. diff --git a/core/src/main/resources/lib/form/enum.jelly b/core/src/main/resources/lib/form/enum.jelly index 667f0c10d2..9cfb41829c 100644 --- a/core/src/main/resources/lib/form/enum.jelly +++ b/core/src/main/resources/lib/form/enum.jelly @@ -32,10 +32,13 @@ THE SOFTWARE. Used for databinding. TBD. + + The name of the enum to set as default value for the first configuration. + "; form.appendChild(div); + if (form.enctype == "multipart/form-data") { + if (form.action.indexOf("?") != -1) { + form.action = form.action+"&"+this.fieldName+"="+this.value; + } else { + form.action = form.action+"?"+this.fieldName+"="+this.value; + } + } } } @@ -2553,6 +2560,7 @@ function buildFormTree(form) { // switch to multipart/form-data to support file submission // @enctype is the standard, but IE needs @encoding. form.enctype = form.encoding = "multipart/form-data"; + crumb.appendToForm(form); break; case "radio": if(!e.checked) break;