提交 32dd1b39 编写于 作者: J jglick

Avoiding usage of ToolInstallation.home from ToolInstaller in most cases.

Adding ToolInstaller.preferredLocation and using from existing installers.
Validating ToolInstallation.home if it is configured, but OK if blank.
Hacking JavaScript to display ToolInstallation.home field in UI
only if "Install automatically" unchecked (or field is not blank).
Simplifying parameters of DownloadFromUrlInstaller.isUpToDate.
chmod a+x after DownloadFromUrlInstaller unpacks (needed for Ant/Maven installations on Unix).

git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@18572 71c3de6d-444a-0410-be80-ed276b4c234a
上级 df7d244b
......@@ -171,13 +171,12 @@ public final class JDK extends ToolInstallation implements NodeSpecific<JDK>, En
// this can be used to check the existence of a file on the server, so needs to be protected
Hudson.getInstance().checkPermission(Hudson.ADMINISTER);
if(value.exists() && !value.isDirectory())
return FormValidation.error(Messages.Hudson_NotADirectory(value));
if(!value.exists())
// no such directory yet. perhaps it's meant to be created?
if(value.getPath().equals(""))
return FormValidation.ok();
if(!value.isDirectory())
return FormValidation.error(Messages.Hudson_NotADirectory(value));
File toolsJar = new File(value,"lib/tools.jar");
File mac = new File(value,"lib/dt.jar");
if(!toolsJar.exists() && !mac.exists())
......
......@@ -421,13 +421,12 @@ public class Ant extends Builder {
if(!Hudson.getInstance().hasPermission(Hudson.ADMINISTER))
return FormValidation.ok();
if(value.exists() && !value.isDirectory())
return FormValidation.error(Messages.Ant_NotADirectory(value));
if(!value.exists())
// no such directory yet. perhaps it's meant to be created?
if(value.getPath().equals(""))
return FormValidation.ok();
if(!value.isDirectory())
return FormValidation.error(Messages.Ant_NotADirectory(value));
File antJar = new File(value,"lib/ant.jar");
if(!antJar.exists())
return FormValidation.error(Messages.Ant_NotAntDirectory(value));
......
......@@ -455,14 +455,11 @@ public class Maven extends Builder {
return FormValidation.ok();
if(value.getPath().equals(""))
return FormValidation.error(Messages.Maven_MavenHomeRequired());
if(value.exists() && !value.isDirectory())
return FormValidation.error(Messages.Maven_NotADirectory(value));
if(!value.exists())
// no such directory yet. perhaps it's meant to be created?
return FormValidation.ok();
if(!value.isDirectory())
return FormValidation.error(Messages.Maven_NotADirectory(value));
File maven1File = new File(value,MAVEN_1_INSTALLATION_COMMON_FILE);
File maven2File = new File(value,MAVEN_2_INSTALLATION_COMMON_FILE);
......
......@@ -67,20 +67,19 @@ public class CommandInstaller extends ToolInstaller {
}
public FilePath performInstallation(ToolInstallation tool, Node node, TaskListener log) throws IOException, InterruptedException {
FilePath tools = node.getRootPath().child("tools");
FilePath dir = preferredLocation(tool, node);
// XXX support Windows batch scripts, Unix scripts with interpreter line, etc. (see CommandInterpreter subclasses)
FilePath script = tools.createTextTempFile("hudson", ".sh", command);
FilePath script = dir.createTextTempFile("hudson", ".sh", command);
try {
String[] cmd = {"sh", "-e", script.getRemote()};
// XXX it always logs at least: "INFO: [tools] $ sh -e /hudson/tools/hudson8889216416382058262.sh"
int r = node.createLauncher(log).launch(cmd, Collections.<String,String>emptyMap(), log.getLogger(), tools).join();
int r = node.createLauncher(log).launch(cmd, Collections.<String,String>emptyMap(), log.getLogger(), dir).join();
if (r != 0) {
throw new IOException("Command returned status " + r);
}
} finally {
script.delete();
}
return tools.child(toolHome);
return dir.child(toolHome);
}
@Extension
......
......@@ -40,7 +40,7 @@ public abstract class DownloadFromUrlInstaller extends ToolInstaller {
* This check needs to run fairly efficiently. The current implementation uses the souce URL of {@link Installable},
* based on the assumption that released bits do not change its content.
*/
protected boolean isUpToDate(FilePath expectedLocation, Installable i, ToolInstallation tool, Node node, TaskListener log) throws IOException, InterruptedException {
protected boolean isUpToDate(FilePath expectedLocation, Installable i) throws IOException, InterruptedException {
FilePath marker = expectedLocation.child(".installedFrom");
return marker.exists() && marker.readToString().equals(i.url);
}
......@@ -58,7 +58,7 @@ public abstract class DownloadFromUrlInstaller extends ToolInstaller {
}
public FilePath performInstallation(ToolInstallation tool, Node node, TaskListener log) throws IOException, InterruptedException {
FilePath expected = node.createPath(tool.getHome());
FilePath expected = preferredLocation(tool, node);
Installable inst = getInstallable();
if(inst==null) {
......@@ -66,7 +66,7 @@ public abstract class DownloadFromUrlInstaller extends ToolInstaller {
return expected;
}
if(isUpToDate(expected,inst,tool,node,log))
if(isUpToDate(expected,inst))
return expected;
if(expected.installIfNecessaryFrom(new URL(inst.url), log, "Unpacking " + inst.url + " to " + expected + " on " + node.getDisplayName())) {
......@@ -76,6 +76,7 @@ public abstract class DownloadFromUrlInstaller extends ToolInstaller {
base.moveAllChildrenTo(expected);
// leave a record for the next up-to-date check
expected.child(".installedFrom").write(inst.url,"UTF-8");
expected.act(new ZipExtractionInstaller.ChmodRecAPlusX());
}
return expected;
......@@ -116,6 +117,8 @@ public abstract class DownloadFromUrlInstaller extends ToolInstaller {
}
public static abstract class DescriptorImpl<T extends DownloadFromUrlInstaller> extends ToolInstallerDescriptor<T> {
@SuppressWarnings("deprecation") // intentionally adding dynamic item here
protected DescriptorImpl() {
Downloadable.all().add(createDownloadable());
}
......@@ -175,4 +178,3 @@ public abstract class DownloadFromUrlInstaller extends ToolInstaller {
public String url;
}
}
......@@ -93,7 +93,7 @@ public class JDKInstaller extends ToolInstaller {
}
public FilePath performInstallation(ToolInstallation tool, Node node, TaskListener log) throws IOException, InterruptedException {
FilePath expectedLocation = node.createPath(tool.getHome());
FilePath expectedLocation = preferredLocation(tool, node);
PrintStream out = log.getLogger();
try {
if(!acceptLicense) {
......
......@@ -88,15 +88,30 @@ public abstract class ToolInstaller implements Describable<ToolInstaller>, Exten
* @param tool the tool being installed
* @param node the computer on which to install the tool
* @param log any status messages produced by the installation go here
* @return
* The (directory) path at which the tool can be found (like {@link ToolInstallation#getHome})
* As a tip, you can return {@code node.createPath(tool.getHome())}
* if your implementation wants to skip the installation and behaves as if it was a no-op.
* @return the (directory) path at which the tool can be found,
* typically coming from {@link #preferredLocation}
* @throws IOException if installation fails
* @throws InterruptedException if communication with a slave is interrupted
*/
public abstract FilePath performInstallation(ToolInstallation tool, Node node, TaskListener log) throws IOException, InterruptedException;
/**
* Convenience method to find a location to install a tool.
* @param tool the tool being installed
* @param node the computer on which to install the tool
* @return {@link ToolInstallation#getHome} if specified, else a path within the local
* Hudson work area named according to {@link ToolInstallation#getName}
* @since 1.309
*/
protected final FilePath preferredLocation(ToolInstallation tool, Node node) {
String home = Util.fixEmptyAndTrim(tool.getHome());
if (home == null) {
// XXX should this somehow uniquify paths among ToolInstallation.all()?
home = tool.getName().replaceAll("[^A-Za-z0-9_.-]+", "_");
}
return node.getRootPath().child("tools").child(home);
}
public ToolInstallerDescriptor<?> getDescriptor() {
return (ToolInstallerDescriptor) Hudson.getInstance().getDescriptor(getClass());
}
......
......@@ -77,8 +77,7 @@ public class ZipExtractionInstaller extends ToolInstaller {
}
public FilePath performInstallation(ToolInstallation tool, Node node, TaskListener log) throws IOException, InterruptedException {
String dirname = tool.getName().replaceAll("[^A-Za-z0-9_.-]+", "_");
FilePath dir = node.getRootPath().child("tools").child(dirname);
FilePath dir = preferredLocation(tool, node);
if (dir.installIfNecessaryFrom(new URL(url), log, "Unpacking " + url + " to " + dir + " on " + node.getDisplayName())) {
dir.act(new ChmodRecAPlusX());
}
......@@ -119,7 +118,7 @@ public class ZipExtractionInstaller extends ToolInstaller {
* Sets execute permission on all files, since unzip etc. might not do this.
* Hackish, is there a better way?
*/
private static class ChmodRecAPlusX implements FileCallable<Void> {
static class ChmodRecAPlusX implements FileCallable<Void> {
private static final long serialVersionUID = 1L;
public Void invoke(File d, VirtualChannel channel) throws IOException {
if(!Hudson.isWindows())
......
......@@ -78,7 +78,6 @@ Mailer.UserProperty.DisplayName=E-mail
Maven.DisplayName=Invoke top-level Maven targets
Maven.ExecFailed=command execution failed
Maven.MavenHomeRequired=MAVEN_HOME is required
Maven.NotMavenDirectory={0} doesn''t look like a Maven directory
Maven.NoExecutable=Couldn''t find any executable in {0}
Maven.NotADirectory={0} is not a directory
......
......@@ -21,66 +21,61 @@
# THE SOFTWARE.
Ant.DisplayName=Ant aufrufen
Ant.ExecFailed=Befehlsausfhrung fehlgeschlagen.
Ant.GlobalConfigNeeded=Eventuell mssen Sie noch Ihre Ant-Installationen konfigurieren.
Ant.ExecFailed=Befehlsausf\u00FChrung fehlgeschlagen.
Ant.GlobalConfigNeeded=Eventuell m\u00FCssen Sie noch Ihre Ant-Installationen konfigurieren.
Ant.NotADirectory={0} ist kein Verzeichnis
Ant.NotAntDirectory={0} sieht nicht wie ein Ant-Verzeichnis aus.
Ant.ProjectConfigNeeded=Eventuell mssen Sie fr den Job noch eine Ihrer Ant-Installationen auswhlen.
Ant.ProjectConfigNeeded=Eventuell m\u00FCssen Sie f\u00FCr den Job noch eine Ihrer Ant-Installationen ausw\u00E4hlen.
ArtifactArchiver.DeletingOld=Lsche alte Artefakte von {0}
ArtifactArchiver.DeletingOld=L\u00F6sche alte Artefakte von {0}
ArtifactArchiver.DisplayName=Artefakte archivieren
ArtifactArchiver.FailedToArchive=Artefakte konnten nicht archiviert werden: {0}
ArtifactArchiver.NoIncludes=\
Es sind kein Artefakte zur Archivierung konfiguriert.\n\
berprfen Sie, ob in den Einstellungen ein Dateisuchmuster angegeben ist.\n\
Wenn Sie alle Dateien archivieren mchten, geben Sie "**" an.
ArtifactArchiver.NoMatchFound=Keine Artefakte gefunden, die mit dem Dateisuchmuster "{0}" bereinstimmen. Ein Konfigurationsfehler?
\u00DCberpr\u00FCfen Sie, ob in den Einstellungen ein Dateisuchmuster angegeben ist.\n\
Wenn Sie alle Dateien archivieren m\u00F6chten, geben Sie "**" an.
ArtifactArchiver.NoMatchFound=Keine Artefakte gefunden, die mit dem Dateisuchmuster "{0}" \u00FCbereinstimmen. Ein Konfigurationsfehler?
BatchFile.DisplayName=Windows Batch Datei ausfhren
BatchFile.DisplayName=Windows Batch Datei ausf\u00FChren
BuildTrigger.Disabled={0} is deaktiviert. Keine Auslsung des Builds.
BuildTrigger.Disabled={0} is deaktiviert. Keine Ausl\u00F6sung des Builds.
BuildTrigger.DisplayName=Weitere Projekte bauen
BuildTrigger.InQueue={0} ist bereits geplant.
BuildTrigger.NoSuchProject=Kein Projekt ''{0}'' gefunden. Meinten Sie ''{1}''?
BuildTrigger.NotBuildable={0} kann nicht gebaut werden.
BuildTrigger.Triggering=Lse einen neuen Build von {0} aus
BuildTrigger.Triggering=L\u00F6se einen neuen Build von {0} aus
CommandInterpreter.CommandFailed=Befehlsausfhrung fehlgeschlagen
CommandInterpreter.UnableToDelete=Kann Skriptdatei {0} nicht lschen
CommandInterpreter.CommandFailed=Befehlsausf\u00FChrung fehlgeschlagen
CommandInterpreter.UnableToDelete=Kann Skriptdatei {0} nicht l\u00F6schen
CommandInterpreter.UnableToProduceScript=Kann keine Skriptdatei erstellen
Fingerprinter.Aborted=Aborted
Fingerprinter.Action.DisplayName=Fingerabdrcke ansehen
Fingerprinter.DigestFailed=Berechnung der Prfsumme fr {0} fehlgeschlagen
Fingerprinter.DisplayName=Fingerabdrcke von Dateien aufzeichnen, um deren Verwendung zu verfolgen
Fingerprinter.Failed=Aufzeichnen der Fingerabdrcke fehlgeschlagen
Fingerprinter.FailedFor=Aufzeichnen des Fingerabdrucks fr {0} fehlgeschlagen
Fingerprinter.NoArchiving=Die Fingerabdrcke von Build-Artefakten sollen aufgezeichnet werden, aber die Archivierung der Artefakte ist nicht konfiguriert.
Fingerprinter.NoWorkspace=Fingerabdrcke knnen nicht aufgezeichnet werden, weil der Arbeitsbereich fehlt.
Fingerprinter.Recording=Zeichne Fingerabrcke auf
Fingerprinter.Action.DisplayName=Fingerabdr\u00FCcke ansehen
Fingerprinter.DigestFailed=Berechnung der Pr\u00FCfsumme f\u00FCr {0} fehlgeschlagen
Fingerprinter.DisplayName=Fingerabdr\u00FCcke von Dateien aufzeichnen, um deren Verwendung zu verfolgen
Fingerprinter.Failed=Aufzeichnen der Fingerabdr\u00FCcke fehlgeschlagen
Fingerprinter.FailedFor=Aufzeichnen des Fingerabdrucks f\u00FCr {0} fehlgeschlagen
Fingerprinter.NoArchiving=Die Fingerabdr\u00FCcke von Build-Artefakten sollen aufgezeichnet werden, aber die Archivierung der Artefakte ist nicht konfiguriert.
Fingerprinter.NoWorkspace=Fingerabdr\u00FCcke k\u00F6nnen nicht aufgezeichnet werden, weil der Arbeitsbereich fehlt.
Fingerprinter.Recording=Zeichne Fingerabr\u00FCcke auf
JavadocArchiver.DisplayName=Javadoc verffentlichen
JavadocArchiver.DisplayName=Javadoc ver\u00F6ffentlichen
JavadocArchiver.DisplayName.Generic=Dokumentation
JavadocArchiver.DisplayName.Javadoc=Javadocs
JavadocArchiver.NoMatchFound=Keine Javadocs in {0} gefunden: {1}
JavadocArchiver.Publishing=Verffentliche Javadocs
JavadocArchiver.Publishing=Ver\u00F6ffentliche Javadocs
JavadocArchiver.UnableToCopy=Kann Javadocs nicht von {0} nach {1} kopieren
MailSender.ListEmpty=Der Versuch wurde ignoriert, eine E-Mail an eine leere Liste von Empfngern zu verschicken.
MailSender.NoAddress=Es konnte keine E-Mail an {0} geschickt werden, weil die E-Mail-Adresse unbekannt ist und kein Standardwert fr die E-Mail-Domain eingestellt ist.
MailSender.ListEmpty=Der Versuch wurde ignoriert, eine E-Mail an eine leere Liste von Empf\u00E4ngern zu verschicken.
MailSender.NoAddress=Es konnte keine E-Mail an {0} geschickt werden, weil die E-Mail-Adresse unbekannt ist und kein Standardwert f\u00FCr die E-Mail-Domain eingestellt ist.
Mailer.DisplayName=E-Mail-Benachrichtigung
Mailer.UserProperty.DisplayName=E-Mail
Maven.DisplayName=Maven Goals aufrufen
Maven.ExecFailed=Befehlsausfhrung fehlgeschlagen
Maven.MavenHomeRequired=MAVEN_HOME mu gesetzt sein
Maven.ExecFailed=Befehlsausf\u00FChrung fehlgeschlagen
Maven.NotMavenDirectory={0} sieht nicht wie ein Maven-Verzeichnis aus.
Maven.NoExecutable=Konnte keine ausfhrbare Datei in {0} finden
Maven.NoExecutable=Konnte keine ausf\u00FChrbare Datei in {0} finden
Maven.NotADirectory={0} ist kein Verzeichnis
Shell.DisplayName=Shell ausfhren
Shell.DisplayName=Shell ausf\u00FChren
......@@ -21,63 +21,62 @@
# THE SOFTWARE.
Ant.DisplayName=Appeler Ant
Ant.ExecFailed=L''exécution de la commande a échoué.
Ant.ExecutableNotFound=Impossible de trouver l''exécutable correspondant à l''installation de Ant choisie "{0}"
Ant.GlobalConfigNeeded=Avez-vous configuré l''endroit où se trouvent les installations de Ant?
Ant.NotADirectory={0} n''est pas un répertoire
Ant.NotAntDirectory={0} ne semble pas être un répertoire Ant
Ant.ProjectConfigNeeded=Avez-vous configuré le job de façon à choisir une de vos installations de Ant?
Ant.ExecFailed=L''ex\u00E9cution de la commande a \u00E9chou\u00E9.
Ant.ExecutableNotFound=Impossible de trouver l''ex\u00E9cutable correspondant \u00E0 l''installation de Ant choisie "{0}"
Ant.GlobalConfigNeeded=Avez-vous configur\u00E9 l''endroit o\u00F9 se trouvent les installations de Ant?
Ant.NotADirectory={0} n''est pas un r\u00E9pertoire
Ant.NotAntDirectory={0} ne semble pas \u00EAtre un r\u00E9pertoire Ant
Ant.ProjectConfigNeeded=Avez-vous configur\u00E9 le job de fa\u00E7on \u00E0 choisir une de vos installations de Ant?
ArtifactArchiver.DeletingOld=Suppression des anciens artefacts de {0}
ArtifactArchiver.DisplayName=Archiver des artefacts
ArtifactArchiver.FailedToArchive=Echec lors de l''archivage des artefacts: {0}
ArtifactArchiver.NoIncludes=\
Aucun artefact n''est configuré pour l''archivage.\n\
Vous avez probablement oublié de positionner le pattern pour les noms des fichiers; merci de retourner à la configuration et de le spécifier.\n\
Si vous souhaitez réellement archiver tous les fichiers dans le workspace, indiquez "**".
Aucun artefact n''est configur\u00E9 pour l''archivage.\n\
Vous avez probablement oubli\u00E9 de positionner le pattern pour les noms des fichiers; merci de retourner \u00E0 la configuration et de le sp\u00E9cifier.\n\
Si vous souhaitez r\u00E9ellement archiver tous les fichiers dans le workspace, indiquez "**".
ArtifactArchiver.NoMatchFound=Aucun artefact ne correspond au pattern "{0}". Erreur de configuration?
BatchFile.DisplayName=Exécuter une ligne de commande batch Windows
BatchFile.DisplayName=Ex\u00E9cuter une ligne de commande batch Windows
BuildTrigger.Disabled={0} est désactivé. Lancement non fait.
BuildTrigger.Disabled={0} est d\u00E9sactiv\u00E9. Lancement non fait.
BuildTrigger.DisplayName=Construire d''autres projets (projets en aval)
BuildTrigger.InQueue={0} est déjà en file d''attente
BuildTrigger.InQueue={0} est d\u00E9j\u00E0 en file d''attente
BuildTrigger.NoSuchProject=Pas de projet ''{0}''. Vouliez-vous dire ''{1}''?
BuildTrigger.NotBuildable={0} ne peut pas être construit
BuildTrigger.NotBuildable={0} ne peut pas \u00EAtre construit
BuildTrigger.Triggering=Lancement d''un nouveau build de {0}
CommandInterpreter.CommandFailed=L''exécution de la commande a échoué.
CommandInterpreter.CommandFailed=L''ex\u00E9cution de la commande a \u00E9chou\u00E9.
CommandInterpreter.UnableToDelete=Impossible de supprimer le fichier de script {0}
CommandInterpreter.UnableToProduceScript=Impossible de produire un fichier de script
Fingerprinter.Aborted=Annulé
Fingerprinter.Action.DisplayName=Voir les empreintes numériques
Fingerprinter.DigestFailed=Impossible de calculer le résumé pour {0}
Fingerprinter.DisplayName=Enregistrer les empreintes numériques des fichiers pour en suivre l''utilisation
Fingerprinter.Failed=Impossible d''enregistrer les empreintes numériques
Fingerprinter.FailedFor=Impossible d''enregistrer les empreintes numériques pour {0}
Fingerprinter.NoArchiving=Les artefacts du build sont supposés recevoir une empreinte numérique, mais l''archivage n''a pas été activé
Fingerprinter.NoWorkspace=Impossible d''enregistrer les empreintes numériques, parce qu''il n''y a pas de répertoire de travail
Fingerprinter.Recording=Enregistrement des empreintes numériques
Fingerprinter.Aborted=Annul\u00E9
Fingerprinter.Action.DisplayName=Voir les empreintes num\u00E9riques
Fingerprinter.DigestFailed=Impossible de calculer le r\u00E9sum\u00E9 pour {0}
Fingerprinter.DisplayName=Enregistrer les empreintes num\u00E9riques des fichiers pour en suivre l''utilisation
Fingerprinter.Failed=Impossible d''enregistrer les empreintes num\u00E9riques
Fingerprinter.FailedFor=Impossible d''enregistrer les empreintes num\u00E9riques pour {0}
Fingerprinter.NoArchiving=Les artefacts du build sont suppos\u00E9s recevoir une empreinte num\u00E9rique, mais l''archivage n''a pas \u00E9t\u00E9 activ\u00E9
Fingerprinter.NoWorkspace=Impossible d''enregistrer les empreintes num\u00E9riques, parce qu''il n''y a pas de r\u00E9pertoire de travail
Fingerprinter.Recording=Enregistrement des empreintes num\u00E9riques
JavadocArchiver.DisplayName=Publier les Javadocs
JavadocArchiver.DisplayName.Generic=Documentation du code
JavadocArchiver.DisplayName.Javadoc=Javadoc
JavadocArchiver.NoMatchFound=Pas de javadoc trouvé dans {0}: {1}
JavadocArchiver.NoMatchFound=Pas de javadoc trouv\u00E9 dans {0}: {1}
JavadocArchiver.Publishing=Publication des Javadocs
JavadocArchiver.UnableToCopy=Impossible de copier les Javadocs de {0} vers {1}
MailSender.ListEmpty=Tentative d''envoi d''email vers une liste de destinataires vide. Tentative ignorée.
MailSender.NoAddress=Impossible d''envoyer un e-mail vers {0} parce qu''aucune adresse email n''est spécifiée et aucun domaine email n''est configuré
MailSender.ListEmpty=Tentative d''envoi d''email vers une liste de destinataires vide. Tentative ignor\u00E9e.
MailSender.NoAddress=Impossible d''envoyer un e-mail vers {0} parce qu''aucune adresse email n''est sp\u00E9cifi\u00E9e et aucun domaine email n''est configur\u00E9
Mailer.DisplayName=Notifier par email
Mailer.UserProperty.DisplayName=Email
Maven.DisplayName=Invoquer les cibles Maven de haut niveau
Maven.ExecFailed=L''exécution de la commande a échoué.
Maven.MavenHomeRequired=MAVEN_HOME est obligatoire
Maven.NotMavenDirectory={0} ne semble pas être un répertoire Maven
Maven.NoExecutable=Impossible de trouver un exécutable dans {0}
Maven.NotADirectory={0} n''est pas un répertoire
Maven.ExecFailed=L''ex\u00E9cution de la commande a \u00E9chou\u00E9.
Maven.NotMavenDirectory={0} ne semble pas \u00EAtre un r\u00E9pertoire Maven
Maven.NoExecutable=Impossible de trouver un ex\u00E9cutable dans {0}
Maven.NotADirectory={0} n''est pas un r\u00E9pertoire
Shell.DisplayName=Exécuter un script shell
Shell.DisplayName=Ex\u00E9cuter un script shell
......@@ -76,7 +76,6 @@ Mailer.UserProperty.DisplayName=E-mail
Maven.DisplayName=Maven\u306E\u547C\u3073\u51FA\u3057
Maven.ExecFailed=\u30B3\u30DE\u30F3\u30C9\u306E\u5B9F\u884C\u306B\u5931\u6557\u3057\u307E\u3057\u305F
Maven.MavenHomeRequired=MAVEN_HOME\u304C\u5FC5\u8981\u3067\u3059
Maven.NotMavenDirectory={0}\u306B\u306FMaven\u304C\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u3066\u3044\u306A\u3044\u3088\u3046\u3067\u3059
Maven.NoExecutable={0} \u306B\u5B9F\u884C\u5F62\u5F0F\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093
Maven.NotADirectory={0}\u306F\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3067\u306F\u3042\u308A\u307E\u305B\u3093
......
......@@ -73,7 +73,6 @@ Mailer.UserProperty.DisplayName=E-mail
Maven.DisplayName=Voer top-niveau Maven taken uit
Maven.ExecFailed=uitvoer commando is gefaald
Maven.MavenHomeRequired=MAVEN_HOME is verplicht
Maven.NotMavenDirectory={0} is geen Maven folder
Maven.NoExecutable=Kon geen uitvoerbaar bestand vinde in {0}
Maven.NotADirectory={0} is geen folder
......
......@@ -73,7 +73,6 @@ Mailer.UserProperty.DisplayName=E-mail
Maven.DisplayName=Invocar alvos Maven de alto n\u00EDvel
Maven.ExecFailed=execu\u00E7\u00E3o de comando falhou
Maven.MavenHomeRequired=MAVEN_HOME \u00E9 requerido
Maven.NotMavenDirectory={0} n\u00E3o parece ser um diret\u00F3rio Maven
Maven.NoExecutable=N\u00E3o pode encontrar nehum execut\u00E1vel em {0}
Maven.NotADirectory={0} n\u00E3o \u00E9 um diret\u00F3rio
......
......@@ -20,62 +20,61 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Ant.DisplayName=\u0412\u044b\u0437\u0432\u0430\u0442\u044c Ant
Ant.ExecFailed=\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043f\u0440\u043e\u0432\u0430\u043b\u0438\u043b\u043e\u0441\u044c.
Ant.GlobalConfigNeeded=\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c, \u0433\u0434\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u0430\u0448\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u044f Ant?
Ant.NotADirectory={0} \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0435\u0439
Ant.NotAntDirectory={0} \u043d\u0435 \u043f\u043e\u0445\u043e\u0436\u0430 \u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e Ant
Ant.ProjectConfigNeeded= \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435, \u0433\u0434\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u0430\u0448\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u044f Ant?
Ant.DisplayName=\u0412\u044B\u0437\u0432\u0430\u0442\u044C Ant
Ant.ExecFailed=\u0412\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u043A\u043E\u043C\u0430\u043D\u0434\u044B \u043F\u0440\u043E\u0432\u0430\u043B\u0438\u043B\u043E\u0441\u044C.
Ant.GlobalConfigNeeded=\u0412\u043E\u0437\u043C\u043E\u0436\u043D\u043E, \u0432\u0430\u043C \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E \u0443\u043A\u0430\u0437\u0430\u0442\u044C, \u0433\u0434\u0435 \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u0432\u0430\u0448\u0430 \u0438\u043D\u0441\u0442\u0430\u043B\u043B\u044F\u0446\u0438\u044F Ant?
Ant.NotADirectory={0} \u043D\u0435 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u0435\u0439
Ant.NotAntDirectory={0} \u043D\u0435 \u043F\u043E\u0445\u043E\u0436\u0430 \u043D\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044E Ant
Ant.ProjectConfigNeeded= \u0412\u043E\u0437\u043C\u043E\u0436\u043D\u043E, \u0432\u0430\u043C \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u0432 \u043F\u0440\u043E\u0435\u043A\u0442\u0435, \u0433\u0434\u0435 \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u0432\u0430\u0448\u0430 \u0438\u043D\u0441\u0442\u0430\u043B\u043B\u044F\u0446\u0438\u044F Ant?
ArtifactArchiver.DeletingOld=\u0423\u0434\u0430\u043b\u044f\u044e \u0441\u0442\u0430\u0440\u044b\u0435 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b \u0438\u0437 {0}
ArtifactArchiver.DisplayName=\u0417\u0430\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b
ArtifactArchiver.FailedToArchive=\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b: {0}
ArtifactArchiver.DeletingOld=\u0423\u0434\u0430\u043B\u044F\u044E \u0441\u0442\u0430\u0440\u044B\u0435 \u0430\u0440\u0442\u0435\u0444\u0430\u043A\u0442\u044B \u0438\u0437 {0}
ArtifactArchiver.DisplayName=\u0417\u0430\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0430\u0440\u0442\u0435\u0444\u0430\u043A\u0442\u044B
ArtifactArchiver.FailedToArchive=\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0430\u0440\u0442\u0435\u0444\u0430\u043A\u0442\u044B: {0}
ArtifactArchiver.NoIncludes=\
\u041d\u0435\u0442 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438.\n\
\u041f\u043e\u0445\u043e\u0436\u0435, \u0432\u044b \u0437\u0430\u0431\u044b\u043b\u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d \u0438\u043c\u0435\u043d\u0438 \u0444\u0430\u0439\u043b\u0430, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u0435\u0440\u043d\u0438\u0442\u0435\u0441\u044c \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0438 \u0443\u043a\u0430\u0436\u0438\u0442\u0435 \u0435\u0433\u043e.\n\
\u0415\u0441\u043b\u0438 \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0437\u0430\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0444\u0430\u0439\u043b\u044b \u0432 \u0441\u0431\u043e\u0440\u043e\u0447\u043d\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438, \u0443\u043a\u0430\u0436\u0438\u0442\u0435 "**"
ArtifactArchiver.NoMatchFound=\u0410\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0448\u0430\u0431\u043b\u043e\u043d\u0443 "{0}", \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e. \u041e\u0448\u0438\u0431\u043b\u0438\u0441\u044c \u043f\u0440\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438?
\u041D\u0435\u0442 \u0430\u0440\u0442\u0435\u0444\u0430\u043A\u0442\u043E\u0432 \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u044B\u0445 \u0434\u043B\u044F \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438.\n\
\u041F\u043E\u0445\u043E\u0436\u0435, \u0432\u044B \u0437\u0430\u0431\u044B\u043B\u0438 \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u0448\u0430\u0431\u043B\u043E\u043D \u0438\u043C\u0435\u043D\u0438 \u0444\u0430\u0439\u043B\u0430, \u043F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u0432\u0435\u0440\u043D\u0438\u0442\u0435\u0441\u044C \u043D\u0430 \u044D\u043A\u0440\u0430\u043D \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0438 \u0443\u043A\u0430\u0436\u0438\u0442\u0435 \u0435\u0433\u043E.\n\
\u0415\u0441\u043B\u0438 \u0432\u044B \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u0437\u0430\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432\u0441\u0435 \u0444\u0430\u0439\u043B\u044B \u0432 \u0441\u0431\u043E\u0440\u043E\u0447\u043D\u043E\u0439 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u0438, \u0443\u043A\u0430\u0436\u0438\u0442\u0435 "**"
ArtifactArchiver.NoMatchFound=\u0410\u0440\u0442\u0435\u0444\u0430\u043A\u0442\u043E\u0432, \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u0445 \u0448\u0430\u0431\u043B\u043E\u043D\u0443 "{0}", \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E. \u041E\u0448\u0438\u0431\u043B\u0438\u0441\u044C \u043F\u0440\u0438 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0438?
BatchFile.DisplayName=\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 Windows
BatchFile.DisplayName=\u0412\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C \u043A\u043E\u043C\u0430\u043D\u0434\u0443 Windows
BuildTrigger.Disabled={0} \u043f\u0440\u0438\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d. \u041d\u0435 \u043c\u043e\u0433\u0443 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c
BuildTrigger.DisplayName=\u0421\u043e\u0431\u0440\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u0440\u043e\u0435\u043a\u0442
BuildTrigger.InQueue={0} \u0443\u0436\u0435 \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u0438
BuildTrigger.NoSuchProject=\u041d\u0435\u0442 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 ''{0}''. \u0412\u044b \u0438\u043c\u0435\u043b\u0438 \u0432 \u0432\u0438\u0434\u0443 ''{1}''?
BuildTrigger.NotBuildable={0} \u043d\u0435\u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u044b\u0439
BuildTrigger.Triggering=\u0418\u043d\u0438\u0446\u0438\u0438\u0440\u0443\u044e \u043d\u043e\u0432\u0443\u044e \u0441\u0431\u043e\u0440\u043a\u0443 {0}
BuildTrigger.Disabled={0} \u043F\u0440\u0438\u043E\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D. \u041D\u0435 \u043C\u043E\u0433\u0443 \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C
BuildTrigger.DisplayName=\u0421\u043E\u0431\u0440\u0430\u0442\u044C \u0434\u0440\u0443\u0433\u043E\u0439 \u043F\u0440\u043E\u0435\u043A\u0442
BuildTrigger.InQueue={0} \u0443\u0436\u0435 \u0432 \u043E\u0447\u0435\u0440\u0435\u0434\u0438
BuildTrigger.NoSuchProject=\u041D\u0435\u0442 \u043F\u0440\u043E\u0435\u043A\u0442\u0430 ''{0}''. \u0412\u044B \u0438\u043C\u0435\u043B\u0438 \u0432 \u0432\u0438\u0434\u0443 ''{1}''?
BuildTrigger.NotBuildable={0} \u043D\u0435\u0441\u043E\u0431\u0438\u0440\u0430\u0435\u043C\u044B\u0439
BuildTrigger.Triggering=\u0418\u043D\u0438\u0446\u0438\u0438\u0440\u0443\u044E \u043D\u043E\u0432\u0443\u044E \u0441\u0431\u043E\u0440\u043A\u0443 {0}
CommandInterpreter.CommandFailed=\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c
CommandInterpreter.UnableToDelete=\u041d\u0435 \u043c\u043e\u0433\u0443 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442 {0}
CommandInterpreter.UnableToProduceScript=\u041d\u0435 \u043c\u043e\u0433\u0443 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442
CommandInterpreter.CommandFailed=\u0412\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u043A\u043E\u043C\u0430\u043D\u0434\u044B \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C
CommandInterpreter.UnableToDelete=\u041D\u0435 \u043C\u043E\u0433\u0443 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u0441\u043A\u0440\u0438\u043F\u0442 {0}
CommandInterpreter.UnableToProduceScript=\u041D\u0435 \u043C\u043E\u0433\u0443 \u0441\u043E\u0437\u0434\u0430\u0442\u044C \u0441\u043A\u0440\u0438\u043F\u0442
Fingerprinter.Aborted=\u041f\u0440\u0435\u0440\u0432\u0430\u043d\u043e
Fingerprinter.Action.DisplayName=\u0421\u043c\u043e\u0442\u0440\u0438 \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u043a\u0438 (fingerprints)
Fingerprinter.DigestFailed=\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0434\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u0443\u044e \u0441\u0443\u043c\u043c\u0443 {0}
Fingerprinter.DisplayName=\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u043a\u0438 \u0444\u0430\u0439\u043b\u043e\u0432 (fingerprints) \u0434\u043b\u044f \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f
Fingerprinter.Failed=\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u043a\u0438
Fingerprinter.FailedFor=\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u043a\u0438 {0}
Fingerprinter.NoArchiving=\u0410\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b \u0441\u0431\u043e\u0440\u043a\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u0430\u043d\u044b, \u043d\u043e \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u044f \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432 \u043d\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0430
Fingerprinter.NoWorkspace=\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u043a\u0438, \u0442.\u043a. \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0430 \u0441\u0431\u043e\u0440\u043e\u0447\u043d\u0430\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f
Fingerprinter.Recording=\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u044e \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u043a\u0438 (fingerprints)
Fingerprinter.Aborted=\u041F\u0440\u0435\u0440\u0432\u0430\u043D\u043E
Fingerprinter.Action.DisplayName=\u0421\u043C\u043E\u0442\u0440\u0438 \u043E\u0442\u043F\u0435\u0447\u0430\u0442\u043A\u0438 (fingerprints)
Fingerprinter.DigestFailed=\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u043E\u0434\u0441\u0447\u0438\u0442\u0430\u0442\u044C \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u044C\u043D\u0443\u044E \u0441\u0443\u043C\u043C\u0443 {0}
Fingerprinter.DisplayName=\u0421\u043E\u0445\u0440\u0430\u043D\u044F\u0442\u044C \u043E\u0442\u043F\u0435\u0447\u0430\u0442\u043A\u0438 \u0444\u0430\u0439\u043B\u043E\u0432 (fingerprints) \u0434\u043B\u044F \u043E\u0442\u0441\u043B\u0435\u0436\u0438\u0432\u0430\u043D\u0438\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F
Fingerprinter.Failed=\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u043E\u0442\u043F\u0435\u0447\u0430\u0442\u043A\u0438
Fingerprinter.FailedFor=\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u043E\u0442\u043F\u0435\u0447\u0430\u0442\u043A\u0438 {0}
Fingerprinter.NoArchiving=\u0410\u0440\u0442\u0435\u0444\u0430\u043A\u0442\u044B \u0441\u0431\u043E\u0440\u043A\u0438 \u0434\u043E\u043B\u0436\u043D\u044B \u0431\u044B\u0442\u044C \u043E\u0442\u043F\u0435\u0447\u0430\u0442\u0430\u043D\u044B, \u043D\u043E \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u044F \u0430\u0440\u0442\u0435\u0444\u0430\u043A\u0442\u043E\u0432 \u043D\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043D\u0430
Fingerprinter.NoWorkspace=\u041D\u0435\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u043E\u0442\u043F\u0435\u0447\u0430\u0442\u043A\u0438, \u0442.\u043A. \u043D\u0435 \u0441\u043E\u0437\u0434\u0430\u043D\u0430 \u0441\u0431\u043E\u0440\u043E\u0447\u043D\u0430\u044F \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F
Fingerprinter.Recording=\u0421\u043E\u0445\u0440\u0430\u043D\u044F\u044E \u043E\u0442\u043F\u0435\u0447\u0430\u0442\u043A\u0438 (fingerprints)
JavadocArchiver.DisplayName=\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c Javadoc
JavadocArchiver.DisplayName.Generic=\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442
JavadocArchiver.DisplayName=\u041E\u043F\u0443\u0431\u043B\u0438\u043A\u043E\u0432\u0430\u0442\u044C Javadoc
JavadocArchiver.DisplayName.Generic=\u0414\u043E\u043A\u0443\u043C\u0435\u043D\u0442
JavadocArchiver.DisplayName.Javadoc=Javadoc
JavadocArchiver.Publishing=\u041f\u0443\u0431\u043b\u0438\u043a\u0443\u044e Javadoc
JavadocArchiver.UnableToCopy=\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c Javadoc \u0438\u0437 {0} \u0432 {1}
JavadocArchiver.Publishing=\u041F\u0443\u0431\u043B\u0438\u043A\u0443\u044E Javadoc
JavadocArchiver.UnableToCopy=\u041D\u0435\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u0441\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C Javadoc \u0438\u0437 {0} \u0432 {1}
MailSender.ListEmpty=\u041f\u043e\u043f\u044b\u0442\u043a\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435 \u043f\u0443\u0441\u0442\u043e\u043c\u0443 \u0441\u043f\u0438\u0441\u043a\u0443 \u0430\u0434\u0440\u0435\u0441\u0430\u0442\u043e\u0432. \u041f\u0440\u043e\u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043e.
MailSender.NoAddress=\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 {0} \u0442\u0430\u043a \u043a\u0430\u043a \u0435\u0433\u043e \u0430\u0434\u0440\u0435\u0441 \u043d\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d, \u0430 \u0434\u043e\u043c\u0435\u043d \u043f\u043e-\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043d\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d
MailSender.ListEmpty=\u041F\u043E\u043F\u044B\u0442\u043A\u0430 \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435 \u043F\u0443\u0441\u0442\u043E\u043C\u0443 \u0441\u043F\u0438\u0441\u043A\u0443 \u0430\u0434\u0440\u0435\u0441\u0430\u0442\u043E\u0432. \u041F\u0440\u043E\u0438\u0433\u043D\u043E\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043E.
MailSender.NoAddress=\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 {0} \u0442\u0430\u043A \u043A\u0430\u043A \u0435\u0433\u043E \u0430\u0434\u0440\u0435\u0441 \u043D\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043D, \u0430 \u0434\u043E\u043C\u0435\u043D \u043F\u043E-\u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u043D\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043D
Mailer.DisplayName=\u0423\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435 \u043f\u043e \u043f\u043e\u0447\u0442\u0435
Mailer.UserProperty.DisplayName=\u0410\u0434\u0440\u0435\u0441 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043f\u043e\u0447\u0442\u044b
Mailer.DisplayName=\u0423\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435 \u043F\u043E \u043F\u043E\u0447\u0442\u0435
Mailer.UserProperty.DisplayName=\u0410\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043F\u043E\u0447\u0442\u044B
Maven.DisplayName=\u0412\u044b\u0437\u0432\u0430\u0442\u044c \u0446\u0435\u043b\u0438 Maven \u0432\u0435\u0440\u0445\u043d\u0435\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f
Maven.ExecFailed=\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c
Maven.MavenHomeRequired=MAVEN_HOME \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u043d
Maven.NotMavenDirectory={0} \u043d\u0435 \u043f\u043e\u0445\u043e\u0436\u0430 \u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e Maven
Maven.NoExecutable=\u041d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 {0}
Maven.NotADirectory={0} \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0435\u0439
Maven.DisplayName=\u0412\u044B\u0437\u0432\u0430\u0442\u044C \u0446\u0435\u043B\u0438 Maven \u0432\u0435\u0440\u0445\u043D\u0435\u0433\u043E \u0443\u0440\u043E\u0432\u043D\u044F
Maven.ExecFailed=\u0412\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u043A\u043E\u043C\u0430\u043D\u0434\u044B \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C
Maven.NotMavenDirectory={0} \u043D\u0435 \u043F\u043E\u0445\u043E\u0436\u0430 \u043D\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044E Maven
Maven.NoExecutable=\u041D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E \u0438\u0441\u043F\u043E\u043B\u043D\u044F\u0435\u043C\u044B\u0445 \u0444\u0430\u0439\u043B\u043E\u0432 \u0432 {0}
Maven.NotADirectory={0} \u043D\u0435 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u0435\u0439
Shell.DisplayName=\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 shell
Shell.DisplayName=\u0412\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C \u043A\u043E\u043C\u0430\u043D\u0434\u0443 shell
......@@ -20,62 +20,61 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Ant.DisplayName=Ant \u00e7al\u0131\u015ft\u0131r
Ant.ExecFailed=Komut \u00e7al\u0131\u015ft\u0131rma ba\u015far\u0131s\u0131z oldu.
Ant.GlobalConfigNeeded= Ant kurulumunun nerede oldu\u011fu ile ilgili bir konfig\u00fcrasyon sorunu olabilir?
Ant.NotADirectory={0}, bir dizin de\u011fil
Ant.DisplayName=Ant \u00E7al\u0131\u015Ft\u0131r
Ant.ExecFailed=Komut \u00E7al\u0131\u015Ft\u0131rma ba\u015Far\u0131s\u0131z oldu.
Ant.GlobalConfigNeeded= Ant kurulumunun nerede oldu\u011Fu ile ilgili bir konfig\u00FCrasyon sorunu olabilir?
Ant.NotADirectory={0}, bir dizin de\u011Fil
Ant.NotAntDirectory={0}, bir Ant dizinine benzemiyor
Ant.ProjectConfigNeeded= \u00c7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131z i\u015f i\u00e7in bir Ant kurulumu se\u00e7meniz gerekiyor olabilir?
Ant.ProjectConfigNeeded= \u00C7al\u0131\u015Ft\u0131rd\u0131\u011F\u0131n\u0131z i\u015F i\u00E7in bir Ant kurulumu se\u00E7meniz gerekiyor olabilir?
ArtifactArchiver.DeletingOld={0}''dan, eski artefaktlar siliniyor
ArtifactArchiver.DisplayName=Artefaktlar\u0131 Ar\u015fivle
ArtifactArchiver.FailedToArchive=Artefakt ar\u015fivleme ba\u015far\u0131s\u0131z oldu: {0}
ArtifactArchiver.DisplayName=Artefaktlar\u0131 Ar\u015Fivle
ArtifactArchiver.FailedToArchive=Artefakt ar\u015Fivleme ba\u015Far\u0131s\u0131z oldu: {0}
ArtifactArchiver.NoIncludes=\
Herhangi bir artefakt, ar\u015fivleme i\u00e7in ayarlanmad\u0131.\n\
Konfig\u00fcrasyon k\u0131sm\u0131nda File Pattern ayarlar\u0131n\u0131 kontrol edin.\n\
\u00c7al\u0131\u015fma alan\u0131ndaki t\u00fcm dosyalar\u0131 ar\u015fivlemek istiyorsan\u0131z, "**" olarak belirtin.
ArtifactArchiver.NoMatchFound="{0}" file pattern''ine uyan herhangi bir artefakt bulunamad\u0131. Konfig\u00fcrasyonu kontrol edin?
Herhangi bir artefakt, ar\u015Fivleme i\u00E7in ayarlanmad\u0131.\n\
Konfig\u00FCrasyon k\u0131sm\u0131nda File Pattern ayarlar\u0131n\u0131 kontrol edin.\n\
\u00C7al\u0131\u015Fma alan\u0131ndaki t\u00FCm dosyalar\u0131 ar\u015Fivlemek istiyorsan\u0131z, "**" olarak belirtin.
ArtifactArchiver.NoMatchFound="{0}" file pattern''ine uyan herhangi bir artefakt bulunamad\u0131. Konfig\u00FCrasyonu kontrol edin?
BatchFile.DisplayName=Windows batch komutu \u00e7al\u0131\u015ft\u0131r
BatchFile.DisplayName=Windows batch komutu \u00E7al\u0131\u015Ft\u0131r
BuildTrigger.Disabled={0} devre d\u0131\u015f\u0131 b\u0131rak\u0131lm\u0131\u015f. Tetikleme es ge\u00e7ildi.
BuildTrigger.DisplayName=Di\u011fer projeleri yap\u0131land\u0131r
BuildTrigger.Disabled={0} devre d\u0131\u015F\u0131 b\u0131rak\u0131lm\u0131\u015F. Tetikleme es ge\u00E7ildi.
BuildTrigger.DisplayName=Di\u011Fer projeleri yap\u0131land\u0131r
BuildTrigger.InQueue={0} zaten s\u0131rada
BuildTrigger.NoSuchProject=''{0}'' diye bir proje yok. ''{1}'' olabilir mi?
BuildTrigger.NotBuildable={0} yap\u0131land\u0131r\u0131labilir de\u011fil
BuildTrigger.NotBuildable={0} yap\u0131land\u0131r\u0131labilir de\u011Fil
BuildTrigger.Triggering={0} yap\u0131land\u0131rmas\u0131 tetikleniyor
CommandInterpreter.CommandFailed=komut \u00e7al\u0131\u015ft\u0131rma ba\u015far\u0131s\u0131z oldu
CommandInterpreter.CommandFailed=komut \u00E7al\u0131\u015Ft\u0131rma ba\u015Far\u0131s\u0131z oldu
CommandInterpreter.UnableToDelete=Script dosyas\u0131 {0} silinemiyor
CommandInterpreter.UnableToProduceScript=Bir script dosyas\u0131 olu\u015fturulam\u0131yor
CommandInterpreter.UnableToProduceScript=Bir script dosyas\u0131 olu\u015Fturulam\u0131yor
Fingerprinter.Aborted=Durduruldu
Fingerprinter.Action.DisplayName=Parmakizlerini g\u00f6zden ge\u00e7ir
Fingerprinter.DigestFailed={0} i\u00e7in digest olu\u015fturma ba\u015far\u0131s\u0131z oldu
Fingerprinter.DisplayName=Takip ama\u00e7l\u0131 dosyalar\u0131n parmakizlerini kaydet
Fingerprinter.Failed=Parmakizi kayd\u0131 ba\u015far\u0131s\u0131z oldu
Fingerprinter.FailedFor={0} i\u00e7in parmakizi kayd\u0131 ba\u015far\u0131s\u0131z oldu
Fingerprinter.NoArchiving=Yap\u0131land\u0131rma artefaktlar\u0131n\u0131n parmakizlerinin al\u0131nmas\u0131 gerekirdi, fakat yap\u0131land\u0131rma artefaktlar\u0131 i\u00e7in bir ar\u015fivleme konfig\u00fcrasyonu yap\u0131lmam\u0131\u015f.
Fingerprinter.NoWorkspace=Herhangi bir \u00e7al\u0131\u015fma alan\u0131 olmad\u0131\u011f\u0131 i\u00e7in parmakzi kaydedilemiyor.
Fingerprinter.Action.DisplayName=Parmakizlerini g\u00F6zden ge\u00E7ir
Fingerprinter.DigestFailed={0} i\u00E7in digest olu\u015Fturma ba\u015Far\u0131s\u0131z oldu
Fingerprinter.DisplayName=Takip ama\u00E7l\u0131 dosyalar\u0131n parmakizlerini kaydet
Fingerprinter.Failed=Parmakizi kayd\u0131 ba\u015Far\u0131s\u0131z oldu
Fingerprinter.FailedFor={0} i\u00E7in parmakizi kayd\u0131 ba\u015Far\u0131s\u0131z oldu
Fingerprinter.NoArchiving=Yap\u0131land\u0131rma artefaktlar\u0131n\u0131n parmakizlerinin al\u0131nmas\u0131 gerekirdi, fakat yap\u0131land\u0131rma artefaktlar\u0131 i\u00E7in bir ar\u015Fivleme konfig\u00FCrasyonu yap\u0131lmam\u0131\u015F.
Fingerprinter.NoWorkspace=Herhangi bir \u00E7al\u0131\u015Fma alan\u0131 olmad\u0131\u011F\u0131 i\u00E7in parmakzi kaydedilemiyor.
Fingerprinter.Recording=Parmakizi kaydediliyor
JavadocArchiver.DisplayName=Javadoc yay\u0131nla
JavadocArchiver.DisplayName.Generic=Dok\u00fcman
JavadocArchiver.DisplayName.Generic=Dok\u00FCman
JavadocArchiver.DisplayName.Javadoc=Javadoc
JavadocArchiver.Publishing=Javadoc yay\u0131nlan\u0131yor
JavadocArchiver.UnableToCopy={0}''dan {1}''e Javadoc kopyalanam\u0131yor
MailSender.ListEmpty=Bo\u015f al\u0131c\u0131 listesine e-posta g\u00f6nderilmeye \u00e7al\u0131\u015f\u0131ld\u0131\u011f\u0131 i\u00e7in iptal edildi.
MailSender.NoAddress={0}''a e-posta g\u00f6nderilemedi \u00e7\u00fcnk\u00fc herhangi bir e-posta adresi bilinmiyor, ve varsay\u0131lan e-posta sunucusu konfig\u00fcrasyonu yap\u0131lmam\u0131\u015f.
MailSender.ListEmpty=Bo\u015F al\u0131c\u0131 listesine e-posta g\u00F6nderilmeye \u00E7al\u0131\u015F\u0131ld\u0131\u011F\u0131 i\u00E7in iptal edildi.
MailSender.NoAddress={0}''a e-posta g\u00F6nderilemedi \u00E7\u00FCnk\u00FC herhangi bir e-posta adresi bilinmiyor, ve varsay\u0131lan e-posta sunucusu konfig\u00FCrasyonu yap\u0131lmam\u0131\u015F.
Mailer.DisplayName=E-posta Bilgilendirme
Mailer.UserProperty.DisplayName=E-posta
Maven.DisplayName=En \u00fcst seviye Maven hedeflerini \u00e7al\u0131\u015ft\u0131r
Maven.ExecFailed=Komut \u00e7al\u0131\u015ft\u0131rma ba\u015far\u0131s\u0131z
Maven.MavenHomeRequired=MAVEN_HOME gerekli
Maven.DisplayName=En \u00FCst seviye Maven hedeflerini \u00E7al\u0131\u015Ft\u0131r
Maven.ExecFailed=Komut \u00E7al\u0131\u015Ft\u0131rma ba\u015Far\u0131s\u0131z
Maven.NotMavenDirectory={0}, bir Maven dizinine benzemiyor
Maven.NoExecutable={0} i\u00e7erisinde herhangi bir \u00e7al\u0131\u015ft\u0131r\u0131labilir bulunamad\u0131
Maven.NotADirectory={0}, bir dizin de\u011fil
Maven.NoExecutable={0} i\u00E7erisinde herhangi bir \u00E7al\u0131\u015Ft\u0131r\u0131labilir bulunamad\u0131
Maven.NotADirectory={0}, bir dizin de\u011Fil
Shell.DisplayName=Shell \u00e7al\u0131\u015ft\u0131r
Shell.DisplayName=Shell \u00E7al\u0131\u015Ft\u0131r
......@@ -106,7 +106,7 @@ function toValue(e) {
function findAncestor(e, tagName) {
do {
e = e.parentNode;
} while(e.tagName!=tagName);
} while (e != null && e.tagName != tagName);
return e;
}
......@@ -692,6 +692,17 @@ function updateOptionalBlock(c,scroll) {
if(lastRow!=null) r = r.union(D.getRegion(lastRow));
scrollIntoView(r);
}
if (c.name == 'hudson-tools-InstallSourceProperty') {
// Hack to hide tool home when "Install automatically" is checked.
var homeField = findPreviousFormItem(c, 'home');
if (homeField != null && homeField.value == '') {
var tr = findAncestor(homeField, 'TR');
if (tr != null) {
tr.style.display = c.checked ? 'none' : '';
}
}
}
}
......@@ -979,6 +990,14 @@ var repeatableSupport = {
while(n.tag==null)
n = n.parentNode;
n.tag.expand();
// Hack to hide tool home when a new tool has some installers.
var inputs = n.getElementsByTagName('INPUT');
for (var i = 0; i < inputs.length; i++) {
var input = inputs[i];
if (input.name == 'hudson-tools-InstallSourceProperty') {
updateOptionalBlock(input, false);
}
}
}
};
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册