Index: tmp/org.txm.specificities.rcp/src/org/txm/specificities/rcp/messages/messages_ru.properties
===================================================================
--- tmp/org.txm.specificities.rcp/src/org/txm/specificities/rcp/messages/messages_ru.properties	(revision 1362)
+++ tmp/org.txm.specificities.rcp/src/org/txm/specificities/rcp/messages/messages_ru.properties	(revision 1363)
@@ -1,10 +1,19 @@
-#TXM messages generated by the PluginMessagesManager class
-#Mon Nov 12 17:18:22 CET 2018
-banality=N/A_Banalit�
-drawBars=График\: показать столбики
-drawLines=График\: показать кривые
-failedToComputeSpecificities=Не удалось подсчитать специфичность
-groupBarsByLines=Сгруппировать столбики по строкам таблицы
-scoresFormatDefaultIsPercent1f=N/A_Scores format (default%,.1f)
-specificities=Специфичность
-t=T
+#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
+#TXM messages generated by the PluginMessagesManager class
+#Mon Nov 12 17:18:22 CET 2018
+
+banality = N/A_Banalité
+
+drawBars = График: показать столбики
+
+drawLines = График: показать кривые
+
+failedToComputeSpecificities = Не удалось подсчитать специфичность: {0}.
+
+groupBarsByLines = Сгруппировать столбики по строкам таблицы
+
+scoresFormatDefaultIsPercent1f = N/A_Scores format (default%,.1f)
+
+specificities = Специфичность
+
+t = T
Index: tmp/org.txm.specificities.rcp/src/org/txm/specificities/rcp/messages/messages_fr.properties
===================================================================
--- tmp/org.txm.specificities.rcp/src/org/txm/specificities/rcp/messages/messages_fr.properties	(revision 1362)
+++ tmp/org.txm.specificities.rcp/src/org/txm/specificities/rcp/messages/messages_fr.properties	(revision 1363)
@@ -1,11 +1,21 @@
-#TXM messages generated by the PluginMessagesManager class
-#Mon Nov 12 17:18:22 CET 2018
-banality=Banalité
-drawBars=Afficher les barres
-drawLines=Afficher les lignes
-failedToComputeSpecificities=Le calcul des spécificités a échoué.
-groupBarsByLines=Regrouper les barres par les lignes de la table
-maximumScore=Indice maximum
-scoresFormatDefaultIsPercent1f=Format des indices (par défaut \: %,.1f)
-specificities=Spécificités
-t=T
+#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
+#TXM messages generated by the PluginMessagesManager class
+#Mon Nov 12 17:18:22 CET 2018
+
+banality = Banalité
+
+drawBars = Afficher les barres
+
+drawLines = Afficher les lignes
+
+failedToComputeSpecificities = Le calcul des spécificités a échoué : {0}.
+
+groupBarsByLines = Regrouper les barres par les lignes de la table
+
+maximumScore = Indice maximum
+
+scoresFormatDefaultIsPercent1f = Format des indices (par défaut : %,.1f)
+
+specificities = Spécificités
+
+t = T
Index: tmp/org.txm.specificities.rcp/src/org/txm/specificities/rcp/messages/messages.properties
===================================================================
--- tmp/org.txm.specificities.rcp/src/org/txm/specificities/rcp/messages/messages.properties	(revision 1362)
+++ tmp/org.txm.specificities.rcp/src/org/txm/specificities/rcp/messages/messages.properties	(revision 1363)
@@ -1,11 +1,21 @@
-#TXM messages generated by the PluginMessagesManager class
-#Mon Nov 12 17:18:22 CET 2018
-banality=Banality
-drawBars=Draw bars
-drawLines=Draw lines
-failedToComputeSpecificities=Failed to compute specificities.
-groupBarsByLines=Group bars by lines
-maximumScore=Maximum score
-scoresFormatDefaultIsPercent1f=Scores format (default is %,.1f)
-specificities=Specificities
-t=\ T
+#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
+#TXM messages generated by the PluginMessagesManager class
+#Mon Nov 12 17:18:22 CET 2018
+
+banality = Banality
+
+drawBars = Draw bars
+
+drawLines = Draw lines
+
+failedToComputeSpecificities = Failed to compute specificities: {0}.
+
+groupBarsByLines = Group bars by lines
+
+maximumScore = Maximum score
+
+scoresFormatDefaultIsPercent1f = Scores format (default is %,.1f)
+
+specificities = Specificities
+
+t = \ T
Index: tmp/org.txm.specificities.core/src/org/txm/specificities/core/messages/messages.properties
===================================================================
--- tmp/org.txm.specificities.core/src/org/txm/specificities/core/messages/messages.properties	(revision 1362)
+++ tmp/org.txm.specificities.core/src/org/txm/specificities/core/messages/messages.properties	(revision 1363)
@@ -1,18 +1,35 @@
-#TXM messages generated by the PluginMessagesManager class
-#Mon Nov 12 17:18:22 CET 2018
-banalityDDotP0=Banality\: {0}
-cantCreateSpecificitiesChartFileChartsEngineDDotP0=Can''t create specificities chart file (charts engine\: {0})
-error_errorWhileComputingSpecificities=Error while computing specificities\: {0}
-failedToGetTheSpecificitesDDot=** Failed to get the specificites\: 
-noSpecificitiesIndexArray=** No specificities index array.
-numberOfRowsWantedP0AndFoundP1Mismatch=** Number of rows wanted ({0}) and found ({1}) mismatch.
-part=Part
-referenceToNonExistingRow=** Reference to non existing row.
-relativeFrequencyPercent=Relative Frequency %
-RESULT_TYPE=Specificities
-score=Score
-specificitiesSelection=Specificities selection
-specificityIndexComputed=\ specificity index computed
-theLexicalTableCannotBeNull=** The lexical table cannot be null.
-theSpecificityIndexArrayDoesNotProperlyRepresentAMatrix=** The specificity index array does not properly represent a matrix.
-unit=Unit
+#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
+#TXM messages generated by the PluginMessagesManager class
+#Mon Nov 12 17:18:22 CET 2018
+
+RESULT_TYPE = Specificities
+
+banalityDDotP0 = Banality: {0}
+
+cantCreateSpecificitiesChartFileChartsEngineDDotP0 = Can''t create specificities chart file (charts engine: {0})
+
+error_errorWhileComputingSpecificities = Error while computing specificities: {0}
+
+failedToGetTheSpecificitesDDot = ** Failed to get the specificities from R: {0}.
+
+noSpecificitiesIndexArray = ** No specificities index array.
+
+numberOfRowsWantedP0AndFoundP1Mismatch = ** Number of rows wanted ({0}) and found ({1}) mismatch.
+
+part = Part
+
+referenceToNonExistingRow = ** Reference to non existing row.
+
+relativeFrequencyPercent = Relative Frequency %
+
+score = Score
+
+specificitiesSelection = Specificities selection
+
+specificityIndexComputed = {0} specificity index computed.
+
+theLexicalTableCannotBeNull = ** The lexical table cannot be null.
+
+theSpecificityIndexArrayDoesNotProperlyRepresentAMatrix = ** The specificity index array does not properly represent a matrix.
+
+unit = Unit
Index: tmp/org.txm.specificities.core/src/org/txm/specificities/core/messages/messages_fr.properties
===================================================================
--- tmp/org.txm.specificities.core/src/org/txm/specificities/core/messages/messages_fr.properties	(revision 1362)
+++ tmp/org.txm.specificities.core/src/org/txm/specificities/core/messages/messages_fr.properties	(revision 1363)
@@ -1,18 +1,35 @@
-#TXM messages generated by the PluginMessagesManager class
-#Mon Nov 12 17:18:22 CET 2018
-banalityDDotP0=Banalité \: {0}
-cantCreateSpecificitiesChartFileChartsEngineDDotP0=Impossible de créer le fichier du graphique des spécificités (moteur de production de graphiques\: {0})
-error_errorWhileComputingSpecificities=** Erreur lors du calcul des spécificités \: {0}
-failedToGetTheSpecificitesDDot=** Echec d'accès aux spécificités \: 
-noSpecificitiesIndexArray=** Pas de tableau d'index de spécificité
-numberOfRowsWantedP0AndFoundP1Mismatch=** Le nombre de lignes prévu ({0}) et trouvé ({1}) ne correspondent pas.
-part=Partie
-referenceToNonExistingRow=** Référence à une ligne inexistante
-relativeFrequencyPercent=Fréquence Relative %
-RESULT_TYPE=Spécificités
-score=Score
-specificitiesSelection=Sélection de spécificités
-specificityIndexComputed=\ spécificités calculées
-theLexicalTableCannotBeNull=** La table lexicale ne peut être nulle.
-theSpecificityIndexArrayDoesNotProperlyRepresentAMatrix=** Le tableau d'index des spécificités ne correspond pas à une matrice
-unit=Unité
+#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
+#TXM messages generated by the PluginMessagesManager class
+#Mon Nov 12 17:18:22 CET 2018
+
+RESULT_TYPE = Spécificités
+
+banalityDDotP0 = Banalité : {0}
+
+cantCreateSpecificitiesChartFileChartsEngineDDotP0 = Impossible de créer le fichier du graphique des spécificités (moteur de production de graphiques: {0})
+
+error_errorWhileComputingSpecificities = ** Erreur lors du calcul des spécificités : {0}
+
+failedToGetTheSpecificitesDDot = ** Echec d'accès aux spécificités dans R : {0}.
+
+noSpecificitiesIndexArray = ** Pas de tableau d'index de spécificité
+
+numberOfRowsWantedP0AndFoundP1Mismatch = ** Le nombre de lignes prévu ({0}) et trouvé ({1}) ne correspondent pas.
+
+part = Partie
+
+referenceToNonExistingRow = ** Référence à une ligne inexistante
+
+relativeFrequencyPercent = Fréquence Relative %
+
+score = Score
+
+specificitiesSelection = Sélection de spécificités
+
+specificityIndexComputed = {0} spécificités calculées.
+
+theLexicalTableCannotBeNull = ** La table lexicale ne peut être nulle.
+
+theSpecificityIndexArrayDoesNotProperlyRepresentAMatrix = ** Le tableau d'index des spécificités ne correspond pas à une matrice
+
+unit = Unité
Index: tmp/org.txm.specificities.core/src/org/txm/specificities/core/statsengine/r/function/SpecificitiesR.java
===================================================================
--- tmp/org.txm.specificities.core/src/org/txm/specificities/core/statsengine/r/function/SpecificitiesR.java	(revision 1362)
+++ tmp/org.txm.specificities.core/src/org/txm/specificities/core/statsengine/r/function/SpecificitiesR.java	(revision 1363)
@@ -30,6 +30,7 @@
 import org.rosuda.REngine.REXP;
 import org.rosuda.REngine.REXPMismatchException;
 import org.rosuda.REngine.Rserve.RserveException;
