[Pkg-mozext-commits] [automatic-save-folder] 83/133: Add : - New import/export features - New help message which is loaded on first install and after important updates. It will explain which Firefox preferences must be correctly set in order to work with ASF. To see this message if it's not your first install, go to this URL: chrome://asf/content/help/install.xhtml

David Prévot taffit at moszumanska.debian.org
Mon Apr 27 20:33:54 UTC 2015


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch wip
in repository automatic-save-folder.

commit 6c5735f2b956ee04d3bde9135a73b320a4e963ee
Author: Cyan <Cyan at d0063192-6b2e-11de-89a9-0b20f3e2dceb>
Date:   Fri Oct 22 21:56:23 2010 +0000

    Add :
    - New import/export features
    - New help message which is loaded on first install and after important updates.
    It will explain which Firefox preferences must be correctly set in order to work with ASF.
    To see this message if it's not your first install, go to this URL:
    chrome://asf/content/help/install.xhtml
    
    Note :
    This update may contain few bugs I missed, please report anything wrong to the forum.
    
    git-svn-id: http://automatic-save-folder.googlecode.com/svn/trunk@89 d0063192-6b2e-11de-89a9-0b20f3e2dceb
---
 content/asf.js                                     | 566 ++++++++++++++++++++-
 content/asf_right_click.js                         | 113 +++-
 content/common.dtd                                 |   2 +-
 content/help/help.xhtml                            |  15 -
 content/help/install.xhtml                         | 185 +++++++
 content/help/update.xhtml                          | 202 ++++++++
 content/options.xul                                | 105 +++-
 defaults/preferences/asf.js                        |   3 +
 locale/en-US/about.dtd                             |   4 +-
 locale/en-US/asf.dtd                               |  27 +-
 locale/en-US/asf.properties                        |   6 +-
 locale/en-US/help.dtd                              |  72 ++-
 locale/fr/about.dtd                                |   4 +-
 locale/fr/asf.dtd                                  |  27 +-
 locale/fr/asf.properties                           |   6 +-
 locale/fr/help.dtd                                 |  72 ++-
 locale/it/about.dtd                                |   4 +-
 locale/it/asf.dtd                                  |  25 +-
 locale/it/asf.properties                           |   6 +-
 locale/it/help.dtd                                 |  72 ++-
 locale/ru/about.dtd                                |   4 +-
 locale/ru/asf.dtd                                  |  25 +-
 locale/ru/asf.properties                           |   6 +-
 locale/ru/help.dtd                                 |  71 ++-
 skin/help_page/asf-icon.png                        | Bin 0 -> 1686 bytes
 skin/help_page/firefox_default_icon.png            | Bin 0 -> 3579 bytes
 skin/help_page/logo_project_left.jpg               | Bin 0 -> 7813 bytes
 skin/help_page/logo_project_right.jpg              | Bin 0 -> 7178 bytes
 skin/help_page/mozilla_default_icon.png            | Bin 0 -> 1962 bytes
 skin/help_page/screen-asf102-setbyfilters_en.png   | Bin 0 -> 25332 bytes
 skin/help_page/screen-asf102-setbyfilters_fr.png   | Bin 0 -> 28040 bytes
 skin/help_page/screen-main_en.png                  | Bin 0 -> 28750 bytes
 skin/help_page/screen-main_fr.png                  | Bin 0 -> 28900 bytes
 .../screen-savedialog-alwaysdothis_en.png}         | Bin 15191 -> 12376 bytes
 .../screen-savedialog-alwaysdothis_fr.png}         | Bin 15665 -> 12756 bytes
 skin/{ => help_page}/screen_apps_en.png            | Bin
 skin/help_page/screen_apps_fr.png                  | Bin 0 -> 25704 bytes
 skin/{ => help_page}/screen_apps_ru.png            | Bin
 skin/{ => help_page}/screen_save_en.png            | Bin 15191 -> 15243 bytes
 skin/help_page/screen_save_fr.png                  | Bin 0 -> 15716 bytes
 skin/{ => help_page}/screen_save_ru.png            | Bin
 skin/help_page/style.css                           |  55 ++
 skin/screen_apps_fr.png                            | Bin 35697 -> 0 bytes
 skin/screen_save_50fr.png                          | Bin 23761 -> 0 bytes
 skin/screen_save_80fr.png                          | Bin 44580 -> 0 bytes
 45 files changed, 1535 insertions(+), 142 deletions(-)

