Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/messages/messages_fr.properties
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/messages/messages_fr.properties	(revision 2978)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/messages/messages_fr.properties	(revision 2979)
@@ -2,7 +2,8 @@
 #TXM messages generated by the PluginMessagesManager class
 #Tue Dec 18 10:24:08 CET 2018
 
-pattern=motif
+pattern=format
+sprintf_pattern_tooltip=au format sprintf
 
 EMPTY = \	\n
 
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/messages/TXMUIMessages.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/messages/TXMUIMessages.java	(revision 2978)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/messages/TXMUIMessages.java	(revision 2979)
@@ -8,6 +8,8 @@
 	
 	private static final String BUNDLE_NAME = "org.txm.rcp.messages.messages"; //$NON-NLS-1$
 	
+	public static String sprintf_pattern_tooltip;
+	
 	public static String theP0FileAlreadyExistsWouldYouLikeToReplaceIt;
 	
 	public static String theP0directoryNotABinaryCorpus;
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/messages/messages.properties
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/messages/messages.properties	(revision 2978)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/messages/messages.properties	(revision 2979)
@@ -3,6 +3,7 @@
 #Tue Dec 18 10:24:08 CET 2018
 
 pattern=pattern
+sprintf_pattern_tooltip=sprintf pattern
 
 EMPTY = \	\n
 
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/swt/dialog/ReferencePatternSelectionDialog.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/swt/dialog/ReferencePatternSelectionDialog.java	(revision 2978)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/swt/dialog/ReferencePatternSelectionDialog.java	(revision 2979)
@@ -87,7 +87,7 @@
 		if (pattern != null) {
 			patternText.setText(pattern);
 		}
-		patternText.setToolTipText("sprintf pattern");
+		patternText.setToolTipText(TXMUIMessages.sprintf_pattern_tooltip);
 		GridData gdata = new GridData(SWT.WRAP, SWT.WRAP, true, true);
 		gdata.widthHint = 200;
 		gdata.minimumWidth = 50;