+import org.txm.core.messages.TXMCoreMessages;
 import org.txm.lexicaltable.core.statsengine.data.ILexicalTable;
 import org.txm.specificities.core.messages.SpecificitiesCoreMessages;
 import org.txm.specificities.core.statsengine.data.ISpecificities;
@@ -101,7 +102,7 @@
 		super(prefixR+(specif_counter++));
 
 		RWorkspace rw = RWorkspace.getRWorkspaceInstance();
-		rw.safeEval("library(textometry)");
+		rw.safeEval("library(textometry)"); //$NON-NLS-1$
 		REXP r = rw.callFunction("specificities.lexicon.new", new QuantitativeDataStructure[] { lexicon, subLexicon }, symbol); //$NON-NLS-1$
 		// double[] res = RWorkspace.toDouble(r);
 		//System.out.println(" build double matrix");
@@ -130,7 +131,7 @@
 			column = new VectorImpl(partFocus);
 
 		try {
-			rw.safeEval("library(textometry)");
+			rw.safeEval("library(textometry)"); //$NON-NLS-1$
 		} catch (Exception e1) {
 			// TODO Auto-generated catch block
 			e1.printStackTrace();
@@ -141,9 +142,9 @@
 		try {
 			res = r.asDoubleMatrix();
 		} catch (Exception e) {
-			throw new StatException(SpecificitiesCoreMessages.failedToGetTheSpecificitesDDot + e.getMessage(), e);
+			throw new StatException(TXMCoreMessages.bind(SpecificitiesCoreMessages.failedToGetTheSpecificitesDDot, e.getMessage()), e);
 		}
-		Log.finest((res.length * res[0].length) + SpecificitiesCoreMessages.specificityIndexComputed);
+		Log.finest(TXMCoreMessages.bind(SpecificitiesCoreMessages.specificityIndexComputed, (res.length * res[0].length)));
 
 		return res;
 	}
