diff --git a/.classpath b/.classpath
index 4720ad68e208eca3476a8a9e198bfb7f36be92f7..0f6d86f21ee6f545513ec7fa4d4eb3f3a98045f6 100644
--- a/.classpath
+++ b/.classpath
@@ -15,6 +15,8 @@
 	<classpathentry kind="lib" path="lib/woodstox-core-5.0.3.jar"/>
 	<classpathentry kind="lib" path="lib/commons-logging-1.1.1.jar"/>
 	<classpathentry kind="lib" path="lib/args4j-2.33.jar"/>
+	<classpathentry kind="lib" path="lib/flexjson-2.1/flexjson-2.1.jar" sourcepath="lib/flexjson-2.1/flexjson-2.1-sources.jar"/>
+	<classpathentry kind="lib" path="lib/proxy-vole/proxy-vole-1.0.5-SNAPSHOT-jar-with-dependencies.jar" sourcepath="lib/proxy-vole/proxy-vole-1.0.5-SNAPSHOT-sources.jar"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="output" path="bin"/>
+	<classpathentry kind="output" path="target/classes"/>
 </classpath>
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..790fa64eaa68f119cb809842b2dfcff2ba51ef45
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,8 @@
+*~
+/target/
+/lib/
+/projects/test/bin/
+/tmp
+**/ignore/
+/build-gradle/
+/doc/
diff --git a/.project b/.project
index 95508994ffa044f38a19e303ed51dd325a12031c..7698d41ae54de7a284c2455f3bd5c1a9aac15c71 100644
--- a/.project
+++ b/.project
@@ -10,11 +10,6 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
-		<buildCommand>
-			<name>ch.acanda.eclipse.pmd.builder.PMDBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
diff --git a/CHANGES b/CHANGES
index bfc99b2dbd9f7ed1fb36e17969bdac62b518628e..6cedbaf7dac416c1cfa47673eaf7eab985784648 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,27 @@
+v3.0.0
+------
+
+- New translations!
+  - Greek, by Giota Digkoglou
+  - Spanish, by Maria de Vicente y Oliva and Jaime Manera Bassa
+
+- It is possible to set, server-side, a maximum number of clients.
+
+- Possible boolean parameters' values and default values in the
+  descriptions of boolean parameters are restricted to four values,
+  namely: "0", "1", "true" and "false".
+
+- Splasher now displays the splash screen centered on the main
+  monitor.  On dual monitor configuration e.g., the splash screen
+  straddled the two monitors.
+
+- The launcher now sets the title of the application's window GUI.  On
+  some linux systems, an application bundled with one-jar showed
+  "com-simontuffs-onejar-Boot" (corresponding to the X11 property
+  WM_CLASS, observed on Ubuntu 16.04 w/ Gnome 3.24 & 3.26.1).  The new
+  configuration property application.name is used to set this X11
+  property.
+
 v2.2
 ----
 
diff --git a/LICENSE/LICENCE.fr b/LICENSE/LICENCE.fr
index 66e4703afe70884bd5fb9004b4259e871706c73f..5f23c8235dbbfdff9498e795caff95953374daea 100644
--- a/LICENSE/LICENCE.fr
+++ b/LICENSE/LICENCE.fr
@@ -1,4 +1,4 @@
-Copyright Institut Mines Telecom - IMT Atlantique Bretagne Pays de la Loire 2002-2017
+© Institut Mines Télécom - IMT Atlantique Bretagne-Pays de la Loire 2002-2018
 
 Project leader, maintenance:
   Sébastien Bigaret <sebastien.bigaret@imt-atlantique.fr>
diff --git a/LICENSE/LICENSE.en b/LICENSE/LICENSE.en
index 910094f86781435699c8665e4d2e16ef632c5765..ab5d976e16ed7f12504d906a8548a7b6cce5ea18 100644
--- a/LICENSE/LICENSE.en
+++ b/LICENSE/LICENSE.en
@@ -1,4 +1,4 @@
-Copyright Institut Mines Telecom - IMT Atlantique Bretagne Pays de la Loire 2002-2017
+© Institut Mines Télécom - IMT Atlantique Bretagne-Pays de la Loire 2002-2018
 
 Project leader, maintainer:
   Sébastien Bigaret <sebastien.bigaret@imt-atlantique.fr>
diff --git a/ant/dependencies.xml b/ant/dependencies.xml
index 939c070b9dbcea99104a5081134fd34323a7e66f..3183ca02e9685e001a9c4608df2e2fcec9b76deb 100644
--- a/ant/dependencies.xml
+++ b/ant/dependencies.xml
@@ -20,7 +20,6 @@
       <filename name="jaxen.jar"/>
       <filename name="jdom.jar"/>
       <filename name="org.apache.common.lang.SystemUtils.jar"/>
-      <filename name="rmiio-2.0.2.jar"/>
       <filename name="saxpath.jar"/>
       <filename name="sqlite-jdbc-3.20.0.jar"/>
       <filename name="stax2-api-4.0.0.jar"/>
diff --git a/ant/javadoc.xml b/ant/javadoc.xml
index a60136d498b04ad36afe3213fb0901dbec4b201c..5c557b662dcf30a91fc9340e4e2cb47152c3862b 100644
--- a/ant/javadoc.xml
+++ b/ant/javadoc.xml
@@ -21,7 +21,7 @@
              noindex="false" nonavbar="false"
              windowtitle="Praxis API">
       <doctitle><![CDATA[<h1>Praxis documentation</h1>]]></doctitle>
-      <bottom><![CDATA[<i>Copyright &#169; 2002-2017, Institut Mines Telecom - IMT Atlantique Bretagne Pays de la Loire. All Rights Reserved.</i>]]></bottom>
+      <bottom><![CDATA[<i>Copyright &#169; 2002-2018, Institut Mines T&eacute;l&eacute;com - IMT Atlantique Bretagne-Pays de la Loire. All Rights Reserved.</i>]]></bottom>
       <tag name="implementation" scope="all" description="Implementation note: "/>
       <tag name="category" scope="all" description="Category:"/>
       <link href="https://docs.oracle.com/javase/8/docs/api/" />
diff --git a/ant/praxis.core.xml b/ant/praxis.core.xml
index 3c81b00a58c9c423c0946401e73caf4721e58ffd..29c62bd18b65ba5601087a292f518d47b900344b 100644
--- a/ant/praxis.core.xml
+++ b/ant/praxis.core.xml
@@ -1,4 +1,6 @@
-<project name="praxis-core-common">
+<project name="praxis-core-common"
+         xmlns:if="ant:if"
+         xmlns:unless="ant:unless">
 
   <import file="macros.xml" />
 
@@ -6,17 +8,18 @@
 
   <!-- -->
   <property name="praxis.core.src"   location="${praxis.core.home}/src"/>
-  <property name="praxis.core.bin"   location="${praxis.core.home}/bin"/>
-  <property name="praxis.core.build" location="${praxis.core.home}/build"/>
+  <property name="praxis.core.bin"   location="${praxis.core.home}/target/classes"/>
+  <property name="praxis.core.build" location="${praxis.core.home}/target/jars"/>
 
-  <!-- get git revision. Written by "jmuc" on stackoverflow
+  <!-- get git revision. Based on code by "jmuc" on stackoverflow
        http://stackoverflow.com/questions/2974106/how-to-lookup-the-latest-git-commit-hash-from-an-ant-build-script/4059546#4059546
   -->
   <available file="${praxis.core.home}/.git" type="dir" property="praxis.core.git.present"/>
-  <target name="praxis.core.git.revision" description="Store git revision in ${repository.version}" if="praxis.core.git.present">
+  <target name="praxis.core.git.revision" description="Store git revision in ${repository.version}">
     <exec executable="git" outputproperty="praxis.core.git.revision"
           failifexecutionfails="false" errorproperty=""
-          dir="${praxis.core.home}">
+          dir="${praxis.core.home}"
+          if:set="praxis.core.git.present">
       <arg value="describe"/>
       <arg value="--tags"/>
       <arg value="--always"/>
@@ -28,7 +31,10 @@
         <length string="${praxis.core.git.revision}" trim="yes" length="0" when="greater"/>
       </and>
     </condition>
-    <echo message="praxis.core.git.revision: ${praxis.core.git.revision}"/>
+    <echo message="praxis.core.git.revision: ${praxis.core.git.revision}"
+          if:set="praxis.core.git.revision"/>
+    <echo message="praxis.core.git.revision: UNSET"
+          unless:set="praxis.core.git.revision"/>
     <echo message="praxis.core.repository.version: ${praxis.core.repository.version}"/>
 
   </target>
diff --git a/ant/praxis.swing_gui.xml b/ant/praxis.swing_gui.xml
index 4d275d7701fd850d7b3458357bff6000698d8ba6..5f4ef6b77a036526f9576b23af71dc70dc97ffbe 100644
--- a/ant/praxis.swing_gui.xml
+++ b/ant/praxis.swing_gui.xml
@@ -1,4 +1,6 @@
-<project name="praxis-swing-gui" basedir="..">
+<project name="praxis-swing-gui" basedir=".."
+         xmlns:if="ant:if"
+         xmlns:unless="ant:unless">
 
   <!-- we expect praxis.home to be set -->
   <fail unless="praxis.home"
@@ -24,7 +26,7 @@
 
   <!-- -->
   <property name="praxis.swing_gui.src"   location="${praxis.swing_gui.home}/src"/>
-  <property name="praxis.swing_gui.bin"   location="${praxis.swing_gui.home}/bin"/>
+  <property name="praxis.swing_gui.bin"   location="${praxis.swing_gui.home}/target/classes"/>
 
   <!--  Libraries  -->
   <property name="praxis.swing_gui.lib" location="${praxis.swing_gui.home}/lib"/>
@@ -39,6 +41,34 @@
   </path>
 
 
+  <!-- get git revision. Based on code by "jmuc" on stackoverflow
+       http://stackoverflow.com/questions/2974106/how-to-lookup-the-latest-git-commit-hash-from-an-ant-build-script/4059546#4059546
+  -->
+  <available file="${praxis.swing_gui.home}/.git" type="dir" property="praxis.swing_gui.git.present"/>
+  <target name="praxis.swing_gui.git.revision" description="Store git revision in ${repository.version}">
+    <exec executable="git" outputproperty="praxis.swing_gui.git.revision"
+          failifexecutionfails="false" errorproperty=""
+          dir="${praxis.swing_gui.home}"
+          if:set="praxis.swing_gui.git.present">
+      <arg value="describe"/>
+      <arg value="--tags"/>
+      <arg value="--always"/>
+      <arg value="HEAD"/>
+    </exec>
+    <condition property="praxis.swing_gui.repository.version" value="${praxis.swing_gui.git.revision}" else="${build.time}">
+      <and>
+        <isset property="praxis.swing_gui.git.revision"/>
+        <length string="${praxis.swing_gui.git.revision}" trim="yes" length="0" when="greater"/>
+      </and>
+    </condition>
+    <echo message="praxis.swing_gui.git.revision: ${praxis.swing_gui.git.revision}"
+          if:set="praxis.swing_gui.git.revision"/>
+    <echo message="praxis.swing_gui.git.revision: UNSET"
+          unless:set="praxis.swing_gui.git.revision"/>
+    <echo message="praxis.swing_gui.repository.version: ${praxis.swing_gui.repository.version}"/>
+
+  </target>
+
 
   <!-- Dependencies -->
   <fileset dir="${praxis.core.lib}" id="praxis.swing_gui.dependencies">
diff --git a/build.xml b/build.xml
index 86b9a62c3e83676b85c652d1621a3a3eee0c3ebc..3fbae22a9c82bd3954d058037704263d99c03898 100644
--- a/build.xml
+++ b/build.xml
@@ -7,7 +7,7 @@
     <format property="build.time" pattern="yyyy-MM-dd'T'hh:mm:ss.SSSZ"/>
   </tstamp>
 
-  <property name="praxis.version" value="1.11"/>
+  <property name="praxis.version" value="3.0.0"/>
   <!-- If not called from an other project setting praxis.home, define it.
        In details:
        - it is unset when directly building the jars of Praxis,
@@ -67,14 +67,15 @@
   </target>
 
   <target name="praxis.build.standalone.jar"
-          depends="praxis.compile, praxis.core.git.revision"
+          depends="praxis.compile,
+                   praxis.core.git.revision, praxis.swing_gui.git.revision"
           description="Builds the jar for the standalone version of praxis">
     <jar jarfile="${praxis.jar}" manifest="MANIFEST.MF" index="false">
       <manifest>
         <attribute name="Main-Class" value="eu.telecom_bretagne.praxis.common.Launcher"/>
         <attribute name="Implementation-Title" value="Praxis / Standalone"/>
         <attribute name="Class-Path" value=". ${praxis.all.manifest.classpath}"/>
-        <attribute name="Implementation-Version" value="${praxis.version} ${praxis.core.git.revision} ${build.time}"/>
+        <attribute name="Implementation-Version" value="${praxis.version} core:${praxis.core.repository.revision} swing_gui:${praxis.swing_gui.repository.revision}"/>
          <!-- TODO: own dependencies -->
       </manifest>
       <fileset dir="${praxis.core.bin}">
diff --git a/configurations/configuration.defaults b/configurations/configuration.defaults
index a54acd32e69a39d2c42a0d1ea649368dd47b74b4..0eab0438d021942ff4125065118b4e822639938a 100644
--- a/configurations/configuration.defaults
+++ b/configurations/configuration.defaults
@@ -191,6 +191,8 @@ socket-ssl.port=8012
 server.resources_clientTree_FILE-CHECK
 
 server.allowed_resources_FILE-CHECK_
+server.maximum_number_of_clients_INT-CHECK_
+server.maximum_number_of_clients=-1
 server.users=
 server.reject_already_connected_client_BOOLEAN-CHECK_
 server.reject_already_connected_client=true
diff --git a/configurations/configuration.template b/configurations/configuration.template
index 4d7c85f02f598a96740101510597767030ff1118..c8f2a76a2ec80fd6ff5ac38857632e2d67a29b7e 100644
--- a/configurations/configuration.template
+++ b/configurations/configuration.template
@@ -1,5 +1,6 @@
 # Configuration file for praxis
 application.id=
+application.name=
 # Name of a class subclassing eu.telecom_bretagne.praxis.common.Launcher.InitialisationDelegate
 application.init=
 descriptions.package=
@@ -90,6 +91,7 @@ socket-ssl.port=8012
 #
 
 server.allowed_resources=configuration/server/hierarchy.brs
+server.maximum_number_of_clients=0
 server.resources_clientTree=configuration/server/resources.clientTree.xml
 server.users=
 # indicates whether the server should reject the client if it is already connected
diff --git a/data/i18n/.gitignore b/data/i18n/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..8a7db58ef956ac712536263a832ed3673ea49c7b
--- /dev/null
+++ b/data/i18n/.gitignore
@@ -0,0 +1,2 @@
+praxis_en.keys
+praxis_fr.keys
diff --git a/data/i18n/check_keys.sh b/data/i18n/check_keys.sh
new file mode 100755
index 0000000000000000000000000000000000000000..d8f6b1ba7bbd8fac2a8c68bda550224404afd7c7
--- /dev/null
+++ b/data/i18n/check_keys.sh
@@ -0,0 +1,17 @@
+#! /bin/bash
+# Check that keys in praxis_*.keys (built with extract_keys) are used in
+# the sources folders
+
+dirs="../../src ../../../praxis-swing-gui/src"
+
+check()
+{
+  echo -e "#\n# keys in $1 which are not used in the source folders:\n#"
+  cat "$1" | while read key; do
+    if ! grep -qr "$key" $dirs ; then
+        echo $key
+    fi
+  done
+}
+check praxis_en.keys
+check praxis_fr.keys
diff --git a/data/i18n/extract_keys.sh b/data/i18n/extract_keys.sh
new file mode 100755
index 0000000000000000000000000000000000000000..cd0e74be38c74aa04f8513bd65a1483e46b366bb
--- /dev/null
+++ b/data/i18n/extract_keys.sh
@@ -0,0 +1,11 @@
+#! /bin/bash
+# Extracts the keys from the properties files,
+# and check that both files define the same subset
+
+sed -E '/^[^=]*$/ d;s/^([^ =]+).*$/\1/' praxis_en.properties \
+    | sort -o praxis_en.keys
+
+sed -E '/^[^=]*$/ d;s/^([^ =]+).*$/\1/' praxis_fr.properties \
+    | sort -o > praxis_fr.keys
+
+diff -s praxis_en.keys praxis_fr.keys
diff --git a/data/i18n/native_to_ascii.sh b/data/i18n/native_to_ascii.sh
new file mode 100755
index 0000000000000000000000000000000000000000..c0560f1a914d8817118fea7d50e62acec535a928
--- /dev/null
+++ b/data/i18n/native_to_ascii.sh
@@ -0,0 +1,22 @@
+#! /bin/bash
+shopt -s nullglob
+
+cd ${0%/*}/original
+for lang in el en es fr; do
+    t9n="praxis_${lang}"
+    encoding=("praxis_${lang}.encoding".*)
+    encoding="${encoding##*.}"
+    if [ -z "${encoding}" ]; then
+        echo "Warning: could not find encoding for ${t9n}, skipping" >&2
+        continue
+    fi
+    echo "${t9n}: ${encoding} to ascii..." >&2
+
+    native2ascii -encoding "${encoding}" "${t9n}" "../${t9n}.properties"
+    # remove the emacs' coding system
+    sed -i -e '/^# *-\*- coding:/ d' "../${t9n}.properties"
+done
+cd -
+
+# This file was initially encoded with upper-cased hexadecimal
+# sed -i -E 's/\\u([a-zA-Z0-9]{4})/\\u\U\1/g'  "praxis_fr.properties"
diff --git a/data/i18n/original/README b/data/i18n/original/README
new file mode 100644
index 0000000000000000000000000000000000000000..f800d94cf4661a2dacd8ba20ef58e4792ab5c1b2
--- /dev/null
+++ b/data/i18n/original/README
@@ -0,0 +1,22 @@
+This directory contains the translation files.
+
+Files are named after the two-letter code XX for the language, as defined
+in ISO 639-1:
+
+- praxis_XX.properties is the translation file
+- praxis_XX.encoding.<encoding> gives the file's <encoding>
+- praxis_XX.author contains the author(s)' name(s) and e-mail
+
+NB: They must be converted to ascii to be used within java.
+    The conversion consists in calling:
+
+      lang=XX
+      native2ascii -encoding <encoding> \
+                   praxis_XX.properties ../praxis_XX.properties
+
+    See ../native_to_ascii.sh
+
+
+Références for ISO 639-1 codes:
+- https://www.loc.gov/standards/iso639-2/php/English_list.php
+- https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
diff --git a/data/i18n/original/praxis_el b/data/i18n/original/praxis_el
new file mode 100644
index 0000000000000000000000000000000000000000..66ab28341da5c88ac7fc5b3a8badc782bf3bc5a6
--- /dev/null
+++ b/data/i18n/original/praxis_el
@@ -0,0 +1,376 @@
+
+UI.OptionsDialog.title                     = Επιλογές
+
+UI.TabbedPane.close                        = Κλείσιμο
+UI.TabbedPane.close_others                 = Κλείσιμο άλλων
+UI.TabbedPane.close_all                    = Κλείσιμο όλων
+UI.TabbedPane.results                      = Όλα τα αποτελέσματα...
+
+UI.actions.display_preferences.error                  = Παρουσιάστηκε σφάλμα κατά τη δημιουργία του πίνακα προτιμήσεων
+UI.actions.execute_wf.confirm                         = Είστε βέβαιοι ότι θέλετε να εκτελέσετε τη ροή εργασιών {0}?
+UI.actions.execute_wf.error                           = Η εκτέλεση της ροής εργασιών απέτυχε
+UI.actions.execute_wf.title                           = Επιβεβαίωση εκτέλεσης της ροής εργασιών
+UI.actions.execute_wf.invalid_workflow                = Δεν είναι δυνατή η εκτέλεση μιας μη έγκυρης ροής εργασίών, ελέγξτε τις παραμέτρους των προγραμμάτων και συνδέστε όλα τα στοιχεία εισόδου.
+UI.actions.finished_exec.msg                          = Η ροή εργασίας {0} έχει εκτελεστεί με επιτυχία
+UI.actions.finished_exec_with_errors.msg              = Η εκτέλεση της {0} τελείωσε: παρουσιάστηκε σφάλμα
+UI.actions.finished_exec_with_warnings.msg            = Η εκτέλεση της {0} τελείωσε: υπήρχαν ορισμένες προειδοποιήσεις, ελέγξτε τα αποτελέσματα για λεπτομέρειες
+UI.actions.finished_exec.title                        = Τέλος εκτέλεσης
+UI.actions.wf_close                                   = Κλείσιμο
+UI.actions.wf_close_tt                                = Κλείσιμο τρέχουσας ροής εργασιών
+UI.actions.wf_close_all                               = Κλείσιμο όλων
+UI.actions.wf_close_all_tt                            = Κλείσιμο όλων των ροών εργασιών
+UI.actions.wf_close_others                            = Κλείσιμο άλλων
+UI.actions.wf_close_others_tt                         = Κλείσιμο άλλων ροών εργασιών
+UI.actions.wf_export                                  = Εξαγωγή χωρίς αρχεία εισόδου...
+UI.actions.wf_export_tt                               = Εξαγωγή ροής εργασιών
+UI.actions.wf_export_with_infiles                     = Εξαγωγή με αρχεία εισόδου...
+UI.actions.wf_export_with_infiles_tt                  = Εξαγωγή ροής εργασιών και όλων των αρχείων εισόδου σε αρχείο zip
+UI.actions.wf_import                                  = Εισαγωγή...
+UI.actions.wf_import_as_new                           = Εισαγωγή ως νέα...
+UI.actions.wf_import_as_new_tt                        = Εισαγωγή μίας ροής εργασιών ως νέα ροή εργασιών
+UI.actions.wf_import_tt                               = Εισαγάγετε μια ροή εργασίας στο τρέχον επιλεγμένο
+UI.actions.wf_new                                     = Νέα
+UI.actions.wf_new_tt                                  = Δημιουργία μίας νέας ροής εργασιών
+UI.actions.wf_open                                    = Άνοιγμα...
+UI.actions.wf_open_tt                                 = Άνοιγμα μίας υπάρχουσας ροής εργασιών
+UI.actions.wf_open_err_no_workflow                    = <html>Δεν υπάρχουν ακόμη υπάρχουσες ροές εργασιών!<br/>\
+Για να δημιουργήσετε μια νέα ροή εργασιών, χρησιμοποιήστε το μενού "Ροή εργασιών" και επιλέξτε "Νέα"</html>
+UI.actions.wf_open_err_all_workflows_already_opened   = Όλες οι υπάρχουσες ροές εργασιών είναι ήδη ανοιχτές!
+UI.actions.wf_save                                    = Αποθήκευση
+UI.actions.wf_save_as                                 = Αποθήκευση ως...
+UI.actions.wf_save_as_tt                              = Αποθήκευση ως...
+UI.actions.wf_save_tt                                 = Αποθήκευση της τρέχουσας ροής εργασιών
+UI.actions.show_results.connect_err                   = Δεν ήταν δυνατή η ανάκτηση των αποτελεσμάτων
+UI.actions.show_results.connect_err.title             = Σφάλμα σύνδεσης
+UI.actions.show_results.empty                         = Δεν υπάρχει διαθέσιμο αποτέλεσμα για αυτήν τη ροή εργασιών
+UI.actions.show_results.empty.title                   = Αποτελέσματα
+UI.actions.stop_exec.error                            = Σφάλμα: η εκτέλεση δεν μπορούσε να διακοπεί
+UI.actions.valid_links_confirm                        = Είστε βέβαιοι ότι θέλετε να απενεργοποιήσετε τον αυτόματο έλεγχο της εγκυρότητας των συνδέσεων μεταξύ προγραμμάτων;
+UI.actions.create_file_error                          = Αδυναμία δημιουργίας αρχείου {0}
+UI.actions.create_existing_file_error                 = Αδυναμία δημιουργίας αρχείου {0}: υπάρχει ήδη
+UI.actions.zoom_in                                    = Μεγέθυνση
+UI.actions.zoom_in_tt                                 = Σχεδιάζει μια μεγαλύτερη ροή εργασιών για να διακρίνετε καλύτερα τις λεπτομέρειες
+UI.actions.zoom_original                              = Ζουμ 1:1
+UI.actions.zoom_original_tt                           = Επαναφέρει τον προεπιλεγμένο συντελεστή ζουμ
+UI.actions.zoom_out                                   = Σμίκρυνση
+UI.actions.zoom_out_tt                                = Σχεδιάζει μια μικρότερη ροή εργασιών για να δείξει ένα μεγαλύτερο μέρος της
+UI.annotation.for_workflow                            = Σχόλιο για τη ροή εργασιών ''{0}''
+UI.annotation.for_program                             = Σχόλιο για το πρόγραμμα: ''{0}''
+UI.ctrlwf.run.file_does_not_exist                     = Το Αρχείο {0} δεν υπάρχει
+UI.ctrlwf.run.file_unreadable                         = Το Αρχείο {0} δεν μπορεί να διαβαστεί
+UI.ctrlwf.run.zip_failed                              = Η εκτέλεση της ροής εργασιών απέτυχε: παρουσιάστηκε μη αναμενόμενο σφάλμα κατά την προετοιμασία της εκτέλεσης\n\
+\n\
+Λεπτομέρειες:\n\
+{0}\n\
+
+UI.ctrlwf.run.zip_failed_missing_file                 = Η εκτέλεση της ροής εργασιών απέτυχε: τουλάχιστον ένα αρχείο εισόδου δεν υπάρχει!\n\
+\n\
+Λεπτομέρειες:\n\
+{0}\n\
+
+UI.datasource.unset_path                              = <δεν ρυθμίστηκε>
+
+UI.dialog.about                                       = Σχετικά...
+UI.dialog.about_content                               = <html>\
+  {0}\
+  <hr>\
+  <i>Powered by Praxis - Version {1} ({2})<br>\
+     &copy; Institut Mines Telecom - IMT Atlantique Bretagne-Pays de la Loire 2002-2018<br>\
+     All rights reserved.</i><br>\
+     <small>Build: {3}</small>\
+  <hr>\
+  </div>\
+</html>
+UI.dialog.about_msg                                   =
+UI.dialog.connection.connect_to_server                = Ενεργοποιήστε τη σύνδεση με το διακομιστή:
+UI.dialog.connection.enter_login_passwd               = Καταχωρίστε τα στοιχεία σύνδεσης και τον κωδικό πρόσβασής σας
+UI.dialog.connection.login                            = Login:
+UI.dialog.connection.passwd                           = Κωδικός πρόσβασης:
+UI.dialog.connection.server                           = Διακομιστής (host:port):
+UI.dialog.connection.title                            = Έναρξη εφαρμογής...
+UI.dialog.connection_failure                          = Αποτυχία σύνδεσης με το διακομιστή, δοκιμάστε ξανά αργότερα
+UI.dialog.connection_failure_title                    = Αποτυχία σύνδεσης
+UI.dialog.datasource_inputs.add                       = Προσθήκη
+UI.dialog.datasource_inputs.delete                    = Διαγραφή
+UI.dialog.datasource_inputs.file                      = Αρχεία
+UI.dialog.datasource_inputs.title                     = Ιδιότητες πηγής δεδομένων
+UI.dialog.default_filesource_displayname              = Αρχείο
+UI.dialog.default_directorysource_displayname         = Ευρετήριο
+UI.dialog.disconnect_confirm                          = Θέλετε να αποσυνδεθείτε από το διακομιστή;
+UI.dialog.disconnect_confirm_title                    = Αποσύνδεση από το διακομιστή
+UI.dialog.error                                       = Σφάλμα!
+UI.dialog.file_chooser.title                          = Προσθήκη αρχείων
+UI.dialog.file.overwrite                              = Το αρχείο ήδη υπάρχει: αντικατάσταση;
+UI.dialog.help.title                                  = Βοήθεια
+UI.dialog.help.not_available                          = Δεν υπάρχει διαθέσιμη βοήθεια προς το παρόν
+UI.dialog.image.save.failed_title                     = Αποτυχία αποθήκευσης του αρχείου
+UI.dialog.image.save.failed                           = Δεν ήταν δυνατή η αποθήκευση της εικόνας: παρουσιάστηκε σφάλμα
+UI.dialog.import.label_wf                             = Ροή εργασιών
+UI.dialog.import.label_ws                             = Χώρος εργασίας
+UI.dialog.import.msg_wf                               = Ποια ροή εργασίας θέλετε να εισάγετε;
+UI.dialog.import.title                                = Εισαγωγή
+UI.dialog.save_as.title                               = Αποθήκευση ως
+UI.dialog.rename.title                                = Μετονομασία
+UI.dialog.logging_err_msg                             = Δεν είναι δυνατή η σύνδεση: λάθος login/κωδικός πρόσβασης
+UI.dialog.login_mandatory                             = Πρέπει να δώσετε ένα όνομα σύνδεσης!
+UI.dialog.open.label_wf                               = Επιλέξτε τη ροή εργασιών για άνοιγμα:\n\
+\n\
+
+UI.dialog.open.label_ws                               = Επιλέξτε το χώρο εργασίας για άνοιγμα:\n\
+\n\
+
+UI.dialog.open.title                                  = Άνοιγμα
+UI.dialog.datasource.rename_title                     = Μετονομασία της πηγής δεδομένων
+UI.dialog.datasource.rename                           = Εισάγετεγετε το όνομα αυτού του στοιχείου:
+UI.dialog.datasource.incorrect_name_title             = Λανθασμένο όνομα
+UI.dialog.datasource.incorrect_name                   = Οι χαρακτήρες :, ?, /, \\, <, >, \" και | δεν επιτρέπονται
+UI.dialog.datasource.name_already_exists              = Ένα άλλο στοιχείο έχει το ίδιο όνομα, επιλέξτε άλλο.
+UI.dialog.prg_properties.descr_window_title           = Περιγραφή του {0}
+UI.dialog.prg_properties.main_label                   = Περιγραφή του {0}  (κάντε κλικ για να δείτε)
+UI.dialog.prg_properties.parameters                   = Παράμετροι:
+UI.dialog.prg_properties.parameters_default           = (και η προεπιλεγμένη τιμή τους)
+UI.dialog.prg_properties.title                        = Ιδιότητες προγράμματος
+UI.dialog.quit                                        = Εγκαταλείψτε
+UI.dialog.quit_and_disconnect_msg                     = \n\
+Θέλετε να εγκαταλείψετε;\n\
+
+UI.dialog.quit_msg                                    = Θέλετε να κλείσετε την εφαρμογή;
+UI.dialog.save_ws.btn_none                            = Κανένα
+UI.dialog.save_ws.btn_ok                              = OK
+UI.dialog.save_ws.msg                                 = Επιλέξτε τη ροή εργασιών για αποθήκευση :
+UI.dialog.save_ws.title                               = Αποθήκευση {0}
+UI.dialog.wf.already_opened                           = Η συγκεκριμένη ροή εργασιών είναι ήδη ανοιχτή!
+UI.dialog.wf.close_confirm                            = Θέλετε να αποθηκευτεί η ροή εργασιών "{0}" πριν κλείσει;
+UI.dialog.wf.close_title                              = Κλείσιμο μίας ροής εργασιών
+UI.dialog.wf.enter_name                               = Επιλέξτε ένα όνομα για τη ροή εργασιών:
+UI.dialog.wf.creation_failed_ws_not_selected          = Πριν δημιουργήσετε μία ροή εργασιών, δημιουργήστε ή επιλέξτε τον χώρο εργασίας στον οποίο ανήκει η νέα ροή εργασιών
+UI.dialog.wf.creation_failure_title                   = Αποτυχία δημιουργίας της ροής εργασιών
+UI.dialog.wf.creation_title                           = Νέα ροή εργασιών
+UI.dialog.wf.delete_result_confirm_title              = Διαγραφή αποτελέσματος
+UI.dialog.wf.delete_result_confirm                    = Είστε βέβαιοι ότι θέλετε να διαγράψετε οριστικά αυτό το αποτέλεσμα;
+UI.dialog.wf.delete_all_results_confirm_title         = Διαγραφή όλων των αποτελεσμάτων
+UI.dialog.wf.delete_all_results_confirm               = Είστε βέβαιοι ότι θέλετε να διαγράψετε οριστικά όλα αυτά τα αποτελέσματα;
+UI.dialog.wf.delete                                   = Διαγράψτε την τρέχουσα ροή εργασιών
+UI.dialog.wf.delete_confirm                           = \n\
+Είστε βέβαιοι ότι θέλετε να διαγράψετε οριστικά αυτή τη ροή εργασιών;n\
+\n\
+Η διαγραφή της ροής εργασιών θα διαγράψει επίσης οριστικά τα αποτελέσματά της.\n\
+
+UI.dialog.wf.existing_names                           = Οι ήδη καθορισμένες ροές εργασιών είναι:
+UI.dialog.wf.export_title                             = Εξαγωγή μίας ροής εργασιών
+UI.dialog.wf.export_failed                            = Η εξαγωγή της ροής εργασιών απέτυχε
+UI.dialog.wf.import_cannot_extract                    = Δεν είναι δυνατή η εξαγωγή των αρχείων
+UI.dialog.wf.import_cannot_create_dir                 = Δεν ήταν δυνατή η δημιουργία του επιλεγμένου ευρετηρίου. Ελέγξτε ότι έχετε τα επαρκή δικαιώματα για να το κάνετε.
+UI.dialog.wf.import_cannot_read_zip                   = Δεν είναι δυνατή η ανάγνωση του αρχείου zip
+UI.dialog.wf.import_create_dir                        = Το ευρετήριο που επιλέγετε δεν υπάρχει, πρέπει να το δημιουργήσουμε;
+UI.dialog.wf.import_drop_file_in_dir                  = Καταργήστε τα αρχεία εισόδου σε αυτό το ευρετήριο
+UI.dialog.wf.import_failure                           = Παρουσιάστηκε ένα μη αναμενόμενο σφάλμα κατά την εισαγωγή της ροής εργασιών
+UI.dialog.wf.import_failure_title                     = Η εισαγωγή μιας ροής εργασιών απέτυχε
+UI.dialog.wf.import_impossible_coz_execution          = Δεν είναι δυνατή η εισαγωγή ροής εργασιών κατά τη διάρκεια μίας εκτέλεσης
+UI.dialog.wf.import_invalid_archive                   = Μη έγκυρο αρχείο
+UI.dialog.wf.import_not_a_dir                         = Το "{0}" δεν είναι ευρετήριο. Επιλέξτε ένα ευρετήριο.
+UI.dialog.wf.invalid_name_empty                       = Μη έγκυρο κενό όνομα!
+UI.dialog.wf.invalid_name_already_exists              = Μια άλλη ροή εργασιών με αυτό το όνομα υπάρχει ήδη!
+UI.dialog.wf.open_failed_no_workflow                  = Δεν είναι δυνατή η εμφάνιση οποιασδήποτε ροής εργασιών: δεν βρέθηκε καμία
+UI.dialog.wf.open_failed_xml_not_conform_to_DTD       = Αποτυχία ανοίγματος της ροής εργασιών: Το αρχείο xml δεν συμμορφώνεται με το DTD
+UI.dialog.wf.open_failure                             = Παρουσιάστηκε ένα μη αναμενόμενο σφάλμα κατά το άνοιγμα της ροής εργασιών
+UI.dialog.wf.rename_save_before_confirm               = Η ροή εργασιών έχει τροποποιηθεί και πρέπει να αποθηκευτεί πριν μετονομαστεί.\n\
+Θέλετε να την αποθηκεύσετε τώρα;
+UI.dialog.wf.open_failure_title                       = Αποτυχία ανοίγματος μίας ροής εργασιών
+UI.dialog.wf.open_select_workflows                    = Επιλέξτε ροή(-ές) εργασιών για άνοιγμα:
+UI.dialog.wf.rename_failure_title                     = Αποτυχία μετονομασίας μιας ροής εργασιών
+UI.dialog.wf.rename_impossible                        = Αποτυχία μετονομασίας μιας ροής εργασιών (άγνωστος λόγος).\n\
+Ένας πιθανός λόγος θα μπορούσε να είναι ότι τα αντίστοιχα αρχεία ανοίγουν αυτήν τη στιγμή σε ένα άλλο εργαλείο.
+UI.dialog.wf.rename_impossible_coz_execution          = Μια ροή εργασιών δεν μπορεί να μετονομαστεί κατά τη διάρκεια μίας εκτέλεσης
+UI.dialog.wf.rename_title                             = Μετονομασία της {0}
+UI.dialog.wf.save_title                               = Αποθήκευση μίας ροής εργασιών
+UI.dialog.wf.save_failed                              = Αδυναμία αποθήκευσης της ροής εργασιών
+UI.dialog.wf.delete_title                             = Διαγραφή της ροής εργασιών {0}
+UI.dialog.wf.delete_confirm_msg                       = Είστε σίγουροι ότι θέλετε να διαγράψετε τη ροή εργασιών {0}?
+UI.dialog.wf.delete_confirm_msg_with_results          = Είστε σίγουροι ότι θέλετε να διαγράψετε τη ροή εργασιών {0}?\n\
+Αυτή η ροή εργασίας έχει ήδη εκτελεστεί, η διαγραφή θα διαγράψει επίσης όλα τα αντίστοιχα αποτελέσματα.
+UI.dialog.wf.warnings_title                           = Η ροή εργασιών απαιτεί ελέγχους
+UI.dialog.wf.warnings                                 = Προειδοποίηση: κατά τη φόρτωση της ροής εργασιών εντοπίζονται ορισμένες ασυνέπειες \
+στην παραμετροποίηση ορισμένων προγραμμάτων. \n\
+Θα βρείτε παρακάτω τις λεπτομέρειες των σφαλμάτων που έχουν διορθωθεί αυτόματα. \n\
+Συνιστάται να ελέγξετε αυτές τις διορθώσεις και επίσης να βεβαιωθείτε ότι η παραμετροποίηση των σχετικών προγραμμάτων είναι σωστή.
+
+UI.dialog.result.rename                               = Όνομα του αποτελέσματος:
+UI.dialog.result.rename_title                         = Μετονομασία ενός αποτελέσματος
+UI.dialog.result.rename_failed_title                  = Αποτυχία μετονομασίας του αποτελέσματος
+UI.dialog.result.rename_failed                        = Το αποτέλεσμα δεν μπορούσε να μετονομαστεί.
+UI.dialog.btn_cancel                                  = Άκυρο
+UI.dialog.btn_ok                                      = OK
+UI.dialog.btn_apply                                   = Αίτηση
+UI.dialog.btn.overwrite                               = Αντικατάσταση
+UI.dialog.btn_open                                    = Άνοιγμα
+UI.dialog.select_results.btn_display                  = Παρουσίαση
+UI.dialog.select_results.header                       = Επιλέξτε τα αποτελέσματα για παρουσίαση:\n\
+
+UI.dialog.select_results.title                        = Τα αποτελέσματα από {0}
+UI.dialog.results.title                               = Αποτελέσματα
+UI.dialog.splash.img_path                             = data/client/images/splash.jpg
+UI.dialog.splash.init_msg                             = Αρχικοποίηση...
+
+UI.dialog.change_language                             = Κάντε επανεκκίνηση του λογισμικού για την αλλαγή γλώσσας για να έχετε ολοκληρωμένο αποτέλεσμα!
+UI.dialog.change_language_title                       = Αλλάξτε τη γλώσσα του λογισμικού
+
+UI.menu.display                                       = Παρουσίαση
+UI.menu.edit                                          = Επεξεργασία
+UI.menu.execution                                     = Εκτέλεση
+UI.menu.file                                          = Αρχείο
+UI.menu.help_about                                    = ?
+UI.menu.prefs                                         = Προτιμήσεις
+UI.menu.workflow                                      = Ροή εργασιών
+UI.menu.workspace                                     = Χώρος εργασίας
+UI.menu_items.about                                   = Σχετικά...
+UI.menu_items.about_tt                                = Σχετικά με το λογισμικό
+UI.menu_items.check_valid_links                       = Βεβαιωθείτε ότι οι σύνδεσμοι είναι έγκυροι
+UI.menu_items.check_valid_links_tt                    = Ενεργοποιήστε/απενεργοποιήστε την αυτόματη λειτουργία που ελέγχει ότι δύο στοιχεία μιας ροής εργασιών (προγράμματα, αρχεία ή βάσεις δεδομένων) είναι συμβατά όταν προσπαθείτε να τα συνδέσετε μεταξύ τους
+UI.menu_items.open_all_results                        = Ανοίξτε αυτόματα όλα τα αρχεία αποτελεσμάτων
+UI.menu_items.open_all_results_tt                     = Ανοίξτε όλα τα αρχεία αυτόματα όταν εμφανίζεται ένα αποτέλεσμα
+UI.menu_items.options                                 = Επιλογές...
+UI.menu_items.options_tt                              = Επιλογές
+UI.menu_items.connect                                 = Σύνδεση
+UI.menu_items.connect_tt                              = Σύνδεση με τον διακομιστή
+UI.menu_items.copy                                    = Αντιγραφή
+UI.menu_items.copy_tt                                 = Αντιγραφή των επιλεγμένων αντικειμένων στο πρόχειρο
+UI.menu_items.delete                                  = Διαγραφή
+UI.menu_items.delete_tt                               = Διαγραφή των επιλεγμένων αντικειμένων
+UI.menu_items.disconnect                              = Αποσύνδεση
+UI.menu_items.disconnect_tt                           = Αποσύνδεση από τον διακομιστή
+UI.menu_items.edit_rename                             = Μετονομασία...
+UI.menu_items.edit_rename_tt                          = Μετονομασία του επιλεγμένου στοιχείου
+UI.menu_items.exit                                    = Έξοδος
+UI.menu_items.exit_tt                                 = Έξοδος από την εφαρμογή
+UI.menu_items.help                                    = Βοήθεια
+UI.menu_items.help_tt                                 = Βοήθεια
+UI.menu_items.paste                                   = Επικόλληση
+UI.menu_items.paste_tt                                = Επικόλληση του περιεχόμενου του πρόχειρου στην τρέχουσα ροή εργασιών
+UI.menu_items.properties                              = Ιδιότητες...
+UI.menu_items.properties_tt                           = Τροποποιήστε τις ιδιότητες του επιλεγμένου αντικειμένου
+UI.menu_items.wf_delete                               = Διαγραφή της ροής εργασιών
+UI.menu_items.wf_delete_tt                            = Διαγραφή της τρέχουσας ροής εργασιών
+UI.menu_items.result_delete                           = Διαγραφή αυτού του αποτελέσματος
+UI.menu_items.result_delete_tt                        = Διαγραφή του επιλεγμένου αποτελέσματος
+UI.menu_items.result_rename_tt                        = Μετονομασία...
+UI.menu_items.result_rename                           = Μετονομασία αυτού του αποτελέσματος
+UI.menu_items.all_results_delete                      = Διαγραφή όλων των αποτελεσμάτων
+UI.menu_items.all_results_delete_tt                   = Διαγραφή όλων των αποτελεσμάτων αυτής της ροής εργασιών
+UI.menu_items.wf_exec_stop                            = Διακοπή
+UI.menu_items.wf_exec_stop_tt                         = Διακοπή της εκτέλεσης
+UI.menu_items.wf_execute                              = Εκτέλεση
+UI.menu_items.wf_execute_tt                           = Εκτέλεση της τρέχουσας ροής εργασιών
+UI.menu_items.wf_rename                               = Μετονομασία...
+UI.menu_items.wf_rename_tt                            = Μετονομασία της τρέχουσας ροής εργασιών
+UI.menu_items.wf_results                              = Αποτελέσματα
+UI.menu_items.wf_results_tt                           = Εμφάνιση των αποτελεσμάτων της ροής εργασίας
+UI.menu_items.show_statusbar                          = Γραμμή κατάστασης
+UI.menu_items.show_statusbar_tt                       = Εμφάνιση/απόκρυψη της γραμμής κατάστασης
+UI.menu_items.show_toolbar                            = Γραμμή εργαλείων
+UI.menu_items.show_toolbar_tt                         = Εμφάνιση/απόκρυψη της γραμμής εργαλείων
+
+UI.menu_items.create_file                             = Δημιουργία του αρχείου
+UI.menu_items.open_with                               = Άνοιγμα με...
+UI.menu_items.display_file_action                     = Εμφάνιση αρχείου
+UI.menu_items.display_file_action_tt                  = Εμφάνιση του περιεχομένου του επιλεγμένου αρχείου
+UI.menu_items.anti_aliasing                           = Εξομάλυνση
+UI.menu_items.anti_aliasing_tt                        = Χρήση ή όχι εξομάλυνσης
+UI.menu_items.show_grid                               = Εμφάνιση πλέγματος
+UI.menu_items.show_grid_tt                            = Εμφάνιση/απόκρυψη του πλέγματος στον επεξεργαστή γραφημάτων
+UI.menu_items.snap_to_grid                            = Πατήστε στο πλέγμα
+UI.menu_items.snap_to_grid_tt                         = Προσθέστε τα στοιχεία στο πλέγμα
+UI.menu_items.grid_size                               = Μέγεθος πλέγματος
+UI.menu_items.grid_size_tt                            = Τροποποιήστε το μέγεθος του πλέγματος
+UI.menu_items.grid_size_small                         = Μικρό
+UI.menu_items.grid_size_medium                        = Μέτριο
+UI.menu_items.grid_size_large                         = Μεγάλο
+UI.menu_items.arrow_style                             = Στυλ βέλους
+UI.menu_items.arrow_style_orthogonal                  = Ορθογώνιο
+UI.menu_items.arrow_style_straigh                     = Ευθείο
+UI.menu_items.save_as_image                           = Αποθήκευση ως εικόνα...
+UI.menu_items.save_as_image_tt                        = Αποθηκεύστε τη ροή εργασιών ως εικόνα PNG
+
+
+UI.menu_items.License                                 = Άδεια...
+UI.menu_items.OtherLicenses                           = Άδειες τρίτων κατασκευαστών...
+UI.menu_items.changes                                 = Τροποποιήσεις...
+
+UI.menu_items.languages                               = Ρυθμίσεις Γλώσσας... (Language settings…)
+# value                                               = language (translated language)
+UI.menu_items.language.el                             = Ελληνικά
+UI.menu_items.language.en                             = English (Αγγλικά)
+UI.menu_items.language.fr                             = Français (Γαλλικά)
+UI.menu_items.language.es                             = Español (Ισπανικά)
+
+UI.progtree.database                                  = Βάση δεδομένων
+UI.progtree.datasource                                = Στοιχεία εισαγωγής
+UI.progtree.file                                      = Αρχείο(α)
+UI.progtree.directory                                 = Ευρετήριο
+UI.progtree.programs                                  = Προγράμματα
+UI.results.info_title                                 = Πληροφορίες
+UI.results.info_unimplemented                         = Δεν υπάρχουν πρόσθετες πληροφορίες σχετικά με αυτό το αρχείο
+UI.results.input_files_popup_menu                     = Αρχεία εισόδου
+UI.results.file_truncated                             = Αυτό το αρχείο αποτελεσμάτων είναι πολύ μεγάλο για να εμφανιστεί σε αυτήν την προβολή: βλέπετε μόνο την αρχή του.\n\
+Για να το δείτε ολόκληρο, επιλέξτε έναν από τα διαθέσιμα εξωτερικά προγράμματα προβολής.
+UI.results.viewers.launch_failed                      = Δεν ήταν δυνατή η εκκίνηση του επιλεγμένου εξωτερικού προγράμματος προβολής
+UI.results.viewers.load_failed                        = Δεν ήταν δυνατή η φόρτωση του εξωτερικού προγράμματος προβολής
+UI.status_msg.connect                                 = Σύνδεση με τον διακομιστή...
+UI.status_msg.logging                                 = Αποστολή διαπιστευτηρίων...
+
+UI.tab.close                                          = Κλείστε αυτήν την καρτέλα
+
+UI.label.search                                     = Αναζήτηση:
+UI.label.service_unknown                            = Αυτός ο πόρος είναι άγνωστος: δεν μπορεί να χρησιμοποιηθεί
+UI.label.invalid_program_description                = Η περιγραφή αυτού του προγράμματος είναι άκυρη, δεν μπορεί να χρησιμοποιηθεί
+
+UI.view.opened_workflows                            = Ανοιχτές ροές εργασιών
+UI.view.resources                                   = Προγράμματα
+
+common.application_name                   =
+common.close                              = Κλείσιμο
+common.dialog.detailed_error.hide_details = Κρύψιμο των λεπτομερειών <<<
+common.dialog.detailed_error.show_details = Εμφάνιση των λεπτομερειών >>>
+common.error                              = Σφάλμα
+common.no                                 = Όχι
+common.yes                                = Ναι
+common.warning                            = Προειδοποίηση
+common.client_out_of_date                 = Αυτό το πρόγραμμα-πελάτης είναι εκτός λειτουργίας:\nΕπιλέξτε να κάνετε λήψη του νέου προγράμματος-πελάτη!
+common.client_out_of_date_title           = Το πρόγραμμα-πελάτης δεν είναι ενημερωμένο
+common.cnx_rejected.invalid_credentials            = Δεν είναι δυνατή η σύνδεση με τον διακομιστή:\nμη έγκυρα διαπιστευτήρια.
+common.cnx_rejected.invalid_credentials_title      = Αποτυχία σύνδεσης
+common.cnx_rejected.client_already_connected       = Δεν είναι δυνατή η σύνδεση με τον διακομιστή:\nαυτός ο χρήστης είναι ήδη συνδεδεμένος.
+common.cnx_rejected.client_already_connected_title = Αποτυχία σύνδεσης
+common.cnx_rejected.client_login_disabled          = Ο διακομιστής απορρίπτει τις συνδέσεις, δοκιμάστε ξανά αργότερα.
+common.cnx_rejected.client_login_disabled_title    = Αποτυχία σύνδεσης
+common.cnx_rejected.client_login_disabled_w_reason = Ο διακομιστής απορρίπτει τις συνδέσεις\n{0}
+common.cnx_rejected.client_login_disabled_w_reason_title = Αποτυχία σύνδεσης
+common.cnx_rejected.maximum_number_of_clients       = Η σύνδεση απορρίφθηκε: ο διακομιστής δεν μπορεί να δεχτεί περισσότερες συνδέσεις\nΔοκιμάστε ξανά αργότερα\n\nΖητάμε συγνώμη για την ταλαιπωρία.
+common.cnx_rejected.maximum_number_of_clients_title = Άρνηση σύνδεσης
+wf.xmlwarnings.prg_desc_does_not_exists   = Η ροή εργασιών χρησιμοποίησε ένα πρόγραμμα με όνομα '' {0} '' το οποίο δεν είναι πλέον διαθέσιμο.
+wf.xmlwarnings.prg_desc_replace_by_alternative = Η ροή εργασιών χρησιμοποίησε ένα πρόγραμμα με όνομα '' {0} '' το οποίο δεν είναι πλέον διαθέσιμο.\n\
+Έχει αντικατασταθεί από το πρόγραμμα ''{1}''.\n\
+Είναι πιθανό αυτή η έκδοση να μην είναι πλήρως συμβατή με την παλαιότερη. Aν είναι απαραίτητο, θα εμφανιστούν στη συνέχεια οι προειδοποιήσεις \
+για να δώσουν όλες τις λεπτομέρειες σχετικά με αυτές τις πιθανές ασυμβατότητες.
+wf.xmlwarnings.prg_declares_invalid_param = Το πρόγραμμα '' {0} '' χρησιμοποίησε μια παράμετρο με το όνομα '' {1} '' που δεν ισχύει πια \
+(η τιμή για αυτήν την παράμετρο ήταν: ''{2}'').
+wf.xmlwarnings.prg_param_has_invalid_value = Το πρόγραμμα '' {0} '' δηλώνει μη έγκυρη τιμή για την παράμετρο '' {1} ''. Αυτή η τιμή \
+ήταν '' {2} '' και δεν ισχύει πια: η τιμή της παραμέτρου επαναφέρεται στην προεπιλεγμένη τιμή''{3}''.
+wf.xmlwarnings.prg_has_invalid_link        = Το πρόγραμμα '' {0} '' συνδέθηκε με την έξοδο του προγράμματος '' {1} '' (η έξοδος προσδιορίστηκε ως '' {2} '') αλλά ο σύνδεσμος είναι άκυρος\
+(είτε το '' {1} '' δεν είναι πλέον ένα έγκυρο πρόγραμμα στη ροή εργασιών, ή η αντίστοιχη έξοδος του δεν είναι πλέον έγκυρη).\n\
+Δεν ήταν δυνατή η αποκατάσταση της σύνδεσης μεταξύ των δύο προγραμμάτων.
+wf.xmlwarnings.prg_link_is_inactive        = Η έξοδος '' {1} '' του προγράμματος '' {0} '' και η είσοδος '' {3} '' του προγράμματος ''{2}'' \
+συνδέθηκαν το ένα με το άλλο, αλλά τουλάχιστον το ένα από τα δύο δεν ενεργοποιείται στην τρέχουσα παραμετροποίηση αυτών των δύο προγραμμάτων.\n\
+Δεν ήταν δυνατή η αποκατάσταση της σύνδεσης μεταξύ των δύο προγραμμάτων.
+wf.xmlwarnings.prg_contains_useless_parameter = Πληροφορίες: Το πρόγραμμα '' {0} '' δηλώνει μια παράμετρο '' {1} '' (παράμετρος '' {2} ''):
+αυτή η παράμετρος αγνοείται (Σημείωση: αυτό το μήνυμα είναι καθαρά ενημερωτικό, μπορεί να αγνοηθεί με ασφάλεια)
+eu.telecom_bretagne.praxis.core.execution.Result.Status.UNSET     = Απενεργοποίηση
+eu.telecom_bretagne.praxis.core.execution.Result.Status.SUBMITTED = Υποβλήθηκε
+eu.telecom_bretagne.praxis.core.execution.Result.Status.RUNNING   = Εκτέλεση σε εξέλιξη
+eu.telecom_bretagne.praxis.core.execution.Result.Status.OK        = OK
+eu.telecom_bretagne.praxis.core.execution.Result.Status.WARNING   = OK, με προειδοποιήσεις
+eu.telecom_bretagne.praxis.core.execution.Result.Status.ERROR     = Σφάλμα
+eu.telecom_bretagne.praxis.core.execution.Result.Status.CANCELLED = Ακυρώθηκε
+eu.telecom_bretagne.praxis.licence=
+eu.telecom_bretagne.praxis.included_libs_licences=
+project.licence=
diff --git a/data/i18n/original/praxis_el.author b/data/i18n/original/praxis_el.author
new file mode 100644
index 0000000000000000000000000000000000000000..6ee2e77d7e2e0fe74f71573e871b3f6a1b769e81
--- /dev/null
+++ b/data/i18n/original/praxis_el.author
@@ -0,0 +1 @@
+Panagiota Digkoglou <giotadigkoglou@outlook.com>
diff --git a/data/i18n/original/praxis_el.encoding.utf-8 b/data/i18n/original/praxis_el.encoding.utf-8
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/data/i18n/original/praxis_en b/data/i18n/original/praxis_en
new file mode 100644
index 0000000000000000000000000000000000000000..7bb0ece406bec7c03a198d94981782d391f7aa93
--- /dev/null
+++ b/data/i18n/original/praxis_en
@@ -0,0 +1,379 @@
+# -*- coding: utf-8 -*-
+UI.OptionsDialog.title                     = Options
+
+UI.TabbedPane.close                        = Close
+UI.TabbedPane.close_others                 = Close Others
+UI.TabbedPane.close_all                    = Close All
+UI.TabbedPane.results                      = All Results...
+
+UI.actions.display_preferences.error                  = An error happened when building the preferences panel
+UI.actions.execute_wf.confirm                         = Are you sure you want to execute the workflow {0}?
+UI.actions.execute_wf.error                           = Execution of the workflow failed
+UI.actions.execute_wf.title                           = Confirmation of the execution of a workflow
+UI.actions.execute_wf.invalid_workflow                = Cannot execute an invalid workflow, please check the programs'' parameters and that all inputs are connected.
+UI.actions.finished_exec.msg                          = The workflow {0} has successfully been executed
+UI.actions.finished_exec_with_errors.msg              = The execution of {0} is finished: an error occurred
+UI.actions.finished_exec_with_warnings.msg            = The execution of {0} is finished; there were some warnings, check the results for details
+UI.actions.finished_exec.title                        = End of execution
+UI.actions.wf_close                                   = Close
+UI.actions.wf_close_tt                                = Close current workflow
+UI.actions.wf_close_all                               = Close all
+UI.actions.wf_close_all_tt                            = Close all workflows
+UI.actions.wf_close_others                            = Close others
+UI.actions.wf_close_others_tt                         = Close other workflows
+UI.actions.wf_export                                  = Export without input files...
+UI.actions.wf_export_tt                               = Export a workflow
+UI.actions.wf_export_with_infiles                     = Export with input files...
+UI.actions.wf_export_with_infiles_tt                  = Export a workflow and all its input files, in a zip file
+UI.actions.wf_import                                  = Import...
+UI.actions.wf_import_as_new                           = Import as new...
+UI.actions.wf_import_as_new_tt                        = Import a workflow as a new workflow
+UI.actions.wf_import_tt                               = Import a workflow into the currently selected one
+UI.actions.wf_new                                     = New
+UI.actions.wf_new_tt                                  = Create a new workflow
+UI.actions.wf_open                                    = Open...
+UI.actions.wf_open_tt                                 = Open an existing workflow
+UI.actions.wf_open_err_no_workflow                    = <html>There isn''t any existing workflows yet!<br/>\
+To create a new workflow, use the menu "Workflow" and select "New"</html>
+UI.actions.wf_open_err_all_workflows_already_opened   = All existing workflows are already opened!
+UI.actions.wf_save                                    = Save
+UI.actions.wf_save_as                                 = Save as...
+UI.actions.wf_save_as_tt                              = Save as...
+UI.actions.wf_save_tt                                 = Save the current workflow
+UI.actions.show_results.connect_err                   = Results couldn''t be retrieved
+UI.actions.show_results.connect_err.title             = Connection error
+UI.actions.show_results.empty                         = No result available for this workflow
+UI.actions.show_results.empty.title                   = Results
+UI.actions.stop_exec.error                            = Error: execution couldn''t be stopped
+UI.actions.valid_links_confirm                        = Are you sure you want to deactivate the automatic checking of validity of links between programs?
+UI.actions.create_file_error                          = Cannot create file {0}
+UI.actions.create_existing_file_error                 = Cannot create file {0}: it already exists
+UI.actions.zoom_in                                    = Zoom In
+UI.actions.zoom_in_tt                                 = Draws a bigger workflow to better distinguish the details
+UI.actions.zoom_original                              = Zoom 1:1
+UI.actions.zoom_original_tt                           = Restores the default zoom factor
+UI.actions.zoom_out                                   = Zoom Out
+UI.actions.zoom_out_tt                                = Draws a smaller workflow to show a larger part of it
+UI.annotation.for_workflow                            = Annotation for workflow ''{0}''
+UI.annotation.for_program                             = Annotation for program: ''{0}''
+UI.ctrlwf.run.file_does_not_exist                     = File {0} does not exist
+UI.ctrlwf.run.file_unreadable                         = File {0} cannot be read
+UI.ctrlwf.run.zip_failed                              = Failed to execute the workflow: an unexpected error happened while preparing execution\n\
+\n\
+Details:\n\
+{0}\n\
+
+UI.ctrlwf.run.zip_failed_missing_file                 = Failed to execute the workflow: at least one input file does not exist!\n\
+\n\
+Detail:\n\
+{0}\n\
+
+UI.datasource.unset_path                              = <not set>
+
+UI.dialog.about                                       = About...
+UI.dialog.about_content                               = <html>\
+  {0}\
+  <div>\
+  <hr>\
+  <i>Powered by Praxis - Version {1} ({2})<br>\
+     &copy; Institut Mines Telecom - IMT Atlantique Bretagne-Pays de la Loire 2002-2018<br>\
+     All rights reserved.</i><br>\
+     <small>Build: {3}</small>\
+  <hr>\
+  </div>\
+</html>
+UI.dialog.about_msg                                   =
+UI.dialog.connection.connect_to_server                = Enable connection to the server:
+UI.dialog.connection.enter_login_passwd               = Please enter your login and your password
+UI.dialog.connection.login                            = Login:
+UI.dialog.connection.passwd                           = Password:
+UI.dialog.connection.server                           = Server (host:port):
+UI.dialog.connection.title                            = Application starting...
+UI.dialog.connection_failure                          = Failed to connect to the server, please retry later
+UI.dialog.connection_failure_title                    = Connection failure
+UI.dialog.datasource_inputs.add                       = Add
+UI.dialog.datasource_inputs.delete                    = Delete
+UI.dialog.datasource_inputs.file                      = Files
+UI.dialog.datasource_inputs.title                     = Datasource properties
+UI.dialog.default_filesource_displayname              = File
+UI.dialog.default_directorysource_displayname         = Directory
+UI.dialog.disconnect_confirm                          = Do you want to disconnect from the server?
+UI.dialog.disconnect_confirm_title                    = Disconnecting from the server
+UI.dialog.error                                       = Error!
+UI.dialog.file_chooser.title                          = Add files
+UI.dialog.file.overwrite                              = File already exists: overwrite?
+UI.dialog.help.title                                  = Help
+UI.dialog.help.not_available                          = No help available for the moment
+UI.dialog.image.save.failed_title                     = Failed to save file
+UI.dialog.image.save.failed                           = The image could not be saved: an error occurred
+UI.dialog.import.label_wf                             = Workflow
+UI.dialog.import.label_ws                             = Workspace
+UI.dialog.import.msg_wf                               = Which workflow do you want to import?
+UI.dialog.import.title                                = Import
+UI.dialog.save_as.title                               = Save as
+UI.dialog.rename.title                                = Rename
+UI.dialog.logging_err_msg                             = Unable to connect: incorrect login/password
+UI.dialog.login_mandatory                             = You must supply a login name!
+UI.dialog.open.label_wf                               = Select the workflow for opening:\n\
+\n\
+
+UI.dialog.open.label_ws                               = Select the workspace for opening:\n\
+\n\
+
+UI.dialog.open.title                                  = Open
+UI.dialog.datasource.rename_title                     = Rename data source
+UI.dialog.datasource.rename                           = Please enter the name of this element:
+UI.dialog.datasource.incorrect_name_title             = Incorrect name
+UI.dialog.datasource.incorrect_name                   = Characters :, ?, /, \\, <, >, \" and | are not allowed
+UI.dialog.datasource.name_already_exists              = An other element has the same name, please choose another one.
+UI.dialog.prg_properties.descr_window_title           = Description of {0}
+UI.dialog.prg_properties.main_label                   = Description of {0}  (click to see)
+UI.dialog.prg_properties.parameters                   = Parameters:
+UI.dialog.prg_properties.parameters_default           = (and their default value)
+UI.dialog.prg_properties.title                        = Program properties
+UI.dialog.quit                                        = Quit
+UI.dialog.quit_and_disconnect_msg                     = \n\
+Do you want to quit?\n\
+
+UI.dialog.quit_msg                                    = Do you want to close the application?
+UI.dialog.save_ws.btn_none                            = None
+UI.dialog.save_ws.btn_ok                              = OK
+UI.dialog.save_ws.msg                                 = Select the workflow for saving :
+UI.dialog.save_ws.title                               = Saving {0}
+UI.dialog.wf.already_opened                           = This workflow is already opened!
+UI.dialog.wf.close_confirm                            = Should the workflow "{0}" be saved before it is closed?
+UI.dialog.wf.close_title                              = Closing a workflow
+UI.dialog.wf.enter_name                               = Choose a name for the workflow:
+UI.dialog.wf.creation_failed_ws_not_selected          = Before creating a workflow, please create or select the workspace to which the new workflow belongs
+UI.dialog.wf.creation_failure_title                   = Failed to create a workflow
+UI.dialog.wf.creation_title                           = New workflow
+UI.dialog.wf.delete_result_confirm_title              = Delete result
+UI.dialog.wf.delete_result_confirm                    = Are you sure you want to definitively delete this result?
+UI.dialog.wf.delete_all_results_confirm_title         = Delete all results
+UI.dialog.wf.delete_all_results_confirm               = Are you sure you want to definitively delete all these results?
+UI.dialog.wf.delete                                   = Delete the current workflow
+UI.dialog.wf.delete_confirm                           = \n\
+Are you sure you want to definitively delete this workflow?\n\
+\n\
+Deleting the workflow will also permanently delete its results.\n\
+
+UI.dialog.wf.existing_names                           = Already defined workflows are:
+UI.dialog.wf.export_title                             = Exporting a workflow
+UI.dialog.wf.export_failed                            = Failed to export the workflow
+UI.dialog.wf.import_cannot_extract                    = Unable to extract the files
+UI.dialog.wf.import_cannot_create_dir                 = The chosen directory could not be created. Please check that you have the sufficient rights to do it.
+UI.dialog.wf.import_cannot_read_zip                   = Unable to read the zip file
+UI.dialog.wf.import_create_dir                        = The directory you choose does not exist, should we create it?
+UI.dialog.wf.import_drop_file_in_dir                  = Drop input files in this directory
+UI.dialog.wf.import_failure                           = An unexpected error occured while importing the workflow
+UI.dialog.wf.import_failure_title                     = Failed to import a workflow
+UI.dialog.wf.import_impossible_coz_execution          = A workflow cannot be imported while an execution in progress
+UI.dialog.wf.import_invalid_archive                   = Invalid archive
+UI.dialog.wf.import_not_a_dir                         = "{0}" is not a directory. Please select a directory.
+UI.dialog.wf.invalid_name_empty                       = Invalid empty name!
+UI.dialog.wf.invalid_name_already_exists              = An other workflow with that name already exists!
+UI.dialog.wf.open_failed_no_workflow                  = Cannot open any workflow: none found
+UI.dialog.wf.open_failed_xml_not_conform_to_DTD       = Failed to open the workflow: the xml file does not conform to the DTD
+UI.dialog.wf.open_failure                             = An unexpected error occured while opening the workflow
+UI.dialog.wf.rename_save_before_confirm               = The workflow has been modified and needs to be saved before it is renamed.\n\
+Do you want to save it now?
+UI.dialog.wf.open_failure_title                       = Failed to open a workflow
+UI.dialog.wf.open_select_workflows                    = Select the workflow(s) to be opened:
+UI.dialog.wf.rename_failure_title                     = Failed to rename a workflow
+UI.dialog.wf.rename_impossible                        = Failed to rename the workflow (unknown reason).\n\
+One possible reason could be that the corresponding files are currently opened in another tool.
+UI.dialog.wf.rename_impossible_coz_execution          = A workflow cannot be renamed while an execution in progress
+UI.dialog.wf.rename_title                             = Renaming {0}
+UI.dialog.wf.save_title                               = Saving a workflow
+UI.dialog.wf.save_failed                              = Could not save the workflow
+UI.dialog.wf.delete_title                             = Deleting workflow {0}
+UI.dialog.wf.delete_confirm_msg                       =  Are you sure you want to delete workflow {0}?
+UI.dialog.wf.delete_confirm_msg_with_results          =  Are you sure you want to delete workflow {0}?\n\
+This workflow has already been executed; deleting it will also delete all the corresponding results.
+UI.dialog.wf.warnings_title                           = Workflow requires checkings
+UI.dialog.wf.warnings                                 = Warning: when loading the workflow, some inconsistencies in \
+the parametering of some programs were detected. \n\
+You will find below the detail of the errors that have been automatically corrected. \n\
+It is advisable to check these corrections, and also to make sure that the parametering of the concerned programs is correct.
+
+UI.dialog.result.rename                               = Name of the result:
+UI.dialog.result.rename_title                         = Renaming a result
+UI.dialog.result.rename_failed_title                  = Failed to rename the result
+UI.dialog.result.rename_failed                        = The result could not be renamed.
+UI.dialog.btn_cancel                                  = Cancel
+UI.dialog.btn_ok                                      = OK
+UI.dialog.btn_apply                                   = Apply
+UI.dialog.btn.overwrite                               = Overwrite
+UI.dialog.btn_open                                    = Open
+UI.dialog.select_results.btn_display                  = Display
+UI.dialog.select_results.header                       = Select the results to display:\n\
+
+UI.dialog.select_results.title                        = Results of {0}
+UI.dialog.results.title                               = Results
+UI.dialog.splash.img_path                             = data/client/images/splash.jpg
+UI.dialog.splash.init_msg                             = Initializing...
+
+UI.dialog.change_language                             = Please restart the software for the language change to take full effect!
+UI.dialog.change_language_title                       = Change the software language
+
+UI.menu.display                                       = Display
+UI.menu.edit                                          = Edit
+UI.menu.execution                                     = Execution
+UI.menu.file                                          = File
+UI.menu.help_about                                    = ?
+UI.menu.prefs                                         = Preferences
+UI.menu.workflow                                      = Workflow
+UI.menu.workspace                                     = Workspace
+UI.menu_items.about                                   = About...
+UI.menu_items.about_tt                                = About the software
+UI.menu_items.check_valid_links                       = Check that links are valid
+UI.menu_items.check_valid_links_tt                    = Activate/deactivate the automatic feature which checks that two elements of a workflow (programs, files or databases) are compatible when you try to link one with another
+UI.menu_items.open_all_results                        = Open all results'' files automatically
+UI.menu_items.open_all_results_tt                     = Open all files automatically when a result is displayed
+UI.menu_items.options                                 = Options...
+UI.menu_items.options_tt                              = Options
+UI.menu_items.connect                                 = Connect
+UI.menu_items.connect_tt                              = Connect to server
+UI.menu_items.copy                                    = Copy
+UI.menu_items.copy_tt                                 = Copy the selected object(s) into the clipboard
+UI.menu_items.delete                                  = Delete
+UI.menu_items.delete_tt                               = Delete the selected object(s)
+UI.menu_items.disconnect                              = Disconnect
+UI.menu_items.disconnect_tt                           = Disconnect from server
+UI.menu_items.edit_rename                             = Rename...
+UI.menu_items.edit_rename_tt                          = Rename the selected element
+UI.menu_items.exit                                    = Exit
+UI.menu_items.exit_tt                                 = Exits the application
+UI.menu_items.help                                    = Help
+UI.menu_items.help_tt                                 = Help
+UI.menu_items.paste                                   = Paste
+UI.menu_items.paste_tt                                = Paste the clipboard''s content into the current workflow
+UI.menu_items.properties                              = Properties...
+UI.menu_items.properties_tt                           = Modify the selected object''s properties
+UI.menu_items.wf_delete                               = Delete workflow
+UI.menu_items.wf_delete_tt                            = Delete the current workflow
+UI.menu_items.result_delete                           = Delete this result
+UI.menu_items.result_delete_tt                        = Delete the selected result
+UI.menu_items.result_rename_tt                        = Rename...
+UI.menu_items.result_rename                           = Rename this result
+UI.menu_items.all_results_delete                      = Delete all results
+UI.menu_items.all_results_delete_tt                   = Delete all results for this workflow
+UI.menu_items.wf_exec_stop                            = Stop
+UI.menu_items.wf_exec_stop_tt                         = Stop the execution
+UI.menu_items.wf_execute                              = Run
+UI.menu_items.wf_execute_tt                           = Execute the current workflow
+UI.menu_items.wf_rename                               = Rename...
+UI.menu_items.wf_rename_tt                            = Rename the current workflow
+UI.menu_items.wf_results                              = Results
+UI.menu_items.wf_results_tt                           = Show the workflow''s results
+UI.menu_items.show_statusbar                          = Status bar
+UI.menu_items.show_statusbar_tt                       = Show/hide the status bar
+UI.menu_items.show_toolbar                            = Toolbar
+UI.menu_items.show_toolbar_tt                         = Show/hide the toolbar
+
+UI.menu_items.create_file                             = Create the file
+UI.menu_items.open_with                               = Open with...
+UI.menu_items.display_file_action                     = Display file
+UI.menu_items.display_file_action_tt                  = Display the content of the selected file
+UI.menu_items.anti_aliasing                           = Antialiasing
+UI.menu_items.anti_aliasing_tt                        = Use or not antialiasing
+UI.menu_items.show_grid                               = Show Grid
+UI.menu_items.show_grid_tt                            = Show/hide the grid on the graph editor
+UI.menu_items.snap_to_grid                            = Snap to Grid
+UI.menu_items.snap_to_grid_tt                         = Snap the elements to the grid
+UI.menu_items.grid_size                               = Grid Size
+UI.menu_items.grid_size_tt                            = Modify the grid size
+UI.menu_items.grid_size_small                         = Small
+UI.menu_items.grid_size_medium                        = Medium
+UI.menu_items.grid_size_large                         = Large
+UI.menu_items.arrow_style                             = Arrow Style
+UI.menu_items.arrow_style_orthogonal                  = Orthogonal
+UI.menu_items.arrow_style_straigh                     = Straigh
+UI.menu_items.save_as_image                           = Save as Image...
+UI.menu_items.save_as_image_tt                        = Save the workflow as a PNG image
+
+UI.menu_items.License                                 = License...
+UI.menu_items.OtherLicenses                           = Third-party Licenses...
+UI.menu_items.changes                                 = Changes...
+
+UI.menu_items.languages                               = Language settings...
+# value                                               = language (translated language)
+UI.menu_items.language.fr                             = Français (French)
+UI.menu_items.language.el                             = Ελληνικά (Greek)
+UI.menu_items.language.en                             = English
+UI.menu_items.language.es                             = Español (Spanish)
+
+UI.progtree.database                                  = Database
+UI.progtree.datasource                                = Inputs
+UI.progtree.file                                      = File(s)
+UI.progtree.directory                                 = Directory
+UI.progtree.programs                                  = Programs
+UI.results.info_title                                 = Informations
+UI.results.info_unimplemented                         = There is no additional information on this file
+UI.results.input_files_popup_menu                     = Input files
+UI.results.file_truncated                             = This result file is too big to be displayed in this view: you only see the beginning of it.\n\
+To view it in its entirety, select one of the available external viewers.
+UI.results.viewers.launch_failed                      = The selected external viewer could not be launched
+UI.results.viewers.load_failed                        = The external viewer could not be loaded
+UI.status_msg.connect                                 = Connecting to server...
+UI.status_msg.logging                                 = Sending credentials...
+
+UI.tab.close                                          = Close this tab
+
+UI.label.search                                     = Search:
+UI.label.service_unknown                            = This resource is unknown: it cannot be used
+UI.label.invalid_program_description                = The description of this program is invalid, it cannot be used
+
+UI.view.opened_workflows                            = Opened workflows
+UI.view.resources                                   = Programs
+
+common.application_name                   =
+common.close                              = Close
+common.dialog.detailed_error.hide_details = Hide details <<<
+common.dialog.detailed_error.show_details = Show details >>>
+common.error                              = Error
+common.no                                 = No
+common.yes                                = Yes
+common.warning                            = Warning
+common.client_out_of_date                 = This client is out-of-date:\nplease download the new client!
+common.client_out_of_date_title           = Client out-of-date
+common.cnx_rejected.invalid_credentials            = Cannot connect to the server:\ninvalid credentials.
+common.cnx_rejected.invalid_credentials_title      = Connection failed
+common.cnx_rejected.client_already_connected       = Cannot connect to the server:\nthis user is already connected.
+common.cnx_rejected.client_already_connected_title = Connection failed
+common.cnx_rejected.client_login_disabled          = The server is currently refusing connections, please try again later.
+common.cnx_rejected.client_login_disabled_title    = Connection failed
+common.cnx_rejected.client_login_disabled_w_reason = The server is currently refusing connections\n{0}
+common.cnx_rejected.client_login_disabled_w_reason_title = Connection failed
+common.cnx_rejected.maximum_number_of_clients       = Connection refused: the server cannot accept more connections\nPlease try again a moment later\n\nWe apology for the inconvenience.
+common.cnx_rejected.maximum_number_of_clients_title = Connection refused
+
+wf.xmlwarnings.prg_desc_does_not_exists   = The workflow used a program named ''{0}'' which is not available anymore.
+wf.xmlwarnings.prg_desc_replace_by_alternative = The workflow used a program named ''{0}'' which is not available anymore.\n\
+It has been replaced with the programme ''{1}''.\n\
+It is possible that this version is not fully compatible with the older one; if necessary, warnings will be displayed hereafter \
+to give the full details on these possible incompatibilities.
+wf.xmlwarnings.prg_declares_invalid_param = The program ''{0}'' used a parameter named ''{1}'' which is not valid anymore \
+(the value for this parameter was: ''{2}'').
+wf.xmlwarnings.prg_param_has_invalid_value = The program ''{0}'' declared an invalid value for parameter ''{1}''. This value \
+was ''{2}'' and it is not valid anymore: the parameter''s value was reset to the default value ''{3}''.
+wf.xmlwarnings.prg_has_invalid_link        = The program ''{0}'' was linked to an output of the program ''{1}'' (output identified as ''{2}'') but the link is invalid \
+(either ''{1}'' is not longer a valid program in the workflow, or its corresponding output is not valid anymore).\n\
+The link between the two programs could not be restored.
+wf.xmlwarnings.prg_link_is_inactive        = The output ''{1}'' of program ''{0}'' and the input ''{3}'' of program ''{2}'' \
+were linked one to each other, but at least one of them is not activated in the current parametering of these two programs.\n\
+The link between the two programs could not be restored.
+wf.xmlwarnings.prg_contains_useless_parameter = Info: the program ''{0}'' declares a parameter ''{1}'' (param.''s type is ''{2}''): \
+this parameter is ignored (Note: this message is purely informational, it can be safely ignored)
+
+eu.telecom_bretagne.praxis.core.execution.Result.Status.UNSET     = Unset
+eu.telecom_bretagne.praxis.core.execution.Result.Status.SUBMITTED = Submitted
+eu.telecom_bretagne.praxis.core.execution.Result.Status.RUNNING   = Execution in progress
+eu.telecom_bretagne.praxis.core.execution.Result.Status.OK        = OK
+eu.telecom_bretagne.praxis.core.execution.Result.Status.WARNING   = OK, with warnings
+eu.telecom_bretagne.praxis.core.execution.Result.Status.ERROR     = Error
+eu.telecom_bretagne.praxis.core.execution.Result.Status.CANCELLED = Cancelled
+eu.telecom_bretagne.praxis.licence=
+eu.telecom_bretagne.praxis.included_libs_licences=
+
+project.licence=
diff --git a/data/i18n/original/praxis_en.author b/data/i18n/original/praxis_en.author
new file mode 100644
index 0000000000000000000000000000000000000000..6c96f60094fa92ed6d3616bd74ea651c2cf587be
--- /dev/null
+++ b/data/i18n/original/praxis_en.author
@@ -0,0 +1 @@
+Sébastien Bigaret <sebastien.bigaret@telecom-bretagne.eu>
diff --git a/data/i18n/original/praxis_en.encoding.utf-8 b/data/i18n/original/praxis_en.encoding.utf-8
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/data/i18n/original/praxis_es b/data/i18n/original/praxis_es
new file mode 100644
index 0000000000000000000000000000000000000000..1e9568d93800ba5189e5375769d259639881c499
--- /dev/null
+++ b/data/i18n/original/praxis_es
@@ -0,0 +1,410 @@
+# -*- coding: windows-1252 -*-
+
+UI.OptionsDialog.title                     = Opciones
+
+UI.TabbedPane.close                        = Cerrar
+UI.TabbedPane.close_others                 = Cerrar Otros
+UI.TabbedPane.close_all                    = Cerrar Todos
+UI.TabbedPane.results                      = Todos los Resultados �
+
+UI.actions.display_preferences.error                  = Ha ocurrido un error al construir el panel de preferencias
+UI.actions.execute_wf.confirm                         = �Est� seguro de querer ejecutar el diagrama de flujo {0}?
+UI.actions.execute_wf.error                           = Ejecuci�n fallida del diagrama de flujo
+UI.actions.execute_wf.title                           = Confirmaci�n de la ejecuci�n de un diagrama de flujo
+UI.actions.execute_wf.invalid_workflow                = No se puede ejecutar un diagrama de flujo no v�lido, por favor compruebe los par�metros del programa y que todos los inputs est�n conectados.
+UI.actions.finished_exec.msg                          = El diagrama de flujo {0} se ha ejecutado correctamente
+UI.actions.finished_exec_with_errors.msg              = La ejecuci�n de {0} ha terminado: ha ocurrido un error
+UI.actions.finished_exec_with_warnings.msg            = La ejecuci�n de {0} ha terminado; hay algunas advertencias, compruebe los resultados para m�s detalles
+UI.actions.finished_exec.title                        = Fin de la ejecuci�n
+UI.actions.wf_close                                   = Cerrar
+UI.actions.wf_close_tt                                = Cerrar el diagrama de flujo actual
+UI.actions.wf_close_all                               = Cerrar todo
+UI.actions.wf_close_all_tt                            = Cerrar todos los diagramas de flujo
+UI.actions.wf_close_others                            = Cerrar otros
+UI.actions.wf_close_others_tt                         = Cerrar otros diagramas de flujo
+UI.actions.wf_export                                  = Exportar sin los ficheros de entrada de datos �
+UI.actions.wf_export_tt                               = Exportar un diagrama de flujo
+UI.actions.wf_export_with_infiles                     = Exportar con ficheros de entrada de datos �
+UI.actions.wf_export_with_infiles_tt                  = Exportar un diagrama de flujo y todos sus ficheros de entrada de datos, en un fichero zip
+UI.actions.wf_import                                  = Importar �
+UI.actions.wf_import_as_new                           = Importar como si fuera nuevo �
+UI.actions.wf_import_as_new_tt                        = Importar un diagrama de flujo como un nuevo diagrama de flujo
+UI.actions.wf_import_tt                               = Importar un diagrama de flujo en el espacio de trabajo seleccionado en la actualidad
+UI.actions.wf_new                                     = Nuevo
+UI.actions.wf_new_tt                                  = Crear un nuevo diagrama de flujo
+UI.actions.wf_open                                    = Abrir �
+UI.actions.wf_open_tt                                 = Abrir un diagrama de flujo existente
+UI.actions.wf_open_err_no_workflow                    = <html>�Todav�a no existe ning�n diagrama de flujo!<br/>\
+Para crear un nuevo diagrama de flujo, usar el men� �Diagrama de Flujo� y seleccionar �Nuevo�</html>
+UI.actions.wf_open_err_all_workflows_already_opened   = �Todos los diagramas de flujo existentes ya est�n abiertos!
+UI.actions.wf_save                                    = Guardar
+UI.actions.wf_save_as                                 = Guardar como �
+UI.actions.wf_save_as_tt                              = Guardar como �
+UI.actions.wf_save_tt                                 = Guardar el diagrama de flujo actual
+UI.actions.show_results.connect_err                   = No se han podido recuperar los resultados
+UI.actions.show_results.connect_err.title             = Error de conexi�n
+UI.actions.show_results.empty                         = No hay resultado disponible para este diagrama de flujo
+UI.actions.show_results.empty.title                   = Resultados
+UI.actions.stop_exec.error                            = Error: no se ha podido parar la ejecuci�n
+UI.actions.valid_links_confirm                        = �Est� seguro de querer desactivar la comprobaci�n autom�tica de validez de los enlaces entre programas?
+UI.actions.create_file_error                          = No se ha podido crear el fichero {0}
+UI.actions.create_existing_file_error                 = No se ha podido crear el fichero {0}: ya existe
+UI.actions.zoom_in                                    = Hacer zoom
+UI.actions.zoom_in_tt                                 = Dibuja un diagrama de flujo m�s grande para distinguir mejor los detalles
+UI.actions.zoom_original                              = Zoom 1:1
+UI.actions.zoom_original_tt                           = Restaura el factor de zoom predeterminado
+UI.actions.zoom_out                                   = Quitar el zoom
+UI.actions.zoom_out_tt                                = Dibuja un diagrama de flujo m�s peque�o para mostrar una parte mayor del mismo
+UI.annotation.for_workflow                            = Anotaci�n para diagrama de flujo �{0}�
+UI.annotation.for_program                             = Anotaci�n para programa �{0}�
+UI.ctrlwf.run.file_does_not_exist                     = El fichero {0} no existe
+UI.ctrlwf.run.file_unreadable                         = El fichero {0} no se puede leer
+UI.ctrlwf.run.zip_failed                              = Error al ejecutar el diagrama de flujo: ocurri� un error inesperado mientras se preparaba para la ejecuci�n\n\
+\n\
+Detalles:\n\
+{0}\n\
+
+UI.ctrlwf.run.zip_failed_missing_file                 = Error al ejecutar el diagrama de flujo: �al menos uno de los ficheros de entrada de datos no existe!\n\
+\n\
+Detalles:\n\
+{0}\n\
+
+UI.datasource.unset_path                              = <no establecido>
+
+UI.dialog.about                                       = Sobre �
+UI.dialog.about_content                               = <html>\
+  {0}\
+  <p>\
+  <hr>\
+  <i>Desarrollado por Praxis - Versi�n {1} ({2})<br>\
+     &copy; Institut Mines T�l�com - IMT Atlantique Bretagne-Pays de la Loire 2002-2018<br>\
+     Todos los derechos reservados.</i><br>\
+     <small><br>Build: {3}</small>\
+  <hr>\
+</html>
+UI.dialog.about_msg                                   =
+UI.dialog.bank_list.list_header_month                 = A�o
+UI.dialog.bank_list.list_header_selection             = Nombre
+UI.dialog.bank_list.list_header_type                  = Tipo
+UI.dialog.bank_list.list_header_version               = Versi�n
+UI.dialog.bank_list.title                             = Bases de datos disponibles
+UI.dialog.connection.connect_to_server                = Habilitar la connexi�n al servidor:
+UI.dialog.connection.enter_login_passwd               = Por favor introduzca su usuario y contrase�a
+UI.dialog.connection.login                            = Usuario :
+UI.dialog.connection.passwd                           = Contrase�a :
+UI.dialog.connection.server                           = Servidor (host:puerto):
+UI.dialog.connection.title                            = Aplicaci�n comenzando �
+UI.dialog.connection_failure                          = Error al conectarse al servidor, por favor int�ntelo de nuevo m�s tarde
+UI.dialog.connection_failure_title                    = Fallo de conexi�n
+UI.dialog.datasource_inputs.DB                        = Bases de datos
+UI.dialog.datasource_inputs.add                       = A�adir
+UI.dialog.datasource_inputs.delete                    = Borrar
+UI.dialog.datasource_inputs.file                      = Ficheros
+UI.dialog.datasource_inputs.title                     = Propiedades de la fuente de datos
+UI.dialog.default_filesource_displayname              = Fichero
+UI.dialog.default_directorysource_displayname         = Directorio
+UI.dialog.disconnect_confirm                          = �Quiere desconectarse del servidor?
+UI.dialog.disconnect_confirm_title                    = Desconect�ndose del servidor
+UI.dialog.error                                       = �Error!
+UI.dialog.file_chooser.title                          = A�adir ficheros
+UI.dialog.file.overwrite                              = El fichero ya existe: �desea reemplazarlo?
+UI.dialog.help.title                                  = Ayuda
+UI.dialog.help.not_available                          = No hay ayuda disponible por el momento
+UI.dialog.image.save.failed_title                     = Error al guardar el fichero
+UI.dialog.image.save.failed                           = La imagen no ha podido ser guardada: ha ocurrido un error
+UI.dialog.import.label_wf                             = Diagrama de flujo
+UI.dialog.import.label_ws                             = Espacio de trabajo
+UI.dialog.import.msg_wf                               = �Qu� diagrama de flujo desea importar?
+UI.dialog.import.title                                = Importar
+UI.dialog.save_as.title                               = Guardar como
+UI.dialog.rename.title                                = Cambiar el nombre
+UI.dialog.logging_err_msg                             = Imposible conectar: usuario o contrase�a incorrectos
+UI.dialog.login_mandatory                             = �Debe proporcionar un nombre de usuario!
+UI.dialog.open.label_wf                               = Seleccione el diagrama de flujo para abrir:\n\
+\n\
+
+UI.dialog.open.label_ws                               = Seleccione el espacio de trabajo para abrir:\n\
+\n\
+
+UI.dialog.open.title                                  = Abrir
+UI.dialog.datasource.rename_title                     = Cambiar el nombre de la fuente de datos
+UI.dialog.datasource.rename                           = Por favor introduzca el nombre de este elemento:
+UI.dialog.datasource.incorrect_name_title             = Nombre incorrecto
+UI.dialog.datasource.incorrect_name                   = Los caracteres :, ?, /, \\, <, >, \" y | no est�n permitidos
+UI.dialog.datasource.name_already_exists              = Otro elemento tiene el mismo nombre, por favor escoja otro nombre.
+UI.dialog.prg_properties.descr_window_title           = Descripci�n de {0}
+UI.dialog.prg_properties.main_label                   = Descripci�n de {0}  (hacer clic para ver)
+UI.dialog.prg_properties.parameters                   = Par�metros:
+UI.dialog.prg_properties.parameters_default           = (y sus valores por defecto)
+UI.dialog.prg_properties.title                        = Propiedades del programa
+UI.dialog.quit                                        = Salir
+UI.dialog.quit_and_disconnect_msg                     = \n\
+�Desea salir?\n\
+
+UI.dialog.quit_msg                                    = �Quiere cerrar la aplicaci�n?
+UI.dialog.save_ws.btn_none                            = Ninguno
+UI.dialog.save_ws.btn_ok                              = OK
+UI.dialog.save_ws.msg                                 = Seleccione el diagrama de flujo para guardar:
+UI.dialog.save_ws.title                               = Guardando {0}
+UI.dialog.wf.already_opened                           = �Este diagrama de flujo ya est� abierto!
+UI.dialog.wf.close_and_saved                          = El diagrama de flujo {0} ha sido guardado con �xito\n\
+\n\
+Fichero: {1}\n\
+
+UI.dialog.wf.close_confirm                            = �Deber�a guardarse el diagrama de flujo {0} antes de cerrarlo?
+UI.dialog.wf.close_title                              = Cerrando un diagrama de flujo
+UI.dialog.wf.enter_name                               = Escoja un nombre para el diagrama de flujo:
+UI.dialog.wf.creation_failed_ws_not_selected          = Antes de crear un diagrama de flujo, cree o seleccione el espacio de trabajo al cual pertenece el nuevo diagrama de flujo
+UI.dialog.wf.creation_failure_title                   = Error al crear un diagrama de flujo
+UI.dialog.wf.creation_title                           = Nuevo diagrama de flujo
+UI.dialog.wf.delete_result_confirm_title              = Borrar el resultado
+UI.dialog.wf.delete_result_confirm                    = �Est� seguro de querer borrar definitivamente este resultado?
+UI.dialog.wf.delete_all_results_confirm_title         = Borrar todos los resultados
+UI.dialog.wf.delete_all_results_confirm               = �Est� seguro de querer borrar definitivamente todos estos resultados?
+UI.dialog.wf.delete                                   = Borrar el diagrama de flujo actual
+UI.dialog.wf.delete_confirm                           = \n\
+�Est� seguro de querer borrar definitivamente este diagrama de flujo?\n\
+\n\
+Borrar el diagrama de flujo tambi�n borrar� permanentemente sus resultados.\n\
+
+UI.dialog.wf.existing_names                           = Los diagramas de flujo ya definidos son:
+UI.dialog.wf.export_title                             = Exportando un diagrama de flujo
+UI.dialog.wf.export_failed                            = Error al exportar el diagrama de flujo
+UI.dialog.wf.import_cannot_extract                    = No se pueden extraer los ficheros
+UI.dialog.wf.import_cannot_create_dir                 = El directorio escogido no puede crearse. Por favor compruebe que tiene suficientes derechos para hacerlo.
+UI.dialog.wf.import_cannot_read_zip                   = Imposible leer el fichero comprimido
+UI.dialog.wf.import_create_dir                        = El directorio escogido no existe, �desea crearlo?
+UI.dialog.wf.import_drop_file_in_dir                  = Depositar los ficheros de entrada de datos en este directorio
+UI.dialog.wf.import_failure                           = Ha ocurrido un error inesperado al importar el diagrama de flujo
+UI.dialog.wf.import_failure_title                     = Error al importar el diagrama de flujo
+UI.dialog.wf.import_impossible_coz_execution          = Un diagrama de flujo no puede ser importado mientras la ejecuci�n est� en progreso
+UI.dialog.wf.import_invalid_archive                   = Archivo no v�lido
+UI.dialog.wf.import_not_a_dir                         = "{0}" no es un directorio. Por favor seleccione un directorio.
+UI.dialog.wf.invalid_name_empty                       = �Nombre vac�o no v�lido!
+UI.dialog.wf.invalid_name_already_exists              = �Ya existe otro diagrama de flujo con este nombre!
+UI.dialog.wf.open_failed_no_workflow                  = No se puede abrir ning�n diagrama de flujo: no se ha encontrado ninguno
+UI.dialog.wf.open_failed_no_workspace                 = No se puede abrir ning�n diagrama de flujo: �no hay espacio de trabajo disponible!
+UI.dialog.wf.open_failed_xml_not_conform_to_DTD       = Error al abrir el diagrama de flujo: el fichero xml no es conforme al DTD
+UI.dialog.wf.open_failure                             = Ha ocurrido un error no esperado al abrir el diagrama de flujo
+UI.dialog.wf.rename_save_before_confirm               = El diagrama de flujo ha sido modificado y necesita guardarse antes de cambiar su nombre.\n\
+�Desea guardarlo ahora?
+UI.dialog.wf.open_failure_title                       = Ha ocurrido un error al abrir el diagrama de flujo
+UI.dialog.wf.open_select_workflows                    = Seleccionar el(los) diagrama(s) de flujo para abrir:
+UI.dialog.wf.rename_enter_new_name                    = Por favor introduzca el nuevo nombre de este diagrama de flujo:
+UI.dialog.wf.rename_failure_title                     = Error al cambiar el nombre a un diagrama de flujo
+UI.dialog.wf.rename_impossible                        = Error al cambiar el nombre al diagrama de flujo (raz�n desconocida).\n\
+Una posible raz�n podr�a ser que los ficheros correspondientes ya est�n abiertos en otra herramienta.
+UI.dialog.wf.rename_impossible_coz_execution          = Un diagrama de flujo no puede ser renombrado mientras una ejecuci�n est� en proceso
+UI.dialog.wf.rename_title                             = Cambiando el nombre {0}
+UI.dialog.wf.save_as_enter_new_name                   = Por favor introduzca el nombre con el que se guardar� este fichero:
+UI.dialog.wf.save_as_failed_name_already_exists       = �Ya existe otro diagrama de flujo con este nombre!
+UI.dialog.wf.save_as_failure                          = Error al cambiar el nombre del diagrama de flujo
+UI.dialog.wf.save_as_impossible_coz_execution         = Un diagrama de flujo no puede �guardarse como� mientras una o m�s ejecuciones est�n en proceso
+UI.dialog.wf.save_as_title                            = Guardando {0} como�
+UI.dialog.wf.save_msg                                 = Guardando {0}
+UI.dialog.wf.save_title                               = Guardando un diagrama de flujo
+UI.dialog.wf.save_failed                              = No se puede grabar el diagrama de flujo
+UI.dialog.wf.delete_title                             = Borrando el diagrama de flujo {0}
+UI.dialog.wf.delete_confirm_msg                       = �Est� seguro de querer guardar el diagrama de flujo {0}?
+UI.dialog.wf.delete_confirm_msg_with_results          = �Est� seguro de querer guardar el diagrama de flujo {0}?  \n\
+Este diagrama de flujo ya ha sido ejecutado; si lo borra tambi�n borrar� todos los resultados correspondientes.
+UI.dialog.wf.warnings_title                           = El diagrama de flujo requiere comprobaciones
+UI.dialog.wf.warnings                                 = Atenci�n: se han detectado algunas inconsistencias en la parametrizaci�n de algunos programas al cargar el diagrama de flujo. \n\
+A continuaci�n encontrar� el detalle de los errores que han sido corregidos autom�ticamente. \n\
+Es aconsejable comprobar esas correcciones, y tambi�n asegurarse de que la parametrizaci�n de los programas concernidos es correcta.
+
+UI.dialog.result.rename                               = Nombre de los resultados:
+UI.dialog.result.rename_title                         = Cambiando el nombre a un resultado
+UI.dialog.result.rename_failed_title                  = Error al cambiar el nombre del resultado
+UI.dialog.result.rename_failed                        = El resultado no pudo ser renombrado.
+UI.dialog.btn_cancel                                  = Cancelar
+UI.dialog.btn_ok                                      = OK
+UI.dialog.btn_apply                                   = Aplicar
+UI.dialog.btn.overwrite                               = Reemplazar
+UI.dialog.btn_open                                    = Abrir
+UI.dialog.select_results.btn_display                  = Mostrar
+UI.dialog.select_results.header                       = Seleccionar los resultados para mostrar:\n\
+
+UI.dialog.select_results.title                        = Resultados de {0}
+UI.dialog.results.title                               = Resultados
+UI.dialog.splash.img_path                             = datos/cliente/im�genes/splash.jpg
+UI.dialog.splash.init_msg                             = Inicializando�
+
+UI.dialog.change_language                             = �Por favor reinicialice el programa para que el cambio de idioma sea efectivo!
+UI.dialog.change_language_title                       = Cambiar el idioma del programa
+
+UI.menu.display                                       = Mostrar
+UI.menu.edit                                          = Editar
+UI.menu.execution                                     = Ejecuci�n
+UI.menu.file                                          = Fichero
+UI.menu.help_about                                    = ?
+UI.menu.prefs                                         = Preferencias
+UI.menu.workflow                                      = Diagrama de flujo
+UI.menu.workspace                                     = Espacio de trabajo
+UI.menu_items.about                                   = Sobre...
+UI.menu_items.about_tt                                = Sobre el programa
+UI.menu_items.check_valid_links                       = Comprobar que los enlaces son v�lidos
+UI.menu_items.check_valid_links_tt                    = Activar/Desactivar la funci�n autom�tica que comprueba que dos elementos de un diagrama de flujo (programas, ficheros o bases de datos) son compatibles cuando intenta unir uno con otro
+UI.menu_items.open_all_results                        = Abrir todos los ficheros de resultados autom�ticamente
+UI.menu_items.open_all_results_tt                     = Abrir todos los ficheros autom�ticamente cuando se muestra un resultado
+UI.menu_items.options                                 = Opciones...
+UI.menu_items.options_tt                              = Opciones
+UI.menu_items.connect                                 = Conectar
+UI.menu_items.connect_tt                              = Conectar con el servidor
+UI.menu_items.copy                                    = Copiar
+UI.menu_items.copy_tt                                 = Copiar el(los) objeto(s) seleccionado(s) en el portapapeles
+UI.menu_items.delete                                  = Borrar
+UI.menu_items.delete_tt                               = Borrar el(los) objeto(s) seleccionado(s)
+UI.menu_items.disconnect                              = Desconectar
+UI.menu_items.disconnect_tt                           = Desconectar del servidor
+UI.menu_items.edit_rename                             = Cambiar el nombre...
+UI.menu_items.edit_rename_tt                          = Cambiar el nombre del elemento seleccionado
+UI.menu_items.exit                                    = Salir
+UI.menu_items.exit_tt                                 = Salir de la aplicaci�n
+UI.menu_items.help                                    = Ayuda
+UI.menu_items.help_tt                                 = Ayuda
+UI.menu_items.paste                                   = Pegar
+UI.menu_items.paste_tt                                = Pegar el contenido del portapapeles en el diagrama de flujo actual
+UI.menu_items.properties                              = Propiedades�
+UI.menu_items.properties_tt                           = Modificar las propiedades del objeto seleccionado
+UI.menu_items.wf_delete                               = Borrar el diagrama de flujo
+UI.menu_items.wf_delete_tt                            = Borrar el diagrama de flujo actual
+UI.menu_items.result_delete                           = Borrar este resultado
+UI.menu_items.result_delete_tt                        = Borrar el resultado seleccionado
+UI.menu_items.result_rename_tt                        = Cambiar el nombre�
+UI.menu_items.result_rename                           = Cambiar el nombre de este resultado
+UI.menu_items.all_results_delete                      = Borrar todos los resultados
+UI.menu_items.all_results_delete_tt                   = Borrar todos los resultados de este diagrama de flujo
+UI.menu_items.wf_exec_stop                            = Parar
+UI.menu_items.wf_exec_stop_tt                         = Parar la ejecuci�n
+UI.menu_items.wf_execute                              = Ejecutar
+UI.menu_items.wf_execute_tt                           = Ejecutar el diagrama de flujo actual
+UI.menu_items.wf_import                               = Importar�
+UI.menu_items.wf_import_tt                            = Importar en el espacio de trabajo actual un diagrama de flujo grabado en otra parte
+UI.menu_items.wf_rename                               = Cambiar el nombre�
+UI.menu_items.wf_rename_tt                            = Cambiar el nombre del diagrama de flujo actual
+UI.menu_items.wf_results                              = Resultados
+UI.menu_items.wf_results_tt                           = Mostrar los resultados del diagrama de flujo
+UI.menu_items.show_statusbar                          = Barra de estado
+UI.menu_items.show_statusbar_tt                       = Mostrar/ocultar la barra de estado
+UI.menu_items.show_toolbar                            = Barra de herramientas
+UI.menu_items.show_toolbar_tt                         = Mostrar/ocultar la barra de herramientas
+
+UI.menu_items.create_file                             = Crear el fichero
+UI.menu_items.open_with                               = Abrir con�
+UI.menu_items.display_file_action                     = Mostrar el fichero
+UI.menu_items.display_file_action_tt                  = Mostrar el contenido del fichero seleccionado
+UI.menu_items.anti_aliasing                           = Antialiasing
+UI.menu_items.anti_aliasing_tt                        = Usar o no antialiasing
+UI.menu_items.show_grid                               = Mostar cuadr�cula
+UI.menu_items.show_grid_tt                            = Mostrar/ocultar la cuadr�cula sobre el editor de gr�ficos
+UI.menu_items.snap_to_grid                            = Encajar en la cuadr�cula
+UI.menu_items.snap_to_grid_tt                         = Encajar los elementos en la cuadr�cula
+UI.menu_items.grid_size                               = Tama�o de la cuadr�cula
+UI.menu_items.grid_size_tt                            = Modificar el tama�o de la cuadr�cula
+UI.menu_items.grid_size_small                         = Peque�o
+UI.menu_items.grid_size_medium                        = Medio
+UI.menu_items.grid_size_large                         = Grande
+UI.menu_items.arrow_style                             = Estilo de flecha
+UI.menu_items.arrow_style_orthogonal                  = Ortogonal
+UI.menu_items.arrow_style_straigh                     = Recto
+UI.menu_items.save_as_image                           = Guardar como imagen�
+UI.menu_items.save_as_image_tt                        = Guardar el diagrama de flujo como imagen PNG
+UI.menu_items.ws_close                                = Cerrar
+UI.menu_items.ws_close_tt                             = Cerrar el espacio de trabajo actual
+UI.menu_items.ws_delete                               = Borrar
+UI.menu_items.ws_delete_tt                            = Borrar el espacio de trabajo actual, incluyendo todos sus diagramas de flujo
+UI.menu_items.ws_new                                  = Nuevo
+UI.menu_items.ws_new_tt                               = Crear un nuevo espacio de trabajo
+UI.menu_items.ws_open                                 = Abrir
+UI.menu_items.ws_open_tt                              = Abrir un espacio de trabajo existente
+UI.menu_items.ws_rename                               = Cambiar el nombre�
+UI.menu_items.ws_rename_tt                            = Cambiar el nombre del espacio de trabajo actual
+UI.menu_items.ws_save                                 = Guardar
+UI.menu_items.ws_save_tt                              = Guardar todos los diagramas de flujo en el espacio de trabajo actual
+UI.menu_items.ws_save_as                              = Guardar como�
+UI.menu_items.ws_save_as_tt                           = Guardar el espacio de trabajo actual (�incluyendo todos los diagramas de flujo!) en otro espacio de trabajo
+
+UI.menu_items.License                                 = Licencia�
+UI.menu_items.OtherLicenses                           = Licencias de terceros�
+UI.menu_items.changes                                 = Cambios�
+
+UI.menu_items.languages                               = Ajustes de idioma� (Language settings�)
+# value                                               = language (translated language)
+UI.menu_items.language.fr                             = Fran�ais (Franc�s)
+UI.menu_items.language.el                             = Greek (Greek)
+UI.menu_items.language.en                             = English (Ingl�s)
+UI.menu_items.language.es                             = Espa�ol
+
+UI.progtree.database                                  = Base de datos
+UI.progtree.datasource                                = Inputs
+UI.progtree.file                                      = Fichero(s)
+UI.progtree.directory                                 = Directorio
+UI.progtree.programs                                  = Programas
+UI.results.info_title                                 = Informaciones
+UI.results.info_unimplemented                         = No hay informaci�n adicional sobre este fichero
+UI.results.input_files_popup_menu                     = Ficheros de entrada de datos
+UI.results.file_truncated                             = Este fichero de resultados es demasiado grande para mostrarse en esta vista: solo podr� ver el comienzo de �l.\n\
+Para verlo en su totalidad, seleccione uno de los visores externos disponibles.
+UI.results.viewers.launch_failed                      = El visor externo seleccionado no se puede abrir
+UI.results.viewers.load_failed                        = El visor externo seleccionado no se puede abrir
+UI.status_msg.connect                                 = Conectando con el servidor�
+UI.status_msg.logging                                 = Enviando credenciales�
+
+UI.tab.close                                          = Cerrar esta pesta�a
+
+UI.label.search                                     = Buscar:
+UI.label.service_unknown                            = Este recurso es desconocido: no se puede usar
+UI.label.invalid_program_description                = La descripci�n de este programa no es v�lida, no se puede usar
+
+UI.view.opened_workflows                            = Diagramas de flujo abiertos
+UI.view.resources                                   = Programas
+
+common.application_name                   =
+common.close                              = Cerrar
+common.dialog.detailed_error.hide_details = Ocultar detalles <<<
+common.dialog.detailed_error.show_details = Mostar detalles >>>
+common.error                              = Error
+common.no                                 = No
+common.yes                                = S�
+common.warning                            = Atenci�n
+common.client_out_of_date                 = Este cliente est� desactualizado: \n�por favor descargue un nuevo cliente!
+common.client_out_of_date_title           = Cliente desactualizado
+common.cnx_rejected.invalid_credentials            = No se puede conectar con el servidor:\ncredenciales no v�lidas.
+common.cnx_rejected.invalid_credentials_title      = Error en la connexi�n
+common.cnx_rejected.client_already_connected       = No se puede conectar con el servidor:\neste usuario ya est� conectado.
+common.cnx_rejected.client_already_connected_title = Error en la connexi�n
+common.cnx_rejected.client_login_disabled          = El servidor no admite conexi�nes en este momento, por favor int�ntelo de nuevo m�s tarde.
+common.cnx_rejected.client_login_disabled_title    = Error en la connexi�n
+common.cnx_rejected.client_login_disabled_w_reason = El servidor no admite conexi�nes en este momento\n{0}
+common.cnx_rejected.client_login_disabled_w_reason_title = Error en la connexi�n
+common.cnx_rejected.maximum_number_of_clients       = Conexi�n rechazada: el servidor no puede aceptar m�s conexiones\nPor favor int�ntelo de nuevo m�s tarde\n\nDisculpe los problemas ocasionados.
+common.cnx_rejected.maximum_number_of_clients_title = Conexi�n rechazada
+
+wf.xmlwarnings.prg_desc_does_not_exists   = El diagrama de flujo us� un programa llamado ''{0}'' que ya no est� disponible.
+wf.xmlwarnings.prg_desc_replace_by_alternative = El diagrama de flujo us� un programa llamado ''{0}'' que ya no est� disponible.\n\
+Ha sido reemplazado con el programa ''{1}''.\n\
+Es posible que esta versi�n no sea totalmente compatible con la antigua; si es necesario, se mostrar�n las advertencias a continuaci�n \ para dar detalles completos de estas posibles incompatibilidades
+wf.xmlwarnings.prg_declares_invalid_param = El programa ''{0}'' us� un par�metro denominado ''{1}'' que ya no est� disponible \
+(el valor de este par�metro era: ''{2}'').
+wf.xmlwarnings.prg_param_has_invalid_value = El programa ''{0}'' declar� un valor no v�lido para el par�metro ''{1}''. Este valor \
+era ''{2}'' y ya no es v�lido: el valor del par�metro se restableci� al valor por defecto ''{3}''.
+wf.xmlwarnings.prg_has_invalid_link        = El programa ''{0}'' fue unido a un resultado del programa �{1}� (la salida se identific� como ''{2}'') pero el enlace no es v�lido \
+(otro ''{1}'' ya no es un programa v�lido en el diagrama de flujo, o su salida correspondiente ya no es v�lida).\n\ El enlace entre dos programas no se ha podido restaurar.
+wf.xmlwarnings.prg_link_is_inactive        = La salida ''{1}'' del programa ''{0}'' y del input ''{3}'' del programa ''{2}'' \
+estaban unidos, pero al menos uno de ellos no est� activado en la actual parametrizaci�n de esos dos programas.\n\
+El enlace entre los dos programas no podr� ser restaurado.
+wf.xmlwarnings.prg_contains_useless_parameter = Info: el programa ''{0}'' declara un par�metro ''{1}'' (el tipo del param.''s es ''{2}''): \
+se ha ignorado este par�metro (Nota: este mensaje es puramente informativo, se puede ignorar de forma segura)
+
+eu.telecom_bretagne.praxis.core.execution.Result.Status.UNSET     = Desestablecer
+eu.telecom_bretagne.praxis.core.execution.Result.Status.SUBMITTED = Presentado
+eu.telecom_bretagne.praxis.core.execution.Result.Status.RUNNING   = Ejecuci�n en progreso
+eu.telecom_bretagne.praxis.core.execution.Result.Status.OK        = OK
+eu.telecom_bretagne.praxis.core.execution.Result.Status.WARNING   = OK, con advertencias
+eu.telecom_bretagne.praxis.core.execution.Result.Status.ERROR     = Error
+eu.telecom_bretagne.praxis.core.execution.Result.Status.CANCELLED = Cancelado
+eu.telecom_bretagne.praxis.licence=
+eu.telecom_bretagne.praxis.included_libs_licences=
+
+project.licence=
diff --git a/data/i18n/original/praxis_es.author b/data/i18n/original/praxis_es.author
new file mode 100644
index 0000000000000000000000000000000000000000..f43593e7c8beffdb51fbbeef258c21161bc5836b
--- /dev/null
+++ b/data/i18n/original/praxis_es.author
@@ -0,0 +1 @@
+Maria de Vicente y Oliva & Jaime Manera Bassa <translators@diviz.org>
diff --git a/data/i18n/original/praxis_es.encoding.windows-1252 b/data/i18n/original/praxis_es.encoding.windows-1252
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/data/i18n/original/praxis_fr b/data/i18n/original/praxis_fr
new file mode 100644
index 0000000000000000000000000000000000000000..4014552faab92e8ab5faca92ba6754e0f79195e9
--- /dev/null
+++ b/data/i18n/original/praxis_fr
@@ -0,0 +1,379 @@
+# -*- coding: utf-8 -*-
+UI.OptionsDialog.title                     = Options
+
+UI.TabbedPane.close                        = Fermer l''onglet
+UI.TabbedPane.close_others                 = Fermer les autres onglets
+UI.TabbedPane.close_all                    = Fermer tous les onglets
+UI.TabbedPane.results                      = Tous les résultats...
+
+UI.actions.display_preferences.error                  = Une erreur est survenue lors de la création du panneau de préférence.
+UI.actions.execute_wf.confirm                         = Êtes-vous sûr de vouloir exécuter le workflow {0}?
+UI.actions.execute_wf.error                           = L''exécution du workflow a échoué
+UI.actions.execute_wf.title                           = Confirmation de l''exécution d''un workflow
+UI.actions.execute_wf.invalid_workflow                = Impossible d''exécuter le workflow: veuillez vérifier que toutes les entrées sont connectées, et que chaque programme a un paramètrage valide.
+UI.actions.finished_exec.msg                          = L''exécution du workflow {0} s''est terminée avec succès
+UI.actions.finished_exec_with_errors.msg              = L''exécution du workflow {0} est terminée: une erreur s''est produite
+UI.actions.finished_exec_with_warnings.msg            = L''exécution du workflow {0} est terminée, avec des avertissements: voir le détail dans les résultats
+UI.actions.finished_exec.title                        = Fin de l''exécution d''un workflow
+UI.actions.wf_close                                   = Fermer
+UI.actions.wf_close_tt                                = Fermer le workflow courant
+UI.actions.wf_close_all                               = Tout fermer
+UI.actions.wf_close_all_tt                            = Fermer tous les workflows
+UI.actions.wf_close_others                            = Fermer les autres
+UI.actions.wf_close_others_tt                         = Fermer les autres workflows
+UI.actions.wf_export                                  = Exporter sans les fichiers d''entrées......
+UI.actions.wf_export_tt                               = Exporter un workflow
+UI.actions.wf_export_with_infiles                     = Exporter avec les fichiers d''entrées...
+UI.actions.wf_export_with_infiles_tt                  = Exporter un workflow avec tous ses fichiers d''entrées, dans un fichier zip
+UI.actions.wf_import                                  = Importer...
+UI.actions.wf_import_as_new                           = Importer dans un nouveau workflow...
+UI.actions.wf_import_as_new_tt                        = Importer un workflow dans un nouveau workflow
+UI.actions.wf_import_tt                               = Importer un workflow dans le workflow courant
+UI.actions.wf_new                                     = Nouveau
+UI.actions.wf_new_tt                                  = Créer un nouveau workflow
+UI.actions.wf_open                                    = Ouvrir...
+UI.actions.wf_open_tt                                 = Ouvrir un workflow existant
+UI.actions.wf_open_err_no_workflow                    = <html>Aucun workflow n''a encore été créé !<br/>\
+Pour en créer un nouveau: menu <b>Workflow</b> puis <b>Nouveau</b></br>
+UI.actions.wf_open_err_all_workflows_already_opened   = Tous les workflows existants sont déjà ouverts !
+UI.actions.wf_save                                    = Sauvegarder
+UI.actions.wf_save_as                                 = Sauvegarder sous...
+UI.actions.wf_save_as_tt                              = Sauvegarder sous...
+UI.actions.wf_save_tt                                 = Sauvegarder le workflow courant
+UI.actions.show_results.connect_err                   = Impossible de récupérer la liste des résultats
+UI.actions.show_results.connect_err.title             = Erreur de connexion
+UI.actions.show_results.empty                         = Aucun résultat n''est disponible pour ce workflow
+UI.actions.show_results.empty.title                   = Visualisation des résultats
+UI.actions.stop_exec.error                            = Erreur: l''exécution n''a pas pu être arrêtée
+UI.actions.valid_links_confirm                        = Êtes-vous certain(e) de vouloir désactiver la vérification automatique de la validité des liens entre programmes?
+UI.actions.create_file_error                          = Impossible de créer le fichier {0}
+UI.actions.create_existing_file_error                 = Impossible de créer le fichier {0}: il existe déjà
+UI.actions.zoom_in                                    = Zoom avant
+UI.actions.zoom_in_tt                                 = Dessine le workflow en plus grand pour mieux en distinguer les détails
+UI.actions.zoom_original                              = Zoom 1:1
+UI.actions.zoom_original_tt                           = Rétablit le facteur de zoom par défaut
+UI.actions.zoom_out                                   = Zoom arrière
+UI.actions.zoom_out_tt                                = Dessine un workflow plus petit pour en voir une portion plus large
+UI.annotation.for_workflow                            = Annotation du workflow ''{0}''
+UI.annotation.for_program                             = Annotation du programme: ''{0}''
+UI.ctrlwf.run.file_does_not_exist                     = Le fichier {0} n''existe pas
+UI.ctrlwf.run.file_unreadable                         = Impossible de lire le fichier {0}
+UI.ctrlwf.run.zip_failed                              = Impossible d''exécuter le workflow: une erreur inattendue est survenue lors de la préparation de l''exécution\n\
+\n\
+Détail:\n\
+{0}\n\
+
+UI.ctrlwf.run.zip_failed_missing_file                 = Impossible d''exécuter le workflow: au moins un des fichiers utilisés n''existe pas !\n\
+\n\
+Détail:\n\
+{0}\n\
+
+UI.datasource.unset_path                              = <not set>
+
+UI.dialog.about                                       = À propos...
+UI.dialog.about_content                               = <html>\
+  {0}\
+  <div>\
+  <hr>\
+  <i>Élaboré avec Praxis - Version {1} ({2})<br>\
+     &copy; Institut Mines Télécom - IMT Atlantique Bretagne-Pays de la Loire 2002-2018<br>\
+     Tous droits réservés.</i><br>\
+     <small>Build: {3}</small>\
+  <hr>\
+  </div>\
+</html>
+UI.dialog.about_msg                                   =
+UI.dialog.connection.connect_to_server                = Établir la connexion au serveur :
+UI.dialog.connection.enter_login_passwd               = Veuillez saisir votre identifiant et votre mot de passe
+UI.dialog.connection.login                            = Nom d''utilisateur :
+UI.dialog.connection.passwd                           = Mot de passe :
+UI.dialog.connection.server                           = Serveur (hôte:port) :
+UI.dialog.connection.title                            = Ouverture de l''application...
+UI.dialog.connection_failure                          = Impossible de se connecter au serveur, veuillez réessayer ultérieurement
+UI.dialog.connection_failure_title                    = Échec de la connexion
+UI.dialog.datasource_inputs.add                       = Ajouter
+UI.dialog.datasource_inputs.delete                    = Supprimer
+UI.dialog.datasource_inputs.file                      = Fichiers
+UI.dialog.datasource_inputs.title                     = Propriétés
+UI.dialog.default_filesource_displayname              = Fichier
+UI.dialog.default_directorysource_displayname         = Répertoire
+UI.dialog.disconnect_confirm                          = Souhaitez-vous vous déconnecter du serveur ?
+UI.dialog.disconnect_confirm_title                    = Déconnexion du serveur
+UI.dialog.error                                       = Erreur !
+UI.dialog.file_chooser.title                          = Ajout de fichiers
+UI.dialog.file.overwrite                              = Le fichier existe déjà: l''écraser?
+UI.dialog.help.title                                  = Aide
+UI.dialog.help.not_available                          = Aucune aide disponible pour le moment
+UI.dialog.image.save.failed_title                     = Échec de l''enregistrement
+UI.dialog.image.save.failed                           = L''image n''a pas pu être sauvegardée: une erreur est survenue
+UI.dialog.import.label_wf                             = Workflow
+UI.dialog.import.label_ws                             = Espace de travail
+UI.dialog.import.msg_wf                               = Quel workflow voulez-vous importer?
+UI.dialog.import.title                                = Import
+UI.dialog.save_as.title                               = Sauvegarder sous
+UI.dialog.rename.title                                = Renommer
+UI.dialog.logging_err_msg                             = Impossible de se connecter: utilisateur/mot de passe incorrects
+UI.dialog.login_mandatory                             = Vous devez au moins fournir un nom d''utilisateur !
+UI.dialog.open.label_wf                               = Sélectionner un workflow à ouvrir:\n\
+\n\
+
+UI.dialog.open.label_ws                               = Sélectionner l''espace de travail à ouvrir:\n\
+\n\
+
+UI.dialog.open.title                                  = Ouverture
+UI.dialog.datasource.rename_title                     = Renommage de la source de données
+UI.dialog.datasource.rename                           = Veuillez entrer le nom de cet élément:
+UI.dialog.datasource.incorrect_name_title             = Nom incorrect
+UI.dialog.datasource.incorrect_name                   = Les caractères :, ?, /, \\, <, >, \" et | ne sont pas autorisés
+UI.dialog.datasource.name_already_exists              = Il existe déjà une entrée portant ce nom. Veuillez en choisir un autre.
+UI.dialog.prg_properties.descr_window_title           = Description de: {0}
+UI.dialog.prg_properties.main_label                   = Description de: {0}  (cliquer pour l''afficher)
+UI.dialog.prg_properties.parameters                   = Paramètres :
+UI.dialog.prg_properties.parameters_default           = (et leur valeur par défaut)
+UI.dialog.prg_properties.title                        = Propriétés de programme
+UI.dialog.quit                                        = Quitter
+UI.dialog.quit_and_disconnect_msg                     = \n\
+Voulez-vous quitter l''application?\n\
+
+UI.dialog.quit_msg                                    = Voulez-vous quitter l''application?
+UI.dialog.save_ws.btn_none                            = Aucun
+UI.dialog.save_ws.btn_ok                              = OK
+UI.dialog.save_ws.msg                                 = Sélectionner les workflows à sauvegarder :
+UI.dialog.save_ws.title                               = Sauvegarde de {0}
+UI.dialog.wf.already_opened                           = Ce workflow est déjà ouvert !
+UI.dialog.wf.close_confirm                            = Voulez-vous sauvegarder le workflow "{0}" avant de le fermer?
+UI.dialog.wf.close_title                              = Fermeture d''un workflow
+UI.dialog.wf.enter_name                               = Choisir un nom pour le workflow:
+UI.dialog.wf.creation_failed_ws_not_selected          = Veuillez créer ou sélectionner un espace de travail avant de créer un workflow
+UI.dialog.wf.creation_failure_title                   = Erreur lors de la création d''un workflow
+UI.dialog.wf.creation_title                           = Création d''un workflow
+UI.dialog.wf.delete_result_confirm_title              = Effacement d''un résultat
+UI.dialog.wf.delete_result_confirm                    = Êtes-vous sûr(e) de vouloir effacer définitivement ce résultat ?
+UI.dialog.wf.delete_all_results_confirm_title         = Effacement de tous les résultats
+UI.dialog.wf.delete_all_results_confirm               = Êtes-vous sûr(e) de vouloir effacer définitivement tous les résultats de ce workflow ?
+UI.dialog.wf.delete                                   = Suppression du workflow en cours
+UI.dialog.wf.delete_confirm                           = \n\
+Êtes-vous certain(e) de vouloir définitivement effacer ce workflow?\n\
+\n\
+Cet opération supprimera définitivement l''ensemble de ses résultats.\n\
+
+UI.dialog.wf.existing_names                           = Les workflows déjà existants sont:
+UI.dialog.wf.export_title                             = Export d''un workflow
+UI.dialog.wf.export_failed                            = Échec de l''export
+UI.dialog.wf.import_cannot_extract                    = Impossible d''extraire les fichiers
+UI.dialog.wf.import_cannot_create_dir                 = Impossible de créer le répertoire choisi. Vérifiez que vous avez les droits suffisants.
+UI.dialog.wf.import_cannot_read_zip                   = Impossible de lire le fichier zip
+UI.dialog.wf.import_create_dir                        = Le répertoire choisi n''existe pas. Voulez-vous le créer?
+UI.dialog.wf.import_drop_file_in_dir                  = Déposer les fichiers d''entré dans ce répertoire
+UI.dialog.wf.import_failure                           = Une erreur inattendue s''est produite lors de l''importation du workflow
+UI.dialog.wf.import_failure_title                     = Échec de l''importation d''un workflow
+UI.dialog.wf.import_impossible_coz_execution          = Impossible d''importer le workflow: une exécution est en cours
+UI.dialog.wf.import_invalid_archive                   = Archive invalide
+UI.dialog.wf.import_not_a_dir                         = "{0}" n''est pas un répertoire. Veuillez sélectionner un répertoire.
+UI.dialog.wf.invalid_name_empty                       = Le nom ne peut pas être vide!
+UI.dialog.wf.invalid_name_already_exists              = Un autre workflow a déjà ce nom!
+UI.dialog.wf.open_failed_no_workflow                  = Impossible d''ouvrir un workflow: aucun n''est disponible !
+UI.dialog.wf.open_failed_xml_not_conform_to_DTD       = Impossible d''ouvrir le workflow: le xml n''est pas conforme à la DTD
+UI.dialog.wf.open_failure                             = Une erreur inattendue s''est produite lors de l''ouverture du workflow
+UI.dialog.wf.rename_save_before_confirm               = Le workflow a été modifié et doit être sauvegardé avant d''être renommé.\n\
+Souhaitez-vous le faire maintenant?
+UI.dialog.wf.open_failure_title                       = Échec de l''ouverture d''un workflow
+UI.dialog.wf.open_select_workflows                    = Sélectionnez le(s) workflow(s) à ouvrir:
+UI.dialog.wf.rename_failure_title                     = Échec du renommage d''un workflow
+UI.dialog.wf.rename_impossible                        = Échec du renommage (raison inconnue).\n\
+Cause d''échec possible: les fichiers correspondants sont peut-être ouverts dans un autre outil.
+UI.dialog.wf.rename_impossible_coz_execution          = Impossible de renommer le workflow: une exécution est en cours
+UI.dialog.wf.rename_title                             = Renommage de {0}
+UI.dialog.wf.save_title                               = Sauvegarde d''un workflow
+UI.dialog.wf.save_failed                              = Impossible de sauvegarder le workflow
+UI.dialog.wf.delete_title                             = Suppression du workflow {0}
+UI.dialog.wf.delete_confirm_msg                       = Êtes-vous sûr(e) de vouloir supprimer le workflow {0}?
+UI.dialog.wf.delete_confirm_msg_with_results          = Êtes-vous sûr(e) de vouloir supprimer le workflow {0}?\n\
+Ce workflow a déjà été exécuté; l''effacer entraînera également la suppression de tous les résultats correspondants.
+UI.dialog.wf.warnings_title                           = Le workflow nécessite des vérifications
+UI.dialog.wf.warnings                                 = Attention: en chargeant le workflow, des incohérences ont été \
+trouvées dans le paramétrage de certains programmes.\n\
+Vous trouverez ci-dessous le détail des erreurs qui ont été automatiquement corrigées. \n\
+Nous vous conseillons de vérifier ces corrections et de vous assurer par ailleurs que le paramétrage des programmes mis en cause est correct.
+
+UI.dialog.result.rename                               = Nom du résultat :
+UI.dialog.result.rename_title                         = Renommage du résultat
+UI.dialog.result.rename_failed_title                  = Échec du renommage d''un résultat
+UI.dialog.result.rename_failed                        = Le renommage du résultat a échoué
+UI.dialog.btn_cancel                                  = Annuler
+UI.dialog.btn_ok                                      = OK
+UI.dialog.btn_apply                                   = Appliquer
+UI.dialog.btn.overwrite                               = Écraser
+UI.dialog.btn_open                                    = Ouvrir
+UI.dialog.select_results.btn_display                  = Afficher
+UI.dialog.select_results.header                       = Quels résultats souhaitez-vous visualiser?\n\
+
+UI.dialog.select_results.title                        = Résultats de: {0}
+UI.dialog.results.title                               = Résultats
+UI.dialog.splash.img_path                             = data/client/images/splash.jpg
+UI.dialog.splash.init_msg                             = Initialisation...
+
+UI.dialog.change_language                             = Vous devez redémarrer le logiciel pour que le changement de langue prenne pleinement effet!
+UI.dialog.change_language_title                       = Modification de la langue du logiciel
+
+UI.menu.display                                       = Affichage
+UI.menu.edit                                          = Édition
+UI.menu.execution                                     = Exécution
+UI.menu.file                                          = Fichier
+UI.menu.help_about                                    = ?
+UI.menu.prefs                                         = Préférences
+UI.menu.workflow                                      = Workflow
+UI.menu.workspace                                     = Espace de travail
+UI.menu_items.about                                   = À propos...
+UI.menu_items.about_tt                                = Informations sur le logiciel
+UI.menu_items.check_valid_links                       = Vérifier la validité des liens
+UI.menu_items.check_valid_links_tt                    = Permet d''activer ou de désactiver la procédure automatique qui contrôle que deux éléments d''un workflow (programmes, fichiers ou bases de données) sont compatibles lorsque l''on cherche à les enchaîner l''un à la suite de l''autre.
+UI.menu_items.open_all_results                        = Ouvrir immédiatement tous les fichiers résultat
+UI.menu_items.open_all_results_tt                     = Ouvre automatiquement tous les fichiers lorsqu''un résultat est sélectionné
+UI.menu_items.options                                 = Options...
+UI.menu_items.options_tt                              = Options du logiciel
+UI.menu_items.connect                                 = Connexion
+UI.menu_items.connect_tt                              = Connexion au serveur
+UI.menu_items.copy                                    = Copier
+UI.menu_items.copy_tt                                 = Copie le ou les objets sélectionné(s) dans le presse-papier
+UI.menu_items.delete                                  = Supprimer
+UI.menu_items.delete_tt                               = Supprime le ou les objet(s) sélectionné(s)
+UI.menu_items.disconnect                              = Déconnexion
+UI.menu_items.disconnect_tt                           = Déconnexion du serveur
+UI.menu_items.edit_rename                             = Renommer...
+UI.menu_items.edit_rename_tt                          = Permet de renommer l''objet sélectionné
+UI.menu_items.exit                                    = Quitter
+UI.menu_items.exit_tt                                 = Quitte l''application
+UI.menu_items.help                                    = Aide
+UI.menu_items.help_tt                                 = Aide
+UI.menu_items.paste                                   = Coller
+UI.menu_items.paste_tt                                = Colle le contenu du presse-papier dans le workflow en cours
+UI.menu_items.properties                              = Propriétés...
+UI.menu_items.properties_tt                           = Modifie les propriétés de l''objet sélectionné
+UI.menu_items.wf_delete                               = Supprimer le workflow
+UI.menu_items.wf_delete_tt                            = Supprime le workflow actuel
+UI.menu_items.result_delete                           = Supprimer ce résultat
+UI.menu_items.result_delete_tt                        = Supprime le résultat sélectionné
+UI.menu_items.result_rename_tt                        = Renommer...
+UI.menu_items.result_rename                           = Renommer ce résultat
+UI.menu_items.all_results_delete                      = Supprimer tous les résultats
+UI.menu_items.all_results_delete_tt                   = Supprime tous les résultats pour ce workflow
+UI.menu_items.wf_exec_stop                            = Interrompre
+UI.menu_items.wf_exec_stop_tt                         = Interrompt l''exécution en cours
+UI.menu_items.wf_execute                              = Exécuter
+UI.menu_items.wf_execute_tt                           = Exécute le workflow actuel
+UI.menu_items.wf_rename                               = Renommer...
+UI.menu_items.wf_rename_tt                            = Renomme le workflow actuel
+UI.menu_items.wf_results                              = Résultats
+UI.menu_items.wf_results_tt                           = Afficher les résultats du workflow
+UI.menu_items.show_statusbar                          = Barre de statut
+UI.menu_items.show_statusbar_tt                       = Affiche/cache la barre de statut
+UI.menu_items.show_toolbar                            = Barre d''outils
+UI.menu_items.show_toolbar_tt                         = Affiche/cache la barre d''outils
+
+UI.menu_items.create_file                             = Créer le fichier
+UI.menu_items.open_with                               = Ouvrir avec...
+UI.menu_items.display_file_action                     = Voir le contenu
+UI.menu_items.display_file_action_tt                  = Voir le contenu du fichier sélectionné
+UI.menu_items.anti_aliasing                           = Antialiasing
+UI.menu_items.anti_aliasing_tt                        = Utiliser ou non l''antialiasing
+UI.menu_items.show_grid                               = Voir la grille
+UI.menu_items.show_grid_tt                            = Afficher/masquer la grille dans l''éditeur de graphe
+UI.menu_items.snap_to_grid                            = Aligner sur la grille
+UI.menu_items.snap_to_grid_tt                         = Aligner les éléments graphiques sur la grille
+UI.menu_items.grid_size                               = Talle de la grille
+UI.menu_items.grid_size_tt                            = Modifier la taille de la grille
+UI.menu_items.grid_size_small                         = Petite
+UI.menu_items.grid_size_medium                        = Moyenne
+UI.menu_items.grid_size_large                         = Grande
+UI.menu_items.arrow_style                             = Style des liens
+UI.menu_items.arrow_style_orthogonal                  = Orthogonal
+UI.menu_items.arrow_style_straigh                     = Droit
+UI.menu_items.save_as_image                           = Sauver au format image...
+UI.menu_items.save_as_image_tt                        = Sauver le workflow au format image PNG
+
+UI.menu_items.License                                 = Licence...
+UI.menu_items.OtherLicenses                           = Licences des programmes tiers...
+UI.menu_items.changes                                 = Modifications...
+
+UI.menu_items.languages                               = Changer la langue... (Language settings…)
+# value                                               = language (translated language)
+UI.menu_items.language.fr                             = Français
+UI.menu_items.language.en                             = English (Anglais)
+UI.menu_items.language.el                             = Ελληνικά (Grec)
+UI.menu_items.language.es                             = Español (Espagnol)
+
+UI.progtree.database                                  = Base de données
+UI.progtree.datasource                                = Entrées
+UI.progtree.file                                      = Fichier(s)
+UI.progtree.directory                                 = Répertoire
+UI.progtree.programs                                  = Programmes
+UI.results.info_title                                 = Informations
+UI.results.info_unimplemented                         = Aucune information supplémentaire n''est disponible sur ce fichier
+UI.results.input_files_popup_menu                     = Fichiers d''entrée
+UI.results.file_truncated                             = Ce fichier de résultat est trop volumineux pour être affiché dans cette fenêtre: seul le début est affiché.\n\
+Pour le visualiser en entier, sélectionnez un des visualisateurs externes disponibles.
+UI.results.viewers.launch_failed                      = Impossible de lancer le visualisateur externe sélectionné
+UI.results.viewers.load_failed                        = Impossible de charger le visualisateur externe
+UI.status_msg.connect                                 = Connexion au serveur...
+UI.status_msg.logging                                 = Authentification...
+
+UI.tab.close                                          = Ferme cet onglet
+
+UI.label.search                                       = Recherche:
+UI.label.service_unknown                              = Cette ressource est inconnue: elle ne peut pas être utilisée
+UI.label.invalid_program_description                  = La description de ce programme n''est pas valide, il ne peut être utilisé
+
+UI.view.opened_workflows                              = Workflows ouverts
+UI.view.resources                                     = Programmes
+
+common.application_name                   =
+common.close                              = Fermer
+common.dialog.detailed_error.hide_details = Cacher les détails <<<
+common.dialog.detailed_error.show_details = Plus de détails >>>
+common.error                              = Erreur
+common.no                                 = Non
+common.yes                                = Oui
+common.warning                            = Attention
+common.client_out_of_date                 = Ce client n''est plus à jour:\nveuillez s''il vous plait télécharger une nouvelle version!
+common.client_out_of_date_title           = Mise à jour du client
+common.cnx_rejected.invalid_credentials            = Impossible de se connecter au serveur:\nlogin/mot de passe invalides.
+common.cnx_rejected.invalid_credentials_title      = Échec de la connexion
+common.cnx_rejected.client_already_connected       = Impossible de se connecter au serveur:\ncet utilisateur est déjà connecté.
+common.cnx_rejected.client_already_connected_title = Échec de la connexion
+common.cnx_rejected.client_login_disabled          = Les connexions au serveur ne sont pas autorisées pour le moment, veuillez réessayer ultérieurement.
+common.cnx_rejected.client_login_disabled_title    = Échec de la connexion
+common.cnx_rejected.client_login_disabled_w_reason = Les connexions au serveur ne sont pas autorisées pour le moment\n{0}
+common.cnx_rejected.client_login_disabled_w_reason_title = Échec de la connexion
+common.cnx_rejected.maximum_number_of_clients       = Connexion refusée: le serveur ne peut plus accepter de nouvelles sessions\n Merci de réessayer un peu plus tard\n\nVeuillez nous excuser pour la gêne occasionnée.
+common.cnx_rejected.maximum_number_of_clients_title = Connection refusée
+
+wf.xmlwarnings.prg_desc_does_not_exists   = Le workflow utilisait un programme nommé ''{0}'', qui n''est plus disponible.
+wf.xmlwarnings.prg_desc_replace_by_alternative = Le workflow utilisait un programme nommé ''{0}'', qui n''est plus disponible.\n\
+Il a été remplacé par le programme ''{1}''.\n\
+Il est possible que cette version ne soit pas compatible complètement avec l''ancienne; la présence d''avertissements ci-après \
+vous donnera, si besoin, les détails sur ces incompatibilités.
+wf.xmlwarnings.prg_declares_invalid_param = Le programme ''{0}'' utilisait un paramètre ''{1}'' qui n''est plus valide \
+(la valeur pour ce paramètre était: ''{2}'').
+wf.xmlwarnings.prg_param_has_invalid_value = Le programme ''{0}'' déclarait une valeur invalide pour le paramètre ''{1}''. \
+Cette valeur était ''{2}''; la valeur du paramètre a été réinitialisée à la valeur par défaut: ''{3}''.
+wf.xmlwarnings.prg_has_invalid_link        = Le programme ''{0}'' était relié à une sortie du programme ''{1}'' (sortie identifiée comme: ''{2}'') mais ce lien \
+n''est plus valide (soit ''{1}'' n''est plus un programme valide, soit cette sortie n''est plus valide).\n\
+Le lien entre les deux programmes n''a pas pu être rétabli.
+wf.xmlwarnings.prg_link_is_inactive        = La sortie ''{1}'' du programme ''{0}'' et l''entrée ''{3}'' du programme ''{2}'' \
+ étaient liés l''un à l''autre, mais l''un et/ou l''autre de ces entrées/sorties n''est plus actif dans la configuration actuelle des programmes.\n\
+Le lien entre les deux programmes n''a pas pu être rétabli.
+wf.xmlwarnings.prg_contains_useless_parameter = Info: le programme ''{0}'' déclare un paramètre ''{1}'' (de type ''{2}''): \
+ce paramètre est ignoré (Note: ce message est pour information seulement, vous pouvez l''ignorer)
+
+eu.telecom_bretagne.praxis.core.execution.Result.Status.UNSET     = Non disponible
+eu.telecom_bretagne.praxis.core.execution.Result.Status.SUBMITTED = Soumis
+eu.telecom_bretagne.praxis.core.execution.Result.Status.RUNNING   = En cours d''exécution
+eu.telecom_bretagne.praxis.core.execution.Result.Status.OK        = OK
+eu.telecom_bretagne.praxis.core.execution.Result.Status.WARNING   = OK, avec avertissements
+eu.telecom_bretagne.praxis.core.execution.Result.Status.ERROR     = Erreur
+eu.telecom_bretagne.praxis.core.execution.Result.Status.CANCELLED = Annulé
+eu.telecom_bretagne.praxis.licence=
+eu.telecom_bretagne.praxis.included_libs_licences=
+
+project.licence=
diff --git a/data/i18n/original/praxis_fr.author b/data/i18n/original/praxis_fr.author
new file mode 100644
index 0000000000000000000000000000000000000000..6c96f60094fa92ed6d3616bd74ea651c2cf587be
--- /dev/null
+++ b/data/i18n/original/praxis_fr.author
@@ -0,0 +1 @@
+Sébastien Bigaret <sebastien.bigaret@telecom-bretagne.eu>
diff --git a/data/i18n/original/praxis_fr.encoding.utf-8 b/data/i18n/original/praxis_fr.encoding.utf-8
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/data/i18n/po/praxis.pot b/data/i18n/po/praxis.pot
new file mode 100644
index 0000000000000000000000000000000000000000..92de1073b6f8262bbf33f7b4c52ca4d643866692
--- /dev/null
+++ b/data/i18n/po/praxis.pot
@@ -0,0 +1,1384 @@
+#: UI.OptionsDialog.title
+msgctxt "UI.OptionsDialog.title"
+msgid "Options"
+msgstr ""
+
+#: UI.TabbedPane.close
+msgctxt "UI.TabbedPane.close"
+msgid "Close"
+msgstr ""
+
+#: UI.TabbedPane.close_others
+msgid "Close Others"
+msgstr ""
+
+#: UI.TabbedPane.close_all
+msgid "Close All"
+msgstr ""
+
+#: UI.TabbedPane.results
+msgid "All Results..."
+msgstr ""
+
+#: UI.actions.display_preferences.error
+msgid "An error happened when building the preferences panel"
+msgstr ""
+
+#: UI.actions.execute_wf.confirm
+msgid "Are you sure you want to execute the workflow {0}?"
+msgstr ""
+
+#: UI.actions.execute_wf.error
+msgid "Execution of the workflow failed"
+msgstr ""
+
+#: UI.actions.execute_wf.title
+msgid "Confirmation of the execution of a workflow"
+msgstr ""
+
+#: UI.actions.execute_wf.invalid_workflow
+msgid ""
+"Cannot execute an invalid workflow, please check the programs'' parameters "
+"and that all inputs are connected."
+msgstr ""
+
+#: UI.actions.finished_exec.msg
+msgid "The workflow {0} has successfully been executed"
+msgstr ""
+
+#: UI.actions.finished_exec_with_errors.msg
+msgid "The execution of {0} is finished: an error occurred"
+msgstr ""
+
+#: UI.actions.finished_exec_with_warnings.msg
+msgid ""
+"The execution of {0} is finished; there were some warnings, check the "
+"results for details"
+msgstr ""
+
+#: UI.actions.finished_exec.title
+msgid "End of execution"
+msgstr ""
+
+#: UI.actions.wf_close
+msgctxt "UI.actions.wf_close"
+msgid "Close"
+msgstr ""
+
+#: UI.actions.wf_close_tt
+msgid "Close current workflow"
+msgstr ""
+
+#: UI.actions.wf_close_all
+msgid "Close all"
+msgstr ""
+
+#: UI.actions.wf_close_all_tt
+msgid "Close all workflows"
+msgstr ""
+
+#: UI.actions.wf_close_others
+msgid "Close others"
+msgstr ""
+
+#: UI.actions.wf_close_others_tt
+msgid "Close other workflows"
+msgstr ""
+
+#: UI.actions.wf_export
+msgid "Export without input files..."
+msgstr ""
+
+#: UI.actions.wf_export_tt
+msgid "Export a workflow"
+msgstr ""
+
+#: UI.actions.wf_export_with_infiles
+msgid "Export with input files..."
+msgstr ""
+
+#: UI.actions.wf_export_with_infiles_tt
+msgid "Export a workflow and all its input files, in a zip file"
+msgstr ""
+
+#: UI.actions.wf_import
+msgid "Import..."
+msgstr ""
+
+#: UI.actions.wf_import_as_new
+msgid "Import as new..."
+msgstr ""
+
+#: UI.actions.wf_import_as_new_tt
+msgid "Import a workflow as a new workflow"
+msgstr ""
+
+#: UI.actions.wf_import_tt
+msgid "Import a workflow into the currently selected one"
+msgstr ""
+
+#: UI.actions.wf_new
+msgid "New"
+msgstr ""
+
+#: UI.actions.wf_new_tt
+msgid "Create a new workflow"
+msgstr ""
+
+#: UI.actions.wf_open
+msgid "Open..."
+msgstr ""
+
+#: UI.actions.wf_open_tt
+msgid "Open an existing workflow"
+msgstr ""
+
+#: UI.actions.wf_open_err_no_workflow
+msgid ""
+"<html>There isn''t any existing workflows yet!<br/>To create a new workflow, "
+"use the menu \"Workflow\" and select \"New\"</html>"
+msgstr ""
+
+#: UI.actions.wf_open_err_all_workflows_already_opened
+msgid "All existing workflows are already opened!"
+msgstr ""
+
+#: UI.actions.wf_save
+msgid "Save"
+msgstr ""
+
+#: UI.actions.wf_save_as
+msgctxt "UI.actions.wf_save_as"
+msgid "Save as..."
+msgstr ""
+
+#: UI.actions.wf_save_as_tt
+msgctxt "UI.actions.wf_save_as_tt"
+msgid "Save as..."
+msgstr ""
+
+#: UI.actions.wf_save_tt
+msgid "Save the current workflow"
+msgstr ""
+
+#: UI.actions.show_results.connect_err
+msgid "Results couldn''t be retrieved"
+msgstr ""
+
+#: UI.actions.show_results.connect_err.title
+msgid "Connection error"
+msgstr ""
+
+#: UI.actions.show_results.empty
+msgid "No result available for this workflow"
+msgstr ""
+
+#: UI.actions.show_results.empty.title
+msgctxt "UI.actions.show_results.empty.title"
+msgid "Results"
+msgstr ""
+
+#: UI.actions.stop_exec.error
+msgid "Error: execution couldn''t be stopped"
+msgstr ""
+
+#: UI.actions.valid_links_confirm
+msgid ""
+"Are you sure you want to deactivate the automatic checking of validity of "
+"links between programs?"
+msgstr ""
+
+#: UI.actions.create_file_error
+msgid "Cannot create file {0}"
+msgstr ""
+
+#: UI.actions.create_existing_file_error
+msgid "Cannot create file {0}: it already exists"
+msgstr ""
+
+#: UI.actions.zoom_in
+msgid "Zoom In"
+msgstr ""
+
+#: UI.actions.zoom_in_tt
+msgid "Draws a bigger workflow to better distinguish the details"
+msgstr ""
+
+#: UI.actions.zoom_original
+msgid "Zoom 1:1"
+msgstr ""
+
+#: UI.actions.zoom_original_tt
+msgid "Restores the default zoom factor"
+msgstr ""
+
+#: UI.actions.zoom_out
+msgid "Zoom Out"
+msgstr ""
+
+#: UI.actions.zoom_out_tt
+msgid "Draws a smaller workflow to show a larger part of it"
+msgstr ""
+
+#: UI.annotation.for_workflow
+msgid "Annotation for workflow ''{0}''"
+msgstr ""
+
+#: UI.annotation.for_program
+msgid "Annotation for program: ''{0}''"
+msgstr ""
+
+#: UI.ctrlwf.run.file_does_not_exist
+msgid "File {0} does not exist"
+msgstr ""
+
+#: UI.ctrlwf.run.file_unreadable
+msgid "File {0} cannot be read"
+msgstr ""
+
+#: UI.ctrlwf.run.zip_failed
+msgid ""
+"Failed to execute the workflow: an unexpected error happened while preparing "
+"execution\n"
+"\n"
+"Details:\n"
+"{0}\n"
+msgstr ""
+
+#: UI.ctrlwf.run.zip_failed_missing_file
+msgid ""
+"Failed to execute the workflow: at least one input file does not exist!\n"
+"\n"
+"Detail:\n"
+"{0}\n"
+msgstr ""
+
+#: UI.datasource.unset_path
+msgid "<not set>"
+msgstr ""
+
+#: UI.dialog.about
+msgctxt "UI.dialog.about"
+msgid "About..."
+msgstr ""
+
+#: UI.dialog.about_content
+msgid ""
+"<html>{3}<hr><i>Powered by Praxis - Version {0} - date: {2}<br>Copyright "
+"Institut Mines Telecom - IMT Atlantique Bretagne Pays de la Loire "
+"2002-2018<br>All rights reserved</i></html>"
+msgstr ""
+
+#: UI.dialog.about_msg
+msgctxt "UI.dialog.about_msg"
+msgid ""
+msgstr ""
+
+#: UI.dialog.connection.connect_to_server
+msgid "Enable connection to the server:"
+msgstr ""
+
+#: UI.dialog.connection.enter_login_passwd
+msgid "Please enter your login and your password"
+msgstr ""
+
+#: UI.dialog.connection.login
+msgid "Login:"
+msgstr ""
+
+#: UI.dialog.connection.passwd
+msgid "Password:"
+msgstr ""
+
+#: UI.dialog.connection.server
+msgid "Server (host:port):"
+msgstr ""
+
+#: UI.dialog.connection.title
+msgid "Application starting..."
+msgstr ""
+
+#: UI.dialog.connection_failure
+msgid "Failed to connect to the server, please retry later"
+msgstr ""
+
+#: UI.dialog.connection_failure_title
+msgid "Connection failure"
+msgstr ""
+
+#: UI.dialog.datasource_inputs.add
+msgid "Add"
+msgstr ""
+
+#: UI.dialog.datasource_inputs.delete
+msgctxt "UI.dialog.datasource_inputs.delete"
+msgid "Delete"
+msgstr ""
+
+#: UI.dialog.datasource_inputs.file
+msgid "Files"
+msgstr ""
+
+#: UI.dialog.datasource_inputs.title
+msgid "Datasource properties"
+msgstr ""
+
+#: UI.dialog.default_filesource_displayname
+msgctxt "UI.dialog.default_filesource_displayname"
+msgid "File"
+msgstr ""
+
+#: UI.dialog.default_directorysource_displayname
+msgctxt "UI.dialog.default_directorysource_displayname"
+msgid "Directory"
+msgstr ""
+
+#: UI.dialog.disconnect_confirm
+msgid "Do you want to disconnect from the server?"
+msgstr ""
+
+#: UI.dialog.disconnect_confirm_title
+msgid "Disconnecting from the server"
+msgstr ""
+
+#: UI.dialog.error
+msgid "Error!"
+msgstr ""
+
+#: UI.dialog.file_chooser.title
+msgid "Add files"
+msgstr ""
+
+#: UI.dialog.file.overwrite
+msgid "File already exists: overwrite?"
+msgstr ""
+
+#: UI.dialog.help.title
+msgctxt "UI.dialog.help.title"
+msgid "Help"
+msgstr ""
+
+#: UI.dialog.help.not_available
+msgid "No help available for the moment"
+msgstr ""
+
+#: UI.dialog.image.save.failed_title
+msgid "Failed to save file"
+msgstr ""
+
+#: UI.dialog.image.save.failed
+msgid "The image could not be saved: an error occurred"
+msgstr ""
+
+#: UI.dialog.import.label_wf
+msgctxt "UI.dialog.import.label_wf"
+msgid "Workflow"
+msgstr ""
+
+#: UI.dialog.import.label_ws
+msgctxt "UI.dialog.import.label_ws"
+msgid "Workspace"
+msgstr ""
+
+#: UI.dialog.import.msg_wf
+msgid "Which workflow do you want to import?"
+msgstr ""
+
+#: UI.dialog.import.title
+msgid "Import"
+msgstr ""
+
+#: UI.dialog.save_as.title
+msgid "Save as"
+msgstr ""
+
+#: UI.dialog.rename.title
+msgid "Rename"
+msgstr ""
+
+#: UI.dialog.logging_err_msg
+msgid "Unable to connect: incorrect login/password"
+msgstr ""
+
+#: UI.dialog.login_mandatory
+msgid "You must supply a login name!"
+msgstr ""
+
+#: UI.dialog.open.label_wf
+msgid ""
+"Select the workflow for opening:\n"
+"\n"
+msgstr ""
+
+#: UI.dialog.open.label_ws
+msgid ""
+"Select the workspace for opening:\n"
+"\n"
+msgstr ""
+
+#: UI.dialog.open.title
+msgctxt "UI.dialog.open.title"
+msgid "Open"
+msgstr ""
+
+#: UI.dialog.datasource.rename_title
+msgid "Rename data source"
+msgstr ""
+
+#: UI.dialog.datasource.rename
+msgid "Please enter the name of this element:"
+msgstr ""
+
+#: UI.dialog.datasource.incorrect_name_title
+msgid "Incorrect name"
+msgstr ""
+
+#: UI.dialog.datasource.incorrect_name
+msgid "Characters :, ?, /, \\, <, >, \" and | are not allowed"
+msgstr ""
+
+#: UI.dialog.datasource.name_already_exists
+msgid "An other element has the same name, please choose another one."
+msgstr ""
+
+#: UI.dialog.prg_properties.descr_window_title
+msgid "Description of {0}"
+msgstr ""
+
+#: UI.dialog.prg_properties.main_label
+msgid "Description of {0}  (click to see)"
+msgstr ""
+
+#: UI.dialog.prg_properties.parameters
+msgid "Parameters:"
+msgstr ""
+
+#: UI.dialog.prg_properties.parameters_default
+msgid "(and their default value)"
+msgstr ""
+
+#: UI.dialog.prg_properties.title
+msgid "Program properties"
+msgstr ""
+
+#: UI.dialog.quit
+msgid "Quit"
+msgstr ""
+
+#: UI.dialog.quit_and_disconnect_msg
+msgid ""
+"\n"
+"Do you want to quit?\n"
+msgstr ""
+
+#: UI.dialog.quit_msg
+msgid "Do you want to close the application?"
+msgstr ""
+
+#: UI.dialog.save_ws.btn_none
+msgid "None"
+msgstr ""
+
+#: UI.dialog.save_ws.btn_ok
+msgctxt "UI.dialog.save_ws.btn_ok"
+msgid "OK"
+msgstr ""
+
+#: UI.dialog.save_ws.msg
+msgid "Select the workflow for saving :"
+msgstr ""
+
+#: UI.dialog.save_ws.title
+msgid "Saving {0}"
+msgstr ""
+
+#: UI.dialog.wf.already_opened
+msgid "This workflow is already opened!"
+msgstr ""
+
+#: UI.dialog.wf.close_confirm
+msgid "Should the workflow \"{0}\" be saved before it is closed?"
+msgstr ""
+
+#: UI.dialog.wf.close_title
+msgid "Closing a workflow"
+msgstr ""
+
+#: UI.dialog.wf.enter_name
+msgid "Choose a name for the workflow:"
+msgstr ""
+
+#: UI.dialog.wf.creation_failed_ws_not_selected
+msgid ""
+"Before creating a workflow, please create or select the workspace to which "
+"the new workflow belongs"
+msgstr ""
+
+#: UI.dialog.wf.creation_failure_title
+msgid "Failed to create a workflow"
+msgstr ""
+
+#: UI.dialog.wf.creation_title
+msgid "New workflow"
+msgstr ""
+
+#: UI.dialog.wf.delete_result_confirm_title
+msgid "Delete result"
+msgstr ""
+
+#: UI.dialog.wf.delete_result_confirm
+msgid "Are you sure you want to definitively delete this result?"
+msgstr ""
+
+#: UI.dialog.wf.delete_all_results_confirm_title
+msgctxt "UI.dialog.wf.delete_all_results_confirm_title"
+msgid "Delete all results"
+msgstr ""
+
+#: UI.dialog.wf.delete_all_results_confirm
+msgid "Are you sure you want to definitively delete all these results?"
+msgstr ""
+
+#: UI.dialog.wf.delete
+msgctxt "UI.dialog.wf.delete"
+msgid "Delete the current workflow"
+msgstr ""
+
+#: UI.dialog.wf.delete_confirm
+msgid ""
+"\n"
+"Are you sure you want to definitively delete this workflow?\n"
+"\n"
+"Deleting the workflow will also permanently delete its results.\n"
+msgstr ""
+
+#: UI.dialog.wf.existing_names
+msgid "Already defined workflows are:"
+msgstr ""
+
+#: UI.dialog.wf.export_title
+msgid "Exporting a workflow"
+msgstr ""
+
+#: UI.dialog.wf.export_failed
+msgid "Failed to export the workflow"
+msgstr ""
+
+#: UI.dialog.wf.import_cannot_extract
+msgid "Unable to extract the files"
+msgstr ""
+
+#: UI.dialog.wf.import_cannot_create_dir
+msgid ""
+"The chosen directory could not be created. Please check that you have the "
+"sufficient rights to do it."
+msgstr ""
+
+#: UI.dialog.wf.import_cannot_read_zip
+msgid "Unable to read the zip file"
+msgstr ""
+
+#: UI.dialog.wf.import_create_dir
+msgid "The directory you choose does not exist, should we create it?"
+msgstr ""
+
+#: UI.dialog.wf.import_drop_file_in_dir
+msgid "Drop input files in this directory"
+msgstr ""
+
+#: UI.dialog.wf.import_failure
+msgid "An unexpected error occured while importing the workflow"
+msgstr ""
+
+#: UI.dialog.wf.import_failure_title
+msgid "Failed to import a workflow"
+msgstr ""
+
+#: UI.dialog.wf.import_impossible_coz_execution
+msgid "A workflow cannot be imported while an execution in progress"
+msgstr ""
+
+#: UI.dialog.wf.import_invalid_archive
+msgid "Invalid archive"
+msgstr ""
+
+#: UI.dialog.wf.import_not_a_dir
+msgid "\"{0}\" is not a directory. Please select a directory."
+msgstr ""
+
+#: UI.dialog.wf.invalid_name_empty
+msgid "Invalid empty name!"
+msgstr ""
+
+#: UI.dialog.wf.invalid_name_already_exists
+msgid "An other workflow with that name already exists!"
+msgstr ""
+
+#: UI.dialog.wf.open_failed_no_workflow
+msgid "Cannot open any workflow: none found"
+msgstr ""
+
+#: UI.dialog.wf.open_failed_xml_not_conform_to_DTD
+msgid "Failed to open the workflow: the xml file does not conform to the DTD"
+msgstr ""
+
+#: UI.dialog.wf.open_failure
+msgid "An unexpected error occured while opening the workflow"
+msgstr ""
+
+#: UI.dialog.wf.rename_save_before_confirm
+msgid ""
+"The workflow has been modified and needs to be saved before it is renamed.\n"
+"Do you want to save it now?"
+msgstr ""
+
+#: UI.dialog.wf.open_failure_title
+msgid "Failed to open a workflow"
+msgstr ""
+
+#: UI.dialog.wf.open_select_workflows
+msgid "Select the workflow(s) to be opened:"
+msgstr ""
+
+#: UI.dialog.wf.rename_failure_title
+msgid "Failed to rename a workflow"
+msgstr ""
+
+#: UI.dialog.wf.rename_impossible
+msgid ""
+"Failed to rename the workflow (unknown reason).\n"
+"One possible reason could be that the corresponding files are currently "
+"opened in another tool."
+msgstr ""
+
+#: UI.dialog.wf.rename_impossible_coz_execution
+msgid "A workflow cannot be renamed while an execution in progress"
+msgstr ""
+
+#: UI.dialog.wf.rename_title
+msgid "Renaming {0}"
+msgstr ""
+
+#: UI.dialog.wf.save_title
+msgid "Saving a workflow"
+msgstr ""
+
+#: UI.dialog.wf.save_failed
+msgid "Could not save the workflow"
+msgstr ""
+
+#: UI.dialog.wf.delete_title
+msgid "Deleting workflow {0}"
+msgstr ""
+
+#: UI.dialog.wf.delete_confirm_msg
+msgid "Are you sure you want to delete workflow {0}?"
+msgstr ""
+
+#: UI.dialog.wf.delete_confirm_msg_with_results
+msgid ""
+"Are you sure you want to delete workflow {0}?\n"
+"This workflow has already been executed; deleting it will also delete all "
+"the corresponding results."
+msgstr ""
+
+#: UI.dialog.wf.warnings_title
+msgid "Workflow requires checkings"
+msgstr ""
+
+#: UI.dialog.wf.warnings
+msgid ""
+"Warning: when loading the workflow, some inconsistencies in the parametering "
+"of some programs were detected. \n"
+"You will find below the detail of the errors that have been automatically "
+"corrected. \n"
+"It is advisable to check these corrections, and also to make sure that the "
+"parametering of the concerned programs is correct."
+msgstr ""
+
+#: UI.dialog.result.rename
+msgid "Name of the result:"
+msgstr ""
+
+#: UI.dialog.result.rename_title
+msgid "Renaming a result"
+msgstr ""
+
+#: UI.dialog.result.rename_failed_title
+msgid "Failed to rename the result"
+msgstr ""
+
+#: UI.dialog.result.rename_failed
+msgid "The result could not be renamed."
+msgstr ""
+
+#: UI.dialog.btn_cancel
+msgid "Cancel"
+msgstr ""
+
+#: UI.dialog.btn_ok
+msgctxt "UI.dialog.btn_ok"
+msgid "OK"
+msgstr ""
+
+#: UI.dialog.btn_apply
+msgid "Apply"
+msgstr ""
+
+#: UI.dialog.btn.overwrite
+msgid "Overwrite"
+msgstr ""
+
+#: UI.dialog.btn_open
+msgctxt "UI.dialog.btn_open"
+msgid "Open"
+msgstr ""
+
+#: UI.dialog.select_results.btn_display
+msgctxt "UI.dialog.select_results.btn_display"
+msgid "Display"
+msgstr ""
+
+#: UI.dialog.select_results.header
+msgid "Select the results to display:\n"
+msgstr ""
+
+#: UI.dialog.select_results.title
+msgid "Results of {0}"
+msgstr ""
+
+#: UI.dialog.results.title
+msgctxt "UI.dialog.results.title"
+msgid "Results"
+msgstr ""
+
+#: UI.dialog.splash.img_path
+msgid "data/client/images/splash.jpg"
+msgstr ""
+
+#: UI.dialog.splash.init_msg
+msgid "Initializing..."
+msgstr ""
+
+#: UI.dialog.change_language
+msgid "Please restart the software for the language change to take full effect!"
+msgstr ""
+
+#: UI.dialog.change_language_title
+msgid "Change the software language"
+msgstr ""
+
+#: UI.menu.display
+msgctxt "UI.menu.display"
+msgid "Display"
+msgstr ""
+
+#: UI.menu.edit
+msgid "Edit"
+msgstr ""
+
+#: UI.menu.execution
+msgid "Execution"
+msgstr ""
+
+#: UI.menu.file
+msgctxt "UI.menu.file"
+msgid "File"
+msgstr ""
+
+#: UI.menu.help_about
+msgid "?"
+msgstr ""
+
+#: UI.menu.prefs
+msgid "Preferences"
+msgstr ""
+
+#: UI.menu.workflow
+msgctxt "UI.menu.workflow"
+msgid "Workflow"
+msgstr ""
+
+#: UI.menu.workspace
+msgctxt "UI.menu.workspace"
+msgid "Workspace"
+msgstr ""
+
+#: UI.menu_items.about
+msgctxt "UI.menu_items.about"
+msgid "About..."
+msgstr ""
+
+#: UI.menu_items.about_tt
+msgid "About the software"
+msgstr ""
+
+#: UI.menu_items.check_valid_links
+msgid "Check that links are valid"
+msgstr ""
+
+#: UI.menu_items.check_valid_links_tt
+msgid ""
+"Activate/deactivate the automatic feature which checks that two elements of "
+"a workflow (programs, files or databases) are compatible when you try to "
+"link one with another"
+msgstr ""
+
+#: UI.menu_items.open_all_results
+msgid "Open all results'' files automatically"
+msgstr ""
+
+#: UI.menu_items.open_all_results_tt
+msgid "Open all files automatically when a result is displayed"
+msgstr ""
+
+#: UI.menu_items.options
+msgid "Options..."
+msgstr ""
+
+#: UI.menu_items.options_tt
+msgctxt "UI.menu_items.options_tt"
+msgid "Options"
+msgstr ""
+
+#: UI.menu_items.connect
+msgid "Connect"
+msgstr ""
+
+#: UI.menu_items.connect_tt
+msgid "Connect to server"
+msgstr ""
+
+#: UI.menu_items.copy
+msgid "Copy"
+msgstr ""
+
+#: UI.menu_items.copy_tt
+msgid "Copy the selected object(s) into the clipboard"
+msgstr ""
+
+#: UI.menu_items.delete
+msgctxt "UI.menu_items.delete"
+msgid "Delete"
+msgstr ""
+
+#: UI.menu_items.delete_tt
+msgid "Delete the selected object(s)"
+msgstr ""
+
+#: UI.menu_items.disconnect
+msgid "Disconnect"
+msgstr ""
+
+#: UI.menu_items.disconnect_tt
+msgid "Disconnect from server"
+msgstr ""
+
+#: UI.menu_items.edit_rename
+msgctxt "UI.menu_items.edit_rename"
+msgid "Rename..."
+msgstr ""
+
+#: UI.menu_items.edit_rename_tt
+msgid "Rename the selected element"
+msgstr ""
+
+#: UI.menu_items.exit
+msgid "Exit"
+msgstr ""
+
+#: UI.menu_items.exit_tt
+msgid "Exits the application"
+msgstr ""
+
+#: UI.menu_items.help
+msgctxt "UI.menu_items.help"
+msgid "Help"
+msgstr ""
+
+#: UI.menu_items.help_tt
+msgctxt "UI.menu_items.help_tt"
+msgid "Help"
+msgstr ""
+
+#: UI.menu_items.paste
+msgid "Paste"
+msgstr ""
+
+#: UI.menu_items.paste_tt
+msgid "Paste the clipboard''s content into the current workflow"
+msgstr ""
+
+#: UI.menu_items.properties
+msgid "Properties..."
+msgstr ""
+
+#: UI.menu_items.properties_tt
+msgid "Modify the selected object''s properties"
+msgstr ""
+
+#: UI.menu_items.wf_delete
+msgid "Delete workflow"
+msgstr ""
+
+#: UI.menu_items.wf_delete_tt
+msgctxt "UI.menu_items.wf_delete_tt"
+msgid "Delete the current workflow"
+msgstr ""
+
+#: UI.menu_items.result_delete
+msgid "Delete this result"
+msgstr ""
+
+#: UI.menu_items.result_delete_tt
+msgid "Delete the selected result"
+msgstr ""
+
+#: UI.menu_items.result_rename_tt
+msgctxt "UI.menu_items.result_rename_tt"
+msgid "Rename..."
+msgstr ""
+
+#: UI.menu_items.result_rename
+msgid "Rename this result"
+msgstr ""
+
+#: UI.menu_items.all_results_delete
+msgctxt "UI.menu_items.all_results_delete"
+msgid "Delete all results"
+msgstr ""
+
+#: UI.menu_items.all_results_delete_tt
+msgid "Delete all results for this workflow"
+msgstr ""
+
+#: UI.menu_items.wf_exec_stop
+msgid "Stop"
+msgstr ""
+
+#: UI.menu_items.wf_exec_stop_tt
+msgid "Stop the execution"
+msgstr ""
+
+#: UI.menu_items.wf_execute
+msgid "Run"
+msgstr ""
+
+#: UI.menu_items.wf_execute_tt
+msgid "Execute the current workflow"
+msgstr ""
+
+#: UI.menu_items.wf_rename
+msgctxt "UI.menu_items.wf_rename"
+msgid "Rename..."
+msgstr ""
+
+#: UI.menu_items.wf_rename_tt
+msgid "Rename the current workflow"
+msgstr ""
+
+#: UI.menu_items.wf_results
+msgctxt "UI.menu_items.wf_results"
+msgid "Results"
+msgstr ""
+
+#: UI.menu_items.wf_results_tt
+msgid "Show the workflow''s results"
+msgstr ""
+
+#: UI.menu_items.show_statusbar
+msgid "Status bar"
+msgstr ""
+
+#: UI.menu_items.show_statusbar_tt
+msgid "Show/hide the status bar"
+msgstr ""
+
+#: UI.menu_items.show_toolbar
+msgid "Toolbar"
+msgstr ""
+
+#: UI.menu_items.show_toolbar_tt
+msgid "Show/hide the toolbar"
+msgstr ""
+
+#: UI.menu_items.create_file
+msgid "Create the file"
+msgstr ""
+
+#: UI.menu_items.open_with
+msgid "Open with..."
+msgstr ""
+
+#: UI.menu_items.display_file_action
+msgid "Display file"
+msgstr ""
+
+#: UI.menu_items.display_file_action_tt
+msgid "Display the content of the selected file"
+msgstr ""
+
+#: UI.menu_items.anti_aliasing
+msgid "Antialiasing"
+msgstr ""
+
+#: UI.menu_items.anti_aliasing_tt
+msgid "Use or not antialiasing"
+msgstr ""
+
+#: UI.menu_items.show_grid
+msgid "Show Grid"
+msgstr ""
+
+#: UI.menu_items.show_grid_tt
+msgid "Show/hide the grid on the graph editor"
+msgstr ""
+
+#: UI.menu_items.snap_to_grid
+msgid "Snap to Grid"
+msgstr ""
+
+#: UI.menu_items.snap_to_grid_tt
+msgid "Snap the elements to the grid"
+msgstr ""
+
+#: UI.menu_items.grid_size
+msgid "Grid Size"
+msgstr ""
+
+#: UI.menu_items.grid_size_tt
+msgid "Modify the grid size"
+msgstr ""
+
+#: UI.menu_items.grid_size_small
+msgid "Small"
+msgstr ""
+
+#: UI.menu_items.grid_size_medium
+msgid "Medium"
+msgstr ""
+
+#: UI.menu_items.grid_size_large
+msgid "Large"
+msgstr ""
+
+#: UI.menu_items.arrow_style
+msgid "Arrow Style"
+msgstr ""
+
+#: UI.menu_items.arrow_style_orthogonal
+msgid "Orthogonal"
+msgstr ""
+
+#: UI.menu_items.arrow_style_straigh
+msgid "Straigh"
+msgstr ""
+
+#: UI.menu_items.save_as_image
+msgid "Save as Image..."
+msgstr ""
+
+#: UI.menu_items.save_as_image_tt
+msgid "Save the workflow as a PNG image"
+msgstr ""
+
+#: UI.menu_items.License
+msgid "License..."
+msgstr ""
+
+#: UI.menu_items.OtherLicenses
+msgid "Third-party Licenses..."
+msgstr ""
+
+#: UI.menu_items.changes
+msgid "Changes..."
+msgstr ""
+
+#: UI.menu_items.languages
+msgid "Language settings..."
+msgstr ""
+
+#: UI.menu_items.language.en
+msgid "English"
+msgstr ""
+
+#: UI.menu_items.language.fr
+msgid "Français"
+msgstr ""
+
+#: UI.progtree.database
+msgid "Database"
+msgstr ""
+
+#: UI.progtree.datasource
+msgid "Inputs"
+msgstr ""
+
+#: UI.progtree.file
+msgid "File(s)"
+msgstr ""
+
+#: UI.progtree.directory
+msgctxt "UI.progtree.directory"
+msgid "Directory"
+msgstr ""
+
+#: UI.progtree.programs
+msgctxt "UI.progtree.programs"
+msgid "Programs"
+msgstr ""
+
+#: UI.results.info_title
+msgid "Informations"
+msgstr ""
+
+#: UI.results.info_unimplemented
+msgid "There is no additional information on this file"
+msgstr ""
+
+#: UI.results.input_files_popup_menu
+msgid "Input files"
+msgstr ""
+
+#: UI.results.file_truncated
+msgid ""
+"This result file is too big to be displayed in this view: you only see the "
+"beginning of it.\n"
+"To view it in its entirety, select one of the available external viewers."
+msgstr ""
+
+#: UI.results.viewers.launch_failed
+msgid "The selected external viewer could not be launched"
+msgstr ""
+
+#: UI.results.viewers.load_failed
+msgid "The external viewer could not be loaded"
+msgstr ""
+
+#: UI.status_msg.connect
+msgid "Connecting to server..."
+msgstr ""
+
+#: UI.status_msg.logging
+msgid "Sending credentials..."
+msgstr ""
+
+#: UI.tab.close
+msgid "Close this tab"
+msgstr ""
+
+#: UI.label.search
+msgid "Search:"
+msgstr ""
+
+#: UI.label.service_unknown
+msgid "This resource is unknown: it cannot be used"
+msgstr ""
+
+#: UI.label.invalid_program_description
+msgid "The description of this program is invalid, it cannot be used"
+msgstr ""
+
+#: UI.view.opened_workflows
+msgid "Opened workflows"
+msgstr ""
+
+#: UI.view.resources
+msgctxt "UI.view.resources"
+msgid "Programs"
+msgstr ""
+
+#: common.application_name
+msgctxt "common.application_name"
+msgid ""
+msgstr ""
+
+#: common.close
+msgctxt "common.close"
+msgid "Close"
+msgstr ""
+
+#: common.dialog.detailed_error.hide_details
+msgid "Hide details <<<"
+msgstr ""
+
+#: common.dialog.detailed_error.show_details
+msgid "Show details >>>"
+msgstr ""
+
+#: common.error
+msgctxt "common.error"
+msgid "Error"
+msgstr ""
+
+#: common.no
+msgid "No"
+msgstr ""
+
+#: common.yes
+msgid "Yes"
+msgstr ""
+
+#: common.warning
+msgid "Warning"
+msgstr ""
+
+#: common.client_out_of_date
+msgid ""
+"This client is out-of-date:\n"
+"please download the new client!"
+msgstr ""
+
+#: common.client_out_of_date_title
+msgid "Client out-of-date"
+msgstr ""
+
+#: common.cnx_rejected.invalid_credentials
+msgid ""
+"Cannot connect to the server:\n"
+"invalid credentials."
+msgstr ""
+
+#: common.cnx_rejected.invalid_credentials_title
+msgctxt "common.cnx_rejected.invalid_credentials_title"
+msgid "Connection failed"
+msgstr ""
+
+#: common.cnx_rejected.client_already_connected
+msgid ""
+"Cannot connect to the server:\n"
+"this user is already connected."
+msgstr ""
+
+#: common.cnx_rejected.client_already_connected_title
+msgctxt "common.cnx_rejected.client_already_connected_title"
+msgid "Connection failed"
+msgstr ""
+
+#: common.cnx_rejected.client_login_disabled
+msgid "The server is currently refusing connections, please try again later."
+msgstr ""
+
+#: common.cnx_rejected.client_login_disabled_title
+msgctxt "common.cnx_rejected.client_login_disabled_title"
+msgid "Connection failed"
+msgstr ""
+
+#: common.cnx_rejected.client_login_disabled_w_reason
+msgid ""
+"The server is currently refusing connections\n"
+"{0}"
+msgstr ""
+
+#: common.cnx_rejected.client_login_disabled_w_reason_title
+msgctxt "common.cnx_rejected.client_login_disabled_w_reason_title"
+msgid "Connection failed"
+msgstr ""
+
+#: common.cnx_rejected.maximum_number_of_clients
+msgid ""
+"Connection refused: the server cannot accept more connections\n"
+"Please try again a moment later\n"
+"\n"
+"We apology for the inconvenience."
+msgstr ""
+
+#: common.cnx_rejected.maximum_number_of_clients_title
+msgid "Connection refused"
+msgstr ""
+
+#: wf.xmlwarnings.prg_desc_does_not_exists
+msgid ""
+"The workflow used a program named ''{0}'' which is not available anymore."
+msgstr ""
+
+#: wf.xmlwarnings.prg_desc_replace_by_alternative
+msgid ""
+"The workflow used a program named ''{0}'' which is not available anymore.\n"
+"It has been replaced with the programme ''{1}''.\n"
+"It is possible that this version is not fully compatible with the older one; "
+"if necessary, warnings will be displayed hereafter to give the full details "
+"on these possible incompatibilities."
+msgstr ""
+
+#: wf.xmlwarnings.prg_declares_invalid_param
+msgid ""
+"The program ''{0}'' used a parameter named ''{1}'' which is not valid "
+"anymore (the value for this parameter was: ''{2}'')."
+msgstr ""
+
+#: wf.xmlwarnings.prg_param_has_invalid_value
+msgid ""
+"The program ''{0}'' declared an invalid value for parameter ''{1}''. This "
+"value was ''{2}'' and it is not valid anymore: the parameter''s value was "
+"reset to the default value ''{3}''."
+msgstr ""
+
+#: wf.xmlwarnings.prg_has_invalid_link
+msgid ""
+"The program ''{0}'' was linked to an output of the program ''{1}'' (output "
+"identified as ''{2}'') but the link is invalid (either ''{1}'' is not longer "
+"a valid program in the workflow, or its corresponding output is not valid "
+"anymore).\n"
+"The link between the two programs could not be restored."
+msgstr ""
+
+#: wf.xmlwarnings.prg_link_is_inactive
+msgid ""
+"The output ''{1}'' of program ''{0}'' and the input ''{3}'' of program ''{2}"
+"'' were linked one to each other, but at least one of them is not activated "
+"in the current parametering of these two programs.\n"
+"The link between the two programs could not be restored."
+msgstr ""
+
+#: wf.xmlwarnings.prg_contains_useless_parameter
+msgid ""
+"Info: the program ''{0}'' declares a parameter ''{1}'' (param.''s type is "
+"''{2}''): this parameter is ignored (Note: this message is purely "
+"informational, it can be safely ignored)"
+msgstr ""
+
+#: eu.telecom_bretagne.praxis.core.execution.Result.Status.UNSET
+msgid "Unset"
+msgstr ""
+
+#: eu.telecom_bretagne.praxis.core.execution.Result.Status.SUBMITTED
+msgid "Submitted"
+msgstr ""
+
+#: eu.telecom_bretagne.praxis.core.execution.Result.Status.RUNNING
+msgid "Execution in progress"
+msgstr ""
+
+#: eu.telecom_bretagne.praxis.core.execution.Result.Status.OK
+msgctxt "eu.telecom_bretagne.praxis.core.execution.Result.Status.OK"
+msgid "OK"
+msgstr ""
+
+#: eu.telecom_bretagne.praxis.core.execution.Result.Status.WARNING
+msgid "OK, with warnings"
+msgstr ""
+
+#: eu.telecom_bretagne.praxis.core.execution.Result.Status.ERROR
+msgctxt "eu.telecom_bretagne.praxis.core.execution.Result.Status.ERROR"
+msgid "Error"
+msgstr ""
+
+#: eu.telecom_bretagne.praxis.core.execution.Result.Status.CANCELLED
+msgid "Cancelled"
+msgstr ""
+
+#: eu.telecom_bretagne.praxis.licence
+msgctxt "eu.telecom_bretagne.praxis.licence"
+msgid ""
+msgstr ""
+
+#: eu.telecom_bretagne.praxis.included_libs_licences
+msgctxt "eu.telecom_bretagne.praxis.included_libs_licences"
+msgid ""
+msgstr ""
+
+#: project.licence
+msgctxt "project.licence"
+msgid ""
+msgstr ""
diff --git a/data/i18n/po/praxis_el.po b/data/i18n/po/praxis_el.po
new file mode 100644
index 0000000000000000000000000000000000000000..e59fdcce0c63d1338174edb30ee8ec448f63d5b5
--- /dev/null
+++ b/data/i18n/po/praxis_el.po
@@ -0,0 +1,1495 @@
+#: UI.OptionsDialog.title
+msgctxt "UI.OptionsDialog.title"
+msgid "Options"
+msgstr "Επιλογές"
+
+#: UI.TabbedPane.close
+msgctxt "UI.TabbedPane.close"
+msgid "Close"
+msgstr "Κλείσιμο"
+
+#: UI.TabbedPane.close_others
+msgid "Close Others"
+msgstr "Κλείσιμο άλλων"
+
+#: UI.TabbedPane.close_all
+msgid "Close All"
+msgstr "Κλείσιμο όλων"
+
+#: UI.TabbedPane.results
+msgid "All Results..."
+msgstr "Όλα τα αποτελέσματα..."
+
+#: UI.actions.display_preferences.error
+msgid "An error happened when building the preferences panel"
+msgstr "Παρουσιάστηκε σφάλμα κατά τη δημιουργία του πίνακα προτιμήσεων"
+
+#: UI.actions.execute_wf.confirm
+msgid "Are you sure you want to execute the workflow {0}?"
+msgstr "Είστε βέβαιοι ότι θέλετε να εκτελέσετε τη ροή εργασιών {0}?"
+
+#: UI.actions.execute_wf.error
+msgid "Execution of the workflow failed"
+msgstr "Η εκτέλεση της ροής εργασιών απέτυχε"
+
+#: UI.actions.execute_wf.title
+msgid "Confirmation of the execution of a workflow"
+msgstr "Επιβεβαίωση εκτέλεσης της ροής εργασιών"
+
+#: UI.actions.execute_wf.invalid_workflow
+msgid ""
+"Cannot execute an invalid workflow, please check the programs'' parameters "
+"and that all inputs are connected."
+msgstr ""
+"Δεν είναι δυνατή η εκτέλεση μιας μη έγκυρης ροής εργασίών, ελέγξτε τις "
+"παραμέτρους των προγραμμάτων και συνδέστε όλα τα στοιχεία εισόδου."
+
+#: UI.actions.finished_exec.msg
+msgid "The workflow {0} has successfully been executed"
+msgstr "Η ροή εργασίας {0} έχει εκτελεστεί με επιτυχία"
+
+#: UI.actions.finished_exec_with_errors.msg
+msgid "The execution of {0} is finished: an error occurred"
+msgstr "Η εκτέλεση της {0} τελείωσε: παρουσιάστηκε σφάλμα"
+
+#: UI.actions.finished_exec_with_warnings.msg
+msgid ""
+"The execution of {0} is finished; there were some warnings, check the "
+"results for details"
+msgstr ""
+"Η εκτέλεση της {0} τελείωσε: υπήρχαν ορισμένες προειδοποιήσεις, ελέγξτε τα "
+"αποτελέσματα για λεπτομέρειες"
+
+#: UI.actions.finished_exec.title
+msgid "End of execution"
+msgstr "Τέλος εκτέλεσης"
+
+#: UI.actions.wf_close
+msgctxt "UI.actions.wf_close"
+msgid "Close"
+msgstr "Κλείσιμο"
+
+#: UI.actions.wf_close_tt
+msgid "Close current workflow"
+msgstr "Κλείσιμο τρέχουσας ροής εργασιών"
+
+#: UI.actions.wf_close_all
+msgid "Close all"
+msgstr "Κλείσιμο όλων"
+
+#: UI.actions.wf_close_all_tt
+msgid "Close all workflows"
+msgstr "Κλείσιμο όλων των ροών εργασιών"
+
+#: UI.actions.wf_close_others
+msgid "Close others"
+msgstr "Κλείσιμο άλλων"
+
+#: UI.actions.wf_close_others_tt
+msgid "Close other workflows"
+msgstr "Κλείσιμο άλλων ροών εργασιών"
+
+#: UI.actions.wf_export
+msgid "Export without input files..."
+msgstr "Εξαγωγή χωρίς αρχεία εισόδου..."
+
+#: UI.actions.wf_export_tt
+msgid "Export a workflow"
+msgstr "Εξαγωγή ροής εργασιών"
+
+#: UI.actions.wf_export_with_infiles
+msgid "Export with input files..."
+msgstr "Εξαγωγή με αρχεία εισόδου..."
+
+#: UI.actions.wf_export_with_infiles_tt
+msgid "Export a workflow and all its input files, in a zip file"
+msgstr "Εξαγωγή ροής εργασιών και όλων των αρχείων εισόδου σε αρχείο zip"
+
+#: UI.actions.wf_import
+msgid "Import..."
+msgstr "Εισαγωγή..."
+
+#: UI.actions.wf_import_as_new
+msgid "Import as new..."
+msgstr "Εισαγωγή ως νέα..."
+
+#: UI.actions.wf_import_as_new_tt
+msgid "Import a workflow as a new workflow"
+msgstr "Εισαγωγή μίας ροής εργασιών ως νέα ροή εργασιών"
+
+#: UI.actions.wf_import_tt
+msgid "Import a workflow into the currently selected one"
+msgstr "Εισαγάγετε μια ροή εργασίας στο τρέχον επιλεγμένο"
+
+#: UI.actions.wf_new
+msgid "New"
+msgstr "Νέα"
+
+#: UI.actions.wf_new_tt
+msgid "Create a new workflow"
+msgstr "Δημιουργία μίας νέας ροής εργασιών"
+
+#: UI.actions.wf_open
+msgid "Open..."
+msgstr "Άνοιγμα..."
+
+#: UI.actions.wf_open_tt
+msgid "Open an existing workflow"
+msgstr "Άνοιγμα μίας υπάρχουσας ροής εργασιών"
+
+#: UI.actions.wf_open_err_no_workflow
+msgid ""
+"<html>There isn''t any existing workflows yet!<br/>To create a new workflow, "
+"use the menu \"Workflow\" and select \"New\"</html>"
+msgstr ""
+"<html>Δεν υπάρχουν ακόμη υπάρχουσες ροές εργασιών!<br/>Για να δημιουργήσετε "
+"μια νέα ροή εργασιών, χρησιμοποιήστε το μενού \"Ροή εργασιών\" και επιλέξτε "
+"\"Νέα\"</html>"
+
+#: UI.actions.wf_open_err_all_workflows_already_opened
+msgid "All existing workflows are already opened!"
+msgstr "Όλες οι υπάρχουσες ροές εργασιών είναι ήδη ανοιχτές!"
+
+#: UI.actions.wf_save
+msgid "Save"
+msgstr "Αποθήκευση"
+
+#: UI.actions.wf_save_as
+msgctxt "UI.actions.wf_save_as"
+msgid "Save as..."
+msgstr "Αποθήκευση ως..."
+
+#: UI.actions.wf_save_as_tt
+msgctxt "UI.actions.wf_save_as_tt"
+msgid "Save as..."
+msgstr "Αποθήκευση ως..."
+
+#: UI.actions.wf_save_tt
+msgid "Save the current workflow"
+msgstr "Αποθήκευση της τρέχουσας ροής εργασιών"
+
+#: UI.actions.show_results.connect_err
+msgid "Results couldn''t be retrieved"
+msgstr "Δεν ήταν δυνατή η ανάκτηση των αποτελεσμάτων"
+
+#: UI.actions.show_results.connect_err.title
+msgid "Connection error"
+msgstr "Σφάλμα σύνδεσης"
+
+#: UI.actions.show_results.empty
+msgid "No result available for this workflow"
+msgstr "Δεν υπάρχει διαθέσιμο αποτέλεσμα για αυτήν τη ροή εργασιών"
+
+#: UI.actions.show_results.empty.title
+msgctxt "UI.actions.show_results.empty.title"
+msgid "Results"
+msgstr "Αποτελέσματα"
+
+#: UI.actions.stop_exec.error
+msgid "Error: execution couldn''t be stopped"
+msgstr "Σφάλμα: η εκτέλεση δεν μπορούσε να διακοπεί"
+
+#: UI.actions.valid_links_confirm
+msgid ""
+"Are you sure you want to deactivate the automatic checking of validity of "
+"links between programs?"
+msgstr ""
+"Είστε βέβαιοι ότι θέλετε να απενεργοποιήσετε τον αυτόματο έλεγχο της "
+"εγκυρότητας των συνδέσεων μεταξύ προγραμμάτων;"
+
+#: UI.actions.create_file_error
+msgid "Cannot create file {0}"
+msgstr "Αδυναμία δημιουργίας αρχείου {0}"
+
+#: UI.actions.create_existing_file_error
+msgid "Cannot create file {0}: it already exists"
+msgstr "Αδυναμία δημιουργίας αρχείου {0}: υπάρχει ήδη"
+
+#: UI.actions.zoom_in
+msgid "Zoom In"
+msgstr "Μεγέθυνση"
+
+#: UI.actions.zoom_in_tt
+msgid "Draws a bigger workflow to better distinguish the details"
+msgstr ""
+"Σχεδιάζει μια μεγαλύτερη ροή εργασιών για να διακρίνετε καλύτερα τις "
+"λεπτομέρειες"
+
+#: UI.actions.zoom_original
+msgid "Zoom 1:1"
+msgstr "Ζουμ 1:1"
+
+#: UI.actions.zoom_original_tt
+msgid "Restores the default zoom factor"
+msgstr "Επαναφέρει τον προεπιλεγμένο συντελεστή ζουμ"
+
+#: UI.actions.zoom_out
+msgid "Zoom Out"
+msgstr "Σμίκρυνση"
+
+#: UI.actions.zoom_out_tt
+msgid "Draws a smaller workflow to show a larger part of it"
+msgstr ""
+"Σχεδιάζει μια μικρότερη ροή εργασιών για να δείξει ένα μεγαλύτερο μέρος της"
+
+#: UI.annotation.for_workflow
+msgid "Annotation for workflow ''{0}''"
+msgstr "Σχόλιο για τη ροή εργασιών ''{0}''"
+
+#: UI.annotation.for_program
+msgid "Annotation for program: ''{0}''"
+msgstr "Σχόλιο για το πρόγραμμα: ''{0}''"
+
+#: UI.ctrlwf.run.file_does_not_exist
+msgid "File {0} does not exist"
+msgstr "Το Αρχείο {0} δεν υπάρχει"
+
+#: UI.ctrlwf.run.file_unreadable
+msgid "File {0} cannot be read"
+msgstr "Το Αρχείο {0} δεν μπορεί να διαβαστεί"
+
+#: UI.ctrlwf.run.zip_failed
+msgid ""
+"Failed to execute the workflow: an unexpected error happened while preparing "
+"execution\n"
+"\n"
+"Details:\n"
+"{0}\n"
+msgstr ""
+"Η εκτέλεση της ροής εργασιών απέτυχε: παρουσιάστηκε μη αναμενόμενο σφάλμα "
+"κατά την προετοιμασία της εκτέλεσης\n"
+"\n"
+"Λεπτομέρειες:\n"
+"{0}\n"
+
+#: UI.ctrlwf.run.zip_failed_missing_file
+msgid ""
+"Failed to execute the workflow: at least one input file does not exist!\n"
+"\n"
+"Detail:\n"
+"{0}\n"
+msgstr ""
+"Η εκτέλεση της ροής εργασιών απέτυχε: τουλάχιστον ένα αρχείο εισόδου δεν "
+"υπάρχει!\n"
+"\n"
+"Λεπτομέρειες:\n"
+"{0}\n"
+
+#: UI.datasource.unset_path
+msgid "<not set>"
+msgstr "<δεν ρυθμίστηκε>"
+
+#: UI.dialog.about
+msgctxt "UI.dialog.about"
+msgid "About..."
+msgstr "Σχετικά..."
+
+#: UI.dialog.about_content
+msgid ""
+"<html>{3}<hr><i>Powered by Praxis - Version {0} - date: {2}<br>Copyright "
+"Institut Mines Telecom - IMT Atlantique Bretagne Pays de la Loire "
+"2002-2018<br>All rights reserved</i></html>"
+msgstr ""
+"<html>{3}<hr><i>Powered by Praxis - Version {0} - date: {2}<br>Copyright "
+"Institut Mines Telecom - IMT Atlantique Bretagne Pays de la Loire "
+"2002-2018<br>All rights reserved</i></html>"
+
+#: UI.dialog.about_msg
+msgctxt "UI.dialog.about_msg"
+msgid ""
+msgstr ""
+
+#: UI.dialog.connection.connect_to_server
+msgid "Enable connection to the server:"
+msgstr "Ενεργοποιήστε τη σύνδεση με το διακομιστή:"
+
+#: UI.dialog.connection.enter_login_passwd
+msgid "Please enter your login and your password"
+msgstr "Καταχωρίστε τα στοιχεία σύνδεσης και τον κωδικό πρόσβασής σας"
+
+#: UI.dialog.connection.login
+msgid "Login:"
+msgstr "Login:"
+
+#: UI.dialog.connection.passwd
+msgid "Password:"
+msgstr "Κωδικός πρόσβασης:"
+
+#: UI.dialog.connection.server
+msgid "Server (host:port):"
+msgstr "Διακομιστής (host:port):"
+
+#: UI.dialog.connection.title
+msgid "Application starting..."
+msgstr "Έναρξη εφαρμογής..."
+
+#: UI.dialog.connection_failure
+msgid "Failed to connect to the server, please retry later"
+msgstr "Αποτυχία σύνδεσης με το διακομιστή, δοκιμάστε ξανά αργότερα"
+
+#: UI.dialog.connection_failure_title
+msgid "Connection failure"
+msgstr "Αποτυχία σύνδεσης"
+
+#: UI.dialog.datasource_inputs.add
+msgid "Add"
+msgstr "Προσθήκη"
+
+#: UI.dialog.datasource_inputs.delete
+msgctxt "UI.dialog.datasource_inputs.delete"
+msgid "Delete"
+msgstr "Διαγραφή"
+
+#: UI.dialog.datasource_inputs.file
+msgid "Files"
+msgstr "Αρχεία"
+
+#: UI.dialog.datasource_inputs.title
+msgid "Datasource properties"
+msgstr "Ιδιότητες πηγής δεδομένων"
+
+#: UI.dialog.default_filesource_displayname
+msgctxt "UI.dialog.default_filesource_displayname"
+msgid "File"
+msgstr "Αρχείο"
+
+#: UI.dialog.default_directorysource_displayname
+msgctxt "UI.dialog.default_directorysource_displayname"
+msgid "Directory"
+msgstr "Ευρετήριο"
+
+#: UI.dialog.disconnect_confirm
+msgid "Do you want to disconnect from the server?"
+msgstr "Θέλετε να αποσυνδεθείτε από το διακομιστή;"
+
+#: UI.dialog.disconnect_confirm_title
+msgid "Disconnecting from the server"
+msgstr "Αποσύνδεση από το διακομιστή"
+
+#: UI.dialog.error
+msgid "Error!"
+msgstr "Σφάλμα!"
+
+#: UI.dialog.file_chooser.title
+msgid "Add files"
+msgstr "Προσθήκη αρχείων"
+
+#: UI.dialog.file.overwrite
+msgid "File already exists: overwrite?"
+msgstr "Το αρχείο ήδη υπάρχει: αντικατάσταση;"
+
+#: UI.dialog.help.title
+msgctxt "UI.dialog.help.title"
+msgid "Help"
+msgstr "Βοήθεια"
+
+#: UI.dialog.help.not_available
+msgid "No help available for the moment"
+msgstr "Δεν υπάρχει διαθέσιμη βοήθεια προς το παρόν"
+
+#: UI.dialog.image.save.failed_title
+msgid "Failed to save file"
+msgstr "Αποτυχία αποθήκευσης του αρχείου"
+
+#: UI.dialog.image.save.failed
+msgid "The image could not be saved: an error occurred"
+msgstr "Δεν ήταν δυνατή η αποθήκευση της εικόνας: παρουσιάστηκε σφάλμα"
+
+#: UI.dialog.import.label_wf
+msgctxt "UI.dialog.import.label_wf"
+msgid "Workflow"
+msgstr "Ροή εργασιών"
+
+#: UI.dialog.import.label_ws
+msgctxt "UI.dialog.import.label_ws"
+msgid "Workspace"
+msgstr "Χώρος εργασίας"
+
+#: UI.dialog.import.msg_wf
+msgid "Which workflow do you want to import?"
+msgstr "Ποια ροή εργασίας θέλετε να εισάγετε;"
+
+#: UI.dialog.import.title
+msgid "Import"
+msgstr "Εισαγωγή"
+
+#: UI.dialog.save_as.title
+msgid "Save as"
+msgstr "Αποθήκευση ως"
+
+#: UI.dialog.rename.title
+msgid "Rename"
+msgstr "Μετονομασία"
+
+#: UI.dialog.logging_err_msg
+msgid "Unable to connect: incorrect login/password"
+msgstr "Δεν είναι δυνατή η σύνδεση: λάθος login/κωδικός πρόσβασης"
+
+#: UI.dialog.login_mandatory
+msgid "You must supply a login name!"
+msgstr "Πρέπει να δώσετε ένα όνομα σύνδεσης!"
+
+#: UI.dialog.open.label_wf
+msgid ""
+"Select the workflow for opening:\n"
+"\n"
+msgstr ""
+"Επιλέξτε τη ροή εργασιών για άνοιγμα:\n"
+"\n"
+
+#: UI.dialog.open.label_ws
+msgid ""
+"Select the workspace for opening:\n"
+"\n"
+msgstr ""
+"Επιλέξτε το χώρο εργασίας για άνοιγμα:\n"
+"\n"
+
+#: UI.dialog.open.title
+msgctxt "UI.dialog.open.title"
+msgid "Open"
+msgstr "Άνοιγμα"
+
+#: UI.dialog.datasource.rename_title
+msgid "Rename data source"
+msgstr "Μετονομασία της πηγής δεδομένων"
+
+#: UI.dialog.datasource.rename
+msgid "Please enter the name of this element:"
+msgstr "Εισάγετεγετε το όνομα αυτού του στοιχείου:"
+
+#: UI.dialog.datasource.incorrect_name_title
+msgid "Incorrect name"
+msgstr "Λανθασμένο όνομα"
+
+#: UI.dialog.datasource.incorrect_name
+msgid "Characters :, ?, /, \\, <, >, \" and | are not allowed"
+msgstr "Οι χαρακτήρες :, ?, /, \\, <, >, \" και | δεν επιτρέπονται"
+
+#: UI.dialog.datasource.name_already_exists
+msgid "An other element has the same name, please choose another one."
+msgstr "Ένα άλλο στοιχείο έχει το ίδιο όνομα, επιλέξτε άλλο."
+
+#: UI.dialog.prg_properties.descr_window_title
+msgid "Description of {0}"
+msgstr "Περιγραφή του {0}"
+
+#: UI.dialog.prg_properties.main_label
+msgid "Description of {0}  (click to see)"
+msgstr "Περιγραφή του {0}  (κάντε κλικ για να δείτε)"
+
+#: UI.dialog.prg_properties.parameters
+msgid "Parameters:"
+msgstr "Παράμετροι:"
+
+#: UI.dialog.prg_properties.parameters_default
+msgid "(and their default value)"
+msgstr "(και η προεπιλεγμένη τιμή τους)"
+
+#: UI.dialog.prg_properties.title
+msgid "Program properties"
+msgstr "Ιδιότητες προγράμματος"
+
+#: UI.dialog.quit
+msgid "Quit"
+msgstr "Εγκαταλείψτε"
+
+#: UI.dialog.quit_and_disconnect_msg
+msgid ""
+"\n"
+"Do you want to quit?\n"
+msgstr ""
+"\n"
+"Θέλετε να εγκαταλείψετε;\n"
+
+#: UI.dialog.quit_msg
+msgid "Do you want to close the application?"
+msgstr "Θέλετε να κλείσετε την εφαρμογή;"
+
+#: UI.dialog.save_ws.btn_none
+msgid "None"
+msgstr "Κανένα"
+
+#: UI.dialog.save_ws.btn_ok
+msgctxt "UI.dialog.save_ws.btn_ok"
+msgid "OK"
+msgstr "OK"
+
+#: UI.dialog.save_ws.msg
+msgid "Select the workflow for saving :"
+msgstr "Επιλέξτε τη ροή εργασιών για αποθήκευση :"
+
+#: UI.dialog.save_ws.title
+msgid "Saving {0}"
+msgstr "Αποθήκευση {0}"
+
+#: UI.dialog.wf.already_opened
+msgid "This workflow is already opened!"
+msgstr "Η συγκεκριμένη ροή εργασιών είναι ήδη ανοιχτή!"
+
+#: UI.dialog.wf.close_confirm
+msgid "Should the workflow \"{0}\" be saved before it is closed?"
+msgstr "Θέλετε να αποθηκευτεί η ροή εργασιών \"{0}\" πριν κλείσει;"
+
+#: UI.dialog.wf.close_title
+msgid "Closing a workflow"
+msgstr "Κλείσιμο μίας ροής εργασιών"
+
+#: UI.dialog.wf.enter_name
+msgid "Choose a name for the workflow:"
+msgstr "Επιλέξτε ένα όνομα για τη ροή εργασιών:"
+
+#: UI.dialog.wf.creation_failed_ws_not_selected
+msgid ""
+"Before creating a workflow, please create or select the workspace to which "
+"the new workflow belongs"
+msgstr ""
+"Πριν δημιουργήσετε μία ροή εργασιών, δημιουργήστε ή επιλέξτε τον χώρο "
+"εργασίας στον οποίο ανήκει η νέα ροή εργασιών"
+
+#: UI.dialog.wf.creation_failure_title
+msgid "Failed to create a workflow"
+msgstr "Αποτυχία δημιουργίας της ροής εργασιών"
+
+#: UI.dialog.wf.creation_title
+msgid "New workflow"
+msgstr "Νέα ροή εργασιών"
+
+#: UI.dialog.wf.delete_result_confirm_title
+msgid "Delete result"
+msgstr "Διαγραφή αποτελέσματος"
+
+#: UI.dialog.wf.delete_result_confirm
+msgid "Are you sure you want to definitively delete this result?"
+msgstr "Είστε βέβαιοι ότι θέλετε να διαγράψετε οριστικά αυτό το αποτέλεσμα;"
+
+#: UI.dialog.wf.delete_all_results_confirm_title
+msgctxt "UI.dialog.wf.delete_all_results_confirm_title"
+msgid "Delete all results"
+msgstr "Διαγραφή όλων των αποτελεσμάτων"
+
+#: UI.dialog.wf.delete_all_results_confirm
+msgid "Are you sure you want to definitively delete all these results?"
+msgstr ""
+"Είστε βέβαιοι ότι θέλετε να διαγράψετε οριστικά όλα αυτά τα αποτελέσματα;"
+
+#: UI.dialog.wf.delete
+msgctxt "UI.dialog.wf.delete"
+msgid "Delete the current workflow"
+msgstr "Διαγράψτε την τρέχουσα ροή εργασιών"
+
+#: UI.dialog.wf.delete_confirm
+msgid ""
+"\n"
+"Are you sure you want to definitively delete this workflow?\n"
+"\n"
+"Deleting the workflow will also permanently delete its results.\n"
+msgstr ""
+"\n"
+"Είστε βέβαιοι ότι θέλετε να διαγράψετε οριστικά αυτή τη ροή εργασιών;n\n"
+"Η διαγραφή της ροής εργασιών θα διαγράψει επίσης οριστικά τα αποτελέσματά "
+"της.\n"
+
+#: UI.dialog.wf.existing_names
+msgid "Already defined workflows are:"
+msgstr "Οι ήδη καθορισμένες ροές εργασιών είναι:"
+
+#: UI.dialog.wf.export_title
+msgid "Exporting a workflow"
+msgstr "Εξαγωγή μίας ροής εργασιών"
+
+#: UI.dialog.wf.export_failed
+msgid "Failed to export the workflow"
+msgstr "Η εξαγωγή της ροής εργασιών απέτυχε"
+
+#: UI.dialog.wf.import_cannot_extract
+msgid "Unable to extract the files"
+msgstr "Δεν είναι δυνατή η εξαγωγή των αρχείων"
+
+#: UI.dialog.wf.import_cannot_create_dir
+msgid ""
+"The chosen directory could not be created. Please check that you have the "
+"sufficient rights to do it."
+msgstr ""
+"Δεν ήταν δυνατή η δημιουργία του επιλεγμένου ευρετηρίου. Ελέγξτε ότι έχετε "
+"τα επαρκή δικαιώματα για να το κάνετε."
+
+#: UI.dialog.wf.import_cannot_read_zip
+msgid "Unable to read the zip file"
+msgstr "Δεν είναι δυνατή η ανάγνωση του αρχείου zip"
+
+#: UI.dialog.wf.import_create_dir
+msgid "The directory you choose does not exist, should we create it?"
+msgstr "Το ευρετήριο που επιλέγετε δεν υπάρχει, πρέπει να το δημιουργήσουμε;"
+
+#: UI.dialog.wf.import_drop_file_in_dir
+msgid "Drop input files in this directory"
+msgstr "Καταργήστε τα αρχεία εισόδου σε αυτό το ευρετήριο"
+
+#: UI.dialog.wf.import_failure
+msgid "An unexpected error occured while importing the workflow"
+msgstr ""
+"Παρουσιάστηκε ένα μη αναμενόμενο σφάλμα κατά την εισαγωγή της ροής εργασιών"
+
+#: UI.dialog.wf.import_failure_title
+msgid "Failed to import a workflow"
+msgstr "Η εισαγωγή μιας ροής εργασιών απέτυχε"
+
+#: UI.dialog.wf.import_impossible_coz_execution
+msgid "A workflow cannot be imported while an execution in progress"
+msgstr ""
+"Δεν είναι δυνατή η εισαγωγή ροής εργασιών κατά τη διάρκεια μίας εκτέλεσης"
+
+#: UI.dialog.wf.import_invalid_archive
+msgid "Invalid archive"
+msgstr "Μη έγκυρο αρχείο"
+
+#: UI.dialog.wf.import_not_a_dir
+msgid "\"{0}\" is not a directory. Please select a directory."
+msgstr "Το \"{0}\" δεν είναι ευρετήριο. Επιλέξτε ένα ευρετήριο."
+
+#: UI.dialog.wf.invalid_name_empty
+msgid "Invalid empty name!"
+msgstr "Μη έγκυρο κενό όνομα!"
+
+#: UI.dialog.wf.invalid_name_already_exists
+msgid "An other workflow with that name already exists!"
+msgstr "Μια άλλη ροή εργασιών με αυτό το όνομα υπάρχει ήδη!"
+
+#: UI.dialog.wf.open_failed_no_workflow
+msgid "Cannot open any workflow: none found"
+msgstr ""
+"Δεν είναι δυνατή η εμφάνιση οποιασδήποτε ροής εργασιών: δεν βρέθηκε καμία"
+
+#: UI.dialog.wf.open_failed_xml_not_conform_to_DTD
+msgid "Failed to open the workflow: the xml file does not conform to the DTD"
+msgstr ""
+"Αποτυχία ανοίγματος της ροής εργασιών: Το αρχείο xml δεν συμμορφώνεται με το "
+"DTD"
+
+#: UI.dialog.wf.open_failure
+msgid "An unexpected error occured while opening the workflow"
+msgstr ""
+"Παρουσιάστηκε ένα μη αναμενόμενο σφάλμα κατά το άνοιγμα της ροής εργασιών"
+
+#: UI.dialog.wf.rename_save_before_confirm
+msgid ""
+"The workflow has been modified and needs to be saved before it is renamed.\n"
+"Do you want to save it now?"
+msgstr ""
+"Η ροή εργασιών έχει τροποποιηθεί και πρέπει να αποθηκευτεί πριν μετονομαστεί."
+"\n"
+"Θέλετε να την αποθηκεύσετε τώρα;"
+
+#: UI.dialog.wf.open_failure_title
+msgid "Failed to open a workflow"
+msgstr "Αποτυχία ανοίγματος μίας ροής εργασιών"
+
+#: UI.dialog.wf.open_select_workflows
+msgid "Select the workflow(s) to be opened:"
+msgstr "Επιλέξτε ροή(-ές) εργασιών για άνοιγμα:"
+
+#: UI.dialog.wf.rename_failure_title
+msgid "Failed to rename a workflow"
+msgstr "Αποτυχία μετονομασίας μιας ροής εργασιών"
+
+#: UI.dialog.wf.rename_impossible
+msgid ""
+"Failed to rename the workflow (unknown reason).\n"
+"One possible reason could be that the corresponding files are currently "
+"opened in another tool."
+msgstr ""
+"Αποτυχία μετονομασίας μιας ροής εργασιών (άγνωστος λόγος).\n"
+"Ένας πιθανός λόγος θα μπορούσε να είναι ότι τα αντίστοιχα αρχεία ανοίγουν "
+"αυτήν τη στιγμή σε ένα άλλο εργαλείο."
+
+#: UI.dialog.wf.rename_impossible_coz_execution
+msgid "A workflow cannot be renamed while an execution in progress"
+msgstr ""
+"Μια ροή εργασιών δεν μπορεί να μετονομαστεί κατά τη διάρκεια μίας εκτέλεσης"
+
+#: UI.dialog.wf.rename_title
+msgid "Renaming {0}"
+msgstr "Μετονομασία της {0}"
+
+#: UI.dialog.wf.save_title
+msgid "Saving a workflow"
+msgstr "Αποθήκευση μίας ροής εργασιών"
+
+#: UI.dialog.wf.save_failed
+msgid "Could not save the workflow"
+msgstr "Αδυναμία αποθήκευσης της ροής εργασιών"
+
+#: UI.dialog.wf.delete_title
+msgid "Deleting workflow {0}"
+msgstr "Διαγραφή της ροής εργασιών {0}"
+
+#: UI.dialog.wf.delete_confirm_msg
+msgid "Are you sure you want to delete workflow {0}?"
+msgstr "Είστε σίγουροι ότι θέλετε να διαγράψετε τη ροή εργασιών {0}?"
+
+#: UI.dialog.wf.delete_confirm_msg_with_results
+msgid ""
+"Are you sure you want to delete workflow {0}?\n"
+"This workflow has already been executed; deleting it will also delete all "
+"the corresponding results."
+msgstr ""
+"Είστε σίγουροι ότι θέλετε να διαγράψετε τη ροή εργασιών {0}?\n"
+"Αυτή η ροή εργασίας έχει ήδη εκτελεστεί, η διαγραφή θα διαγράψει επίσης όλα "
+"τα αντίστοιχα αποτελέσματα."
+
+#: UI.dialog.wf.warnings_title
+msgid "Workflow requires checkings"
+msgstr "Η ροή εργασιών απαιτεί ελέγχους"
+
+#: UI.dialog.wf.warnings
+msgid ""
+"Warning: when loading the workflow, some inconsistencies in the parametering "
+"of some programs were detected. \n"
+"You will find below the detail of the errors that have been automatically "
+"corrected. \n"
+"It is advisable to check these corrections, and also to make sure that the "
+"parametering of the concerned programs is correct."
+msgstr ""
+"Προειδοποίηση: κατά τη φόρτωση της ροής εργασιών εντοπίζονται ορισμένες "
+"ασυνέπειες στην παραμετροποίηση ορισμένων προγραμμάτων. \n"
+"Θα βρείτε παρακάτω τις λεπτομέρειες των σφαλμάτων που έχουν διορθωθεί "
+"αυτόματα. \n"
+"Συνιστάται να ελέγξετε αυτές τις διορθώσεις και επίσης να βεβαιωθείτε ότι η "
+"παραμετροποίηση των σχετικών προγραμμάτων είναι σωστή."
+
+#: UI.dialog.result.rename
+msgid "Name of the result:"
+msgstr "Όνομα του αποτελέσματος:"
+
+#: UI.dialog.result.rename_title
+msgid "Renaming a result"
+msgstr "Μετονομασία ενός αποτελέσματος"
+
+#: UI.dialog.result.rename_failed_title
+msgid "Failed to rename the result"
+msgstr "Αποτυχία μετονομασίας του αποτελέσματος"
+
+#: UI.dialog.result.rename_failed
+msgid "The result could not be renamed."
+msgstr "Το αποτέλεσμα δεν μπορούσε να μετονομαστεί."
+
+#: UI.dialog.btn_cancel
+msgid "Cancel"
+msgstr "Άκυρο"
+
+#: UI.dialog.btn_ok
+msgctxt "UI.dialog.btn_ok"
+msgid "OK"
+msgstr "OK"
+
+#: UI.dialog.btn_apply
+msgid "Apply"
+msgstr "Αίτηση"
+
+#: UI.dialog.btn.overwrite
+msgid "Overwrite"
+msgstr "Αντικατάσταση"
+
+#: UI.dialog.btn_open
+msgctxt "UI.dialog.btn_open"
+msgid "Open"
+msgstr "Άνοιγμα"
+
+#: UI.dialog.select_results.btn_display
+msgctxt "UI.dialog.select_results.btn_display"
+msgid "Display"
+msgstr "Παρουσίαση"
+
+#: UI.dialog.select_results.header
+msgid "Select the results to display:\n"
+msgstr "Επιλέξτε τα αποτελέσματα για παρουσίαση:\n"
+
+#: UI.dialog.select_results.title
+msgid "Results of {0}"
+msgstr "Τα αποτελέσματα από {0}"
+
+#: UI.dialog.results.title
+msgctxt "UI.dialog.results.title"
+msgid "Results"
+msgstr "Αποτελέσματα"
+
+#: UI.dialog.splash.img_path
+msgid "data/client/images/splash.jpg"
+msgstr "data/client/images/splash.jpg"
+
+#: UI.dialog.splash.init_msg
+msgid "Initializing..."
+msgstr "Αρχικοποίηση..."
+
+#: UI.dialog.change_language
+msgid "Please restart the software for the language change to take full effect!"
+msgstr ""
+"Κάντε επανεκκίνηση του λογισμικού για την αλλαγή γλώσσας για να έχετε "
+"ολοκληρωμένο αποτέλεσμα!"
+
+#: UI.dialog.change_language_title
+msgid "Change the software language"
+msgstr "Αλλάξτε τη γλώσσα του λογισμικού"
+
+#: UI.menu.display
+msgctxt "UI.menu.display"
+msgid "Display"
+msgstr "Παρουσίαση"
+
+#: UI.menu.edit
+msgid "Edit"
+msgstr "Επεξεργασία"
+
+#: UI.menu.execution
+msgid "Execution"
+msgstr "Εκτέλεση"
+
+#: UI.menu.file
+msgctxt "UI.menu.file"
+msgid "File"
+msgstr "Αρχείο"
+
+#: UI.menu.help_about
+msgid "?"
+msgstr "?"
+
+#: UI.menu.prefs
+msgid "Preferences"
+msgstr "Προτιμήσεις"
+
+#: UI.menu.workflow
+msgctxt "UI.menu.workflow"
+msgid "Workflow"
+msgstr "Ροή εργασιών"
+
+#: UI.menu.workspace
+msgctxt "UI.menu.workspace"
+msgid "Workspace"
+msgstr "Χώρος εργασίας"
+
+#: UI.menu_items.about
+msgctxt "UI.menu_items.about"
+msgid "About..."
+msgstr "Σχετικά..."
+
+#: UI.menu_items.about_tt
+msgid "About the software"
+msgstr "Σχετικά με το λογισμικό"
+
+#: UI.menu_items.check_valid_links
+msgid "Check that links are valid"
+msgstr "Βεβαιωθείτε ότι οι σύνδεσμοι είναι έγκυροι"
+
+#: UI.menu_items.check_valid_links_tt
+msgid ""
+"Activate/deactivate the automatic feature which checks that two elements of "
+"a workflow (programs, files or databases) are compatible when you try to "
+"link one with another"
+msgstr ""
+"Ενεργοποιήστε/απενεργοποιήστε την αυτόματη λειτουργία που ελέγχει ότι δύο "
+"στοιχεία μιας ροής εργασιών (προγράμματα, αρχεία ή βάσεις δεδομένων) είναι "
+"συμβατά όταν προσπαθείτε να τα συνδέσετε μεταξύ τους"
+
+#: UI.menu_items.open_all_results
+msgid "Open all results'' files automatically"
+msgstr "Ανοίξτε αυτόματα όλα τα αρχεία αποτελεσμάτων"
+
+#: UI.menu_items.open_all_results_tt
+msgid "Open all files automatically when a result is displayed"
+msgstr "Ανοίξτε όλα τα αρχεία αυτόματα όταν εμφανίζεται ένα αποτέλεσμα"
+
+#: UI.menu_items.options
+msgid "Options..."
+msgstr "Επιλογές..."
+
+#: UI.menu_items.options_tt
+msgctxt "UI.menu_items.options_tt"
+msgid "Options"
+msgstr "Επιλογές"
+
+#: UI.menu_items.connect
+msgid "Connect"
+msgstr "Σύνδεση"
+
+#: UI.menu_items.connect_tt
+msgid "Connect to server"
+msgstr "Σύνδεση με τον διακομιστή"
+
+#: UI.menu_items.copy
+msgid "Copy"
+msgstr "Αντιγραφή"
+
+#: UI.menu_items.copy_tt
+msgid "Copy the selected object(s) into the clipboard"
+msgstr "Αντιγραφή των επιλεγμένων αντικειμένων στο πρόχειρο"
+
+#: UI.menu_items.delete
+msgctxt "UI.menu_items.delete"
+msgid "Delete"
+msgstr "Διαγραφή"
+
+#: UI.menu_items.delete_tt
+msgid "Delete the selected object(s)"
+msgstr "Διαγραφή των επιλεγμένων αντικειμένων"
+
+#: UI.menu_items.disconnect
+msgid "Disconnect"
+msgstr "Αποσύνδεση"
+
+#: UI.menu_items.disconnect_tt
+msgid "Disconnect from server"
+msgstr "Αποσύνδεση από τον διακομιστή"
+
+#: UI.menu_items.edit_rename
+msgctxt "UI.menu_items.edit_rename"
+msgid "Rename..."
+msgstr "Μετονομασία..."
+
+#: UI.menu_items.edit_rename_tt
+msgid "Rename the selected element"
+msgstr "Μετονομασία του επιλεγμένου στοιχείου"
+
+#: UI.menu_items.exit
+msgid "Exit"
+msgstr "Έξοδος"
+
+#: UI.menu_items.exit_tt
+msgid "Exits the application"
+msgstr "Έξοδος από την εφαρμογή"
+
+#: UI.menu_items.help
+msgctxt "UI.menu_items.help"
+msgid "Help"
+msgstr "Βοήθεια"
+
+#: UI.menu_items.help_tt
+msgctxt "UI.menu_items.help_tt"
+msgid "Help"
+msgstr "Βοήθεια"
+
+#: UI.menu_items.paste
+msgid "Paste"
+msgstr "Επικόλληση"
+
+#: UI.menu_items.paste_tt
+msgid "Paste the clipboard''s content into the current workflow"
+msgstr "Επικόλληση του περιεχόμενου του πρόχειρου στην τρέχουσα ροή εργασιών"
+
+#: UI.menu_items.properties
+msgid "Properties..."
+msgstr "Ιδιότητες..."
+
+#: UI.menu_items.properties_tt
+msgid "Modify the selected object''s properties"
+msgstr "Τροποποιήστε τις ιδιότητες του επιλεγμένου αντικειμένου"
+
+#: UI.menu_items.wf_delete
+msgid "Delete workflow"
+msgstr "Διαγραφή της ροής εργασιών"
+
+#: UI.menu_items.wf_delete_tt
+msgctxt "UI.menu_items.wf_delete_tt"
+msgid "Delete the current workflow"
+msgstr "Διαγραφή της τρέχουσας ροής εργασιών"
+
+#: UI.menu_items.result_delete
+msgid "Delete this result"
+msgstr "Διαγραφή αυτού του αποτελέσματος"
+
+#: UI.menu_items.result_delete_tt
+msgid "Delete the selected result"
+msgstr "Διαγραφή του επιλεγμένου αποτελέσματος"
+
+#: UI.menu_items.result_rename_tt
+msgctxt "UI.menu_items.result_rename_tt"
+msgid "Rename..."
+msgstr "Μετονομασία..."
+
+#: UI.menu_items.result_rename
+msgid "Rename this result"
+msgstr "Μετονομασία αυτού του αποτελέσματος"
+
+#: UI.menu_items.all_results_delete
+msgctxt "UI.menu_items.all_results_delete"
+msgid "Delete all results"
+msgstr "Διαγραφή όλων των αποτελεσμάτων"
+
+#: UI.menu_items.all_results_delete_tt
+msgid "Delete all results for this workflow"
+msgstr "Διαγραφή όλων των αποτελεσμάτων αυτής της ροής εργασιών"
+
+#: UI.menu_items.wf_exec_stop
+msgid "Stop"
+msgstr "Διακοπή"
+
+#: UI.menu_items.wf_exec_stop_tt
+msgid "Stop the execution"
+msgstr "Διακοπή της εκτέλεσης"
+
+#: UI.menu_items.wf_execute
+msgid "Run"
+msgstr "Εκτέλεση"
+
+#: UI.menu_items.wf_execute_tt
+msgid "Execute the current workflow"
+msgstr "Εκτέλεση της τρέχουσας ροής εργασιών"
+
+#: UI.menu_items.wf_rename
+msgctxt "UI.menu_items.wf_rename"
+msgid "Rename..."
+msgstr "Μετονομασία..."
+
+#: UI.menu_items.wf_rename_tt
+msgid "Rename the current workflow"
+msgstr "Μετονομασία της τρέχουσας ροής εργασιών"
+
+#: UI.menu_items.wf_results
+msgctxt "UI.menu_items.wf_results"
+msgid "Results"
+msgstr "Αποτελέσματα"
+
+#: UI.menu_items.wf_results_tt
+msgid "Show the workflow''s results"
+msgstr "Εμφάνιση των αποτελεσμάτων της ροής εργασίας"
+
+#: UI.menu_items.show_statusbar
+msgid "Status bar"
+msgstr "Γραμμή κατάστασης"
+
+#: UI.menu_items.show_statusbar_tt
+msgid "Show/hide the status bar"
+msgstr "Εμφάνιση/απόκρυψη της γραμμής κατάστασης"
+
+#: UI.menu_items.show_toolbar
+msgid "Toolbar"
+msgstr "Γραμμή εργαλείων"
+
+#: UI.menu_items.show_toolbar_tt
+msgid "Show/hide the toolbar"
+msgstr "Εμφάνιση/απόκρυψη της γραμμής εργαλείων"
+
+#: UI.menu_items.create_file
+msgid "Create the file"
+msgstr "Δημιουργία του αρχείου"
+
+#: UI.menu_items.open_with
+msgid "Open with..."
+msgstr "Άνοιγμα με..."
+
+#: UI.menu_items.display_file_action
+msgid "Display file"
+msgstr "Εμφάνιση αρχείου"
+
+#: UI.menu_items.display_file_action_tt
+msgid "Display the content of the selected file"
+msgstr "Εμφάνιση του περιεχομένου του επιλεγμένου αρχείου"
+
+#: UI.menu_items.anti_aliasing
+msgid "Antialiasing"
+msgstr "Εξομάλυνση"
+
+#: UI.menu_items.anti_aliasing_tt
+msgid "Use or not antialiasing"
+msgstr "Χρήση ή όχι εξομάλυνσης"
+
+#: UI.menu_items.show_grid
+msgid "Show Grid"
+msgstr "Εμφάνιση πλέγματος"
+
+#: UI.menu_items.show_grid_tt
+msgid "Show/hide the grid on the graph editor"
+msgstr "Εμφάνιση/απόκρυψη του πλέγματος στον επεξεργαστή γραφημάτων"
+
+#: UI.menu_items.snap_to_grid
+msgid "Snap to Grid"
+msgstr "Πατήστε στο πλέγμα"
+
+#: UI.menu_items.snap_to_grid_tt
+msgid "Snap the elements to the grid"
+msgstr "Προσθέστε τα στοιχεία στο πλέγμα"
+
+#: UI.menu_items.grid_size
+msgid "Grid Size"
+msgstr "Μέγεθος πλέγματος"
+
+#: UI.menu_items.grid_size_tt
+msgid "Modify the grid size"
+msgstr "Τροποποιήστε το μέγεθος του πλέγματος"
+
+#: UI.menu_items.grid_size_small
+msgid "Small"
+msgstr "Μικρό"
+
+#: UI.menu_items.grid_size_medium
+msgid "Medium"
+msgstr "Μέτριο"
+
+#: UI.menu_items.grid_size_large
+msgid "Large"
+msgstr "Μεγάλο"
+
+#: UI.menu_items.arrow_style
+msgid "Arrow Style"
+msgstr "Στυλ βέλους"
+
+#: UI.menu_items.arrow_style_orthogonal
+msgid "Orthogonal"
+msgstr "Ορθογώνιο"
+
+#: UI.menu_items.arrow_style_straigh
+msgid "Straigh"
+msgstr "Ευθείο"
+
+#: UI.menu_items.save_as_image
+msgid "Save as Image..."
+msgstr "Αποθήκευση ως εικόνα..."
+
+#: UI.menu_items.save_as_image_tt
+msgid "Save the workflow as a PNG image"
+msgstr "Αποθηκεύστε τη ροή εργασιών ως εικόνα PNG"
+
+#: UI.menu_items.License
+msgid "License..."
+msgstr "Άδεια..."
+
+#: UI.menu_items.OtherLicenses
+msgid "Third-party Licenses..."
+msgstr "Άδειες τρίτων κατασκευαστών..."
+
+#: UI.menu_items.changes
+msgid "Changes..."
+msgstr "Τροποποιήσεις..."
+
+#: UI.menu_items.languages
+msgid "Language settings..."
+msgstr "Ρυθμίσεις Γλώσσας..."
+
+#: UI.menu_items.language.en
+msgid "English"
+msgstr "Αγγλικά"
+
+#: UI.menu_items.language.fr
+msgid "Français"
+msgstr "Γαλλικά"
+
+#: UI.progtree.database
+msgid "Database"
+msgstr "Βάση δεδομένων"
+
+#: UI.progtree.datasource
+msgid "Inputs"
+msgstr "Στοιχεία εισαγωγής"
+
+#: UI.progtree.file
+msgid "File(s)"
+msgstr "Αρχείο(α)"
+
+#: UI.progtree.directory
+msgctxt "UI.progtree.directory"
+msgid "Directory"
+msgstr "Ευρετήριο"
+
+#: UI.progtree.programs
+msgctxt "UI.progtree.programs"
+msgid "Programs"
+msgstr "Προγράμματα"
+
+#: UI.results.info_title
+msgid "Informations"
+msgstr "Πληροφορίες"
+
+#: UI.results.info_unimplemented
+msgid "There is no additional information on this file"
+msgstr "Δεν υπάρχουν πρόσθετες πληροφορίες σχετικά με αυτό το αρχείο"
+
+#: UI.results.input_files_popup_menu
+msgid "Input files"
+msgstr "Αρχεία εισόδου"
+
+#: UI.results.file_truncated
+msgid ""
+"This result file is too big to be displayed in this view: you only see the "
+"beginning of it.\n"
+"To view it in its entirety, select one of the available external viewers."
+msgstr ""
+"Αυτό το αρχείο αποτελεσμάτων είναι πολύ μεγάλο για να εμφανιστεί σε αυτήν "
+"την προβολή: βλέπετε μόνο την αρχή του.\n"
+"Για να το δείτε ολόκληρο, επιλέξτε έναν από τα διαθέσιμα εξωτερικά "
+"προγράμματα προβολής."
+
+#: UI.results.viewers.launch_failed
+msgid "The selected external viewer could not be launched"
+msgstr ""
+"Δεν ήταν δυνατή η εκκίνηση του επιλεγμένου εξωτερικού προγράμματος προβολής"
+
+#: UI.results.viewers.load_failed
+msgid "The external viewer could not be loaded"
+msgstr "Δεν ήταν δυνατή η φόρτωση του εξωτερικού προγράμματος προβολής"
+
+#: UI.status_msg.connect
+msgid "Connecting to server..."
+msgstr "Σύνδεση με τον διακομιστή..."
+
+#: UI.status_msg.logging
+msgid "Sending credentials..."
+msgstr "Αποστολή διαπιστευτηρίων..."
+
+#: UI.tab.close
+msgid "Close this tab"
+msgstr "Κλείστε αυτήν την καρτέλα"
+
+#: UI.label.search
+msgid "Search:"
+msgstr "Αναζήτηση:"
+
+#: UI.label.service_unknown
+msgid "This resource is unknown: it cannot be used"
+msgstr "Αυτός ο πόρος είναι άγνωστος: δεν μπορεί να χρησιμοποιηθεί"
+
+#: UI.label.invalid_program_description
+msgid "The description of this program is invalid, it cannot be used"
+msgstr ""
+"Η περιγραφή αυτού του προγράμματος είναι άκυρη, δεν μπορεί να χρησιμοποιηθεί"
+
+#: UI.view.opened_workflows
+msgid "Opened workflows"
+msgstr "Ανοιχτές ροές εργασιών"
+
+#: UI.view.resources
+msgctxt "UI.view.resources"
+msgid "Programs"
+msgstr "Προγράμματα"
+
+#: common.application_name
+msgctxt "common.application_name"
+msgid ""
+msgstr ""
+
+#: common.close
+msgctxt "common.close"
+msgid "Close"
+msgstr "Κλείσιμο"
+
+#: common.dialog.detailed_error.hide_details
+msgid "Hide details <<<"
+msgstr "Κρύψιμο των λεπτομερειών <<<"
+
+#: common.dialog.detailed_error.show_details
+msgid "Show details >>>"
+msgstr "Εμφάνιση των λεπτομερειών >>>"
+
+#: common.error
+msgctxt "common.error"
+msgid "Error"
+msgstr "Σφάλμα"
+
+#: common.no
+msgid "No"
+msgstr "Όχι"
+
+#: common.yes
+msgid "Yes"
+msgstr "Ναι"
+
+#: common.warning
+msgid "Warning"
+msgstr "Προειδοποίηση"
+
+#: common.client_out_of_date
+msgid ""
+"This client is out-of-date:\n"
+"please download the new client!"
+msgstr ""
+"Αυτό το πρόγραμμα-πελάτης είναι εκτός λειτουργίας:\n"
+"Επιλέξτε να κάνετε λήψη του νέου προγράμματος-πελάτη!"
+
+#: common.client_out_of_date_title
+msgid "Client out-of-date"
+msgstr "Το πρόγραμμα-πελάτης δεν είναι ενημερωμένο"
+
+#: common.cnx_rejected.invalid_credentials
+msgid ""
+"Cannot connect to the server:\n"
+"invalid credentials."
+msgstr ""
+"Δεν είναι δυνατή η σύνδεση με τον διακομιστή:\n"
+"μη έγκυρα διαπιστευτήρια."
+
+#: common.cnx_rejected.invalid_credentials_title
+msgctxt "common.cnx_rejected.invalid_credentials_title"
+msgid "Connection failed"
+msgstr "Αποτυχία σύνδεσης"
+
+#: common.cnx_rejected.client_already_connected
+msgid ""
+"Cannot connect to the server:\n"
+"this user is already connected."
+msgstr ""
+"Δεν είναι δυνατή η σύνδεση με τον διακομιστή:\n"
+"αυτός ο χρήστης είναι ήδη συνδεδεμένος."
+
+#: common.cnx_rejected.client_already_connected_title
+msgctxt "common.cnx_rejected.client_already_connected_title"
+msgid "Connection failed"
+msgstr "Αποτυχία σύνδεσης"
+
+#: common.cnx_rejected.client_login_disabled
+msgid "The server is currently refusing connections, please try again later."
+msgstr "Ο διακομιστής απορρίπτει τις συνδέσεις, δοκιμάστε ξανά αργότερα."
+
+#: common.cnx_rejected.client_login_disabled_title
+msgctxt "common.cnx_rejected.client_login_disabled_title"
+msgid "Connection failed"
+msgstr "Αποτυχία σύνδεσης"
+
+#: common.cnx_rejected.client_login_disabled_w_reason
+msgid ""
+"The server is currently refusing connections\n"
+"{0}"
+msgstr ""
+"Ο διακομιστής απορρίπτει τις συνδέσεις\n"
+"{0}"
+
+#: common.cnx_rejected.client_login_disabled_w_reason_title
+msgctxt "common.cnx_rejected.client_login_disabled_w_reason_title"
+msgid "Connection failed"
+msgstr "Αποτυχία σύνδεσης"
+
+#: common.cnx_rejected.maximum_number_of_clients
+msgid ""
+"Connection refused: the server cannot accept more connections\n"
+"Please try again a moment later\n"
+"\n"
+"We apology for the inconvenience."
+msgstr ""
+"Η σύνδεση απορρίφθηκε: ο διακομιστής δεν μπορεί να δεχτεί περισσότερες "
+"συνδέσεις\n"
+"Δοκιμάστε ξανά αργότερα\n"
+"\n"
+"Ζητάμε συγνώμη για την ταλαιπωρία."
+
+#: common.cnx_rejected.maximum_number_of_clients_title
+msgid "Connection refused"
+msgstr "Άρνηση σύνδεσης"
+
+#: wf.xmlwarnings.prg_desc_does_not_exists
+msgid ""
+"The workflow used a program named ''{0}'' which is not available anymore."
+msgstr ""
+"Η ροή εργασιών χρησιμοποίησε ένα πρόγραμμα με όνομα '' {0} '' το οποίο δεν "
+"είναι πλέον διαθέσιμο."
+
+#: wf.xmlwarnings.prg_desc_replace_by_alternative
+msgid ""
+"The workflow used a program named ''{0}'' which is not available anymore.\n"
+"It has been replaced with the programme ''{1}''.\n"
+"It is possible that this version is not fully compatible with the older one; "
+"if necessary, warnings will be displayed hereafter to give the full details "
+"on these possible incompatibilities."
+msgstr ""
+"Η ροή εργασιών χρησιμοποίησε ένα πρόγραμμα με όνομα '' {0} '' το οποίο δεν "
+"είναι πλέον διαθέσιμο.\n"
+"Έχει αντικατασταθεί από το πρόγραμμα ''{1}''.\n"
+"Είναι πιθανό αυτή η έκδοση να μην είναι πλήρως συμβατή με την παλαιότερη. Aν "
+"είναι απαραίτητο, θα εμφανιστούν στη συνέχεια οι προειδοποιήσεις για να "
+"δώσουν όλες τις λεπτομέρειες σχετικά με αυτές τις πιθανές ασυμβατότητες."
+
+#: wf.xmlwarnings.prg_declares_invalid_param
+msgid ""
+"The program ''{0}'' used a parameter named ''{1}'' which is not valid "
+"anymore (the value for this parameter was: ''{2}'')."
+msgstr ""
+"Το πρόγραμμα '' {0} '' χρησιμοποίησε μια παράμετρο με το όνομα '' {1} '' που "
+"δεν ισχύει πια (η τιμή για αυτήν την παράμετρο ήταν: ''{2}'')."
+
+#: wf.xmlwarnings.prg_param_has_invalid_value
+msgid ""
+"The program ''{0}'' declared an invalid value for parameter ''{1}''. This "
+"value was ''{2}'' and it is not valid anymore: the parameter''s value was "
+"reset to the default value ''{3}''."
+msgstr ""
+"Το πρόγραμμα '' {0} '' δηλώνει μη έγκυρη τιμή για την παράμετρο '' {1} ''. "
+"Αυτή η τιμή ήταν '' {2} '' και δεν ισχύει πια: η τιμή της παραμέτρου "
+"επαναφέρεται στην προεπιλεγμένη τιμή''{3}''."
+
+#: wf.xmlwarnings.prg_has_invalid_link
+msgid ""
+"The program ''{0}'' was linked to an output of the program ''{1}'' (output "
+"identified as ''{2}'') but the link is invalid (either ''{1}'' is not longer "
+"a valid program in the workflow, or its corresponding output is not valid "
+"anymore).\n"
+"The link between the two programs could not be restored."
+msgstr ""
+"Το πρόγραμμα '' {0} '' συνδέθηκε με την έξοδο του προγράμματος '' {1} '' (η "
+"έξοδος προσδιορίστηκε ως '' {2} '') αλλά ο σύνδεσμος είναι άκυρος(είτε το '' "
+"{1} '' δεν είναι πλέον ένα έγκυρο πρόγραμμα στη ροή εργασιών, ή η αντίστοιχη "
+"έξοδος του δεν είναι πλέον έγκυρη).\n"
+"Δεν ήταν δυνατή η αποκατάσταση της σύνδεσης μεταξύ των δύο προγραμμάτων."
+
+#: wf.xmlwarnings.prg_link_is_inactive
+msgid ""
+"The output ''{1}'' of program ''{0}'' and the input ''{3}'' of program ''{2}"
+"'' were linked one to each other, but at least one of them is not activated "
+"in the current parametering of these two programs.\n"
+"The link between the two programs could not be restored."
+msgstr ""
+"Η έξοδος '' {1} '' του προγράμματος '' {0} '' και η είσοδος '' {3} '' του "
+"προγράμματος ''{2}'' συνδέθηκαν το ένα με το άλλο, αλλά τουλάχιστον το ένα "
+"από τα δύο δεν ενεργοποιείται στην τρέχουσα παραμετροποίηση αυτών των δύο "
+"προγραμμάτων.\n"
+"Δεν ήταν δυνατή η αποκατάσταση της σύνδεσης μεταξύ των δύο προγραμμάτων."
+
+#: wf.xmlwarnings.prg_contains_useless_parameter
+msgid ""
+"Info: the program ''{0}'' declares a parameter ''{1}'' (param.''s type is "
+"''{2}''): this parameter is ignored (Note: this message is purely "
+"informational, it can be safely ignored)"
+msgstr ""
+"Πληροφορίες: Το πρόγραμμα '' {0} '' δηλώνει μια παράμετρο '' {1} '' ("
+"παράμετρος '' {2} ''):"
+
+#: eu.telecom_bretagne.praxis.core.execution.Result.Status.UNSET
+msgid "Unset"
+msgstr "Απενεργοποίηση"
+
+#: eu.telecom_bretagne.praxis.core.execution.Result.Status.SUBMITTED
+msgid "Submitted"
+msgstr "Υποβλήθηκε"
+
+#: eu.telecom_bretagne.praxis.core.execution.Result.Status.RUNNING
+msgid "Execution in progress"
+msgstr "Εκτέλεση σε εξέλιξη"
+
+#: eu.telecom_bretagne.praxis.core.execution.Result.Status.OK
+msgctxt "eu.telecom_bretagne.praxis.core.execution.Result.Status.OK"
+msgid "OK"
+msgstr "OK"
+
+#: eu.telecom_bretagne.praxis.core.execution.Result.Status.WARNING
+msgid "OK, with warnings"
+msgstr "OK, με προειδοποιήσεις"
+
+#: eu.telecom_bretagne.praxis.core.execution.Result.Status.ERROR
+msgctxt "eu.telecom_bretagne.praxis.core.execution.Result.Status.ERROR"
+msgid "Error"
+msgstr "Σφάλμα"
+
+#: eu.telecom_bretagne.praxis.core.execution.Result.Status.CANCELLED
+msgid "Cancelled"
+msgstr "Ακυρώθηκε"
+
+#: eu.telecom_bretagne.praxis.licence
+msgctxt "eu.telecom_bretagne.praxis.licence"
+msgid ""
+msgstr ""
+
+#: eu.telecom_bretagne.praxis.included_libs_licences
+msgctxt "eu.telecom_bretagne.praxis.included_libs_licences"
+msgid ""
+msgstr ""
+
+#: project.licence
+msgctxt "project.licence"
+msgid ""
+msgstr ""
diff --git a/data/i18n/po/praxis_fr.po b/data/i18n/po/praxis_fr.po
new file mode 100644
index 0000000000000000000000000000000000000000..8a7f3df6f1641644370d207903305711cf20bab2
--- /dev/null
+++ b/data/i18n/po/praxis_fr.po
@@ -0,0 +1,1487 @@
+#: UI.OptionsDialog.title
+msgctxt "UI.OptionsDialog.title"
+msgid "Options"
+msgstr "Options"
+
+#: UI.TabbedPane.close
+msgctxt "UI.TabbedPane.close"
+msgid "Close"
+msgstr "Fermer l''onglet"
+
+#: UI.TabbedPane.close_others
+msgid "Close Others"
+msgstr "Fermer les autres onglets"
+
+#: UI.TabbedPane.close_all
+msgid "Close All"
+msgstr "Fermer tous les onglets"
+
+#: UI.TabbedPane.results
+msgid "All Results..."
+msgstr "Tous les résultats..."
+
+#: UI.actions.display_preferences.error
+msgid "An error happened when building the preferences panel"
+msgstr "Une erreur est survenue lors de la création du panneau de préférence."
+
+#: UI.actions.execute_wf.confirm
+msgid "Are you sure you want to execute the workflow {0}?"
+msgstr "Êtes-vous sûr de vouloir exécuter le workflow {0}?"
+
+#: UI.actions.execute_wf.error
+msgid "Execution of the workflow failed"
+msgstr "L''exécution du workflow a échoué"
+
+#: UI.actions.execute_wf.title
+msgid "Confirmation of the execution of a workflow"
+msgstr "Confirmation de l''exécution d''un workflow"
+
+#: UI.actions.execute_wf.invalid_workflow
+msgid ""
+"Cannot execute an invalid workflow, please check the programs'' parameters "
+"and that all inputs are connected."
+msgstr ""
+"Impossible d''exécuter le workflow: veuillez vérifier que toutes les entrées "
+"sont connectées, et que chaque programme a un paramètrage valide."
+
+#: UI.actions.finished_exec.msg
+msgid "The workflow {0} has successfully been executed"
+msgstr "L''exécution du workflow {0} s''est terminée avec succès"
+
+#: UI.actions.finished_exec_with_errors.msg
+msgid "The execution of {0} is finished: an error occurred"
+msgstr "L''exécution du workflow {0} est terminée: une erreur s''est produite"
+
+#: UI.actions.finished_exec_with_warnings.msg
+msgid ""
+"The execution of {0} is finished; there were some warnings, check the results "
+"for details"
+msgstr ""
+"L''exécution du workflow {0} est terminée, avec des avertissements: voir le "
+"détail dans les résultats"
+
+#: UI.actions.finished_exec.title
+msgid "End of execution"
+msgstr "Fin de l''exécution d''un workflow"
+
+#: UI.actions.wf_close
+msgctxt "UI.actions.wf_close"
+msgid "Close"
+msgstr "Fermer"
+
+#: UI.actions.wf_close_tt
+msgid "Close current workflow"
+msgstr "Fermer le workflow courant"
+
+#: UI.actions.wf_close_all
+msgid "Close all"
+msgstr "Tout fermer"
+
+#: UI.actions.wf_close_all_tt
+msgid "Close all workflows"
+msgstr "Fermer tous les workflows"
+
+#: UI.actions.wf_close_others
+msgid "Close others"
+msgstr "Fermer les autres"
+
+#: UI.actions.wf_close_others_tt
+msgid "Close other workflows"
+msgstr "Fermer les autres workflows"
+
+#: UI.actions.wf_export
+msgid "Export without input files..."
+msgstr "Exporter sans les fichiers d''entrées......"
+
+#: UI.actions.wf_export_tt
+msgid "Export a workflow"
+msgstr "Exporter un workflow"
+
+#: UI.actions.wf_export_with_infiles
+msgid "Export with input files..."
+msgstr "Exporter avec les fichiers d''entrées..."
+
+#: UI.actions.wf_export_with_infiles_tt
+msgid "Export a workflow and all its input files, in a zip file"
+msgstr ""
+"Exporter un workflow avec tous ses fichiers d''entrées, dans un fichier zip"
+
+#: UI.actions.wf_import
+msgid "Import..."
+msgstr "Importer..."
+
+#: UI.actions.wf_import_as_new
+msgid "Import as new..."
+msgstr "Importer dans un nouveau workflow..."
+
+#: UI.actions.wf_import_as_new_tt
+msgid "Import a workflow as a new workflow"
+msgstr "Importer un workflow dans un nouveau workflow"
+
+#: UI.actions.wf_import_tt
+msgid "Import a workflow into the currently selected one"
+msgstr "Importer un workflow dans le workflow courant"
+
+#: UI.actions.wf_new
+msgid "New"
+msgstr "Nouveau"
+
+#: UI.actions.wf_new_tt
+msgid "Create a new workflow"
+msgstr "Créer un nouveau workflow"
+
+#: UI.actions.wf_open
+msgid "Open..."
+msgstr "Ouvrir..."
+
+#: UI.actions.wf_open_tt
+msgid "Open an existing workflow"
+msgstr "Ouvrir un workflow existant"
+
+#: UI.actions.wf_open_err_no_workflow
+msgid ""
+"<html>There isn''t any existing workflows yet!<br/>To create a new workflow, "
+"use the menu \"Workflow\" and select \"New\"</html>"
+msgstr ""
+"<html>Aucun workflow n''a encore été créé !<br/>Pour en créer un nouveau: "
+"menu <b>Workflow</b> puis <b>Nouveau</b></br>"
+
+#: UI.actions.wf_open_err_all_workflows_already_opened
+msgid "All existing workflows are already opened!"
+msgstr "Tous les workflows existants sont déjà ouverts !"
+
+#: UI.actions.wf_save
+msgid "Save"
+msgstr "Sauvegarder"
+
+#: UI.actions.wf_save_as
+msgctxt "UI.actions.wf_save_as"
+msgid "Save as..."
+msgstr "Sauvegarder sous..."
+
+#: UI.actions.wf_save_as_tt
+msgctxt "UI.actions.wf_save_as_tt"
+msgid "Save as..."
+msgstr "Sauvegarder sous..."
+
+#: UI.actions.wf_save_tt
+msgid "Save the current workflow"
+msgstr "Sauvegarder le workflow courant"
+
+#: UI.actions.show_results.connect_err
+msgid "Results couldn''t be retrieved"
+msgstr "Impossible de récupérer la liste des résultats"
+
+#: UI.actions.show_results.connect_err.title
+msgid "Connection error"
+msgstr "Erreur de connexion"
+
+#: UI.actions.show_results.empty
+msgid "No result available for this workflow"
+msgstr "Aucun résultat n''est disponible pour ce workflow"
+
+#: UI.actions.show_results.empty.title
+msgctxt "UI.actions.show_results.empty.titleUI.actions.show_results.empty.title"
+msgid "Results"
+msgstr "Visualisation des résultats"
+
+#: UI.actions.stop_exec.error
+msgid "Error: execution couldn''t be stopped"
+msgstr "Erreur: l''exécution n''a pas pu être arrêtée"
+
+#: UI.actions.valid_links_confirm
+msgid ""
+"Are you sure you want to deactivate the automatic checking of validity of "
+"links between programs?"
+msgstr ""
+"Êtes-vous certain(e) de vouloir désactiver la vérification automatique de la "
+"validité des liens entre programmes?"
+
+#: UI.actions.create_file_error
+msgid "Cannot create file {0}"
+msgstr "Impossible de créer le fichier {0}"
+
+#: UI.actions.create_existing_file_error
+msgid "Cannot create file {0}: it already exists"
+msgstr "Impossible de créer le fichier {0}: il existe déjà"
+
+#: UI.actions.zoom_in
+msgid "Zoom In"
+msgstr "Zoom avant"
+
+#: UI.actions.zoom_in_tt
+msgid "Draws a bigger workflow to better distinguish the details"
+msgstr "Dessine le workflow en plus grand pour mieux en distinguer les détails"
+
+#: UI.actions.zoom_original
+msgid "Zoom 1:1"
+msgstr "Zoom 1:1"
+
+#: UI.actions.zoom_original_tt
+msgid "Restores the default zoom factor"
+msgstr "Rétablit le facteur de zoom par défaut"
+
+#: UI.actions.zoom_out
+msgid "Zoom Out"
+msgstr "Zoom arrière"
+
+#: UI.actions.zoom_out_tt
+msgid "Draws a smaller workflow to show a larger part of it"
+msgstr "Dessine un workflow plus petit pour en voir une portion plus large"
+
+#: UI.annotation.for_workflow
+msgid "Annotation for workflow ''{0}''"
+msgstr "Annotation du workflow ''{0}''"
+
+#: UI.annotation.for_program
+msgid "Annotation for program: ''{0}''"
+msgstr "Annotation du programme: ''{0}''"
+
+#: UI.ctrlwf.run.file_does_not_exist
+msgid "File {0} does not exist"
+msgstr "Le fichier {0} n''existe pas"
+
+#: UI.ctrlwf.run.file_unreadable
+msgid "File {0} cannot be read"
+msgstr "Impossible de lire le fichier {0}"
+
+#: UI.ctrlwf.run.zip_failed
+msgid ""
+"Failed to execute the workflow: an unexpected error happened while preparing "
+"execution\n"
+"\n"
+"Details:\n"
+"{0}\n"
+msgstr ""
+"Impossible d''exécuter le workflow: une erreur inattendue est survenue lors "
+"de la préparation de l''exécution\n"
+"\n"
+"Détail:\n"
+"{0}\n"
+
+#: UI.ctrlwf.run.zip_failed_missing_file
+msgid ""
+"Failed to execute the workflow: at least one input file does not exist!\n"
+"\n"
+"Detail:\n"
+"{0}\n"
+msgstr ""
+"Impossible d''exécuter le workflow: au moins un des fichiers utilisés "
+"n''existe pas !\n"
+"\n"
+"Détail:\n"
+"{0}\n"
+
+#: UI.datasource.unset_path
+msgid "<not set>"
+msgstr "<not set>"
+
+#: UI.dialog.about
+msgctxt "UI.dialog.about"
+msgid "About..."
+msgstr "À propos..."
+
+#: UI.dialog.about_content
+msgid ""
+"<html>{3}<hr><i>Powered by Praxis - Version {0} - date: {2}<br>Copyright "
+"Institut Mines Telecom - IMT Atlantique Bretagne Pays de la Loire "
+"2002-2018<br>All rights reserved</i></html>"
+msgstr ""
+"<html>{3}<hr><i>Elaboré avec Praxis - Version {0} - daté du {2}<br>Copyright "
+"Institut Mines Telecom - IMT Atlantique Bretagne Pays de la Loire "
+"2002-2018<br>Tous droits réservés</i></html>"
+
+#: UI.dialog.about_msg
+msgctxt "UI.dialog.about_msg"
+msgid ""
+msgstr ""
+
+#: UI.dialog.connection.connect_to_server
+msgid "Enable connection to the server:"
+msgstr "Établir la connexion au serveur :"
+
+#: UI.dialog.connection.enter_login_passwd
+msgid "Please enter your login and your password"
+msgstr "Veuillez saisir votre identifiant et votre mot de passe"
+
+#: UI.dialog.connection.login
+msgid "Login:"
+msgstr "Nom d''utilisateur :"
+
+#: UI.dialog.connection.passwd
+msgid "Password:"
+msgstr "Mot de passe :"
+
+#: UI.dialog.connection.server
+msgid "Server (host:port):"
+msgstr "Serveur (hôte:port) :"
+
+#: UI.dialog.connection.title
+msgid "Application starting..."
+msgstr "Ouverture de l''application..."
+
+#: UI.dialog.connection_failure
+msgid "Failed to connect to the server, please retry later"
+msgstr ""
+"Impossible de se connecter au serveur, veuillez réessayer ultérieurement"
+
+#: UI.dialog.connection_failure_title
+msgid "Connection failure"
+msgstr "Échec de la connexion"
+
+#: UI.dialog.datasource_inputs.add
+msgid "Add"
+msgstr "Ajouter"
+
+#: UI.dialog.datasource_inputs.delete
+msgctxt "UI.dialog.datasource_inputs.delete"
+msgid "Delete"
+msgstr "Supprimer"
+
+#: UI.dialog.datasource_inputs.file
+msgid "Files"
+msgstr "Fichiers"
+
+#: UI.dialog.datasource_inputs.title
+msgid "Datasource properties"
+msgstr "Propriétés"
+
+#: UI.dialog.default_filesource_displayname
+msgctxt "UI.dialog.default_filesource_displayname"
+msgid "File"
+msgstr "Fichier"
+
+#: UI.dialog.default_directorysource_displayname
+msgctxt "UI.dialog.default_directorysource_displayname"
+msgid "Directory"
+msgstr "Répertoire"
+
+#: UI.dialog.disconnect_confirm
+msgid "Do you want to disconnect from the server?"
+msgstr "Souhaitez-vous vous déconnecter du serveur ?"
+
+#: UI.dialog.disconnect_confirm_title
+msgid "Disconnecting from the server"
+msgstr "Déconnexion du serveur"
+
+#: UI.dialog.error
+msgid "Error!"
+msgstr "Erreur !"
+
+#: UI.dialog.file_chooser.title
+msgid "Add files"
+msgstr "Ajout de fichiers"
+
+#: UI.dialog.file.overwrite
+msgid "File already exists: overwrite?"
+msgstr "Le fichier existe déjà: l''écraser?"
+
+#: UI.dialog.help.title
+msgctxt "UI.dialog.help.title"
+msgid "Help"
+msgstr "Aide"
+
+#: UI.dialog.help.not_available
+msgid "No help available for the moment"
+msgstr "Aucune aide disponible pour le moment"
+
+#: UI.dialog.image.save.failed_title
+msgid "Failed to save file"
+msgstr "Échec de l''enregistrement"
+
+#: UI.dialog.image.save.failed
+msgid "The image could not be saved: an error occurred"
+msgstr "L''image n''a pas pu être sauvegardée: une erreur est survenue"
+
+#: UI.dialog.import.label_wf
+msgctxt "UI.dialog.import.label_wf"
+msgid "Workflow"
+msgstr "Workflow"
+
+#: UI.dialog.import.label_ws
+msgctxt "UI.dialog.import.label_ws"
+msgid "Workspace"
+msgstr "Espace de travail"
+
+#: UI.dialog.import.msg_wf
+msgid "Which workflow do you want to import?"
+msgstr "Quel workflow voulez-vous importer?"
+
+#: UI.dialog.import.title
+msgid "Import"
+msgstr "Import"
+
+#: UI.dialog.save_as.title
+msgid "Save as"
+msgstr "Sauvegarder sous"
+
+#: UI.dialog.rename.title
+msgid "Rename"
+msgstr "Renommer"
+
+#: UI.dialog.logging_err_msg
+msgid "Unable to connect: incorrect login/password"
+msgstr "Impossible de se connecter: utilisateur/mot de passe incorrects"
+
+#: UI.dialog.login_mandatory
+msgid "You must supply a login name!"
+msgstr "Vous devez au moins fournir un nom d''utilisateur !"
+
+#: UI.dialog.open.label_wf
+msgid ""
+"Select the workflow for opening:\n"
+"\n"
+msgstr ""
+"Sélectionner un workflow à ouvrir:\n"
+"\n"
+
+#: UI.dialog.open.label_ws
+msgid ""
+"Select the workspace for opening:\n"
+"\n"
+msgstr ""
+"Sélectionner l''espace de travail à ouvrir:\n"
+"\n"
+
+#: UI.dialog.open.title
+msgctxt "UI.dialog.open.title"
+msgid "Open"
+msgstr "Ouverture"
+
+#: UI.dialog.datasource.rename_title
+msgid "Rename data source"
+msgstr "Renommage de la source de données"
+
+#: UI.dialog.datasource.rename
+msgid "Please enter the name of this element:"
+msgstr "Veuillez entrer le nom de cet élément:"
+
+#: UI.dialog.datasource.incorrect_name_title
+msgid "Incorrect name"
+msgstr "Nom incorrect"
+
+#: UI.dialog.datasource.incorrect_name
+msgid "Characters :, ?, /, \\, <, >, \" and | are not allowed"
+msgstr "Les caractères :, ?, /, \\, <, >, \" et | ne sont pas autorisés"
+
+#: UI.dialog.datasource.name_already_exists
+msgid "An other element has the same name, please choose another one."
+msgstr "Il existe déjà une entrée portant ce nom. Veuillez en choisir un autre."
+
+#: UI.dialog.prg_properties.descr_window_title
+msgid "Description of {0}"
+msgstr "Description de: {0}"
+
+#: UI.dialog.prg_properties.main_label
+msgid "Description of {0}  (click to see)"
+msgstr "Description de: {0}  (cliquer pour l''afficher)"
+
+#: UI.dialog.prg_properties.parameters
+msgid "Parameters:"
+msgstr "Paramètres :"
+
+#: UI.dialog.prg_properties.parameters_default
+msgid "(and their default value)"
+msgstr "(et leur valeur par défaut)"
+
+#: UI.dialog.prg_properties.title
+msgid "Program properties"
+msgstr "Propriétés de programme"
+
+#: UI.dialog.quit
+msgid "Quit"
+msgstr "Quitter"
+
+#: UI.dialog.quit_and_disconnect_msg
+msgid ""
+"\n"
+"Do you want to quit?\n"
+msgstr ""
+"\n"
+"Voulez-vous quitter l''application?\n"
+
+#: UI.dialog.quit_msg
+msgid "Do you want to close the application?"
+msgstr "Voulez-vous quitter l''application?"
+
+#: UI.dialog.save_ws.btn_none
+msgid "None"
+msgstr "Aucun"
+
+#: UI.dialog.save_ws.btn_ok
+msgctxt "UI.dialog.save_ws.btn_ok"
+msgid "OK"
+msgstr "OK"
+
+#: UI.dialog.save_ws.msg
+msgid "Select the workflow for saving :"
+msgstr "Sélectionner les workflows à sauvegarder :"
+
+#: UI.dialog.save_ws.title
+msgid "Saving {0}"
+msgstr "Sauvegarde de {0}"
+
+#: UI.dialog.wf.already_opened
+msgid "This workflow is already opened!"
+msgstr "Ce workflow est déjà ouvert !"
+
+#: UI.dialog.wf.close_confirm
+msgid "Should the workflow \"{0}\" be saved before it is closed?"
+msgstr "Voulez-vous sauvegarder le workflow \"{0}\" avant de le fermer?"
+
+#: UI.dialog.wf.close_title
+msgid "Closing a workflow"
+msgstr "Fermeture d''un workflow"
+
+#: UI.dialog.wf.enter_name
+msgid "Choose a name for the workflow:"
+msgstr "Choisir un nom pour le workflow:"
+
+#: UI.dialog.wf.creation_failed_ws_not_selected
+msgid ""
+"Before creating a workflow, please create or select the workspace to which "
+"the new workflow belongs"
+msgstr ""
+"Veuillez créer ou sélectionner un espace de travail avant de créer un workflow"
+
+#: UI.dialog.wf.creation_failure_title
+msgid "Failed to create a workflow"
+msgstr "Erreur lors de la création d''un workflow"
+
+#: UI.dialog.wf.creation_title
+msgid "New workflow"
+msgstr "Création d''un workflow"
+
+#: UI.dialog.wf.delete_result_confirm_title
+msgid "Delete result"
+msgstr "Effacement d''un résultat"
+
+#: UI.dialog.wf.delete_result_confirm
+msgid "Are you sure you want to definitively delete this result?"
+msgstr "Êtes-vous sûr(e) de vouloir effacer définitivement ce résultat ?"
+
+#: UI.dialog.wf.delete_all_results_confirm_title
+msgctxt "UI.dialog.wf.delete_all_results_confirm_title"
+msgid "Delete all results"
+msgstr "Effacement de tous les résultats"
+
+#: UI.dialog.wf.delete_all_results_confirm
+msgid "Are you sure you want to definitively delete all these results?"
+msgstr ""
+"Êtes-vous sûr(e) de vouloir effacer définitivement tous les résultats de ce "
+"workflow ?"
+
+#: UI.dialog.wf.delete
+msgctxt "UI.dialog.wf.delete"
+msgid "Delete the current workflow"
+msgstr "Suppression du workflow en cours"
+
+#: UI.dialog.wf.delete_confirm
+msgid ""
+"\n"
+"Are you sure you want to definitively delete this workflow?\n"
+"\n"
+"Deleting the workflow will also permanently delete its results.\n"
+msgstr ""
+"\n"
+"Êtes-vous certain(e) de vouloir définitivement effacer ce workflow?\n"
+"\n"
+"Cet opération supprimera définitivement l''ensemble de ses résultats.\n"
+
+#: UI.dialog.wf.existing_names
+msgid "Already defined workflows are:"
+msgstr "Les workflows déjà existants sont:"
+
+#: UI.dialog.wf.export_title
+msgid "Exporting a workflow"
+msgstr "Export d''un workflow"
+
+#: UI.dialog.wf.export_failed
+msgid "Failed to export the workflow"
+msgstr "Échec de l''export"
+
+#: UI.dialog.wf.import_cannot_extract
+msgid "Unable to extract the files"
+msgstr "Impossible d''extraire les fichiers"
+
+#: UI.dialog.wf.import_cannot_create_dir
+msgid ""
+"The chosen directory could not be created. Please check that you have the "
+"sufficient rights to do it."
+msgstr ""
+"Impossible de créer le répertoire choisi. Vérifiez que vous avez les droits "
+"suffisants."
+
+#: UI.dialog.wf.import_cannot_read_zip
+msgid "Unable to read the zip file"
+msgstr "Impossible de lire le fichier zip"
+
+#: UI.dialog.wf.import_create_dir
+msgid "The directory you choose does not exist, should we create it?"
+msgstr "Le répertoire choisi n''existe pas. Voulez-vous le créer?"
+
+#: UI.dialog.wf.import_drop_file_in_dir
+msgid "Drop input files in this directory"
+msgstr "Déposer les fichiers d''entré dans ce répertoire"
+
+#: UI.dialog.wf.import_failure
+msgid "An unexpected error occured while importing the workflow"
+msgstr ""
+"Une erreur inattendue s''est produite lors de l''importation du workflow"
+
+#: UI.dialog.wf.import_failure_title
+msgid "Failed to import a workflow"
+msgstr "Échec de l''importation d''un workflow"
+
+#: UI.dialog.wf.import_impossible_coz_execution
+msgid "A workflow cannot be imported while an execution in progress"
+msgstr "Impossible d''importer le workflow: une exécution est en cours"
+
+#: UI.dialog.wf.import_invalid_archive
+msgid "Invalid archive"
+msgstr "Archive invalide"
+
+#: UI.dialog.wf.import_not_a_dir
+msgid "\"{0}\" is not a directory. Please select a directory."
+msgstr "\"{0}\" n''est pas un répertoire. Veuillez sélectionner un répertoire."
+
+#: UI.dialog.wf.invalid_name_empty
+msgid "Invalid empty name!"
+msgstr "Le nom ne peut pas être vide!"
+
+#: UI.dialog.wf.invalid_name_already_exists
+msgid "An other workflow with that name already exists!"
+msgstr "Un autre workflow a déjà ce nom!"
+
+#: UI.dialog.wf.open_failed_no_workflow
+msgid "Cannot open any workflow: none found"
+msgstr "Impossible d''ouvrir un workflow: aucun n''est disponible !"
+
+#: UI.dialog.wf.open_failed_xml_not_conform_to_DTD
+msgid "Failed to open the workflow: the xml file does not conform to the DTD"
+msgstr "Impossible d''ouvrir le workflow: le xml n''est pas conforme à la DTD"
+
+#: UI.dialog.wf.open_failure
+msgid "An unexpected error occured while opening the workflow"
+msgstr "Une erreur inattendue s''est produite lors de l''ouverture du workflow"
+
+#: UI.dialog.wf.rename_save_before_confirm
+msgid ""
+"The workflow has been modified and needs to be saved before it is renamed.\n"
+"Do you want to save it now?"
+msgstr ""
+"Le workflow a été modifié et doit être sauvegardé avant d''être renommé.\n"
+"Souhaitez-vous le faire maintenant?"
+
+#: UI.dialog.wf.open_failure_title
+msgid "Failed to open a workflow"
+msgstr "Échec de l''ouverture d''un workflow"
+
+#: UI.dialog.wf.open_select_workflows
+msgid "Select the workflow(s) to be opened:"
+msgstr "Sélectionnez le(s) workflow(s) à ouvrir:"
+
+#: UI.dialog.wf.rename_failure_title
+msgid "Failed to rename a workflow"
+msgstr "Échec du renommage d''un workflow"
+
+#: UI.dialog.wf.rename_impossible
+msgid ""
+"Failed to rename the workflow (unknown reason).\n"
+"One possible reason could be that the corresponding files are currently "
+"opened in another tool."
+msgstr ""
+"Échec du renommage (raison inconnue).\n"
+"Cause d''échec possible: les fichiers correspondants sont peut-être ouverts "
+"dans un autre outil."
+
+#: UI.dialog.wf.rename_impossible_coz_execution
+msgid "A workflow cannot be renamed while an execution in progress"
+msgstr "Impossible de renommer le workflow: une exécution est en cours"
+
+#: UI.dialog.wf.rename_title
+msgid "Renaming {0}"
+msgstr "Renommage de {0}"
+
+#: UI.dialog.wf.save_title
+msgid "Saving a workflow"
+msgstr "Sauvegarde d''un workflow"
+
+#: UI.dialog.wf.save_failed
+msgid "Could not save the workflow"
+msgstr "Impossible de sauvegarder le workflow"
+
+#: UI.dialog.wf.delete_title
+msgid "Deleting workflow {0}"
+msgstr "Suppression du workflow {0}"
+
+#: UI.dialog.wf.delete_confirm_msg
+msgid "Are you sure you want to delete workflow {0}?"
+msgstr "Êtes-vous sûr(e) de vouloir supprimer le workflow {0}?"
+
+#: UI.dialog.wf.delete_confirm_msg_with_results
+msgid ""
+"Are you sure you want to delete workflow {0}?\n"
+"This workflow has already been executed; deleting it will also delete all the "
+"corresponding results."
+msgstr ""
+"Êtes-vous sûr(e) de vouloir supprimer le workflow {0}?\n"
+"Ce workflow a déjà été exécuté; l''effacer entraînera également la "
+"suppression de tous les résultats correspondants."
+
+#: UI.dialog.wf.warnings_title
+msgid "Workflow requires checkings"
+msgstr "Le workflow nécessite des vérifications"
+
+#: UI.dialog.wf.warnings
+msgid ""
+"Warning: when loading the workflow, some inconsistencies in the parametering "
+"of some programs were detected. \n"
+"You will find below the detail of the errors that have been automatically "
+"corrected. \n"
+"It is advisable to check these corrections, and also to make sure that the "
+"parametering of the concerned programs is correct."
+msgstr ""
+"Attention: en chargeant le workflow, des incohérences ont été trouvées dans "
+"le paramétrage de certains programmes.\n"
+"Vous trouverez ci-dessous le détail des erreurs qui ont été automatiquement "
+"corrigées. \n"
+"Nous vous conseillons de vérifier ces corrections et de vous assurer par "
+"ailleurs que le paramétrage des programmes mis en cause est correct."
+
+#: UI.dialog.result.rename
+msgid "Name of the result:"
+msgstr "Nom du résultat :"
+
+#: UI.dialog.result.rename_title
+msgid "Renaming a result"
+msgstr "Renommage du résultat"
+
+#: UI.dialog.result.rename_failed_title
+msgid "Failed to rename the result"
+msgstr "Échec du renommage d''un résultat"
+
+#: UI.dialog.result.rename_failed
+msgid "The result could not be renamed."
+msgstr "Le renommage du résultat a échoué"
+
+#: UI.dialog.btn_cancel
+msgid "Cancel"
+msgstr "Annuler"
+
+#: UI.dialog.btn_ok
+msgctxt "UI.dialog.btn_ok"
+msgid "OK"
+msgstr "OK"
+
+#: UI.dialog.btn_apply
+msgid "Apply"
+msgstr "Appliquer"
+
+#: UI.dialog.btn.overwrite
+msgid "Overwrite"
+msgstr "Écraser"
+
+#: UI.dialog.btn_open
+msgctxt "UI.dialog.btn_open"
+msgid "Open"
+msgstr "Ouvrir"
+
+#: UI.dialog.select_results.btn_display
+msgctxt "UI.dialog.select_results.btn_display"
+msgid "Display"
+msgstr "Afficher"
+
+#: UI.dialog.select_results.header
+msgid "Select the results to display:\n"
+msgstr "Quels résultats souhaitez-vous visualiser?\n"
+
+#: UI.dialog.select_results.title
+msgid "Results of {0}"
+msgstr "Résultats de: {0}"
+
+#: UI.dialog.results.title
+msgctxt "UI.dialog.results.title"
+msgid "Results"
+msgstr "Résultats"
+
+#: UI.dialog.splash.img_path
+msgid "data/client/images/splash.jpg"
+msgstr "data/client/images/splash.jpg"
+
+#: UI.dialog.splash.init_msg
+msgid "Initializing..."
+msgstr "Initialisation..."
+
+#: UI.dialog.change_language
+msgid "Please restart the software for the language change to take full effect!"
+msgstr ""
+"Vous devez redémarrer le logiciel pour que le changement de langue prenne "
+"pleinement effet!"
+
+#: UI.dialog.change_language_title
+msgid "Change the software language"
+msgstr "Modification de la langue du logiciel"
+
+#: UI.menu.display
+msgctxt "UI.menu.display"
+msgid "Display"
+msgstr "Affichage"
+
+#: UI.menu.edit
+msgid "Edit"
+msgstr "Édition"
+
+#: UI.menu.execution
+msgid "Execution"
+msgstr "Exécution"
+
+#: UI.menu.file
+msgctxt "UI.menu.file"
+msgid "File"
+msgstr "Fichier"
+
+#: UI.menu.help_about
+msgid "?"
+msgstr "?"
+
+#: UI.menu.prefs
+msgid "Preferences"
+msgstr "Préférences"
+
+#: UI.menu.workflow
+msgctxt "UI.menu.workflow"
+msgid "Workflow"
+msgstr "Workflow"
+
+#: UI.menu.workspace
+msgctxt "UI.menu.workspace"
+msgid "Workspace"
+msgstr "Espace de travail"
+
+#: UI.menu_items.about
+msgctxt "UI.menu_items.about"
+msgid "About..."
+msgstr "À propos..."
+
+#: UI.menu_items.about_tt
+msgid "About the software"
+msgstr "Informations sur le logiciel"
+
+#: UI.menu_items.check_valid_links
+msgid "Check that links are valid"
+msgstr "Vérifier la validité des liens"
+
+#: UI.menu_items.check_valid_links_tt
+msgid ""
+"Activate/deactivate the automatic feature which checks that two elements of a "
+"workflow (programs, files or databases) are compatible when you try to link "
+"one with another"
+msgstr ""
+"Permet d''activer ou de désactiver la procédure automatique qui contrôle que "
+"deux éléments d''un workflow (programmes, fichiers ou bases de données) sont "
+"compatibles lorsque l''on cherche à les enchaîner l''un à la suite de "
+"l''autre."
+
+#: UI.menu_items.open_all_results
+msgid "Open all results'' files automatically"
+msgstr "Ouvrir immédiatement tous les fichiers résultat"
+
+#: UI.menu_items.open_all_results_tt
+msgid "Open all files automatically when a result is displayed"
+msgstr ""
+"Ouvre automatiquement tous les fichiers lorsqu''un résultat est sélectionné"
+
+#: UI.menu_items.options
+msgid "Options..."
+msgstr "Options..."
+
+#: UI.menu_items.options_tt
+msgctxt "UI.menu_items.options_tt"
+msgid "Options"
+msgstr "Options du logiciel"
+
+#: UI.menu_items.connect
+msgid "Connect"
+msgstr "Connexion"
+
+#: UI.menu_items.connect_tt
+msgid "Connect to server"
+msgstr "Connexion au serveur"
+
+#: UI.menu_items.copy
+msgid "Copy"
+msgstr "Copier"
+
+#: UI.menu_items.copy_tt
+msgid "Copy the selected object(s) into the clipboard"
+msgstr "Copie le ou les objets sélectionné(s) dans le presse-papier"
+
+#: UI.menu_items.delete
+msgctxt "UI.menu_items.delete"
+msgid "Delete"
+msgstr "Supprimer"
+
+#: UI.menu_items.delete_tt
+msgid "Delete the selected object(s)"
+msgstr "Supprime le ou les objet(s) sélectionné(s)"
+
+#: UI.menu_items.disconnect
+msgid "Disconnect"
+msgstr "Déconnexion"
+
+#: UI.menu_items.disconnect_tt
+msgid "Disconnect from server"
+msgstr "Déconnexion du serveur"
+
+#: UI.menu_items.edit_rename
+msgctxt "UI.menu_items.edit_rename"
+msgid "Rename..."
+msgstr "Renommer..."
+
+#: UI.menu_items.edit_rename_tt
+msgid "Rename the selected element"
+msgstr "Permet de renommer l''objet sélectionné"
+
+#: UI.menu_items.exit
+msgid "Exit"
+msgstr "Quitter"
+
+#: UI.menu_items.exit_tt
+msgid "Exits the application"
+msgstr "Quitte l''application"
+
+#: UI.menu_items.help
+msgctxt "UI.menu_items.help"
+msgid "Help"
+msgstr "Aide"
+
+#: UI.menu_items.help_tt
+msgctxt "UI.menu_items.help_tt"
+msgid "Help"
+msgstr "Aide"
+
+#: UI.menu_items.paste
+msgid "Paste"
+msgstr "Coller"
+
+#: UI.menu_items.paste_tt
+msgid "Paste the clipboard''s content into the current workflow"
+msgstr "Colle le contenu du presse-papier dans le workflow en cours"
+
+#: UI.menu_items.properties
+msgid "Properties..."
+msgstr "Propriétés..."
+
+#: UI.menu_items.properties_tt
+msgid "Modify the selected object''s properties"
+msgstr "Modifie les propriétés de l''objet sélectionné"
+
+#: UI.menu_items.wf_delete
+msgid "Delete workflow"
+msgstr "Supprimer le workflow"
+
+#: UI.menu_items.wf_delete_tt
+msgctxt "UI.menu_items.wf_delete_tt"
+msgid "Delete the current workflow"
+msgstr "Supprime le workflow actuel"
+
+#: UI.menu_items.result_delete
+msgid "Delete this result"
+msgstr "Supprimer ce résultat"
+
+#: UI.menu_items.result_delete_tt
+msgid "Delete the selected result"
+msgstr "Supprime le résultat sélectionné"
+
+#: UI.menu_items.result_rename_tt
+msgctxt "UI.menu_items.result_rename_tt"
+msgid "Rename..."
+msgstr "Renommer..."
+
+#: UI.menu_items.result_rename
+msgid "Rename this result"
+msgstr "Renommer ce résultat"
+
+#: UI.menu_items.all_results_delete
+msgctxt "UI.menu_items.all_results_delete"
+msgid "Delete all results"
+msgstr "Supprimer tous les résultats"
+
+#: UI.menu_items.all_results_delete_tt
+msgid "Delete all results for this workflow"
+msgstr "Supprime tous les résultats pour ce workflow"
+
+#: UI.menu_items.wf_exec_stop
+msgid "Stop"
+msgstr "Interrompre"
+
+#: UI.menu_items.wf_exec_stop_tt
+msgid "Stop the execution"
+msgstr "Interrompt l''exécution en cours"
+
+#: UI.menu_items.wf_execute
+msgid "Run"
+msgstr "Exécuter"
+
+#: UI.menu_items.wf_execute_tt
+msgid "Execute the current workflow"
+msgstr "Exécute le workflow actuel"
+
+#: UI.menu_items.wf_rename
+msgctxt "UI.menu_items.wf_rename"
+msgid "Rename..."
+msgstr "Renommer..."
+
+#: UI.menu_items.wf_rename_tt
+msgid "Rename the current workflow"
+msgstr "Renomme le workflow actuel"
+
+#: UI.menu_items.wf_results
+msgctxt "UI.menu_items.wf_results"
+msgid "Results"
+msgstr "Résultats"
+
+#: UI.menu_items.wf_results_tt
+msgid "Show the workflow''s results"
+msgstr "Afficher les résultats du workflow"
+
+#: UI.menu_items.show_statusbar
+msgid "Status bar"
+msgstr "Barre de statut"
+
+#: UI.menu_items.show_statusbar_tt
+msgid "Show/hide the status bar"
+msgstr "Affiche/cache la barre de statut"
+
+#: UI.menu_items.show_toolbar
+msgid "Toolbar"
+msgstr "Barre d''outils"
+
+#: UI.menu_items.show_toolbar_tt
+msgid "Show/hide the toolbar"
+msgstr "Affiche/cache la barre d''outils"
+
+#: UI.menu_items.create_file
+msgid "Create the file"
+msgstr "Créer le fichier"
+
+#: UI.menu_items.open_with
+msgid "Open with..."
+msgstr "Ouvrir avec..."
+
+#: UI.menu_items.display_file_action
+msgid "Display file"
+msgstr "Voir le contenu"
+
+#: UI.menu_items.display_file_action_tt
+msgid "Display the content of the selected file"
+msgstr "Voir le contenu du fichier sélectionné"
+
+#: UI.menu_items.anti_aliasing
+msgid "Antialiasing"
+msgstr "Antialiasing"
+
+#: UI.menu_items.anti_aliasing_tt
+msgid "Use or not antialiasing"
+msgstr "Utiliser ou non l''antialiasing"
+
+#: UI.menu_items.show_grid
+msgid "Show Grid"
+msgstr "Voir la grille"
+
+#: UI.menu_items.show_grid_tt
+msgid "Show/hide the grid on the graph editor"
+msgstr "Afficher/masquer la grille dans l''éditeur de graphe"
+
+#: UI.menu_items.snap_to_grid
+msgid "Snap to Grid"
+msgstr "Aligner sur la grille"
+
+#: UI.menu_items.snap_to_grid_tt
+msgid "Snap the elements to the grid"
+msgstr "Aligner les éléments graphiques sur la grille"
+
+#: UI.menu_items.grid_size
+msgid "Grid Size"
+msgstr "Talle de la grille"
+
+#: UI.menu_items.grid_size_tt
+msgid "Modify the grid size"
+msgstr "Modifier la taille de la grille"
+
+#: UI.menu_items.grid_size_small
+msgid "Small"
+msgstr "Petite"
+
+#: UI.menu_items.grid_size_medium
+msgid "Medium"
+msgstr "Moyenne"
+
+#: UI.menu_items.grid_size_large
+msgid "Large"
+msgstr "Grande"
+
+#: UI.menu_items.arrow_style
+msgid "Arrow Style"
+msgstr "Style des liens"
+
+#: UI.menu_items.arrow_style_orthogonal
+msgid "Orthogonal"
+msgstr "Orthogonal"
+
+#: UI.menu_items.arrow_style_straigh
+msgid "Straigh"
+msgstr "Droit"
+
+#: UI.menu_items.save_as_image
+msgid "Save as Image..."
+msgstr "Sauver au format image..."
+
+#: UI.menu_items.save_as_image_tt
+msgid "Save the workflow as a PNG image"
+msgstr "Sauver le workflow au format image PNG"
+
+#: UI.menu_items.License
+msgid "License..."
+msgstr "Licence..."
+
+#: UI.menu_items.OtherLicenses
+msgid "Third-party Licenses..."
+msgstr "Licences des programmes tiers..."
+
+#: UI.menu_items.changes
+msgid "Changes..."
+msgstr "Modifications..."
+
+#: UI.menu_items.languages
+msgid "Language settings..."
+msgstr "Changer la langue..."
+
+#: UI.menu_items.language.en
+msgid "English"
+msgstr "English"
+
+#: UI.menu_items.language.fr
+msgid "Français"
+msgstr "Français"
+
+#: UI.progtree.database
+msgid "Database"
+msgstr "Base de données"
+
+#: UI.progtree.datasource
+msgid "Inputs"
+msgstr "Entrées"
+
+#: UI.progtree.file
+msgid "File(s)"
+msgstr "Fichier(s)"
+
+#: UI.progtree.directory
+msgctxt "UI.progtree.directory"
+msgid "Directory"
+msgstr "Répertoire"
+
+#: UI.progtree.programs
+msgctxt "UI.progtree.programs"
+msgid "Programs"
+msgstr "Programmes"
+
+#: UI.results.info_title
+msgid "Informations"
+msgstr "Informations"
+
+#: UI.results.info_unimplemented
+msgid "There is no additional information on this file"
+msgstr "Aucune information supplémentaire n''est disponible sur ce fichier"
+
+#: UI.results.input_files_popup_menu
+msgid "Input files"
+msgstr "Fichiers d''entrée"
+
+#: UI.results.file_truncated
+msgid ""
+"This result file is too big to be displayed in this view: you only see the "
+"beginning of it.\n"
+"To view it in its entirety, select one of the available external viewers."
+msgstr ""
+"Ce fichier de résultat est trop volumineux pour être affiché dans cette "
+"fenêtre: seul le début est affiché.\n"
+"Pour le visualiser en entier, sélectionnez un des visualisateurs externes "
+"disponibles."
+
+#: UI.results.viewers.launch_failed
+msgid "The selected external viewer could not be launched"
+msgstr "Impossible de lancer le visualisateur externe sélectionné"
+
+#: UI.results.viewers.load_failed
+msgid "The external viewer could not be loaded"
+msgstr "Impossible de charger le visualisateur externe"
+
+#: UI.status_msg.connect
+msgid "Connecting to server..."
+msgstr "Connexion au serveur..."
+
+#: UI.status_msg.logging
+msgid "Sending credentials..."
+msgstr "Authentification..."
+
+#: UI.tab.close
+msgid "Close this tab"
+msgstr "Ferme cet onglet"
+
+#: UI.label.search
+msgid "Search:"
+msgstr "Recherche:"
+
+#: UI.label.service_unknown
+msgid "This resource is unknown: it cannot be used"
+msgstr "Cette ressource est inconnue: elle ne peut pas être utilisée"
+
+#: UI.label.invalid_program_description
+msgid "The description of this program is invalid, it cannot be used"
+msgstr ""
+"La description de ce programme n''est pas valide, il ne peut être utilisé"
+
+#: UI.view.opened_workflows
+msgid "Opened workflows"
+msgstr "Workflows ouverts"
+
+#: UI.view.resources
+msgctxt "UI.view.resources"
+msgid "Programs"
+msgstr "Programmes"
+
+#: common.application_name
+msgctxt "common.application_name"
+msgid ""
+msgstr ""
+
+#: common.close
+msgctxt "common.close"
+msgid "Close"
+msgstr "Fermer"
+
+#: common.dialog.detailed_error.hide_details
+msgid "Hide details <<<"
+msgstr "Cacher les détails <<<"
+
+#: common.dialog.detailed_error.show_details
+msgid "Show details >>>"
+msgstr "Plus de détails >>>"
+
+#: common.error
+msgctxt "common.error"
+msgid "Error"
+msgstr "Erreur"
+
+#: common.no
+msgid "No"
+msgstr "Non"
+
+#: common.yes
+msgid "Yes"
+msgstr "Oui"
+
+#: common.warning
+msgid "Warning"
+msgstr "Attention"
+
+#: common.client_out_of_date
+msgid ""
+"This client is out-of-date:\n"
+"please download the new client!"
+msgstr ""
+"Ce client n''est plus à jour:\n"
+"veuillez s''il vous plait télécharger une nouvelle version!"
+
+#: common.client_out_of_date_title
+msgid "Client out-of-date"
+msgstr "Mise à jour du client"
+
+#: common.cnx_rejected.invalid_credentials
+msgid ""
+"Cannot connect to the server:\n"
+"invalid credentials."
+msgstr ""
+"Impossible de se connecter au serveur:\n"
+"login/mot de passe invalides."
+
+#: common.cnx_rejected.invalid_credentials_title
+msgctxt "common.cnx_rejected.invalid_credentials_title"
+msgid "Connection failed"
+msgstr "Échec de la connexion"
+
+#: common.cnx_rejected.client_already_connected
+msgid ""
+"Cannot connect to the server:\n"
+"this user is already connected."
+msgstr ""
+"Impossible de se connecter au serveur:\n"
+"cet utilisateur est déjà connecté."
+
+#: common.cnx_rejected.client_already_connected_title
+msgctxt "common.cnx_rejected.client_already_connected_title"
+msgid "Connection failed"
+msgstr "Échec de la connexion"
+
+#: common.cnx_rejected.client_login_disabled
+msgid "The server is currently refusing connections, please try again later."
+msgstr ""
+"Les connexions au serveur ne sont pas autorisées pour le moment, veuillez "
+"réessayer ultérieurement."
+
+#: common.cnx_rejected.client_login_disabled_title
+msgctxt "common.cnx_rejected.client_login_disabled_title"
+msgid "Connection failed"
+msgstr "Échec de la connexion"
+
+#: common.cnx_rejected.client_login_disabled_w_reason
+msgid ""
+"The server is currently refusing connections\n"
+"{0}"
+msgstr ""
+"Les connexions au serveur ne sont pas autorisées pour le moment\n"
+"{0}"
+
+#: common.cnx_rejected.client_login_disabled_w_reason_title
+msgctxt "common.cnx_rejected.client_login_disabled_w_reason_title"
+msgid "Connection failed"
+msgstr "Échec de la connexion"
+
+#: common.cnx_rejected.maximum_number_of_clients
+msgid ""
+"Connection refused: the server cannot accept more connections\n"
+"Please try again a moment later\n"
+"\n"
+"We apology for the inconvenience."
+msgstr ""
+"Connexion refusée: le serveur ne peut plus accepter de nouvelles sessions\n"
+" Merci de réessayer un peu plus tard\n"
+"\n"
+"Veuillez nous excuser pour la gêne occasionnée."
+
+#: common.cnx_rejected.maximum_number_of_clients_title
+msgid "Connection refused"
+msgstr "Connection refusée"
+
+#: wf.xmlwarnings.prg_desc_does_not_exists
+msgid ""
+"The workflow used a program named ''{0}'' which is not available anymore."
+msgstr ""
+"Le workflow utilisait un programme nommé ''{0}'', qui n''est plus disponible."
+
+#: wf.xmlwarnings.prg_desc_replace_by_alternative
+msgid ""
+"The workflow used a program named ''{0}'' which is not available anymore.\n"
+"It has been replaced with the programme ''{1}''.\n"
+"It is possible that this version is not fully compatible with the older one; "
+"if necessary, warnings will be displayed hereafter to give the full details "
+"on these possible incompatibilities."
+msgstr ""
+"Le workflow utilisait un programme nommé ''{0}'', qui n''est plus "
+"disponible.\n"
+"Il a été remplacé par le programme ''{1}''.\n"
+"Il est possible que cette version ne soit pas compatible complètement avec "
+"l''ancienne; la présence d''avertissements ci-après vous donnera, si besoin, "
+"les détails sur ces incompatibilités."
+
+#: wf.xmlwarnings.prg_declares_invalid_param
+msgid ""
+"The program ''{0}'' used a parameter named ''{1}'' which is not valid anymore "
+"(the value for this parameter was: ''{2}'')."
+msgstr ""
+"Le programme ''{0}'' utilisait un paramètre ''{1}'' qui n''est plus valide "
+"(la valeur pour ce paramètre était: ''{2}'')."
+
+#: wf.xmlwarnings.prg_param_has_invalid_value
+msgid ""
+"The program ''{0}'' declared an invalid value for parameter ''{1}''. This "
+"value was ''{2}'' and it is not valid anymore: the parameter''s value was "
+"reset to the default value ''{3}''."
+msgstr ""
+"Le programme ''{0}'' déclarait une valeur invalide pour le paramètre ''{1}''. "
+"Cette valeur était ''{2}''; la valeur du paramètre a été réinitialisée à la "
+"valeur par défaut: ''{3}''."
+
+#: wf.xmlwarnings.prg_has_invalid_link
+msgid ""
+"The program ''{0}'' was linked to an output of the program ''{1}'' (output "
+"identified as ''{2}'') but the link is invalid (either ''{1}'' is not longer "
+"a valid program in the workflow, or its corresponding output is not valid "
+"anymore).\n"
+"The link between the two programs could not be restored."
+msgstr ""
+"Le programme ''{0}'' était relié à une sortie du programme ''{1}'' (sortie "
+"identifiée comme: ''{2}'') mais ce lien n''est plus valide (soit ''{1}'' "
+"n''est plus un programme valide, soit cette sortie n''est plus valide).\n"
+"Le lien entre les deux programmes n''a pas pu être rétabli."
+
+#: wf.xmlwarnings.prg_link_is_inactive
+msgid ""
+"The output ''{1}'' of program ''{0}'' and the input ''{3}'' of program "
+"''{2}'' were linked one to each other, but at least one of them is not "
+"activated in the current parametering of these two programs.\n"
+"The link between the two programs could not be restored."
+msgstr ""
+"La sortie ''{1}'' du programme ''{0}'' et l''entrée ''{3}'' du programme "
+"''{2}'' étaient liés l''un à l''autre, mais l''un et/ou l''autre de ces "
+"entrées/sorties n''est plus actif dans la configuration actuelle des "
+"programmes.\n"
+"Le lien entre les deux programmes n''a pas pu être rétabli."
+
+#: wf.xmlwarnings.prg_contains_useless_parameter
+msgid ""
+"Info: the program ''{0}'' declares a parameter ''{1}'' (param.''s type is "
+"''{2}''): this parameter is ignored (Note: this message is purely "
+"informational, it can be safely ignored)"
+msgstr ""
+"Info: le programme ''{0}'' déclare un paramètre ''{1}'' (de type ''{2}''): ce "
+"paramètre est ignoré (Note: ce message est pour information seulement, vous "
+"pouvez l''ignorer)"
+
+#: eu.telecom_bretagne.praxis.core.execution.Result.Status.UNSET
+msgid "Unset"
+msgstr "Non disponible"
+
+#: eu.telecom_bretagne.praxis.core.execution.Result.Status.SUBMITTED
+msgid "Submitted"
+msgstr "Soumis"
+
+#: eu.telecom_bretagne.praxis.core.execution.Result.Status.RUNNING
+msgid "Execution in progress"
+msgstr "En cours d''exécution"
+
+#: eu.telecom_bretagne.praxis.core.execution.Result.Status.OK
+msgctxt "eu.telecom_bretagne.praxis.core.execution.Result.Status.OK"
+msgid "OK"
+msgstr "OK"
+
+#: eu.telecom_bretagne.praxis.core.execution.Result.Status.WARNING
+msgid "OK, with warnings"
+msgstr "OK, avec avertissements"
+
+#: eu.telecom_bretagne.praxis.core.execution.Result.Status.ERROR
+msgctxt "eu.telecom_bretagne.praxis.core.execution.Result.Status.ERROR"
+msgid "Error"
+msgstr "Erreur"
+
+#: eu.telecom_bretagne.praxis.core.execution.Result.Status.CANCELLED
+msgid "Cancelled"
+msgstr "Annulé"
+
+#: eu.telecom_bretagne.praxis.licence
+msgctxt "eu.telecom_bretagne.praxis.licence"
+msgid ""
+msgstr ""
+
+#: eu.telecom_bretagne.praxis.included_libs_licences
+msgctxt "eu.telecom_bretagne.praxis.included_libs_licences"
+msgid ""
+msgstr ""
+
+#: project.licence
+msgctxt "project.licence"
+msgid ""
+msgstr ""
diff --git a/data/i18n/praxis_el.properties b/data/i18n/praxis_el.properties
new file mode 100644
index 0000000000000000000000000000000000000000..a8a0d11382068bb73d90df4c9384af63a9031bdc
--- /dev/null
+++ b/data/i18n/praxis_el.properties
@@ -0,0 +1,376 @@
+
+UI.OptionsDialog.title                     = \u0395\u03c0\u03b9\u03bb\u03bf\u03b3\u03ad\u03c2
+
+UI.TabbedPane.close                        = \u039a\u03bb\u03b5\u03af\u03c3\u03b9\u03bc\u03bf
+UI.TabbedPane.close_others                 = \u039a\u03bb\u03b5\u03af\u03c3\u03b9\u03bc\u03bf \u03ac\u03bb\u03bb\u03c9\u03bd
+UI.TabbedPane.close_all                    = \u039a\u03bb\u03b5\u03af\u03c3\u03b9\u03bc\u03bf \u03cc\u03bb\u03c9\u03bd
+UI.TabbedPane.results                      = \u038c\u03bb\u03b1 \u03c4\u03b1 \u03b1\u03c0\u03bf\u03c4\u03b5\u03bb\u03ad\u03c3\u03bc\u03b1\u03c4\u03b1...
+
+UI.actions.display_preferences.error                  = \u03a0\u03b1\u03c1\u03bf\u03c5\u03c3\u03b9\u03ac\u03c3\u03c4\u03b7\u03ba\u03b5 \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7 \u03b4\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03c4\u03bf\u03c5 \u03c0\u03af\u03bd\u03b1\u03ba\u03b1 \u03c0\u03c1\u03bf\u03c4\u03b9\u03bc\u03ae\u03c3\u03b5\u03c9\u03bd
+UI.actions.execute_wf.confirm                         = \u0395\u03af\u03c3\u03c4\u03b5 \u03b2\u03ad\u03b2\u03b1\u03b9\u03bf\u03b9 \u03cc\u03c4\u03b9 \u03b8\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03b5\u03ba\u03c4\u03b5\u03bb\u03ad\u03c3\u03b5\u03c4\u03b5 \u03c4\u03b7 \u03c1\u03bf\u03ae \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd {0}?
+UI.actions.execute_wf.error                           = \u0397 \u03b5\u03ba\u03c4\u03ad\u03bb\u03b5\u03c3\u03b7 \u03c4\u03b7\u03c2 \u03c1\u03bf\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd \u03b1\u03c0\u03ad\u03c4\u03c5\u03c7\u03b5
+UI.actions.execute_wf.title                           = \u0395\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03af\u03c9\u03c3\u03b7 \u03b5\u03ba\u03c4\u03ad\u03bb\u03b5\u03c3\u03b7\u03c2 \u03c4\u03b7\u03c2 \u03c1\u03bf\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd
+UI.actions.execute_wf.invalid_workflow                = \u0394\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03b5\u03ba\u03c4\u03ad\u03bb\u03b5\u03c3\u03b7 \u03bc\u03b9\u03b1\u03c2 \u03bc\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03b7\u03c2 \u03c1\u03bf\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03ce\u03bd, \u03b5\u03bb\u03ad\u03b3\u03be\u03c4\u03b5 \u03c4\u03b9\u03c2 \u03c0\u03b1\u03c1\u03b1\u03bc\u03ad\u03c4\u03c1\u03bf\u03c5\u03c2 \u03c4\u03c9\u03bd \u03c0\u03c1\u03bf\u03b3\u03c1\u03b1\u03bc\u03bc\u03ac\u03c4\u03c9\u03bd \u03ba\u03b1\u03b9 \u03c3\u03c5\u03bd\u03b4\u03ad\u03c3\u03c4\u03b5 \u03cc\u03bb\u03b1 \u03c4\u03b1 \u03c3\u03c4\u03bf\u03b9\u03c7\u03b5\u03af\u03b1 \u03b5\u03b9\u03c3\u03cc\u03b4\u03bf\u03c5.
+UI.actions.finished_exec.msg                          = \u0397 \u03c1\u03bf\u03ae \u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1\u03c2 {0} \u03ad\u03c7\u03b5\u03b9 \u03b5\u03ba\u03c4\u03b5\u03bb\u03b5\u03c3\u03c4\u03b5\u03af \u03bc\u03b5 \u03b5\u03c0\u03b9\u03c4\u03c5\u03c7\u03af\u03b1
+UI.actions.finished_exec_with_errors.msg              = \u0397 \u03b5\u03ba\u03c4\u03ad\u03bb\u03b5\u03c3\u03b7 \u03c4\u03b7\u03c2 {0} \u03c4\u03b5\u03bb\u03b5\u03af\u03c9\u03c3\u03b5: \u03c0\u03b1\u03c1\u03bf\u03c5\u03c3\u03b9\u03ac\u03c3\u03c4\u03b7\u03ba\u03b5 \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1
+UI.actions.finished_exec_with_warnings.msg            = \u0397 \u03b5\u03ba\u03c4\u03ad\u03bb\u03b5\u03c3\u03b7 \u03c4\u03b7\u03c2 {0} \u03c4\u03b5\u03bb\u03b5\u03af\u03c9\u03c3\u03b5: \u03c5\u03c0\u03ae\u03c1\u03c7\u03b1\u03bd \u03bf\u03c1\u03b9\u03c3\u03bc\u03ad\u03bd\u03b5\u03c2 \u03c0\u03c1\u03bf\u03b5\u03b9\u03b4\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03b9\u03c2, \u03b5\u03bb\u03ad\u03b3\u03be\u03c4\u03b5 \u03c4\u03b1 \u03b1\u03c0\u03bf\u03c4\u03b5\u03bb\u03ad\u03c3\u03bc\u03b1\u03c4\u03b1 \u03b3\u03b9\u03b1 \u03bb\u03b5\u03c0\u03c4\u03bf\u03bc\u03ad\u03c1\u03b5\u03b9\u03b5\u03c2
+UI.actions.finished_exec.title                        = \u03a4\u03ad\u03bb\u03bf\u03c2 \u03b5\u03ba\u03c4\u03ad\u03bb\u03b5\u03c3\u03b7\u03c2
+UI.actions.wf_close                                   = \u039a\u03bb\u03b5\u03af\u03c3\u03b9\u03bc\u03bf
+UI.actions.wf_close_tt                                = \u039a\u03bb\u03b5\u03af\u03c3\u03b9\u03bc\u03bf \u03c4\u03c1\u03ad\u03c7\u03bf\u03c5\u03c3\u03b1\u03c2 \u03c1\u03bf\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd
+UI.actions.wf_close_all                               = \u039a\u03bb\u03b5\u03af\u03c3\u03b9\u03bc\u03bf \u03cc\u03bb\u03c9\u03bd
+UI.actions.wf_close_all_tt                            = \u039a\u03bb\u03b5\u03af\u03c3\u03b9\u03bc\u03bf \u03cc\u03bb\u03c9\u03bd \u03c4\u03c9\u03bd \u03c1\u03bf\u03ce\u03bd \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd
+UI.actions.wf_close_others                            = \u039a\u03bb\u03b5\u03af\u03c3\u03b9\u03bc\u03bf \u03ac\u03bb\u03bb\u03c9\u03bd
+UI.actions.wf_close_others_tt                         = \u039a\u03bb\u03b5\u03af\u03c3\u03b9\u03bc\u03bf \u03ac\u03bb\u03bb\u03c9\u03bd \u03c1\u03bf\u03ce\u03bd \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd
+UI.actions.wf_export                                  = \u0395\u03be\u03b1\u03b3\u03c9\u03b3\u03ae \u03c7\u03c9\u03c1\u03af\u03c2 \u03b1\u03c1\u03c7\u03b5\u03af\u03b1 \u03b5\u03b9\u03c3\u03cc\u03b4\u03bf\u03c5...
+UI.actions.wf_export_tt                               = \u0395\u03be\u03b1\u03b3\u03c9\u03b3\u03ae \u03c1\u03bf\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd
+UI.actions.wf_export_with_infiles                     = \u0395\u03be\u03b1\u03b3\u03c9\u03b3\u03ae \u03bc\u03b5 \u03b1\u03c1\u03c7\u03b5\u03af\u03b1 \u03b5\u03b9\u03c3\u03cc\u03b4\u03bf\u03c5...
+UI.actions.wf_export_with_infiles_tt                  = \u0395\u03be\u03b1\u03b3\u03c9\u03b3\u03ae \u03c1\u03bf\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd \u03ba\u03b1\u03b9 \u03cc\u03bb\u03c9\u03bd \u03c4\u03c9\u03bd \u03b1\u03c1\u03c7\u03b5\u03af\u03c9\u03bd \u03b5\u03b9\u03c3\u03cc\u03b4\u03bf\u03c5 \u03c3\u03b5 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf zip
+UI.actions.wf_import                                  = \u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae...
+UI.actions.wf_import_as_new                           = \u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03c9\u03c2 \u03bd\u03ad\u03b1...
+UI.actions.wf_import_as_new_tt                        = \u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03bc\u03af\u03b1\u03c2 \u03c1\u03bf\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd \u03c9\u03c2 \u03bd\u03ad\u03b1 \u03c1\u03bf\u03ae \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd
+UI.actions.wf_import_tt                               = \u0395\u03b9\u03c3\u03b1\u03b3\u03ac\u03b3\u03b5\u03c4\u03b5 \u03bc\u03b9\u03b1 \u03c1\u03bf\u03ae \u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1\u03c2 \u03c3\u03c4\u03bf \u03c4\u03c1\u03ad\u03c7\u03bf\u03bd \u03b5\u03c0\u03b9\u03bb\u03b5\u03b3\u03bc\u03ad\u03bd\u03bf
+UI.actions.wf_new                                     = \u039d\u03ad\u03b1
+UI.actions.wf_new_tt                                  = \u0394\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03bc\u03af\u03b1\u03c2 \u03bd\u03ad\u03b1\u03c2 \u03c1\u03bf\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd
+UI.actions.wf_open                                    = \u0386\u03bd\u03bf\u03b9\u03b3\u03bc\u03b1...
+UI.actions.wf_open_tt                                 = \u0386\u03bd\u03bf\u03b9\u03b3\u03bc\u03b1 \u03bc\u03af\u03b1\u03c2 \u03c5\u03c0\u03ac\u03c1\u03c7\u03bf\u03c5\u03c3\u03b1\u03c2 \u03c1\u03bf\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd
+UI.actions.wf_open_err_no_workflow                    = <html>\u0394\u03b5\u03bd \u03c5\u03c0\u03ac\u03c1\u03c7\u03bf\u03c5\u03bd \u03b1\u03ba\u03cc\u03bc\u03b7 \u03c5\u03c0\u03ac\u03c1\u03c7\u03bf\u03c5\u03c3\u03b5\u03c2 \u03c1\u03bf\u03ad\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd!<br/>\
+\u0393\u03b9\u03b1 \u03bd\u03b1 \u03b4\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03ae\u03c3\u03b5\u03c4\u03b5 \u03bc\u03b9\u03b1 \u03bd\u03ad\u03b1 \u03c1\u03bf\u03ae \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd, \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03c4\u03b5 \u03c4\u03bf \u03bc\u03b5\u03bd\u03bf\u03cd "\u03a1\u03bf\u03ae \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd" \u03ba\u03b1\u03b9 \u03b5\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 "\u039d\u03ad\u03b1"</html>
+UI.actions.wf_open_err_all_workflows_already_opened   = \u038c\u03bb\u03b5\u03c2 \u03bf\u03b9 \u03c5\u03c0\u03ac\u03c1\u03c7\u03bf\u03c5\u03c3\u03b5\u03c2 \u03c1\u03bf\u03ad\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03ae\u03b4\u03b7 \u03b1\u03bd\u03bf\u03b9\u03c7\u03c4\u03ad\u03c2!
+UI.actions.wf_save                                    = \u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7
+UI.actions.wf_save_as                                 = \u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7 \u03c9\u03c2...
+UI.actions.wf_save_as_tt                              = \u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7 \u03c9\u03c2...
+UI.actions.wf_save_tt                                 = \u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7 \u03c4\u03b7\u03c2 \u03c4\u03c1\u03ad\u03c7\u03bf\u03c5\u03c3\u03b1\u03c2 \u03c1\u03bf\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd
+UI.actions.show_results.connect_err                   = \u0394\u03b5\u03bd \u03ae\u03c4\u03b1\u03bd \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03b1\u03bd\u03ac\u03ba\u03c4\u03b7\u03c3\u03b7 \u03c4\u03c9\u03bd \u03b1\u03c0\u03bf\u03c4\u03b5\u03bb\u03b5\u03c3\u03bc\u03ac\u03c4\u03c9\u03bd
+UI.actions.show_results.connect_err.title             = \u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7\u03c2
+UI.actions.show_results.empty                         = \u0394\u03b5\u03bd \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9 \u03b4\u03b9\u03b1\u03b8\u03ad\u03c3\u03b9\u03bc\u03bf \u03b1\u03c0\u03bf\u03c4\u03ad\u03bb\u03b5\u03c3\u03bc\u03b1 \u03b3\u03b9\u03b1 \u03b1\u03c5\u03c4\u03ae\u03bd \u03c4\u03b7 \u03c1\u03bf\u03ae \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd
+UI.actions.show_results.empty.title                   = \u0391\u03c0\u03bf\u03c4\u03b5\u03bb\u03ad\u03c3\u03bc\u03b1\u03c4\u03b1
+UI.actions.stop_exec.error                            = \u03a3\u03c6\u03ac\u03bb\u03bc\u03b1: \u03b7 \u03b5\u03ba\u03c4\u03ad\u03bb\u03b5\u03c3\u03b7 \u03b4\u03b5\u03bd \u03bc\u03c0\u03bf\u03c1\u03bf\u03cd\u03c3\u03b5 \u03bd\u03b1 \u03b4\u03b9\u03b1\u03ba\u03bf\u03c0\u03b5\u03af
+UI.actions.valid_links_confirm                        = \u0395\u03af\u03c3\u03c4\u03b5 \u03b2\u03ad\u03b2\u03b1\u03b9\u03bf\u03b9 \u03cc\u03c4\u03b9 \u03b8\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03b1\u03c0\u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03c4\u03b5 \u03c4\u03bf\u03bd \u03b1\u03c5\u03c4\u03cc\u03bc\u03b1\u03c4\u03bf \u03ad\u03bb\u03b5\u03b3\u03c7\u03bf \u03c4\u03b7\u03c2 \u03b5\u03b3\u03ba\u03c5\u03c1\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 \u03c4\u03c9\u03bd \u03c3\u03c5\u03bd\u03b4\u03ad\u03c3\u03b5\u03c9\u03bd \u03bc\u03b5\u03c4\u03b1\u03be\u03cd \u03c0\u03c1\u03bf\u03b3\u03c1\u03b1\u03bc\u03bc\u03ac\u03c4\u03c9\u03bd;
+UI.actions.create_file_error                          = \u0391\u03b4\u03c5\u03bd\u03b1\u03bc\u03af\u03b1 \u03b4\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03af\u03b1\u03c2 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5 {0}
+UI.actions.create_existing_file_error                 = \u0391\u03b4\u03c5\u03bd\u03b1\u03bc\u03af\u03b1 \u03b4\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03af\u03b1\u03c2 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5 {0}: \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9 \u03ae\u03b4\u03b7
+UI.actions.zoom_in                                    = \u039c\u03b5\u03b3\u03ad\u03b8\u03c5\u03bd\u03c3\u03b7
+UI.actions.zoom_in_tt                                 = \u03a3\u03c7\u03b5\u03b4\u03b9\u03ac\u03b6\u03b5\u03b9 \u03bc\u03b9\u03b1 \u03bc\u03b5\u03b3\u03b1\u03bb\u03cd\u03c4\u03b5\u03c1\u03b7 \u03c1\u03bf\u03ae \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03b4\u03b9\u03b1\u03ba\u03c1\u03af\u03bd\u03b5\u03c4\u03b5 \u03ba\u03b1\u03bb\u03cd\u03c4\u03b5\u03c1\u03b1 \u03c4\u03b9\u03c2 \u03bb\u03b5\u03c0\u03c4\u03bf\u03bc\u03ad\u03c1\u03b5\u03b9\u03b5\u03c2
+UI.actions.zoom_original                              = \u0396\u03bf\u03c5\u03bc 1:1
+UI.actions.zoom_original_tt                           = \u0395\u03c0\u03b1\u03bd\u03b1\u03c6\u03ad\u03c1\u03b5\u03b9 \u03c4\u03bf\u03bd \u03c0\u03c1\u03bf\u03b5\u03c0\u03b9\u03bb\u03b5\u03b3\u03bc\u03ad\u03bd\u03bf \u03c3\u03c5\u03bd\u03c4\u03b5\u03bb\u03b5\u03c3\u03c4\u03ae \u03b6\u03bf\u03c5\u03bc
+UI.actions.zoom_out                                   = \u03a3\u03bc\u03af\u03ba\u03c1\u03c5\u03bd\u03c3\u03b7
+UI.actions.zoom_out_tt                                = \u03a3\u03c7\u03b5\u03b4\u03b9\u03ac\u03b6\u03b5\u03b9 \u03bc\u03b9\u03b1 \u03bc\u03b9\u03ba\u03c1\u03cc\u03c4\u03b5\u03c1\u03b7 \u03c1\u03bf\u03ae \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03b4\u03b5\u03af\u03be\u03b5\u03b9 \u03ad\u03bd\u03b1 \u03bc\u03b5\u03b3\u03b1\u03bb\u03cd\u03c4\u03b5\u03c1\u03bf \u03bc\u03ad\u03c1\u03bf\u03c2 \u03c4\u03b7\u03c2
+UI.annotation.for_workflow                            = \u03a3\u03c7\u03cc\u03bb\u03b9\u03bf \u03b3\u03b9\u03b1 \u03c4\u03b7 \u03c1\u03bf\u03ae \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd ''{0}''
+UI.annotation.for_program                             = \u03a3\u03c7\u03cc\u03bb\u03b9\u03bf \u03b3\u03b9\u03b1 \u03c4\u03bf \u03c0\u03c1\u03cc\u03b3\u03c1\u03b1\u03bc\u03bc\u03b1: ''{0}''
+UI.ctrlwf.run.file_does_not_exist                     = \u03a4\u03bf \u0391\u03c1\u03c7\u03b5\u03af\u03bf {0} \u03b4\u03b5\u03bd \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9
+UI.ctrlwf.run.file_unreadable                         = \u03a4\u03bf \u0391\u03c1\u03c7\u03b5\u03af\u03bf {0} \u03b4\u03b5\u03bd \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03b4\u03b9\u03b1\u03b2\u03b1\u03c3\u03c4\u03b5\u03af
+UI.ctrlwf.run.zip_failed                              = \u0397 \u03b5\u03ba\u03c4\u03ad\u03bb\u03b5\u03c3\u03b7 \u03c4\u03b7\u03c2 \u03c1\u03bf\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd \u03b1\u03c0\u03ad\u03c4\u03c5\u03c7\u03b5: \u03c0\u03b1\u03c1\u03bf\u03c5\u03c3\u03b9\u03ac\u03c3\u03c4\u03b7\u03ba\u03b5 \u03bc\u03b7 \u03b1\u03bd\u03b1\u03bc\u03b5\u03bd\u03cc\u03bc\u03b5\u03bd\u03bf \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7\u03bd \u03c0\u03c1\u03bf\u03b5\u03c4\u03bf\u03b9\u03bc\u03b1\u03c3\u03af\u03b1 \u03c4\u03b7\u03c2 \u03b5\u03ba\u03c4\u03ad\u03bb\u03b5\u03c3\u03b7\u03c2\n\
+\n\
+\u039b\u03b5\u03c0\u03c4\u03bf\u03bc\u03ad\u03c1\u03b5\u03b9\u03b5\u03c2:\n\
+{0}\n\
+
+UI.ctrlwf.run.zip_failed_missing_file                 = \u0397 \u03b5\u03ba\u03c4\u03ad\u03bb\u03b5\u03c3\u03b7 \u03c4\u03b7\u03c2 \u03c1\u03bf\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd \u03b1\u03c0\u03ad\u03c4\u03c5\u03c7\u03b5: \u03c4\u03bf\u03c5\u03bb\u03ac\u03c7\u03b9\u03c3\u03c4\u03bf\u03bd \u03ad\u03bd\u03b1 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf \u03b5\u03b9\u03c3\u03cc\u03b4\u03bf\u03c5 \u03b4\u03b5\u03bd \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9!\n\
+\n\
+\u039b\u03b5\u03c0\u03c4\u03bf\u03bc\u03ad\u03c1\u03b5\u03b9\u03b5\u03c2:\n\
+{0}\n\
+
+UI.datasource.unset_path                              = <\u03b4\u03b5\u03bd \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03c4\u03b7\u03ba\u03b5>
+
+UI.dialog.about                                       = \u03a3\u03c7\u03b5\u03c4\u03b9\u03ba\u03ac...
+UI.dialog.about_content                               = <html>\
+  {0}\
+  <hr>\
+  <i>Powered by Praxis - Version {1} ({2})<br>\
+     &copy; Institut Mines Telecom - IMT Atlantique Bretagne-Pays de la Loire 2002-2018<br>\
+     All rights reserved.</i><br>\
+     <small>Build: {3}</small>\
+  <hr>\
+  </div>\
+</html>
+UI.dialog.about_msg                                   =
+UI.dialog.connection.connect_to_server                = \u0395\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03c4\u03b5 \u03c4\u03b7 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03bc\u03b5 \u03c4\u03bf \u03b4\u03b9\u03b1\u03ba\u03bf\u03bc\u03b9\u03c3\u03c4\u03ae:
+UI.dialog.connection.enter_login_passwd               = \u039a\u03b1\u03c4\u03b1\u03c7\u03c9\u03c1\u03af\u03c3\u03c4\u03b5 \u03c4\u03b1 \u03c3\u03c4\u03bf\u03b9\u03c7\u03b5\u03af\u03b1 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7\u03c2 \u03ba\u03b1\u03b9 \u03c4\u03bf\u03bd \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03ae\u03c2 \u03c3\u03b1\u03c2
+UI.dialog.connection.login                            = Login:
+UI.dialog.connection.passwd                           = \u039a\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2:
+UI.dialog.connection.server                           = \u0394\u03b9\u03b1\u03ba\u03bf\u03bc\u03b9\u03c3\u03c4\u03ae\u03c2 (host:port):
+UI.dialog.connection.title                            = \u0388\u03bd\u03b1\u03c1\u03be\u03b7 \u03b5\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae\u03c2...
+UI.dialog.connection_failure                          = \u0391\u03c0\u03bf\u03c4\u03c5\u03c7\u03af\u03b1 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7\u03c2 \u03bc\u03b5 \u03c4\u03bf \u03b4\u03b9\u03b1\u03ba\u03bf\u03bc\u03b9\u03c3\u03c4\u03ae, \u03b4\u03bf\u03ba\u03b9\u03bc\u03ac\u03c3\u03c4\u03b5 \u03be\u03b1\u03bd\u03ac \u03b1\u03c1\u03b3\u03cc\u03c4\u03b5\u03c1\u03b1
+UI.dialog.connection_failure_title                    = \u0391\u03c0\u03bf\u03c4\u03c5\u03c7\u03af\u03b1 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7\u03c2
+UI.dialog.datasource_inputs.add                       = \u03a0\u03c1\u03bf\u03c3\u03b8\u03ae\u03ba\u03b7
+UI.dialog.datasource_inputs.delete                    = \u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae
+UI.dialog.datasource_inputs.file                      = \u0391\u03c1\u03c7\u03b5\u03af\u03b1
+UI.dialog.datasource_inputs.title                     = \u0399\u03b4\u03b9\u03cc\u03c4\u03b7\u03c4\u03b5\u03c2 \u03c0\u03b7\u03b3\u03ae\u03c2 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd
+UI.dialog.default_filesource_displayname              = \u0391\u03c1\u03c7\u03b5\u03af\u03bf
+UI.dialog.default_directorysource_displayname         = \u0395\u03c5\u03c1\u03b5\u03c4\u03ae\u03c1\u03b9\u03bf
+UI.dialog.disconnect_confirm                          = \u0398\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03b1\u03c0\u03bf\u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af\u03c4\u03b5 \u03b1\u03c0\u03cc \u03c4\u03bf \u03b4\u03b9\u03b1\u03ba\u03bf\u03bc\u03b9\u03c3\u03c4\u03ae;
+UI.dialog.disconnect_confirm_title                    = \u0391\u03c0\u03bf\u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03b1\u03c0\u03cc \u03c4\u03bf \u03b4\u03b9\u03b1\u03ba\u03bf\u03bc\u03b9\u03c3\u03c4\u03ae
+UI.dialog.error                                       = \u03a3\u03c6\u03ac\u03bb\u03bc\u03b1!
+UI.dialog.file_chooser.title                          = \u03a0\u03c1\u03bf\u03c3\u03b8\u03ae\u03ba\u03b7 \u03b1\u03c1\u03c7\u03b5\u03af\u03c9\u03bd
+UI.dialog.file.overwrite                              = \u03a4\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf \u03ae\u03b4\u03b7 \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9: \u03b1\u03bd\u03c4\u03b9\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7;
+UI.dialog.help.title                                  = \u0392\u03bf\u03ae\u03b8\u03b5\u03b9\u03b1
+UI.dialog.help.not_available                          = \u0394\u03b5\u03bd \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9 \u03b4\u03b9\u03b1\u03b8\u03ad\u03c3\u03b9\u03bc\u03b7 \u03b2\u03bf\u03ae\u03b8\u03b5\u03b9\u03b1 \u03c0\u03c1\u03bf\u03c2 \u03c4\u03bf \u03c0\u03b1\u03c1\u03cc\u03bd
+UI.dialog.image.save.failed_title                     = \u0391\u03c0\u03bf\u03c4\u03c5\u03c7\u03af\u03b1 \u03b1\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7\u03c2 \u03c4\u03bf\u03c5 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5
+UI.dialog.image.save.failed                           = \u0394\u03b5\u03bd \u03ae\u03c4\u03b1\u03bd \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03b1\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7 \u03c4\u03b7\u03c2 \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1\u03c2: \u03c0\u03b1\u03c1\u03bf\u03c5\u03c3\u03b9\u03ac\u03c3\u03c4\u03b7\u03ba\u03b5 \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1
+UI.dialog.import.label_wf                             = \u03a1\u03bf\u03ae \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd
+UI.dialog.import.label_ws                             = \u03a7\u03ce\u03c1\u03bf\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1\u03c2
+UI.dialog.import.msg_wf                               = \u03a0\u03bf\u03b9\u03b1 \u03c1\u03bf\u03ae \u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1\u03c2 \u03b8\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03b5\u03b9\u03c3\u03ac\u03b3\u03b5\u03c4\u03b5;
+UI.dialog.import.title                                = \u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae
+UI.dialog.save_as.title                               = \u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7 \u03c9\u03c2
+UI.dialog.rename.title                                = \u039c\u03b5\u03c4\u03bf\u03bd\u03bf\u03bc\u03b1\u03c3\u03af\u03b1
+UI.dialog.logging_err_msg                             = \u0394\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7: \u03bb\u03ac\u03b8\u03bf\u03c2 login/\u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2
+UI.dialog.login_mandatory                             = \u03a0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b4\u03ce\u03c3\u03b5\u03c4\u03b5 \u03ad\u03bd\u03b1 \u03cc\u03bd\u03bf\u03bc\u03b1 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7\u03c2!
+UI.dialog.open.label_wf                               = \u0395\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u03c4\u03b7 \u03c1\u03bf\u03ae \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd \u03b3\u03b9\u03b1 \u03ac\u03bd\u03bf\u03b9\u03b3\u03bc\u03b1:\n\
+\n\
+
+UI.dialog.open.label_ws                               = \u0395\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u03c4\u03bf \u03c7\u03ce\u03c1\u03bf \u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1\u03c2 \u03b3\u03b9\u03b1 \u03ac\u03bd\u03bf\u03b9\u03b3\u03bc\u03b1:\n\
+\n\
+
+UI.dialog.open.title                                  = \u0386\u03bd\u03bf\u03b9\u03b3\u03bc\u03b1
+UI.dialog.datasource.rename_title                     = \u039c\u03b5\u03c4\u03bf\u03bd\u03bf\u03bc\u03b1\u03c3\u03af\u03b1 \u03c4\u03b7\u03c2 \u03c0\u03b7\u03b3\u03ae\u03c2 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd
+UI.dialog.datasource.rename                           = \u0395\u03b9\u03c3\u03ac\u03b3\u03b5\u03c4\u03b5\u03b3\u03b5\u03c4\u03b5 \u03c4\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03b1\u03c5\u03c4\u03bf\u03cd \u03c4\u03bf\u03c5 \u03c3\u03c4\u03bf\u03b9\u03c7\u03b5\u03af\u03bf\u03c5:
+UI.dialog.datasource.incorrect_name_title             = \u039b\u03b1\u03bd\u03b8\u03b1\u03c3\u03bc\u03ad\u03bd\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1
+UI.dialog.datasource.incorrect_name                   = \u039f\u03b9 \u03c7\u03b1\u03c1\u03b1\u03ba\u03c4\u03ae\u03c1\u03b5\u03c2 :, ?, /, \\, <, >, \" \u03ba\u03b1\u03b9 | \u03b4\u03b5\u03bd \u03b5\u03c0\u03b9\u03c4\u03c1\u03ad\u03c0\u03bf\u03bd\u03c4\u03b1\u03b9
+UI.dialog.datasource.name_already_exists              = \u0388\u03bd\u03b1 \u03ac\u03bb\u03bb\u03bf \u03c3\u03c4\u03bf\u03b9\u03c7\u03b5\u03af\u03bf \u03ad\u03c7\u03b5\u03b9 \u03c4\u03bf \u03af\u03b4\u03b9\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1, \u03b5\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u03ac\u03bb\u03bb\u03bf.
+UI.dialog.prg_properties.descr_window_title           = \u03a0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u03c4\u03bf\u03c5 {0}
+UI.dialog.prg_properties.main_label                   = \u03a0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u03c4\u03bf\u03c5 {0}  (\u03ba\u03ac\u03bd\u03c4\u03b5 \u03ba\u03bb\u03b9\u03ba \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03b4\u03b5\u03af\u03c4\u03b5)
+UI.dialog.prg_properties.parameters                   = \u03a0\u03b1\u03c1\u03ac\u03bc\u03b5\u03c4\u03c1\u03bf\u03b9:
+UI.dialog.prg_properties.parameters_default           = (\u03ba\u03b1\u03b9 \u03b7 \u03c0\u03c1\u03bf\u03b5\u03c0\u03b9\u03bb\u03b5\u03b3\u03bc\u03ad\u03bd\u03b7 \u03c4\u03b9\u03bc\u03ae \u03c4\u03bf\u03c5\u03c2)
+UI.dialog.prg_properties.title                        = \u0399\u03b4\u03b9\u03cc\u03c4\u03b7\u03c4\u03b5\u03c2 \u03c0\u03c1\u03bf\u03b3\u03c1\u03ac\u03bc\u03bc\u03b1\u03c4\u03bf\u03c2
+UI.dialog.quit                                        = \u0395\u03b3\u03ba\u03b1\u03c4\u03b1\u03bb\u03b5\u03af\u03c8\u03c4\u03b5
+UI.dialog.quit_and_disconnect_msg                     = \n\
+\u0398\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03b5\u03b3\u03ba\u03b1\u03c4\u03b1\u03bb\u03b5\u03af\u03c8\u03b5\u03c4\u03b5;\n\
+
+UI.dialog.quit_msg                                    = \u0398\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03ba\u03bb\u03b5\u03af\u03c3\u03b5\u03c4\u03b5 \u03c4\u03b7\u03bd \u03b5\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae;
+UI.dialog.save_ws.btn_none                            = \u039a\u03b1\u03bd\u03ad\u03bd\u03b1
+UI.dialog.save_ws.btn_ok                              = OK
+UI.dialog.save_ws.msg                                 = \u0395\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u03c4\u03b7 \u03c1\u03bf\u03ae \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd \u03b3\u03b9\u03b1 \u03b1\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7 :
+UI.dialog.save_ws.title                               = \u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7 {0}
+UI.dialog.wf.already_opened                           = \u0397 \u03c3\u03c5\u03b3\u03ba\u03b5\u03ba\u03c1\u03b9\u03bc\u03ad\u03bd\u03b7 \u03c1\u03bf\u03ae \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03ae\u03b4\u03b7 \u03b1\u03bd\u03bf\u03b9\u03c7\u03c4\u03ae!
+UI.dialog.wf.close_confirm                            = \u0398\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03c5\u03c4\u03b5\u03af \u03b7 \u03c1\u03bf\u03ae \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd "{0}" \u03c0\u03c1\u03b9\u03bd \u03ba\u03bb\u03b5\u03af\u03c3\u03b5\u03b9;
+UI.dialog.wf.close_title                              = \u039a\u03bb\u03b5\u03af\u03c3\u03b9\u03bc\u03bf \u03bc\u03af\u03b1\u03c2 \u03c1\u03bf\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd
+UI.dialog.wf.enter_name                               = \u0395\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u03ad\u03bd\u03b1 \u03cc\u03bd\u03bf\u03bc\u03b1 \u03b3\u03b9\u03b1 \u03c4\u03b7 \u03c1\u03bf\u03ae \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd:
+UI.dialog.wf.creation_failed_ws_not_selected          = \u03a0\u03c1\u03b9\u03bd \u03b4\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03ae\u03c3\u03b5\u03c4\u03b5 \u03bc\u03af\u03b1 \u03c1\u03bf\u03ae \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd, \u03b4\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03ae\u03c3\u03c4\u03b5 \u03ae \u03b5\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u03c4\u03bf\u03bd \u03c7\u03ce\u03c1\u03bf \u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1\u03c2 \u03c3\u03c4\u03bf\u03bd \u03bf\u03c0\u03bf\u03af\u03bf \u03b1\u03bd\u03ae\u03ba\u03b5\u03b9 \u03b7 \u03bd\u03ad\u03b1 \u03c1\u03bf\u03ae \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd
+UI.dialog.wf.creation_failure_title                   = \u0391\u03c0\u03bf\u03c4\u03c5\u03c7\u03af\u03b1 \u03b4\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03af\u03b1\u03c2 \u03c4\u03b7\u03c2 \u03c1\u03bf\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd
+UI.dialog.wf.creation_title                           = \u039d\u03ad\u03b1 \u03c1\u03bf\u03ae \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd
+UI.dialog.wf.delete_result_confirm_title              = \u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae \u03b1\u03c0\u03bf\u03c4\u03b5\u03bb\u03ad\u03c3\u03bc\u03b1\u03c4\u03bf\u03c2
+UI.dialog.wf.delete_result_confirm                    = \u0395\u03af\u03c3\u03c4\u03b5 \u03b2\u03ad\u03b2\u03b1\u03b9\u03bf\u03b9 \u03cc\u03c4\u03b9 \u03b8\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03b4\u03b9\u03b1\u03b3\u03c1\u03ac\u03c8\u03b5\u03c4\u03b5 \u03bf\u03c1\u03b9\u03c3\u03c4\u03b9\u03ba\u03ac \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03b1\u03c0\u03bf\u03c4\u03ad\u03bb\u03b5\u03c3\u03bc\u03b1;
+UI.dialog.wf.delete_all_results_confirm_title         = \u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae \u03cc\u03bb\u03c9\u03bd \u03c4\u03c9\u03bd \u03b1\u03c0\u03bf\u03c4\u03b5\u03bb\u03b5\u03c3\u03bc\u03ac\u03c4\u03c9\u03bd
+UI.dialog.wf.delete_all_results_confirm               = \u0395\u03af\u03c3\u03c4\u03b5 \u03b2\u03ad\u03b2\u03b1\u03b9\u03bf\u03b9 \u03cc\u03c4\u03b9 \u03b8\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03b4\u03b9\u03b1\u03b3\u03c1\u03ac\u03c8\u03b5\u03c4\u03b5 \u03bf\u03c1\u03b9\u03c3\u03c4\u03b9\u03ba\u03ac \u03cc\u03bb\u03b1 \u03b1\u03c5\u03c4\u03ac \u03c4\u03b1 \u03b1\u03c0\u03bf\u03c4\u03b5\u03bb\u03ad\u03c3\u03bc\u03b1\u03c4\u03b1;
+UI.dialog.wf.delete                                   = \u0394\u03b9\u03b1\u03b3\u03c1\u03ac\u03c8\u03c4\u03b5 \u03c4\u03b7\u03bd \u03c4\u03c1\u03ad\u03c7\u03bf\u03c5\u03c3\u03b1 \u03c1\u03bf\u03ae \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd
+UI.dialog.wf.delete_confirm                           = \n\
+\u0395\u03af\u03c3\u03c4\u03b5 \u03b2\u03ad\u03b2\u03b1\u03b9\u03bf\u03b9 \u03cc\u03c4\u03b9 \u03b8\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03b4\u03b9\u03b1\u03b3\u03c1\u03ac\u03c8\u03b5\u03c4\u03b5 \u03bf\u03c1\u03b9\u03c3\u03c4\u03b9\u03ba\u03ac \u03b1\u03c5\u03c4\u03ae \u03c4\u03b7 \u03c1\u03bf\u03ae \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd;n\
+\n\
+\u0397 \u03b4\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae \u03c4\u03b7\u03c2 \u03c1\u03bf\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd \u03b8\u03b1 \u03b4\u03b9\u03b1\u03b3\u03c1\u03ac\u03c8\u03b5\u03b9 \u03b5\u03c0\u03af\u03c3\u03b7\u03c2 \u03bf\u03c1\u03b9\u03c3\u03c4\u03b9\u03ba\u03ac \u03c4\u03b1 \u03b1\u03c0\u03bf\u03c4\u03b5\u03bb\u03ad\u03c3\u03bc\u03b1\u03c4\u03ac \u03c4\u03b7\u03c2.\n\
+
+UI.dialog.wf.existing_names                           = \u039f\u03b9 \u03ae\u03b4\u03b7 \u03ba\u03b1\u03b8\u03bf\u03c1\u03b9\u03c3\u03bc\u03ad\u03bd\u03b5\u03c2 \u03c1\u03bf\u03ad\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd \u03b5\u03af\u03bd\u03b1\u03b9:
+UI.dialog.wf.export_title                             = \u0395\u03be\u03b1\u03b3\u03c9\u03b3\u03ae \u03bc\u03af\u03b1\u03c2 \u03c1\u03bf\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd
+UI.dialog.wf.export_failed                            = \u0397 \u03b5\u03be\u03b1\u03b3\u03c9\u03b3\u03ae \u03c4\u03b7\u03c2 \u03c1\u03bf\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd \u03b1\u03c0\u03ad\u03c4\u03c5\u03c7\u03b5
+UI.dialog.wf.import_cannot_extract                    = \u0394\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03b5\u03be\u03b1\u03b3\u03c9\u03b3\u03ae \u03c4\u03c9\u03bd \u03b1\u03c1\u03c7\u03b5\u03af\u03c9\u03bd
+UI.dialog.wf.import_cannot_create_dir                 = \u0394\u03b5\u03bd \u03ae\u03c4\u03b1\u03bd \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03b4\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03c4\u03bf\u03c5 \u03b5\u03c0\u03b9\u03bb\u03b5\u03b3\u03bc\u03ad\u03bd\u03bf\u03c5 \u03b5\u03c5\u03c1\u03b5\u03c4\u03b7\u03c1\u03af\u03bf\u03c5. \u0395\u03bb\u03ad\u03b3\u03be\u03c4\u03b5 \u03cc\u03c4\u03b9 \u03ad\u03c7\u03b5\u03c4\u03b5 \u03c4\u03b1 \u03b5\u03c0\u03b1\u03c1\u03ba\u03ae \u03b4\u03b9\u03ba\u03b1\u03b9\u03ce\u03bc\u03b1\u03c4\u03b1 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03c4\u03bf \u03ba\u03ac\u03bd\u03b5\u03c4\u03b5.
+UI.dialog.wf.import_cannot_read_zip                   = \u0394\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03b1\u03bd\u03ac\u03b3\u03bd\u03c9\u03c3\u03b7 \u03c4\u03bf\u03c5 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5 zip
+UI.dialog.wf.import_create_dir                        = \u03a4\u03bf \u03b5\u03c5\u03c1\u03b5\u03c4\u03ae\u03c1\u03b9\u03bf \u03c0\u03bf\u03c5 \u03b5\u03c0\u03b9\u03bb\u03ad\u03b3\u03b5\u03c4\u03b5 \u03b4\u03b5\u03bd \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9, \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03c4\u03bf \u03b4\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03ae\u03c3\u03bf\u03c5\u03bc\u03b5;
+UI.dialog.wf.import_drop_file_in_dir                  = \u039a\u03b1\u03c4\u03b1\u03c1\u03b3\u03ae\u03c3\u03c4\u03b5 \u03c4\u03b1 \u03b1\u03c1\u03c7\u03b5\u03af\u03b1 \u03b5\u03b9\u03c3\u03cc\u03b4\u03bf\u03c5 \u03c3\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03b5\u03c5\u03c1\u03b5\u03c4\u03ae\u03c1\u03b9\u03bf
+UI.dialog.wf.import_failure                           = \u03a0\u03b1\u03c1\u03bf\u03c5\u03c3\u03b9\u03ac\u03c3\u03c4\u03b7\u03ba\u03b5 \u03ad\u03bd\u03b1 \u03bc\u03b7 \u03b1\u03bd\u03b1\u03bc\u03b5\u03bd\u03cc\u03bc\u03b5\u03bd\u03bf \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7\u03bd \u03b5\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03c4\u03b7\u03c2 \u03c1\u03bf\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd
+UI.dialog.wf.import_failure_title                     = \u0397 \u03b5\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03bc\u03b9\u03b1\u03c2 \u03c1\u03bf\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd \u03b1\u03c0\u03ad\u03c4\u03c5\u03c7\u03b5
+UI.dialog.wf.import_impossible_coz_execution          = \u0394\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03b5\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03c1\u03bf\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7 \u03b4\u03b9\u03ac\u03c1\u03ba\u03b5\u03b9\u03b1 \u03bc\u03af\u03b1\u03c2 \u03b5\u03ba\u03c4\u03ad\u03bb\u03b5\u03c3\u03b7\u03c2
+UI.dialog.wf.import_invalid_archive                   = \u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf
+UI.dialog.wf.import_not_a_dir                         = \u03a4\u03bf "{0}" \u03b4\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b5\u03c5\u03c1\u03b5\u03c4\u03ae\u03c1\u03b9\u03bf. \u0395\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u03ad\u03bd\u03b1 \u03b5\u03c5\u03c1\u03b5\u03c4\u03ae\u03c1\u03b9\u03bf.
+UI.dialog.wf.invalid_name_empty                       = \u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf \u03ba\u03b5\u03bd\u03cc \u03cc\u03bd\u03bf\u03bc\u03b1!
+UI.dialog.wf.invalid_name_already_exists              = \u039c\u03b9\u03b1 \u03ac\u03bb\u03bb\u03b7 \u03c1\u03bf\u03ae \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd \u03bc\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9 \u03ae\u03b4\u03b7!
+UI.dialog.wf.open_failed_no_workflow                  = \u0394\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03b5\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03bf\u03c0\u03bf\u03b9\u03b1\u03c3\u03b4\u03ae\u03c0\u03bf\u03c4\u03b5 \u03c1\u03bf\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd: \u03b4\u03b5\u03bd \u03b2\u03c1\u03ad\u03b8\u03b7\u03ba\u03b5 \u03ba\u03b1\u03bc\u03af\u03b1
+UI.dialog.wf.open_failed_xml_not_conform_to_DTD       = \u0391\u03c0\u03bf\u03c4\u03c5\u03c7\u03af\u03b1 \u03b1\u03bd\u03bf\u03af\u03b3\u03bc\u03b1\u03c4\u03bf\u03c2 \u03c4\u03b7\u03c2 \u03c1\u03bf\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd: \u03a4\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf xml \u03b4\u03b5\u03bd \u03c3\u03c5\u03bc\u03bc\u03bf\u03c1\u03c6\u03ce\u03bd\u03b5\u03c4\u03b1\u03b9 \u03bc\u03b5 \u03c4\u03bf DTD
+UI.dialog.wf.open_failure                             = \u03a0\u03b1\u03c1\u03bf\u03c5\u03c3\u03b9\u03ac\u03c3\u03c4\u03b7\u03ba\u03b5 \u03ad\u03bd\u03b1 \u03bc\u03b7 \u03b1\u03bd\u03b1\u03bc\u03b5\u03bd\u03cc\u03bc\u03b5\u03bd\u03bf \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03ba\u03b1\u03c4\u03ac \u03c4\u03bf \u03ac\u03bd\u03bf\u03b9\u03b3\u03bc\u03b1 \u03c4\u03b7\u03c2 \u03c1\u03bf\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd
+UI.dialog.wf.rename_save_before_confirm               = \u0397 \u03c1\u03bf\u03ae \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd \u03ad\u03c7\u03b5\u03b9 \u03c4\u03c1\u03bf\u03c0\u03bf\u03c0\u03bf\u03b9\u03b7\u03b8\u03b5\u03af \u03ba\u03b1\u03b9 \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03c5\u03c4\u03b5\u03af \u03c0\u03c1\u03b9\u03bd \u03bc\u03b5\u03c4\u03bf\u03bd\u03bf\u03bc\u03b1\u03c3\u03c4\u03b5\u03af.\n\
+\u0398\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03c4\u03b7\u03bd \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03cd\u03c3\u03b5\u03c4\u03b5 \u03c4\u03ce\u03c1\u03b1;
+UI.dialog.wf.open_failure_title                       = \u0391\u03c0\u03bf\u03c4\u03c5\u03c7\u03af\u03b1 \u03b1\u03bd\u03bf\u03af\u03b3\u03bc\u03b1\u03c4\u03bf\u03c2 \u03bc\u03af\u03b1\u03c2 \u03c1\u03bf\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd
+UI.dialog.wf.open_select_workflows                    = \u0395\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u03c1\u03bf\u03ae(-\u03ad\u03c2) \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd \u03b3\u03b9\u03b1 \u03ac\u03bd\u03bf\u03b9\u03b3\u03bc\u03b1:
+UI.dialog.wf.rename_failure_title                     = \u0391\u03c0\u03bf\u03c4\u03c5\u03c7\u03af\u03b1 \u03bc\u03b5\u03c4\u03bf\u03bd\u03bf\u03bc\u03b1\u03c3\u03af\u03b1\u03c2 \u03bc\u03b9\u03b1\u03c2 \u03c1\u03bf\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd
+UI.dialog.wf.rename_impossible                        = \u0391\u03c0\u03bf\u03c4\u03c5\u03c7\u03af\u03b1 \u03bc\u03b5\u03c4\u03bf\u03bd\u03bf\u03bc\u03b1\u03c3\u03af\u03b1\u03c2 \u03bc\u03b9\u03b1\u03c2 \u03c1\u03bf\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd (\u03ac\u03b3\u03bd\u03c9\u03c3\u03c4\u03bf\u03c2 \u03bb\u03cc\u03b3\u03bf\u03c2).\n\
+\u0388\u03bd\u03b1\u03c2 \u03c0\u03b9\u03b8\u03b1\u03bd\u03cc\u03c2 \u03bb\u03cc\u03b3\u03bf\u03c2 \u03b8\u03b1 \u03bc\u03c0\u03bf\u03c1\u03bf\u03cd\u03c3\u03b5 \u03bd\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03cc\u03c4\u03b9 \u03c4\u03b1 \u03b1\u03bd\u03c4\u03af\u03c3\u03c4\u03bf\u03b9\u03c7\u03b1 \u03b1\u03c1\u03c7\u03b5\u03af\u03b1 \u03b1\u03bd\u03bf\u03af\u03b3\u03bf\u03c5\u03bd \u03b1\u03c5\u03c4\u03ae\u03bd \u03c4\u03b7 \u03c3\u03c4\u03b9\u03b3\u03bc\u03ae \u03c3\u03b5 \u03ad\u03bd\u03b1 \u03ac\u03bb\u03bb\u03bf \u03b5\u03c1\u03b3\u03b1\u03bb\u03b5\u03af\u03bf.
+UI.dialog.wf.rename_impossible_coz_execution          = \u039c\u03b9\u03b1 \u03c1\u03bf\u03ae \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd \u03b4\u03b5\u03bd \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03bc\u03b5\u03c4\u03bf\u03bd\u03bf\u03bc\u03b1\u03c3\u03c4\u03b5\u03af \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7 \u03b4\u03b9\u03ac\u03c1\u03ba\u03b5\u03b9\u03b1 \u03bc\u03af\u03b1\u03c2 \u03b5\u03ba\u03c4\u03ad\u03bb\u03b5\u03c3\u03b7\u03c2
+UI.dialog.wf.rename_title                             = \u039c\u03b5\u03c4\u03bf\u03bd\u03bf\u03bc\u03b1\u03c3\u03af\u03b1 \u03c4\u03b7\u03c2 {0}
+UI.dialog.wf.save_title                               = \u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7 \u03bc\u03af\u03b1\u03c2 \u03c1\u03bf\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd
+UI.dialog.wf.save_failed                              = \u0391\u03b4\u03c5\u03bd\u03b1\u03bc\u03af\u03b1 \u03b1\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7\u03c2 \u03c4\u03b7\u03c2 \u03c1\u03bf\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd
+UI.dialog.wf.delete_title                             = \u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae \u03c4\u03b7\u03c2 \u03c1\u03bf\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd {0}
+UI.dialog.wf.delete_confirm_msg                       = \u0395\u03af\u03c3\u03c4\u03b5 \u03c3\u03af\u03b3\u03bf\u03c5\u03c1\u03bf\u03b9 \u03cc\u03c4\u03b9 \u03b8\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03b4\u03b9\u03b1\u03b3\u03c1\u03ac\u03c8\u03b5\u03c4\u03b5 \u03c4\u03b7 \u03c1\u03bf\u03ae \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd {0}?
+UI.dialog.wf.delete_confirm_msg_with_results          = \u0395\u03af\u03c3\u03c4\u03b5 \u03c3\u03af\u03b3\u03bf\u03c5\u03c1\u03bf\u03b9 \u03cc\u03c4\u03b9 \u03b8\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03b4\u03b9\u03b1\u03b3\u03c1\u03ac\u03c8\u03b5\u03c4\u03b5 \u03c4\u03b7 \u03c1\u03bf\u03ae \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd {0}?\n\
+\u0391\u03c5\u03c4\u03ae \u03b7 \u03c1\u03bf\u03ae \u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1\u03c2 \u03ad\u03c7\u03b5\u03b9 \u03ae\u03b4\u03b7 \u03b5\u03ba\u03c4\u03b5\u03bb\u03b5\u03c3\u03c4\u03b5\u03af, \u03b7 \u03b4\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae \u03b8\u03b1 \u03b4\u03b9\u03b1\u03b3\u03c1\u03ac\u03c8\u03b5\u03b9 \u03b5\u03c0\u03af\u03c3\u03b7\u03c2 \u03cc\u03bb\u03b1 \u03c4\u03b1 \u03b1\u03bd\u03c4\u03af\u03c3\u03c4\u03bf\u03b9\u03c7\u03b1 \u03b1\u03c0\u03bf\u03c4\u03b5\u03bb\u03ad\u03c3\u03bc\u03b1\u03c4\u03b1.
+UI.dialog.wf.warnings_title                           = \u0397 \u03c1\u03bf\u03ae \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd \u03b1\u03c0\u03b1\u03b9\u03c4\u03b5\u03af \u03b5\u03bb\u03ad\u03b3\u03c7\u03bf\u03c5\u03c2
+UI.dialog.wf.warnings                                 = \u03a0\u03c1\u03bf\u03b5\u03b9\u03b4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7: \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7 \u03c6\u03cc\u03c1\u03c4\u03c9\u03c3\u03b7 \u03c4\u03b7\u03c2 \u03c1\u03bf\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd \u03b5\u03bd\u03c4\u03bf\u03c0\u03af\u03b6\u03bf\u03bd\u03c4\u03b1\u03b9 \u03bf\u03c1\u03b9\u03c3\u03bc\u03ad\u03bd\u03b5\u03c2 \u03b1\u03c3\u03c5\u03bd\u03ad\u03c0\u03b5\u03b9\u03b5\u03c2 \
+\u03c3\u03c4\u03b7\u03bd \u03c0\u03b1\u03c1\u03b1\u03bc\u03b5\u03c4\u03c1\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03bf\u03c1\u03b9\u03c3\u03bc\u03ad\u03bd\u03c9\u03bd \u03c0\u03c1\u03bf\u03b3\u03c1\u03b1\u03bc\u03bc\u03ac\u03c4\u03c9\u03bd. \n\
+\u0398\u03b1 \u03b2\u03c1\u03b5\u03af\u03c4\u03b5 \u03c0\u03b1\u03c1\u03b1\u03ba\u03ac\u03c4\u03c9 \u03c4\u03b9\u03c2 \u03bb\u03b5\u03c0\u03c4\u03bf\u03bc\u03ad\u03c1\u03b5\u03b9\u03b5\u03c2 \u03c4\u03c9\u03bd \u03c3\u03c6\u03b1\u03bb\u03bc\u03ac\u03c4\u03c9\u03bd \u03c0\u03bf\u03c5 \u03ad\u03c7\u03bf\u03c5\u03bd \u03b4\u03b9\u03bf\u03c1\u03b8\u03c9\u03b8\u03b5\u03af \u03b1\u03c5\u03c4\u03cc\u03bc\u03b1\u03c4\u03b1. \n\
+\u03a3\u03c5\u03bd\u03b9\u03c3\u03c4\u03ac\u03c4\u03b1\u03b9 \u03bd\u03b1 \u03b5\u03bb\u03ad\u03b3\u03be\u03b5\u03c4\u03b5 \u03b1\u03c5\u03c4\u03ad\u03c2 \u03c4\u03b9\u03c2 \u03b4\u03b9\u03bf\u03c1\u03b8\u03ce\u03c3\u03b5\u03b9\u03c2 \u03ba\u03b1\u03b9 \u03b5\u03c0\u03af\u03c3\u03b7\u03c2 \u03bd\u03b1 \u03b2\u03b5\u03b2\u03b1\u03b9\u03c9\u03b8\u03b5\u03af\u03c4\u03b5 \u03cc\u03c4\u03b9 \u03b7 \u03c0\u03b1\u03c1\u03b1\u03bc\u03b5\u03c4\u03c1\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03c4\u03c9\u03bd \u03c3\u03c7\u03b5\u03c4\u03b9\u03ba\u03ce\u03bd \u03c0\u03c1\u03bf\u03b3\u03c1\u03b1\u03bc\u03bc\u03ac\u03c4\u03c9\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03c3\u03c9\u03c3\u03c4\u03ae.
+
+UI.dialog.result.rename                               = \u038c\u03bd\u03bf\u03bc\u03b1 \u03c4\u03bf\u03c5 \u03b1\u03c0\u03bf\u03c4\u03b5\u03bb\u03ad\u03c3\u03bc\u03b1\u03c4\u03bf\u03c2:
+UI.dialog.result.rename_title                         = \u039c\u03b5\u03c4\u03bf\u03bd\u03bf\u03bc\u03b1\u03c3\u03af\u03b1 \u03b5\u03bd\u03cc\u03c2 \u03b1\u03c0\u03bf\u03c4\u03b5\u03bb\u03ad\u03c3\u03bc\u03b1\u03c4\u03bf\u03c2
+UI.dialog.result.rename_failed_title                  = \u0391\u03c0\u03bf\u03c4\u03c5\u03c7\u03af\u03b1 \u03bc\u03b5\u03c4\u03bf\u03bd\u03bf\u03bc\u03b1\u03c3\u03af\u03b1\u03c2 \u03c4\u03bf\u03c5 \u03b1\u03c0\u03bf\u03c4\u03b5\u03bb\u03ad\u03c3\u03bc\u03b1\u03c4\u03bf\u03c2
+UI.dialog.result.rename_failed                        = \u03a4\u03bf \u03b1\u03c0\u03bf\u03c4\u03ad\u03bb\u03b5\u03c3\u03bc\u03b1 \u03b4\u03b5\u03bd \u03bc\u03c0\u03bf\u03c1\u03bf\u03cd\u03c3\u03b5 \u03bd\u03b1 \u03bc\u03b5\u03c4\u03bf\u03bd\u03bf\u03bc\u03b1\u03c3\u03c4\u03b5\u03af.
+UI.dialog.btn_cancel                                  = \u0386\u03ba\u03c5\u03c1\u03bf
+UI.dialog.btn_ok                                      = OK
+UI.dialog.btn_apply                                   = \u0391\u03af\u03c4\u03b7\u03c3\u03b7
+UI.dialog.btn.overwrite                               = \u0391\u03bd\u03c4\u03b9\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7
+UI.dialog.btn_open                                    = \u0386\u03bd\u03bf\u03b9\u03b3\u03bc\u03b1
+UI.dialog.select_results.btn_display                  = \u03a0\u03b1\u03c1\u03bf\u03c5\u03c3\u03af\u03b1\u03c3\u03b7
+UI.dialog.select_results.header                       = \u0395\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u03c4\u03b1 \u03b1\u03c0\u03bf\u03c4\u03b5\u03bb\u03ad\u03c3\u03bc\u03b1\u03c4\u03b1 \u03b3\u03b9\u03b1 \u03c0\u03b1\u03c1\u03bf\u03c5\u03c3\u03af\u03b1\u03c3\u03b7:\n\
+
+UI.dialog.select_results.title                        = \u03a4\u03b1 \u03b1\u03c0\u03bf\u03c4\u03b5\u03bb\u03ad\u03c3\u03bc\u03b1\u03c4\u03b1 \u03b1\u03c0\u03cc {0}
+UI.dialog.results.title                               = \u0391\u03c0\u03bf\u03c4\u03b5\u03bb\u03ad\u03c3\u03bc\u03b1\u03c4\u03b1
+UI.dialog.splash.img_path                             = data/client/images/splash.jpg
+UI.dialog.splash.init_msg                             = \u0391\u03c1\u03c7\u03b9\u03ba\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7...
+
+UI.dialog.change_language                             = \u039a\u03ac\u03bd\u03c4\u03b5 \u03b5\u03c0\u03b1\u03bd\u03b5\u03ba\u03ba\u03af\u03bd\u03b7\u03c3\u03b7 \u03c4\u03bf\u03c5 \u03bb\u03bf\u03b3\u03b9\u03c3\u03bc\u03b9\u03ba\u03bf\u03cd \u03b3\u03b9\u03b1 \u03c4\u03b7\u03bd \u03b1\u03bb\u03bb\u03b1\u03b3\u03ae \u03b3\u03bb\u03ce\u03c3\u03c3\u03b1\u03c2 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03ad\u03c7\u03b5\u03c4\u03b5 \u03bf\u03bb\u03bf\u03ba\u03bb\u03b7\u03c1\u03c9\u03bc\u03ad\u03bd\u03bf \u03b1\u03c0\u03bf\u03c4\u03ad\u03bb\u03b5\u03c3\u03bc\u03b1!
+UI.dialog.change_language_title                       = \u0391\u03bb\u03bb\u03ac\u03be\u03c4\u03b5 \u03c4\u03b7 \u03b3\u03bb\u03ce\u03c3\u03c3\u03b1 \u03c4\u03bf\u03c5 \u03bb\u03bf\u03b3\u03b9\u03c3\u03bc\u03b9\u03ba\u03bf\u03cd
+
+UI.menu.display                                       = \u03a0\u03b1\u03c1\u03bf\u03c5\u03c3\u03af\u03b1\u03c3\u03b7
+UI.menu.edit                                          = \u0395\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1
+UI.menu.execution                                     = \u0395\u03ba\u03c4\u03ad\u03bb\u03b5\u03c3\u03b7
+UI.menu.file                                          = \u0391\u03c1\u03c7\u03b5\u03af\u03bf
+UI.menu.help_about                                    = ?
+UI.menu.prefs                                         = \u03a0\u03c1\u03bf\u03c4\u03b9\u03bc\u03ae\u03c3\u03b5\u03b9\u03c2
+UI.menu.workflow                                      = \u03a1\u03bf\u03ae \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd
+UI.menu.workspace                                     = \u03a7\u03ce\u03c1\u03bf\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1\u03c2
+UI.menu_items.about                                   = \u03a3\u03c7\u03b5\u03c4\u03b9\u03ba\u03ac...
+UI.menu_items.about_tt                                = \u03a3\u03c7\u03b5\u03c4\u03b9\u03ba\u03ac \u03bc\u03b5 \u03c4\u03bf \u03bb\u03bf\u03b3\u03b9\u03c3\u03bc\u03b9\u03ba\u03cc
+UI.menu_items.check_valid_links                       = \u0392\u03b5\u03b2\u03b1\u03b9\u03c9\u03b8\u03b5\u03af\u03c4\u03b5 \u03cc\u03c4\u03b9 \u03bf\u03b9 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03bc\u03bf\u03b9 \u03b5\u03af\u03bd\u03b1\u03b9 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf\u03b9
+UI.menu_items.check_valid_links_tt                    = \u0395\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03c4\u03b5/\u03b1\u03c0\u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03c4\u03b5 \u03c4\u03b7\u03bd \u03b1\u03c5\u03c4\u03cc\u03bc\u03b1\u03c4\u03b7 \u03bb\u03b5\u03b9\u03c4\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03c0\u03bf\u03c5 \u03b5\u03bb\u03ad\u03b3\u03c7\u03b5\u03b9 \u03cc\u03c4\u03b9 \u03b4\u03cd\u03bf \u03c3\u03c4\u03bf\u03b9\u03c7\u03b5\u03af\u03b1 \u03bc\u03b9\u03b1\u03c2 \u03c1\u03bf\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd (\u03c0\u03c1\u03bf\u03b3\u03c1\u03ac\u03bc\u03bc\u03b1\u03c4\u03b1, \u03b1\u03c1\u03c7\u03b5\u03af\u03b1 \u03ae \u03b2\u03ac\u03c3\u03b5\u03b9\u03c2 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd) \u03b5\u03af\u03bd\u03b1\u03b9 \u03c3\u03c5\u03bc\u03b2\u03b1\u03c4\u03ac \u03cc\u03c4\u03b1\u03bd \u03c0\u03c1\u03bf\u03c3\u03c0\u03b1\u03b8\u03b5\u03af\u03c4\u03b5 \u03bd\u03b1 \u03c4\u03b1 \u03c3\u03c5\u03bd\u03b4\u03ad\u03c3\u03b5\u03c4\u03b5 \u03bc\u03b5\u03c4\u03b1\u03be\u03cd \u03c4\u03bf\u03c5\u03c2
+UI.menu_items.open_all_results                        = \u0391\u03bd\u03bf\u03af\u03be\u03c4\u03b5 \u03b1\u03c5\u03c4\u03cc\u03bc\u03b1\u03c4\u03b1 \u03cc\u03bb\u03b1 \u03c4\u03b1 \u03b1\u03c1\u03c7\u03b5\u03af\u03b1 \u03b1\u03c0\u03bf\u03c4\u03b5\u03bb\u03b5\u03c3\u03bc\u03ac\u03c4\u03c9\u03bd
+UI.menu_items.open_all_results_tt                     = \u0391\u03bd\u03bf\u03af\u03be\u03c4\u03b5 \u03cc\u03bb\u03b1 \u03c4\u03b1 \u03b1\u03c1\u03c7\u03b5\u03af\u03b1 \u03b1\u03c5\u03c4\u03cc\u03bc\u03b1\u03c4\u03b1 \u03cc\u03c4\u03b1\u03bd \u03b5\u03bc\u03c6\u03b1\u03bd\u03af\u03b6\u03b5\u03c4\u03b1\u03b9 \u03ad\u03bd\u03b1 \u03b1\u03c0\u03bf\u03c4\u03ad\u03bb\u03b5\u03c3\u03bc\u03b1
+UI.menu_items.options                                 = \u0395\u03c0\u03b9\u03bb\u03bf\u03b3\u03ad\u03c2...
+UI.menu_items.options_tt                              = \u0395\u03c0\u03b9\u03bb\u03bf\u03b3\u03ad\u03c2
+UI.menu_items.connect                                 = \u03a3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7
+UI.menu_items.connect_tt                              = \u03a3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03bc\u03b5 \u03c4\u03bf\u03bd \u03b4\u03b9\u03b1\u03ba\u03bf\u03bc\u03b9\u03c3\u03c4\u03ae
+UI.menu_items.copy                                    = \u0391\u03bd\u03c4\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae
+UI.menu_items.copy_tt                                 = \u0391\u03bd\u03c4\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u03c4\u03c9\u03bd \u03b5\u03c0\u03b9\u03bb\u03b5\u03b3\u03bc\u03ad\u03bd\u03c9\u03bd \u03b1\u03bd\u03c4\u03b9\u03ba\u03b5\u03b9\u03bc\u03ad\u03bd\u03c9\u03bd \u03c3\u03c4\u03bf \u03c0\u03c1\u03cc\u03c7\u03b5\u03b9\u03c1\u03bf
+UI.menu_items.delete                                  = \u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae
+UI.menu_items.delete_tt                               = \u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae \u03c4\u03c9\u03bd \u03b5\u03c0\u03b9\u03bb\u03b5\u03b3\u03bc\u03ad\u03bd\u03c9\u03bd \u03b1\u03bd\u03c4\u03b9\u03ba\u03b5\u03b9\u03bc\u03ad\u03bd\u03c9\u03bd
+UI.menu_items.disconnect                              = \u0391\u03c0\u03bf\u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7
+UI.menu_items.disconnect_tt                           = \u0391\u03c0\u03bf\u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03b1\u03c0\u03cc \u03c4\u03bf\u03bd \u03b4\u03b9\u03b1\u03ba\u03bf\u03bc\u03b9\u03c3\u03c4\u03ae
+UI.menu_items.edit_rename                             = \u039c\u03b5\u03c4\u03bf\u03bd\u03bf\u03bc\u03b1\u03c3\u03af\u03b1...
+UI.menu_items.edit_rename_tt                          = \u039c\u03b5\u03c4\u03bf\u03bd\u03bf\u03bc\u03b1\u03c3\u03af\u03b1 \u03c4\u03bf\u03c5 \u03b5\u03c0\u03b9\u03bb\u03b5\u03b3\u03bc\u03ad\u03bd\u03bf\u03c5 \u03c3\u03c4\u03bf\u03b9\u03c7\u03b5\u03af\u03bf\u03c5
+UI.menu_items.exit                                    = \u0388\u03be\u03bf\u03b4\u03bf\u03c2
+UI.menu_items.exit_tt                                 = \u0388\u03be\u03bf\u03b4\u03bf\u03c2 \u03b1\u03c0\u03cc \u03c4\u03b7\u03bd \u03b5\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae
+UI.menu_items.help                                    = \u0392\u03bf\u03ae\u03b8\u03b5\u03b9\u03b1
+UI.menu_items.help_tt                                 = \u0392\u03bf\u03ae\u03b8\u03b5\u03b9\u03b1
+UI.menu_items.paste                                   = \u0395\u03c0\u03b9\u03ba\u03cc\u03bb\u03bb\u03b7\u03c3\u03b7
+UI.menu_items.paste_tt                                = \u0395\u03c0\u03b9\u03ba\u03cc\u03bb\u03bb\u03b7\u03c3\u03b7 \u03c4\u03bf\u03c5 \u03c0\u03b5\u03c1\u03b9\u03b5\u03c7\u03cc\u03bc\u03b5\u03bd\u03bf\u03c5 \u03c4\u03bf\u03c5 \u03c0\u03c1\u03cc\u03c7\u03b5\u03b9\u03c1\u03bf\u03c5 \u03c3\u03c4\u03b7\u03bd \u03c4\u03c1\u03ad\u03c7\u03bf\u03c5\u03c3\u03b1 \u03c1\u03bf\u03ae \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd
+UI.menu_items.properties                              = \u0399\u03b4\u03b9\u03cc\u03c4\u03b7\u03c4\u03b5\u03c2...
+UI.menu_items.properties_tt                           = \u03a4\u03c1\u03bf\u03c0\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03c4\u03b5 \u03c4\u03b9\u03c2 \u03b9\u03b4\u03b9\u03cc\u03c4\u03b7\u03c4\u03b5\u03c2 \u03c4\u03bf\u03c5 \u03b5\u03c0\u03b9\u03bb\u03b5\u03b3\u03bc\u03ad\u03bd\u03bf\u03c5 \u03b1\u03bd\u03c4\u03b9\u03ba\u03b5\u03b9\u03bc\u03ad\u03bd\u03bf\u03c5
+UI.menu_items.wf_delete                               = \u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae \u03c4\u03b7\u03c2 \u03c1\u03bf\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd
+UI.menu_items.wf_delete_tt                            = \u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae \u03c4\u03b7\u03c2 \u03c4\u03c1\u03ad\u03c7\u03bf\u03c5\u03c3\u03b1\u03c2 \u03c1\u03bf\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd
+UI.menu_items.result_delete                           = \u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae \u03b1\u03c5\u03c4\u03bf\u03cd \u03c4\u03bf\u03c5 \u03b1\u03c0\u03bf\u03c4\u03b5\u03bb\u03ad\u03c3\u03bc\u03b1\u03c4\u03bf\u03c2
+UI.menu_items.result_delete_tt                        = \u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae \u03c4\u03bf\u03c5 \u03b5\u03c0\u03b9\u03bb\u03b5\u03b3\u03bc\u03ad\u03bd\u03bf\u03c5 \u03b1\u03c0\u03bf\u03c4\u03b5\u03bb\u03ad\u03c3\u03bc\u03b1\u03c4\u03bf\u03c2
+UI.menu_items.result_rename_tt                        = \u039c\u03b5\u03c4\u03bf\u03bd\u03bf\u03bc\u03b1\u03c3\u03af\u03b1...
+UI.menu_items.result_rename                           = \u039c\u03b5\u03c4\u03bf\u03bd\u03bf\u03bc\u03b1\u03c3\u03af\u03b1 \u03b1\u03c5\u03c4\u03bf\u03cd \u03c4\u03bf\u03c5 \u03b1\u03c0\u03bf\u03c4\u03b5\u03bb\u03ad\u03c3\u03bc\u03b1\u03c4\u03bf\u03c2
+UI.menu_items.all_results_delete                      = \u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae \u03cc\u03bb\u03c9\u03bd \u03c4\u03c9\u03bd \u03b1\u03c0\u03bf\u03c4\u03b5\u03bb\u03b5\u03c3\u03bc\u03ac\u03c4\u03c9\u03bd
+UI.menu_items.all_results_delete_tt                   = \u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae \u03cc\u03bb\u03c9\u03bd \u03c4\u03c9\u03bd \u03b1\u03c0\u03bf\u03c4\u03b5\u03bb\u03b5\u03c3\u03bc\u03ac\u03c4\u03c9\u03bd \u03b1\u03c5\u03c4\u03ae\u03c2 \u03c4\u03b7\u03c2 \u03c1\u03bf\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd
+UI.menu_items.wf_exec_stop                            = \u0394\u03b9\u03b1\u03ba\u03bf\u03c0\u03ae
+UI.menu_items.wf_exec_stop_tt                         = \u0394\u03b9\u03b1\u03ba\u03bf\u03c0\u03ae \u03c4\u03b7\u03c2 \u03b5\u03ba\u03c4\u03ad\u03bb\u03b5\u03c3\u03b7\u03c2
+UI.menu_items.wf_execute                              = \u0395\u03ba\u03c4\u03ad\u03bb\u03b5\u03c3\u03b7
+UI.menu_items.wf_execute_tt                           = \u0395\u03ba\u03c4\u03ad\u03bb\u03b5\u03c3\u03b7 \u03c4\u03b7\u03c2 \u03c4\u03c1\u03ad\u03c7\u03bf\u03c5\u03c3\u03b1\u03c2 \u03c1\u03bf\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd
+UI.menu_items.wf_rename                               = \u039c\u03b5\u03c4\u03bf\u03bd\u03bf\u03bc\u03b1\u03c3\u03af\u03b1...
+UI.menu_items.wf_rename_tt                            = \u039c\u03b5\u03c4\u03bf\u03bd\u03bf\u03bc\u03b1\u03c3\u03af\u03b1 \u03c4\u03b7\u03c2 \u03c4\u03c1\u03ad\u03c7\u03bf\u03c5\u03c3\u03b1\u03c2 \u03c1\u03bf\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd
+UI.menu_items.wf_results                              = \u0391\u03c0\u03bf\u03c4\u03b5\u03bb\u03ad\u03c3\u03bc\u03b1\u03c4\u03b1
+UI.menu_items.wf_results_tt                           = \u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03c4\u03c9\u03bd \u03b1\u03c0\u03bf\u03c4\u03b5\u03bb\u03b5\u03c3\u03bc\u03ac\u03c4\u03c9\u03bd \u03c4\u03b7\u03c2 \u03c1\u03bf\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1\u03c2
+UI.menu_items.show_statusbar                          = \u0393\u03c1\u03b1\u03bc\u03bc\u03ae \u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7\u03c2
+UI.menu_items.show_statusbar_tt                       = \u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7/\u03b1\u03c0\u03cc\u03ba\u03c1\u03c5\u03c8\u03b7 \u03c4\u03b7\u03c2 \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2 \u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7\u03c2
+UI.menu_items.show_toolbar                            = \u0393\u03c1\u03b1\u03bc\u03bc\u03ae \u03b5\u03c1\u03b3\u03b1\u03bb\u03b5\u03af\u03c9\u03bd
+UI.menu_items.show_toolbar_tt                         = \u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7/\u03b1\u03c0\u03cc\u03ba\u03c1\u03c5\u03c8\u03b7 \u03c4\u03b7\u03c2 \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2 \u03b5\u03c1\u03b3\u03b1\u03bb\u03b5\u03af\u03c9\u03bd
+
+UI.menu_items.create_file                             = \u0394\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03c4\u03bf\u03c5 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5
+UI.menu_items.open_with                               = \u0386\u03bd\u03bf\u03b9\u03b3\u03bc\u03b1 \u03bc\u03b5...
+UI.menu_items.display_file_action                     = \u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5
+UI.menu_items.display_file_action_tt                  = \u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03c4\u03bf\u03c5 \u03c0\u03b5\u03c1\u03b9\u03b5\u03c7\u03bf\u03bc\u03ad\u03bd\u03bf\u03c5 \u03c4\u03bf\u03c5 \u03b5\u03c0\u03b9\u03bb\u03b5\u03b3\u03bc\u03ad\u03bd\u03bf\u03c5 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5
+UI.menu_items.anti_aliasing                           = \u0395\u03be\u03bf\u03bc\u03ac\u03bb\u03c5\u03bd\u03c3\u03b7
+UI.menu_items.anti_aliasing_tt                        = \u03a7\u03c1\u03ae\u03c3\u03b7 \u03ae \u03cc\u03c7\u03b9 \u03b5\u03be\u03bf\u03bc\u03ac\u03bb\u03c5\u03bd\u03c3\u03b7\u03c2
+UI.menu_items.show_grid                               = \u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03c0\u03bb\u03ad\u03b3\u03bc\u03b1\u03c4\u03bf\u03c2
+UI.menu_items.show_grid_tt                            = \u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7/\u03b1\u03c0\u03cc\u03ba\u03c1\u03c5\u03c8\u03b7 \u03c4\u03bf\u03c5 \u03c0\u03bb\u03ad\u03b3\u03bc\u03b1\u03c4\u03bf\u03c2 \u03c3\u03c4\u03bf\u03bd \u03b5\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03c4\u03ae \u03b3\u03c1\u03b1\u03c6\u03b7\u03bc\u03ac\u03c4\u03c9\u03bd
+UI.menu_items.snap_to_grid                            = \u03a0\u03b1\u03c4\u03ae\u03c3\u03c4\u03b5 \u03c3\u03c4\u03bf \u03c0\u03bb\u03ad\u03b3\u03bc\u03b1
+UI.menu_items.snap_to_grid_tt                         = \u03a0\u03c1\u03bf\u03c3\u03b8\u03ad\u03c3\u03c4\u03b5 \u03c4\u03b1 \u03c3\u03c4\u03bf\u03b9\u03c7\u03b5\u03af\u03b1 \u03c3\u03c4\u03bf \u03c0\u03bb\u03ad\u03b3\u03bc\u03b1
+UI.menu_items.grid_size                               = \u039c\u03ad\u03b3\u03b5\u03b8\u03bf\u03c2 \u03c0\u03bb\u03ad\u03b3\u03bc\u03b1\u03c4\u03bf\u03c2
+UI.menu_items.grid_size_tt                            = \u03a4\u03c1\u03bf\u03c0\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03c4\u03b5 \u03c4\u03bf \u03bc\u03ad\u03b3\u03b5\u03b8\u03bf\u03c2 \u03c4\u03bf\u03c5 \u03c0\u03bb\u03ad\u03b3\u03bc\u03b1\u03c4\u03bf\u03c2
+UI.menu_items.grid_size_small                         = \u039c\u03b9\u03ba\u03c1\u03cc
+UI.menu_items.grid_size_medium                        = \u039c\u03ad\u03c4\u03c1\u03b9\u03bf
+UI.menu_items.grid_size_large                         = \u039c\u03b5\u03b3\u03ac\u03bb\u03bf
+UI.menu_items.arrow_style                             = \u03a3\u03c4\u03c5\u03bb \u03b2\u03ad\u03bb\u03bf\u03c5\u03c2
+UI.menu_items.arrow_style_orthogonal                  = \u039f\u03c1\u03b8\u03bf\u03b3\u03ce\u03bd\u03b9\u03bf
+UI.menu_items.arrow_style_straigh                     = \u0395\u03c5\u03b8\u03b5\u03af\u03bf
+UI.menu_items.save_as_image                           = \u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7 \u03c9\u03c2 \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1...
+UI.menu_items.save_as_image_tt                        = \u0391\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03cd\u03c3\u03c4\u03b5 \u03c4\u03b7 \u03c1\u03bf\u03ae \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd \u03c9\u03c2 \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1 PNG
+
+
+UI.menu_items.License                                 = \u0386\u03b4\u03b5\u03b9\u03b1...
+UI.menu_items.OtherLicenses                           = \u0386\u03b4\u03b5\u03b9\u03b5\u03c2 \u03c4\u03c1\u03af\u03c4\u03c9\u03bd \u03ba\u03b1\u03c4\u03b1\u03c3\u03ba\u03b5\u03c5\u03b1\u03c3\u03c4\u03ce\u03bd...
+UI.menu_items.changes                                 = \u03a4\u03c1\u03bf\u03c0\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03b9\u03c2...
+
+UI.menu_items.languages                               = \u03a1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03b9\u03c2 \u0393\u03bb\u03ce\u03c3\u03c3\u03b1\u03c2... (Language settings\u2026)
+# value                                               = language (translated language)
+UI.menu_items.language.el                             = \u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac
+UI.menu_items.language.en                             = English (\u0391\u03b3\u03b3\u03bb\u03b9\u03ba\u03ac)
+UI.menu_items.language.fr                             = Fran\u00e7ais (\u0393\u03b1\u03bb\u03bb\u03b9\u03ba\u03ac)
+UI.menu_items.language.es                             = Espa\u00f1ol (\u0399\u03c3\u03c0\u03b1\u03bd\u03b9\u03ba\u03ac)
+
+UI.progtree.database                                  = \u0392\u03ac\u03c3\u03b7 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd
+UI.progtree.datasource                                = \u03a3\u03c4\u03bf\u03b9\u03c7\u03b5\u03af\u03b1 \u03b5\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae\u03c2
+UI.progtree.file                                      = \u0391\u03c1\u03c7\u03b5\u03af\u03bf(\u03b1)
+UI.progtree.directory                                 = \u0395\u03c5\u03c1\u03b5\u03c4\u03ae\u03c1\u03b9\u03bf
+UI.progtree.programs                                  = \u03a0\u03c1\u03bf\u03b3\u03c1\u03ac\u03bc\u03bc\u03b1\u03c4\u03b1
+UI.results.info_title                                 = \u03a0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2
+UI.results.info_unimplemented                         = \u0394\u03b5\u03bd \u03c5\u03c0\u03ac\u03c1\u03c7\u03bf\u03c5\u03bd \u03c0\u03c1\u03cc\u03c3\u03b8\u03b5\u03c4\u03b5\u03c2 \u03c0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2 \u03c3\u03c7\u03b5\u03c4\u03b9\u03ba\u03ac \u03bc\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf
+UI.results.input_files_popup_menu                     = \u0391\u03c1\u03c7\u03b5\u03af\u03b1 \u03b5\u03b9\u03c3\u03cc\u03b4\u03bf\u03c5
+UI.results.file_truncated                             = \u0391\u03c5\u03c4\u03cc \u03c4\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf \u03b1\u03c0\u03bf\u03c4\u03b5\u03bb\u03b5\u03c3\u03bc\u03ac\u03c4\u03c9\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03c0\u03bf\u03bb\u03cd \u03bc\u03b5\u03b3\u03ac\u03bb\u03bf \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03b5\u03bc\u03c6\u03b1\u03bd\u03b9\u03c3\u03c4\u03b5\u03af \u03c3\u03b5 \u03b1\u03c5\u03c4\u03ae\u03bd \u03c4\u03b7\u03bd \u03c0\u03c1\u03bf\u03b2\u03bf\u03bb\u03ae: \u03b2\u03bb\u03ad\u03c0\u03b5\u03c4\u03b5 \u03bc\u03cc\u03bd\u03bf \u03c4\u03b7\u03bd \u03b1\u03c1\u03c7\u03ae \u03c4\u03bf\u03c5.\n\
+\u0393\u03b9\u03b1 \u03bd\u03b1 \u03c4\u03bf \u03b4\u03b5\u03af\u03c4\u03b5 \u03bf\u03bb\u03cc\u03ba\u03bb\u03b7\u03c1\u03bf, \u03b5\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u03ad\u03bd\u03b1\u03bd \u03b1\u03c0\u03cc \u03c4\u03b1 \u03b4\u03b9\u03b1\u03b8\u03ad\u03c3\u03b9\u03bc\u03b1 \u03b5\u03be\u03c9\u03c4\u03b5\u03c1\u03b9\u03ba\u03ac \u03c0\u03c1\u03bf\u03b3\u03c1\u03ac\u03bc\u03bc\u03b1\u03c4\u03b1 \u03c0\u03c1\u03bf\u03b2\u03bf\u03bb\u03ae\u03c2.
+UI.results.viewers.launch_failed                      = \u0394\u03b5\u03bd \u03ae\u03c4\u03b1\u03bd \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03b5\u03ba\u03ba\u03af\u03bd\u03b7\u03c3\u03b7 \u03c4\u03bf\u03c5 \u03b5\u03c0\u03b9\u03bb\u03b5\u03b3\u03bc\u03ad\u03bd\u03bf\u03c5 \u03b5\u03be\u03c9\u03c4\u03b5\u03c1\u03b9\u03ba\u03bf\u03cd \u03c0\u03c1\u03bf\u03b3\u03c1\u03ac\u03bc\u03bc\u03b1\u03c4\u03bf\u03c2 \u03c0\u03c1\u03bf\u03b2\u03bf\u03bb\u03ae\u03c2
+UI.results.viewers.load_failed                        = \u0394\u03b5\u03bd \u03ae\u03c4\u03b1\u03bd \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03c6\u03cc\u03c1\u03c4\u03c9\u03c3\u03b7 \u03c4\u03bf\u03c5 \u03b5\u03be\u03c9\u03c4\u03b5\u03c1\u03b9\u03ba\u03bf\u03cd \u03c0\u03c1\u03bf\u03b3\u03c1\u03ac\u03bc\u03bc\u03b1\u03c4\u03bf\u03c2 \u03c0\u03c1\u03bf\u03b2\u03bf\u03bb\u03ae\u03c2
+UI.status_msg.connect                                 = \u03a3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03bc\u03b5 \u03c4\u03bf\u03bd \u03b4\u03b9\u03b1\u03ba\u03bf\u03bc\u03b9\u03c3\u03c4\u03ae...
+UI.status_msg.logging                                 = \u0391\u03c0\u03bf\u03c3\u03c4\u03bf\u03bb\u03ae \u03b4\u03b9\u03b1\u03c0\u03b9\u03c3\u03c4\u03b5\u03c5\u03c4\u03b7\u03c1\u03af\u03c9\u03bd...
+
+UI.tab.close                                          = \u039a\u03bb\u03b5\u03af\u03c3\u03c4\u03b5 \u03b1\u03c5\u03c4\u03ae\u03bd \u03c4\u03b7\u03bd \u03ba\u03b1\u03c1\u03c4\u03ad\u03bb\u03b1
+
+UI.label.search                                     = \u0391\u03bd\u03b1\u03b6\u03ae\u03c4\u03b7\u03c3\u03b7:
+UI.label.service_unknown                            = \u0391\u03c5\u03c4\u03cc\u03c2 \u03bf \u03c0\u03cc\u03c1\u03bf\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9 \u03ac\u03b3\u03bd\u03c9\u03c3\u03c4\u03bf\u03c2: \u03b4\u03b5\u03bd \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03b7\u03b8\u03b5\u03af
+UI.label.invalid_program_description                = \u0397 \u03c0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u03b1\u03c5\u03c4\u03bf\u03cd \u03c4\u03bf\u03c5 \u03c0\u03c1\u03bf\u03b3\u03c1\u03ac\u03bc\u03bc\u03b1\u03c4\u03bf\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9 \u03ac\u03ba\u03c5\u03c1\u03b7, \u03b4\u03b5\u03bd \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03b7\u03b8\u03b5\u03af
+
+UI.view.opened_workflows                            = \u0391\u03bd\u03bf\u03b9\u03c7\u03c4\u03ad\u03c2 \u03c1\u03bf\u03ad\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd
+UI.view.resources                                   = \u03a0\u03c1\u03bf\u03b3\u03c1\u03ac\u03bc\u03bc\u03b1\u03c4\u03b1
+
+common.application_name                   =
+common.close                              = \u039a\u03bb\u03b5\u03af\u03c3\u03b9\u03bc\u03bf
+common.dialog.detailed_error.hide_details = \u039a\u03c1\u03cd\u03c8\u03b9\u03bc\u03bf \u03c4\u03c9\u03bd \u03bb\u03b5\u03c0\u03c4\u03bf\u03bc\u03b5\u03c1\u03b5\u03b9\u03ce\u03bd <<<
+common.dialog.detailed_error.show_details = \u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03c4\u03c9\u03bd \u03bb\u03b5\u03c0\u03c4\u03bf\u03bc\u03b5\u03c1\u03b5\u03b9\u03ce\u03bd >>>
+common.error                              = \u03a3\u03c6\u03ac\u03bb\u03bc\u03b1
+common.no                                 = \u038c\u03c7\u03b9
+common.yes                                = \u039d\u03b1\u03b9
+common.warning                            = \u03a0\u03c1\u03bf\u03b5\u03b9\u03b4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7
+common.client_out_of_date                 = \u0391\u03c5\u03c4\u03cc \u03c4\u03bf \u03c0\u03c1\u03cc\u03b3\u03c1\u03b1\u03bc\u03bc\u03b1-\u03c0\u03b5\u03bb\u03ac\u03c4\u03b7\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9 \u03b5\u03ba\u03c4\u03cc\u03c2 \u03bb\u03b5\u03b9\u03c4\u03bf\u03c5\u03c1\u03b3\u03af\u03b1\u03c2:\n\u0395\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u03bd\u03b1 \u03ba\u03ac\u03bd\u03b5\u03c4\u03b5 \u03bb\u03ae\u03c8\u03b7 \u03c4\u03bf\u03c5 \u03bd\u03ad\u03bf\u03c5 \u03c0\u03c1\u03bf\u03b3\u03c1\u03ac\u03bc\u03bc\u03b1\u03c4\u03bf\u03c2-\u03c0\u03b5\u03bb\u03ac\u03c4\u03b7!
+common.client_out_of_date_title           = \u03a4\u03bf \u03c0\u03c1\u03cc\u03b3\u03c1\u03b1\u03bc\u03bc\u03b1-\u03c0\u03b5\u03bb\u03ac\u03c4\u03b7\u03c2 \u03b4\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b5\u03bd\u03b7\u03bc\u03b5\u03c1\u03c9\u03bc\u03ad\u03bd\u03bf
+common.cnx_rejected.invalid_credentials            = \u0394\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03bc\u03b5 \u03c4\u03bf\u03bd \u03b4\u03b9\u03b1\u03ba\u03bf\u03bc\u03b9\u03c3\u03c4\u03ae:\n\u03bc\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03b1 \u03b4\u03b9\u03b1\u03c0\u03b9\u03c3\u03c4\u03b5\u03c5\u03c4\u03ae\u03c1\u03b9\u03b1.
+common.cnx_rejected.invalid_credentials_title      = \u0391\u03c0\u03bf\u03c4\u03c5\u03c7\u03af\u03b1 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7\u03c2
+common.cnx_rejected.client_already_connected       = \u0394\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03bc\u03b5 \u03c4\u03bf\u03bd \u03b4\u03b9\u03b1\u03ba\u03bf\u03bc\u03b9\u03c3\u03c4\u03ae:\n\u03b1\u03c5\u03c4\u03cc\u03c2 \u03bf \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9 \u03ae\u03b4\u03b7 \u03c3\u03c5\u03bd\u03b4\u03b5\u03b4\u03b5\u03bc\u03ad\u03bd\u03bf\u03c2.
+common.cnx_rejected.client_already_connected_title = \u0391\u03c0\u03bf\u03c4\u03c5\u03c7\u03af\u03b1 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7\u03c2
+common.cnx_rejected.client_login_disabled          = \u039f \u03b4\u03b9\u03b1\u03ba\u03bf\u03bc\u03b9\u03c3\u03c4\u03ae\u03c2 \u03b1\u03c0\u03bf\u03c1\u03c1\u03af\u03c0\u03c4\u03b5\u03b9 \u03c4\u03b9\u03c2 \u03c3\u03c5\u03bd\u03b4\u03ad\u03c3\u03b5\u03b9\u03c2, \u03b4\u03bf\u03ba\u03b9\u03bc\u03ac\u03c3\u03c4\u03b5 \u03be\u03b1\u03bd\u03ac \u03b1\u03c1\u03b3\u03cc\u03c4\u03b5\u03c1\u03b1.
+common.cnx_rejected.client_login_disabled_title    = \u0391\u03c0\u03bf\u03c4\u03c5\u03c7\u03af\u03b1 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7\u03c2
+common.cnx_rejected.client_login_disabled_w_reason = \u039f \u03b4\u03b9\u03b1\u03ba\u03bf\u03bc\u03b9\u03c3\u03c4\u03ae\u03c2 \u03b1\u03c0\u03bf\u03c1\u03c1\u03af\u03c0\u03c4\u03b5\u03b9 \u03c4\u03b9\u03c2 \u03c3\u03c5\u03bd\u03b4\u03ad\u03c3\u03b5\u03b9\u03c2\n{0}
+common.cnx_rejected.client_login_disabled_w_reason_title = \u0391\u03c0\u03bf\u03c4\u03c5\u03c7\u03af\u03b1 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7\u03c2
+common.cnx_rejected.maximum_number_of_clients       = \u0397 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03b1\u03c0\u03bf\u03c1\u03c1\u03af\u03c6\u03b8\u03b7\u03ba\u03b5: \u03bf \u03b4\u03b9\u03b1\u03ba\u03bf\u03bc\u03b9\u03c3\u03c4\u03ae\u03c2 \u03b4\u03b5\u03bd \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03b4\u03b5\u03c7\u03c4\u03b5\u03af \u03c0\u03b5\u03c1\u03b9\u03c3\u03c3\u03cc\u03c4\u03b5\u03c1\u03b5\u03c2 \u03c3\u03c5\u03bd\u03b4\u03ad\u03c3\u03b5\u03b9\u03c2\n\u0394\u03bf\u03ba\u03b9\u03bc\u03ac\u03c3\u03c4\u03b5 \u03be\u03b1\u03bd\u03ac \u03b1\u03c1\u03b3\u03cc\u03c4\u03b5\u03c1\u03b1\n\n\u0396\u03b7\u03c4\u03ac\u03bc\u03b5 \u03c3\u03c5\u03b3\u03bd\u03ce\u03bc\u03b7 \u03b3\u03b9\u03b1 \u03c4\u03b7\u03bd \u03c4\u03b1\u03bb\u03b1\u03b9\u03c0\u03c9\u03c1\u03af\u03b1.
+common.cnx_rejected.maximum_number_of_clients_title = \u0386\u03c1\u03bd\u03b7\u03c3\u03b7 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7\u03c2
+wf.xmlwarnings.prg_desc_does_not_exists   = \u0397 \u03c1\u03bf\u03ae \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b5 \u03ad\u03bd\u03b1 \u03c0\u03c1\u03cc\u03b3\u03c1\u03b1\u03bc\u03bc\u03b1 \u03bc\u03b5 \u03cc\u03bd\u03bf\u03bc\u03b1 '' {0} '' \u03c4\u03bf \u03bf\u03c0\u03bf\u03af\u03bf \u03b4\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03c0\u03bb\u03ad\u03bf\u03bd \u03b4\u03b9\u03b1\u03b8\u03ad\u03c3\u03b9\u03bc\u03bf.
+wf.xmlwarnings.prg_desc_replace_by_alternative = \u0397 \u03c1\u03bf\u03ae \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b5 \u03ad\u03bd\u03b1 \u03c0\u03c1\u03cc\u03b3\u03c1\u03b1\u03bc\u03bc\u03b1 \u03bc\u03b5 \u03cc\u03bd\u03bf\u03bc\u03b1 '' {0} '' \u03c4\u03bf \u03bf\u03c0\u03bf\u03af\u03bf \u03b4\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03c0\u03bb\u03ad\u03bf\u03bd \u03b4\u03b9\u03b1\u03b8\u03ad\u03c3\u03b9\u03bc\u03bf.\n\
+\u0388\u03c7\u03b5\u03b9 \u03b1\u03bd\u03c4\u03b9\u03ba\u03b1\u03c4\u03b1\u03c3\u03c4\u03b1\u03b8\u03b5\u03af \u03b1\u03c0\u03cc \u03c4\u03bf \u03c0\u03c1\u03cc\u03b3\u03c1\u03b1\u03bc\u03bc\u03b1 ''{1}''.\n\
+\u0395\u03af\u03bd\u03b1\u03b9 \u03c0\u03b9\u03b8\u03b1\u03bd\u03cc \u03b1\u03c5\u03c4\u03ae \u03b7 \u03ad\u03ba\u03b4\u03bf\u03c3\u03b7 \u03bd\u03b1 \u03bc\u03b7\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03c0\u03bb\u03ae\u03c1\u03c9\u03c2 \u03c3\u03c5\u03bc\u03b2\u03b1\u03c4\u03ae \u03bc\u03b5 \u03c4\u03b7\u03bd \u03c0\u03b1\u03bb\u03b1\u03b9\u03cc\u03c4\u03b5\u03c1\u03b7. A\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b1\u03c0\u03b1\u03c1\u03b1\u03af\u03c4\u03b7\u03c4\u03bf, \u03b8\u03b1 \u03b5\u03bc\u03c6\u03b1\u03bd\u03b9\u03c3\u03c4\u03bf\u03cd\u03bd \u03c3\u03c4\u03b7 \u03c3\u03c5\u03bd\u03ad\u03c7\u03b5\u03b9\u03b1 \u03bf\u03b9 \u03c0\u03c1\u03bf\u03b5\u03b9\u03b4\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03b9\u03c2 \
+\u03b3\u03b9\u03b1 \u03bd\u03b1 \u03b4\u03ce\u03c3\u03bf\u03c5\u03bd \u03cc\u03bb\u03b5\u03c2 \u03c4\u03b9\u03c2 \u03bb\u03b5\u03c0\u03c4\u03bf\u03bc\u03ad\u03c1\u03b5\u03b9\u03b5\u03c2 \u03c3\u03c7\u03b5\u03c4\u03b9\u03ba\u03ac \u03bc\u03b5 \u03b1\u03c5\u03c4\u03ad\u03c2 \u03c4\u03b9\u03c2 \u03c0\u03b9\u03b8\u03b1\u03bd\u03ad\u03c2 \u03b1\u03c3\u03c5\u03bc\u03b2\u03b1\u03c4\u03cc\u03c4\u03b7\u03c4\u03b5\u03c2.
+wf.xmlwarnings.prg_declares_invalid_param = \u03a4\u03bf \u03c0\u03c1\u03cc\u03b3\u03c1\u03b1\u03bc\u03bc\u03b1 '' {0} '' \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b5 \u03bc\u03b9\u03b1 \u03c0\u03b1\u03c1\u03ac\u03bc\u03b5\u03c4\u03c1\u03bf \u03bc\u03b5 \u03c4\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 '' {1} '' \u03c0\u03bf\u03c5 \u03b4\u03b5\u03bd \u03b9\u03c3\u03c7\u03cd\u03b5\u03b9 \u03c0\u03b9\u03b1 \
+(\u03b7 \u03c4\u03b9\u03bc\u03ae \u03b3\u03b9\u03b1 \u03b1\u03c5\u03c4\u03ae\u03bd \u03c4\u03b7\u03bd \u03c0\u03b1\u03c1\u03ac\u03bc\u03b5\u03c4\u03c1\u03bf \u03ae\u03c4\u03b1\u03bd: ''{2}'').
+wf.xmlwarnings.prg_param_has_invalid_value = \u03a4\u03bf \u03c0\u03c1\u03cc\u03b3\u03c1\u03b1\u03bc\u03bc\u03b1 '' {0} '' \u03b4\u03b7\u03bb\u03ce\u03bd\u03b5\u03b9 \u03bc\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03b7 \u03c4\u03b9\u03bc\u03ae \u03b3\u03b9\u03b1 \u03c4\u03b7\u03bd \u03c0\u03b1\u03c1\u03ac\u03bc\u03b5\u03c4\u03c1\u03bf '' {1} ''. \u0391\u03c5\u03c4\u03ae \u03b7 \u03c4\u03b9\u03bc\u03ae \
+\u03ae\u03c4\u03b1\u03bd '' {2} '' \u03ba\u03b1\u03b9 \u03b4\u03b5\u03bd \u03b9\u03c3\u03c7\u03cd\u03b5\u03b9 \u03c0\u03b9\u03b1: \u03b7 \u03c4\u03b9\u03bc\u03ae \u03c4\u03b7\u03c2 \u03c0\u03b1\u03c1\u03b1\u03bc\u03ad\u03c4\u03c1\u03bf\u03c5 \u03b5\u03c0\u03b1\u03bd\u03b1\u03c6\u03ad\u03c1\u03b5\u03c4\u03b1\u03b9 \u03c3\u03c4\u03b7\u03bd \u03c0\u03c1\u03bf\u03b5\u03c0\u03b9\u03bb\u03b5\u03b3\u03bc\u03ad\u03bd\u03b7 \u03c4\u03b9\u03bc\u03ae''{3}''.
+wf.xmlwarnings.prg_has_invalid_link        = \u03a4\u03bf \u03c0\u03c1\u03cc\u03b3\u03c1\u03b1\u03bc\u03bc\u03b1 '' {0} '' \u03c3\u03c5\u03bd\u03b4\u03ad\u03b8\u03b7\u03ba\u03b5 \u03bc\u03b5 \u03c4\u03b7\u03bd \u03ad\u03be\u03bf\u03b4\u03bf \u03c4\u03bf\u03c5 \u03c0\u03c1\u03bf\u03b3\u03c1\u03ac\u03bc\u03bc\u03b1\u03c4\u03bf\u03c2 '' {1} '' (\u03b7 \u03ad\u03be\u03bf\u03b4\u03bf\u03c2 \u03c0\u03c1\u03bf\u03c3\u03b4\u03b9\u03bf\u03c1\u03af\u03c3\u03c4\u03b7\u03ba\u03b5 \u03c9\u03c2 '' {2} '') \u03b1\u03bb\u03bb\u03ac \u03bf \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03bc\u03bf\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9 \u03ac\u03ba\u03c5\u03c1\u03bf\u03c2\
+(\u03b5\u03af\u03c4\u03b5 \u03c4\u03bf '' {1} '' \u03b4\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03c0\u03bb\u03ad\u03bf\u03bd \u03ad\u03bd\u03b1 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf \u03c0\u03c1\u03cc\u03b3\u03c1\u03b1\u03bc\u03bc\u03b1 \u03c3\u03c4\u03b7 \u03c1\u03bf\u03ae \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd, \u03ae \u03b7 \u03b1\u03bd\u03c4\u03af\u03c3\u03c4\u03bf\u03b9\u03c7\u03b7 \u03ad\u03be\u03bf\u03b4\u03bf\u03c2 \u03c4\u03bf\u03c5 \u03b4\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03c0\u03bb\u03ad\u03bf\u03bd \u03ad\u03b3\u03ba\u03c5\u03c1\u03b7).\n\
+\u0394\u03b5\u03bd \u03ae\u03c4\u03b1\u03bd \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03b1\u03c0\u03bf\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7 \u03c4\u03b7\u03c2 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7\u03c2 \u03bc\u03b5\u03c4\u03b1\u03be\u03cd \u03c4\u03c9\u03bd \u03b4\u03cd\u03bf \u03c0\u03c1\u03bf\u03b3\u03c1\u03b1\u03bc\u03bc\u03ac\u03c4\u03c9\u03bd.
+wf.xmlwarnings.prg_link_is_inactive        = \u0397 \u03ad\u03be\u03bf\u03b4\u03bf\u03c2 '' {1} '' \u03c4\u03bf\u03c5 \u03c0\u03c1\u03bf\u03b3\u03c1\u03ac\u03bc\u03bc\u03b1\u03c4\u03bf\u03c2 '' {0} '' \u03ba\u03b1\u03b9 \u03b7 \u03b5\u03af\u03c3\u03bf\u03b4\u03bf\u03c2 '' {3} '' \u03c4\u03bf\u03c5 \u03c0\u03c1\u03bf\u03b3\u03c1\u03ac\u03bc\u03bc\u03b1\u03c4\u03bf\u03c2 ''{2}'' \
+\u03c3\u03c5\u03bd\u03b4\u03ad\u03b8\u03b7\u03ba\u03b1\u03bd \u03c4\u03bf \u03ad\u03bd\u03b1 \u03bc\u03b5 \u03c4\u03bf \u03ac\u03bb\u03bb\u03bf, \u03b1\u03bb\u03bb\u03ac \u03c4\u03bf\u03c5\u03bb\u03ac\u03c7\u03b9\u03c3\u03c4\u03bf\u03bd \u03c4\u03bf \u03ad\u03bd\u03b1 \u03b1\u03c0\u03cc \u03c4\u03b1 \u03b4\u03cd\u03bf \u03b4\u03b5\u03bd \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03b5\u03af\u03c4\u03b1\u03b9 \u03c3\u03c4\u03b7\u03bd \u03c4\u03c1\u03ad\u03c7\u03bf\u03c5\u03c3\u03b1 \u03c0\u03b1\u03c1\u03b1\u03bc\u03b5\u03c4\u03c1\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03b1\u03c5\u03c4\u03ce\u03bd \u03c4\u03c9\u03bd \u03b4\u03cd\u03bf \u03c0\u03c1\u03bf\u03b3\u03c1\u03b1\u03bc\u03bc\u03ac\u03c4\u03c9\u03bd.\n\
+\u0394\u03b5\u03bd \u03ae\u03c4\u03b1\u03bd \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03b1\u03c0\u03bf\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7 \u03c4\u03b7\u03c2 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7\u03c2 \u03bc\u03b5\u03c4\u03b1\u03be\u03cd \u03c4\u03c9\u03bd \u03b4\u03cd\u03bf \u03c0\u03c1\u03bf\u03b3\u03c1\u03b1\u03bc\u03bc\u03ac\u03c4\u03c9\u03bd.
+wf.xmlwarnings.prg_contains_useless_parameter = \u03a0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2: \u03a4\u03bf \u03c0\u03c1\u03cc\u03b3\u03c1\u03b1\u03bc\u03bc\u03b1 '' {0} '' \u03b4\u03b7\u03bb\u03ce\u03bd\u03b5\u03b9 \u03bc\u03b9\u03b1 \u03c0\u03b1\u03c1\u03ac\u03bc\u03b5\u03c4\u03c1\u03bf '' {1} '' (\u03c0\u03b1\u03c1\u03ac\u03bc\u03b5\u03c4\u03c1\u03bf\u03c2 '' {2} ''):
+\u03b1\u03c5\u03c4\u03ae \u03b7 \u03c0\u03b1\u03c1\u03ac\u03bc\u03b5\u03c4\u03c1\u03bf\u03c2 \u03b1\u03b3\u03bd\u03bf\u03b5\u03af\u03c4\u03b1\u03b9 (\u03a3\u03b7\u03bc\u03b5\u03af\u03c9\u03c3\u03b7: \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03bc\u03ae\u03bd\u03c5\u03bc\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03ba\u03b1\u03b8\u03b1\u03c1\u03ac \u03b5\u03bd\u03b7\u03bc\u03b5\u03c1\u03c9\u03c4\u03b9\u03ba\u03cc, \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03b1\u03b3\u03bd\u03bf\u03b7\u03b8\u03b5\u03af \u03bc\u03b5 \u03b1\u03c3\u03c6\u03ac\u03bb\u03b5\u03b9\u03b1)
+eu.telecom_bretagne.praxis.core.execution.Result.Status.UNSET     = \u0391\u03c0\u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7
+eu.telecom_bretagne.praxis.core.execution.Result.Status.SUBMITTED = \u03a5\u03c0\u03bf\u03b2\u03bb\u03ae\u03b8\u03b7\u03ba\u03b5
+eu.telecom_bretagne.praxis.core.execution.Result.Status.RUNNING   = \u0395\u03ba\u03c4\u03ad\u03bb\u03b5\u03c3\u03b7 \u03c3\u03b5 \u03b5\u03be\u03ad\u03bb\u03b9\u03be\u03b7
+eu.telecom_bretagne.praxis.core.execution.Result.Status.OK        = OK
+eu.telecom_bretagne.praxis.core.execution.Result.Status.WARNING   = OK, \u03bc\u03b5 \u03c0\u03c1\u03bf\u03b5\u03b9\u03b4\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03b9\u03c2
+eu.telecom_bretagne.praxis.core.execution.Result.Status.ERROR     = \u03a3\u03c6\u03ac\u03bb\u03bc\u03b1
+eu.telecom_bretagne.praxis.core.execution.Result.Status.CANCELLED = \u0391\u03ba\u03c5\u03c1\u03ce\u03b8\u03b7\u03ba\u03b5
+eu.telecom_bretagne.praxis.licence=
+eu.telecom_bretagne.praxis.included_libs_licences=
+project.licence=
diff --git a/data/i18n/praxis_en.properties b/data/i18n/praxis_en.properties
index c95ac3703b3cb535ee9bebadcb5a8b877c15b328..06e17ef0d16ca2c8a8c4527065ae33bee1ce80c6 100644
--- a/data/i18n/praxis_en.properties
+++ b/data/i18n/praxis_en.properties
@@ -71,18 +71,17 @@ UI.datasource.unset_path                              = <not set>
 
 UI.dialog.about                                       = About...
 UI.dialog.about_content                               = <html>\
-  {3}\
+  {0}\
+  <div>\
   <hr>\
-  <i>Powered by Praxis - Version {0} - date: {2}<br>\
-     Copyright Institut Mines Telecom - IMT Atlantique Bretagne Pays de la Loire 2002-2017<br>\
-     All rights reserved</i>\
+  <i>Powered by Praxis - Version {1} ({2})<br>\
+     &copy; Institut Mines Telecom - IMT Atlantique Bretagne-Pays de la Loire 2002-2018<br>\
+     All rights reserved.</i><br>\
+     <small>Build: {3}</small>\
+  <hr>\
+  </div>\
 </html>
-UI.dialog.about_msg                                   = 
-UI.dialog.bank_list.list_header_month                 = Year
-UI.dialog.bank_list.list_header_selection             = Name
-UI.dialog.bank_list.list_header_type                  = Type
-UI.dialog.bank_list.list_header_version               = Version
-UI.dialog.bank_list.title                             = Available databases
+UI.dialog.about_msg                                   =
 UI.dialog.connection.connect_to_server                = Enable connection to the server:
 UI.dialog.connection.enter_login_passwd               = Please enter your login and your password
 UI.dialog.connection.login                            = Login:
@@ -91,7 +90,6 @@ UI.dialog.connection.server                           = Server (host:port):
 UI.dialog.connection.title                            = Application starting...
 UI.dialog.connection_failure                          = Failed to connect to the server, please retry later
 UI.dialog.connection_failure_title                    = Connection failure
-UI.dialog.datasource_inputs.DB                        = Databases
 UI.dialog.datasource_inputs.add                       = Add
 UI.dialog.datasource_inputs.delete                    = Delete
 UI.dialog.datasource_inputs.file                      = Files
@@ -123,9 +121,9 @@ UI.dialog.open.label_ws                               = Select the workspace for
 
 UI.dialog.open.title                                  = Open
 UI.dialog.datasource.rename_title                     = Rename data source
-UI.dialog.datasource.rename                           = Please enter the name of this element: 
+UI.dialog.datasource.rename                           = Please enter the name of this element:
 UI.dialog.datasource.incorrect_name_title             = Incorrect name
-UI.dialog.datasource.incorrect_name                   = Characters :, ?, /, \\, <, >, " and | are not allowed
+UI.dialog.datasource.incorrect_name                   = Characters :, ?, /, \\, <, >, \" and | are not allowed
 UI.dialog.datasource.name_already_exists              = An other element has the same name, please choose another one.
 UI.dialog.prg_properties.descr_window_title           = Description of {0}
 UI.dialog.prg_properties.main_label                   = Description of {0}  (click to see)
@@ -142,10 +140,6 @@ UI.dialog.save_ws.btn_ok                              = OK
 UI.dialog.save_ws.msg                                 = Select the workflow for saving :
 UI.dialog.save_ws.title                               = Saving {0}
 UI.dialog.wf.already_opened                           = This workflow is already opened!
-UI.dialog.wf.close_and\ saved                         = The workflow {0} has been successfully saved\n\
-\n\
-File: {1}\n\
-
 UI.dialog.wf.close_confirm                            = Should the workflow "{0}" be saved before it is closed?
 UI.dialog.wf.close_title                              = Closing a workflow
 UI.dialog.wf.enter_name                               = Choose a name for the workflow:
@@ -178,25 +172,17 @@ UI.dialog.wf.import_not_a_dir                         = "{0}" is not a directory
 UI.dialog.wf.invalid_name_empty                       = Invalid empty name!
 UI.dialog.wf.invalid_name_already_exists              = An other workflow with that name already exists!
 UI.dialog.wf.open_failed_no_workflow                  = Cannot open any workflow: none found
-UI.dialog.wf.open_failed_no_workspace                 = Cannot open any workflow: no workspace available!
 UI.dialog.wf.open_failed_xml_not_conform_to_DTD       = Failed to open the workflow: the xml file does not conform to the DTD
 UI.dialog.wf.open_failure                             = An unexpected error occured while opening the workflow
 UI.dialog.wf.rename_save_before_confirm               = The workflow has been modified and needs to be saved before it is renamed.\n\
 Do you want to save it now?
 UI.dialog.wf.open_failure_title                       = Failed to open a workflow
 UI.dialog.wf.open_select_workflows                    = Select the workflow(s) to be opened:
-UI.dialog.wf.rename_enter_new_name                    = Please enter the new name of this workflow:
 UI.dialog.wf.rename_failure_title                     = Failed to rename a workflow
 UI.dialog.wf.rename_impossible                        = Failed to rename the workflow (unknown reason).\n\
 One possible reason could be that the corresponding files are currently opened in another tool.
 UI.dialog.wf.rename_impossible_coz_execution          = A workflow cannot be renamed while an execution in progress
 UI.dialog.wf.rename_title                             = Renaming {0}
-UI.dialog.wf.save_as_enter_new_name                   = Please enter the name with which this saved will be saved:
-UI.dialog.wf.save_as_failed_name_already_exists       = An other workflow with that name already exists!
-UI.dialog.wf.save_as_failure                          = Failed to rename the workflow
-UI.dialog.wf.save_as_impossible_coz_execution         = A workflow cannot be "saved as" while one or more executions are in progress
-UI.dialog.wf.save_as_title                            = Saving {0} as...
-UI.dialog.wf.save_msg                                 = Saving {0}
 UI.dialog.wf.save_title                               = Saving a workflow
 UI.dialog.wf.save_failed                              = Could not save the workflow
 UI.dialog.wf.delete_title                             = Deleting workflow {0}
@@ -225,38 +211,6 @@ UI.dialog.select_results.title                        = Results of {0}
 UI.dialog.results.title                               = Results
 UI.dialog.splash.img_path                             = data/client/images/splash.jpg
 UI.dialog.splash.init_msg                             = Initializing...
-UI.dialog.ws.already_exists                           = Another workspace with that name already exists!
-UI.dialog.ws.already_opened                           = This workspace is already opened!
-UI.dialog.ws.creation_enter_new_name                  = Please enter the name of the new workspace:
-UI.dialog.ws.creation_failure                         = Failed to create a new workspace
-UI.dialog.ws.creation_title                           = New workspace
-UI.dialog.ws.delete                                   = Delete the current workspace
-UI.dialog.ws.delete_confirm                           = \n\
-Are you sure you want to definitively delete the whole workspace?\n\
-\n\
-Deleting the workspace will also permanently delete all its workflows, along with all their results.
-UI.dialog.ws.incorrect_name                           = Incorrect name: a valid name only consists in letters, numbers, . (point) or _ (underscore)
-UI.dialog.ws.invalid_empty_ws                         = Since the workspace does not contain any valid workflow at all, it could not be opened.
-UI.dialog.ws.invalid_workflows_couldnt_be_loaded      = The following files are not valid workflows and could be loaded:\n\
-
-UI.dialog.ws.none_found                               = No workspace available!
-UI.dialog.ws.open_failure                             = An unexpected error occured while opening the workspace\n\
-\n\
-Details:\n\
-{0}
-UI.dialog.ws.open_failure_title                       = Failed to open a workspace
-UI.dialog.ws.rename_enter_new_name                    = Please enter the new name of this workspace:
-UI.dialog.ws.rename_failure                           = Failed to "save as" the workspace
-UI.dialog.ws.rename_impossible_coz_execution          = A workspace cannot be renamed while one or more of its workflows have executions in progress
-UI.dialog.ws.rename_title                             = Renaming {0}
-UI.dialog.ws.save_as_enter_new_name                   = Please enter the name with which this workspace will be saved:
-UI.dialog.ws.save_as_failure                          = Failed to rename the workspace
-UI.dialog.ws.save_as_impossible_coz_execution         = A workspace cannot be "saved as" while one or more of its workflows have executions in progress
-UI.dialog.ws.save_as_title                            = Saving {0} as...
-UI.dialog.ws.save_msg                                 = The following files have been saved:\n\
-\n\
-{0}
-UI.dialog.ws.save_title                               = Workspace saved
 
 UI.dialog.change_language                             = Please restart the software for the language change to take full effect!
 UI.dialog.change_language_title                       = Change the software language
@@ -307,8 +261,6 @@ UI.menu_items.wf_exec_stop                            = Stop
 UI.menu_items.wf_exec_stop_tt                         = Stop the execution
 UI.menu_items.wf_execute                              = Run
 UI.menu_items.wf_execute_tt                           = Execute the current workflow
-UI.menu_items.wf_import                               = Import...
-UI.menu_items.wf_import_tt                            = Import into the current workspace a workflow saved elsewhere
 UI.menu_items.wf_rename                               = Rename...
 UI.menu_items.wf_rename_tt                            = Rename the current workflow
 UI.menu_items.wf_results                              = Results
@@ -339,28 +291,16 @@ UI.menu_items.arrow_style_straigh                     = Straigh
 UI.menu_items.save_as_image                           = Save as Image...
 UI.menu_items.save_as_image_tt                        = Save the workflow as a PNG image
 
-UI.menu_items.ws_close                                = Close
-UI.menu_items.ws_close_tt                             = Close the current workspace
-UI.menu_items.ws_delete                               = Delete
-UI.menu_items.ws_delete_tt                            = Delete the current workspace, including all its workflows
-UI.menu_items.ws_new                                  = New
-UI.menu_items.ws_new_tt                               = Create a new workspace
-UI.menu_items.ws_open                                 = Open
-UI.menu_items.ws_open_tt                              = Open an existing workspace
-UI.menu_items.ws_rename                               = Rename...
-UI.menu_items.ws_rename_tt                            = Rename the current workspace
-UI.menu_items.ws_save                                 = Save
-UI.menu_items.ws_save_tt                              = Save all workflows in the current workspace
-UI.menu_items.ws_save_as                              = Save as...
-UI.menu_items.ws_save_as_tt                           = Save the current workspace (including all its workflows!) in an other one
-
 UI.menu_items.License                                 = License...
 UI.menu_items.OtherLicenses                           = Third-party Licenses...
 UI.menu_items.changes                                 = Changes...
 
 UI.menu_items.languages                               = Language settings...
+# value                                               = language (translated language)
+UI.menu_items.language.fr                             = Fran\u00e7ais (French)
+UI.menu_items.language.el                             = \u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac (Greek)
 UI.menu_items.language.en                             = English
-UI.menu_items.language.fr                             = Fran\u00e7ais
+UI.menu_items.language.es                             = Espa\u00f1ol (Spanish)
 
 UI.progtree.database                                  = Database
 UI.progtree.datasource                                = Inputs
@@ -386,7 +326,7 @@ UI.label.invalid_program_description                = The description of this pr
 UI.view.opened_workflows                            = Opened workflows
 UI.view.resources                                   = Programs
 
-common.application_name                   = 
+common.application_name                   =
 common.close                              = Close
 common.dialog.detailed_error.hide_details = Hide details <<<
 common.dialog.detailed_error.show_details = Show details >>>
@@ -404,6 +344,9 @@ common.cnx_rejected.client_login_disabled          = The server is currently ref
 common.cnx_rejected.client_login_disabled_title    = Connection failed
 common.cnx_rejected.client_login_disabled_w_reason = The server is currently refusing connections\n{0}
 common.cnx_rejected.client_login_disabled_w_reason_title = Connection failed
+common.cnx_rejected.maximum_number_of_clients       = Connection refused: the server cannot accept more connections\nPlease try again a moment later\n\nWe apology for the inconvenience.
+common.cnx_rejected.maximum_number_of_clients_title = Connection refused
+
 wf.xmlwarnings.prg_desc_does_not_exists   = The workflow used a program named ''{0}'' which is not available anymore.
 wf.xmlwarnings.prg_desc_replace_by_alternative = The workflow used a program named ''{0}'' which is not available anymore.\n\
 It has been replaced with the programme ''{1}''.\n\
@@ -421,6 +364,7 @@ were linked one to each other, but at least one of them is not activated in the
 The link between the two programs could not be restored.
 wf.xmlwarnings.prg_contains_useless_parameter = Info: the program ''{0}'' declares a parameter ''{1}'' (param.''s type is ''{2}''): \
 this parameter is ignored (Note: this message is purely informational, it can be safely ignored)
+
 eu.telecom_bretagne.praxis.core.execution.Result.Status.UNSET     = Unset
 eu.telecom_bretagne.praxis.core.execution.Result.Status.SUBMITTED = Submitted
 eu.telecom_bretagne.praxis.core.execution.Result.Status.RUNNING   = Execution in progress
@@ -430,4 +374,5 @@ eu.telecom_bretagne.praxis.core.execution.Result.Status.ERROR     = Error
 eu.telecom_bretagne.praxis.core.execution.Result.Status.CANCELLED = Cancelled
 eu.telecom_bretagne.praxis.licence=
 eu.telecom_bretagne.praxis.included_libs_licences=
+
 project.licence=
diff --git a/data/i18n/praxis_es.properties b/data/i18n/praxis_es.properties
new file mode 100644
index 0000000000000000000000000000000000000000..a5c18fd82aef1315029a70fd221095af5cb9eec4
--- /dev/null
+++ b/data/i18n/praxis_es.properties
@@ -0,0 +1,409 @@
+
+UI.OptionsDialog.title                     = Opciones
+
+UI.TabbedPane.close                        = Cerrar
+UI.TabbedPane.close_others                 = Cerrar Otros
+UI.TabbedPane.close_all                    = Cerrar Todos
+UI.TabbedPane.results                      = Todos los Resultados \u2026
+
+UI.actions.display_preferences.error                  = Ha ocurrido un error al construir el panel de preferencias
+UI.actions.execute_wf.confirm                         = \u00bfEst\u00e1 seguro de querer ejecutar el diagrama de flujo {0}?
+UI.actions.execute_wf.error                           = Ejecuci\u00f3n fallida del diagrama de flujo
+UI.actions.execute_wf.title                           = Confirmaci\u00f3n de la ejecuci\u00f3n de un diagrama de flujo
+UI.actions.execute_wf.invalid_workflow                = No se puede ejecutar un diagrama de flujo no v\u00e1lido, por favor compruebe los par\u00e1metros del programa y que todos los inputs est\u00e9n conectados.
+UI.actions.finished_exec.msg                          = El diagrama de flujo {0} se ha ejecutado correctamente
+UI.actions.finished_exec_with_errors.msg              = La ejecuci\u00f3n de {0} ha terminado: ha ocurrido un error
+UI.actions.finished_exec_with_warnings.msg            = La ejecuci\u00f3n de {0} ha terminado; hay algunas advertencias, compruebe los resultados para m\u00e1s detalles
+UI.actions.finished_exec.title                        = Fin de la ejecuci\u00f3n
+UI.actions.wf_close                                   = Cerrar
+UI.actions.wf_close_tt                                = Cerrar el diagrama de flujo actual
+UI.actions.wf_close_all                               = Cerrar todo
+UI.actions.wf_close_all_tt                            = Cerrar todos los diagramas de flujo
+UI.actions.wf_close_others                            = Cerrar otros
+UI.actions.wf_close_others_tt                         = Cerrar otros diagramas de flujo
+UI.actions.wf_export                                  = Exportar sin los ficheros de entrada de datos \u2026
+UI.actions.wf_export_tt                               = Exportar un diagrama de flujo
+UI.actions.wf_export_with_infiles                     = Exportar con ficheros de entrada de datos \u2026
+UI.actions.wf_export_with_infiles_tt                  = Exportar un diagrama de flujo y todos sus ficheros de entrada de datos, en un fichero zip
+UI.actions.wf_import                                  = Importar \u2026
+UI.actions.wf_import_as_new                           = Importar como si fuera nuevo \u2026
+UI.actions.wf_import_as_new_tt                        = Importar un diagrama de flujo como un nuevo diagrama de flujo
+UI.actions.wf_import_tt                               = Importar un diagrama de flujo en el espacio de trabajo seleccionado en la actualidad
+UI.actions.wf_new                                     = Nuevo
+UI.actions.wf_new_tt                                  = Crear un nuevo diagrama de flujo
+UI.actions.wf_open                                    = Abrir \u2026
+UI.actions.wf_open_tt                                 = Abrir un diagrama de flujo existente
+UI.actions.wf_open_err_no_workflow                    = <html>\u00a1Todav\u00eda no existe ning\u00fan diagrama de flujo!<br/>\
+Para crear un nuevo diagrama de flujo, usar el men\u00fa \u201cDiagrama de Flujo\u201d y seleccionar \u201cNuevo\u201d</html>
+UI.actions.wf_open_err_all_workflows_already_opened   = \u00a1Todos los diagramas de flujo existentes ya est\u00e1n abiertos!
+UI.actions.wf_save                                    = Guardar
+UI.actions.wf_save_as                                 = Guardar como \u2026
+UI.actions.wf_save_as_tt                              = Guardar como \u2026
+UI.actions.wf_save_tt                                 = Guardar el diagrama de flujo actual
+UI.actions.show_results.connect_err                   = No se han podido recuperar los resultados
+UI.actions.show_results.connect_err.title             = Error de conexi\u00f3n
+UI.actions.show_results.empty                         = No hay resultado disponible para este diagrama de flujo
+UI.actions.show_results.empty.title                   = Resultados
+UI.actions.stop_exec.error                            = Error: no se ha podido parar la ejecuci\u00f3n
+UI.actions.valid_links_confirm                        = \u00bfEst\u00e1 seguro de querer desactivar la comprobaci\u00f3n autom\u00e1tica de validez de los enlaces entre programas?
+UI.actions.create_file_error                          = No se ha podido crear el fichero {0}
+UI.actions.create_existing_file_error                 = No se ha podido crear el fichero {0}: ya existe
+UI.actions.zoom_in                                    = Hacer zoom
+UI.actions.zoom_in_tt                                 = Dibuja un diagrama de flujo m\u00e1s grande para distinguir mejor los detalles
+UI.actions.zoom_original                              = Zoom 1:1
+UI.actions.zoom_original_tt                           = Restaura el factor de zoom predeterminado
+UI.actions.zoom_out                                   = Quitar el zoom
+UI.actions.zoom_out_tt                                = Dibuja un diagrama de flujo m\u00e1s peque\u00f1o para mostrar una parte mayor del mismo
+UI.annotation.for_workflow                            = Anotaci\u00f3n para diagrama de flujo \u201c{0}\u201d
+UI.annotation.for_program                             = Anotaci\u00f3n para programa \u201c{0}\u201d
+UI.ctrlwf.run.file_does_not_exist                     = El fichero {0} no existe
+UI.ctrlwf.run.file_unreadable                         = El fichero {0} no se puede leer
+UI.ctrlwf.run.zip_failed                              = Error al ejecutar el diagrama de flujo: ocurri\u00f3 un error inesperado mientras se preparaba para la ejecuci\u00f3n\n\
+\n\
+Detalles:\n\
+{0}\n\
+
+UI.ctrlwf.run.zip_failed_missing_file                 = Error al ejecutar el diagrama de flujo: \u00a1al menos uno de los ficheros de entrada de datos no existe!\n\
+\n\
+Detalles:\n\
+{0}\n\
+
+UI.datasource.unset_path                              = <no establecido>
+
+UI.dialog.about                                       = Sobre \u2026
+UI.dialog.about_content                               = <html>\
+  {0}\
+  <p>\
+  <hr>\
+  <i>Desarrollado por Praxis - Versi\u00f3n {1} ({2})<br>\
+     &copy; Institut Mines T\u00e9l\u00e9com - IMT Atlantique Bretagne-Pays de la Loire 2002-2018<br>\
+     Todos los derechos reservados.</i><br>\
+     <small><br>Build: {3}</small>\
+  <hr>\
+</html>
+UI.dialog.about_msg                                   =
+UI.dialog.bank_list.list_header_month                 = A\u00f1o
+UI.dialog.bank_list.list_header_selection             = Nombre
+UI.dialog.bank_list.list_header_type                  = Tipo
+UI.dialog.bank_list.list_header_version               = Versi\u00f3n
+UI.dialog.bank_list.title                             = Bases de datos disponibles
+UI.dialog.connection.connect_to_server                = Habilitar la connexi\u00f3n al servidor:
+UI.dialog.connection.enter_login_passwd               = Por favor introduzca su usuario y contrase\u00f1a
+UI.dialog.connection.login                            = Usuario :
+UI.dialog.connection.passwd                           = Contrase\u00f1a :
+UI.dialog.connection.server                           = Servidor (host:puerto):
+UI.dialog.connection.title                            = Aplicaci\u00f3n comenzando \u2026
+UI.dialog.connection_failure                          = Error al conectarse al servidor, por favor int\u00e9ntelo de nuevo m\u00e1s tarde
+UI.dialog.connection_failure_title                    = Fallo de conexi\u00f3n
+UI.dialog.datasource_inputs.DB                        = Bases de datos
+UI.dialog.datasource_inputs.add                       = A\u00f1adir
+UI.dialog.datasource_inputs.delete                    = Borrar
+UI.dialog.datasource_inputs.file                      = Ficheros
+UI.dialog.datasource_inputs.title                     = Propiedades de la fuente de datos
+UI.dialog.default_filesource_displayname              = Fichero
+UI.dialog.default_directorysource_displayname         = Directorio
+UI.dialog.disconnect_confirm                          = \u00bfQuiere desconectarse del servidor?
+UI.dialog.disconnect_confirm_title                    = Desconect\u00e1ndose del servidor
+UI.dialog.error                                       = \u00a1Error!
+UI.dialog.file_chooser.title                          = A\u00f1adir ficheros
+UI.dialog.file.overwrite                              = El fichero ya existe: \u00bfdesea reemplazarlo?
+UI.dialog.help.title                                  = Ayuda
+UI.dialog.help.not_available                          = No hay ayuda disponible por el momento
+UI.dialog.image.save.failed_title                     = Error al guardar el fichero
+UI.dialog.image.save.failed                           = La imagen no ha podido ser guardada: ha ocurrido un error
+UI.dialog.import.label_wf                             = Diagrama de flujo
+UI.dialog.import.label_ws                             = Espacio de trabajo
+UI.dialog.import.msg_wf                               = \u00bfQu\u00e9 diagrama de flujo desea importar?
+UI.dialog.import.title                                = Importar
+UI.dialog.save_as.title                               = Guardar como
+UI.dialog.rename.title                                = Cambiar el nombre
+UI.dialog.logging_err_msg                             = Imposible conectar: usuario o contrase\u00f1a incorrectos
+UI.dialog.login_mandatory                             = \u00a1Debe proporcionar un nombre de usuario!
+UI.dialog.open.label_wf                               = Seleccione el diagrama de flujo para abrir:\n\
+\n\
+
+UI.dialog.open.label_ws                               = Seleccione el espacio de trabajo para abrir:\n\
+\n\
+
+UI.dialog.open.title                                  = Abrir
+UI.dialog.datasource.rename_title                     = Cambiar el nombre de la fuente de datos
+UI.dialog.datasource.rename                           = Por favor introduzca el nombre de este elemento:
+UI.dialog.datasource.incorrect_name_title             = Nombre incorrecto
+UI.dialog.datasource.incorrect_name                   = Los caracteres :, ?, /, \\, <, >, \" y | no est\u00e1n permitidos
+UI.dialog.datasource.name_already_exists              = Otro elemento tiene el mismo nombre, por favor escoja otro nombre.
+UI.dialog.prg_properties.descr_window_title           = Descripci\u00f3n de {0}
+UI.dialog.prg_properties.main_label                   = Descripci\u00f3n de {0}  (hacer clic para ver)
+UI.dialog.prg_properties.parameters                   = Par\u00e1metros:
+UI.dialog.prg_properties.parameters_default           = (y sus valores por defecto)
+UI.dialog.prg_properties.title                        = Propiedades del programa
+UI.dialog.quit                                        = Salir
+UI.dialog.quit_and_disconnect_msg                     = \n\
+\u00bfDesea salir?\n\
+
+UI.dialog.quit_msg                                    = \u00bfQuiere cerrar la aplicaci\u00f3n?
+UI.dialog.save_ws.btn_none                            = Ninguno
+UI.dialog.save_ws.btn_ok                              = OK
+UI.dialog.save_ws.msg                                 = Seleccione el diagrama de flujo para guardar:
+UI.dialog.save_ws.title                               = Guardando {0}
+UI.dialog.wf.already_opened                           = \u00a1Este diagrama de flujo ya est\u00e1 abierto!
+UI.dialog.wf.close_and_saved                          = El diagrama de flujo {0} ha sido guardado con \u00e9xito\n\
+\n\
+Fichero: {1}\n\
+
+UI.dialog.wf.close_confirm                            = \u00bfDeber\u00eda guardarse el diagrama de flujo {0} antes de cerrarlo?
+UI.dialog.wf.close_title                              = Cerrando un diagrama de flujo
+UI.dialog.wf.enter_name                               = Escoja un nombre para el diagrama de flujo:
+UI.dialog.wf.creation_failed_ws_not_selected          = Antes de crear un diagrama de flujo, cree o seleccione el espacio de trabajo al cual pertenece el nuevo diagrama de flujo
+UI.dialog.wf.creation_failure_title                   = Error al crear un diagrama de flujo
+UI.dialog.wf.creation_title                           = Nuevo diagrama de flujo
+UI.dialog.wf.delete_result_confirm_title              = Borrar el resultado
+UI.dialog.wf.delete_result_confirm                    = \u00bfEst\u00e1 seguro de querer borrar definitivamente este resultado?
+UI.dialog.wf.delete_all_results_confirm_title         = Borrar todos los resultados
+UI.dialog.wf.delete_all_results_confirm               = \u00bfEst\u00e1 seguro de querer borrar definitivamente todos estos resultados?
+UI.dialog.wf.delete                                   = Borrar el diagrama de flujo actual
+UI.dialog.wf.delete_confirm                           = \n\
+\u00bfEst\u00e1 seguro de querer borrar definitivamente este diagrama de flujo?\n\
+\n\
+Borrar el diagrama de flujo tambi\u00e9n borrar\u00e1 permanentemente sus resultados.\n\
+
+UI.dialog.wf.existing_names                           = Los diagramas de flujo ya definidos son:
+UI.dialog.wf.export_title                             = Exportando un diagrama de flujo
+UI.dialog.wf.export_failed                            = Error al exportar el diagrama de flujo
+UI.dialog.wf.import_cannot_extract                    = No se pueden extraer los ficheros
+UI.dialog.wf.import_cannot_create_dir                 = El directorio escogido no puede crearse. Por favor compruebe que tiene suficientes derechos para hacerlo.
+UI.dialog.wf.import_cannot_read_zip                   = Imposible leer el fichero comprimido
+UI.dialog.wf.import_create_dir                        = El directorio escogido no existe, \u00bfdesea crearlo?
+UI.dialog.wf.import_drop_file_in_dir                  = Depositar los ficheros de entrada de datos en este directorio
+UI.dialog.wf.import_failure                           = Ha ocurrido un error inesperado al importar el diagrama de flujo
+UI.dialog.wf.import_failure_title                     = Error al importar el diagrama de flujo
+UI.dialog.wf.import_impossible_coz_execution          = Un diagrama de flujo no puede ser importado mientras la ejecuci\u00f3n est\u00e1 en progreso
+UI.dialog.wf.import_invalid_archive                   = Archivo no v\u00e1lido
+UI.dialog.wf.import_not_a_dir                         = "{0}" no es un directorio. Por favor seleccione un directorio.
+UI.dialog.wf.invalid_name_empty                       = \u00a1Nombre vac\u00edo no v\u00e1lido!
+UI.dialog.wf.invalid_name_already_exists              = \u00a1Ya existe otro diagrama de flujo con este nombre!
+UI.dialog.wf.open_failed_no_workflow                  = No se puede abrir ning\u00fan diagrama de flujo: no se ha encontrado ninguno
+UI.dialog.wf.open_failed_no_workspace                 = No se puede abrir ning\u00fan diagrama de flujo: \u00a1no hay espacio de trabajo disponible!
+UI.dialog.wf.open_failed_xml_not_conform_to_DTD       = Error al abrir el diagrama de flujo: el fichero xml no es conforme al DTD
+UI.dialog.wf.open_failure                             = Ha ocurrido un error no esperado al abrir el diagrama de flujo
+UI.dialog.wf.rename_save_before_confirm               = El diagrama de flujo ha sido modificado y necesita guardarse antes de cambiar su nombre.\n\
+\u00bfDesea guardarlo ahora?
+UI.dialog.wf.open_failure_title                       = Ha ocurrido un error al abrir el diagrama de flujo
+UI.dialog.wf.open_select_workflows                    = Seleccionar el(los) diagrama(s) de flujo para abrir:
+UI.dialog.wf.rename_enter_new_name                    = Por favor introduzca el nuevo nombre de este diagrama de flujo:
+UI.dialog.wf.rename_failure_title                     = Error al cambiar el nombre a un diagrama de flujo
+UI.dialog.wf.rename_impossible                        = Error al cambiar el nombre al diagrama de flujo (raz\u00f3n desconocida).\n\
+Una posible raz\u00f3n podr\u00eda ser que los ficheros correspondientes ya est\u00e1n abiertos en otra herramienta.
+UI.dialog.wf.rename_impossible_coz_execution          = Un diagrama de flujo no puede ser renombrado mientras una ejecuci\u00f3n est\u00e1 en proceso
+UI.dialog.wf.rename_title                             = Cambiando el nombre {0}
+UI.dialog.wf.save_as_enter_new_name                   = Por favor introduzca el nombre con el que se guardar\u00e1 este fichero:
+UI.dialog.wf.save_as_failed_name_already_exists       = \u00a1Ya existe otro diagrama de flujo con este nombre!
+UI.dialog.wf.save_as_failure                          = Error al cambiar el nombre del diagrama de flujo
+UI.dialog.wf.save_as_impossible_coz_execution         = Un diagrama de flujo no puede \u201cguardarse como\u201d mientras una o m\u00e1s ejecuciones est\u00e1n en proceso
+UI.dialog.wf.save_as_title                            = Guardando {0} como\u2026
+UI.dialog.wf.save_msg                                 = Guardando {0}
+UI.dialog.wf.save_title                               = Guardando un diagrama de flujo
+UI.dialog.wf.save_failed                              = No se puede grabar el diagrama de flujo
+UI.dialog.wf.delete_title                             = Borrando el diagrama de flujo {0}
+UI.dialog.wf.delete_confirm_msg                       = \u00bfEst\u00e1 seguro de querer guardar el diagrama de flujo {0}?
+UI.dialog.wf.delete_confirm_msg_with_results          = \u00bfEst\u00e1 seguro de querer guardar el diagrama de flujo {0}?  \n\
+Este diagrama de flujo ya ha sido ejecutado; si lo borra tambi\u00e9n borrar\u00e1 todos los resultados correspondientes.
+UI.dialog.wf.warnings_title                           = El diagrama de flujo requiere comprobaciones
+UI.dialog.wf.warnings                                 = Atenci\u00f3n: se han detectado algunas inconsistencias en la parametrizaci\u00f3n de algunos programas al cargar el diagrama de flujo. \n\
+A continuaci\u00f3n encontrar\u00e1 el detalle de los errores que han sido corregidos autom\u00e1ticamente. \n\
+Es aconsejable comprobar esas correcciones, y tambi\u00e9n asegurarse de que la parametrizaci\u00f3n de los programas concernidos es correcta.
+
+UI.dialog.result.rename                               = Nombre de los resultados:
+UI.dialog.result.rename_title                         = Cambiando el nombre a un resultado
+UI.dialog.result.rename_failed_title                  = Error al cambiar el nombre del resultado
+UI.dialog.result.rename_failed                        = El resultado no pudo ser renombrado.
+UI.dialog.btn_cancel                                  = Cancelar
+UI.dialog.btn_ok                                      = OK
+UI.dialog.btn_apply                                   = Aplicar
+UI.dialog.btn.overwrite                               = Reemplazar
+UI.dialog.btn_open                                    = Abrir
+UI.dialog.select_results.btn_display                  = Mostrar
+UI.dialog.select_results.header                       = Seleccionar los resultados para mostrar:\n\
+
+UI.dialog.select_results.title                        = Resultados de {0}
+UI.dialog.results.title                               = Resultados
+UI.dialog.splash.img_path                             = datos/cliente/im\u00e1genes/splash.jpg
+UI.dialog.splash.init_msg                             = Inicializando\u2026
+
+UI.dialog.change_language                             = \u00a1Por favor reinicialice el programa para que el cambio de idioma sea efectivo!
+UI.dialog.change_language_title                       = Cambiar el idioma del programa
+
+UI.menu.display                                       = Mostrar
+UI.menu.edit                                          = Editar
+UI.menu.execution                                     = Ejecuci\u00f3n
+UI.menu.file                                          = Fichero
+UI.menu.help_about                                    = ?
+UI.menu.prefs                                         = Preferencias
+UI.menu.workflow                                      = Diagrama de flujo
+UI.menu.workspace                                     = Espacio de trabajo
+UI.menu_items.about                                   = Sobre...
+UI.menu_items.about_tt                                = Sobre el programa
+UI.menu_items.check_valid_links                       = Comprobar que los enlaces son v\u00e1lidos
+UI.menu_items.check_valid_links_tt                    = Activar/Desactivar la funci\u00f3n autom\u00e1tica que comprueba que dos elementos de un diagrama de flujo (programas, ficheros o bases de datos) son compatibles cuando intenta unir uno con otro
+UI.menu_items.open_all_results                        = Abrir todos los ficheros de resultados autom\u00e1ticamente
+UI.menu_items.open_all_results_tt                     = Abrir todos los ficheros autom\u00e1ticamente cuando se muestra un resultado
+UI.menu_items.options                                 = Opciones...
+UI.menu_items.options_tt                              = Opciones
+UI.menu_items.connect                                 = Conectar
+UI.menu_items.connect_tt                              = Conectar con el servidor
+UI.menu_items.copy                                    = Copiar
+UI.menu_items.copy_tt                                 = Copiar el(los) objeto(s) seleccionado(s) en el portapapeles
+UI.menu_items.delete                                  = Borrar
+UI.menu_items.delete_tt                               = Borrar el(los) objeto(s) seleccionado(s)
+UI.menu_items.disconnect                              = Desconectar
+UI.menu_items.disconnect_tt                           = Desconectar del servidor
+UI.menu_items.edit_rename                             = Cambiar el nombre...
+UI.menu_items.edit_rename_tt                          = Cambiar el nombre del elemento seleccionado
+UI.menu_items.exit                                    = Salir
+UI.menu_items.exit_tt                                 = Salir de la aplicaci\u00f3n
+UI.menu_items.help                                    = Ayuda
+UI.menu_items.help_tt                                 = Ayuda
+UI.menu_items.paste                                   = Pegar
+UI.menu_items.paste_tt                                = Pegar el contenido del portapapeles en el diagrama de flujo actual
+UI.menu_items.properties                              = Propiedades\u2026
+UI.menu_items.properties_tt                           = Modificar las propiedades del objeto seleccionado
+UI.menu_items.wf_delete                               = Borrar el diagrama de flujo
+UI.menu_items.wf_delete_tt                            = Borrar el diagrama de flujo actual
+UI.menu_items.result_delete                           = Borrar este resultado
+UI.menu_items.result_delete_tt                        = Borrar el resultado seleccionado
+UI.menu_items.result_rename_tt                        = Cambiar el nombre\u2026
+UI.menu_items.result_rename                           = Cambiar el nombre de este resultado
+UI.menu_items.all_results_delete                      = Borrar todos los resultados
+UI.menu_items.all_results_delete_tt                   = Borrar todos los resultados de este diagrama de flujo
+UI.menu_items.wf_exec_stop                            = Parar
+UI.menu_items.wf_exec_stop_tt                         = Parar la ejecuci\u00f3n
+UI.menu_items.wf_execute                              = Ejecutar
+UI.menu_items.wf_execute_tt                           = Ejecutar el diagrama de flujo actual
+UI.menu_items.wf_import                               = Importar\u2026
+UI.menu_items.wf_import_tt                            = Importar en el espacio de trabajo actual un diagrama de flujo grabado en otra parte
+UI.menu_items.wf_rename                               = Cambiar el nombre\u2026
+UI.menu_items.wf_rename_tt                            = Cambiar el nombre del diagrama de flujo actual
+UI.menu_items.wf_results                              = Resultados
+UI.menu_items.wf_results_tt                           = Mostrar los resultados del diagrama de flujo
+UI.menu_items.show_statusbar                          = Barra de estado
+UI.menu_items.show_statusbar_tt                       = Mostrar/ocultar la barra de estado
+UI.menu_items.show_toolbar                            = Barra de herramientas
+UI.menu_items.show_toolbar_tt                         = Mostrar/ocultar la barra de herramientas
+
+UI.menu_items.create_file                             = Crear el fichero
+UI.menu_items.open_with                               = Abrir con\u2026
+UI.menu_items.display_file_action                     = Mostrar el fichero
+UI.menu_items.display_file_action_tt                  = Mostrar el contenido del fichero seleccionado
+UI.menu_items.anti_aliasing                           = Antialiasing
+UI.menu_items.anti_aliasing_tt                        = Usar o no antialiasing
+UI.menu_items.show_grid                               = Mostar cuadr\u00edcula
+UI.menu_items.show_grid_tt                            = Mostrar/ocultar la cuadr\u00edcula sobre el editor de gr\u00e1ficos
+UI.menu_items.snap_to_grid                            = Encajar en la cuadr\u00edcula
+UI.menu_items.snap_to_grid_tt                         = Encajar los elementos en la cuadr\u00edcula
+UI.menu_items.grid_size                               = Tama\u00f1o de la cuadr\u00edcula
+UI.menu_items.grid_size_tt                            = Modificar el tama\u00f1o de la cuadr\u00edcula
+UI.menu_items.grid_size_small                         = Peque\u00f1o
+UI.menu_items.grid_size_medium                        = Medio
+UI.menu_items.grid_size_large                         = Grande
+UI.menu_items.arrow_style                             = Estilo de flecha
+UI.menu_items.arrow_style_orthogonal                  = Ortogonal
+UI.menu_items.arrow_style_straigh                     = Recto
+UI.menu_items.save_as_image                           = Guardar como imagen\u2026
+UI.menu_items.save_as_image_tt                        = Guardar el diagrama de flujo como imagen PNG
+UI.menu_items.ws_close                                = Cerrar
+UI.menu_items.ws_close_tt                             = Cerrar el espacio de trabajo actual
+UI.menu_items.ws_delete                               = Borrar
+UI.menu_items.ws_delete_tt                            = Borrar el espacio de trabajo actual, incluyendo todos sus diagramas de flujo
+UI.menu_items.ws_new                                  = Nuevo
+UI.menu_items.ws_new_tt                               = Crear un nuevo espacio de trabajo
+UI.menu_items.ws_open                                 = Abrir
+UI.menu_items.ws_open_tt                              = Abrir un espacio de trabajo existente
+UI.menu_items.ws_rename                               = Cambiar el nombre\u2026
+UI.menu_items.ws_rename_tt                            = Cambiar el nombre del espacio de trabajo actual
+UI.menu_items.ws_save                                 = Guardar
+UI.menu_items.ws_save_tt                              = Guardar todos los diagramas de flujo en el espacio de trabajo actual
+UI.menu_items.ws_save_as                              = Guardar como\u2026
+UI.menu_items.ws_save_as_tt                           = Guardar el espacio de trabajo actual (\u00a1incluyendo todos los diagramas de flujo!) en otro espacio de trabajo
+
+UI.menu_items.License                                 = Licencia\u2026
+UI.menu_items.OtherLicenses                           = Licencias de terceros\u2026
+UI.menu_items.changes                                 = Cambios\u2026
+
+UI.menu_items.languages                               = Ajustes de idioma\u2026 (Language settings\u2026)
+# value                                               = language (translated language)
+UI.menu_items.language.fr                             = Fran\u00e7ais (Franc\u00e9s)
+UI.menu_items.language.el                             = Greek (Greek)
+UI.menu_items.language.en                             = English (Ingl\u00e9s)
+UI.menu_items.language.es                             = Espa\u00f1ol
+
+UI.progtree.database                                  = Base de datos
+UI.progtree.datasource                                = Inputs
+UI.progtree.file                                      = Fichero(s)
+UI.progtree.directory                                 = Directorio
+UI.progtree.programs                                  = Programas
+UI.results.info_title                                 = Informaciones
+UI.results.info_unimplemented                         = No hay informaci\u00f3n adicional sobre este fichero
+UI.results.input_files_popup_menu                     = Ficheros de entrada de datos
+UI.results.file_truncated                             = Este fichero de resultados es demasiado grande para mostrarse en esta vista: solo podr\u00e1 ver el comienzo de \u00e9l.\n\
+Para verlo en su totalidad, seleccione uno de los visores externos disponibles.
+UI.results.viewers.launch_failed                      = El visor externo seleccionado no se puede abrir
+UI.results.viewers.load_failed                        = El visor externo seleccionado no se puede abrir
+UI.status_msg.connect                                 = Conectando con el servidor\u2026
+UI.status_msg.logging                                 = Enviando credenciales\u2026
+
+UI.tab.close                                          = Cerrar esta pesta\u00f1a
+
+UI.label.search                                     = Buscar:
+UI.label.service_unknown                            = Este recurso es desconocido: no se puede usar
+UI.label.invalid_program_description                = La descripci\u00f3n de este programa no es v\u00e1lida, no se puede usar
+
+UI.view.opened_workflows                            = Diagramas de flujo abiertos
+UI.view.resources                                   = Programas
+
+common.application_name                   =
+common.close                              = Cerrar
+common.dialog.detailed_error.hide_details = Ocultar detalles <<<
+common.dialog.detailed_error.show_details = Mostar detalles >>>
+common.error                              = Error
+common.no                                 = No
+common.yes                                = S\u00ed
+common.warning                            = Atenci\u00f3n
+common.client_out_of_date                 = Este cliente est\u00e1 desactualizado: \n\u00a1por favor descargue un nuevo cliente!
+common.client_out_of_date_title           = Cliente desactualizado
+common.cnx_rejected.invalid_credentials            = No se puede conectar con el servidor:\ncredenciales no v\u00e1lidas.
+common.cnx_rejected.invalid_credentials_title      = Error en la connexi\u00f3n
+common.cnx_rejected.client_already_connected       = No se puede conectar con el servidor:\neste usuario ya est\u00e1 conectado.
+common.cnx_rejected.client_already_connected_title = Error en la connexi\u00f3n
+common.cnx_rejected.client_login_disabled          = El servidor no admite conexi\u00f3nes en este momento, por favor int\u00e9ntelo de nuevo m\u00e1s tarde.
+common.cnx_rejected.client_login_disabled_title    = Error en la connexi\u00f3n
+common.cnx_rejected.client_login_disabled_w_reason = El servidor no admite conexi\u00f3nes en este momento\n{0}
+common.cnx_rejected.client_login_disabled_w_reason_title = Error en la connexi\u00f3n
+common.cnx_rejected.maximum_number_of_clients       = Conexi\u00f3n rechazada: el servidor no puede aceptar m\u00e1s conexiones\nPor favor int\u00e9ntelo de nuevo m\u00e1s tarde\n\nDisculpe los problemas ocasionados.
+common.cnx_rejected.maximum_number_of_clients_title = Conexi\u00f3n rechazada
+
+wf.xmlwarnings.prg_desc_does_not_exists   = El diagrama de flujo us\u00f3 un programa llamado ''{0}'' que ya no est\u00e1 disponible.
+wf.xmlwarnings.prg_desc_replace_by_alternative = El diagrama de flujo us\u00f3 un programa llamado ''{0}'' que ya no est\u00e1 disponible.\n\
+Ha sido reemplazado con el programa ''{1}''.\n\
+Es posible que esta versi\u00f3n no sea totalmente compatible con la antigua; si es necesario, se mostrar\u00e1n las advertencias a continuaci\u00f3n \ para dar detalles completos de estas posibles incompatibilidades
+wf.xmlwarnings.prg_declares_invalid_param = El programa ''{0}'' us\u00f3 un par\u00e1metro denominado ''{1}'' que ya no est\u00e1 disponible \
+(el valor de este par\u00e1metro era: ''{2}'').
+wf.xmlwarnings.prg_param_has_invalid_value = El programa ''{0}'' declar\u00f3 un valor no v\u00e1lido para el par\u00e1metro ''{1}''. Este valor \
+era ''{2}'' y ya no es v\u00e1lido: el valor del par\u00e1metro se restableci\u00f3 al valor por defecto ''{3}''.
+wf.xmlwarnings.prg_has_invalid_link        = El programa ''{0}'' fue unido a un resultado del programa \u201c{1}\u201d (la salida se identific\u00f3 como ''{2}'') pero el enlace no es v\u00e1lido \
+(otro ''{1}'' ya no es un programa v\u00e1lido en el diagrama de flujo, o su salida correspondiente ya no es v\u00e1lida).\n\ El enlace entre dos programas no se ha podido restaurar.
+wf.xmlwarnings.prg_link_is_inactive        = La salida ''{1}'' del programa ''{0}'' y del input ''{3}'' del programa ''{2}'' \
+estaban unidos, pero al menos uno de ellos no est\u00e1 activado en la actual parametrizaci\u00f3n de esos dos programas.\n\
+El enlace entre los dos programas no podr\u00e1 ser restaurado.
+wf.xmlwarnings.prg_contains_useless_parameter = Info: el programa ''{0}'' declara un par\u00e1metro ''{1}'' (el tipo del param.''s es ''{2}''): \
+se ha ignorado este par\u00e1metro (Nota: este mensaje es puramente informativo, se puede ignorar de forma segura)
+
+eu.telecom_bretagne.praxis.core.execution.Result.Status.UNSET     = Desestablecer
+eu.telecom_bretagne.praxis.core.execution.Result.Status.SUBMITTED = Presentado
+eu.telecom_bretagne.praxis.core.execution.Result.Status.RUNNING   = Ejecuci\u00f3n en progreso
+eu.telecom_bretagne.praxis.core.execution.Result.Status.OK        = OK
+eu.telecom_bretagne.praxis.core.execution.Result.Status.WARNING   = OK, con advertencias
+eu.telecom_bretagne.praxis.core.execution.Result.Status.ERROR     = Error
+eu.telecom_bretagne.praxis.core.execution.Result.Status.CANCELLED = Cancelado
+eu.telecom_bretagne.praxis.licence=
+eu.telecom_bretagne.praxis.included_libs_licences=
+
+project.licence=
diff --git a/data/i18n/praxis_fr.properties b/data/i18n/praxis_fr.properties
index 4989361fdadd5771615bda4ade121f1795d4e215..dfdf80d11db09f841425fa9c98ec1cdba6067a7c 100644
--- a/data/i18n/praxis_fr.properties
+++ b/data/i18n/praxis_fr.properties
@@ -6,30 +6,30 @@ UI.TabbedPane.close_all                    = Fermer tous les onglets
 UI.TabbedPane.results                      = Tous les r\u00e9sultats...
 
 UI.actions.display_preferences.error                  = Une erreur est survenue lors de la cr\u00e9ation du panneau de pr\u00e9f\u00e9rence.
-UI.actions.execute_wf.confirm                         = \u00CAtes-vous s\u00FBr de vouloir ex\u00E9cuter le workflow {0}?
-UI.actions.execute_wf.error                           = L''ex\u00E9cution du workflow a \u00E9chou\u00E9
-UI.actions.execute_wf.title                           = Confirmation de l''ex\u00E9cution d''un workflow
+UI.actions.execute_wf.confirm                         = \u00cates-vous s\u00fbr de vouloir ex\u00e9cuter le workflow {0}?
+UI.actions.execute_wf.error                           = L''ex\u00e9cution du workflow a \u00e9chou\u00e9
+UI.actions.execute_wf.title                           = Confirmation de l''ex\u00e9cution d''un workflow
 UI.actions.execute_wf.invalid_workflow                = Impossible d''ex\u00e9cuter le workflow: veuillez v\u00e9rifier que toutes les entr\u00e9es sont connect\u00e9es, et que chaque programme a un param\u00e8trage valide.
-UI.actions.finished_exec.msg                          = L''ex\u00E9cution du workflow {0} s''est termin\u00E9e avec succ\u00E9s
-UI.actions.finished_exec_with_errors.msg              = L''ex\u00E9cution du workflow {0} est termin\u00E9e: une erreur s''est produite
-UI.actions.finished_exec_with_warnings.msg            = L''ex\u00E9cution du workflow {0} est termin\u00E9e, avec des avertissements: voir le d\u00e9tail dans les r\u00e9sultats
-UI.actions.finished_exec.title                        = Fin de l''ex\u00E9cution d''un workflow
+UI.actions.finished_exec.msg                          = L''ex\u00e9cution du workflow {0} s''est termin\u00e9e avec succ\u00e8s
+UI.actions.finished_exec_with_errors.msg              = L''ex\u00e9cution du workflow {0} est termin\u00e9e: une erreur s''est produite
+UI.actions.finished_exec_with_warnings.msg            = L''ex\u00e9cution du workflow {0} est termin\u00e9e, avec des avertissements: voir le d\u00e9tail dans les r\u00e9sultats
+UI.actions.finished_exec.title                        = Fin de l''ex\u00e9cution d''un workflow
 UI.actions.wf_close                                   = Fermer
 UI.actions.wf_close_tt                                = Fermer le workflow courant
 UI.actions.wf_close_all                               = Tout fermer
 UI.actions.wf_close_all_tt                            = Fermer tous les workflows
 UI.actions.wf_close_others                            = Fermer les autres
 UI.actions.wf_close_others_tt                         = Fermer les autres workflows
-UI.actions.wf_export                                  = Exporter sans les fichiers d''entr\u00E9es......
+UI.actions.wf_export                                  = Exporter sans les fichiers d''entr\u00e9es......
 UI.actions.wf_export_tt                               = Exporter un workflow
-UI.actions.wf_export_with_infiles                     = Exporter avec les fichiers d''entr\u00E9es...
-UI.actions.wf_export_with_infiles_tt                  = Exporter un workflow avec tous ses fichiers d''entr\u00E9es, dans un fichier zip
+UI.actions.wf_export_with_infiles                     = Exporter avec les fichiers d''entr\u00e9es...
+UI.actions.wf_export_with_infiles_tt                  = Exporter un workflow avec tous ses fichiers d''entr\u00e9es, dans un fichier zip
 UI.actions.wf_import                                  = Importer...
 UI.actions.wf_import_as_new                           = Importer dans un nouveau workflow...
 UI.actions.wf_import_as_new_tt                        = Importer un workflow dans un nouveau workflow
 UI.actions.wf_import_tt                               = Importer un workflow dans le workflow courant
 UI.actions.wf_new                                     = Nouveau
-UI.actions.wf_new_tt                                  = Cr\u00E9er un nouveau workflow
+UI.actions.wf_new_tt                                  = Cr\u00e9er un nouveau workflow
 UI.actions.wf_open                                    = Ouvrir...
 UI.actions.wf_open_tt                                 = Ouvrir un workflow existant
 UI.actions.wf_open_err_no_workflow                    = <html>Aucun workflow n''a encore \u00e9t\u00e9 cr\u00e9\u00e9 !<br/>\
@@ -39,74 +39,72 @@ UI.actions.wf_save                                    = Sauvegarder
 UI.actions.wf_save_as                                 = Sauvegarder sous...
 UI.actions.wf_save_as_tt                              = Sauvegarder sous...
 UI.actions.wf_save_tt                                 = Sauvegarder le workflow courant
-UI.actions.show_results.connect_err                   = Impossible de r\u00E9cup\u00E9rer la liste des r\u00E9sultats
+UI.actions.show_results.connect_err                   = Impossible de r\u00e9cup\u00e9rer la liste des r\u00e9sultats
 UI.actions.show_results.connect_err.title             = Erreur de connexion
-UI.actions.show_results.empty                         = Aucun r\u00E9sultat n''est disponible pour ce workflow
-UI.actions.show_results.empty.title                   = Visualisation des r\u00E9sultats
-UI.actions.stop_exec.error                            = Erreur: l''ex\u00E9cution n''a pas pu \u00EAtre arr\u00EAt\u00E9e
-UI.actions.valid_links_confirm                        = \u00CAtes-vous certain(e) de vouloir d\u00E9sactiver la v\u00E9rification automatique de la validit\u00E9 des liens entre programmes?
+UI.actions.show_results.empty                         = Aucun r\u00e9sultat n''est disponible pour ce workflow
+UI.actions.show_results.empty.title                   = Visualisation des r\u00e9sultats
+UI.actions.stop_exec.error                            = Erreur: l''ex\u00e9cution n''a pas pu \u00eatre arr\u00eat\u00e9e
+UI.actions.valid_links_confirm                        = \u00cates-vous certain(e) de vouloir d\u00e9sactiver la v\u00e9rification automatique de la validit\u00e9 des liens entre programmes?
 UI.actions.create_file_error                          = Impossible de cr\u00e9er le fichier {0}
 UI.actions.create_existing_file_error                 = Impossible de cr\u00e9er le fichier {0}: il existe d\u00e9j\u00e0
 UI.actions.zoom_in                                    = Zoom avant
 UI.actions.zoom_in_tt                                 = Dessine le workflow en plus grand pour mieux en distinguer les d\u00e9tails
 UI.actions.zoom_original                              = Zoom 1:1
 UI.actions.zoom_original_tt                           = R\u00e9tablit le facteur de zoom par d\u00e9faut
-UI.actions.zoom_out                                   = Zoom arri\u00E8re
+UI.actions.zoom_out                                   = Zoom arri\u00e8re
 UI.actions.zoom_out_tt                                = Dessine un workflow plus petit pour en voir une portion plus large
 UI.annotation.for_workflow                            = Annotation du workflow ''{0}''
 UI.annotation.for_program                             = Annotation du programme: ''{0}''
 UI.ctrlwf.run.file_does_not_exist                     = Le fichier {0} n''existe pas
 UI.ctrlwf.run.file_unreadable                         = Impossible de lire le fichier {0}
-UI.ctrlwf.run.zip_failed                              = Impossible d''ex\u00E9cuter le workflow: une erreur inattendue est survenue lors de la pr\u00E9paration de l''ex\u00E9cution\n\
+UI.ctrlwf.run.zip_failed                              = Impossible d''ex\u00e9cuter le workflow: une erreur inattendue est survenue lors de la pr\u00e9paration de l''ex\u00e9cution\n\
 \n\
-D\u00E9tail:\n\
+D\u00e9tail:\n\
 {0}\n\
 
-UI.ctrlwf.run.zip_failed_missing_file                 = Impossible d''ex\u00E9cuter le workflow: au moins un des fichiers utilis\u00E9s n''existe pas !\n\
+UI.ctrlwf.run.zip_failed_missing_file                 = Impossible d''ex\u00e9cuter le workflow: au moins un des fichiers utilis\u00e9s n''existe pas !\n\
 \n\
-D\u00E9tail:\n\
+D\u00e9tail:\n\
 {0}\n\
 
 UI.datasource.unset_path                              = <not set>
 
-UI.dialog.about                                       = \u00C0 propos...
-UI.dialog.about_content                                   = <html>\
-  {3}\
+UI.dialog.about                                       = \u00c0 propos...
+UI.dialog.about_content                               = <html>\
+  {0}\
+  <div>\
   <hr>\
-  <i>Elabor\u00e9 avec Praxis - Version {0} - dat\u00E9 du {2}<br>\
-     Copyright Institut Mines Telecom - IMT Atlantique Bretagne Pays de la Loire 2002-2017<br>\
-     Tous droits r\u00E9serv\u00E9s</i>\
+  <i>\u00c9labor\u00e9 avec Praxis - Version {1} ({2})<br>\
+     &copy; Institut Mines T\u00e9l\u00e9com - IMT Atlantique Bretagne-Pays de la Loire 2002-2018<br>\
+     Tous droits r\u00e9serv\u00e9s.</i><br>\
+     <small>Build: {3}</small>\
+  <hr>\
+  </div>\
 </html>
-UI.dialog.about_msg                                   = 
-UI.dialog.bank_list.list_header_month                 = Ann\u00E9e
-UI.dialog.bank_list.list_header_selection             = Nom
-UI.dialog.bank_list.list_header_type                  = Type
-UI.dialog.bank_list.list_header_version               = Version
-UI.dialog.bank_list.title                             = Bases de donn\u00E9es disponibles
-UI.dialog.connection.connect_to_server                = \u00C9tablir la connexion au serveur :
+UI.dialog.about_msg                                   =
+UI.dialog.connection.connect_to_server                = \u00c9tablir la connexion au serveur :
 UI.dialog.connection.enter_login_passwd               = Veuillez saisir votre identifiant et votre mot de passe
 UI.dialog.connection.login                            = Nom d''utilisateur :
 UI.dialog.connection.passwd                           = Mot de passe :
 UI.dialog.connection.server                           = Serveur (h\u00f4te:port) :
 UI.dialog.connection.title                            = Ouverture de l''application...
-UI.dialog.connection_failure                          = Impossible de se connecter au serveur, veuillez r\u00E9essayer ult\u00E9rieurement
-UI.dialog.connection_failure_title                    = \u00C9chec de la connexion
-UI.dialog.datasource_inputs.DB                        = Base de donn\u00E9es
+UI.dialog.connection_failure                          = Impossible de se connecter au serveur, veuillez r\u00e9essayer ult\u00e9rieurement
+UI.dialog.connection_failure_title                    = \u00c9chec de la connexion
 UI.dialog.datasource_inputs.add                       = Ajouter
 UI.dialog.datasource_inputs.delete                    = Supprimer
 UI.dialog.datasource_inputs.file                      = Fichiers
-UI.dialog.datasource_inputs.title                     = Propri\u00E9t\u00E9s
+UI.dialog.datasource_inputs.title                     = Propri\u00e9t\u00e9s
 UI.dialog.default_filesource_displayname              = Fichier
 UI.dialog.default_directorysource_displayname         = R\u00e9pertoire
-UI.dialog.disconnect_confirm                          = Souhaitez-vous vous d\u00E9connecter du serveur ?
-UI.dialog.disconnect_confirm_title                    = D\u00E9connexion du serveur
+UI.dialog.disconnect_confirm                          = Souhaitez-vous vous d\u00e9connecter du serveur ?
+UI.dialog.disconnect_confirm_title                    = D\u00e9connexion du serveur
 UI.dialog.error                                       = Erreur !
 UI.dialog.file_chooser.title                          = Ajout de fichiers
-UI.dialog.file.overwrite                              = Le fichier existe d\u00E9j\u00E0: l''\u00E9craser?
+UI.dialog.file.overwrite                              = Le fichier existe d\u00e9j\u00e0: l''\u00e9craser?
 UI.dialog.help.title                                  = Aide
 UI.dialog.help.not_available                          = Aucune aide disponible pour le moment
-UI.dialog.image.save.failed_title                     = \u00C9chec de l''enregistrement
-UI.dialog.image.save.failed                           = L''image n''a pas pu \u00EAtre sauvegard\u00E9e: une erreur est survenue
+UI.dialog.image.save.failed_title                     = \u00c9chec de l''enregistrement
+UI.dialog.image.save.failed                           = L''image n''a pas pu \u00eatre sauvegard\u00e9e: une erreur est survenue
 UI.dialog.import.label_wf                             = Workflow
 UI.dialog.import.label_ws                             = Espace de travail
 UI.dialog.import.msg_wf                               = Quel workflow voulez-vous importer?
@@ -115,23 +113,23 @@ UI.dialog.save_as.title                               = Sauvegarder sous
 UI.dialog.rename.title                                = Renommer
 UI.dialog.logging_err_msg                             = Impossible de se connecter: utilisateur/mot de passe incorrects
 UI.dialog.login_mandatory                             = Vous devez au moins fournir un nom d''utilisateur !
-UI.dialog.open.label_wf                               = S\u00E9lectionner un workflow \u00E0 ouvrir:\n\
+UI.dialog.open.label_wf                               = S\u00e9lectionner un workflow \u00e0 ouvrir:\n\
 \n\
 
-UI.dialog.open.label_ws                               = S\u00E9lectionner l''espace de travail \u00E0 ouvrir:\n\
+UI.dialog.open.label_ws                               = S\u00e9lectionner l''espace de travail \u00e0 ouvrir:\n\
 \n\
 
 UI.dialog.open.title                                  = Ouverture
 UI.dialog.datasource.rename_title                     = Renommage de la source de donn\u00e9es
-UI.dialog.datasource.rename                           = Veuillez entrer le nom de cet \u00e9l\u00e9ment: 
+UI.dialog.datasource.rename                           = Veuillez entrer le nom de cet \u00e9l\u00e9ment:
 UI.dialog.datasource.incorrect_name_title             = Nom incorrect
-UI.dialog.datasource.incorrect_name                   = Les caract\u00E8res :, ?, /, \\, <, >, " et | ne sont pas autoris\u00E9s
-UI.dialog.datasource.name_already_exists              = Il existe d\u00E9j\u00E0 une entr\u00E9e portant ce nom. Veuillez en choisir un autre.
+UI.dialog.datasource.incorrect_name                   = Les caract\u00e8res :, ?, /, \\, <, >, \" et | ne sont pas autoris\u00e9s
+UI.dialog.datasource.name_already_exists              = Il existe d\u00e9j\u00e0 une entr\u00e9e portant ce nom. Veuillez en choisir un autre.
 UI.dialog.prg_properties.descr_window_title           = Description de: {0}
 UI.dialog.prg_properties.main_label                   = Description de: {0}  (cliquer pour l''afficher)
-UI.dialog.prg_properties.parameters                   = Param\u00E8tres :
-UI.dialog.prg_properties.parameters_default           = (et leur valeur par d\u00E9faut)
-UI.dialog.prg_properties.title                        = Propri\u00E9t\u00E9s de programme
+UI.dialog.prg_properties.parameters                   = Param\u00e8tres :
+UI.dialog.prg_properties.parameters_default           = (et leur valeur par d\u00e9faut)
+UI.dialog.prg_properties.title                        = Propri\u00e9t\u00e9s de programme
 UI.dialog.quit                                        = Quitter
 UI.dialog.quit_and_disconnect_msg                     = \n\
 Voulez-vous quitter l''application?\n\
@@ -139,28 +137,24 @@ Voulez-vous quitter l''application?\n\
 UI.dialog.quit_msg                                    = Voulez-vous quitter l''application?
 UI.dialog.save_ws.btn_none                            = Aucun
 UI.dialog.save_ws.btn_ok                              = OK
-UI.dialog.save_ws.msg                                 = S\u00E9lectionner les workflows \u00E0 sauvegarder :
+UI.dialog.save_ws.msg                                 = S\u00e9lectionner les workflows \u00e0 sauvegarder :
 UI.dialog.save_ws.title                               = Sauvegarde de {0}
-UI.dialog.wf.already_opened                           = Ce workflow est d\u00E9j\u00E0 ouvert !
-UI.dialog.wf.close_and\ saved                          = Le workflow {0} a bien \u00E9t\u00E9 enregistr\u00E9\n\
-\n\
-Fichier: {1}\n\
-
+UI.dialog.wf.already_opened                           = Ce workflow est d\u00e9j\u00e0 ouvert !
 UI.dialog.wf.close_confirm                            = Voulez-vous sauvegarder le workflow "{0}" avant de le fermer?
 UI.dialog.wf.close_title                              = Fermeture d''un workflow
 UI.dialog.wf.enter_name                               = Choisir un nom pour le workflow:
-UI.dialog.wf.creation_failed_ws_not_selected          = Veuillez cr\u00E9er ou s\u00E9lectionner un espace de travail avant de cr\u00E9er un workflow
-UI.dialog.wf.creation_failure_title                   = Erreur lors de la cr\u00E9ation d''un workflow
-UI.dialog.wf.creation_title                           = Cr\u00E9ation d''un workflow
-UI.dialog.wf.delete_result_confirm_title              = Effacement d''un r\u00E9sultat
-UI.dialog.wf.delete_result_confirm                    = \u00cates-vous s\u00fbr(e) de vouloir effacer d\u00E9finitivement ce r\u00E9sultat ?
+UI.dialog.wf.creation_failed_ws_not_selected          = Veuillez cr\u00e9er ou s\u00e9lectionner un espace de travail avant de cr\u00e9er un workflow
+UI.dialog.wf.creation_failure_title                   = Erreur lors de la cr\u00e9ation d''un workflow
+UI.dialog.wf.creation_title                           = Cr\u00e9ation d''un workflow
+UI.dialog.wf.delete_result_confirm_title              = Effacement d''un r\u00e9sultat
+UI.dialog.wf.delete_result_confirm                    = \u00cates-vous s\u00fbr(e) de vouloir effacer d\u00e9finitivement ce r\u00e9sultat ?
 UI.dialog.wf.delete_all_results_confirm_title         = Effacement de tous les r\u00e9sultats
-UI.dialog.wf.delete_all_results_confirm               = \u00cates-vous s\u00fbr(e) de vouloir effacer d\u00E9finitivement tous les r\u00e9sultats de ce workflow ?
+UI.dialog.wf.delete_all_results_confirm               = \u00cates-vous s\u00fbr(e) de vouloir effacer d\u00e9finitivement tous les r\u00e9sultats de ce workflow ?
 UI.dialog.wf.delete                                   = Suppression du workflow en cours
 UI.dialog.wf.delete_confirm                           = \n\
-\u00CAtes-vous certain(e) de vouloir d\u00E9finitivement effacer ce workflow?\n\
+\u00cates-vous certain(e) de vouloir d\u00e9finitivement effacer ce workflow?\n\
 \n\
-Cet op\u00E9ration supprimera d\u00E9finitivement l''ensemble de ses r\u00E9sultats.\n\
+Cet op\u00e9ration supprimera d\u00e9finitivement l''ensemble de ses r\u00e9sultats.\n\
 
 UI.dialog.wf.existing_names                           = Les workflows d\u00e9j\u00e0 existants sont:
 UI.dialog.wf.export_title                             = Export d''un workflow
@@ -171,148 +165,106 @@ UI.dialog.wf.import_cannot_read_zip                   = Impossible de lire le fi
 UI.dialog.wf.import_create_dir                        = Le r\u00e9pertoire choisi n''existe pas. Voulez-vous le cr\u00e9er?
 UI.dialog.wf.import_drop_file_in_dir                  = D\u00e9poser les fichiers d''entr\u00e9 dans ce r\u00e9pertoire
 UI.dialog.wf.import_failure                           = Une erreur inattendue s''est produite lors de l''importation du workflow
-UI.dialog.wf.import_failure_title                     = \u00C9chec de l''importation d''un workflow
-UI.dialog.wf.import_impossible_coz_execution          = Impossible d''importer le workflow: une ex\u00E9cution est en cours
+UI.dialog.wf.import_failure_title                     = \u00c9chec de l''importation d''un workflow
+UI.dialog.wf.import_impossible_coz_execution          = Impossible d''importer le workflow: une ex\u00e9cution est en cours
 UI.dialog.wf.import_invalid_archive                   = Archive invalide
 UI.dialog.wf.import_not_a_dir                         = "{0}" n''est pas un r\u00e9pertoire. Veuillez s\u00e9lectionner un r\u00e9pertoire.
 UI.dialog.wf.invalid_name_empty                       = Le nom ne peut pas \u00eatre vide!
 UI.dialog.wf.invalid_name_already_exists              = Un autre workflow a d\u00e9j\u00e0 ce nom!
 UI.dialog.wf.open_failed_no_workflow                  = Impossible d''ouvrir un workflow: aucun n''est disponible !
-UI.dialog.wf.open_failed_no_workspace                 = Impossible d''ouvrir un workflow: aucun workspace n''est disponible !
-UI.dialog.wf.open_failed_xml_not_conform_to_DTD       = Impossible d''ouvrir le workflow: le xml n''est pas conforme \u00E0 la DTD
+UI.dialog.wf.open_failed_xml_not_conform_to_DTD       = Impossible d''ouvrir le workflow: le xml n''est pas conforme \u00e0 la DTD
 UI.dialog.wf.open_failure                             = Une erreur inattendue s''est produite lors de l''ouverture du workflow
 UI.dialog.wf.rename_save_before_confirm               = Le workflow a \u00e9t\u00e9 modifi\u00e9 et doit \u00eatre sauvegard\u00e9 avant d''\u00eatre renomm\u00e9.\n\
-UI.dialog.wf.open_failure_title                       = \u00C9chec de l''ouverture d''un workflow
-UI.dialog.wf.open_select_workflows                    = S\u00e9lectionnez le(s) workflow(s) \u00e0 ouvrir:
 Souhaitez-vous le faire maintenant?
-UI.dialog.wf.rename_enter_new_name                    = Veuillez entrer le nouveau nom de ce workflow :
-UI.dialog.wf.rename_failure_title                     = \u00C9chec du renommage d''un workflow
+UI.dialog.wf.open_failure_title                       = \u00c9chec de l''ouverture d''un workflow
+UI.dialog.wf.open_select_workflows                    = S\u00e9lectionnez le(s) workflow(s) \u00e0 ouvrir:
+UI.dialog.wf.rename_failure_title                     = \u00c9chec du renommage d''un workflow
 UI.dialog.wf.rename_impossible                        = \u00c9chec du renommage (raison inconnue).\n\
 Cause d''\u00e9chec possible: les fichiers correspondants sont peut-\u00eatre ouverts dans un autre outil.
-UI.dialog.wf.rename_impossible_coz_execution          = Impossible de renommer le workflow: une ex\u00E9cution est en cours
+UI.dialog.wf.rename_impossible_coz_execution          = Impossible de renommer le workflow: une ex\u00e9cution est en cours
 UI.dialog.wf.rename_title                             = Renommage de {0}
-UI.dialog.wf.save_as_enter_new_name                   = Veuillez entrer le nom sous lequel vous souhaitez enregistrer ce workflow :
-UI.dialog.wf.save_as_failed_name_already_exists       = Un workflow portant ce nom existe d\u00E9j\u00E0
-UI.dialog.wf.save_as_failure                          = \u00C9chec lors du renommage du workflow
-UI.dialog.wf.save_as_impossible_coz_execution         = Impossible de renommer le workflow lorsqu''il est en train de s''ex\u00E9cuter
-UI.dialog.wf.save_as_title                            = Sauvegarde de {0} sous...
-UI.dialog.wf.save_msg                                 = Sauvegarde de: {0}
 UI.dialog.wf.save_title                               = Sauvegarde d''un workflow
 UI.dialog.wf.save_failed                              = Impossible de sauvegarder le workflow
 UI.dialog.wf.delete_title                             = Suppression du workflow {0}
 UI.dialog.wf.delete_confirm_msg                       = \u00cates-vous s\u00fbr(e) de vouloir supprimer le workflow {0}?
 UI.dialog.wf.delete_confirm_msg_with_results          = \u00cates-vous s\u00fbr(e) de vouloir supprimer le workflow {0}?\n\
-Ce workflow a d\u00e9j\u00e0 \u00e9t\u00e9 ex\u00e9cut\u00e9; l''effacer entra\u00eenera egalement la suppression de tous les r\u00e9sultats correspondants.
+Ce workflow a d\u00e9j\u00e0 \u00e9t\u00e9 ex\u00e9cut\u00e9; l''effacer entra\u00eenera \u00e9galement la suppression de tous les r\u00e9sultats correspondants.
 UI.dialog.wf.warnings_title                           = Le workflow n\u00e9cessite des v\u00e9rifications
 UI.dialog.wf.warnings                                 = Attention: en chargeant le workflow, des incoh\u00e9rences ont \u00e9t\u00e9 \
 trouv\u00e9es dans le param\u00e9trage de certains programmes.\n\
 Vous trouverez ci-dessous le d\u00e9tail des erreurs qui ont \u00e9t\u00e9 automatiquement corrig\u00e9es. \n\
-Nous vous conseillons de v\u00e9rifier ces corrections et de vous assurer par ailleurs que le param\u00e9trage des programmes \
-mis en cause est correct. 
+Nous vous conseillons de v\u00e9rifier ces corrections et de vous assurer par ailleurs que le param\u00e9trage des programmes mis en cause est correct.
+
 UI.dialog.result.rename                               = Nom du r\u00e9sultat :
 UI.dialog.result.rename_title                         = Renommage du r\u00e9sultat
-UI.dialog.result.rename_failed_title                  = \u00C9chec du renommage d''un r\u00e9sultat
+UI.dialog.result.rename_failed_title                  = \u00c9chec du renommage d''un r\u00e9sultat
 UI.dialog.result.rename_failed                        = Le renommage du r\u00e9sultat a \u00e9chou\u00e9
 UI.dialog.btn_cancel                                  = Annuler
 UI.dialog.btn_ok                                      = OK
 UI.dialog.btn_apply                                   = Appliquer
-UI.dialog.btn.overwrite                               = \u00C9craser
+UI.dialog.btn.overwrite                               = \u00c9craser
 UI.dialog.btn_open                                    = Ouvrir
 UI.dialog.select_results.btn_display                  = Afficher
-UI.dialog.select_results.header                       = Quels r\u00E9sultats souhaitez-vous visualiser?\n\
+UI.dialog.select_results.header                       = Quels r\u00e9sultats souhaitez-vous visualiser?\n\
 
-UI.dialog.select_results.title                        = R\u00E9sultats de: {0}
-UI.dialog.results.title                               = R\u00E9sultats
+UI.dialog.select_results.title                        = R\u00e9sultats de: {0}
+UI.dialog.results.title                               = R\u00e9sultats
 UI.dialog.splash.img_path                             = data/client/images/splash.jpg
 UI.dialog.splash.init_msg                             = Initialisation...
-UI.dialog.ws.already_exists                           = Un autre espace de travail existe d\u00E9j\u00E0 avec ce nom !
-UI.dialog.ws.already_opened                           = Cet espace de travail est d\u00E9j\u00E0 ouvert !
-UI.dialog.ws.creation_enter_new_name                  = Veuillez entrer le nom de ce nouvel espace de travail :
-UI.dialog.ws.creation_failure                         = \u00C9chec de la cr\u00E9ation d''un nouvel espace de travail
-UI.dialog.ws.creation_title                           = Cr\u00E9ation d''un espace de travail
-UI.dialog.ws.delete                                   = Suppression de l''espace de travail en cours
-UI.dialog.ws.delete_confirm                           = \n\
-\u00CAtes-vous certain(e) de vouloir d\u00E9finitivement effacer cet espace de travail?\n\
-\n\
-Cet op\u00E9ration supprimera tous ses workflows, ainsi que l''ensemble de leurs r\u00E9sultats.
-UI.dialog.ws.incorrect_name                           = Nom incorrect: il ne doit contenir que les caract\u00E8res suivants: lettres, chiffres, . (point) ou _ (soulign\u00E9)
-UI.dialog.ws.invalid_empty_ws                         = Aucun workflow valide n''a \u00E9t\u00E9 trouv\u00E9, le workspace n''a pu \u00EAtre ouvert.
-UI.dialog.ws.invalid_workflows_couldnt_be_loaded      = Les fichiers de workflow suivants ne sont pas valides et n''ont pas pu \u00EAtre lus:\n\
-
-UI.dialog.ws.none_found                               = Aucun espace de travail n''est disponible !
-UI.dialog.ws.open_failure                             = Une erreur inattendue s''est produite lors de l''ouverture de l''espace de travail\n\
-\n\
-D\u00E9tails :\n\
-{0}
-UI.dialog.ws.open_failure_title                       = \u00C9chec de l''ouverture d''un espace de travail
-UI.dialog.ws.rename_enter_new_name                    = Veuillez entrer le nouveau nom de cet espace de travail :
-UI.dialog.ws.rename_failure                           = \u00C9chec lors du renommage d''un espace de travail
-UI.dialog.ws.rename_impossible_coz_execution          = Impossible de renommer l''espace de travail: au moins un de ses workflows est en cours d''ex\u00E9cution
-UI.dialog.ws.rename_title                             = Renommage de {0}
-UI.dialog.ws.save_as_enter_new_name                   = Veuillez entrer le nom sous lequel vous souhaitez enregistrer cet espace de travail :
-UI.dialog.ws.save_as_failure                          = \u00C9chec lors du renommage de l''espace de travail
-UI.dialog.ws.save_as_impossible_coz_execution         = Impossible de renommer l''espace de travail: au moins un de ses workflows est en cours d''ex\u00E9cution
-UI.dialog.ws.save_as_title                            = Sauvegarde de {0} sous...
-UI.dialog.ws.save_msg                                 = Les fichiers suivants ont \u00E9t\u00E9 sauvegard\u00E9s:\n\
-\n\
-{0}
-UI.dialog.ws.save_title                               = Espace de travail sauvegard\u00E9
 
 UI.dialog.change_language                             = Vous devez red\u00e9marrer le logiciel pour que le changement de langue prenne pleinement effet!
 UI.dialog.change_language_title                       = Modification de la langue du logiciel
 
 UI.menu.display                                       = Affichage
-UI.menu.edit                                          = \u00C9dition
-UI.menu.execution                                     = Ex\u00E9cution
+UI.menu.edit                                          = \u00c9dition
+UI.menu.execution                                     = Ex\u00e9cution
 UI.menu.file                                          = Fichier
 UI.menu.help_about                                    = ?
-UI.menu.prefs                                         = Pr\u00E9f\u00E9rences
+UI.menu.prefs                                         = Pr\u00e9f\u00e9rences
 UI.menu.workflow                                      = Workflow
 UI.menu.workspace                                     = Espace de travail
-UI.menu_items.about                                   = \u00C0 propos...
+UI.menu_items.about                                   = \u00c0 propos...
 UI.menu_items.about_tt                                = Informations sur le logiciel
-UI.menu_items.check_valid_links                       = V\u00E9rifier la validit\u00E9 des liens
-UI.menu_items.check_valid_links_tt                    = Permet d''activer ou de d\u00E9sactiver la proc\u00E9dure automatique qui contr\u00F4le que deux \u00E9l\u00E9ments d''un workflow (programmes, fichiers ou bases de donn\u00E9es) sont compatibles lorsque l''on cherche \u00E0 les encha\u00EEner l''un \u00E0 la suite de l''autre.
+UI.menu_items.check_valid_links                       = V\u00e9rifier la validit\u00e9 des liens
+UI.menu_items.check_valid_links_tt                    = Permet d''activer ou de d\u00e9sactiver la proc\u00e9dure automatique qui contr\u00f4le que deux \u00e9l\u00e9ments d''un workflow (programmes, fichiers ou bases de donn\u00e9es) sont compatibles lorsque l''on cherche \u00e0 les encha\u00eener l''un \u00e0 la suite de l''autre.
 UI.menu_items.open_all_results                        = Ouvrir imm\u00e9diatement tous les fichiers r\u00e9sultat
-UI.menu_items.open_all_results_tt                     = Ouvre automatiquement tous les fichiers lorsqu''un r\u00E9sultat est s\u00E9lectionn\u00E9
+UI.menu_items.open_all_results_tt                     = Ouvre automatiquement tous les fichiers lorsqu''un r\u00e9sultat est s\u00e9lectionn\u00e9
 UI.menu_items.options                                 = Options...
 UI.menu_items.options_tt                              = Options du logiciel
 UI.menu_items.connect                                 = Connexion
 UI.menu_items.connect_tt                              = Connexion au serveur
 UI.menu_items.copy                                    = Copier
-UI.menu_items.copy_tt                                 = Copie le ou les objets s\u00E9lectionn\u00E9(s) dans le presse-papier
+UI.menu_items.copy_tt                                 = Copie le ou les objets s\u00e9lectionn\u00e9(s) dans le presse-papier
 UI.menu_items.delete                                  = Supprimer
-UI.menu_items.delete_tt                               = Supprime le ou les objet(s) s\u00E9lectionn\u00E9(s)
-UI.menu_items.disconnect                              = D\u00E9connexion
-UI.menu_items.disconnect_tt                           = D\u00E9connexion du serveur
+UI.menu_items.delete_tt                               = Supprime le ou les objet(s) s\u00e9lectionn\u00e9(s)
+UI.menu_items.disconnect                              = D\u00e9connexion
+UI.menu_items.disconnect_tt                           = D\u00e9connexion du serveur
 UI.menu_items.edit_rename                             = Renommer...
-UI.menu_items.edit_rename_tt                          = Permet de renommer l''objet selectionn\u00E9
+UI.menu_items.edit_rename_tt                          = Permet de renommer l''objet s\u00e9lectionn\u00e9
 UI.menu_items.exit                                    = Quitter
 UI.menu_items.exit_tt                                 = Quitte l''application
 UI.menu_items.help                                    = Aide
 UI.menu_items.help_tt                                 = Aide
 UI.menu_items.paste                                   = Coller
 UI.menu_items.paste_tt                                = Colle le contenu du presse-papier dans le workflow en cours
-UI.menu_items.properties                              = Propri\u00E9t\u00E9s...
-UI.menu_items.properties_tt                           = Modifie les propri\u00E9t\u00E9s de l''objet s\u00E9lectionn\u00E9
+UI.menu_items.properties                              = Propri\u00e9t\u00e9s...
+UI.menu_items.properties_tt                           = Modifie les propri\u00e9t\u00e9s de l''objet s\u00e9lectionn\u00e9
 UI.menu_items.wf_delete                               = Supprimer le workflow
 UI.menu_items.wf_delete_tt                            = Supprime le workflow actuel
-UI.menu_items.result_delete                           = Supprimer ce r\u00E9sultat
-UI.menu_items.result_delete_tt                        = Supprime le r\u00E9sultat s\u00E9lectionn\u00E9
+UI.menu_items.result_delete                           = Supprimer ce r\u00e9sultat
+UI.menu_items.result_delete_tt                        = Supprime le r\u00e9sultat s\u00e9lectionn\u00e9
 UI.menu_items.result_rename_tt                        = Renommer...
 UI.menu_items.result_rename                           = Renommer ce r\u00e9sultat
-UI.menu_items.all_results_delete                      = Supprimer tous les r\u00E9sultats
-UI.menu_items.all_results_delete_tt                   = Supprime tous les r\u00E9sultats pour ce workflow
+UI.menu_items.all_results_delete                      = Supprimer tous les r\u00e9sultats
+UI.menu_items.all_results_delete_tt                   = Supprime tous les r\u00e9sultats pour ce workflow
 UI.menu_items.wf_exec_stop                            = Interrompre
-UI.menu_items.wf_exec_stop_tt                         = Interrompt l''ex\u00E9cution en cours
-UI.menu_items.wf_execute                              = Ex\u00E9cuter
-UI.menu_items.wf_execute_tt                           = Ex\u00E9cute le workflow actuel
-UI.menu_items.wf_import                               = Importer
-UI.menu_items.wf_import_tt                            = Importe dans l''espace de travail actuel un workflow enregistr\u00E9 sur le disque
+UI.menu_items.wf_exec_stop_tt                         = Interrompt l''ex\u00e9cution en cours
+UI.menu_items.wf_execute                              = Ex\u00e9cuter
+UI.menu_items.wf_execute_tt                           = Ex\u00e9cute le workflow actuel
 UI.menu_items.wf_rename                               = Renommer...
 UI.menu_items.wf_rename_tt                            = Renomme le workflow actuel
-UI.menu_items.wf_results                              = R\u00E9sultats
-UI.menu_items.wf_results_tt                           = Afficher les r\u00E9sultats du workflow
+UI.menu_items.wf_results                              = R\u00e9sultats
+UI.menu_items.wf_results_tt                           = Afficher les r\u00e9sultats du workflow
 UI.menu_items.show_statusbar                          = Barre de statut
 UI.menu_items.show_statusbar_tt                       = Affiche/cache la barre de statut
 UI.menu_items.show_toolbar                            = Barre d''outils
@@ -327,7 +279,7 @@ UI.menu_items.anti_aliasing_tt                        = Utiliser ou non l''antia
 UI.menu_items.show_grid                               = Voir la grille
 UI.menu_items.show_grid_tt                            = Afficher/masquer la grille dans l''\u00e9diteur de graphe
 UI.menu_items.snap_to_grid                            = Aligner sur la grille
-UI.menu_items.snap_to_grid_tt                         = Aligner les \u00e9l\u00e9ments graphiques sur la grilles
+UI.menu_items.snap_to_grid_tt                         = Aligner les \u00e9l\u00e9ments graphiques sur la grille
 UI.menu_items.grid_size                               = Talle de la grille
 UI.menu_items.grid_size_tt                            = Modifier la taille de la grille
 UI.menu_items.grid_size_small                         = Petite
@@ -339,40 +291,28 @@ UI.menu_items.arrow_style_straigh                     = Droit
 UI.menu_items.save_as_image                           = Sauver au format image...
 UI.menu_items.save_as_image_tt                        = Sauver le workflow au format image PNG
 
-UI.menu_items.ws_close                                = Fermer
-UI.menu_items.ws_close_tt                             = Ferme l''espace de travail actuel
-UI.menu_items.ws_delete                               = Supprimer
-UI.menu_items.ws_delete_tt                            = Supprime l''espace de travail actuel, ainsi que tous ses workflows
-UI.menu_items.ws_new                                  = Nouveau
-UI.menu_items.ws_new_tt                               = Cr\u00E9e un nouvel espace de travail
-UI.menu_items.ws_open                                 = Ouvrir
-UI.menu_items.ws_open_tt                              = Demande l''ouverture d''un espace de travail
-UI.menu_items.ws_rename                               = Renommer...
-UI.menu_items.ws_rename_tt                            = Change le nom de l''espace de travail actuel
-UI.menu_items.ws_save                                 = Sauvegarder
-UI.menu_items.ws_save_tt                              = Sauvegarde l''ensemble des workflows de l''espace de travail actuel
-UI.menu_items.ws_save_as                              = Sauvegarder sous...
-UI.menu_items.ws_save_as_tt                           = Sauvegarde l''espace de travail actuel (et tous ses workflows !) dans un nouvel espace de travail
-
 UI.menu_items.License                                 = Licence...
 UI.menu_items.OtherLicenses                           = Licences des programmes tiers...
 UI.menu_items.changes                                 = Modifications...
 
-UI.menu_items.languages                               = Changer la langue...
-UI.menu_items.language.en                             = English
+UI.menu_items.languages                               = Changer la langue... (Language settings\u2026)
+# value                                               = language (translated language)
 UI.menu_items.language.fr                             = Fran\u00e7ais
+UI.menu_items.language.en                             = English (Anglais)
+UI.menu_items.language.el                             = \u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac (Grec)
+UI.menu_items.language.es                             = Espa\u00f1ol (Espagnol)
 
-UI.progtree.database                                  = Base de donn\u00E9es
-UI.progtree.datasource                                = Entr\u00E9es
+UI.progtree.database                                  = Base de donn\u00e9es
+UI.progtree.datasource                                = Entr\u00e9es
 UI.progtree.file                                      = Fichier(s)
 UI.progtree.directory                                 = R\u00e9pertoire
 UI.progtree.programs                                  = Programmes
 UI.results.info_title                                 = Informations
-UI.results.info_unimplemented                         = Aucune information suppl\u00E9mentaire n''est disponible sur ce fichier
-UI.results.input_files_popup_menu                     = Fichiers d''entr\u00E9e
+UI.results.info_unimplemented                         = Aucune information suppl\u00e9mentaire n''est disponible sur ce fichier
+UI.results.input_files_popup_menu                     = Fichiers d''entr\u00e9e
 UI.results.file_truncated                             = Ce fichier de r\u00e9sultat est trop volumineux pour \u00eatre affich\u00e9 dans cette fen\u00eatre: seul le d\u00e9but est affich\u00e9.\n\
 Pour le visualiser en entier, s\u00e9lectionnez un des visualisateurs externes disponibles.
-UI.results.viewers.launch_failed                      = Impossible de lancer le visualisateur externe s\u00E9lectionn\u00E9
+UI.results.viewers.launch_failed                      = Impossible de lancer le visualisateur externe s\u00e9lectionn\u00e9
 UI.results.viewers.load_failed                        = Impossible de charger le visualisateur externe
 UI.status_msg.connect                                 = Connexion au serveur...
 UI.status_msg.logging                                 = Authentification...
@@ -381,15 +321,15 @@ UI.tab.close                                          = Ferme cet onglet
 
 UI.label.search                                       = Recherche:
 UI.label.service_unknown                              = Cette ressource est inconnue: elle ne peut pas \u00eatre utilis\u00e9e
-UI.label.invalid_program_description                  = La description de ce programme n''est pas valide, il ne peut \u00EAtre utilis\u00E9
+UI.label.invalid_program_description                  = La description de ce programme n''est pas valide, il ne peut \u00eatre utilis\u00e9
 
 UI.view.opened_workflows                              = Workflows ouverts
 UI.view.resources                                     = Programmes
 
-common.application_name                   = 
+common.application_name                   =
 common.close                              = Fermer
-common.dialog.detailed_error.hide_details = Cacher les d\u00E9tails <<<
-common.dialog.detailed_error.show_details = Plus de d\u00E9tails >>>
+common.dialog.detailed_error.hide_details = Cacher les d\u00e9tails <<<
+common.dialog.detailed_error.show_details = Plus de d\u00e9tails >>>
 common.error                              = Erreur
 common.no                                 = Non
 common.yes                                = Oui
@@ -404,6 +344,9 @@ common.cnx_rejected.client_login_disabled          = Les connexions au serveur n
 common.cnx_rejected.client_login_disabled_title    = \u00c9chec de la connexion
 common.cnx_rejected.client_login_disabled_w_reason = Les connexions au serveur ne sont pas autoris\u00e9es pour le moment\n{0}
 common.cnx_rejected.client_login_disabled_w_reason_title = \u00c9chec de la connexion
+common.cnx_rejected.maximum_number_of_clients       = Connexion refus\u00e9e: le serveur ne peut plus accepter de nouvelles sessions\n Merci de r\u00e9essayer un peu plus tard\n\nVeuillez nous excuser pour la g\u00eane occasionn\u00e9e.
+common.cnx_rejected.maximum_number_of_clients_title = Connection refus\u00e9e
+
 wf.xmlwarnings.prg_desc_does_not_exists   = Le workflow utilisait un programme nomm\u00e9 ''{0}'', qui n''est plus disponible.
 wf.xmlwarnings.prg_desc_replace_by_alternative = Le workflow utilisait un programme nomm\u00e9 ''{0}'', qui n''est plus disponible.\n\
 Il a \u00e9t\u00e9 remplac\u00e9 par le programme ''{1}''.\n\
@@ -421,6 +364,7 @@ wf.xmlwarnings.prg_link_is_inactive        = La sortie ''{1}'' du programme ''{0
 Le lien entre les deux programmes n''a pas pu \u00eatre r\u00e9tabli.
 wf.xmlwarnings.prg_contains_useless_parameter = Info: le programme ''{0}'' d\u00e9clare un param\u00e8tre ''{1}'' (de type ''{2}''): \
 ce param\u00e8tre est ignor\u00e9 (Note: ce message est pour information seulement, vous pouvez l''ignorer)
+
 eu.telecom_bretagne.praxis.core.execution.Result.Status.UNSET     = Non disponible
 eu.telecom_bretagne.praxis.core.execution.Result.Status.SUBMITTED = Soumis
 eu.telecom_bretagne.praxis.core.execution.Result.Status.RUNNING   = En cours d''ex\u00e9cution
@@ -430,4 +374,5 @@ eu.telecom_bretagne.praxis.core.execution.Result.Status.ERROR     = Erreur
 eu.telecom_bretagne.praxis.core.execution.Result.Status.CANCELLED = Annul\u00e9
 eu.telecom_bretagne.praxis.licence=
 eu.telecom_bretagne.praxis.included_libs_licences=
+
 project.licence=
diff --git a/src/eu/telecom_bretagne/praxis/client/SimpleCommandLine.java b/src/eu/telecom_bretagne/praxis/client/SimpleCommandLine.java
index 30d01df560cef2254e64ff173337bf27b49be484..29ef561f5a82909fa940301232437191d257cdc7 100644
--- a/src/eu/telecom_bretagne/praxis/client/SimpleCommandLine.java
+++ b/src/eu/telecom_bretagne/praxis/client/SimpleCommandLine.java
@@ -32,6 +32,7 @@ import eu.telecom_bretagne.praxis.common.events.ServerToClientEvent;
 import eu.telecom_bretagne.praxis.common.events.ServerToClientEvent.ServerToClientEventListener;
 import eu.telecom_bretagne.praxis.core.execution.Result;
 import eu.telecom_bretagne.praxis.core.execution.Result.Status;
+import eu.telecom_bretagne.praxis.core.resource.ParameterDescription;
 import eu.telecom_bretagne.praxis.core.workflow.Parameter;
 import eu.telecom_bretagne.praxis.core.workflow.Program;
 import eu.telecom_bretagne.praxis.core.workflow.Workflow;
@@ -120,7 +121,7 @@ public class SimpleCommandLine extends StorageListenerAdapter
 		@Option(name = "-l", aliases = { "--list-file-ids" }, usage = "lists file ids for the supplied workflow (and immediately exit)")
 		public boolean           listInputIDs;
 		
-		public Map<Long, String> inputMap = new HashMap<Long, String>();
+		public Map<String, String> inputMap = new HashMap<>();
 		
 		@Option(name = "-i", metaVar = "id=file", usage = "Uses the supplied file for a given file ID")
 		public void addInputMap(String $id_path) throws CmdLineException
@@ -130,7 +131,7 @@ public class SimpleCommandLine extends StorageListenerAdapter
 				throw new CmdLineException(null, "Invalid value \"" + $id_path + "\": expecting id=file");
 			try
 			{
-				inputMap.put(Long.valueOf(id_path[0]), id_path[1]);
+				inputMap.put(id_path[0], id_path[1]);
 			}
 			catch (NumberFormatException e)
 			{
@@ -174,23 +175,23 @@ public class SimpleCommandLine extends StorageListenerAdapter
 	
 	public static void printWorkflowInputIds(Workflow workflow, Writer writer) throws IOException
 	{
-		Map <Long, ArrayList<String>> id_to_prg_params = new HashMap<Long, ArrayList<String>>();
+		Map <String, ArrayList<String>> id_to_prg_params = new HashMap<>();
 		for (Program prg: workflow.getPrograms())
 		{
 			for (Parameter p: prg.getInputParameters())
 			{
 				if (p.getInput() == null)
 					continue;
-				long id = workflow.getIdForInput(p.getInput());
+				String id = workflow.getIdForInput(p.getInput());
 				if (!id_to_prg_params.containsKey(id))
 					id_to_prg_params.put(id, new ArrayList<String>());
 					
 				id_to_prg_params.get(id).add(prg.getProgramID()+"\t"+p.getDescription().getDisplayName());
 			}
 		}
-		Long[] ids = id_to_prg_params.keySet().toArray(new Long[id_to_prg_params.size()]);
+		String[] ids = id_to_prg_params.keySet().toArray(new String[id_to_prg_params.size()]);
 		Arrays.sort(ids);
-		for (long id: ids)
+		for (String id: ids)
 		{
 			if (id_to_prg_params.get(id).size()>1)
 				writer.write("File input ID: " + id + " connected to the following programs' parameters:\n");
@@ -318,9 +319,9 @@ public class SimpleCommandLine extends StorageListenerAdapter
 	 * <li> 1: execution is successful, with some warnings
 	 * <li> 2: some errors were encountered while executing the workflow
 	 * <li> 4: the workflow did not complete (if you see this, please contact us, this is a bug)
-	 * <li> 8: an execution was raised during execution (same as above: this is a bug)
+	 * <li> 8: an exception was raised during execution (same as above: this is a bug)
 	 * <li> 16: the workflow could not be read
-	 * <li> 32:
+	 * <li> 32: the workflow is invalid
 	 * <li> -1: incorrect command-line, due to unknown, incorrect or missing options/arguments.
 	 * </ul>
 	 * @param args
@@ -337,7 +338,7 @@ public class SimpleCommandLine extends StorageListenerAdapter
 		
 		if (!options.inputMap.isEmpty())
 		{
-			for (long inputID: options.inputMap.keySet())
+			for (String inputID: options.inputMap.keySet())
 			{
 				WorkflowInput wfInput = workflow.getInputWithId(inputID);
 				if (wfInput == null)
@@ -351,6 +352,26 @@ public class SimpleCommandLine extends StorageListenerAdapter
 		
 		if (workflow != null)
 		{
+			boolean invalidWorkflow = false;
+			final StringBuilder err = new StringBuilder();
+			for ( Program prg: workflow.getPrograms()) 
+			{
+				List<Parameter> disconnectedInputs = prg.getDisconnectedInputFiles();
+				if ( disconnectedInputs.isEmpty() )
+					continue;
+				invalidWorkflow = true;
+				err.append("Program '"+prg.getProgramID()+"':\n");
+				for (Parameter disconnectedInput: disconnectedInputs)
+				{
+					final ParameterDescription parameterDescription = disconnectedInput.getDescription();
+					err.append("  disconnected input: id=").append(parameterDescription.getId());
+					err.append(" (").append(parameterDescription.getDisplayName()).append(")\n");
+				}
+			}
+			if ( invalidWorkflow )
+			{
+				exitOnError(32, err.toString(), null);
+			}
 			int ret = 0;
 			try
 			{
@@ -521,9 +542,11 @@ public class SimpleCommandLine extends StorageListenerAdapter
 		{
 			Client.uiClient.requestExecution(result);
 			if (waitEndOfExecution)
+			{
 				singleton.wait();
+				Log.log.fine("Execution of " + workflow.getName() + " is finished");
+			}
 		}
-		Log.log.fine("Execution of " + workflow.getName() + " is finished");
 	}
 	
 	/**
@@ -536,6 +559,7 @@ public class SimpleCommandLine extends StorageListenerAdapter
 	{
 		Log.log.fine("Retrieving results for " + workflow.getName() + "...");
 		List<Result> results = null;
+
 		synchronized(singleton)
 		{
 			singleton.waitForAvailableResults = true;
@@ -646,8 +670,8 @@ public class SimpleCommandLine extends StorageListenerAdapter
 	{
 		synchronized(this)
 		{
-			final Status status = result.getStatus();
-			if (!status.isClosed() || result.zipFile()==null)
+			final Status status = aResult.getStatus();
+			if (!status.isClosed() || aResult.zipFile()==null)
 				return;
 			this.result = aResult;
 			notify();
diff --git a/src/eu/telecom_bretagne/praxis/common/BuildInfo.java b/src/eu/telecom_bretagne/praxis/common/BuildInfo.java
new file mode 100644
index 0000000000000000000000000000000000000000..c8bdc6c3c13291caaad757523138cfbd9ab2aa12
--- /dev/null
+++ b/src/eu/telecom_bretagne/praxis/common/BuildInfo.java
@@ -0,0 +1,21 @@
+/* License: please refer to the file README.license located at the root directory of the project */
+package eu.telecom_bretagne.praxis.common;
+
+/**
+ * BuildInfo contains the date for the last framework's build, along with the corresponding commit identifier.
+ */
+public interface BuildInfo
+{
+	// these informations are in the manifest, but we want to have them even when not packaged in a jar */
+
+	/** Unique identifier for the commit being built */
+	final String COMMIT	= "Commit description";
+
+	/** Date  of the last build */
+	final String DATE	= "yyyy-mm-ddTHH:MM:SS+ZZ:ZZ";
+
+	static public String[] getVersionInfo()
+	{
+		return new String[]{ COMMIT, DATE };
+	}
+}
diff --git a/src/eu/telecom_bretagne/praxis/common/Configuration.java b/src/eu/telecom_bretagne/praxis/common/Configuration.java
index 99d7fe2e0a9bce110ac5cba007d42a083ebee32a..b579a2b9d5de6c4e105a6f1a833b2055870544e5 100644
--- a/src/eu/telecom_bretagne/praxis/common/Configuration.java
+++ b/src/eu/telecom_bretagne/praxis/common/Configuration.java
@@ -428,7 +428,9 @@ public final class Configuration
 			else
 				scanner.nextInt(); // Let the scanner advance to the next token
 
-			error = ( !error ) && scanner.hasNext();
+			if ( !error && scanner.hasNext() ) // the scanner found an int, but there's something after that
+				error = true;
+
 			if ( error )
 			{
 				errors.add("Key " + key + ": not an integer (current value: " + value + ")");
@@ -612,9 +614,7 @@ public final class Configuration
 	{
 		if (language == null)
 			language = "en";
-		Locale locale = new Locale(language);
-		Locale.setDefault(locale);
-		I18N.reinit();
+		I18N.setLocale(new Locale(language));
 	}
 
 	/**
diff --git a/src/eu/telecom_bretagne/praxis/common/I18N.java b/src/eu/telecom_bretagne/praxis/common/I18N.java
index e1932950dee8514a96eadeaee72f5d413f261ac7..1e82875abd606133ae825cc93ecac4ff156ec38c 100644
--- a/src/eu/telecom_bretagne/praxis/common/I18N.java
+++ b/src/eu/telecom_bretagne/praxis/common/I18N.java
@@ -15,23 +15,28 @@ public class I18N
 
 	private static ResourceBundle applicationSpecific;
 
-	private static MessageFormat  msg_fmt;
+	private static final MessageFormat msg_fmt = new MessageFormat("");
+	
 	static
 	{
-		reinit();
+		setLocale(Locale.getDefault());
 	}
 
-	public static void reinit()
+	public static void setLocale(Locale locale)
 	{
-		praxis = ResourceBundle.getBundle("data/i18n/praxis", Locale.getDefault());
+		praxis = ResourceBundle.getBundle("data/i18n/praxis", locale);
 		String appSpecific = Configuration.get("i18n", "");
 		if (!"".equals(appSpecific))
-			applicationSpecific = ResourceBundle.getBundle(appSpecific, Locale.getDefault());
+			applicationSpecific = ResourceBundle.getBundle(appSpecific, locale);
 		else
 			applicationSpecific = null;
-		msg_fmt = new MessageFormat("");
-		Log.log.log(java.util.logging.Level.INFO, "Setting locale: {0}", Locale.getDefault());
-		msg_fmt.setLocale(Locale.getDefault());
+		Log.log.log(java.util.logging.Level.INFO, "Setting locale: {0}", locale);
+		synchronized(msg_fmt) { msg_fmt.setLocale(locale); }
+	}
+
+	public static Locale getLocale()
+	{
+		synchronized(msg_fmt) { return msg_fmt.getLocale(); }
 	}
 
 	/**
@@ -65,7 +70,7 @@ public class I18N
 	 */
 	static public String s(String key, Object args)
 	{
-		String fmt = "";
+		String fmt = key;
 		try
 		{
 			if (applicationSpecific != null)
@@ -81,8 +86,6 @@ public class I18N
 			}
 			else
 				fmt = praxis.getString(key);
-			msg_fmt.applyPattern(fmt);
-			return msg_fmt.format(args);
 		}
 		catch (java.util.MissingResourceException e)
 		{
@@ -92,8 +95,11 @@ public class I18N
 		{
 			Log.log.log(Level.SEVERE, "I18N: could format " + fmt, e);
 		}
-		msg_fmt.applyPattern(key);
-		return msg_fmt.format(args);
+		synchronized (msg_fmt)
+		{
+			msg_fmt.applyPattern(fmt);
+			return msg_fmt.format(args);
+		}
 	}
 
 	/**
diff --git a/src/eu/telecom_bretagne/praxis/common/Launcher.java b/src/eu/telecom_bretagne/praxis/common/Launcher.java
index a3dae182eb7381c85f15621e519bd4ea39e25099..c4fccb240473e9c17b024f562971e49871f7c01e 100644
--- a/src/eu/telecom_bretagne/praxis/common/Launcher.java
+++ b/src/eu/telecom_bretagne/praxis/common/Launcher.java
@@ -17,8 +17,8 @@ import eu.telecom_bretagne.praxis.server.Serveur;
 public class Launcher
 {
 	/**
-	 * This is the "root" delegate: "one delegate to rule them all"! Praxis projects defining their own delegates
-	 * should:
+	 * This is the "root" delegate: "one delegate to rule them all"!<br />
+	 * Praxis projects defining their own delegates should:
 	 * <ul>
 	 * <li>Subclass this class and override {@link #initialize(boolean, boolean, boolean)};
 	 * <li>register the delegates within the <code>initialize()</code> method;
@@ -100,6 +100,32 @@ public class Launcher
 		     ProxySelector.setDefault(new ProxySelectorWrapper(defaultProxySelector));
 	}
 
+	public static void fixWmClass()
+	{
+		// cf. http://elliotth.blogspot.fr/2007/02/fixing-wmclass-for-your-java.html
+		//     http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6528430
+		//       JDK-6528430 : need system property to override default WM_CLASS
+		final String appName = Configuration.get("application.name", null);
+		if ( appName == null ) // we see no reason to forbid empty strings or strings made of whitespaces only
+			return;
+		try
+		{
+			final java.awt.Toolkit toolkit = java.awt.Toolkit.getDefaultToolkit();
+			final Class<?> xtoolkit = toolkit.getClass();
+
+			if ( "sun.awt.X11.XToolkit".equals(xtoolkit.getName()) )
+			{
+				final java.lang.reflect.Field awtAppClassName = xtoolkit.getDeclaredField("awtAppClassName");
+				awtAppClassName.setAccessible(true);
+				awtAppClassName.set(null, appName);
+			}
+		}
+		catch (Exception e)
+		{
+			Log.log.log(java.util.logging.Level.INFO, "Could not set WM_CLASS", e);
+		}
+	}
+
 	/**
 	 * This is the launcher for all praxis projects. It is responsible to launch the elements declared in the
 	 * configuration, such as: a regular client, a "bridge" client, the {@link Serveur server} and/or {@link Platform
@@ -109,9 +135,12 @@ public class Launcher
 	 */
 	public static void main(String[] args) throws Exception
 	{
-		if (alreadyLaunched)
-			return;
-		alreadyLaunched = true;
+		synchronized(Launcher.class)
+		{
+			if (alreadyLaunched)
+				return;
+			alreadyLaunched = true;
+		}
 		if (args==null)
 			args=new String[0];
 		if (args.length>0 && "--version".equals(args[0]))
@@ -129,6 +158,7 @@ public class Launcher
 
 		checkJVM();
 		workaroundBug7188755();
+		fixWmClass();
 		
 		if (   Configuration.isDefined("client")
 			&& Configuration.isDefined("servers")
@@ -151,8 +181,18 @@ public class Launcher
 			Platform.launch();
 		
 		if (Configuration.isDefined("bridge"))
-			PlatformToClientBridge.launch();
-
+		{
+			try
+			{
+				PlatformToClientBridge.launch();
+			}
+			catch (Throwable t)
+			{
+				Client.uiClient.displayErrorMessage("Connection error",
+				                                    "Error: unable to connect to the server\nReason: "+t.toString());
+				System.exit(1);
+			}
+		}
 		ExecutionLoop.executionLoopThread.start();
 
 		Class<?> UI = getUI();
diff --git a/src/eu/telecom_bretagne/praxis/common/ReleaseInfo.java b/src/eu/telecom_bretagne/praxis/common/ReleaseInfo.java
index fe2277fb77467d7e246e9f0d16d1f00b73a9abea..a7f452d0b23256d52948b851d0def8ddca9b4445 100644
--- a/src/eu/telecom_bretagne/praxis/common/ReleaseInfo.java
+++ b/src/eu/telecom_bretagne/praxis/common/ReleaseInfo.java
@@ -7,24 +7,18 @@ package eu.telecom_bretagne.praxis.common;
  */
 public abstract class ReleaseInfo
 {
-	public static final String release              = "2.2";
+	public static final String release              = "3.0.0";
 
-	public static final int    revision             = 0;
+	public static final String release_date         = "2018-07-17";
 
 	public static final int    application_revision = Configuration.getInt("revision");
 
-	public static final String release_date         = "2017-10-18";
-
-	/** The date of the packaging. It has always been the same as {@link #release_date}: use the latter field instead */
-	@Deprecated
-	public static final String package_date         = release_date;
-
 	/**
-	 * Returns a array of three strings: the release, the application_revision number, and the release date
-	 * @return the release, the application_revision number, and the release date
+	 * Returns a array of two strings: the release, and the release date
+	 * @return the release and the release date
 	 */
 	static public String[] getVersionInfo()
 	{
-		return new String[]{ release, /*""+revision,*/ release_date };
+		return new String[]{ release, release_date };
 	}
 }
diff --git a/src/eu/telecom_bretagne/praxis/common/SplashWindow.java b/src/eu/telecom_bretagne/praxis/common/SplashWindow.java
index 98bb38d4fb206cbcf00dc78bce6734fe9ea53f42..f49401baa7816e40403d7af7c6b8cdceea170f7e 100644
--- a/src/eu/telecom_bretagne/praxis/common/SplashWindow.java
+++ b/src/eu/telecom_bretagne/praxis/common/SplashWindow.java
@@ -11,13 +11,14 @@ package eu.telecom_bretagne.praxis.common;
  */
 
 import java.awt.Color;
-import java.awt.Dimension;
 import java.awt.EventQueue;
 import java.awt.Font;
 import java.awt.FontMetrics;
 import java.awt.Frame;
 import java.awt.Graphics;
 import java.awt.Graphics2D;
+import java.awt.GraphicsDevice;
+import java.awt.GraphicsEnvironment;
 import java.awt.Image;
 import java.awt.MediaTracker;
 import java.awt.RenderingHints;
@@ -113,10 +114,13 @@ public class SplashWindow
 		// Center the window on the screen
 		int imgWidth = image.getWidth(this);
 		int imgHeight = image.getHeight(this);
-		setSize(imgWidth, imgHeight);
-		Dimension screenDim = Toolkit.getDefaultToolkit().getScreenSize();
-		setLocation((screenDim.width - imgWidth) / 2, (screenDim.height - imgHeight) / 2);
-		
+		setSize(imgWidth, imgHeight + 20);
+		setBackground(Color.WHITE);
+
+		GraphicsDevice[] gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices();
+		if ( gd.length > 0 )
+			setLocation(((int)gd[0].getDefaultConfiguration().getBounds().getCenterX()) - (imgWidth/2),
+			            ((int)gd[0].getDefaultConfiguration().getBounds().getCenterY()) - (imgHeight/2));
 
 		// In our case, we want to exit from the application
 		// if the user double-clicks on the splash screen
@@ -166,23 +170,19 @@ public class SplashWindow
 		final Font orig_font = g.getFont();
 		final Font f = Font.decode("Dialog-12");
 		final FontMetrics fm = g.getFontMetrics(f);
-		final Rectangle2D rect = fm.getStringBounds("Loading... (Double-click to exit)", g);
+		final Rectangle2D rect = fm.getStringBounds("Loading... (Double-click to exit)", g); // I18N
 		
-		final int textHeight = (int) (rect.getHeight());
 		final int textWidth = (int) (rect.getWidth());
 		final int panelHeight = this.getHeight();
 		final int panelWidth = this.getWidth();
 		
-		// Center text horizontally and vertically
+		// Center text vertically
 		final int x = (panelWidth - textWidth) / 2;
-		final int y = (panelHeight - textHeight); // (panelHeight - fm.getMaxAscent());
+		// draw it at the bottom of the image, and leave two pixels between the text and the border
+		final int y = (panelHeight - fm.getMaxDescent() - 2);
 		
-		g.setColor(Color.white);
-/*		final int dx = 5, dy = 5;
-		g.fill3DRect(x - dx, y - (int) (rect.getHeight()) + fm.getMaxDescent() - dy,
-		             (int) (rect.getWidth()) + 2 * dx, (int) (rect.getHeight()) + 2 * dy, true);// , 10, 10);
-		g.setColor(Color.black);
-*/		g.setFont(f);
+		g.setColor(Color.gray);
+		g.setFont(f);
 		g.drawString("Loading... (Double-click to exit)", x, y);
 		g.setFont(orig_font);
 		
@@ -205,6 +205,9 @@ public class SplashWindow
 	 */
 	public static void splash(Image image)
 	{
+		if ( GraphicsEnvironment.isHeadless() )
+			return;
+		
 		if (instance == null && image != null)
 		{
 			Frame f = new Frame();
@@ -240,11 +243,14 @@ public class SplashWindow
 	
 	/**
 	 * Open's a splash window using the specified image.
-	 * @param imageURL
-	 *            The url of the splash image.
+	 * @param imagePath
+	 *            The path of the splash image.
 	 */
 	public static void splash(String imagePath)
 	{
+		if ( GraphicsEnvironment.isHeadless() )
+			return;
+		
 		if (imagePath != null)
 		{
 			try
diff --git a/src/eu/telecom_bretagne/praxis/common/SystemInformations.java b/src/eu/telecom_bretagne/praxis/common/SystemInformations.java
new file mode 100644
index 0000000000000000000000000000000000000000..1a2c60fcb76f8e43d1e6fb1a0e6584737b231833
--- /dev/null
+++ b/src/eu/telecom_bretagne/praxis/common/SystemInformations.java
@@ -0,0 +1,638 @@
+package eu.telecom_bretagne.praxis.common;
+
+import java.awt.GraphicsDevice;
+import java.awt.GraphicsEnvironment;
+import java.awt.Toolkit;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.net.InetSocketAddress;
+import java.net.Proxy;
+import java.net.Proxy.Type;
+import java.net.ProxySelector;
+import java.net.SocketAddress;
+import java.net.URI;
+import java.net.URL;
+import java.net.URLConnection;
+import java.nio.file.FileStore;
+import java.nio.file.FileSystems;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.rmi.dgc.VMID;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.function.Supplier;
+import java.util.prefs.Preferences;
+
+import org.apache.commons.lang.SystemUtils;
+
+import com.github.markusbernhardt.proxy.ProxySearch;
+import com.github.markusbernhardt.proxy.ProxySearch.Strategy;
+
+// https://www.developer.com/lang/jscript/top-7-open-source-json-binding-providers-available-today.html
+import flexjson.JSONSerializer;
+
+public class SystemInformations
+{
+	static final String CHECK_HTTP_URI = "http://server-telecom-bretagne.diviz.org/cgi-bin/java-rmi.cgi?check";
+	static final String CHECK_HTTPS_URI = "https://server-telecom-bretagne.diviz.org/cgi-bin/java-rmi.cgi?check";
+
+	public static class Data
+	    extends LinkedHashMap<String, Object>
+	{
+		private static final long serialVersionUID = 1L;
+
+		/**
+		 * Associates the specified value with the specified key in this map. If the map previously contained a
+		 * mapping for the key, the old value is replaced.
+		 *
+		 * @return this object
+		 */
+		@Override
+		public Data put(final String key, final Object value)
+		{
+			super.put(key, value);
+			return this;
+		}
+
+		/**
+		 * Associates the value returned by the specified Supplier with the specified key in this map. If the map
+		 * previously contained a mapping for the key, the old value is replaced. If an exception is raised when
+		 * asking the supplier for a result, the exception is silently ignored and it does nothing except returning
+		 * this object.
+		 *
+		 * @param f
+		 *            the Supplier from which the value to be associated with the supplied key is
+		 *            {@link Supplier#get() computed}.
+		 * @return this object
+		 */
+		public <T> Data put(final String key, final Supplier<T> f)
+		{
+			try
+			{
+				super.put(key, f.get());
+			}
+			catch (final Exception exception)
+			{ /* ignore */ }
+			return this;
+		}
+
+		public Data add(final String key)
+		{
+			final Data child = new Data();
+			put(key, child);
+			return child;
+		}
+
+		public String json()
+		{
+			return new JSONSerializer().prettyPrint(true).serialize(this);
+		}
+	}
+
+	static private String id;
+	static
+	{
+		Preferences preferences = Preferences.userNodeForPackage(SystemInformations.class);
+		id = preferences.get("id", null);
+		if ( id == null )
+		{
+			id = new VMID().toString();
+			preferences.put("id", id);
+		}
+	}
+
+	static void screen(final Data data)
+	{
+		final Data screens = data.add("screens");
+		if ( GraphicsEnvironment.isHeadless() )
+			return;
+		final GraphicsEnvironment graphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();
+		final GraphicsDevice defaultScreen = graphicsEnvironment.getDefaultScreenDevice();
+
+		screens.add("default")
+		        .put("id", defaultScreen.getIDstring())
+		        .put("width", defaultScreen.getDefaultConfiguration().getBounds().getWidth())
+		        .put("height", defaultScreen.getDefaultConfiguration().getBounds().getHeight());
+
+		for (final GraphicsDevice graphicsDevice: graphicsEnvironment.getScreenDevices())
+		{
+			screens.add(graphicsDevice.getIDstring())
+			        .put("default", graphicsDevice.equals(defaultScreen))
+			        .put("width", graphicsDevice.getDisplayMode().getWidth())
+			        .put("height", graphicsDevice.getDisplayMode().getHeight())
+			        .put("dpi", rethrowSupplier(() -> Toolkit.getDefaultToolkit().getScreenResolution()));
+		}
+	}
+
+	static void rootDirectories(final Data data)
+	{
+		final Data rootDirs = data.add("root directories");
+		for (final Path root: FileSystems.getDefault().getRootDirectories())
+		{
+			final Data rootDir = rootDirs.add(root.toString());
+			try
+			{
+				final FileStore store = Files.getFileStore(root);
+				rootDir.put("available", rethrowSupplier(() -> store.getUsableSpace()));
+				rootDir.put("total", rethrowSupplier(() -> store.getTotalSpace()));
+			}
+			catch (final IOException e)
+			{
+				rootDir.put("error", e.getMessage());
+			}
+		}
+	}
+
+	static void fileStores(final Data data)
+	{
+		final Iterable<FileStore> stores;
+		try
+		{
+			stores = FileSystems.getDefault().getFileStores();
+		}
+		catch (final Exception e)
+		{
+			return;
+		}
+		final Data filestores = data.add("filestores");
+
+		for (final FileStore store: stores)
+			filestores.add(store.name())
+			        .put("type", rethrowSupplier(() -> store.type()))
+			        .put("toString", rethrowSupplier(() -> store.toString()))
+			        .put("total", rethrowSupplier(() -> store.getTotalSpace()))
+			        .put("used", rethrowSupplier(() -> store.getTotalSpace() - store.getUnallocatedSpace()))
+			        .put("available", rethrowSupplier(() -> store.getUsableSpace()));
+	}
+
+	/**
+	 * 
+	 * @param data
+	 * @param name
+	 * @param file
+	 */
+	public static void filesystem(final File file, final String name, final Data data)
+	{
+		data.add(name)
+		        .put("available", rethrowSupplier(() -> file.getUsableSpace()))
+		        .put("free", rethrowSupplier(() -> file.getFreeSpace()))
+		        .put("total", rethrowSupplier(() -> file.getTotalSpace()));
+
+	}
+
+	public static void network(final Data data)
+	{
+		final Data network = data.add("network");
+		iterate_on_proxies(network);
+		detectProxy(network);
+		externalIp(network);
+		networkProxies(network);
+	}
+
+	public static void iterate_on_proxies(Data data)
+	{
+		System.err.println("iterate_on_proxies() start");
+		Data proxiesData = data.add("proxy selectors");
+		final ProxySelector defaultProxySelector = ProxySelector.getDefault();
+		try
+		{
+			final URI home = URI.create(CHECK_HTTP_URI);
+			for (Strategy strategy: Strategy.values())
+			{
+				final ProxySearch proxySearch = new ProxySearch();
+				proxySearch.addStrategy(strategy);
+				testProxySearch(proxySearch, home, proxiesData.add(strategy.name()));
+			}
+		}
+		finally
+		{
+			// Restore the default proxy selector
+			ProxySelector.setDefault(defaultProxySelector);
+		}
+		System.err.println("iterate_on_proxies() end");
+	}
+
+	private static void testProxySearch(ProxySearch proxySearch, URI uri, Data dataNode)
+	{
+		System.err.println("testProxySearch()");
+		final ProxySelector defaultProxySelector = ProxySelector.getDefault();
+		final ProxySelector proxySelector;
+		try
+		{
+			proxySelector = proxySearch.getProxySelector();
+		}
+		catch (Throwable t)
+		{
+			dataNode.put("getProxySelector", t);
+			return;
+		}
+		ProxySelector.setDefault(proxySelector);
+		test_diviz(dataNode);
+		ProxySelector.setDefault(defaultProxySelector);
+
+		if ( proxySelector == null )
+		{
+			dataNode.put("getProxySelector", (Object) null); // cast needed to use put(String, Object)
+			return;
+		}
+		final List<Proxy> proxyList = proxySelector.select(uri);
+		if ( proxyList == null )
+		{
+			dataNode.put("proxySelectorList", (Object) null); // cast needed to use put(String, Object)
+			return;
+		}
+		if ( proxyList.isEmpty() )
+		{
+			dataNode.put("proxySelectorList", "empty");
+			return;
+		}
+
+		Data proxiesForStrategy = dataNode.add("proxySelectorList");
+		Integer idx = 0;
+		for (final Proxy proxy: proxyList)
+		{
+			idx += 1;
+			Data proxyDetail = proxiesForStrategy.add(idx.toString());
+			proxyDetail.put("type", proxy.type().name());
+			final SocketAddress address = proxy.address();
+			proxyDetail.put("socket address", address == null ? null : address.toString());
+			if ( address instanceof InetSocketAddress )
+			{
+				final String host = ( (InetSocketAddress) address ).getHostName();
+				final String port = Integer.toString(( (InetSocketAddress) address ).getPort());
+				proxyDetail.put("host", host);
+				proxyDetail.put("port", port);
+			}
+		}
+
+	}
+
+	/**
+	 * Detects proxy settings for HTTP and HTTPS connections, and set related system properties appropriately. The
+	 * related system properties are: {@code http.host}, {@code http.port}, {@code http.nonProxyHosts},
+	 * {@code https.host} and {@code https.port}.<br>
+	 * The {@link ProxySelector#getDefault() default system-wide proxy selector} is preserved.
+	 * 
+	 * @see <a href="https://docs.oracle.com/javase/8/docs/technotes/guides/net/proxies.html">Java Networking and
+	 *      Proxies</a>
+	 * @param network
+	 *            The data object that the method puts informations into.
+	 */
+	public static void detectProxy(final Data network)
+	{
+		final ProxySelector defaultProxySelector = ProxySelector.getDefault();
+		try
+		{
+			_detectProxy(network);
+		}
+		finally
+		{
+			ProxySelector.setDefault(defaultProxySelector);
+		}
+	}
+
+	/**
+	 * Implements the {@link #detectProxy(Data)} method.
+	 */
+	private static void _detectProxy(final Data network)
+	{
+		System.err.println("_detectProxy() start");
+		final Data proxyDetectionData = network.add("proxy detection");
+
+		final ProxySearch proxySearch = new ProxySearch(); // https://github.com/MarkusBernhardt/proxy-vole
+
+		/* 
+		 * NB: Strategy BROWSER: is equivalent to IE on windows, and FIREFOX on others
+		 *     See source code for
+		 *     - com.github.markusbernhardt.proxy.ProxySearch#addStrategy(Strategy)
+		 *     - com.github.markusbernhardt.proxy.ProxySearch#getDefaultBrowserStrategy()
+		 *     - com.github.markusbernhardt.proxy.util.PlatformUtil#getDefaultBrowser()
+		 */
+		if ( SystemUtils.IS_OS_LINUX )
+		{
+			proxySearch.addStrategy(Strategy.OS_DEFAULT);
+			proxySearch.addStrategy(Strategy.GNOME);
+			proxySearch.addStrategy(Strategy.KDE);
+			proxySearch.addStrategy(Strategy.FIREFOX);
+			proxySearch.addStrategy(Strategy.ENV_VAR);
+		}
+		else if ( SystemUtils.IS_OS_WINDOWS )
+		{
+			proxySearch.addStrategy(Strategy.OS_DEFAULT);
+			proxySearch.addStrategy(Strategy.WIN);
+			proxySearch.addStrategy(Strategy.FIREFOX);
+			proxySearch.addStrategy(Strategy.IE);
+		}
+		else
+		{
+			proxySearch.addStrategy(Strategy.OS_DEFAULT);
+			proxySearch.addStrategy(Strategy.FIREFOX);
+			proxySearch.addStrategy(Strategy.ENV_VAR);
+		}
+		// TODO WPAD ? quand est-ce que c'est appelé dans l'auto-détection?
+
+		Proxy proxy;
+		// http
+		proxy = _detectProxyForURL(proxySearch.getProxySelector(), CHECK_HTTP_URI, proxyDetectionData.add("http"));
+		SocketAddress address = null;
+		if ( proxy != null )
+		{
+			address = proxy.address();
+			if ( address instanceof InetSocketAddress )
+			{
+				System.setProperty("http.proxyHost", ((InetSocketAddress) address).getHostString());
+				System.setProperty("http.proxyPort", Integer.toString(((InetSocketAddress) address).getPort()));
+				System.setProperty("http.nonProxyHosts", "localhost|127.0.0.1");
+			}
+		}
+		// https
+		proxy = _detectProxyForURL(proxySearch.getProxySelector(),CHECK_HTTPS_URI, proxyDetectionData.add("https"));
+		if ( proxy != null )
+		{
+			address = proxy.address();
+			if ( proxy.address() instanceof InetSocketAddress )
+			{
+				System.setProperty("https.proxyHost", ((InetSocketAddress) address).getHostString());
+				System.setProperty("https.proxyPort", Integer.toString(((InetSocketAddress) address).getPort()));
+				// be sure to set it even if http proxy is DIRECT
+				System.setProperty("http.nonProxyHosts", "localhost|127.0.0.1");
+			}
+		}
+		System.err.println("_detectProxy() end");
+	}
+
+	/**
+	 * Given a {@link ProxySelector}, returns a suitable proxy to access the {@code url}. When an
+	 * {@link java.net.Proxy.Type#HTTP HTTP proxy} is suitable, it is preferred to a {@link java.net.Proxy.Type#DIRECT
+	 * direct proxy}.<br>
+	 * The {@link ProxySelector#getDefault() default system-wide proxy selector} is preserved.
+	 * 
+	 * @param data
+	 *            The Data object that the informations should be dropped into
+	 * @param proxySelector
+	 *            The proxy selector to use
+	 * @param url
+	 *            The url that a connection is required to
+	 * @param network
+	 *            The data object that the method puts informations into.
+	 * @throws IllegalArgumentException
+	 *             if the url is incorrect
+	 */
+	public static Proxy detectProxyForURL(final ProxySelector proxySelector, final String url, final Data data)
+	{
+		final ProxySelector defaultProxySelector = ProxySelector.getDefault();
+		try
+		{
+			return _detectProxyForURL(defaultProxySelector, url, data);
+		}
+		finally
+		{
+			ProxySelector.setDefault(defaultProxySelector);
+		}
+	}
+
+	/**
+	 * Implements the {@link #detectProxyForURL(ProxySelector, String, Data)} method except that it does NOT preserve
+	 * the {@link ProxySelector#getDefault() default system-wide proxy selector}.
+	 */
+	private static Proxy _detectProxyForURL(final ProxySelector proxySelector, final String url, final Data data)
+	{
+		System.err.println("_detectProxyForURL() start: " + url);
+		data.put("URL", url);
+		final URI uri = URI.create(url);
+		ProxySelector.setDefault(proxySelector);
+		if ( proxySelector == null )
+			return null;
+		data.put("ProxySelector", proxySelector.getClass());
+
+		final List<Proxy> proxies = proxySelector.select(uri);
+
+		// Prefer HTTP, use DIRECT only if no HTTP proxy could be found
+		// Iterate on all proxies, even if an HTTP proxy was found, so that all proxies in the list are logged
+		Proxy detected_proxy = null;
+		Data detected_proxy_data = null;
+		if ( proxies != null && !proxies.isEmpty() )
+		{
+			Integer idx = 0;
+			for (final Proxy proxy: proxies)
+			{
+				idx += 1;
+				final Data currentProxyData = data.add(idx.toString());
+				//currentProxyData.put("proxy", proxy);
+				if ( proxy == null )
+				{
+					currentProxyData.put("proxy", proxy);
+					continue;
+				}
+				currentProxyData.put("proxy class", proxy.getClass());
+				currentProxyData.put("proxy.address", proxy.address());
+
+				switch (proxy.type())
+				{
+				case HTTP:
+					if ( detected_proxy == null || detected_proxy.type() == Type.DIRECT )
+					{
+						detected_proxy = proxy;
+						detected_proxy_data = currentProxyData;
+					}
+					break;
+				case DIRECT:
+					if ( detected_proxy == null )
+					{
+						detected_proxy = proxy;
+						detected_proxy_data = currentProxyData;
+					}
+					break;
+				case SOCKS:
+				default:
+					continue;
+				}
+			}
+		}
+		if ( detected_proxy_data != null )
+			detected_proxy_data.put("detected", "true");
+		System.err.println("_detectProxy() end");
+		return detected_proxy;
+	}
+
+	public static Object[] getURL(final URL url) throws IOException
+	{
+		System.err.println("getURL() start: " + url);
+		final StringBuilder sb = new StringBuilder();
+		final long startTimeMillis = System.currentTimeMillis();
+
+		URLConnection conn = url.openConnection();
+		conn.setConnectTimeout(1000);
+		conn.setReadTimeout(1000);
+		String s;
+		boolean firstElement = true;
+		try (BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream())))
+		{
+			while ( (s=in.readLine()) != null )
+			{
+				sb.append(s);
+				if (firstElement)
+					continue;
+				firstElement = false;
+				sb.append("\n");
+			}
+		}
+		System.err.println("getURL() end" + (System.currentTimeMillis() - startTimeMillis));
+		return new Object[] { sb.toString(), System.currentTimeMillis() - startTimeMillis };
+	}
+	
+	public static void externalIp(final Data data)
+	{
+		System.err.println("");
+		try
+		{
+			java.net.URL ip = new java.net.URL("http://webservices.decision-deck.org/cgi-bin/ip");
+			Object[] results = getURL(ip);
+			data.put("ip", results[0]);
+			data.put("duration", results[1]);
+		}
+		catch (Throwable t)
+		{
+			data.put("ip", (Object) null);
+			data.put("exception", t);
+		}
+	}
+
+	public static void test_diviz(final Data data)
+	{
+		System.err.println("test_diviz");
+		try
+		{
+			URL ip = new URL(CHECK_HTTP_URI);
+			Object[] results = getURL(ip);
+			data.put("connection to diviz server",results[0]);
+			data.put("connection to diviz server - duration", results[1]);
+		}
+		catch (Throwable t)
+		{
+			data.put("connection to diviz server", "Failed, reason: "+t.toString());
+		}
+	}
+
+	public static void networkProxies(final Data data)
+	{
+		System.err.println("network_proxies");
+		final Data proxySettings = data.add("proxy settings");
+		proxySettings.put("java.net.useSystemProxies", System.getProperty("java.net.useSystemProxies"));
+		//System.setProperty("java.net.useSystemProxies", "true");
+		final ProxySelector defaultProxySelector = ProxySelector.getDefault();
+		proxySettings.put("default proxy selector",
+		                  defaultProxySelector == null ? null : defaultProxySelector.getClass());
+
+		final Data proxies = proxySettings.add("proxies");
+		for (String type: new String[] { "http", "https" })
+		{
+			System.err.println("network_proxies: type=" + type);
+			List<Proxy> l = null;
+			try
+			{
+				l = defaultProxySelector.select(new URI(type + "://www.diviz.org"));
+			}
+			catch (Exception e)
+			{
+				e.printStackTrace();
+			}
+			if ( l != null )
+			{
+				for (Iterator<Proxy> iter = l.iterator(); iter.hasNext();)
+				{
+					java.net.Proxy proxy = iter.next();
+					proxies.put(type, proxy.toString());
+				}
+			}
+		}
+		test_diviz(proxySettings);
+	}
+
+	public static void systemProperties(final Data data, final String key, final String[] properties)
+	{
+		final Data d = data.add(key);
+		for (final String property: properties)
+			d.put(property, rethrowSupplier(() -> System.getProperty(property)));
+	}
+
+	public static void systemProperties(final Data data)
+	{
+		final String[] propertiesNames = System.getProperties().stringPropertyNames().toArray(new String[0]);
+		Arrays.sort(propertiesNames);
+		systemProperties(data, "system properties", propertiesNames);
+	}
+
+	public static void system(final Data data)
+	{
+		final Runtime rt = Runtime.getRuntime();
+		final Data runtime = data.add("runtime");
+		runtime.put("cpus", rt.availableProcessors());
+		runtime.put("total memory", rt.totalMemory());
+		runtime.put("free memory", rt.freeMemory());
+	}
+
+	public static Data fullInfo()
+	{
+		final Data data = new Data();
+		data.put("id", id);
+		data.put("timestamp_ms", System.currentTimeMillis());
+		systemProperties(data, "os", new String[] { "os.arch", "os.name", "os.version" });
+		system(data);
+		screen(data);
+		// fileStores(data);
+		rootDirectories(data);
+		filesystem(new File(System.getProperty("user.home")), "home", data);
+		filesystem(new File(System.getProperty("user.dir")), "cwd", data);
+		filesystem(new File(System.getProperty("java.io.tmpdir")), "tmp", data);
+
+		systemProperties(data, "java",
+		                 new String[] { "java.home", "java.vm.specification.version", "java.vm.specification.vendor",
+		                                "java.vm.specification.name", "java.vm.version", "java.vm.vendor",
+		                                "java.vm.name", "java.specification.version", "java.specification.vendor",
+		                                "java.specification.name", "java.class.version", "java.class.path",
+		                                "java.library.path", "java.io.tmpdir", "java.compiler", "java.ext.dirs" });
+		systemProperties(data);
+		network(data);
+		return data;
+	}
+
+	public static void main(final String[] args)
+	{
+		System.err.println(fullInfo().json());
+	}
+
+	/* https://stackoverflow.com/questions/27644361/how-can-i-throw-checked-exceptions-from-inside-java-8-streams-
+	 * without-wrapping */
+	@FunctionalInterface
+	private static interface Supplier_WithExceptions <T, E extends Exception>
+	{
+		T get() throws E;
+	}
+
+	private static <T, E extends Exception> Supplier<T> rethrowSupplier(final Supplier_WithExceptions<T, E> function)
+	{
+		return () -> {
+			try
+			{
+				return function.get();
+			}
+			catch (final Exception exception)
+			{
+				throwAsUnchecked(exception);
+				return null;
+			}
+		};
+	}
+
+	@SuppressWarnings("unchecked")
+	private static <E extends Throwable> void throwAsUnchecked(final Exception exception) throws E
+	{
+		throw (E) exception;
+	}
+
+}
diff --git a/src/eu/telecom_bretagne/praxis/common/events/Event.java b/src/eu/telecom_bretagne/praxis/common/events/Event.java
index b5eaf6f2a368d38360a0e8d158a7b3bef201dbec..f72bf8b54aba78303ac852a6882f132df0c21ec8 100644
--- a/src/eu/telecom_bretagne/praxis/common/events/Event.java
+++ b/src/eu/telecom_bretagne/praxis/common/events/Event.java
@@ -156,7 +156,7 @@ public abstract class Event extends EventObject implements Serializable, Cloneab
 				fos.write(ois.read());
 			fos.close();
 		}
-		Log.log.finest(()->"Received event w/ file "+evt.file_conveyor+", size:"+size_of_file);
+		Log.log.finest(()->"Received event "+evt+" w/ file "+evt.file_conveyor+", size:"+size_of_file);
 		return evt;
 	}
 	
diff --git a/src/eu/telecom_bretagne/praxis/common/events/RMICommunicationFacade.java b/src/eu/telecom_bretagne/praxis/common/events/RMICommunicationFacade.java
index c708d179d8b6c52e21cb4c46e0d3ad2ee15706de..1c8fb4d3189988d273445cdd769590e7d4c8bc94 100644
--- a/src/eu/telecom_bretagne/praxis/common/events/RMICommunicationFacade.java
+++ b/src/eu/telecom_bretagne/praxis/common/events/RMICommunicationFacade.java
@@ -263,12 +263,14 @@ public class RMICommunicationFacade
 	 * Constructor to be called on the client/platform side:
 	 * @param hostname
 	 * @param portNumber
+	 * @throws IOException if the connection to the server fails
 	 */
-	public RMICommunicationFacade(String name, String hostname, int portNumber, boolean useHTTP)
+	public RMICommunicationFacade(String name, String hostname, int portNumber, boolean useHTTP) throws IOException
 	{
 		super(name);
 		this.clientIP = null;
-		this.useHTTP = useHTTP;
+		this.useHTTP = useHTTP; // cf. rmi.useHTTP in run_configuration.xml ?
+		final boolean useSSL = Configuration.getBoolean("rmi.useSSL");
 		try
 		{
 			// The following directly enables HTTP-to-CGI.
@@ -285,7 +287,7 @@ public class RMICommunicationFacade
 				RMISocketFactory.setSocketFactory(new sun.rmi.transport.proxy.RMIHttpToCGISocketFactory());
 			}
 			Registry registry;
-			if (Configuration.getBoolean("rmi.useSSL"))
+			if (useSSL)
 				registry = LocateRegistry.getRegistry(hostname, portNumber, new SslRMIClientSocketFactory());
 			else
 				registry = LocateRegistry.getRegistry(hostname, portNumber);
@@ -296,7 +298,11 @@ public class RMICommunicationFacade
 		}
 		catch (Exception e)
 		{
-			throw new RuntimeException("[RMI] Unable to connect to " + hostname + ":" + portNumber, e);
+			final StringBuilder err = new StringBuilder();
+			err.append("Connection to RMI Registry ").append(hostname).append(":").append(portNumber).append(" failed");
+			err.append(useSSL ? " (ssl)" : "");
+			Log.log.log(Level.SEVERE, err.toString(), e);
+			throw new IOException(err.toString(), e);
 		} 
 	}
 	
diff --git a/src/eu/telecom_bretagne/praxis/core/execution/WorkflowPlanner.java b/src/eu/telecom_bretagne/praxis/core/execution/WorkflowPlanner.java
index 88cf43c051df27b22ebe83acbffdc5fc36cdb237..a0966bc9ad19a45d36d4ced7416d3a721bd7030c 100644
--- a/src/eu/telecom_bretagne/praxis/core/execution/WorkflowPlanner.java
+++ b/src/eu/telecom_bretagne/praxis/core/execution/WorkflowPlanner.java
@@ -51,7 +51,16 @@ public class WorkflowPlanner
 		catch (InvalidXMLException e)
 		{
 			e.printStackTrace();
-			// abort, but should not happen
+			// abort, but should not happen FIXME
+		}
+
+		if ( workflow.getPrograms().length == 0)
+		{
+			final StringBuilder log = new StringBuilder("Trying to executing a WF *WITHOUT* any programs in it");
+			log.append(workflow.id().dumpID());
+			Log.log.warning(() -> log.toString());
+			// abort, but should not happen FIXME
+			return;
 		}
 		
 		// Create activities and register those who are linked with the other
@@ -66,7 +75,7 @@ public class WorkflowPlanner
 		// log details on the workflow being executed
 		try
 		{
-			StringBuilder log = new StringBuilder("Executing WF ");
+			final StringBuilder log = new StringBuilder("Executing WF ");
 			log.append(workflow.id().dumpID()).append(":");
 			for (Program program: workflow.getPrograms())
 			{
diff --git a/src/eu/telecom_bretagne/praxis/core/resource/ParameterDescription.java b/src/eu/telecom_bretagne/praxis/core/resource/ParameterDescription.java
index 9932a2c578092c758e46feaf7a1453bb75c962c3..262a7893ca81a72f9e8bf4cc0e8fe81ba239639e 100644
--- a/src/eu/telecom_bretagne/praxis/core/resource/ParameterDescription.java
+++ b/src/eu/telecom_bretagne/praxis/core/resource/ParameterDescription.java
@@ -307,7 +307,7 @@ public class ParameterDescription implements Serializable
 	/**
 	 * Tells whether the supplied string represents a valid value for such a parameter. When overriding this method,
 	 * subclasses that choose not to call super can call {@link #isaValidValue_wrtType(String)} directly.
-	 * @see ParameterDescription#_isaValidValue(String)
+	 * @see ParameterDescription#isaValidValue(String)
 	 * @param value
 	 *            the String representation of the value whose validity should be tested
 	 * @return true if the value is valid
@@ -376,7 +376,7 @@ public class ParameterDescription implements Serializable
 	 *            the xml element representing the object
 	 * @throws InvalidXMLException
 	 *             if the supplied XML element is not a valid representation for a ParameterDescription object
-	 * @see {@link #toXML()}
+	 * @see #toXML()
 	 */
     public void fromXML(Element xml) throws InvalidXMLException
     {
@@ -401,9 +401,6 @@ public class ParameterDescription implements Serializable
             /* vdef */
             _vdef = xml.getChildText("vdef");
             setTypeAndVdef(ParameterType.valueOf(_type), _vdef); // does not raise NullPtrExc, just IllegalArgExc
-            /* TODO: check vdef definition (int, float, boolean, etc.) */
-            if ( this.vdef==null && this.type==ParameterType.BOOLEAN )
-                this.vdef = "0";
         }
         catch (IllegalArgumentException e) {
             throw xml_exc.setMsg("Invalid parameter type ("+_type+") and/or vdef ("+_vdef+"): "+e.toString());
@@ -939,35 +936,47 @@ public class ParameterDescription implements Serializable
         return vdef;
     }
 	
-	/**
-	 * Sets the default value for this parameter.
+    /**
+	 * Sets the receiver's type and default value.
+	 * 
+	 * @param type
+	 *            the parameter's type
 	 * @param vdef
-	 *            the vdef to set
-	 * @throw IllegalArgumentException if the receiver's {@link #getType() type} is an output and {@code vdef} is
-	 *        {@code null}.
+	 *            the parameter's default value
+	 * @throws NullPointerException
+	 *             if {@code type} is {@code null}
+	 * @throws IllegalArgumentException
+	 *             <ul>
+	 *             <li>when the {@code vdef} is {@code null} or empty, and the {@code type} represents an
+	 *             {@link ParameterType#isOutput() output}.
+	 *             <li>when the {@code type} is {@link ParameterType#BOOLEAN boolean}, and the vdef is neither "true"
+	 *             nor "false" nor "0" nor "1".
+	 *             </ul>
 	 */
-    protected void setVdef(String vdef) throws IllegalArgumentException
-    {
-    	if ( type.isOutput() && (vdef==null || "".equals(vdef)) )
-    		throw new IllegalArgumentException("vdef cannot be null or empty in an output parameter");
-        this.vdef = vdef;
-    }
-
-    /**
-     * Sets the receiver's type and default value.
-     * @param type the parameter's type
-     * @param vdef the parameter's default value
-     * @throws NullPointerException if {@code type} is {@code null}
-     * @throws IllegalArgumentException when the {@code vdef} is {@code null} or empty, and the {@code type} represents an {@link ParameterType#isOutput() output}.
-     */
 	public void setTypeAndVdef(ParameterType type, String vdef) throws NullPointerException, IllegalArgumentException
     {
     	if (type == null)
     		throw new NullPointerException("Illegal null type");
     	if ( type.isOutput() && (vdef==null || "".equals(vdef)) )
     		throw new IllegalArgumentException("vdef cannot be null or empty in an output parameter");
-        this.type = type;
-        this.vdef = vdef;
+    	switch(type)
+    	{
+    		case BOOLEAN:
+    			if (vdef == null)
+    				this.vdef = "0";
+    			else if (vdef.equals("0") || vdef.equals("false"))
+    				this.vdef = "0";
+    			else if (vdef.equals("1") || vdef.equals("true"))
+    				this.vdef = "1";
+    			else
+    				throw new IllegalArgumentException("Invalid value for a boolean default value: "+vdef);
+    			this.type = type;
+    			break;
+    		default:
+                /* TODO: check vdef definition (int, float, etc.) */
+    			this.type = type;
+    			this.vdef = vdef;
+    	}
     }
 	
     /** Returns the items registered in the vlist, if any.  If the receiver's
diff --git a/src/eu/telecom_bretagne/praxis/core/workflow/Parameter.java b/src/eu/telecom_bretagne/praxis/core/workflow/Parameter.java
index 87f96840854b58492fd4c5b3880a70b288838fa2..7be85f13cb782e5684b777fbdb3907b078b67c96 100644
--- a/src/eu/telecom_bretagne/praxis/core/workflow/Parameter.java
+++ b/src/eu/telecom_bretagne/praxis/core/workflow/Parameter.java
@@ -134,6 +134,13 @@ public class Parameter implements Cloneable, PropertyChangeListener, java.io.Ser
 				break;
 			case BOOLEAN:
 				data = xml.getChildText("data");
+				/* the rest of the framework expects "0" or "1" in this.data
+				   Until this changes, let's accept true/false as well */
+				if ( "true".equals(data) )
+					data = "1";
+				else if ( "false".equals(data))
+					data = "0";
+
 				if ( !data.equals("0") && !data.equals("1") )
 					throw xml_exc.setMsg("Invalid value for boolean parameter: "+data);
 				break;
@@ -156,16 +163,11 @@ public class Parameter implements Cloneable, PropertyChangeListener, java.io.Ser
 				break;
 			case INPUT:
 			case INPUT_DIRECTORY:
-				String input_id_str = xml.getChild("data").getAttributeValue("input_id");
-				if ( input_id_str != null ) {
-					try {
-						setInput(parent_prg.workflow.getInputWithId( Long.valueOf(input_id_str) ));
-					}
-					catch (NumberFormatException e) {
-						throw xml_exc.setMsg("Invalid id for input (not a number): "+input_id_str);
-					}
+				String input_id = xml.getChild("data").getAttributeValue("input_id");
+				if ( input_id != null ) {
+					setInput(parent_prg.workflow.getInputWithId(input_id));
 					if ( input == null )
-						throw xml_exc.setMsg("Invalid input_id: "+input_id_str+": not registered within the workflow ");
+						throw xml_exc.setMsg("Invalid input_id: "+input_id+": not registered within the workflow");
 				}
 				else
 					data = xml.getChildText("data");
@@ -205,7 +207,7 @@ public class Parameter implements Cloneable, PropertyChangeListener, java.io.Ser
 				data = description.getVdef();
 				break;
 			case BOOLEAN:
-				data = description.getVdef().equals("")?"0":description.getVdef();
+				data = description.getVdef(); /* "0" or "1" */
 				break;
 			case STRING:
 			case TEXT:
diff --git a/src/eu/telecom_bretagne/praxis/core/workflow/Workflow.java b/src/eu/telecom_bretagne/praxis/core/workflow/Workflow.java
index 36a734ed0917bf1da87c1b1f9ac569682216cd77..8c3c1d175276793ffbbf04539d81dfcc7aec53f6 100644
--- a/src/eu/telecom_bretagne/praxis/core/workflow/Workflow.java
+++ b/src/eu/telecom_bretagne/praxis/core/workflow/Workflow.java
@@ -150,7 +150,13 @@ public class Workflow implements java.lang.Cloneable, java.io.Serializable
         return validNamePattern.matcher(name).matches();
     }
     
-    protected LinkedHashMap<Long,WorkflowInput> inputs;
+	/**
+	 * Stores the workflow inputs in a map whose keys are unique ids in the workflow. When automatically added by the
+	 * framework, ids are simply integers; however, when manipulating workflows outside the praxis framework it is
+	 * handy to be able to use strings instead of integers only (e.g. in order to make ids more explicit, or refering
+	 * to an other external source, etc.)
+	 */
+    protected LinkedHashMap<String, WorkflowInput> inputs;
     
     protected String user; /* TODO: remove?? */
 
@@ -225,7 +231,7 @@ public class Workflow implements java.lang.Cloneable, java.io.Serializable
     {
         this.id = workflowID;
         programs = new LinkedHashMap<String, Program>();
-        inputs = new LinkedHashMap<Long, WorkflowInput>();
+        inputs = new LinkedHashMap<String, WorkflowInput>();
     }
 
 	public Workflow(String name)
@@ -233,7 +239,7 @@ public class Workflow implements java.lang.Cloneable, java.io.Serializable
         this.id = new WorkflowID();
         this.id.setName(name);
         programs = new LinkedHashMap<String, Program>();
-        inputs = new LinkedHashMap<Long, WorkflowInput>();
+        inputs = new LinkedHashMap<String, WorkflowInput>();
     }
     
     public Workflow(File xmlFile, XMLWarnings warnings) throws InvalidXMLException
@@ -281,7 +287,7 @@ public class Workflow implements java.lang.Cloneable, java.io.Serializable
         return input;
     }
 
-    public WorkflowInput addNewInput(long input_id, WorkflowInput workflowInput) {
+    public WorkflowInput addNewInput(String input_id, WorkflowInput workflowInput) {
         if ( inputs.containsKey(input_id) )
             throw new IllegalStateException("Duplicate input id");
         inputs.put(input_id, workflowInput);
@@ -327,8 +333,8 @@ public class Workflow implements java.lang.Cloneable, java.io.Serializable
      * @param input_id an input id
      * @return {@code null} if no such input exists
      */
-    public WorkflowInput getInputWithId(long input_id) { // TODO back to: package-visibility, not public
-        return inputs.get(Long.valueOf(input_id));
+    public WorkflowInput getInputWithId(String input_id) { // TODO back to: package-visibility, not public
+        return inputs.get(input_id);
     }
     
     /** returns the id associated to that input. This is only needed when 
@@ -340,10 +346,10 @@ public class Workflow implements java.lang.Cloneable, java.io.Serializable
      * @return the corresponding id
      * @throws IllegalArgumentException if no such WorkflowInput object is referenced within this Workflow.
      */
-    public long getIdForInput(WorkflowInput input) // TODO back to: package-visibility, not public
+    public String getIdForInput(WorkflowInput input) // TODO back to: package-visibility, not public
     throws IllegalArgumentException
     {
-        for (long input_id: inputs.keySet())
+        for (String input_id: inputs.keySet())
             if ( inputs.get(input_id)==input )
                 return input_id;
         throw new IllegalArgumentException("Could not find the request input"); // TODO CHECK why not null???
@@ -388,11 +394,10 @@ public class Workflow implements java.lang.Cloneable, java.io.Serializable
      * Note that ids are internal stuff, only needed when storing and restoring
      * from xml files.
      */
-    long getNextInputID() {
-        long nextID = 0;
-        while (inputs.containsKey(Long.valueOf(nextID)))
-            nextID++;
-        return nextID;
+    String getNextInputID() {
+        Long $nextID = new Long(0);
+        while (inputs.containsKey((++$nextID).toString()));
+        return $nextID.toString();
     }
     
     public Program createAndAddNewProgram(ProgramDescription prg_desc) {
@@ -569,18 +574,14 @@ public class Workflow implements java.lang.Cloneable, java.io.Serializable
         }
 
         /* handle file */ /* TODO: handle Databases */
-        inputs = new LinkedHashMap<Long,WorkflowInput>();
+        inputs = new LinkedHashMap<String, WorkflowInput>();
         for (Object xml_file: xml_files)
         {
             WorkflowInput f;
-            final String input_id_as_str = ((Element)xml_file).getAttributeValue("id");
-            long input_id;
-            try {
-                input_id = Long.valueOf( input_id_as_str );
-            }
-            catch (NumberFormatException e) {
-                throw xml_exc.setMsg("Invalid id for input (not a number): "+input_id_as_str);
-            }
+            final String input_id = ((Element)xml_file).getAttributeValue("id");
+
+            if ( input_id == null || input_id.equals("") )
+                throw xml_exc.setMsg("Invalid id for input (omitted or empty)");
             if ( inputs.containsKey(input_id) )
                 throw xml_exc.setMsg("Duplicate input id:"+input_id);
             ((Element)xml_file).removeAttribute("id");
@@ -705,9 +706,9 @@ public class Workflow implements java.lang.Cloneable, java.io.Serializable
         Element xml_inputs = new Element("inputs");
         xml_wf.addContent(xml_inputs);
         
-        for (Long input_id: inputs.keySet()) {
+        for (String input_id: inputs.keySet()) {
             Element xml_input = inputs.get(input_id).toXML();
-            xml_input.setAttribute("id", ""+input_id);
+            xml_input.setAttribute("id", input_id);
             xml_inputs.addContent(xml_input);
         }
         
@@ -818,7 +819,7 @@ public class Workflow implements java.lang.Cloneable, java.io.Serializable
 			 * - modify the corresponding input in the cloned workflow so that it points to the copied file/dir.
 			 */
 			
-			for (Long input_id: clone.inputs.keySet())
+			for (String input_id: clone.inputs.keySet())
 			{
 				WorkflowInput input = clone.getInputWithId(input_id);
 				if (input.isOfType(WorkflowInput.INPUT_TYPE.DATABASE))
@@ -1034,8 +1035,8 @@ public class Workflow implements java.lang.Cloneable, java.io.Serializable
     	propChgSupport.addPropertyChangeListener(listener);
     }
     
-    public PropertyChangeSupport getListeners() { 
-    	return propChgSupport;
+    public PropertyChangeListener[] getListeners() { 
+    	return propChgSupport.getPropertyChangeListeners();
     }
     
     public void removePropertyChangeListener(PropertyChangeListener listener) {
diff --git a/src/eu/telecom_bretagne/praxis/core/workflow/io/xml/ParameterParser.java b/src/eu/telecom_bretagne/praxis/core/workflow/io/xml/ParameterParser.java
index ef1e698c8b21b0ffa454ff4fbe644fa9db43e1e4..82ac5a7d6add8face4c1e5ba00aff188e6bb0e48 100644
--- a/src/eu/telecom_bretagne/praxis/core/workflow/io/xml/ParameterParser.java
+++ b/src/eu/telecom_bretagne/praxis/core/workflow/io/xml/ParameterParser.java
@@ -151,18 +151,12 @@ public class ParameterParser
         case INPUT:
         case INPUT_DIRECTORY:
             if ( data_input_id != null ) {
-                try
-                {
-                    final WorkflowInput workflowInput =
-                        parent_prg.getWorkflow().getInputWithId(Long.valueOf(data_input_id));
-                    if ( workflowInput == null )
-                        throw xml_exc.setMsg("Invalid input_id: "+data_input_id+": not registered within the workflow ");
+            	final WorkflowInput workflowInput =
+            			parent_prg.getWorkflow().getInputWithId(data_input_id);
+            	if ( workflowInput == null )
+            		throw xml_exc.setMsg("Invalid input_id: "+data_input_id+": not registered within the workflow ");
 
-                    parameter.setInput(workflowInput);
-                }
-                catch (NumberFormatException e) {
-                    throw xml_exc.setMsg("Invalid id for input (not a number): "+data_input_id);
-                }
+            	parameter.setInput(workflowInput);
             }
             else
                 parameter.setData(data);
diff --git a/src/eu/telecom_bretagne/praxis/core/workflow/io/xml/WorkflowParser.java b/src/eu/telecom_bretagne/praxis/core/workflow/io/xml/WorkflowParser.java
index f0157e0e86b61e799477490d84cfc6ab5649c40b..8d4893d1bb3090e4572eac206c3dfe20877d6204 100644
--- a/src/eu/telecom_bretagne/praxis/core/workflow/io/xml/WorkflowParser.java
+++ b/src/eu/telecom_bretagne/praxis/core/workflow/io/xml/WorkflowParser.java
@@ -296,28 +296,17 @@ public abstract class WorkflowParser
             if (WorkflowInputParser.INPUT.equals(startElement.getName().getLocalPart()))
             {
                 // the input's id is not stored in the WorkflowID, but in the map
-                String id_as_str = "";
-                final long input_id;
-                try
-                {
-                    final Attribute _id = startElement.getAttributeByName(new QName("id"));
-                    if ( _id == null )
-                    {
-                        id_as_str = "(missing attribute)";
-                        throw new NumberFormatException();
-                    }
-                    id_as_str = _id.getValue();
-                    input_id = Long.valueOf( id_as_str );
-                }
-                catch ( NumberFormatException e )
-                {
-                    throw new InvalidXMLException(ELEMENT_TYPE.WORKFLOW).setMsg("Invalid id for input (not a number): "+id_as_str);
-                }
+                final String input_id;
+
+                final Attribute _id = startElement.getAttributeByName(new QName("id"));
+                if ( _id == null )
+                	throw new InvalidXMLException(ELEMENT_TYPE.WORKFLOW).setMsg("Invalid id for input: (missing attribute)");
+                input_id = _id.getValue();
 
                 if ( workflow.getInputWithId(input_id) != null )
                 {
                     throw new InvalidXMLException(ELEMENT_TYPE.WORKFLOW, workflow.getName(),
-                                                  "Duplicate input id:" + id_as_str);
+                                                  "Duplicate input id:" + input_id);
                 }
 
                 WorkflowInput input = WorkflowInputParser.fromXML(workflow, startElement, eventReader, warnings);
diff --git a/src/eu/telecom_bretagne/praxis/platform/PlatformToClientBridge.java b/src/eu/telecom_bretagne/praxis/platform/PlatformToClientBridge.java
index 9a5cfc6bd545d1439d88f0152bec495a111737ec..22a2dd1fac7d0219ee64c514e4485ad02c9339b1 100644
--- a/src/eu/telecom_bretagne/praxis/platform/PlatformToClientBridge.java
+++ b/src/eu/telecom_bretagne/praxis/platform/PlatformToClientBridge.java
@@ -88,7 +88,7 @@ public class PlatformToClientBridge
 			else
 				error = "Unknown error";
 
-			if (data.length > 1)
+			if (data.length >= 1)
 				error_title = I18N.s(data[0] + "_title");
 			else
 				error_title = "Unknown error";
diff --git a/src/eu/telecom_bretagne/praxis/server/Client.java b/src/eu/telecom_bretagne/praxis/server/Client.java
index 613e2d6d1aef2d9b288fdcf9408a28846856a246..4dc837ece2a50e1b80d826ee22c55e39440a5f6e 100644
--- a/src/eu/telecom_bretagne/praxis/server/Client.java
+++ b/src/eu/telecom_bretagne/praxis/server/Client.java
@@ -156,7 +156,7 @@ public class Client implements Requester
 		ArrayList<Result> results = Serveur.resultStore().getResultsSummaryForWorkflow(workflowID, login);
 		if (results==null || results.isEmpty())
 			return;
-		// no matter that the previous methods returns results w/ null zipFile, we want to make it explicit that
+		// method getResultsSummaryForWorkflow() returns results w/ null zipFile, we want to make it explicit that
 		// zipFile should not be sent.
 		for (Result result: results)
 			result.setZipFile(null);
diff --git a/src/eu/telecom_bretagne/praxis/server/Server.java b/src/eu/telecom_bretagne/praxis/server/Server.java
index 5fca1c8de241750c70c27eb3462dbcccc0013d4a..d624daf69fd03ffa7aa55c017d9ec289c96c5e84 100644
--- a/src/eu/telecom_bretagne/praxis/server/Server.java
+++ b/src/eu/telecom_bretagne/praxis/server/Server.java
@@ -25,6 +25,7 @@ import eu.telecom_bretagne.praxis.core.execution.ExecutionLoop;
 import eu.telecom_bretagne.praxis.core.execution.Process;
 import eu.telecom_bretagne.praxis.core.execution.Result;
 import eu.telecom_bretagne.praxis.core.execution.ExecutionLoop.NotEnabledException;
+import eu.telecom_bretagne.praxis.server.Serveur.TooManyClientsException;
 import eu.telecom_bretagne.praxis.server.execution.ExecutionEngine;
 import eu.telecom_bretagne.praxis.server.execution.platform.PlatformDescription;
 
@@ -288,9 +289,16 @@ implements PlatformToServerEventListener, ClientToServerEventListener
                 Client.notifyAuthentificationFailureAndDisconnect(cnx, reject_msg);
             return;
         }
-        Log.log.fine(()->"Client accepted: "+client);
 
-        Serveur.registerClient(client); // TODO: may fail if connected several times
+        try
+        {
+	        Serveur.registerClient(client); // TODO: may fail if connected several times
+	        Log.log.fine(()->"Client accepted: "+client);
+        }
+        catch (TooManyClientsException e)
+        {
+            Client.notifyAuthentificationFailureAndDisconnect(cnx, e.getMessage());
+        }
     }
 
     @Override
diff --git a/src/eu/telecom_bretagne/praxis/server/Serveur.java b/src/eu/telecom_bretagne/praxis/server/Serveur.java
index bb7a22186f0c3d220583090d15e41984e7af9752..e9698154229c1d9a8ed85770c53cd4300634fc3b 100644
--- a/src/eu/telecom_bretagne/praxis/server/Serveur.java
+++ b/src/eu/telecom_bretagne/praxis/server/Serveur.java
@@ -52,6 +52,16 @@ public class Serveur extends UnicastRemoteObject implements RemoteServerInterfac
 	 */
 	public static final String NUMBER_OF_CLIENTS_CURRENTLY_CONNECTED = "Number of clients currently connected: ";
 
+	public static class TooManyClientsException
+	    extends Exception
+	{
+		private static final long serialVersionUID = 1L;
+		public TooManyClientsException()
+		{
+			super("common.cnx_rejected.maximum_number_of_clients");
+		}
+	}
+
 	private static final long serialVersionUID = 6870908801969839494L;
 
 	/**
@@ -72,6 +82,8 @@ public class Serveur extends UnicastRemoteObject implements RemoteServerInterfac
 	
 	static transient long                       sequence;
 
+	static private int                          maximum_nb_of_clients;
+
 	/**
 	 * Null if clients are allowed to log in, or a String giving the reason why login is disabled.
 	 * @see #getClientLoginDisabled()
@@ -98,6 +110,7 @@ public class Serveur extends UnicastRemoteObject implements RemoteServerInterfac
 			System.exit(-1);
 		}
 		Application.getApplication().addListener(serveur);
+		setMaximumNumberOfClients(Configuration.getInt("server.maximum_number_of_clients"));
 	}
 	
 	/**
@@ -109,6 +122,7 @@ public class Serveur extends UnicastRemoteObject implements RemoteServerInterfac
 		super(Configuration.RMI_REGISTRY_PORT);
 		addConsoleCommand_clients();
 		addConsoleCommand_login();
+		addConsoleCommand_maxNumberOfClients();
 	}
 	
 	/**
@@ -200,6 +214,29 @@ public class Serveur extends UnicastRemoteObject implements RemoteServerInterfac
 		return client_login_disabled;
 	}
 
+	/**
+	 * Sets the maximum number of clients.
+	 * 
+	 * @param max
+	 *            the maximum number of clients. If it is negative, sets the maximum to
+	 *            {@link Integer#MAX_VALUE}.
+	 */
+	static protected synchronized void setMaximumNumberOfClients(int max)
+	{
+		maximum_nb_of_clients = max < 0 ? Integer.MAX_VALUE : max;
+	}
+
+	
+	/**
+	 * Returns the maximum number of clients allowed.
+	 * 
+	 * @return the maximum number of clients (a positive integer)
+	 */
+	static protected synchronized int getMaximumNumberOfClients()
+	{
+		return maximum_nb_of_clients;
+	}
+
 	/**
 	 * Adds a new client to the list of the clients connected to the server
 	 * @param client
@@ -209,10 +246,15 @@ public class Serveur extends UnicastRemoteObject implements RemoteServerInterfac
 	 * @exception NullPointerException
 	 *                if client is null
 	 */
-	protected static void registerClient(Client client) throws IllegalArgumentException
+	protected static void registerClient(Client client) throws TooManyClientsException, IllegalArgumentException
 	{
 		synchronized(clients)
 		{
+			final int MAX_CLIENTS = getMaximumNumberOfClients();
+
+			Log.log.finest("Registering new client (already connected: " + clients.size() + "/" + MAX_CLIENTS+ ")");
+			if ( clients.size() >= MAX_CLIENTS )
+				throw new TooManyClientsException();
 			Log.log.fine("Registering client (may fail): " + client.toString());
 			if (isClientRegistered(client.getLogin()))
 				throw new IllegalArgumentException("A client is already registered with login: " + client.getLogin());
@@ -277,7 +319,7 @@ public class Serveur extends UnicastRemoteObject implements RemoteServerInterfac
 				Log.log.warning("Exiting after the last client exits, some platforms were still connected");
 			else
 				Log.log.info("Exiting after the last client exits");
-			System.exit(0);
+			Application.getApplication().exit();
 		}
 		return ret_status;
 	}
@@ -546,6 +588,44 @@ public class Serveur extends UnicastRemoteObject implements RemoteServerInterfac
 		});
 	}
 
+	protected void addConsoleCommand_maxNumberOfClients()
+	{
+		Application.getApplication().console.addCommand(new Console.ConsoleCommand() {
+			public static final String COMMAND="server.max_clients";
+			@Override
+			public String description()
+			{
+				return "Displays and sets the maximum number of clients";
+			}
+			@Override
+			public String[] commands() { return new String[]{ COMMAND }; }
+			@Override
+			public void execute(String command, String argument, PrintStream p)
+			{
+				if (COMMAND.equals(command))
+					max_users(p, argument);
+			}
+			private void max_users(PrintStream p, String args)
+			{
+				if (args!=null && !"".equals(args))
+				{
+					try
+					{
+						setMaximumNumberOfClients(Integer.parseInt(args));
+					}
+					catch (NumberFormatException e)
+					{
+						p.format("Error: %s is not an integer\n", args);
+						return;
+					}
+				}
+				final String max = getMaximumNumberOfClients()==Integer.MAX_VALUE ?
+				                       "unlimited" : Integer.toString(getMaximumNumberOfClients());
+				p.format("Maximum number of clients: %s\n", max);
+			}
+		});
+	}
+
 	@Override
 	public void applicationExiting()
 	{