Index: tmp/org.txm.properties.rcp/src/org/txm/properties/rcp/editors/DocumentationTab.java
===================================================================
--- tmp/org.txm.properties.rcp/src/org/txm/properties/rcp/editors/DocumentationTab.java	(revision 2978)
+++ tmp/org.txm.properties.rcp/src/org/txm/properties/rcp/editors/DocumentationTab.java	(revision 2979)
@@ -50,15 +50,10 @@
 	public void updateEditorFromResult() {
 		TXMResult r = this.editor.getResult().getParent();
 		Project p = r.getFirstParent(Project.class);
-		File file = new File(p.getProjectDirectory(), "doc/index.html");
-		if (file != null && file.exists()) {
-			try {
-				this.browser.setUrl(file.toURI().toURL().toString());
-			}
-			catch (MalformedURLException e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-			}
+		
+		String documentationPath = p.getDocumentationURL();
+		if (documentationPath.length() > 0) {
+			this.browser.setUrl(documentationPath);
 		}
 		else {
 			Log.severe("Information HTML file doesn't exist."); //$NON-NLS-1$
Index: tmp/org.txm.properties.rcp/src/org/txm/properties/rcp/editors/PropertiesPagedEditor.java
===================================================================
--- tmp/org.txm.properties.rcp/src/org/txm/properties/rcp/editors/PropertiesPagedEditor.java	(revision 2978)
+++ tmp/org.txm.properties.rcp/src/org/txm/properties/rcp/editors/PropertiesPagedEditor.java	(revision 2979)
@@ -52,8 +52,7 @@
 		tabs.add(resultTab);
 		
 		Project p = this.getResult().getFirstParent(Project.class);
-		File file = new File(p.getProjectDirectory(), "doc/index.html");
-		if (file.exists()) {
+		if (!p.getDocumentationURL().isEmpty()) {
 			DocumentationTab docTab = new DocumentationTab(tabFolder, this);
 			tabs.add(docTab);
 		}
@@ -75,6 +74,4 @@
 			tab.updateEditorFromResult();
 		}
 	}
-	
-	
 }
Index: tmp/org.txm.core/src/java/org/txm/objects/Project.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/objects/Project.java	(revision 2978)
+++ tmp/org.txm.core/src/java/org/txm/objects/Project.java	(revision 2979)
@@ -31,6 +31,7 @@
 import java.io.File;
 import java.io.IOException;
 import java.lang.reflect.Constructor;
+import java.net.MalformedURLException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
@@ -304,7 +305,33 @@
 	}
 	
 	/**
+	 * The documentation URL is stored in the "documentation" node and the "url" property.
 	 * 
+	 * If it is not set (empty value) the methods returns a local path to the doc/index.html file
+	 * 
+	 * if the "doc/index.html" file does not exists the returned path is empty as well
+	 * 
+	 * @return an URL to the corpus project documentation. empty if not available
+	 */
+	public String getDocumentationURL() {
+		String documentationPath = this.getPreferencesScope().getNode("documentation").get("url", "");
+		if (documentationPath.length() == 0) {
+			File file = new File(this.getProjectDirectory(), "doc/index.html");
+			if (file != null && file.exists()) {
+				try {
+					documentationPath = file.toURI().toURL().toString();
+				}
+				catch (MalformedURLException e) {
+					e.printStackTrace();
+				}
+				
+			}
+		}
+		return documentationPath;
+	}
+	
+	/**
+	 * 
 	 * @return the corpus architecture version (currently 0.8.0)
 	 */
 	public String getCorpusVersion() {
Index: tmp/org.txm.concordance.rcp/src/org/txm/concordance/rcp/actions/DefineViewReferencePattern.java
===================================================================
--- tmp/org.txm.concordance.rcp/src/org/txm/concordance/rcp/actions/DefineViewReferencePattern.java	(revision 2978)
+++ tmp/org.txm.concordance.rcp/src/org/txm/concordance/rcp/actions/DefineViewReferencePattern.java	(revision 2979)
@@ -31,19 +31,7 @@
 import java.util.List;
 
 import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
 import org.txm.concordance.rcp.editors.ConcordanceEditor;
@@ -52,8 +40,6 @@
 import org.txm.searchengine.cqp.ReferencePattern;
 import org.txm.searchengine.cqp.corpus.Property;
 import org.txm.searchengine.cqp.corpus.StructuralUnit;
-import org.txm.searchengine.cqp.corpus.StructuralUnitProperty;
-import org.txm.searchengine.cqp.corpus.VirtualProperty;
 
 /**
  * Action to build the reference pattern.
Index: tmp/org.txm.groovy.core/src/groovy/org/txm/macro/projects/antract/FixINATRSMacro.groovy
===================================================================
--- tmp/org.txm.groovy.core/src/groovy/org/txm/macro/projects/antract/FixINATRSMacro.groovy	(revision 2978)
+++ tmp/org.txm.groovy.core/src/groovy/org/txm/macro/projects/antract/FixINATRSMacro.groovy	(revision 2979)
@@ -15,6 +15,11 @@
 
 println "Fixing $trsDirectory"
 def files = trsDirectory.listFiles()
+if (files == null) {
+	println "No files found in $trsDirectory"
+	return 0;
+}
+
 ConsoleProgressBar cpb = new ConsoleProgressBar(files.size())
 for (File trsFile : files) {
 //File trsFile = new File(directory, "AFE86004868.trs")
Index: tmp/org.txm.groovy.core/src/groovy/org/txm/macro/projects/antract/PrepareAFVOIXOFFCorpusMacro.groovy
===================================================================
--- tmp/org.txm.groovy.core/src/groovy/org/txm/macro/projects/antract/PrepareAFVOIXOFFCorpusMacro.groovy	(revision 2978)
+++ tmp/org.txm.groovy.core/src/groovy/org/txm/macro/projects/antract/PrepareAFVOIXOFFCorpusMacro.groovy	(revision 2979)
@@ -57,13 +57,11 @@
 backtomedia/media_extension=mp4
 backtomedia/media_path_prefix=https\\://{0}\\:{1}@okapi.ina.fr/antract/Media/AF/
 backtomedia/name=backtomedia
-backtomedia/secured_media_login=okapi_reader
-backtomedia/secured_media_path_prefix=https\\://{0}\\:{1}@okapi.ina.fr/antract/Media/AF/
 backtomedia/sync_mode=Structure
 concordance/context_limits=text
 concordance/context_limits_type=list
-concordance/view_reference_pattern={"format"\\:"","properties"\\:["text_date-de-diffusion","u_time","div_identifiant-de-la-notice"]}
-concordance/sort_reference_pattern={"format"\\:"","properties"\\:["text_date-de-diffusion","u_time","div_identifiant-de-la-notice"]}
+concordance/view_reference_pattern={"format"\\:"%s, %s, %s","properties"\\:["text_date-de-diffusion","u_time","div_identifiant-de-la-notice"]}
+concordance/sort_reference_pattern={"format"\\:"","properties"\\:["text_date-de-diffusion-tri","u_time","div_identifiant-de-la-notice"]}
 concordance/name=concordance
 eclipse.preferences.version=1"""
 