diff --git a/content/asf.js b/content/asf.js
index 1d16197..75b7303 100644
--- a/content/asf.js
+++ b/content/asf.js
@@ -31,6 +31,7 @@ var automatic_save_folder = {
                    .createBundle("chrome://asf/locale/asf.properties"),
 				
 		firefoxversion : "",
+		ASF_VERSION: "",
 		
 	asf_load: function () {
 		
@@ -41,7 +42,7 @@ var automatic_save_folder = {
 		if (this.firefoxversion >= "3")
 		{
 			// set lastdir to "enable" if the user just updated from previous version and had it disabled
-			var lastdir = document.getElementById("asf-lasdir");
+			var lastdir = document.getElementById("asf-lastdir");
 			lastdir.checked = true;
 			lastdir.hidden = true; // hidden on FF3, as lastdir must always be true, don't allow the user to disable it.
 			this.prefManager.setBoolPref("extensions.asf.lastdir", true);
@@ -49,7 +50,8 @@ var automatic_save_folder = {
 		
 		
 		this.asf_getdomain(); // Run this to get the current domain and filename from the download window to pre-fill the fields in "add filter".
-		this.asf_loadpref();  // Load the preferences and the filter's array content
+		this.asf_loadpref();  // Load the preferences
+		this.asf_loadFilters();  // Load the filter's array content
 		this.asf_treeSelected(); // set the button to disabled state because no filter is selected when openning
 		this.asf_toggleradio(); // set the radio choice to the right place
 		this.asf_variablemode(); // check if variable mode is on or off, and change mode if needed
@@ -80,13 +82,30 @@ var automatic_save_folder = {
 
 
 	asf_loadpref: function () {
-		var nbrRow = this.prefManager.getIntPref("extensions.asf.filtersNumber", 0);
-		
 		//load the default folder (I removed the preference in options.xul, unicode folder's name didn't saved at all with automatic preference management. 
 		// 							Manual saving is working, but not saving in the right encoding type in prefs.js, so we need to use get/setComplexValue)
 		var default_folder = document.getElementById("asf-default-folder");
 		default_folder.value = this.loadUnicodeString("extensions.asf.defaultfolder");
 		
+		var exportFolder = document.getElementById("asf-exportFolder");
+		exportFolder.value = this.loadUnicodeString("extensions.asf.exportFolder");
+		
+		// export button
+		var showExportButton = document.getElementById("asf-showExportButton");
+		var exportButton = document.getElementById("asf-filter-export");
+		exportButton.hidden = !showExportButton.checked;
+	},
+
+
+	asf_loadFilters: function () {
+		var nbrRow = this.prefManager.getIntPref("extensions.asf.filtersNumber", 0);
+			
+		// ensure there's no filters already listed in the treeview
+		for (var i=document.getElementById('asf-filterChilds').childNodes.length-1 ; i>=0 ; i--)
+		{
+			document.getElementById('asf-filterChilds').removeChild(document.getElementById('asf-filterChilds').childNodes[i]);
+		}
+		// insert the filters in the treeview
 		for ( var i = 0 ; i < nbrRow ; i++)
 		{
 			var domain = this.loadUnicodeString("extensions.asf.filters"+ i +".domain");
@@ -819,13 +838,17 @@ var automatic_save_folder = {
 
 
 	// next 2 functions : Code inspired from DTA (browsedir & createValidDestination)
-	browsedir: function () {
-		var current_folder_input = document.getElementById("asf-default-folder").value;
+	browsedir: function (targetID) {
+		var inputbox = document.getElementById(targetID);
+		var current_folder_input = inputbox.value;
 		
 		const nsIFilePicker = Components.interfaces.nsIFilePicker;
 		var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(nsIFilePicker);
 		
-		var filepickerdescription = this.stringbundle.GetStringFromName("select_default_folder");
+		var filepickerdescription = "";
+		if (targetID == "asf-default-folder") filepickerdescription = this.stringbundle.GetStringFromName("select_default_folder");
+		if (targetID == "asf-exportFolder") filepickerdescription = this.stringbundle.GetStringFromName("export.default_folder");
+		
 		fp.init(window, filepickerdescription, nsIFilePicker.modeGetFolder);
 		//fp.appendFilters(nsIFilePicker.filterAll | nsIFilePicker.filterText);
 		
@@ -838,16 +861,17 @@ var automatic_save_folder = {
 		{
 			var asf_url = fp.file.path;
 			// Set the data into the input box
-			document.getElementById("asf-default-folder").value = asf_url;
+			document.getElementById(targetID).value = asf_url;
 		}
 		
 		//needed to save unicode paths using instantApply
 		var instantApply = this.prefManager.getBoolPref("browser.preferences.instantApply");
 		if (instantApply)
 		{
-			//save the default folder right after editing
-			var default_folder = document.getElementById("asf-default-folder").value;
-			this.saveUnicodeString("extensions.asf.defaultfolder", default_folder);
+			//save the new folder right after editing
+			var new_folder = document.getElementById(targetID).value;
+			if (targetID == "asf-default-folder") this.saveUnicodeString("extensions.asf.defaultfolder", new_folder);
+			if (targetID == "asf-exportFolder") this.saveUnicodeString("extensions.asf.exportFolder", new_folder);
 		}
 	},
 
@@ -980,6 +1004,523 @@ var automatic_save_folder = {
 	},
 
 
+	preferences_import: function(importType) {
+	/** 
+	// string @importType : "all", "filters", "preferences"
+	*/
+		
+		// read the default import/export folder
+		var exportFolder = document.getElementById("asf-exportFolder").value;
+		
+		var data = this.read_file(exportFolder);
+		if (!data) return false;
+		
+		if(data[0]!="Automatic Save Folder") 
+		{
+			alert("not an ASF pref data");
+			return false;
+		}
+		
+		var compare = this.versionChecker.compare;
+		var import_version = data[1];
+		var asf_version = this.prefManager.getCharPref("extensions.asf.version");
+		var apply = true;
+		var message = "";
+		
+		if (compare(import_version, asf_version) == 1) // imported data is from a newer ASF version than the current ASF installed version
+		{
+			apply = false;
+			message = this.stringbundle.GetStringFromName("export.importnewer");
+		}
+		
+		
+		if (compare(import_version, asf_version) == -1) // imported data is from an older ASF version than the current ASF installed version, let's check if data update is needed
+		{
+			
+			apply = true;
+			
+			// upgrade exemple
+			// 1.0.2bReb86
+			if (this.versionChecker.compare(import_version, "1.0.2bRev86") == -1) // convert usecurrenturl=true to checkDomainOrder=1,5
+			{
+				for (var i = 2; i < data.length ; i++)
+				{
+					if (data[i].indexOf("extensions.asf.usecurrenturl") >= 0)
+					{
+						if (data[i] == "extensions.asf.usecurrenturl;bool=true")
+						{
+							
+							data[i] = "extensions.asf.domainTestOrder;char=1,5";
+						}
+						else
+						{
+							data[i] = "extensions.asf.domainTestOrder;char=1";
+						}
+						break;
+					}
+				}
+			}
+			
+			
+		}
+		
+		
+		if (document.getElementById('asf-options-export-forceimport').checked == true)
+		{
+			apply = true;
+		}
+		
+		if (apply == false)
+		{
+			alert(message);
+			return false;
+		}
+		
+		
+		// import the data
+		var type_pos, data_pos, prefName, prefType, prefData, dataType ;
+		var notempdata = document.getElementById('asf-options-export-notempdata').checked;
+		var importThisData = true;
+		for (var i=1; i<data.length; i++)
+		{
+			// exclude these temporary data from import if option is checked
+			importThisData = true;
+			if (data[i].indexOf("extensions.asf.lastpath") >= 0 && notempdata == true) importThisData = false;
+			if (data[i].indexOf("extensions.asf.tempdomain") >= 0 && notempdata == true) importThisData = false; 
+			
+			type_pos = data[i].indexOf(";");
+			data_pos = data[i].indexOf("=");
+			if ((type_pos > 0) && importThisData == true)
+			{
+				prefName  = data[i].substring(0,type_pos);
+				prefType = data[i].substring(type_pos+1,data_pos);
+				prefData = data[i].substring(data_pos+1,data[i].length);
+				dataType = prefName.indexOf("extensions.asf.filters")>=0 ? "filters" : "preferences";
+				if (importType == "all" || importType == dataType)
+				{
+					switch(prefType)
+					{
+						case "int" : this.prefManager.setIntPref(prefName, prefData); break;
+						case "char" : this.saveUnicodeString(prefName, prefData); break;
+						case "bool" : 
+						{
+							prefData = (prefData == "true" ? true : false) ;
+							this.prefManager.setBoolPref(prefName, prefData); 
+							break;
+						}
+					}
+				}
+			}
+		}
+		
+		
+		// we need to set back the radios, checkboxes and lists manually (Even with instantApply), because of dependencies.
+		if (importType == "preferences" || importType == "all")
+		{
+			// filters tab
+			document.getElementById("radio-savetype").value = this.prefManager.getIntPref("extensions.asf.savetype");						// use last folder if no filter found
+			document.getElementById("asf-default-folder").value = this.loadUnicodeString("extensions.asf.defaultfolder");					// use default saving folder
+			document.getElementById("asf-keeptemp-check").checked = this.prefManager.getBoolPref("extensions.asf.keeptemp");				// but last folder if same domain
+			
+			// options tab
+			document.getElementById("asf-useDownloadDir").checked = this.prefManager.getBoolPref("browser.download.useDownloadDir"); 		// useDownloadDir (firefox pref)
+			document.getElementById("asf-folderList").value = this.prefManager.getIntPref("browser.download.folderList");					// folderList 0= desk, 1= download, 2= user
+			
+			document.getElementById("asf-dialogaccept").checked = this.prefManager.getBoolPref("extensions.asf.dialogaccept");				// auto accept the save dialog
+			document.getElementById("asf-dialogacceptFiltered").checked = this.prefManager.getBoolPref("extensions.asf.dialogacceptFiltered"); // only if a filter is found
+			document.getElementById("asf-dialogForceRadioTo").value = this.prefManager.getCharPref("extensions.asf.dialogForceRadioTo");	// force radio choice to
+			
+			document.getElementById("asf-viewdloption").checked = this.prefManager.getBoolPref("extensions.asf.viewdloption");				// show the ASF box when saving
+			document.getElementById("asf-viewdloptionType").value = this.prefManager.getIntPref("extensions.asf.viewdloptionType"); 		// box state if disabled
+			// document.getElementById("asf-suggestAllPossibleFolders").checked = this.prefManager.getBoolPref("extensions.asf.suggestAllPossibleFolders"); // suggest all possible folders
+			document.getElementById("asf-viewpathselect").checked = this.prefManager.getBoolPref("extensions.asf.viewpathselect");			// show a dropdown menu with all the filter's folders
+			
+			document.getElementById("asf-userightclick").checked = this.prefManager.getBoolPref("extensions.asf.userightclick");			// Activate filtering on the right click menus
+			document.getElementById("asf-rightclicktimeout").checked = this.prefManager.getBoolPref("extensions.asf.rightclicktimeout");	// remove http-header reading delay
+			var timeout = document.getElementById("asf-rightclicktimeout").checked ? '0' : '1000';
+			this.prefManager.setIntPref("browser.download.saveLinkAsFilenameTimeout", timeout );											// set time out accordingly to the new imported pref
+			
+			document.getElementById("asf-lastdir").checked = this.prefManager.getBoolPref("extensions.asf.lastdir");						// for FF < 3.x only
+			document.getElementById("asf-domainTestOrder").value = this.prefManager.getCharPref("extensions.asf.domainTestOrder");			// Domain test order
+			document.getElementById("asf-regexp_caseinsensitive").checked = this.prefManager.getBoolPref("extensions.asf.regexp_caseinsensitive");	// case sensitivity
+			
+			document.getElementById("asf-pathlist_defaultforceontop").checked = this.prefManager.getBoolPref("extensions.asf.pathlist_defaultforceontop");	// default folder on top of the lists
+			document.getElementById("asf-pathlist_alphasort").checked = this.prefManager.getBoolPref("extensions.asf.pathlist_alphasort");	// sort lists alphabetically
+			document.getElementById("asf-rowmatchinghighlight").value = this.prefManager.getCharPref("extensions.asf.rowmatchinghighlight"); // highlight color when matching row is selected
+			
+			document.getElementById("asf-autoCheckBetaUpdate").checked = this.prefManager.getBoolPref("extensions.asf.autoCheckBetaUpdate"); // autocheck beta update
+			
+			document.getElementById("asf-dta_ASFtoDTA_isActive").checked = this.prefManager.getBoolPref("extensions.asf.dta_ASFtoDTA_isActive"); // send to dTa
+			document.getElementById("asf-dta_sendMethod").value = this.prefManager.getCharPref("extensions.asf.dta_sendMethod");			// replace or add to dTa
+			
+			document.getElementById("asf-exportFolder").value = this.loadUnicodeString("extensions.asf.exportFolder");						// export button present on Filter's tab
+			document.getElementById("asf-showExportButton").checked = this.prefManager.getBoolPref("extensions.asf.showExportButton");		// export button present on Filter's tab
+			
+			// Dynamic Folders tab
+			document.getElementById("asf-variablemode").checked = this.prefManager.getBoolPref("extensions.asf.variablemode");
+			
+			this.asf_loadpref();  // reload the preferences
+			this.asf_toggleradio(); // set the radio choice to the right place
+			this.toggle_options(); // set the checkboxes disabled state
+			this.asf_variablemode(); 
+		}
+		
+		if (importType == "filters" || importType == "all")
+		{
+			var optionTabSelected = document.getElementById("asf-optionstab").selected;
+			if (optionTabSelected) this.asf_selecttab("asf-tab-filters"); // go to filter tab to restore filters correctly
+			this.asf_loadFilters(); // reload all the preferences from the prefManger
+			this.asf_treeSelected();
+			if (optionTabSelected) this.asf_selecttab("asf-tab-options"); // go back to previous tab
+		}
+		
+		
+		message =  this.stringbundle.GetStringFromName("export.importsuccessful");
+		alert(message);
+		
+		return true;
+	},
+
+
+	preferences_export: function() {
+		var prefs = Components.classes["@mozilla.org/preferences-service;1"].
+								getService(Components.interfaces.nsIPrefService);
+		
+		
+		// save the current data to userpref.js before exporting
+		var optionTabSelected = document.getElementById("asf-optionstab").selected;
+		if (optionTabSelected) this.asf_selecttab("asf-tab-filters"); // go to filter tab to restore filters correctly
+		this.asf_savefilters(); //save the filters
+		this.asf_saveoptions(); //save the options
+		if (optionTabSelected) this.asf_selecttab("asf-tab-options"); // go back to previous tab
+		
+		
+		// read the default import/export folder
+		var exportFolder = document.getElementById("asf-exportFolder").value;
+		
+		var data = new Array;
+		data[data.length] = "Automatic Save Folder"; // always first
+		data[data.length] = this.prefManager.getCharPref("extensions.asf.version"); // always second
+		
+		var ASF_prefs = new Array;
+		var additionnal_prefs = new Array;
+		// ASF 1.0.0
+		ASF_prefs[ASF_prefs.length] = "browser.download.useDownloadDir";
+		ASF_prefs[ASF_prefs.length] = "browser.download.folderList";
+		
+		
+		ASF_prefs[ASF_prefs.length] = "extensions.asf.autoCheckBetaUpdate";
+		ASF_prefs[ASF_prefs.length] = "extensions.asf.checkBetaVersion";
+		ASF_prefs[ASF_prefs.length] = "extensions.asf.defaultfolder";
+		ASF_prefs[ASF_prefs.length] = "extensions.asf.dialogForceRadio";
+		ASF_prefs[ASF_prefs.length] = "extensions.asf.dialogForceRadioTo";
+		ASF_prefs[ASF_prefs.length] = "extensions.asf.dialogaccept";
+		ASF_prefs[ASF_prefs.length] = "extensions.asf.dialogacceptFiltered";
+		// ASF_prefs[ASF_prefs.length] = "extensions.asf.usecurrenturl";  ---> removed since 1.0.2bRev86, replace with extensions.asf.domainTestOrder
+		ASF_prefs[ASF_prefs.length] = "extensions.asf.dta_ASFtoDTA_isActive";
+		ASF_prefs[ASF_prefs.length] = "extensions.asf.dta_sendMethod";
+		ASF_prefs[ASF_prefs.length] = "extensions.asf.keeptemp";
+		ASF_prefs[ASF_prefs.length] = "extensions.asf.lastdir";
+		ASF_prefs[ASF_prefs.length] = "extensions.asf.lastpath";
+		ASF_prefs[ASF_prefs.length] = "extensions.asf.pathlist_alphasort";
+		ASF_prefs[ASF_prefs.length] = "extensions.asf.pathlist_defaultforceontop";
+		ASF_prefs[ASF_prefs.length] = "extensions.asf.regexp_caseinsensitive";
+		ASF_prefs[ASF_prefs.length] = "extensions.asf.rightclicktimeout";
+		ASF_prefs[ASF_prefs.length] = "extensions.asf.rowmatchinghighlight";
+		ASF_prefs[ASF_prefs.length] = "extensions.asf.savetype";
+		ASF_prefs[ASF_prefs.length] = "extensions.asf.tempdomain";
+		ASF_prefs[ASF_prefs.length] = "extensions.asf.useDownloadDirFiltered";
+		ASF_prefs[ASF_prefs.length] = "extensions.asf.userightclick";
+		ASF_prefs[ASF_prefs.length] = "extensions.asf.variablemode";
+		ASF_prefs[ASF_prefs.length] = "extensions.asf.viewdloption";
+		ASF_prefs[ASF_prefs.length] = "extensions.asf.viewdloptionType";
+		ASF_prefs[ASF_prefs.length] = "extensions.asf.viewpathselect";
+		
+		
+		// ASF version 1.0.2bRev86
+		// can also use concat to fuse arrays.
+		additionnal_prefs = ["extensions.asf.domainTestOrder"];
+		ASF_prefs = ASF_prefs.concat(additionnal_prefs);
+		
+		// ASF version 1.0.2bRev89
+		// add import/export feature
+		additionnal_prefs = ["extensions.asf.showExportButton", "extensions.asf.exportFolder"];
+		ASF_prefs = ASF_prefs.concat(additionnal_prefs);
+		
+		// just before the filters, put number of filters
+		ASF_prefs[ASF_prefs.length] = "extensions.asf.filtersNumber"; // number of shown Filters in the filter list (not the same as total filters stored in prefManager)
+		
+		//save the current formated preferences to data[]
+		var line = data.length;
+		for(var i=0; i<ASF_prefs.length; i++)
+		{
+			branch = ASF_prefs[i];
+			type = prefs.getPrefType(branch);
+			
+			if (type)
+			{
+				switch (type)
+				{
+					case 32 : type = "char"; value = this.prefManager.getComplexValue(branch, Components.interfaces.nsISupportsString).data; break;
+					case 64 : type = "int"; value = this.prefManager.getIntPref(branch); break;
+					case 128 : type = "bool"; value = this.prefManager.getBoolPref(branch); break;
+				}
+				data[line++] = branch+";"+type+"="+value;
+			}
+		}
+		
+		
+		// now save the filters
+		var filter_number = 0;
+		var filter_childs = 0;
+		var type = 0;
+		var value = "";
+		var branch = "";
+		while (1)
+		{
+			branch = "extensions.asf.filters"+filter_number+".";
+			filter_childs = prefs.getBranch(branch).getChildList("", {});
+			if(filter_childs.length)
+			{
+				for(var i=0; i<filter_childs.length; i++)
+				{
+					branch = "extensions.asf.filters"+filter_number+"."+filter_childs[i];
+					type = prefs.getPrefType(branch);
+					
+					if (type)
+					{
+						switch (type)
+						{
+							case 32 : type = "char"; value = this.prefManager.getComplexValue(branch, Components.interfaces.nsISupportsString).data; break;
+							case 64 : type = "int"; value = this.prefManager.getIntPref(branch); break;
+							case 128 : type = "bool"; value = this.prefManager.getBoolPref(branch); break;
+						}
+						data[line++] = branch+";"+type+"="+value;
+					}
+				}
+				filter_number++;
+			}
+			else
+			{
+				break;
+			}
+		}
+		this.write_file(data, exportFolder);
+	},
+
+
+	recover_filters: function() {
+		var prefs = Components.classes["@mozilla.org/preferences-service;1"].
+								getService(Components.interfaces.nsIPrefService);
+		
+		// check number of filters
+		var filter_number = 0;
+		var filter_childs = 0;
+		var branch = "";
+		while (1)
+		{
+			branch = "extensions.asf.filters"+filter_number+".";
+			filter_childs = prefs.getBranch(branch).getChildList("", {});
+			if(filter_childs.length)
+			{
+				filter_number++;
+			}
+			else
+			{
+				break;
+			}
+		}
+		
+		var before = this.prefManager.getIntPref("extensions.asf.filtersNumber");
+		var recovered = new Array;
+		recovered[0] = filter_number - before;
+		this.prefManager.setIntPref("extensions.asf.filtersNumber",filter_number);
+		
+		var optionTabSelected = document.getElementById("asf-optionstab").selected;
+		if (optionTabSelected) this.asf_selecttab("asf-tab-filters"); // go to filter tab to restore filters correctly
+		this.asf_loadFilters(); // reload all the pref from the prefManger
+		this.asf_treeSelected();
+		if (optionTabSelected) this.asf_selecttab("asf-tab-options"); // go back to previous tab
+		
+		// print xxxx filters recovered
+		var message = this.stringbundle.formatStringFromName("export.recoveredfilters", recovered, 1);
+		alert (message);
+	},
+
+
+	delete_filters: function(all) {
+		var prefs = Components.classes["@mozilla.org/preferences-service;1"].
+								getService(Components.interfaces.nsIPrefService);
+		
+		
+		// now save the filters
+		if(all) this.prefManager.setIntPref("extensions.asf.filtersNumber", 0);
+		var filter_number = this.prefManager.getIntPref("extensions.asf.filtersNumber");
+		var filter_childs = 0;
+		var branch = "";
+		while (1)
+		{
+			branch = "extensions.asf.filters"+filter_number+".";
+			filter_childs = prefs.getBranch(branch).getChildList("", {});
+			if(filter_childs.length)
+			{
+				prefs.deleteBranch(branch);
+				filter_number++;
+			}
+			else
+			{
+				break;
+			}
+		}
+		
+		var optionTabSelected = document.getElementById("asf-optionstab").selected;
+		if (optionTabSelected) this.asf_selecttab("asf-tab-filters"); // go to filter tab to restore filters correctly
+		this.asf_loadFilters(); // reload all the pref from the prefManger
+		this.asf_treeSelected();
+		if (optionTabSelected) this.asf_selecttab("asf-tab-options"); // go back to previous tab
+	},
+
+
+	reset_preferences: function() {
+		
+		// reload default value to preferences 
+		this.prefManager.setBoolPref("extensions.asf.lastdir", true);
+		this.prefManager.setBoolPref("extensions.asf.keeptemp", true);
+		this.prefManager.setBoolPref("extensions.asf.viewdloption", false);
+		this.prefManager.setIntPref("extensions.asf.viewdloptionType", 0);
+		this.prefManager.setBoolPref("extensions.asf.viewpathselect", false);
+		this.prefManager.setIntPref("extensions.asf.savetype", 0);
+		this.prefManager.setCharPref("extensions.asf.defaultfolder", "");
+		this.prefManager.setCharPref("extensions.asf.tempdomain", "");
+		// this.prefManager.setIntPref("extensions.asf.filtersNumber", 0); do not reset the number of active filters
+		this.prefManager.setCharPref("extensions.asf.lastpath", "");
+		this.prefManager.setBoolPref("extensions.asf.variablemode", false); 
+		// See http://developer.mozilla.org/En/Download_Manager_preferences   or    http://kb.mozillazine.org/About:config_entries
+		// it makes automatic saving to the right folder - 0= desktop, 1= system download dir, 2= user define
+		// does only affect the user if useDownloadDir = true  ---- if "always ask the destination folder" is selected in FF options, it has no effect on the user.
+		this.prefManager.setIntPref("browser.download.folderList", 2);
+		this.prefManager.setBoolPref("extensions.asf.dialogaccept", false);
+		this.prefManager.setBoolPref("extensions.asf.dialogacceptFiltered", false);
+		this.prefManager.setBoolPref("extensions.asf.dialogForceRadio", false);
+		this.prefManager.setCharPref("extensions.asf.dialogForceRadioTo", "save");
+		this.prefManager.setBoolPref("extensions.asf.userightclick", true);
+		this.prefManager.setBoolPref("extensions.asf.rightclicktimeout", true);
+		this.prefManager.setIntPref("browser.download.saveLinkAsFilenameTimeout", 0);
+		this.prefManager.setCharPref("extensions.asf.domainTestOrder", "1");
+		this.prefManager.setBoolPref("extensions.asf.regexp_caseinsensitive", true);
+		this.prefManager.setBoolPref("extensions.asf.pathlist_defaultforceontop", false);
+		this.prefManager.setBoolPref("extensions.asf.pathlist_alphasort", true);
+		this.prefManager.setCharPref("extensions.asf.rowmatchinghighlight", "color");
+		this.prefManager.setBoolPref("extensions.asf.dta_ASFtoDTA_isActive", false);
+		this.prefManager.setCharPref("extensions.asf.dta_sendMethod", "replace");
+		this.prefManager.setBoolPref("extensions.asf.autoCheckBetaUpdate", false);
+		this.prefManager.setCharPref("extensions.asf.exportFolder", "");
+		this.prefManager.setBoolPref("extensions.asf.showExportButton", false);
+		
+		this.asf_loadpref();  // reload the preferences
+		this.asf_toggleradio(); // set the radio choice to the right place
+		this.toggle_options(); // set the checkboxes disabled state
+		this.asf_variablemode();
+	},
+
+
+	read_file: function(folder) {
+	// thanks to TabMixPlus
+	/**
+	// string @folder = default opened folder (optional)
+	// File Input : File in UTF8 without BOM.
+	// Stream Output : Array, in unicode (each cell = 1 line from file)
+	*/
+		var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(Components.interfaces.nsIFilePicker);
+		var stream = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream);
+		var streamIO = Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance(Components.interfaces.nsIScriptableInputStream);
+		var convutf8 = Components.classes['@mozilla.org/intl/scriptableunicodeconverter'].createInstance(Components.interfaces.nsIScriptableUnicodeConverter);
+			convutf8.charset = "UTF-8";
+		
+		fp.init(window, null, fp.modeOpen);
+		fp.defaultExtension = "txt";
+		fp.appendFilters(fp.filterText | fp.filterAll);
+		
+		
+		// select the opened folder
+		if (folder != "undefined")
+		{
+			var current_folder_input = this.createValidDestination(folder);
+			if (current_folder_input !== false) fp.displayDirectory = current_folder_input;
+		}
+		
+		if (fp.show() != fp.returnCancel) 
+		{
+			stream.init(fp.file, 0x01, 0444, null);
+			streamIO.init(stream);
+			var input = streamIO.read(stream.available());
+			streamIO.close();
+			stream.close();
+			
+			input = convutf8.ConvertToUnicode(input);
+			
+			var linebreak = input.match(/(((\n+)|(\r+))+)/m)[1]; // first: whole match -- second: backref-1 -- etc..
+			return input.split(linebreak);
+		}
+		return null;
+	},
+
+
+	write_file: function(data, folder) {
+	// thanks to TabMixPlus
+	/**
+	// array @data = array in Unicode to convert to file line by line
+	// string @folder = opening folder (optional)
+	// Stream Output : file in UTF8 without BOM.
+	*/
+		var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(Components.interfaces.nsIFilePicker);
+		var stream = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);
+		var convutf8 = Components.classes['@mozilla.org/intl/scriptableunicodeconverter'].createInstance(Components.interfaces.nsIScriptableUnicodeConverter);
+		convutf8.charset = "UTF-8";
+		
+		
+		var objdate = new Date();
+		var year = objdate.getFullYear();
+		var month = ((objdate.getMonth()+1) <10) ? ("0" + (objdate.getMonth()+1)) : objdate.getMonth()+1;
+		var day = ((objdate.getDate()) <10) ? ("0" + (objdate.getDate())) : objdate.getDate();
+		fp.init(window, null, fp.modeSave);
+		fp.defaultExtension = "txt";
+		fp.defaultString = "ASFpref_"+year+"-"+month+"-"+day+".txt";
+		fp.appendFilters(fp.filterText | fp.filterAll);
+		
+		
+		// select the opened folder
+		if (folder != "undefined")
+		{
+			var current_folder_input = this.createValidDestination(folder);
+			if (current_folder_input !== false) fp.displayDirectory = current_folder_input;
+		}
+		
+		if (fp.show() != fp.returnCancel)
+		{
+			if (fp.file.exists()) fp.file.remove(true);
+			fp.file.create(fp.file.NORMAL_FILE_TYPE, 0666);
+			stream.init(fp.file, 0x02, 0x200, null);
+			
+			for (var i = 0; i < data.length ; i++) 
+			{
+				try
+				{
+					data[i] = convutf8.ConvertFromUnicode(data[i]);
+					
+					data[i]=data[i]+"\r\n";
+					stream.write(data[i], data[i].length);
+				}
+				catch(e)
+				{
+					alert (e)
+				}
+			}
+			stream.close();
+		}
+	},
+
+
 	DownloadSort_isEnabled: function() {
 		// Check for Download sort add-on, if enabled return true. 
 		
@@ -1107,6 +1648,9 @@ var automatic_save_folder = {
 		var default_folder = document.getElementById("asf-default-folder").value;
 		this.saveUnicodeString("extensions.asf.defaultfolder", default_folder);	
 		
+		//save the default import/export folder (options/data management tab)
+		var exportFolder = document.getElementById("asf-exportFolder").value;
+		this.saveUnicodeString("extensions.asf.exportFolder", exportFolder);	
 		
 		// bug from both instantApply and non instantApply, when changing checked state with javascript the state is not saved
 		// so for all the sub-option, let's save manually :
diff --git a/content/asf_right_click.js b/content/asf_right_click.js
index 9258afa..4bcb1da 100644
--- a/content/asf_right_click.js
+++ b/content/asf_right_click.js
@@ -32,26 +32,24 @@ var automatic_save_folder = {
 	firefoxversion : "",
 	logtoconsole: true,
 	inPrivateBrowsing: false,
+	importantVersionAlert: "1.0.0", // currently not used
 	result: "", // print_r result
-		
+	previousASFVersion: "",
+	currentASFVersion : "",
+	
 	rightclick_init: function() {
 		if (!asf_rightclick_loaded) 
 		{
 			asf_rightclick_loaded = true;
+			this.checkFirefoxVersion();
 			
+			this.checkASFVersion();
 			
-			// update changes from asf<=1.0.2r85 to ASF>=1.0.2rev86
-			if(this.prefManager.getPrefType("extensions.asf.usecurrenturl") == 128) // Bool
-			{
-				if (this.prefManager.getBoolPref("extensions.asf.usecurrenturl"))
-				{
-					this.prefManager.setCharPref("extensions.asf.domainTestOrder", "1,5"); // convert usecurrentURL=true to 1,5
-				}
-				this.prefManager.deleteBranch("extensions.asf.usecurrenturl"); // remove old preference
-			}
+			// After installation or upgrade, show a message if needed.
+			this.show_update_message();
 			
-			
-			this.checkFirefoxVersion();
+			// check and modify preferences structure if needed 
+			this.preference_structure_changes();
 			
 			// Right-click feature doesn't work on Firefox 2 (Can't detect installed add-on and prevent conflict with Download Sort)
 			if (this.firefoxversion >= 3)
@@ -850,10 +848,99 @@ var automatic_save_folder = {
                                  .getService(Components.interfaces.nsIConsoleService);
 		consoleService.logStringMessage("Automatic Save Folder : \n" + aMessage);
 	},
+	
+	
+	checkASFVersion: function() {
+	
+		if(this.prefManager.getPrefType("extensions.asf.version") == 0) // not present
+		{
+			this.prefManager.setCharPref("extensions.asf.version", "1.0.0")
+		}
+		
+		this.previousASFVersion = this.prefManager.getCharPref("extensions.asf.version");
+		
+		// Read currently installed ASF version, including beta revisions
+		// workaround for Firefox4 new asynchronous addonManager (can't depend on addon.version anymore,
+		// so for all versions of Firefox, read the data directly from the dtd source file.
+		var XhrObj = new XMLHttpRequest();
+		XhrObj.open("GET", "chrome://asf/content/common.dtd", false); //synchronous mode
+		XhrObj.overrideMimeType('text/plain; charset=UTF-8');
+		XhrObj.send(null);
+		if (XhrObj.status == 0)
+		{
+			var dtd = XhrObj.responseText.split("\n") ;
+			this.currentASFVersion = dtd[1].match(/"(.*)"/)[1];
+		}
+	},
+	
+	
+	show_update_message: function() {
+		
+		var show_update_message = false;
+		var	messageType = "update";
+		var previous_version = this.previousASFVersion;	
+		
+		// show the update message in a new tab on important notices
+		var notice_version = this.importantVersionAlert; // latest important release, needing a notice
+		if(this.versionChecker.compare(notice_version, previous_version) > 0)  // if an important version occured since the last installed version
+		{
+			show_update_message = true;
+		}
+		
+		// show the update message in a new tab on first install
+		if(previous_version == "1.0.0" && this.prefManager.getPrefType("extensions.asf.filters0.active") == 0) // first install, no filter set
+		{
+			show_update_message = true;
+			messageType = "install";
+		}
+		
+		if (show_update_message)
+		{
+			var gBrowser = Components.classes["@mozilla.org/appshell/window-mediator;1"]
+					 .getService(Components.interfaces.nsIWindowMediator).getMostRecentWindow("navigator:browser").getBrowser();
+			setTimeout(function(messageType)
+			{
+				gBrowser.selectedTab = gBrowser.addTab("chrome://asf/content/help/"+messageType+".xhtml");
+			},
+			500,
+			messageType);
+		}
+	},
+	
+	
+	preference_structure_changes: function(version) {
+		
+		if (this.versionChecker.compare(this.previousASFVersion, "1.0.2bRev86") == -1) this.upgrade("1.0.2bRev86"); // convert currenturl to 1,5
+		// write the current version as old to prevent showing the updateMessage again
+		this.previousASFVersion = this.currentASFVersion;
+		this.prefManager.setCharPref("extensions.asf.version", this.currentASFVersion);
+	
+	},
+	
+	
+	upgrade: function(version) {
+		switch(version)
+		{
+			case "1.0.2bRev86": // convert extensions.asf.usecurrentURL=true to extensions.asf.domainTestOrder=1,5
+				
+				if(this.prefManager.getPrefType("extensions.asf.usecurrenturl") == 128) // Bool=128
+				{
+					if (this.prefManager.getBoolPref("extensions.asf.usecurrenturl"))
+					{
+						this.prefManager.setCharPref("extensions.asf.domainTestOrder", "1,5"); 
+					}
+					this.prefManager.deleteBranch("extensions.asf.usecurrenturl"); // remove old preference
+				}
+			break;
+			
+		}
+	},
+	
+	
 }
 	
 	addEventListener( // Autoload
-	"load",			// After OnLoad from overlay_unknownContentType.xul file
+	"load",			// After browser window is loaded
 	function(){ automatic_save_folder.rightclick_init(); },  // Run main from automatic_save_folder to check the filters
 	false
 	);
\ No newline at end of file
diff --git a/content/common.dtd b/content/common.dtd
index b3c2388..d92fc1c 100644
--- a/content/common.dtd
+++ b/content/common.dtd
@@ -1,5 +1,5 @@
 <!-- Current version -->
-<!ENTITY asf.version "1.0.2bRev88">
+<!ENTITY asf.version "1.0.2bRev89">
 
 <!ENTITY about.translators "
 - en-US : Cyan, Narayan<br />
diff --git a/content/help/help.xhtml b/content/help/help.xhtml
index 469c13a..3184dfc 100644
--- a/content/help/help.xhtml
+++ b/content/help/help.xhtml
@@ -14,21 +14,6 @@
     ***** END LICENSE BLOCK ***** -->
 <body style="background-color:#FFFFFF;">
 
-<h3>&info.important.title;</h3>
-<p>
-	&info.important.text1;<br />
-	<br/><img src="chrome://asf/skin/&info.important.pict1;" />
-	<br />&info.important.text2;
-</p>
-<ol>
-	<li>&info.important.text3;</li>
-	<li>&info.important.text4;</li>
-	<li>&info.important.text5;</li>
-</ol><img src="chrome://asf/skin/&info.important.pict2;" />
-<br />
-<br />
-<br />
-<br />
 
 <h3>&info.howtouse.title;</h3>
 
diff --git a/content/help/install.xhtml b/content/help/install.xhtml
new file mode 100644
index 0000000..7631d7f
--- /dev/null
+++ b/content/help/install.xhtml
@@ -0,0 +1,185 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+  "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" [
+<!ENTITY % helpDTD SYSTEM "chrome://asf/locale/help.dtd" >
+%helpDTD;
+]>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<!-- ***** BEGIN LICENSE BLOCK *****
+	Copyright 2007-2010 Éric Cassar (Cyan)
+
+    This file is part of "Automatic Save Folder".
+    You may find the license in the LICENSE file
+
+    ***** END LICENSE BLOCK ***** -->
+<header>
+	<title>Automatic Save Folder</title>
+	<link rel="stylesheet" media="screen" type="text/css" title="main_style" href="chrome://asf/skin/help_page/style.css" />
+</header>
+<body style="background-color:#FFFFFF;">
+    <div id="header">
+        <table class="" cellpadding="0" cellspacing="0" width="100%">
+            <tr>
+                <td valign="bottom" id="header_main">
+                    <div>
+                        <table cellpadding="0" cellspacing="0">
+
+                            <tr>
+                                <td>
+                                    <div> 
+									    <a id="asf_logo_link" href="http://asf.mangaheart.org/"><img id="asf_logo_img" src="chrome://asf/skin/help_page/asf-icon.png" style="border-width:0px;" alt="ASF"/></a>
+                                    </div>
+                                </td>
+								<td>
+                                    <div>
+										<h1 id="asf_title"><a href="http://asf.mangaheart.org/">Automatic Save Folder</a></h1>
+
+                                    </div>
+                                </td>
+                            </tr>
+                        </table>
+                    </div>    
+                </td>
+                <td valign="top" id="header_menu">
+                    <table>
+						<tr>
+
+							<td>
+								<div>
+									<img src="chrome://asf/skin/help_page/mozilla_default_icon.png"  alt="Add-on"/>
+									<img src="chrome://asf/skin/help_page/firefox_default_icon.png"  alt="Firefox"/>
+								</div>
+							</td>
+							<td>
+						        <div>
+									<a href="http://mozilla.org/firefox/">Mozilla.org</a>
+
+						            <span>|</span>
+									<a href="http://addons.mozilla.org/addon/4781/">ASF</a>
+						            <span>|</span>
+									<a href="mailto:cyan at mangaheart.org">Contact</a>
+						            <span>|</span>
+						        </div>
+							</td>
+						</tr>
+
+					</table>
+                </td>
+            </tr>
+
+        </table>
+
+   </div>
+
+	<div id="tab_menu">
+		<table class="" cellpadding="0" cellspacing="0" width="100%">
+			<tr>
+				<td class="tab_sub">
+				 
+				</td>
+			</tr>
+		</table>
+	</div>
+	<div id="main_page">
+<br />	
+<table class="cadre-arrondi" style="margin-left:50px;">
+	<tr>
+		<td>
+			<h2>&firstinstall.welcome_message;</h2>
+		</td>
+	</tr>
+</table>
+
+<h2>○ &firstinstall.title.firstinstall;</h2>
+
+<p>&firstinstall.steps;</p>
+<br />
+<h4>&firstinstall.step1;</h4>
+<table class="cadre-arrondi" style="margin-left:50px;">
+	<tr>
+		<td style="width:500px;padding-right:50px;">
+
+			&firstinstall.firefox.text1;<br />
+			<img src="chrome://asf/skin/help_page/&firstinstall.firefox.pict1;" /><br/>
+			
+		</td>
+		<td style="width:600px;">&firstinstall.firefox.text2;
+			<ol>
+				<li>&firstinstall.firefox.text3;</li>
+				<li>&firstinstall.firefox.text4;</li>
+				<li>&firstinstall.firefox.text5;</li>
+			</ol><img src="chrome://asf/skin/help_page/&firstinstall.firefox.pict2;" />
+		</td>
+
+	</tr>
+</table>
+<br />
+<table class="cadre-arrondi" style="margin-left:50px;">
+	<tr>
+		<td>
+			&firstinstall.firefox.text6;<br />
+			<img src="chrome://asf/skin/help_page/&firstinstall.firefox.pict3;" />
+		</td>
+
+	</tr>
+</table>
+
+<h4>&firstinstall.step2;</h4>
+<p>
+	
+</p>
+<table class="cadre-arrondi" style="margin-left:50px;">
+	<tr>
+		<td>
+			&firstinstall.asf.text1;<br />
+			<img src="chrome://asf/skin/help_page/&firstinstall.asf.pict1;" alt="" />
+		</td>
+	</tr>
+</table>
+<p>
+<br />
+
+</p>
+	<table class="cadre-arrondi" style="margin-left:50px;">
+	<tr>
+		<td>
+			&firstinstall.asf.text2;
+		</td>
+
+	</tr>
+</table>
+<br/>
+<br/>
+<h4>&firstinstall.step3;</h4>
+
+	<table class="cadre-arrondi" style="margin-left:50px;">
+	<tr>
+		<td>&firstinstall.save.text1;<br />
+			<img src="chrome://asf/skin/help_page/&firstinstall.save.pict1;" alt="" />
+		</td>
+
+	</tr>
+</table>
+
+<br />
+<br />
+<br />
+<br />	
+&firstinstall.moreinfo.text1;
+<br />
+<br />
+&firstinstall.moreinfo.text2;
+<br />
+<a href="http://asf.mangaheart.org">http://asf.mangaheart.org</a>
+<br />
+
+	</div>
+	<div id="footer">
+		<hr/>
+
+		<p style="text-align:center;">
+				Automatic Save folder is Copyright 2007-2010 by <a href="mailto:cyan at mangaheart.org">Cyan</a>, licensed under GNU GPL Version 2<br />
+		</p>
+	</div>
+</body>
+</html>
diff --git a/content/help/update.xhtml b/content/help/update.xhtml
new file mode 100644
index 0000000..02501a4
--- /dev/null
+++ b/content/help/update.xhtml
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+  "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" [
+<!ENTITY % helpDTD SYSTEM "chrome://asf/locale/help.dtd" >
+%helpDTD;
+]>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<!-- ***** BEGIN LICENSE BLOCK *****
+	Copyright 2007-2010 Éric Cassar (Cyan)
+
+    This file is part of "Automatic Save Folder".
+    You may find the license in the LICENSE file
+
+    ***** END LICENSE BLOCK ***** -->
+<header>
+	<title>Automatic Save Folder</title>
+	<link rel="stylesheet" media="screen" type="text/css" title="main_style" href="chrome://asf/skin/help_page/style.css" />
+</header>
+<body style="background-color:#FFFFFF;">
+    <div id="header">
+        <table class="" cellpadding="0" cellspacing="0" width="100%">
+            <tr>
+                <td valign="bottom" id="header_main">
+                    <div>
+                        <table cellpadding="0" cellspacing="0">
+
+                            <tr>
+                                <td>
+                                    <div> 
+									    <a id="asf_logo_link" href="http://asf.mangaheart.org/"><img id="asf_logo_img" src="chrome://asf/skin/help_page/asf-icon.png" style="border-width:0px;" alt="ASF"/></a>
+                                    </div>
+                                </td>
+								<td>
+                                    <div>
+										<h1 id="asf_title"><a href="http://asf.mangaheart.org/">Automatic Save Folder</a></h1>
+
+                                    </div>
+                                </td>
+                            </tr>
+                        </table>
+                    </div>    
+                </td>
+                <td valign="top" id="header_menu">
+                    <table>
+						<tr>
+
+							<td>
+								<div>
+									<img src="chrome://asf/skin/help_page/mozilla_default_icon.png"  alt="Add-on"/>
+									<img src="chrome://asf/skin/help_page/firefox_default_icon.png"  alt="Firefox"/>
+								</div>
+							</td>
+							<td>
+						        <div>
+									<a href="http://mozilla.org/firefox/">Mozilla.org</a>
+
+						            <span>|</span>
+									<a href="http://addons.mozilla.org/addon/4781/">ASF</a>
+						            <span>|</span>
+									<a href="mailto:cyan at mangaheart.org">Contact</a>
+						            <span>|</span>
+						        </div>
+							</td>
+						</tr>
+
+					</table>
+                </td>
+            </tr>
+
+        </table>
+
+   </div>
+
+	<div id="tab_menu">
+		<table class="" cellpadding="0" cellspacing="0" width="100%">
+			<tr>
+				<td class="tab_sub">
+				 
+				</td>
+			</tr>
+		</table>
+	</div>
+	<div id="main_page">
+<br />	
+<table class="cadre-arrondi" style="margin-left:50px;">
+	<tr>
+		<td>
+			<h2>&firstinstall.welcome_message;</h2>
+		</td>
+	</tr>
+</table>
+
+<h2>○ &firstinstall.title.importantupdates;</h2>
+<p>
+	<strong> &version; 1.0.2 :</strong><br />
+	<ul>
+		<li>&importantupdates.102.1;</li>
+		<li>&importantupdates.102.2;</li>
+		<li>&importantupdates.102.3;</li>
+		<li>&importantupdates.102.4;</li>
+	</ul>
+</p>
+<p>
+	&firstinstall.fullupdatelist;
+	<br />
+	<br />
+</p>
+
+
+<h2>○ &firstinstall.title.firstinstall;</h2>
+
+<p>&firstinstall.steps;</p>
+<br />
+<h4>&firstinstall.step1;</h4>
+<table class="cadre-arrondi" style="margin-left:50px;">
+	<tr>
+		<td style="width:500px;padding-right:50px;">
+
+			&firstinstall.firefox.text1;<br />
+			<img src="chrome://asf/skin/help_page/&firstinstall.firefox.pict1;" /><br/>
+			
+		</td>
+		<td style="width:600px;">&firstinstall.firefox.text2;
+			<ol>
+				<li>&firstinstall.firefox.text3;</li>
+				<li>&firstinstall.firefox.text4;</li>
+				<li>&firstinstall.firefox.text5;</li>
+			</ol><img src="chrome://asf/skin/help_page/&firstinstall.firefox.pict2;" />
+		</td>
+
+	</tr>
+</table>
+<br />
+<table class="cadre-arrondi" style="margin-left:50px;">
+	<tr>
+		<td>
+			&firstinstall.firefox.text6;<br />
+			<img src="chrome://asf/skin/help_page/&firstinstall.firefox.pict3;" />
+		</td>
+
+	</tr>
+</table>
+
+<h4>&firstinstall.step2;</h4>
+<p>
+	
+</p>
+<table class="cadre-arrondi" style="margin-left:50px;">
+	<tr>
+		<td>
+			&firstinstall.asf.text1;<br />
+			<img src="chrome://asf/skin/help_page/&firstinstall.asf.pict1;" alt="" />
+		</td>
+	</tr>
+</table>
+<p>
+<br />
+
+</p>
+	<table class="cadre-arrondi" style="margin-left:50px;">
+	<tr>
+		<td>
+			&firstinstall.asf.text2;
+		</td>
+
+	</tr>
+</table>
+<br/>
+<br/>
+<h4>&firstinstall.step3;</h4>
+
+	<table class="cadre-arrondi" style="margin-left:50px;">
+	<tr>
+		<td>&firstinstall.save.text1;<br />
+			<img src="chrome://asf/skin/help_page/&firstinstall.save.pict1;" alt="" />
+		</td>
+
+	</tr>
+</table>
+
+<br />
+<br />
+<br />
+<br />	
+&firstinstall.moreinfo.text1;
+<br />
+<br />
+&firstinstall.moreinfo.text2;
+<br />
+<a href="http://asf.mangaheart.org">http://asf.mangaheart.org</a>
+<br />
+
+	</div>
+	<div id="footer">
+		<hr/>
+
+		<p style="text-align:center;">
+				Automatic Save folder is Copyright 2007-2010 by <a href="mailto:cyan at mangaheart.org">Cyan</a>, licensed under GNU GPL Version 2<br />
+		</p>
+	</div>
+</body>
+</html>
diff --git a/content/options.xul b/content/options.xul
index a4045ae..97d58e1 100644
--- a/content/options.xul
+++ b/content/options.xul
@@ -52,6 +52,7 @@
 		<preference id="asf_dta_ASFtoDTA_isActive" name="extensions.asf.dta_ASFtoDTA_isActive" type="bool"/>
 		<preference id="asf_dta_sendMethod" name="extensions.asf.dta_sendMethod" type="string"/>
 		<preference id="asf_autoCheckBetaUpdate" name="extensions.asf.autoCheckBetaUpdate" type="bool"/>
+		<preference id="asf_showExportButton" name="extensions.asf.showExportButton" type="bool"/>
 	</preferences>
 	<menupopup id="contextpopup">
 		<menuitem label="&asf.top.popup;" oncommand="automatic_save_folder.move('top');"/>
@@ -59,6 +60,24 @@
 		<menuitem label="&asf.delete.popup;" oncommand="automatic_save_folder.asf_delete();"/>
 		<menuitem label="&asf.bottom.popup;" oncommand="automatic_save_folder.move('bottom');"/>
 	</menupopup>
+	<menupopup id="asf-importexport-popup" position="before_start">
+		<menuitem id="asf-importexport-export" label="&asf.export.button.export.label;" oncommand="automatic_save_folder.preferences_export();"/>
+		<menu label="&asf.export.button.import.label;">
+			<menupopup>
+				<menuitem id="asf-importexport-importall" label="&asf.export.button.importall.label;" oncommand="automatic_save_folder.preferences_import('all');"/>
+				<menuitem id="asf-importexport-importprefs" label="&asf.export.button.importprefs.label;" oncommand="automatic_save_folder.preferences_import('preferences');"/>
+				<menuitem id="asf-importexport-importfilters" label="&asf.export.button.importfilters.label;" oncommand="automatic_save_folder.preferences_import('filters');"/>
+				<menuitem id="asf-importexport-recoverfilters" label="&asf.export.button.recoverfilters.label;" oncommand="automatic_save_folder.recover_filters();"/>
+			</menupopup>
+		</menu>
+		<menu label="&asf.export.button.delete.label;">
+			<menupopup>
+				<menuitem id="asf-importexport-deleteallfilters" label="&asf.export.button.deleteallfilters.label;" oncommand="automatic_save_folder.delete_filters(true);"/>
+				<menuitem id="asf-importexport-deleteunusedfilters" label="&asf.export.button.deleteunusedfilters.label;" oncommand="automatic_save_folder.delete_filters(false);"/>
+				<menuitem id="asf-importexport-deleteuserprefs" label="&asf.export.button.deleteuserprefs.label;"  oncommand="automatic_save_folder.reset_preferences();"/>
+			</menupopup>
+		</menu>
+	</menupopup>
 	<tooltip id="tooltip_folderList"     label="&asf.folderList.tooltip;"     noautohide="true" />
 	<tooltip id="tooltip_viewdloption"   label="&asf.viewdloption.tooltip;"   noautohide="true" />
 	<tooltip id="tooltip_viewpathselect" label="&asf.viewpathselect.tooltip;" noautohide="true" />
@@ -103,17 +122,21 @@
 					<treecols >
 						<treecol id="asf-column-Domain" label="&asf.tree.column.domain;" flex="1" persist="width ordinal hidden"/>
 						<splitter class="tree-splitter"/>
-						<treecol id="asf-column-filename" label="&asf.tree.column.filename;" flex="1" persist="width ordinal hidden"/>
+						<treecol id="asf-column-Filename" label="&asf.tree.column.filename;" flex="1" persist="width ordinal hidden"/>
 						<splitter class="tree-splitter"/>
 						<treecol id="asf-column-LocalFolder" label="&asf.tree.column.localfolder;" flex="1" persist="width ordinal hidden"/>
 						<splitter class="tree-splitter"/>
 						<treecol id="asf-column-Enabled" label="&asf.tree.column.enabled;" flex="0" persist="width ordinal hidden" type="checkbox" editable="true" hidden="true" />
+						<splitter class="tree-splitter"/>
+						<treecol id="asf-column-Domainregexp" label="&asf.tree.column.domain;" flex="0" persist="width ordinal hidden" type="checkbox" editable="false" hidden="true" ignoreincolumnpicker="true"/>
+						<splitter class="tree-splitter"/>
+						<treecol id="asf-column-Filenameregexp" label="&asf.tree.column.filename;" flex="0" persist="width ordinal hidden" type="checkbox" editable="false" hidden="true" ignoreincolumnpicker="true"/>
 					</treecols>
 					<treechildren 
-					ondragstart="automatic_save_folder.dragstart(event)"
-					ondragover="automatic_save_folder.dragover(event)"
-					ondrop="automatic_save_folder.dragdrop(event)"
-					onclick="automatic_save_folder.save_active_state()"
+					ondragstart="automatic_save_folder.dragstart(event);"
+					ondragover="automatic_save_folder.dragover(event);"
+					ondrop="automatic_save_folder.dragdrop(event);"
+					onclick="automatic_save_folder.save_active_state();"
 					id="asf-filterChilds" context="contextpopup" ondblclick="event.preventDefault();window.openDialog('chrome://asf/content/edit.xul','asf_addedit','chrome, centerscreen, resizable=no, dialog=no, modal=yes');"/>
 				</tree>
 				<vbox>
@@ -122,6 +145,8 @@
 					<button id="asf-edit" label="&asf.options.edit;" oncommand="window.openDialog('chrome://asf/content/edit.xul','asf_addedit','chrome, centerscreen, resizable=no, dialog=no, modal=yes');"/>
 					<button id="asf-delete" label="&asf.options.delete;" oncommand="automatic_save_folder.asf_delete()"/>
 					<button id="asf-move-down" label="&asf.options.move.down;" oncommand="automatic_save_folder.move('down')"/>
+					<spacer flex="1"/>
+					<button id="asf-filter-export" label="&asf.export.button.label;" popup="asf-importexport-popup" hidden="true"/>
 				</vbox>
 			</hbox>
 		</groupbox>
@@ -129,13 +154,12 @@
 			<caption label="&asf.default.label;"/>
 			<radiogroup id="radio-savetype" align="left" preference="asf_savetype">
 				<radio id="asf-last-radio" value="0" label="&asf.lastselected.label;" oncommand="automatic_save_folder.asf_toggleradio()"/>
-				<hbox>	
+				<hbox>
 					<radio id="asf-choose-radio" value="1" label="&asf.defaultfolder.label;" oncommand="automatic_save_folder.asf_toggleradio()"/>
-					<textbox id="asf-default-folder" width="350" ondblclick="automatic_save_folder.browsedir()"/>
-					<button id="asf-select-folder" label="&asf.selectfolder.label;" oncommand="automatic_save_folder.browsedir()"/>
-				</hbox>
-				<hbox pack="end"><description value="  " /><checkbox id="asf-keeptemp-check" preference="asf_keeptemp" label="&asf.keeptemp.label;"/>
+					<textbox id="asf-default-folder" width="350" ondblclick="automatic_save_folder.browsedir('asf-default-folder')"/>
+					<button id="asf-select-folder" label="&asf.selectfolder.label;" oncommand="automatic_save_folder.browsedir('asf-default-folder')"/>
 				</hbox>
+				<checkbox id="asf-keeptemp-check" preference="asf_keeptemp" label="&asf.keeptemp.label;" style="margin-left:25px;"/>
 			</radiogroup>
 		</groupbox>
 		<groupbox hidden="true">
@@ -158,6 +182,7 @@
 					<tab id="asf-optionssubtab-page1" label="&asf.options.tab1.label;"  />
 					<tab id="asf-optionssubtab-page2" label="&asf.options.tab2.label;"  />
 					<tab id="asf-optionssubtab-dta"   label="&asf.options.tabdta.label;" hidden="true" />
+					<tab id="asf-optionsdatamanager"  label="&asf.options.tabdata.label;" hidden="false" />
 				</tabs>
 				<tabpanels>
 					<tabpanel flex="1">
@@ -200,24 +225,20 @@
 										</menupopup>
 									</menulist>
 								</hbox>
-								<checkbox id="asf-viewpathselect" preference="asf_viewpathselect"  label="&asf.viewpathselect.bool;" tooltip="tooltip_viewpathselect" style="margin-left:25px;white-space:pre-wrap"/>
+								<checkbox id="asf-viewpathselect" preference="asf_viewpathselect"  label="&asf.viewpathselect.bool;" tooltip="tooltip_viewpathselect"/>
 							</groupbox>
-							<groupbox><caption label="&asf.option.groupbox.checkUpdate.label;" />
-								<hbox>
-									<button id="asf-checkBetaUpdate" label="&asf.checkBetaUpdate.button;" oncommand="automatic_save_folder.checkBetaVersion();"/>
-									<description id="asf-betaVersionAvailable" hidden="true">&asf.betaVersionAvailable.label;</description>
-									<description id="asf-betaVersionNotAvailable" hidden="true">&asf.betaVersionNotAvailable.label;</description>
-									<label id="asf-version" href="http://asf.mangaheart.org/?menu=2&sub=2" class="text-link" hidden="true" value="&asf.version;" />
-									<label id="asf-betaVersionUpdateNow" class="text-link" hidden="true" value="&asf.betaVersionUpdateNow.label;" onclick="automatic_save_folder.updateASF();"/>
-								</hbox>
-								<checkbox id="asf-autoCheckBetaUpdate" preference="asf_autoCheckBetaUpdate" label="&asf.autoCheckBetaUpdate.bool;" />
+							<groupbox><caption label="&asf.options.groupbox4.label;" />
+								<checkbox id="asf-userightclick" preference="asf_userightclick" label="&asf.userightclick.bool;" tooltip="tooltip_userightclick" oncommand="automatic_save_folder.toggle_userightclick();"/>
+								<checkbox id="asf-rightclicktimeout" preference="asf_rightclicktimeout" label="&asf.rightclicktimeout.bool;" tooltip="tooltip_rightclicktimeout" style="margin-left:25px;" oncommand="automatic_save_folder.toggle_rightclicktimeout();"/>
+								<description id="asf-rightclickdesc-DSort" style="margin-left:25px;white-space:pre-wrap;color:red;">&asf.rightclick.DSort.label;</description>
+								<description id="asf-rightclickdesc-ff2" style="margin-left:25px;white-space:pre-wrap;color:red;">&asf.rightclick.ff2.label;</description>
 							</groupbox>
 						</vbox>
 					</tabpanel>
 					<tabpanel>
 						<vbox id="asf-options-tab2" flex="1">
 							<groupbox><caption label="&asf.options.groupbox3.label;" />
-								<checkbox id="asf-lasdir" preference="asf_lastdir" label="&asf.lastdir.bool;"/>
+								<checkbox id="asf-lastdir" preference="asf_lastdir" label="&asf.lastdir.bool;"/>
 								<hbox>
 									<label>&asf.domainTestOrder.label1;</label>
 									<textbox id="asf-domainTestOrder" preference="asf_domainTestOrder" size="10"/>
@@ -225,13 +246,7 @@
 								</hbox>
 								<checkbox id="asf-regexp_caseinsensitive" preference="asf_regexp_caseinsensitive" label="&asf.regexp_caseinsensitive.bool;"/>
 							</groupbox>
-							<groupbox><caption label="&asf.options.groupbox4.label;" />							
-								<checkbox id="asf-userightclick" preference="asf_userightclick" label="&asf.userightclick.bool;" tooltip="tooltip_userightclick" oncommand="automatic_save_folder.toggle_userightclick();"/>
-								<checkbox id="asf-rightclicktimeout" preference="asf_rightclicktimeout" label="&asf.rightclicktimeout.bool;" tooltip="tooltip_rightclicktimeout" style="margin-left:25px;" oncommand="automatic_save_folder.toggle_rightclicktimeout();"/>
-								<description id="asf-rightclickdesc-DSort" style="margin-left:25px;white-space:pre-wrap;color:red;">&asf.rightclick.DSort.label;</description>
-								<description id="asf-rightclickdesc-ff2" style="margin-left:25px;white-space:pre-wrap;color:red;">&asf.rightclick.ff2.label;</description>
-							</groupbox>
-							<groupbox><caption label="&asf.options.groupbox5.label;" />							
+							<groupbox><caption label="&asf.options.groupbox5.label;" />
 								<checkbox id="asf-pathlist_defaultforceontop" preference="asf_pathlist_defaultforceontop" label="&asf.pathlist_defaultforceontop.bool;"/>
 								<checkbox id="asf-pathlist_alphasort" preference="asf_pathlist_alphasort" label="&asf.pathlist_alphasort.bool;"/>
 								<separator class="thin"/>
@@ -243,6 +258,16 @@
 										</hbox>
 									</radiogroup>
 							</groupbox>
+							<groupbox><caption label="&asf.option.groupbox.checkUpdate.label;" />
+								<hbox>
+									<button id="asf-checkBetaUpdate" label="&asf.checkBetaUpdate.button;" oncommand="automatic_save_folder.checkBetaVersion();"/>
+									<description id="asf-betaVersionAvailable" hidden="true">&asf.betaVersionAvailable.label;</description>
+									<description id="asf-betaVersionNotAvailable" hidden="true">&asf.betaVersionNotAvailable.label;</description>
+									<label id="asf-version" href="http://asf.mangaheart.org/?menu=2&sub=2" class="text-link" hidden="true" value="&asf.version;" />
+									<label id="asf-betaVersionUpdateNow" class="text-link" hidden="true" value="&asf.betaVersionUpdateNow.label;" onclick="automatic_save_folder.updateASF();"/>
+								</hbox>
+								<checkbox id="asf-autoCheckBetaUpdate" preference="asf_autoCheckBetaUpdate" label="&asf.autoCheckBetaUpdate.bool;" />
+							</groupbox>
 						</vbox>
 					</tabpanel>
 					<tabpanel>
@@ -261,6 +286,30 @@
 							</groupbox>
 						</vbox>
 					</tabpanel>
+					<tabpanel>
+						<vbox id="asf-options-tab4" flex="1">
+							<groupbox><caption label="&asf.options.groupbox.datamanagement.label;" />
+								<checkbox id="asf-options-export-notempdata" label="&asf.export.notemp.bool;"/>
+								<checkbox id="asf-options-export-forceimport" label="&asf.export.forceimport.bool;"/>
+								<description style="white-space:pre-wrap;">&asf.export.infonotsaved.label;</description>
+								<hbox>
+									<vbox>
+										<separator/>
+										<button id="asf-options-export" label="&asf.export.button.label;" popup="asf-importexport-popup"/>
+									</vbox>
+								</hbox>
+								<separator/>
+								<separator/>
+								<description>&asf.export.defaultfolder.label;</description>
+								<hbox>
+									<textbox id="asf-exportFolder" width="350" readonly="true" ondblclick="automatic_save_folder.browsedir('asf-exportFolder')"/>
+									<button id="asf-select-exportFolder" label="&asf.selectfolder.label;" oncommand="automatic_save_folder.browsedir('asf-exportFolder')"/>
+								</hbox>
+								<separator class="thin"/>
+								<checkbox id="asf-showExportButton" preference="asf_showExportButton" label="&asf.export.showbutton.bool;" oncommand="document.getElementById('asf-filter-export').hidden = !this.checked;"/>
+							</groupbox>
+						</vbox>
+					</tabpanel>
 				</tabpanels>
 			</tabbox>
 	</vbox>
diff --git a/defaults/preferences/asf.js b/defaults/preferences/asf.js
index 4be413b..5310720 100644
--- a/defaults/preferences/asf.js
+++ b/defaults/preferences/asf.js
@@ -26,6 +26,9 @@ pref("extensions.asf at mangaheart.org.description", "chrome://asf/locale/asf.prope
  pref("extensions.asf.regexp_caseinsensitive", true);
  pref("extensions.asf.pathlist_defaultforceontop", false);
  pref("extensions.asf.pathlist_alphasort", true);
+ pref("extensions.asf.rowmatchinghighlight", "color");
  pref("extensions.asf.dta_ASFtoDTA_isActive", false);
  pref("extensions.asf.dta_sendMethod", "replace");
  pref("extensions.asf.autoCheckBetaUpdate", false);
+ pref("extensions.asf.exportFolder", "");
+ pref("extensions.asf.showExportButton", false);
\ No newline at end of file
diff --git a/locale/en-US/about.dtd b/locale/en-US/about.dtd
index 55c9418..33b1d4f 100644
--- a/locale/en-US/about.dtd
+++ b/locale/en-US/about.dtd
@@ -29,12 +29,14 @@
 + New options related to Graphical User Interface.
 + Added a Drag&Drop Copy method (ie. drag+Ctrl on Windows).
 + Print filter's and process informations to the error console when downloading a file. (Disabled if Firefox is in PrivateBrowsing mode)
++ checking and update for beta versions. The internal update feature is working only on Firefox 4.
++ New menu to import and export preferences and filters.
++ A help page will now open after the first install and when there's important messages after an update.
 * It's now possible to choose which domain type are used for the filtering process, and personalize the verification order (domain only, full URL, from the file or the current tab).
 * %asf_f% now uses full filename with extension if no filter match.
 * %asf_d% now uses domain without the protocol if no filter match.
 ! Fixed a bug where checking the Regexp option when a filter ended by a slash didn't add a second slash.
 ! Fixed a bug where no data were returned if a download was initiated from the URL bar or from an external software which resulted in no filters in the filter's list if the preferences window was opened from the saving dialog "+ Add or edit a filter". (Thanks to MrCOLOMBO)
-! ASF now uses the full URL instead of the domain when falling back to current website URL if no filter is found, when using single click (Right-click already used full URL).">
 
 <!ENTITY about.version.101 "! Fixed a spelling error preventing ASF to work when no filter matched.
 ! Added a missing Russian string on the filter's tab.">
diff --git a/locale/en-US/asf.dtd b/locale/en-US/asf.dtd
index 4c7dde9..0f87c30 100644
--- a/locale/en-US/asf.dtd
+++ b/locale/en-US/asf.dtd
@@ -2,7 +2,7 @@
 <!-- Change the preferences window size to fit your localization. Default values : resize=false width=617 height=423, in pixels-->
 <!ENTITY asf.preferences_window.resize "true">
 <!ENTITY asf.preferences_window.width "580">
-<!ENTITY asf.preferences_window.height "423">
+<!ENTITY asf.preferences_window.height "446">
 
 <!-- new line, U+00A0 ISOnum -->
 <!ENTITY NL "
" >
@@ -43,7 +43,8 @@
 <!ENTITY asf.options.label "Options">
 <!ENTITY asf.options.tab1.label "Page 1">
 <!ENTITY asf.options.tab2.label "Page 2">
-<!ENTITY asf.options.tabdta.label "DownThemAll">
+<!ENTITY asf.options.tabdta.label "DownThemAll!">
+<!ENTITY asf.options.tabdata.label "Data management">
 
 <!ENTITY asf.options.groupbox1.label "File Explorer">
 <!ENTITY asf.useDownloadDir.bool "Do not show the file explorer, and automatically save to:">
@@ -110,12 +111,30 @@
 <!ENTITY asf.rowmatchinghighlight.system "System color">
 
 <!ENTITY asf.options.groupbox6.label "DownThemAll!">
-<!ENTITY asf.options.dtaDetected.label "Automatic Save Folder has detected that you are using DownThemAll! &NL;add-on. Automatic Save Folder can send the filtered destination path to DownThemAll when using the "What should firefox do with this file" saving window. This option is disabled when using the Private Browsing mode.">
-<!ENTITY asf.dta_ASFtoDTA_isActive.bool "Enable Automatic Save Folder to send the filtered path to DownThemAll.">
+<!ENTITY asf.options.dtaDetected.label "Automatic Save Folder has detected that you are using DownThemAll! add-on.&NL;Automatic Save Folder can send the filtered destination path to DownThemAll! when using the "What should firefox do with this file" saving window.&NL;&NL;Note: This option is disabled when using the Private Browsing mode.">
+<!ENTITY asf.dta_ASFtoDTA_isActive.bool "Enable Automatic Save Folder to send the filtered path to DownThemAll!.">
 <!ENTITY asf.dta_chooseSendingMethod.label "Choose the sending method for DTA OneClick!:">
 <!ENTITY asf.dta_methodReplace.label "Replace first folder in list">
 <!ENTITY asf.dta_methodAdd.label "Add to list">
 
+<!ENTITY asf.options.groupbox.datamanagement.label "Data management">
+<!ENTITY asf.export.notemp.bool "Ne pas importer les données temporaires, comme le dernier domaine de provenance ou le dernier chemin d'enregistrement.">
+<!ENTITY asf.export.forceimport.bool "Forcer l'importation même si la version n'est pas compatible. Attention : Exportez et conservez d'abord vos données actuelles par sécurité.">
+<!ENTITY asf.export.infonotsaved.label "Note : Ces deux options ne sont pas mémorisées pour éviter des erreurs d'importation.">
+<!ENTITY asf.export.button.label "Settings">
+<!ENTITY asf.export.button.export.label "Export">
+<!ENTITY asf.export.button.import.label "Import">
+<!ENTITY asf.export.button.importall.label "Import all data">
+<!ENTITY asf.export.button.importprefs.label "Import only preferences">
+<!ENTITY asf.export.button.importfilters.label "Import only filters">
+<!ENTITY asf.export.button.recoverfilters.label "Recover unused filters from database">
+<!ENTITY asf.export.button.delete.label "Delete">
+<!ENTITY asf.export.button.deleteallfilters.label "Delete all filters">
+<!ENTITY asf.export.button.deleteunusedfilters.label "Delete unused filters from database">
+<!ENTITY asf.export.button.deleteuserprefs.label "Restore preferences to default values">
+<!ENTITY asf.export.defaultfolder.label "Default folder for exported data (optional):">
+<!ENTITY asf.export.showbutton.bool "Add a data management button on the filter's tab.">
+
 <!-- Dynamics tab-->
 <!ENTITY asf.dynamics.label "Dynamic folders">
 <!ENTITY asf.variablemode.bool "Enable">
diff --git a/locale/en-US/asf.properties b/locale/en-US/asf.properties
index 07f8c26..8ba80fd 100644
--- a/locale/en-US/asf.properties
+++ b/locale/en-US/asf.properties
@@ -44,4 +44,8 @@ nodata.domain=The domain is empty. Please choose 'All' or enter a filter for the
 nodata.filename=The filename is empty. Please choose 'All' or enter a filter for the filename.
 nodata.folder=The folder is empty. Please select the destination folder for this filter.
 checkForUpdates.updateAvailable=Update notification\nAutomatic Save Folder %S is available.\nYou can install this version from the option's tab.
-checkForUpdates.updated=The new version has been installed.\nYou need to restart Firefox to see the changes.
\ No newline at end of file
+checkForUpdates.updated=The new version has been installed.\nYou need to restart Firefox to see the changes.
+export.default_folder=Select the saving folder for exported data.
+export.importnewer=The imported file is from a more recent version.\nPlease update Automatic Save Folder.
+export.importsuccessful=Data successfully imported.
+export.recoveredfilters=%S filter(s) recovered.\n check your filter at the bottom of the list to delete supplicates.\n Note : Recovered filters are not necessarily the last deleted ones.
\ No newline at end of file
diff --git a/locale/en-US/help.dtd b/locale/en-US/help.dtd
index ce4c16c..a1b37bb 100644
--- a/locale/en-US/help.dtd
+++ b/locale/en-US/help.dtd
@@ -5,19 +5,6 @@
 <!ENTITY info.dynamicfilter "Dynamic filter">
 <!ENTITY info.capturefilter "Capture Filter">
 
-<!ENTITY info.important.title "Important">
-<!ENTITY info.important.text1 "The filtering on common downloads (simple click, or automatic download) works only if the download window "What should Firefox do with this file?" is shown:">
-<!-- Screenshot from your language, place it in skin folder. Take a screen of the 'What should Firefox do with this file?' saving window (you can resize the picture if you find it a little too big)-->
-<!ENTITY info.important.pict1 "screen_save_en.png">
-<!ENTITY info.important.text2 "So, be sure to check if Firefox doesn't use another process preventing the window to appear by following this method:">
-<!ENTITY info.important.text3 "Go to the Firefox menu "Tools" and "Options...".">
-<!ENTITY info.important.text4 "- For the Firefox 3 users: go to the "Applications" tab
-	<br />- For the previous Firefox versions users: Go to the "Content" tab and click on the "Manage..." at the bottom right.">
-<!ENTITY info.important.text5 "Verify if the File Type you want to download is set to "Always ask".">
-<!-- Screenshot from your language. Take firefox/tools/option/application tab/ and show an 'always ask' drop down selected -->
-<!ENTITY info.important.pict2 "screen_apps_en.png">
-
-
 <!ENTITY info.howtouse.title "How to use">
 <!ENTITY info.howtouse.text1 "This extension allows you to define, using filters, the folder which will be automatically chosen while saving your files.">
 
@@ -82,3 +69,62 @@ If none of those three extensions are found, the regular expression won't do any
 <!ENTITY info.advancedexample.text16 "Note : You can put as many tags as you want for the main folder.<br />The filter could have been:">
 <!ENTITY info.advancedexample.text17 "D:\video\%asf_rf%(vacation|wedding)%asf_rf%\%asf_rf%(zip|torrent|nzb)$%asf_rf%<br />
 In this case, the sub-folder "vacation" is created only if the name of the file contains "vacation".">
+
+
+<!-- Bellow is the page which appear on first install, and on important updates -->
+<!-- To see the page for localization testing go to chrome://asf/content/help/update.xhtml -->
+<!ENTITY version "Version">
+
+<!ENTITY firstinstall.welcome_message "Thank you for installing Automatic Save Folder.<br /><br />
+Please, read this message carefully to make potential changes to your preferences.<br />
+This page will only be displayed once, on first install or when important changes must be communicated.">
+
+<!ENTITY firstinstall.title.importantupdates "Important updates:">
+<!ENTITY firstinstall.title.firstinstall "1st install and reminder :">
+<!ENTITY firstinstall.fullupdatelist "For the complete changelog, see the "About..." tab in Automatic Save Folder's preferences.">
+
+<!ENTITY firstinstall.steps "In order to work, <b>you have to correctly set Firefox</b> and Automatic Save Folder's <b>preferences</b>.<br />
+Three steps are essentials, if the filtering doesn't work please check each of this steps again:">
+<!ENTITY firstinstall.step1 "Step 1 : Firefox">
+<!ENTITY firstinstall.step2 "Step 2 : Automatic Save Folder">
+<!ENTITY firstinstall.step3 "Step 3 : While downloading">
+
+<!ENTITY firstinstall.firefox.text1 "The filtering on common downloads (simple click, or automatic download) works only if the download window "What should Firefox do with this file?" is shown:">
+<!-- Screenshot from your language, place it in skin folder. Take a screen of the 'What should Firefox do with this file?' saving window (you can resize the picture if you find it a little too big)-->
+<!ENTITY firstinstall.firefox.pict1 "screen_save_en.png">
+<!ENTITY firstinstall.firefox.text2 "So, be sure to check if Firefox doesn't use another process preventing the window to appear by following this method:">
+<!ENTITY firstinstall.firefox.text3 "Go to the Firefox menu "Tools" and "Options...".">
+<!ENTITY firstinstall.firefox.text4 "- For the Firefox 3 users: go to the "Applications" tab
+	<br />- For the previous Firefox versions users: Go to the "Content" tab and click on the "Manage..." at the bottom right.">
+<!ENTITY firstinstall.firefox.text5 "Verify that the File Type you want to download is correctly set to "Always ask".">
+<!-- Screenshot from your language. Take firefox/tools/option/application tab/ and show an 'always ask' drop down selected -->
+<!ENTITY firstinstall.firefox.pict2 "screen_apps_en.png">
+<!ENTITY firstinstall.firefox.text6 "Choose a saving method in Firefox preferences, General tab:<br />
+- Save files to : Firefox will save the file automatically to that folder without opening the files explorer.<br />
+- Always ask me where to save files : Firefox will show you the files explorer to allow you to rename the file or choose the saving folder manually.">
+<!ENTITY firstinstall.firefox.pict3 "screen-main_en.png">
+
+<!ENTITY firstinstall.asf.text1 "If you decide to go without the file explorer, Firefox will automatically save your files<br />
+Either in the download folder defined by your operating system, either on your desktop.<br />
+Do not forget to select "Set by the filters" to allow Firefox to use the filtered folders.">
+<!-- Screenshot from your language. Take ASF pref/options/page1 to show the 'Set by filters' selected menu -->
+<!ENTITY firstinstall.asf.pict1 "screen-asf102-setbyfilters_en.png">
+<!ENTITY firstinstall.asf.text2 "Your filter's order is of a big importance!<br />
+The verification is done from top to bottom, and stop right after a filter is matching the actual downloaded file.<br />
+Remember to alway set your filters order using the arrow on the right of the filter's tab, or dragging them with your mouse.">
+
+
+<!ENTITY firstinstall.save.text1 "You must take care that Firefox will always ask you what to do with your currently downloading file.<br />
+According to this, <b>you must not check</b> "Do this automatically for files like this from now on.".<br />
+If it happens, do Step 1 again.">
+<!-- Screenshot from your language. This is a screen of 'What should Firefox do with this file?' saving window, like firstinstall.Firefox.pict1, but with 'Do this automatically for files like this from now on.' shown unchecked-->
+<!ENTITY firstinstall.save.pict1 "screen-savedialog-alwaysdothis_en.png">
+
+<!ENTITY firstinstall.moreinfo.text1  "For more informations on using and creating filters, a help tab is available in the add-on."> 
+<!ENTITY firstinstall.moreinfo.text2  "A forum is also available on the official development website:">
+
+<!-- important updates for 1.0.2 -->
+<!ENTITY importantupdates.102.1 "You can now choose which data from the downloaded file you want to use to filter the domain field : File's domain, File's full URL, Active tab's domain, Active tab's full URL.<br />To change this setting, go to page 2 of Automatic Save Folder's option's tab.">
+<!ENTITY importantupdates.102.2 "Send the filtered folder to DownThemAll!">
+<!ENTITY importantupdates.102.3 "Import/export the filters.">
+<!ENTITY importantupdates.102.4 "Deletion of the slashes needed at each side of a regular expression's filters.">
diff --git a/locale/fr/about.dtd b/locale/fr/about.dtd
index eaf9c24..d5fa0cc 100644
--- a/locale/fr/about.dtd
+++ b/locale/fr/about.dtd
@@ -29,12 +29,14 @@
 + Nouvelles options concernant l'interface graphique.
 + Ajout de la fonction Copie lors d'un Drag&Drop (ex. drag+Ctrl sur Windows).
 + Affichage d'informations dans la Console d'erreur concernant les filtres et les fichiers lors d'un téléchargement. (Désactivé lorsque Firefox est en mode Navigation privée)
++ Vérification et mise à jour vers les versions béta. La mise à jour interne ne fonctionne que sur Firefox 4.
++ Nouveau menu permettant d'importer et exporter les paramètres et les filtres.
++ Ouverture d'une page d'aide après la 1ere installation et lors de message important après une mise à jour.
 * Il est maintenant possible de choisir quel type de domaine sera utilisé pendant le filtrage, et de personaliser leur ordre de vérification (Domaine seul, URL complète, du fichier ou de l'onglet actif).
 * %asf_f% utilise maintenant le nom de fichier complet, avec l'extension, si aucun filtre ne correspond.
 * %asf_d% utilise maintenant le nom de domaine sans le protocol, si aucun filtre ne correspond.
 ! Correction du script permettant de rajouter les slashs aux expressions régulières si le filtre contient déjà un slash à l'une des extrémités.
 ! Correction d'un bug où les données d'un lien direct entré dans la barre d'adresse ou initialisé par un autre programme n'étaient pas lu correctement, empêchant d'afficher la liste des filtres lorsque la fenêtre de préférences était ouverte à partir du lien "+ Ajouter ou éditer un filtre" de la fenêtre d'enregistrement. (Merci à MrCOLOMBO)
-! ASF utilise maintenant l'URL complète du site courant au lieu de son domaine lorsque qu'aucun filtre n'est trouvé. (Le clic-droit utilisait déjà l'URL complète).">
 
 <!ENTITY about.version.101 "! Correction d'une erreur de frape empêchant ASF de fonctionner si aucun filtre n'était trouvé.
 ! Ajout d'une traduction russe manquante dans l'onglet des filtres.">
diff --git a/locale/fr/asf.dtd b/locale/fr/asf.dtd
index 423d219..c0d5d14 100644
--- a/locale/fr/asf.dtd
+++ b/locale/fr/asf.dtd
@@ -2,7 +2,7 @@
 <!-- Change the preferences window size to fit your localization. Default values : resize=false width=617 height=423, in pixels-->
 <!ENTITY asf.preferences_window.resize "true">
 <!ENTITY asf.preferences_window.width "647">
-<!ENTITY asf.preferences_window.height "423">
+<!ENTITY asf.preferences_window.height "446">
 
 <!-- new line, U+00A0 ISOnum -->
 <!ENTITY NL "
" >
@@ -43,7 +43,8 @@
 <!ENTITY asf.options.label "Options">
 <!ENTITY asf.options.tab1.label "Page 1">
 <!ENTITY asf.options.tab2.label "Page 2">
-<!ENTITY asf.options.tabdta.label "DownThemAll">
+<!ENTITY asf.options.tabdta.label "DownThemAll!">
+<!ENTITY asf.options.tabdata.label "Gestion des données">
 
 <!ENTITY asf.options.groupbox1.label "Explorateur de fichiers">
 <!ENTITY asf.useDownloadDir.bool "Ne pas afficher l'explorateur de fichiers, et enregistrer directement dans le dossier :">
@@ -88,7 +89,7 @@
 <!ENTITY asf.domainTestOrder.tooltip4 "URL du fichier + nom du fichier">
 <!ENTITY asf.domainTestOrder.tooltip5 "Domaine de l'onglet (ou le domaine du fichier si aucun résultat n'est trouvé)">
 <!ENTITY asf.domainTestOrder.tooltip6 "URL de l'onglet (ou l'URL du fichier si aucun résultat n'est trouvé)">
-<!ENTITY asf.domainTestOrder.tooltip7 "Pour plus de précisions, vous pouvez voir à quoi correspond ces informations dans la Console d'erreurs lorsque vous téléchargez un fichier.">
+<!ENTITY asf.domainTestOrder.tooltip7 "Pour plus de précisions, vous pouvez voir à quoi correspondent ces informations dans la Console d'erreurs lorsque vous téléchargez un fichier.">
 <!ENTITY asf.regexp_caseinsensitive.bool "Les filtres sont insensibles à la casse.">
 
 <!ENTITY asf.options.groupbox4.label "Clic droit">
@@ -110,12 +111,30 @@
 <!ENTITY asf.rowmatchinghighlight.system "Couleur système">
 
 <!ENTITY asf.options.groupbox6.label "DownThemAll!">
-<!ENTITY asf.options.dtaDetected.label "Automatic Save Folder a détecté que vous utilisez l'extension DownThemAll!. &NL;Automatic Save Folder peut envoyer le dossier de destination filtré à DownThemAll lorsque vous utilisez la fenêtre de sauvegarde "Que doit faire Firefox avec ce fichier ?". Cette option est désactivée lorsque vous utilisez le mode Navigation Privée.">
+<!ENTITY asf.options.dtaDetected.label "Automatic Save Folder a détecté que vous utilisez l'extension DownThemAll!.&NL;Automatic Save Folder peut envoyer le dossier de destination filtré à DownThemAll! lorsque vous utilisez la fenêtre de sauvegarde "Que doit faire Firefox avec ce fichier ?".&NL;&NL;Note : Cette option est désactivée lorsque vous utilisez le mode Navigation Privée.">
 <!ENTITY asf.dta_ASFtoDTA_isActive.bool "Activer l'envoi du dossier filtré par Automatic Save Folder à DownThemAll!.">
 <!ENTITY asf.dta_chooseSendingMethod.label "Choix de la méthode d'envoi pour DTA OneClick!:">
 <!ENTITY asf.dta_methodReplace.label "Remplacer le premier dossier de la liste">
 <!ENTITY asf.dta_methodAdd.label "Ajouter à la liste">
 
+<!ENTITY asf.options.groupbox.datamanagement.label "Gestion des données">
+<!ENTITY asf.export.notemp.bool "Ne pas importer les données temporaires, comme le dernier domaine de provenance ou le dernier chemin d'enregistrement.">
+<!ENTITY asf.export.forceimport.bool "Forcer l'importation même si la version n'est pas compatible. Attention : Exportez et conservez d'abord vos données actuelles par sécurité.">
+<!ENTITY asf.export.infonotsaved.label "Note : Ces deux options ne sont pas mémorisées pour éviter des erreurs d'importation.">
+<!ENTITY asf.export.button.label "Données">
+<!ENTITY asf.export.button.export.label "Exporter">
+<!ENTITY asf.export.button.import.label "Importer">
+<!ENTITY asf.export.button.importall.label "Importer toutes les données">
+<!ENTITY asf.export.button.importprefs.label "Importer seulement les préférences">
+<!ENTITY asf.export.button.importfilters.label "Importer seulement les filtres">
+<!ENTITY asf.export.button.recoverfilters.label "Récupérer les filtres inutilisés dans la base de données">
+<!ENTITY asf.export.button.delete.label "Effacer">
+<!ENTITY asf.export.button.deleteallfilters.label "Effacer tous les filtres">
+<!ENTITY asf.export.button.deleteunusedfilters.label "Effacer les filtres inutilisés dans la base de données">
+<!ENTITY asf.export.button.deleteuserprefs.label "Restaurer les préférences par défauts">
+<!ENTITY asf.export.defaultfolder.label "Dossier par défaut pour les données exportées (facultatif) :">
+<!ENTITY asf.export.showbutton.bool "Ajouter un boutton de gestion des données sur l'onglet des filtres.">
+
 <!-- Dynamics tab-->
 <!ENTITY asf.dynamics.label "Dossiers dynamiques">
 <!ENTITY asf.variablemode.bool "Activer">
diff --git a/locale/fr/asf.properties b/locale/fr/asf.properties
index 820ac23..7b7db57 100644
--- a/locale/fr/asf.properties
+++ b/locale/fr/asf.properties
@@ -44,4 +44,8 @@ nodata.domain=Le domaine est vide. Veuillez sélectionner 'Tous' ou entrer un fi
 nodata.filename=Le nom de fichier est vide. Veuillez sélectionner 'Tous' ou entrer un filtre pour le nom de fichier
 nodata.folder=Le dossier n'est pas défini. Veuillez sélectionner le dossier de destination pour ce filtre
 checkForUpdates.updateAvailable=Alerte de mise à jour\nAutomatic Save Folder %S est disponible.\nVous pouvez l'installer en allant dans l'onglet des options.
-checkForUpdates.updated=La nouvelle version à été installée.\nVous devez redémarrer Firefox pour appliquer les changements.
\ No newline at end of file
+checkForUpdates.updated=La nouvelle version à été installée.\nVous devez redémarrer Firefox pour appliquer les changements.
+export.default_folder=Sélectionnez le dossier de sauvegarde des fichiers d'exportation.
+export.importnewer=Le fichier que vous importez provient d'une version plus récente.\nVeuillez mettre à jour Automatic Save Folder.
+export.importsuccessful=Importation réussie.
+export.recoveredfilters=%S filtre(s) récupéré(s).\n Verrifiez vos filtres en fin de liste afin de supprimer ceux en doubles.\n Note : Les filtres récupérés ne sont pas forcéments les derniers supprimés.
\ No newline at end of file
diff --git a/locale/fr/help.dtd b/locale/fr/help.dtd
index d5fc3c8..fb3a3e6 100644
--- a/locale/fr/help.dtd
+++ b/locale/fr/help.dtd
@@ -5,19 +5,6 @@
 <!ENTITY info.dynamicfilter "Filtre dynamique">
 <!ENTITY info.capturefilter "Filtre de capture">
 
-<!ENTITY info.important.title "Important">
-<!ENTITY info.important.text1 "Le filtrage sur les téléchargements normaux (simple clic, ou téléchargement automatique) ne fonctionne que si la fenêtre de téléchargement "Que doit faire Firefox avec ce fichier ?" s'affiche :">
-<!-- Screenshot from your language. Take a screen of the 'What should Firefox do with this file?' saving window (you can resize the picture if you find it a little too big) -->
-<!ENTITY info.important.pict1 "screen_save_fr.png">
-<!ENTITY info.important.text2 "Par conséquent, vérifiez que Firefox ne lance pas un traitement différent sur le fichier empêchant la fenêtre de s'afficher en suivant ces instructions :">
-<!ENTITY info.important.text3 "Allez dans le menu "Outils" de Firefox puis "Options...".">
-<!ENTITY info.important.text4 "- Pour les utilisateurs de Firefox 3 : Allez sur l'onglet "Applications".
-  <br />- Pour les utilisateurs d'une version précédente : Allez sur l'onglet "Contenu" puis cliquez sur le bouton "Gérer...".">
-<!ENTITY info.important.text5 "Vérifiez que l'extension de fichier que vous souhaitez télécharger soit bien positionnée sur "Toujours demander".">
-<!-- Screenshot from your language. Take firefox/tools/option/application tab/ and show an 'always ask' selected -->
-<!ENTITY info.important.pict2 "screen_apps_fr.png">
-
-
 <!ENTITY info.howtouse.title "Fonctionnement">
 <!ENTITY info.howtouse.text1 "Cette extension permet de définir, à l'aide de filtres, le répertoire qui vous sera automatiquement proposé par la fenêtre d'enregistrement de vos fichiers.">
 
@@ -82,3 +69,62 @@ Si aucune de ses trois extensions n'est trouvée, l'expression régulière ne re
 <!ENTITY info.advancedexample.text16 "Note : Vous pouvez placer autant de balises que vous le souhaitez dans le chemin d'enregistrement.<br /> Le filtre aurait pu être :">
 <!ENTITY info.advancedexample.text17 "D:\video\%asf_rf%(vacances|mariage)%asf_rf%\%asf_rf%(zip|torrent|nzb)$%asf_rf%<br />
 Dans ce cas, le premier sous-dossier "vacances" est crée uniquement si le nom de fichier contient "vacances".">
+
+
+<!-- Bellow is the page which appear on first install, and on important updates -->
+<!-- To see the page for localization testing go to chrome://asf/content/help/update.xhtml -->
+<!ENTITY version "Version">
+
+<!ENTITY firstinstall.welcome_message "Merci d'avoir installé Automatic Save Folder.<br /><br />
+Veuillez lire ce message attentivement afin d'éventuellement modifier vos paramètres.<br />
+Cette page s'affiche lors de la 1ère installation, et lorsque des changements importants doivent vous être signalés.">
+
+<!ENTITY firstinstall.title.importantupdates "Mises à jour importantes :">
+<!ENTITY firstinstall.title.firstinstall "1ère installation et rappel :">
+<!ENTITY firstinstall.fullupdatelist "Pour la liste complète des changements, veuillez vous reporter à l'onglet "À propos..." dans les préférences d'Automatic Save Folder.">
+
+<!ENTITY firstinstall.steps "Pour que cette extension fonctionne, <b>vous devez paramétrer correctement Firefox</b> et Automatic Save Folder.<br />
+Trois étapes sont essentielles, si le filtrage ne fonctionne pas, veuillez re-vérifier chacune de ces étapes :">
+<!ENTITY firstinstall.step1 "Étape 1 : Firefox">
+<!ENTITY firstinstall.step2 "Étape 2 : Automatic Save Folder">
+<!ENTITY firstinstall.step3 "Étape 3 : Pendant le téléchargement">
+
+<!ENTITY firstinstall.firefox.text1 "Le filtrage sur les téléchargements normaux (simple clic, ou téléchargement automatique) ne fonctionne que si la fenêtre de téléchargement "Que doit faire Firefox avec ce fichier ?" s'affiche :">
+<!-- Screenshot from your language. Take a screen of the 'What should Firefox do with this file?' saving window (you can resize the picture if you find it a little too big) -->
+<!ENTITY firstinstall.firefox.pict1 "screen_save_fr.png">
+<!ENTITY firstinstall.firefox.text2 "Par conséquent, vérifiez que Firefox ne lance pas un traitement différent sur le fichier empêchant la fenêtre de s'afficher en suivant ces instructions :">
+<!ENTITY firstinstall.firefox.text3 "Allez dans le menu "Outils" de Firefox puis "Options...".">
+<!ENTITY firstinstall.firefox.text4 "- Pour les utilisateurs de Firefox 3 : Allez sur l'onglet "Applications".
+  <br />- Pour les utilisateurs d'une version précédente : Allez sur l'onglet "Contenu" puis cliquez sur le bouton "Gérer...".">
+<!ENTITY firstinstall.firefox.text5 "Vérifiez que l'extension de fichier que vous souhaitez télécharger soit bien positionnée sur "Toujours demander".">
+<!-- Screenshot from your language. Take firefox/tools/option/application tab/ and show an 'always ask' selected -->
+<!ENTITY firstinstall.firefox.pict2 "screen_apps_fr.png">
+<!ENTITY firstinstall.firefox.text6 "Choisissez un mode de sauvegarde dans les préférence de Firefox, onglet général :<br />
+- Enregistrer le fichier dans le dossier... : Firefox sauvegardera le fichier automatiquement sans ouvrir l'explorateur de fichiers.<br />
+- Toujours demander où enregistrer les fichier : Firefox affiche la fenêtre d'explorateur de fichiers afin de pouvoir renommer ou changer l'emplacement de sauvegarde manuellement.">
+<!ENTITY firstinstall.firefox.pict3 "screen_apps_fr.png">
+
+<!ENTITY firstinstall.asf.text1 "Si vous décidez de ne pas utiliser l'explorateur de fichier, Firefox enregistrera automatiquement vos fichiers <br />
+soit dans un dossier de téléchargement spécifique à votre système d'exploitation, soit directement sur votre bureau.<br />
+N'oubliez pas de sélectionner "Défini par les filtres" pour que Firefox utilise les dossiers de vos filtres.">
+<!-- Screenshot from your language. Take ASF pref/options/page1 to show the 'Set by filters' selected menu -->
+<!ENTITY firstinstall.asf.pict1 "screen-asf102-setbyfilters_fr.png">
+<!ENTITY firstinstall.asf.text2 "L'ordre de vos filtre à aussi une grande importance !<br />
+La vérification s'effectue de haut en bas, et s'arrete dès qu'un filtre correspond au fichier téléchargé.<br />
+Pensez à bien organiser vos filtres en les déplaçant avec les flèches situé sur le coté droit de l'onglet des filtres, ou en attrapant les filtres avec votre souris.">
+
+
+<!ENTITY firstinstall.save.text1 "Vous devez veillez à ce que Firefox vous propose toujours ce qu'il doit faire du fichier que vous êtes en train de télécharger.<br />
+Par conséquent, <b style='color:red;'>il ne faut pas cocher</b> "Toujours effectuer cette action pour ce type de fichier".<br />
+Si cela devait arriver, revérifiez l'étape 1.">
+<!-- Screenshot from your language. this is a screen of 'What should Firefox do with this file?' saving window, like firstinstall.Firefox.pict1, but with "Do this automatically for files like this from now." shown unchecked-->
+<!ENTITY firstinstall.save.pict1 "screen-savedialog-alwaysdothis_fr.png">
+
+<!ENTITY firstinstall.moreinfo.text1  "Pour plus de renseignements sur l'utilisation de l'extension et la création des filtres, un onglet d'aide est disponible dans l'extension.">
+<!ENTITY firstinstall.moreinfo.text2  "Un forum d'aide est aussi à votre disposition sur le site officiel :">
+
+<!-- important updates for 1.0.2 -->
+<!ENTITY importantupdates.102.1 "Vous pouvez désormais choisir quelles données du fichier téléchargé vous souhaitez utiliser pour filter le domaine : Domaine du fichier, URL complète du fichier, domaine de l'onglet actif, URL complète de l'onglet actif.<br />Pour modifier ce paramètre, allez sur la page 2 des options d'Automatic Save Folder.">
+<!ENTITY importantupdates.102.2 "Envoi du dossier filtré à DownThemAll!">
+<!ENTITY importantupdates.102.3 "Import/export des filtres.">
+<!ENTITY importantupdates.102.4 "Suppression des slashs aux extrémités des filtres utilisant les expressions régulières.">
diff --git a/locale/it/about.dtd b/locale/it/about.dtd
index 15abefe..84d874c 100644
--- a/locale/it/about.dtd
+++ b/locale/it/about.dtd
@@ -29,12 +29,14 @@
 + New options related to Graphical User Interface.
 + Added a Drag&Drop Copy method (ie. drag+Ctrl on Windows).
 + Print filter's and process informations to the error console when downloading a file. (Disabled if Firefox is in PrivateBrowsing mode)
++ checking and update for beta versions. The internal update feature is working only on Firefox 4.
++ New menu to import and export preferences and filters.
++ A help page will now open after the first install and when there's important messages after an update.
 * It's now possible to choose which domain type are used for the filtering process, and personalize the verification order (domain only, full URL, from the file or the current tab).
 * %asf_f% now uses full filename with extension if no filter match.
 * %asf_d% now uses domain without the protocol if no filter match.
 ! Fixed a bug where checking the Regexp option when a filter ended by a slash didn't add a second slash.
 ! Fixed a bug where no data were returned if a download was initiated from the URL bar or from an external software which resulted in no filters in the filter's list if the preferences window was opened from the saving dialog "+ Add or edit a filter". (Thanks to MrCOLOMBO)
-! ASF now uses the full URL instead of the domain when falling back to current website URL if no filter is found, when using single click (Right-click already used full URL).">
 
 <!ENTITY about.version.101 "! Fixed a spelling error preventing ASF to work when no filter matched.
 ! Added a missing Russian string on the filter's tab.">
diff --git a/locale/it/asf.dtd b/locale/it/asf.dtd
index 3e3ddfe..c07632f 100644
--- a/locale/it/asf.dtd
+++ b/locale/it/asf.dtd
@@ -43,7 +43,8 @@
 <!ENTITY asf.options.label "Opzioni">
 <!ENTITY asf.options.tab1.label "Page 1">
 <!ENTITY asf.options.tab2.label "Page 2">
-<!ENTITY asf.options.tabdta.label "DownThemAll">
+<!ENTITY asf.options.tabdta.label "DownThemAll!">
+<!ENTITY asf.options.tabdata.label "Data management">
 
 <!ENTITY asf.options.groupbox1.label "File Explorer">
 <!ENTITY asf.useDownloadDir.bool "Do not show the file explorer, and automatically save to:">
@@ -110,12 +111,30 @@
 <!ENTITY asf.rowmatchinghighlight.system "System color">
 
 <!ENTITY asf.options.groupbox6.label "DownThemAll!">
-<!ENTITY asf.options.dtaDetected.label "Automatic Save Folder has detected that you are using DownThemAll! add-on. &NL;Automatic Save Folder can send the filtered destination path to DownThemAll when using the "What should firefox do with this file" saving window. This option is disabled when using the Private Browsing mode.">
-<!ENTITY asf.dta_ASFtoDTA_isActive.bool "Enable Automatic Save Folder to send the filtered path to DownThemAll.">
+<!ENTITY asf.options.dtaDetected.label "Automatic Save Folder has detected that you are using DownThemAll! add-on. &NL;Automatic Save Folder can send the filtered destination path to DownThemAll! when using the "What should firefox do with this file" saving window.&NL;&NL;Note: This option is disabled when using the Private Browsing mode.">
+<!ENTITY asf.dta_ASFtoDTA_isActive.bool "Enable Automatic Save Folder to send the filtered path to DownThemAll!.">
 <!ENTITY asf.dta_chooseSendingMethod.label "Choose the sending method for DTA OneClick!:">
 <!ENTITY asf.dta_methodReplace.label "Replace first folder in list">
 <!ENTITY asf.dta_methodAdd.label "Add to list">
 
+<!ENTITY asf.options.groupbox.datamanagement.label "Data management">
+<!ENTITY asf.export.notemp.bool "Ne pas importer les données temporaires, comme le dernier domaine de provenance ou le dernier chemin d'enregistrement.">
+<!ENTITY asf.export.forceimport.bool "Forcer l'importation même si la version n'est pas compatible. Attention : Exportez et conservez d'abord vos données actuelles par sécurité.">
+<!ENTITY asf.export.infonotsaved.label "Note : Ces deux options ne sont pas mémorisées pour éviter des erreurs d'importation.">
+<!ENTITY asf.export.button.label "Settings">
+<!ENTITY asf.export.button.export.label "Export">
+<!ENTITY asf.export.button.import.label "Import">
+<!ENTITY asf.export.button.importall.label "Import all data">
+<!ENTITY asf.export.button.importprefs.label "Import only preferences">
+<!ENTITY asf.export.button.importfilters.label "Import only filters">
+<!ENTITY asf.export.button.recoverfilters.label "Recover unused filters from database">
+<!ENTITY asf.export.button.delete.label "Delete">
+<!ENTITY asf.export.button.deleteallfilters.label "Delete all filters">
+<!ENTITY asf.export.button.deleteunusedfilters.label "Delete unused filters from database">
+<!ENTITY asf.export.button.deleteuserprefs.label "Restore preferences to default values">
+<!ENTITY asf.export.defaultfolder.label "Default folder for exported data (optional):">
+<!ENTITY asf.export.showbutton.bool "Add a data management button on the filter's tab.">
+
 <!-- Dynamics tab-->
 <!ENTITY asf.dynamics.label "Dynamic folders">
 <!ENTITY asf.variablemode.bool "Enable">
diff --git a/locale/it/asf.properties b/locale/it/asf.properties
index f858c5d..66503fd 100644
--- a/locale/it/asf.properties
+++ b/locale/it/asf.properties
@@ -44,4 +44,8 @@ nodata.domain=Il campo dominio è vuoto. Scegli 'tutti' o inserisci un filtro pe
 nodata.filename=Il campo Nome File è vuoto. Scegli 'tutti' o inserisci un filtro per il nome file
 nodata.folder=La cartella è vuota. Scegli una cartella di destinazione per questo filtro
 checkForUpdates.updateAvailable=Update notification\nAutomatic Save Folder %S is available.\nYou can install this version from the option's tab.
-checkForUpdates.updated=The new version has been installed.\nYou need to restart Firefox to see the changes.
\ No newline at end of file
+checkForUpdates.updated=The new version has been installed.\nYou need to restart Firefox to see the changes.
+export.default_folder=Select the saving folder for exported data.
+export.importnewer=The imported file is from a more recent version.\nPlease update Automatic Save Folder.
+export.importsuccessful=Data successfully imported.
+export.recoveredfilters=%S filter(s) recovered.\n check your filter at the bottom of the list to delete supplicates.\n Note : Recovered filters are not necessarily the last deleted ones.
\ No newline at end of file
diff --git a/locale/it/help.dtd b/locale/it/help.dtd
index 555b864..06685ae 100644
--- a/locale/it/help.dtd
+++ b/locale/it/help.dtd
@@ -5,19 +5,6 @@
 <!ENTITY info.dynamicfilter "Dinamiche filtri">
 <!ENTITY info.capturefilter "Capture filtri">
 
-<!ENTITY info.important.title "Importante">
-<!ENTITY info.important.text1 "Questa estensione funziona solamente se si usa la finestra di download (quella che chiede di aprire, eseguire o salvare file su disco)<br />Se Firefox non mostra tale finestra, l'estensione non funzionerà.">
-<!-- Screenshot from your language, place it in skin folder. Take a screen of the 'What should Firefox do with this file?' saving window (you can resize the picture if you find it a little too big)  -->
-<!ENTITY info.important.pict1 "screen_save_en.png">
-<!ENTITY info.important.text2 "Se qualche filtro non funziona, accertartati che Firefox non usi un altro processo sul file scaricato:">
-<!ENTITY info.important.text3 "Vai sul menu "Strumenti" e "Opzioni...".">
-<!ENTITY info.important.text4 "- Per utenti di Firefox 3: vai sul tab "Applicazioni"<br />
-- Per utenti di precedenti versioni di Firefox: Vai sul tab "Contenuti" e clicca su "gestisci..." in basso a destra.">
-<!ENTITY info.important.text5 "Verifica se il file che vuoi scaricare sia impostato su "Chiedi ogni volta".">
-<!-- Screenshot from your language. Take firefox/tools/option/application tab/ and show an 'always ask' drop down selected -->
-<!ENTITY info.important.pict2 "screen_apps_en.png">
-
-
 <!ENTITY info.howtouse.title "Come si usa">
 <!ENTITY info.howtouse.text1 "Questa estensione permette di definire, usando dei filtri, quale cartella verrà scelta automaticamente quando scarichi i tuoi file.">
 
@@ -82,3 +69,62 @@ Se nessuna di quelle estensioni non è trovata, l'espressione regolare non farà
 <!ENTITY info.advancedexample.text16 "Nota: Puoi mettere quanti tag vuoi per la cartella principale.<br />I filtri possono essere:">
 <!ENTITY info.advancedexample.text17 "D:\video\%asf_rf%(vacanza|matrimonio)%asf_rf%\%asf_rf%(zip|torrent|nzb)$%asf_rf%<br />
 In questo cartello, verrà creata la cartella "vacanze" verrà creata solo se il nome contiene "vacanze".">
+
+
+<!-- Bellow is the page which appear on first install, and on important updates -->
+<!-- To see the page for localization testing go to chrome://asf/content/help/update.xhtml -->
+<!ENTITY version "Version">
+
+<!ENTITY firstinstall.welcome_message "Thank you for installing Automatic Save Folder.<br /><br />
+Please, read this message carefully to make potential changes to your preferences.<br />
+This page will only be displayed once, on first install or when important changes must be communicated.">
+
+<!ENTITY firstinstall.title.importantupdates "Important updates:">
+<!ENTITY firstinstall.title.firstinstall "1st install and reminder :">
+<!ENTITY firstinstall.fullupdatelist "For the complete changelog, see the "About..." tab in Automatic Save Folder's preferences.">
+
+<!ENTITY firstinstall.steps "In order to work, <b>you have to correctly set Firefox</b> and Automatic Save Folder's <b>preferences</b>.<br />
+Three steps are essentials, if the filtering doesn't work please check each of this steps again:">
+<!ENTITY firstinstall.step1 "Step 1 : Firefox">
+<!ENTITY firstinstall.step2 "Step 2 : Automatic Save Folder">
+<!ENTITY firstinstall.step3 "Step 3 : While downloading">
+
+<!ENTITY firstinstall.firefox.text1 "Questa estensione funziona solamente se si usa la finestra di download (quella che chiede di aprire, eseguire o salvare file su disco)<br />Se Firefox non mostra tale finestra, l'estensione non funzionerà.">
+<!-- Screenshot from your language, place it in skin folder. Take a screen of the 'What should Firefox do with this file?' saving window (you can resize the picture if you find it a little too big)  -->
+<!ENTITY firstinstall.firefox.pict1 "screen_save_en.png">
+<!ENTITY firstinstall.firefox.text2 "Se qualche filtro non funziona, accertartati che Firefox non usi un altro processo sul file scaricato:">
+<!ENTITY firstinstall.firefox.text3 "Vai sul menu "Strumenti" e "Opzioni...".">
+<!ENTITY firstinstall.firefox.text4 "- Per utenti di Firefox 3: vai sul tab "Applicazioni"<br />
+- Per utenti di precedenti versioni di Firefox: Vai sul tab "Contenuti" e clicca su "gestisci..." in basso a destra.">
+<!ENTITY firstinstall.firefox.text5 "Verifica se il file che vuoi scaricare sia impostato su "Chiedi ogni volta".">
+<!-- Screenshot from your language. Take firefox/tools/option/application tab/ and show an 'always ask' drop down selected -->
+<!ENTITY firstinstall.firefox.pict2 "screen_apps_en.png">
+<!ENTITY firstinstall.firefox.text6 "Choose a saving method in Firefox preferences, General tab:<br />
+- Save files to : Firefox will save the file automatically to that folder without opening the files explorer.<br />
+- Always ask me where to save files : Firefox will show you the files explorer to allow you to rename the file or choose the saving folder manually.">
+<!ENTITY firstinstall.firefox.pict3 "screen-main_en.png">
+
+<!ENTITY firstinstall.asf.text1 "If you decide to go without the file explorer, Firefox will automatically save your files<br />
+Either in the download folder defined by your operating system, either on your desktop.<br />
+Do not forget to select "Set by the filters" to allow Firefox to use the filtered folders.">
+<!-- Screenshot from your language. Take ASF pref/options/page1 to show the 'Set by filters' selected menu -->
+<!ENTITY firstinstall.asf.pict1 "screen-asf102-setbyfilters_en.png">
+<!ENTITY firstinstall.asf.text2 "Your filter's order is of a big importance!<br />
+The verification is done from top to bottom, and stop right after a filter is matching the actual downloaded file.<br />
+Remember to alway set your filters order using the arrow on the right of the filter's tab, or dragging them with your mouse.">
+
+
+<!ENTITY firstinstall.save.text1 "You must take care that Firefox will always ask you what to do with your currently downloading file.<br />
+According to this, <b style='color:red;'>you must not check</b> "Do this automatically for files like this from now on.".<br />
+If it happens, do Step 1 again.">
+<!-- Screenshot from your language. This is a screen of 'What should Firefox do with this file?' saving window, like firstinstall.Firefox.pict1, but with 'Do this automatically for files like this from now on.' shown unchecked-->
+<!ENTITY firstinstall.save.pict1 "screen-savedialog-alwaysdothis_en.png">
+
+<!ENTITY firstinstall.moreinfo.text1  "For more informations on using and creating filters, a help tab is available in the add-on."> 
+<!ENTITY firstinstall.moreinfo.text2  "A forum is also available on the official development website:">
+
+<!-- important updates for 1.0.2 -->
+<!ENTITY importantupdates.102.1 "You can now choose which data from the downloaded file you want to use to filter the domain field : File's domain, File's full URL, Active tab's domain, Active tab's full URL.<br />To change this setting, go to page 2 of Automatic Save Folder's option's tab.">
+<!ENTITY importantupdates.102.2 "Send the filtered folder to DownThemAll!">
+<!ENTITY importantupdates.102.3 "Import/export the filters.">
+<!ENTITY importantupdates.102.4 "Deletion of the slashes needed at each side of a regular expression's filters.">
diff --git a/locale/ru/about.dtd b/locale/ru/about.dtd
index 570572f..133760e 100644
--- a/locale/ru/about.dtd
+++ b/locale/ru/about.dtd
@@ -29,12 +29,14 @@
 + Новые опции для графического интерфейса.
 + Добавлен метод копирования через Drag&Drop (Например: Удерживая Ctrl при перетаскивании в Windows).
 + Print filter's and process informations to the error console when downloading a file. (Disabled if Firefox is in PrivateBrowsing mode)
++ checking and update for beta versions. The internal update feature is working only on Firefox 4.
++ New menu to import and export preferences and filters.
++ A help page will now open after the first install and when there's important messages after an update.
 * It's now possible to choose which domain type are used for the filtering process, and personalize the verification order (domain only, full URL, from the file or the current tab).
 * %asf_f% now uses full filename with extension if no filter match.
 * %asf_d% now uses domain without the protocol if no filter match.
 ! Исправлена обработка регулярных выражений когда фильтр оканчивался на косую черту (слеш).
 ! Исправлена ошибка при открытии окна настроек фильтров из окна сохранения ("+ Добавить или изменить фильтр"), при обработке пути который не был представлен в списке фильтров. (Благодарность MrCOLOMBO)
-! ASF использует полный путь вместо домена если не найден подходящий фильтр, для левой кнопки мыши (Правая кнопка уже использует полный путь).">
 
 <!ENTITY about.version.101 "! Исправлена проблема с переводом, которая не позволяла работать ASF когда не найден подходящий фильтр.
 ! Добавлен пропущенный русский перевод для закладки Фильтры.">
diff --git a/locale/ru/asf.dtd b/locale/ru/asf.dtd
index fa9c6f5..f112523 100644
--- a/locale/ru/asf.dtd
+++ b/locale/ru/asf.dtd
@@ -43,7 +43,8 @@
 <!ENTITY asf.options.label "Опции">
 <!ENTITY asf.options.tab1.label "Страница 1">
 <!ENTITY asf.options.tab2.label "Страница 2">
-<!ENTITY asf.options.tabdta.label "Расширение "DownThemAll"">
+<!ENTITY asf.options.tabdta.label "Расширение "DownThemAll!"">
+<!ENTITY asf.options.tabdata.label "Data management">
 
 <!ENTITY asf.options.groupbox1.label "Проводник">
 <!ENTITY asf.useDownloadDir.bool "Не предлагать выбор папки и автоматически сохранить в:">
@@ -110,12 +111,30 @@
 <!ENTITY asf.rowmatchinghighlight.system "Системный цвет">
 
 <!ENTITY asf.options.groupbox6.label "Расширение "DownThemAll!"">
-<!ENTITY asf.options.dtaDetected.label "Automatic Save Folder определил, что вы используете расширение "DownThemAll!". &NL;Automatic Save Folder может передавать пути, основанные на фильтрах, в "DownThemAll" при использовнии окна "Как FireFox следует обработать это файл". Эта опция недоступна в режиме приватного просмотра.">
-<!ENTITY asf.dta_ASFtoDTA_isActive.bool "Включить передачу путей из расширения "Automatic Save Folder" в расширение "DownThemAll".">
+<!ENTITY asf.options.dtaDetected.label "Automatic Save Folder определил, что вы используете расширение "DownThemAll!". &NL;Automatic Save Folder может передавать пути, основанные на фильтрах, в "DownThemAll!" при использовнии окна "Как FireFox следует обработать это файл". Эта опция недоступна в режиме приватного просмотра.">
+<!ENTITY asf.dta_ASFtoDTA_isActive.bool "Включить передачу путей из расширения "Automatic Save Folder" в расширение "DownThemAll!".">
 <!ENTITY asf.dta_chooseSendingMethod.label "Выбрать действие для "DTA OneClick!":">
 <!ENTITY asf.dta_methodReplace.label "Заменить первый путь в списке">
 <!ENTITY asf.dta_methodAdd.label "Добавить в список">
 
+<!ENTITY asf.options.groupbox.datamanagement.label "Data management">
+<!ENTITY asf.export.notemp.bool "Ne pas importer les données temporaires, comme le dernier domaine de provenance ou le dernier chemin d'enregistrement.">
+<!ENTITY asf.export.forceimport.bool "Forcer l'importation même si la version n'est pas compatible. Attention : Exportez et conservez d'abord vos données actuelles par sécurité.">
+<!ENTITY asf.export.infonotsaved.label "Note : Ces deux options ne sont pas mémorisées pour éviter des erreurs d'importation.">
+<!ENTITY asf.export.button.label "Settings">
+<!ENTITY asf.export.button.export.label "Export">
+<!ENTITY asf.export.button.import.label "Import">
+<!ENTITY asf.export.button.importall.label "Import all data">
+<!ENTITY asf.export.button.importprefs.label "Import only preferences">
+<!ENTITY asf.export.button.importfilters.label "Import only filters">
+<!ENTITY asf.export.button.recoverfilters.label "Recover unused filters from database">
+<!ENTITY asf.export.button.delete.label "Delete">
+<!ENTITY asf.export.button.deleteallfilters.label "Delete all filters">
+<!ENTITY asf.export.button.deleteunusedfilters.label "Delete unused filters from database">
+<!ENTITY asf.export.button.deleteuserprefs.label "Restore preferences to default values">
+<!ENTITY asf.export.defaultfolder.label "Default folder for exported data (optional):">
+<!ENTITY asf.export.showbutton.bool "Add a data management button on the filter's tab.">
+
 <!-- Dynamics tab-->
 <!ENTITY asf.dynamics.label "Динамические папки">
 <!ENTITY asf.variablemode.bool "Включить">
diff --git a/locale/ru/asf.properties b/locale/ru/asf.properties
index a7860b0..f315a72 100644
--- a/locale/ru/asf.properties
+++ b/locale/ru/asf.properties
@@ -44,4 +44,8 @@ nodata.domain=Имя домена пустое. Пожалуйста выбер
 nodata.filename=Имя файла пустое. Пожалуйста выберите "Все" или введите имя файла.
 nodata.folder=Папка назначения пустая. Пожалуйста укажите папку назначения для фильтра.
 checkForUpdates.updateAvailable=Update notification\nAutomatic Save Folder %S is available.\nYou can install this version from the option's tab.
-checkForUpdates.updated=The new version has been installed.\nYou need to restart Firefox to see the changes.
\ No newline at end of file
+checkForUpdates.updated=The new version has been installed.\nYou need to restart Firefox to see the changes.
+export.default_folder=Select the saving folder for exported data.
+export.importnewer=The imported file is from a more recent version.\nPlease update Automatic Save Folder.
+export.importsuccessful=Data successfully imported.
+export.recoveredfilters=%S filter(s) recovered.\n check your filter at the bottom of the list to delete supplicates.\n Note : Recovered filters are not necessarily the last deleted ones.
\ No newline at end of file
diff --git a/locale/ru/help.dtd b/locale/ru/help.dtd
index 75eae25..3ecd428 100644
--- a/locale/ru/help.dtd
+++ b/locale/ru/help.dtd
@@ -5,19 +5,6 @@
 <!ENTITY info.dynamicfilter "Динамический фильтр">
 <!ENTITY info.capturefilter "Фильтр захвата">
 
-<!ENTITY info.important.title "Важно">
-<!ENTITY info.important.text1 "Фильтрация для загрузок (простым нажатием или автоматическая загрузка), работает только в случае если показывается окно "Сохранение файла":">
-<!-- Screenshot from your language, place it in skin folder. Take a screen of the 'What should Firefox do with this file?' saving window (you can resize the picture if you find it a little too big)-->
-<!ENTITY info.important.pict1 "screen_save_ru.png">
-<!ENTITY info.important.text2 "Убедитесь, что FireFox, не использует другое действие, предотвращающее появление окна загрузки следующим образом:">
-<!ENTITY info.important.text3 "В FireFox откройте меню "Инструменты" далее "Настройки...".">
-<!ENTITY info.important.text4 "- Для FireFox 3: Откройте закладку "Приложения"
-        <br />- Для FireFox 2: Откройте в закладку "Содержимое" и нажмите на "Управление..." внизу справа.">
-<!ENTITY info.important.text5 "Проверьте чтобы у типа загружаемого файла было установлено действие "Всегда спрашивать".">
-<!-- Screenshot from your language. Take firefox/tools/option/application tab/ and show an 'always ask' drop down selected -->
-<!ENTITY info.important.pict2 "screen_apps_ru.png">
-
-
 <!ENTITY info.howtouse.title "Как использовать">
 <!ENTITY info.howtouse.text1 "Это дополнение позволяет Вам, используя фильтры, указать папку для сохранения загружаемого файла.">
 
@@ -89,3 +76,61 @@ $1f соответствует первой паре скобок в поле &#
 <!ENTITY info.advancedexample.text16 "<b>На заметку:</b> Вы можете поместить столько тегов, сколько вам требуется .<br />Фильтр может быть таким:">
 <!ENTITY info.advancedexample.text17 "D:\Видео\%asf_rf%(отпуск|свадьба)%asf_rf%\%asf_rf%(zip|torrent|nzb)$%asf_rf%<br />
 В этом случае , подкаталог "отпуск" будет создан только в случае если часть имени файла содержит слово "отпуск".">
+
+<!-- Bellow is the page which appear on first install, and on important updates -->
+<!-- To see the page for localization testing go to chrome://asf/content/help/update.xhtml -->
+<!ENTITY version "Version">
+
+<!ENTITY firstinstall.welcome_message "Thank you for installing Automatic Save Folder.<br /><br />
+Please, read this message carefully to make potential changes to your preferences.<br />
+This page will only be displayed once, on first install or when important changes must be communicated.">
+
+<!ENTITY firstinstall.title.importantupdates "Important updates:">
+<!ENTITY firstinstall.title.firstinstall "1st install and reminder :">
+<!ENTITY firstinstall.fullupdatelist "For the complete changelog, see the "About..." tab in Automatic Save Folder's preferences.">
+
+<!ENTITY firstinstall.steps "In order to work, <b>you have to correctly set Firefox</b> and Automatic Save Folder's <b>preferences</b>.<br />
+Three steps are essentials, if the filtering doesn't work please check each of this steps again:">
+<!ENTITY firstinstall.step1 "Step 1 : Firefox">
+<!ENTITY firstinstall.step2 "Step 2 : Automatic Save Folder">
+<!ENTITY firstinstall.step3 "Step 3 : While downloading">
+
+<!ENTITY firstinstall.firefox.text1 "Фильтрация для загрузок (простым нажатием или автоматическая загрузка), работает только в случае если показывается окно "Сохранение файла":">
+<!-- Screenshot from your language, place it in skin folder. Take a screen of the 'What should Firefox do with this file?' saving window (you can resize the picture if you find it a little too big)-->
+<!ENTITY firstinstall.firefox.pict1 "screen_save_ru.png">
+<!ENTITY firstinstall.firefox.text2 "Убедитесь, что FireFox, не использует другое действие, предотвращающее появление окна загрузки следующим образом:">
+<!ENTITY firstinstall.firefox.text3 "В FireFox откройте меню "Инструменты" далее "Настройки...".">
+<!ENTITY firstinstall.firefox.text4 "- Для FireFox 3: Откройте закладку "Приложения"
+        <br />- Для FireFox 2: Откройте в закладку "Содержимое" и нажмите на "Управление..." внизу справа.">
+<!ENTITY firstinstall.firefox.text5 "Проверьте чтобы у типа загружаемого файла было установлено действие "Всегда спрашивать".">
+<!-- Screenshot from your language. Take firefox/tools/option/application tab/ and show an 'always ask' drop down selected -->
+<!ENTITY firstinstall.firefox.pict2 "screen_apps_ru.png">
+<!ENTITY firstinstall.firefox.text6 "Choose a saving method in Firefox preferences, General tab:<br />
+- Save files to : Firefox will save the file automatically to that folder without opening the files explorer.<br />
+- Always ask me where to save files : Firefox will show you the files explorer to allow you to rename the file or choose the saving folder manually.">
+<!ENTITY firstinstall.firefox.pict3 "screen-main_en.png">
+
+<!ENTITY firstinstall.asf.text1 "If you decide to go without the file explorer, Firefox will automatically save your files<br />
+Either in the download folder defined by your operating system, either on your desktop.<br />
+Do not forget to select "Set by the filters" to allow Firefox to use the filtered folders.">
+<!-- Screenshot from your language. Take ASF pref/options/page1 to show the 'Set by filters' selected menu -->
+<!ENTITY firstinstall.asf.pict1 "screen-asf102-setbyfilters_en.png">
+<!ENTITY firstinstall.asf.text2 "Your filter's order is of a big importance!<br />
+The verification is done from top to bottom, and stop right after a filter is matching the actual downloaded file.<br />
+Remember to alway set your filters order using the arrow on the right of the filter's tab, or dragging them with your mouse.">
+
+
+<!ENTITY firstinstall.save.text1 "You must take care that Firefox will always ask you what to do with your currently downloading file.<br />
+According to this, <b>you must not check</b> "Do this automatically for files like this from now on.".<br />
+If it happens, do Step 1 again.">
+<!-- Screenshot from your language. This is a screen of 'What should Firefox do with this file?' saving window, like firstinstall.Firefox.pict1, but with 'Do this automatically for files like this from now on.' shown unchecked-->
+<!ENTITY firstinstall.save.pict1 "screen-savedialog-alwaysdothis_en.png">
+
+<!ENTITY firstinstall.moreinfo.text1  "For more informations on using and creating filters, a help tab is available in the add-on."> 
+<!ENTITY firstinstall.moreinfo.text2  "A forum is also available on the official development website:">
+
+<!-- important updates for 1.0.2 -->
+<!ENTITY importantupdates.102.1 "You can now choose which data from the downloaded file you want to use to filter the domain field : File's domain, File's full URL, Active tab's domain, Active tab's full URL.<br />To change this setting, go to page 2 of Automatic Save Folder's option's tab.">
+<!ENTITY importantupdates.102.2 "Send the filtered folder to DownThemAll!">
+<!ENTITY importantupdates.102.3 "Import/export the filters.">
+<!ENTITY importantupdates.102.4 "Deletion of the slashes needed at each side of a regular expression's filters.">
diff --git a/skin/help_page/asf-icon.png b/skin/help_page/asf-icon.png
new file mode 100644
index 0000000..c72e31a
Binary files /dev/null and b/skin/help_page/asf-icon.png differ
diff --git a/skin/help_page/firefox_default_icon.png b/skin/help_page/firefox_default_icon.png
new file mode 100644
index 0000000..28f8db2
Binary files /dev/null and b/skin/help_page/firefox_default_icon.png differ
diff --git a/skin/help_page/logo_project_left.jpg b/skin/help_page/logo_project_left.jpg
new file mode 100644
index 0000000..b83e6ba
Binary files /dev/null and b/skin/help_page/logo_project_left.jpg differ
diff --git a/skin/help_page/logo_project_right.jpg b/skin/help_page/logo_project_right.jpg
new file mode 100644
index 0000000..3c73e3b
Binary files /dev/null and b/skin/help_page/logo_project_right.jpg differ
diff --git a/skin/help_page/mozilla_default_icon.png b/skin/help_page/mozilla_default_icon.png
new file mode 100644
index 0000000..50cbbf1
Binary files /dev/null and b/skin/help_page/mozilla_default_icon.png differ
diff --git a/skin/help_page/screen-asf102-setbyfilters_en.png b/skin/help_page/screen-asf102-setbyfilters_en.png
new file mode 100644
index 0000000..64ecefd
Binary files /dev/null and b/skin/help_page/screen-asf102-setbyfilters_en.png differ
diff --git a/skin/help_page/screen-asf102-setbyfilters_fr.png b/skin/help_page/screen-asf102-setbyfilters_fr.png
new file mode 100644
index 0000000..3472021
Binary files /dev/null and b/skin/help_page/screen-asf102-setbyfilters_fr.png differ
diff --git a/skin/help_page/screen-main_en.png b/skin/help_page/screen-main_en.png
new file mode 100644
index 0000000..7011d14
Binary files /dev/null and b/skin/help_page/screen-main_en.png differ
diff --git a/skin/help_page/screen-main_fr.png b/skin/help_page/screen-main_fr.png
new file mode 100644
index 0000000..15c18ce
Binary files /dev/null and b/skin/help_page/screen-main_fr.png differ
diff --git a/skin/screen_save_en.png b/skin/help_page/screen-savedialog-alwaysdothis_en.png
similarity index 64%
copy from skin/screen_save_en.png
copy to skin/help_page/screen-savedialog-alwaysdothis_en.png
index ecaa8c0..612747a 100644
Binary files a/skin/screen_save_en.png and b/skin/help_page/screen-savedialog-alwaysdothis_en.png differ
diff --git a/skin/screen_save_fr.png b/skin/help_page/screen-savedialog-alwaysdothis_fr.png
similarity index 64%
rename from skin/screen_save_fr.png
rename to skin/help_page/screen-savedialog-alwaysdothis_fr.png
index 60d8d8f..42c5dec 100644
Binary files a/skin/screen_save_fr.png and b/skin/help_page/screen-savedialog-alwaysdothis_fr.png differ
diff --git a/skin/screen_apps_en.png b/skin/help_page/screen_apps_en.png
similarity index 100%
rename from skin/screen_apps_en.png
rename to skin/help_page/screen_apps_en.png
diff --git a/skin/help_page/screen_apps_fr.png b/skin/help_page/screen_apps_fr.png
new file mode 100644
index 0000000..c6c27ad
Binary files /dev/null and b/skin/help_page/screen_apps_fr.png differ
diff --git a/skin/screen_apps_ru.png b/skin/help_page/screen_apps_ru.png
similarity index 100%
rename from skin/screen_apps_ru.png
rename to skin/help_page/screen_apps_ru.png
diff --git a/skin/screen_save_en.png b/skin/help_page/screen_save_en.png
similarity index 52%
rename from skin/screen_save_en.png
rename to skin/help_page/screen_save_en.png
index ecaa8c0..54bb53e 100644
Binary files a/skin/screen_save_en.png and b/skin/help_page/screen_save_en.png differ
diff --git a/skin/help_page/screen_save_fr.png b/skin/help_page/screen_save_fr.png
new file mode 100644
index 0000000..a9470ff
Binary files /dev/null and b/skin/help_page/screen_save_fr.png differ
diff --git a/skin/screen_save_ru.png b/skin/help_page/screen_save_ru.png
similarity index 100%
rename from skin/screen_save_ru.png
rename to skin/help_page/screen_save_ru.png
diff --git a/skin/help_page/style.css b/skin/help_page/style.css
new file mode 100644
index 0000000..4938315
--- /dev/null
+++ b/skin/help_page/style.css
@@ -0,0 +1,55 @@
+body
+{
+   margin-top: 0px;
+   margin-bottom: 20px;
+   margin-left: 20px;
+   margin-right: 0px;
+}
+
+a { 
+	text-decoration: none; 
+	color: #5555bb;
+	}
+
+a:link { 
+	text-decoration: none; 
+	color: #5555bb;
+	}
+a:visited { 
+	text-decoration: none; 
+	
+	}
+a:hover, a:active { 
+	text-decoration: none; 
+	}
+
+	
+#asf_title a {
+	color: #000000;
+	text-decoration: none;
+}
+
+#header_main {
+	background: #FFFFFF url("logo_project_left.jpg") right top no-repeat; 
+}
+
+#header_menu {
+	background: #FFFFFF url("logo_project_right.jpg") top; 
+}
+
+.tab_sub {
+	background-color: #F4F4F1;
+	border-top:2px  ridge #317300;
+	
+}
+
+
+.cadre-arrondi {
+-moz-border-radius-bottomleft:15px;
+-moz-border-radius-bottomright:15px;
+-moz-border-radius-topleft:15px;
+-moz-border-radius-topright:15px;
+border:1px solid #488F03;
+padding:10px;
+}
+
diff --git a/skin/screen_apps_fr.png b/skin/screen_apps_fr.png
deleted file mode 100644
index 305e95f..0000000
Binary files a/skin/screen_apps_fr.png and /dev/null differ
diff --git a/skin/screen_save_50fr.png b/skin/screen_save_50fr.png
deleted file mode 100644
index 8cba329..0000000
Binary files a/skin/screen_save_50fr.png and /dev/null differ
diff --git a/skin/screen_save_80fr.png b/skin/screen_save_80fr.png
deleted file mode 100644
index fd40996..0000000
Binary files a/skin/screen_save_80fr.png and /dev/null differ

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/automatic-save-folder.git



More information about the Pkg-mozext-commits mailing list