Index: tmp/org.txm.statsengine.r.core/src/org/txm/statsengine/r/core/RScriptEngine.java
===================================================================
--- tmp/org.txm.statsengine.r.core/src/org/txm/statsengine/r/core/RScriptEngine.java	(revision 1362)
+++ tmp/org.txm.statsengine.r.core/src/org/txm/statsengine/r/core/RScriptEngine.java	(revision 1363)
@@ -10,6 +10,7 @@
 import org.eclipse.core.runtime.Status;
 import org.eclipse.osgi.util.NLS;
 import org.txm.core.engines.ScriptEngine;
+import org.txm.core.messages.TXMCoreMessages;
 import org.txm.statsengine.r.core.exceptions.RWorkspaceException;
 import org.txm.statsengine.r.core.messages.RCoreMessages;
 import org.txm.utils.logger.Log;
@@ -68,7 +69,8 @@
 //				RConsole.printServer(str);
 			RWorkspace.appendtoEvalLog(text);
 
-			System.out.println(RCoreMessages.doneDDot+(System.currentTimeMillis()-time)+RCoreMessages.ms); 
+			System.out.println(TXMCoreMessages.bind(RCoreMessages.doneDDot, (System.currentTimeMillis()-time)));
+			
 		} catch(Exception e) {
 			System.out.println(NLS.bind(RCoreMessages.errorWhileRunningRScriptP0DDotP1, text, Log.toString(e))); 
 //			StatusLine.error(NLS.bind(TXMUIMessages.ExecuteRText_1, text, Log.toString(e))); 
@@ -85,6 +87,7 @@
 	 *
 	 * @param scriptfile the scriptfile
 	 */
+	// FIXME: this method should call the method above : executeText();
 	public IStatus executeScript(File rFile, HashMap<String, Object> env) {
 		if (!rFile.exists()) {
 			System.err.println(NLS.bind(RCoreMessages.p0RScriptDoesntExist, rFile));
@@ -130,10 +133,12 @@
 //				if (rw.isLogging() && str.length() > 0)
 //					RConsole.printServer(cmd);
 //			}
-			System.out.println(RCoreMessages.doneDDot+(System.currentTimeMillis()-time)+RCoreMessages.ms);
+				
+			System.out.println(TXMCoreMessages.bind(RCoreMessages.doneDDot, (System.currentTimeMillis()-time)));
+			
 		} catch(Exception e) {
-			System.out.println(NLS.bind(RCoreMessages.errorWhileRunningRScriptP0DDotP1_2, rFile, e)); 
-			//StatusLine.error(NLS.bind(RCoreMessages.errorWhileRunningRScriptP0DDotP1_2, rFile, e)); 
+			System.out.println(NLS.bind(RCoreMessages.errorWhileRunningRScriptP0DDotP1, rFile, e)); 
+			//StatusLine.error(NLS.bind(RCoreMessages.errorWhileRunningRScriptP0DDotP1, rFile, e)); 
 			Log.printStackTrace(e);
 			return Status.CANCEL_STATUS;
 		} finally {
Index: tmp/org.txm.statsengine.r.core/src/org/txm/statsengine/r/core/RWorkspace.java
===================================================================
--- tmp/org.txm.statsengine.r.core/src/org/txm/statsengine/r/core/RWorkspace.java	(revision 1362)
+++ tmp/org.txm.statsengine.r.core/src/org/txm/statsengine/r/core/RWorkspace.java	(revision 1363)
@@ -46,8 +46,7 @@
 import org.rosuda.REngine.Rserve.RConnection;
 import org.rosuda.REngine.Rserve.RserveException;
 import org.txm.Toolbox;
-import org.txm.core.preferences.TBXPreferences;
-import org.txm.core.preferences.TXMPreferences;
+import org.txm.core.messages.TXMCoreMessages;
 import org.txm.statsengine.core.StatException;
 import org.txm.statsengine.core.data.QuantitativeDataStructure;
 import org.txm.statsengine.core.messages.StatsEngineCoreMessages;
@@ -205,15 +204,14 @@
 	 */
 	public static boolean connect(String host, int port, String user, String password) {
 		try {
-			Log.info(RCoreMessages.bind(RCoreMessages.info_connectingToRAtWithUser, new Object[] {host, port, user}));
+			Log.info(TXMCoreMessages.bind(RCoreMessages.info_connectingToRAtWithUser, new Object[] {host, port, user}));
 			connection = new RConnection(host, port);
 			connection.login(user, password);
 			connection.setStringEncoding("utf8"); // mandatory !
 			return isConnected();
 
 		} catch (RserveException x) {
-			System.out.println(RCoreMessages.error_failedToConnectToTheRWorkspace + host+ ", " + port + ", " + user); //$NON-NLS-1$//$NON-NLS-2$ 
-			Log.severe(RCoreMessages.error_failedToConnectToTheRWorkspace + host+ ", " + port + ", " + user); //$NON-NLS-1$//$NON-NLS-2$ 
+			Log.severe(TXMCoreMessages.bind(RCoreMessages.error_failedToConnectToTheRWorkspace, host, port, user)); 
 		}
 		return false;
 	}
@@ -1134,7 +1132,7 @@
 	public int[][] evalToInt2D(String exp) throws RWorkspaceException {
 		int[][] res = null;
 		try {
-			int[] dims = eval(StatsEngineCoreMessages.dim+exp+")").asIntegers(); //$NON-NLS-2$
+			int[] dims = eval("dim(" + exp + ")").asIntegers(); //$NON-NLS-1$ //$NON-NLS-2$
 			int ncol = dims[1];
 			int nrow = dims[0];
 			int[] tmp = eval("c("+exp+")").asIntegers(); //$NON-NLS-1$ //$NON-NLS-2$
Index: tmp/org.txm.statsengine.r.core/src/org/txm/statsengine/r/core/messages/RCoreMessages.java
===================================================================
--- tmp/org.txm.statsengine.r.core/src/org/txm/statsengine/r/core/messages/RCoreMessages.java	(revision 1362)
+++ tmp/org.txm.statsengine.r.core/src/org/txm/statsengine/r/core/messages/RCoreMessages.java	(revision 1363)
@@ -1,6 +1,6 @@
 package org.txm.statsengine.r.core.messages;
 
-import org.eclipse.osgi.util.NLS;
+import org.txm.core.messages.TXMCoreMessages;
 import org.txm.utils.messages.Utf8NLS;
 
 /**
@@ -10,7 +10,7 @@
  * @author sjacquot
  *
  */
-public class RCoreMessages extends NLS {
+public class RCoreMessages extends TXMCoreMessages {
 
 	private static final String BUNDLE_NAME = "org.txm.statsengine.r.core.messages.messages"; //$NON-NLS-1$
 	
@@ -47,7 +47,6 @@
 	public static String runningTextSelection; 
 	public static String errorWhileRunningRScriptP0DDotP1; 
 	public static String p0RScriptDoesntExist; 
-	public static String errorWhileRunningRScriptP0DDotP1_2; 
 
 	public static String error_unexpectedErrorInRStatisticsEngine;
 
Index: tmp/org.txm.statsengine.r.core/src/org/txm/statsengine/r/core/messages/messages.properties
===================================================================
--- tmp/org.txm.statsengine.r.core/src/org/txm/statsengine/r/core/messages/messages.properties	(revision 1362)
+++ tmp/org.txm.statsengine.r.core/src/org/txm/statsengine/r/core/messages/messages.properties	(revision 1363)
@@ -1,36 +1,44 @@
-#TXM messages generated by the PluginMessagesManager class
-#Mon Nov 12 17:18:22 CET 2018
-doneDDot=Done\:
-error_cantFindRServeInPath=** The Statistics Engine program path is set but we couldn't find it in\: {0}.
-error_connectionFailed=** Error while connecting to the stat engine.
-error_errorDuringItemsListExtraction=** Error during items list extraction\: 
-error_errorWhileEvaluating=** R error\: "{0}"\nwhile evaluating\: {1} 
-error_evaluationError=** Evaluation error\: {0}\n{1}.
-error_failedToConnectToTheRWorkspace=** Failed to connect to the R Workspace.
-error_failedToInitializeFileTransfert=** Failed to initialize file transfert\: {0}.
-error_failedToLoadLibrary=Failed to load the {0} library\: {1}.
-error_failedToRunREG=** Failed to run REG to find the location of R program.
-error_failedToStartRServe=Failed to start RServe.
-error_failedToStartRServeWithCommand=** Failed to start Rserve with command\: 
-error_matrixIsEmpty=Matrix is empty.
-error_requestedObjectNotFoundInR=The requested object ({0}) was not found in the R workspace.
-error_rserveIsAlreadyRunningOnPort=Rserve is already running on port {0}.
-error_rservePathNotSet=** The Statistics Engine program path is not set and we could not find it.
-error_unexpectedErrorInRStatisticsEngine=Unexpected error R statistics engine\: {0}.
-error_youNeedRSoftware=You need the 'R' software and you need to configure in the 'Tools/Preferences' window the correct path to it.
-errorWhileRunningRScriptP0DDotP1=** Error while running R script {0}\: {1}
-errorWhileRunningRScriptP0DDotP1_2=** Error while Running R script {0}\: {1}
-info_connectingToRAt=Connecting to R at {0}\:{1}.
-info_connectingToRAtWithUser=Connecting to R at {0}\:{1} with user {2}.
-info_lastSafeEvalExpression=Last safeeval expression\: {0}.
-info_rPathNotSetTryingToFindIt=R path is not set, trying to find it...
-info_savingChartToFile=Saving chart to file\: {0}.
-info_startingRWithCommandLine=Starting R with command line\: {0}.
-info_startingStatsEngine=Starting Statistics Engine\: user\: {0}, remote\: {1}, port\: {2}, debug\: {3}
-info_statisticsEngineLaunched=Statistical Engine launched
-info_tryingToStartRFrom=Try to start R from\: {0}...
-info_tryingToStartRWithRPath=Try to start R with path\: 'R'.
-ms=\ ms
-p0RScriptDoesntExist=** {0} R script doesn''t exist
-runningP0=Running {0}
-runningTextSelection=Running text selection...
+#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
+#TXM messages generated by the PluginMessagesManager class
+#Mon Nov 12 17:18:22 CET 2018
+
+doneDDot = Done in {0} ms.
+
+errorWhileRunningRScriptP0DDotP1 = ** Error while running R script {0}: {1}.
+
+error_cantFindRServeInPath               = ** The Statistics Engine program path is set but we couldn't find it in: {0}.
+error_connectionFailed                   = ** Error while connecting to the stat engine.
+error_errorDuringItemsListExtraction     = ** Error during items list extraction: 
+error_errorWhileEvaluating               = ** R error: "{0}"\nwhile evaluating: {1} 
+error_evaluationError                    = ** Evaluation error: {0}\n{1}.
+error_failedToConnectToTheRWorkspace     = ** Failed to connect to the R Workspace with {0}, {1} and {2}.
+error_failedToInitializeFileTransfert    = ** Failed to initialize file transfert: {0}.
+error_failedToLoadLibrary                = Failed to load the {0} library: {1}.
+error_failedToRunREG                     = ** Failed to run REG to find the location of R program.
+error_failedToStartRServe                = Failed to start RServe.
+error_failedToStartRServeWithCommand     = ** Failed to start Rserve with command: 
+error_matrixIsEmpty                      = Matrix is empty.
+error_requestedObjectNotFoundInR         = The requested object ({0}) was not found in the R workspace.
+error_rserveIsAlreadyRunningOnPort       = Rserve is already running on port {0}.
+error_rservePathNotSet                   = ** The Statistics Engine program path is not set and we could not find it.
+error_unexpectedErrorInRStatisticsEngine = Unexpected error in R statistics engine: {0}.
+error_youNeedRSoftware                   = You need the 'R' software and you need to configure in the 'Tools/Preferences' window the correct path to it.
+
+info_connectingToRAt           = Connecting to R at {0}:{1}.
+info_connectingToRAtWithUser   = Connecting to R at {0}:{1} with user {2}.
+info_lastSafeEvalExpression    = Last safeeval expression: {0}.
+info_rPathNotSetTryingToFindIt = R path is not set, trying to find it...
+info_savingChartToFile         = Saving chart to file: {0}.
+info_startingRWithCommandLine  = Starting R with command line: {0}.
+info_startingStatsEngine       = Starting Statistics Engine: user: {0}, remote: {1}, port: {2}, debug: {3}
+info_statisticsEngineLaunched  = Statistical Engine launched.
+info_tryingToStartRFrom        = Trying to start R from: {0}...
+info_tryingToStartRWithRPath   = Trying to start R with path: 'R'.
+
+ms = \ ms
+
+p0RScriptDoesntExist = ** {0} R script doesn''t exist.
+
+runningP0 = Running {0}...
+
+runningTextSelection = Running text selection...
Index: tmp/org.txm.statsengine.r.core/src/org/txm/statsengine/r/core/messages/messages_ru.properties
===================================================================
--- tmp/org.txm.statsengine.r.core/src/org/txm/statsengine/r/core/messages/messages_ru.properties	(revision 1362)
+++ tmp/org.txm.statsengine.r.core/src/org/txm/statsengine/r/core/messages/messages_ru.properties	(revision 1363)
@@ -1,11 +1,19 @@
-#TXM messages generated by the PluginMessagesManager class
-#Mon Nov 12 17:18:22 CET 2018
-doneDDot=Готово\: 
-error_unexpectedErrorInRStatisticsEngine=Неожиданная ошибка в статистической машине R \: {0}
-errorWhileRunningRScriptP0DDotP1=** Ошибка во время выполнения скрипта R {0}\: {1}
-errorWhileRunningRScriptP0DDotP1_2=** Ошибка при выполнении скрипта R {0}\: {1}
-info_tryingToStartRWithRPath=
-ms=\ мс
-p0RScriptDoesntExist=** Файл скрипта R {0} не найден
-runningP0=Выполнение 
-runningTextSelection=Выполнение выделения текста... 
+#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
+#TXM messages generated by the PluginMessagesManager class
+#Mon Nov 12 17:18:22 CET 2018
+
+doneDDot = 
+
+errorWhileRunningRScriptP0DDotP1 = ** Ошибка во время выполнения скрипта R {0}: {1}.
+
+error_unexpectedErrorInRStatisticsEngine = Неожиданная ошибка в статистической машине R: {0}.
+
+info_tryingToStartRWithRPath = 
+
+ms = \ мс
+
+p0RScriptDoesntExist = ** Файл скрипта R {0} не найден.
+
+runningP0 = 
+
+runningTextSelection = Выполнение выделения текста... 
Index: tmp/org.txm.statsengine.r.core/src/org/txm/statsengine/r/core/messages/messages_fr.properties
===================================================================
--- tmp/org.txm.statsengine.r.core/src/org/txm/statsengine/r/core/messages/messages_fr.properties	(revision 1362)
+++ tmp/org.txm.statsengine.r.core/src/org/txm/statsengine/r/core/messages/messages_fr.properties	(revision 1363)
@@ -1,36 +1,44 @@
-#TXM messages generated by the PluginMessagesManager class
-#Mon Nov 12 17:18:22 CET 2018
-doneDDot=Terminé \: 
-error_cantFindRServeInPath=** Le chemin du programme du serveur statistique a été renseigné mais sa recherche a échoué dans \: {0}.
-error_connectionFailed=** La connexion au moteur statistique a échoué.
-error_errorDuringItemsListExtraction=** Erreur lors de l'extraction de la liste d'items \: \t
-error_errorWhileEvaluating=** Erreur R \: "{0}"\nlors de l'évaluation de \: {1}
-error_evaluationError=** Erreur d'évaluation \: {0}\n{1}.
-error_failedToConnectToTheRWorkspace=** Echec de connexion à l'espace de travail R.
-error_failedToInitializeFileTransfert=** Echec de l'initialisation du transfert \: {0}.
-error_failedToLoadLibrary=La librairie {0} n'a pu être chargée \: {1}.
-error_failedToRunREG=** Echec du lancement de REG pour localiser le programme R.
-error_failedToStartRServe=Impossible de démarrer RServe.
-error_failedToStartRServeWithCommand=** Echec du lancement de Rserve avec la commande \: 
-error_matrixIsEmpty=La matrice est vide.
-error_requestedObjectNotFoundInR=L'objet demandé ({0}) n'a pas été trouvé dans l'espace de travail R.
-error_rserveIsAlreadyRunningOnPort=Rserve est déja démarré sur le port {0}.
-error_rservePathNotSet=** Le chemin du programme du serveur statistique n'a pas été renseigné et sa recherche a échoué.
-error_unexpectedErrorInRStatisticsEngine=Erreur inattendue dans le moteur statistique R \: {0}.
-error_youNeedRSoftware=Vous avez besoin du logiciel 'R' et de configurer ses chemins via la fenêtre de préférences 'Outils/Préférences'.
-errorWhileRunningRScriptP0DDotP1=** Erreur lors de l''exécution du script R {0} \: {1}
-errorWhileRunningRScriptP0DDotP1_2=** Erreur lors de l''exécution du script R {0} \: {1}
-info_connectingToRAt=Connexion à R à {0}\:{1}.
-info_connectingToRAtWithUser=Connexion à R à {0}\:{1} avec l'utilisateur {2}.
-info_lastSafeEvalExpression=Dernier 'safeeval' \: {0}.
-info_rPathNotSetTryingToFindIt=Chemin d'accès à R non fourni, tentative de résolution...
-info_savingChartToFile=Sauvegarde du graphique dans le fichier \: {0}.
-info_startingRWithCommandLine=Démarrage de R avec la ligne de commande \: {0}.
-info_startingStatsEngine=Démarrage du moteur de statistiques \: utilisateur \: {0}, distant \: {1}, port \: {2}, debug \: {3}
-info_statisticsEngineLaunched=Moteur statistique lancé
-info_tryingToStartRFrom=Tentative de démarrage de R depuis \: {0}...
-info_tryingToStartRWithRPath=Tentative de démarrage de R depuis le chemin \: 'R'.
-ms=\ ms
-p0RScriptDoesntExist=** Le fichier de script R {0} n''existe pas
-runningP0=Exécution de {0}
-runningTextSelection=Exécution de la sélection de texte... 
+#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
+#TXM messages generated by the PluginMessagesManager class
+#Mon Nov 12 17:18:22 CET 2018
+
+doneDDot = Terminé en {0} ms.
+
+errorWhileRunningRScriptP0DDotP1 = ** Erreur lors de l''exécution du script R {0} : {1}.
+
+error_cantFindRServeInPath               = ** Le chemin du programme du serveur statistique a été renseigné mais sa recherche a échoué dans : {0}.
+error_connectionFailed                   = ** La connexion au moteur statistique a échoué.
+error_errorDuringItemsListExtraction     = ** Erreur lors de l'extraction de la liste d'items : \	
+error_errorWhileEvaluating               = ** Erreur R : "{0}"\nlors de l'évaluation de : {1}
+error_evaluationError                    = ** Erreur d'évaluation : {0}\n{1}.
+error_failedToConnectToTheRWorkspace     = ** Echec de connexion à l'espace de travail R avec {0}, {1} and {2}.
+error_failedToInitializeFileTransfert    = ** Echec de l'initialisation du transfert : {0}.
+error_failedToLoadLibrary                = La librairie {0} n'a pu être chargée : {1}.
+error_failedToRunREG                     = ** Echec du lancement de REG pour localiser le programme R.
+error_failedToStartRServe                = Impossible de démarrer RServe.
+error_failedToStartRServeWithCommand     = ** Echec du lancement de Rserve avec la commande : 
+error_matrixIsEmpty                      = La matrice est vide.
+error_requestedObjectNotFoundInR         = L'objet demandé ({0}) n'a pas été trouvé dans l'espace de travail R.
+error_rserveIsAlreadyRunningOnPort       = Rserve est déja démarré sur le port {0}.
+error_rservePathNotSet                   = ** Le chemin du programme du serveur statistique n'a pas été renseigné et sa recherche a échoué.
+error_unexpectedErrorInRStatisticsEngine = Erreur inattendue dans le moteur statistique R : {0}.
+error_youNeedRSoftware                   = Vous avez besoin du logiciel 'R' et de configurer ses chemins via la fenêtre de préférences 'Outils/Préférences'.
+
+info_connectingToRAt           = Connexion à R à {0}:{1}.
+info_connectingToRAtWithUser   = Connexion à R à {0}:{1} avec l'utilisateur {2}.
+info_lastSafeEvalExpression    = Dernier 'safeeval' : {0}.
+info_rPathNotSetTryingToFindIt = Chemin d'accès à R non fourni, tentative de résolution...
+info_savingChartToFile         = Sauvegarde du graphique dans le fichier : {0}.
+info_startingRWithCommandLine  = Démarrage de R avec la ligne de commande : {0}.
+info_startingStatsEngine       = Démarrage du moteur de statistiques : utilisateur : {0}, distant : {1}, port : {2}, debug : {3}
+info_statisticsEngineLaunched  = Moteur de statistiques lancé.
+info_tryingToStartRFrom        = Tentative de démarrage de R depuis : {0}...
+info_tryingToStartRWithRPath   = Tentative de démarrage de R depuis le chemin : 'R'.
+
+ms = \ ms
+
+p0RScriptDoesntExist = ** Le fichier de script R {0} n''existe pas.
+
+runningP0 = Exécution de {0}...
+
+runningTextSelection = Exécution de la sélection de texte... 
Index: tmp/org.txm.statsengine.r.core/src/org/txm/statsengine/r/core/data/MatrixImpl.java
===================================================================
--- tmp/org.txm.statsengine.r.core/src/org/txm/statsengine/r/core/data/MatrixImpl.java	(revision 1362)
+++ tmp/org.txm.statsengine.r.core/src/org/txm/statsengine/r/core/data/MatrixImpl.java	(revision 1363)
@@ -422,8 +422,7 @@
 			// System.out.println("nrow: " + nrow);
 			// System.out.println("ncol: " + ncol);
 			// System.out.println(rw.eval("print(" + getSymbol() + ");"));
-			throw new IllegalArgumentException(StatsEngineCoreMessages.unknownTypeDDot
-					+ r.getAttribute(StatsEngineCoreMessages.mode));
+			throw new IllegalArgumentException(StatsEngineCoreMessages.bind(StatsEngineCoreMessages.unknownTypeDDot, r.getAttribute(StatsEngineCoreMessages.mode)));
 		}
 	}
 
@@ -487,9 +486,9 @@
 	@Override
 	public int getNColumns() {
 		try {
-			return RWorkspace.getRWorkspaceInstance().eval(StatsEngineCoreMessages.dim+symbol+")[2]").asInteger(); //$NON-NLS-2$
+			return RWorkspace.getRWorkspaceInstance().eval("dim(" + symbol + ")[2]").asInteger(); //$NON-NLS-1$ //$NON-NLS-2$
 		} catch (Exception e) {
-			Log.severe("Matrix: failed to get nrow: "+e); //$NON-NLS-1$
+			Log.severe(StatsEngineCoreMessages.bind("Matrix: failed to get nrow: {0}.", e));
 		}
 		return 0;
 	}
@@ -500,9 +499,9 @@
 	@Override
 	public int getNRows() {
 		try {
-			return RWorkspace.getRWorkspaceInstance().eval(StatsEngineCoreMessages.dim+symbol+")[1]").asInteger(); //$NON-NLS-2$
+			return RWorkspace.getRWorkspaceInstance().eval("dim(" + symbol + ")[1]").asInteger(); //$NON-NLS-1$ //$NON-NLS-2$
 		} catch (Exception e) {
-			Log.severe(StatsEngineCoreMessages.matrixDDotFailedToGetNrowDDot + e);
+			Log.severe(StatsEngineCoreMessages.bind(StatsEngineCoreMessages.matrixDDotFailedToGetNrowDDot, e));
 		}
 		return 0;
 	}
@@ -514,8 +513,7 @@
 	public Vector getRow(int index) throws RException, RWorkspaceException {
 		int nrow = getNRows();
 		if (index < 0 || index >= nrow) {
-			throw new IllegalArgumentException(StatsEngineCoreMessages.rowIndex + index
-					+ StatsEngineCoreMessages.tooBigMax + nrow + ")"); //$NON-NLS-1$ 
+			throw new IllegalArgumentException(StatsEngineCoreMessages.bind(StatsEngineCoreMessages.rowIndex, index, nrow)); 
 		}
 		String rowName = createSymbole(Vector.class);
 		rw.voidEval(rowName + "<- " + symbol + "[" + (index + 1) + ", ];"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
Index: tmp/org.txm.statsengine.core/src/org/txm/statsengine/core/messages/messages.properties
===================================================================
--- tmp/org.txm.statsengine.core/src/org/txm/statsengine/core/messages/messages.properties	(revision 1362)
+++ tmp/org.txm.statsengine.core/src/org/txm/statsengine/core/messages/messages.properties	(revision 1363)
@@ -1,25 +1,47 @@
-#TXM messages generated by the PluginMessagesManager class
-#Mon Nov 12 17:18:22 CET 2018
-allTheInnerArrayDoNotHaveTheSameLength=** All the inner array do not have the same length.
-anInnerArrayCannotBeNull=** An inner array cannot be null.
-aZerobasedIndexCannotBeInf0OrSupToTheNumberOfIndexedElements=** A zero-based index cannot be < 0 or > to the number of indexed elements.
-cannotDeleteAllLines=Cannot delete all lines
-cannotDeleteANonexistingObject=** Cannot delete a non-existing object.
-colIndex=Col index (
-columnIndex=Column index (
-columnNamesOfAContingencyTableCannotBeNull=Column names of a contingency table cannot be null
-dim=dim(
-error_statsEngineNotReadyCancelingCommand=Statistics Engine is not ready, canceling command.
-failedToGetRowNames=Failed to get row names
-innerArraysMustBeOfDimensionSup0=** Inner arrays must be of dimension > 0.
-matrixDDotFailedToGetNrowDDot=Matrix\: failed to get nrow\: 
-matrixImplDDotErrorDDotColumnSizeDiffersDDotOriginal=MatrixImpl\: Error\: column size differs\: original
-mode=mode
-nothingToDoWithAnEmptyMatrix=** Nothing to do with an empty matrix
-notImplemented=** Not implemented
-rObjectEvaluatedToNull=R object evaluated to null.
-rowIndex=Row index (
-rowNamesOfAContingencyTableCannotBeNull=Row names of a contingency table cannot be null.
-theIndexArrayCanNotBeNullOrEmpty=** The index array can not be null or empty.
-tooBigMax=) too big (max 
-unknownTypeDDot=Unknown type\: 
+#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
+#TXM messages generated by the PluginMessagesManager class
+#Mon Nov 12 17:18:22 CET 2018
+
+aZerobasedIndexCannotBeInf0OrSupToTheNumberOfIndexedElements = ** A zero-based index cannot be < 0 or > to the number of indexed elements.
+
+allTheInnerArrayDoNotHaveTheSameLength = ** All the inner array do not have the same length.
+
+anInnerArrayCannotBeNull = ** An inner array cannot be null.
+
+cannotDeleteANonexistingObject = ** Cannot delete a non-existing object.
+
+cannotDeleteAllLines = Cannot delete all lines
+
+colIndex = Col index (
+
+columnIndex = Column index (
+
+columnNamesOfAContingencyTableCannotBeNull = Column names of a contingency table cannot be null
+
+error_statsEngineNotReadyCancelingCommand = Statistics Engine is not ready, canceling command.
+
+failedToGetRowNames = Failed to get row names
+
+innerArraysMustBeOfDimensionSup0 = ** Inner arrays must be of dimension > 0.
+
+matrixDDotFailedToGetNrowDDot = Matrix: failed to get nrow: {0}.
+
+matrixImplDDotErrorDDotColumnSizeDiffersDDotOriginal = MatrixImpl: Error: column size differs: original
+
+mode = mode
+
+notImplemented = ** Not implemented
+
+nothingToDoWithAnEmptyMatrix = ** Nothing to do with an empty matrix
+
+rObjectEvaluatedToNull = R object evaluated to null.
+
+rowIndex = Row index ({0}) too big (max {1})
+
+rowNamesOfAContingencyTableCannotBeNull = Row names of a contingency table cannot be null.
+
+theIndexArrayCanNotBeNullOrEmpty = ** The index array can not be null or empty.
+
+tooBigMax = ) too big (max 
+
+unknownTypeDDot = Unknown type: {0}.
Index: tmp/org.txm.statsengine.core/src/org/txm/statsengine/core/messages/StatsEngineCoreMessages.java
===================================================================
--- tmp/org.txm.statsengine.core/src/org/txm/statsengine/core/messages/StatsEngineCoreMessages.java	(revision 1362)
+++ tmp/org.txm.statsengine.core/src/org/txm/statsengine/core/messages/StatsEngineCoreMessages.java	(revision 1363)
@@ -28,7 +28,6 @@
 	public static String tooBigMax; 
 	public static String colIndex; 
 	public static String rObjectEvaluatedToNull; 
-	public static String dim; 
 	public static String unknownTypeDDot; 
 	public static String mode; 
 	public static String columnIndex; 
Index: tmp/org.txm.statsengine.core/src/org/txm/statsengine/core/messages/messages_ru.properties
===================================================================
--- tmp/org.txm.statsengine.core/src/org/txm/statsengine/core/messages/messages_ru.properties	(revision 1362)
+++ tmp/org.txm.statsengine.core/src/org/txm/statsengine/core/messages/messages_ru.properties	(revision 1363)
@@ -1,3 +1,7 @@
-#TXM messages generated by the PluginMessagesManager class
-#Mon Nov 12 17:18:22 CET 2018
-error_statsEngineNotReadyCancelingCommand=
+#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
+#TXM messages generated by the PluginMessagesManager class
+#Mon Nov 12 17:18:22 CET 2018
+
+error_statsEngineNotReadyCancelingCommand = 
+
+rowIndex = 
Index: tmp/org.txm.statsengine.core/src/org/txm/statsengine/core/messages/messages_fr.properties
===================================================================
--- tmp/org.txm.statsengine.core/src/org/txm/statsengine/core/messages/messages_fr.properties	(revision 1362)
+++ tmp/org.txm.statsengine.core/src/org/txm/statsengine/core/messages/messages_fr.properties	(revision 1363)
@@ -1,25 +1,47 @@
-#TXM messages generated by the PluginMessagesManager class
-#Mon Nov 12 17:18:22 CET 2018
-allTheInnerArrayDoNotHaveTheSameLength=** Les tableaux internes n'ont pas tous la même dimension.
-anInnerArrayCannotBeNull=** Un tableau interne ne peut pas être nul
-aZerobasedIndexCannotBeInf0OrSupToTheNumberOfIndexedElements=** Un index commençant à 0 ne peut pas être inférieur à 0 ou supérieur au nombre d'éléments indexés.
-cannotDeleteAllLines=Impossible de supprimer toutes les lignes
-cannotDeleteANonexistingObject=** Impossible de supprimer un objet qui n'existe pas.
-colIndex=Index de colonne (
-columnIndex=Index de colonne (
-columnNamesOfAContingencyTableCannotBeNull=Les noms de colonnes d'une matrice de contingence ne peuvent pas être nuls.
-dim=dim(
-error_statsEngineNotReadyCancelingCommand=Le moteur de statistiques n'est pas initialisé, annulation de la commande.
-failedToGetRowNames=Impossible d'obtenir les noms de lignes
-innerArraysMustBeOfDimensionSup0=** Les tableaux internes doivent avoir une dimension supérieure à 0
-matrixDDotFailedToGetNrowDDot=Matrice\: impossible d'obtenir le nombre de lignes\: 
-matrixImplDDotErrorDDotColumnSizeDiffersDDotOriginal=MatrixImpl\: Erreur\: la taille des colonnes diffère de l'originale
-mode=mode
-nothingToDoWithAnEmptyMatrix=** Rien à faire avec une matrice vide
-notImplemented=** Non implémenté
-rObjectEvaluatedToNull=L'objet R a une valeur nulle.
-rowIndex=Index de ligne (
-rowNamesOfAContingencyTableCannotBeNull=Les noms de lignes d'une matrice de contingence ne peuvent pas être nuls.
-theIndexArrayCanNotBeNullOrEmpty=** Le tableau d'index ne peut pas être nul ou vide.
-tooBigMax=) trop grand (max 
-unknownTypeDDot=Type inconnu \: 
+#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
+#TXM messages generated by the PluginMessagesManager class
+#Mon Nov 12 17:18:22 CET 2018
+
+aZerobasedIndexCannotBeInf0OrSupToTheNumberOfIndexedElements = ** Un index commençant à 0 ne peut pas être inférieur à 0 ou supérieur au nombre d'éléments indexés.
+
+allTheInnerArrayDoNotHaveTheSameLength = ** Les tableaux internes n'ont pas tous la même dimension.
+
+anInnerArrayCannotBeNull = ** Un tableau interne ne peut pas être nul
+
+cannotDeleteANonexistingObject = ** Impossible de supprimer un objet qui n'existe pas.
+
+cannotDeleteAllLines = Impossible de supprimer toutes les lignes
+
+colIndex = Index de colonne (
+
+columnIndex = Index de colonne (
+
+columnNamesOfAContingencyTableCannotBeNull = Les noms de colonnes d'une matrice de contingence ne peuvent pas être nuls.
+
+error_statsEngineNotReadyCancelingCommand = Le moteur de statistiques n'est pas initialisé, annulation de la commande.
+
+failedToGetRowNames = Impossible d'obtenir les noms de lignes
+
+innerArraysMustBeOfDimensionSup0 = ** Les tableaux internes doivent avoir une dimension supérieure à 0
+
+matrixDDotFailedToGetNrowDDot = Matrice: impossible d'obtenir le nombre de lignes: {0}.
+
+matrixImplDDotErrorDDotColumnSizeDiffersDDotOriginal = MatrixImpl: Erreur: la taille des colonnes diffère de l'originale
+
+mode = mode
+
+notImplemented = ** Non implémenté
+
+nothingToDoWithAnEmptyMatrix = ** Rien à faire avec une matrice vide
+
+rObjectEvaluatedToNull = L'objet R a une valeur nulle.
+
+rowIndex = Index de ligne ({0}) trop grand (max {1})
+
+rowNamesOfAContingencyTableCannotBeNull = Les noms de lignes d'une matrice de contingence ne peuvent pas être nuls.
+
+theIndexArrayCanNotBeNullOrEmpty = ** Le tableau d'index ne peut pas être nul ou vide.
+
+tooBigMax = ) trop grand (max 
+
+unknownTypeDDot = Type inconnu : {0}.
