Просмотр исходного кода

add `save the filename template data...` option
(see https://github.com/gildas-lormeau/SingleFile/issues/1280)

Gildas 2 лет назад
Родитель
Сommit
95e2801d3b

+ 4 - 0
_locales/de/messages.json

@@ -215,6 +215,10 @@
 		"message": "Emojis durch Text ersetzen",
 		"message": "Emojis durch Text ersetzen",
 		"description": "Options page label: 'replace emojis with text'"
 		"description": "Options page label: 'replace emojis with text'"
 	},
 	},
+	"optionSaveFilenameTemplateData": {
+		"message": "Speichern der Daten der Dateinamenvorlage auf der Seite",
+		"description": "Options page label: 'save the filename template data into the page'"
+	},
 	"optionConfirmFilename": {
 	"optionConfirmFilename": {
 		"message": "Dialogfenster \"Sichern als\" zur Bestätigung des Dateinamens öffnen",
 		"message": "Dialogfenster \"Sichern als\" zur Bestätigung des Dateinamens öffnen",
 		"description": "Options page label: 'open the \"Save as\" dialog to confirm the file name'"
 		"description": "Options page label: 'open the \"Save as\" dialog to confirm the file name'"

+ 4 - 0
_locales/en/messages.json

@@ -215,6 +215,10 @@
 		"message": "replace emojis with text",
 		"message": "replace emojis with text",
 		"description": "Options page label: 'replace emojis with text'"
 		"description": "Options page label: 'replace emojis with text'"
 	},
 	},
+	"optionSaveFilenameTemplateData": {
+		"message": "save the filename template data into the page",
+		"description": "Options page label: 'save the filename template data into the page'"
+	},
 	"optionConfirmFilename": {
 	"optionConfirmFilename": {
 		"message": "open the \"Save as\" dialog to confirm the file name",
 		"message": "open the \"Save as\" dialog to confirm the file name",
 		"description": "Options page label: 'open the \"Save as\" dialog to confirm the file name'"
 		"description": "Options page label: 'open the \"Save as\" dialog to confirm the file name'"

+ 4 - 0
_locales/es/messages.json

@@ -215,6 +215,10 @@
 		"message": "reemplazar emojis con texto",
 		"message": "reemplazar emojis con texto",
 		"description": "Options page label: 'replace emojis with text'"
 		"description": "Options page label: 'replace emojis with text'"
 	},
 	},
+	"optionSaveFilenameTemplateData": {
+		"message": "guardar los datos de la plantilla de nombre de archivo en la página",
+		"description": "Options page label: 'save the filename template data into the page'"
+	},
 	"optionConfirmFilename": {
 	"optionConfirmFilename": {
 		"message": "abrir el cuadro de diálogo \"Guardar como\" para confirmar el nombre del archivo",
 		"message": "abrir el cuadro de diálogo \"Guardar como\" para confirmar el nombre del archivo",
 		"description": "Options page label: 'open the \"Save as\" dialog to confirm the file name'"
 		"description": "Options page label: 'open the \"Save as\" dialog to confirm the file name'"

+ 4 - 0
_locales/fr/messages.json

@@ -215,6 +215,10 @@
 		"message": "remplacer les emojis par du texte",
 		"message": "remplacer les emojis par du texte",
 		"description": "Options page label: 'replace emojis with text'"
 		"description": "Options page label: 'replace emojis with text'"
 	},
 	},
+	"optionSaveFilenameTemplateData": {
+		"message": "enregistrer les données du modèle de nom de fichier dans la page",
+		"description": "Options page label: 'save the filename template data into the page'"
+	},
 	"optionConfirmFilename": {
 	"optionConfirmFilename": {
 		"message": "ouvrir la boite de dialogue \"Sauver sous\" pour confirmer le nom de fichier",
 		"message": "ouvrir la boite de dialogue \"Sauver sous\" pour confirmer le nom de fichier",
 		"description": "Options page label: 'open the \"Save as\" dialog to confirm the file name'"
 		"description": "Options page label: 'open the \"Save as\" dialog to confirm the file name'"

+ 4 - 0
_locales/it/messages.json

@@ -215,6 +215,10 @@
 		"message": "sostituisci le emoji con il testo",
 		"message": "sostituisci le emoji con il testo",
 		"description": "Options page label: 'replace emojis with text'"
 		"description": "Options page label: 'replace emojis with text'"
 	},
 	},
+	"optionSaveFilenameTemplateData": {
+		"message": "salvare i dati del modello del nome del file nella pagina",
+		"description": "Options page label: 'save the filename template data into the page'"
+	},
 	"optionConfirmFilename": {
 	"optionConfirmFilename": {
 		"message": "Apri la finesta di dialogo \"Salva come\" per confermare il nome del file",
 		"message": "Apri la finesta di dialogo \"Salva come\" per confermare il nome del file",
 		"description": "Options page label: 'open the \"Save as\" dialog to confirm the file name'"
 		"description": "Options page label: 'open the \"Save as\" dialog to confirm the file name'"

+ 4 - 0
_locales/ja/messages.json

@@ -215,6 +215,10 @@
 		"message": "絵文字をテキストに置き換える",
 		"message": "絵文字をテキストに置き換える",
 		"description": "Options page label: 'replace emojis with text'"
 		"description": "Options page label: 'replace emojis with text'"
 	},
 	},
+	"optionSaveFilenameTemplateData": {
+		"message": "ファイル名テンプレートデータをページに保存する",
+		"description": "Options page label: 'save the filename template data into the page'"
+	},
 	"optionConfirmFilename": {
 	"optionConfirmFilename": {
 		"message": "を開く(として保存する:ファイル名を確認するためのダイアログ)",
 		"message": "を開く(として保存する:ファイル名を確認するためのダイアログ)",
 		"description": "Options page label: 'open the \"Save as\" dialog to confirm the file name'"
 		"description": "Options page label: 'open the \"Save as\" dialog to confirm the file name'"

+ 4 - 0
_locales/pl/messages.json

@@ -215,6 +215,10 @@
 		"message": "zamień emotikony na tekst",
 		"message": "zamień emotikony na tekst",
 		"description": "Options page label: 'replace emojis with text'"
 		"description": "Options page label: 'replace emojis with text'"
 	},
 	},
+	"optionSaveFilenameTemplateData": {
+		"message": "save the filename template data into the page",
+		"description": "Options page label: 'save the filename template data into the page'"
+	},
 	"optionConfirmFilename": {
 	"optionConfirmFilename": {
 		"message": "otwieraj okno \"Zapisz jako\", aby potwierdzić nazwę pliku",
 		"message": "otwieraj okno \"Zapisz jako\", aby potwierdzić nazwę pliku",
 		"description": "Options page label: 'open the \"Save as\" dialog to confirm the file name'"
 		"description": "Options page label: 'open the \"Save as\" dialog to confirm the file name'"

+ 4 - 0
_locales/pt_PT/messages.json

@@ -215,6 +215,10 @@
 		"message": "substituir emojis por texto",
 		"message": "substituir emojis por texto",
 		"description": "Options page label: 'replace emojis with text'"
 		"description": "Options page label: 'replace emojis with text'"
 	},
 	},
+	"optionSaveFilenameTemplateData": {
+		"message": "save the filename template data into the page",
+		"description": "Options page label: 'save the filename template data into the page'"
+	},
 	"optionConfirmFilename": {
 	"optionConfirmFilename": {
 		"message": "abrir a caixa de diálogo \"Guardar como\" para confirmar o nome de ficheiro",
 		"message": "abrir a caixa de diálogo \"Guardar como\" para confirmar o nome de ficheiro",
 		"description": "Options page label: 'open the \"Save as\" dialog to confirm the file name'"
 		"description": "Options page label: 'open the \"Save as\" dialog to confirm the file name'"

+ 4 - 0
_locales/pt_br/messages.json

@@ -215,6 +215,10 @@
 		"message": "substituir emojis por texto",
 		"message": "substituir emojis por texto",
 		"description": "Options page label: 'replace emojis with text'"
 		"description": "Options page label: 'replace emojis with text'"
 	},
 	},
+	"optionSaveFilenameTemplateData": {
+		"message": "save the filename template data into the page",
+		"description": "Options page label: 'save the filename template data into the page'"
+	},
 	"optionConfirmFilename": {
 	"optionConfirmFilename": {
 		"message": "abrir o diálogo \"Salvar como\" para confirmar nome de arquivo",
 		"message": "abrir o diálogo \"Salvar como\" para confirmar nome de arquivo",
 		"description": "Options page label: 'open the \"Save as\" dialog to confirm the file name'"
 		"description": "Options page label: 'open the \"Save as\" dialog to confirm the file name'"

+ 4 - 0
_locales/ru/messages.json

@@ -215,6 +215,10 @@
 		"message": "заменять эмодзи текстом",
 		"message": "заменять эмодзи текстом",
 		"description": "Options page label: 'replace emojis with text'"
 		"description": "Options page label: 'replace emojis with text'"
 	},
 	},
+	"optionSaveFilenameTemplateData": {
+		"message": "save the filename template data into the page",
+		"description": "Options page label: 'save the filename template data into the page'"
+	},
 	"optionConfirmFilename": {
 	"optionConfirmFilename": {
 		"message": "открыть диалоговое окно \"Сохранить как\" для подтверждения имени файла",
 		"message": "открыть диалоговое окно \"Сохранить как\" для подтверждения имени файла",
 		"description": "Options page label: 'open the \"Save as\" dialog to confirm the file name'"
 		"description": "Options page label: 'open the \"Save as\" dialog to confirm the file name'"

+ 4 - 0
_locales/tr/messages.json

@@ -215,6 +215,10 @@
 		"message": "emoji'leri metinle değiştir",
 		"message": "emoji'leri metinle değiştir",
 		"description": "Options page label: 'replace emojis with text'"
 		"description": "Options page label: 'replace emojis with text'"
 	},
 	},
+	"optionSaveFilenameTemplateData": {
+		"message": "dosya adı şablon verilerini sayfaya kaydetme",
+		"description": "Options page label: 'save the filename template data into the page'"
+	},
 	"optionConfirmFilename": {
 	"optionConfirmFilename": {
 		"message": "dosya adını onaylamak için \"Farklı kaydet\" iletişim kutusunu aç",
 		"message": "dosya adını onaylamak için \"Farklı kaydet\" iletişim kutusunu aç",
 		"description": "Options page label: 'open the \"Save as\" dialog to confirm the file name'"
 		"description": "Options page label: 'open the \"Save as\" dialog to confirm the file name'"

+ 4 - 0
_locales/uk/messages.json

@@ -215,6 +215,10 @@
 		"message": "Замініть смайлики на текст",
 		"message": "Замініть смайлики на текст",
 		"description": "Options page label: 'replace emojis with text'"
 		"description": "Options page label: 'replace emojis with text'"
 	},
 	},
+	"optionSaveFilenameTemplateData": {
+		"message": "Збережіть дані шаблону імені файлу на сторінці",
+		"description": "Options page label: 'save the filename template data into the page'"
+	},
 	"optionConfirmFilename": {
 	"optionConfirmFilename": {
 		"message": "відкривати діалогове вікно \"Save as\" для підтвердження імені файлу",
 		"message": "відкривати діалогове вікно \"Save as\" для підтвердження імені файлу",
 		"description": "Options page label: 'open the \"Save as\" dialog to confirm the file name'"
 		"description": "Options page label: 'open the \"Save as\" dialog to confirm the file name'"

+ 4 - 0
_locales/zh_CN/messages.json

@@ -215,6 +215,10 @@
 		"message": "用文字替换表情符号",
 		"message": "用文字替换表情符号",
 		"description": "Options page label: 'replace emojis with text'"
 		"description": "Options page label: 'replace emojis with text'"
 	},
 	},
+	"optionSaveFilenameTemplateData": {
+		"message": "将文件名模板数据保存到页面中",
+		"description": "Options page label: 'save the filename template data into the page'"
+	},
 	"optionConfirmFilename": {
 	"optionConfirmFilename": {
 		"message": "打开 “另存为” 对话框以确认文件名",
 		"message": "打开 “另存为” 对话框以确认文件名",
 		"description": "Options page label: 'open the \"Save as\" dialog to confirm the file name'"
 		"description": "Options page label: 'open the \"Save as\" dialog to confirm the file name'"

+ 4 - 0
_locales/zh_TW/messages.json

@@ -215,6 +215,10 @@
 		"message": "用文字替換表情符號",
 		"message": "用文字替換表情符號",
 		"description": "Options page label: 'replace emojis with text'"
 		"description": "Options page label: 'replace emojis with text'"
 	},
 	},
+	"optionSaveFilenameTemplateData": {
+		"message": "將檔案名稱模板數據保存到頁面中",
+		"description": "Options page label: 'save the filename template data into the page'"
+	},
 	"optionConfirmFilename": {
 	"optionConfirmFilename": {
 		"message": "打開 “另存為” 對話框以確認文件名",
 		"message": "打開 “另存為” 對話框以確認文件名",
 		"description": "Options page label: 'open the \"Save as\" dialog to confirm the file name'"
 		"description": "Options page label: 'open the \"Save as\" dialog to confirm the file name'"

+ 1 - 0
src/core/bg/config.js

@@ -71,6 +71,7 @@ const DEFAULT_CONFIG = {
 	filenameReplacedCharacters: ["~", "+", "\\\\", "?", "%", "*", ":", "|", "\"", "<", ">", "\x00-\x1f", "\x7F"],
 	filenameReplacedCharacters: ["~", "+", "\\\\", "?", "%", "*", ":", "|", "\"", "<", ">", "\x00-\x1f", "\x7F"],
 	filenameReplacementCharacter: "_",
 	filenameReplacementCharacter: "_",
 	replaceEmojisInFilename: false,
 	replaceEmojisInFilename: false,
+	saveFilenameTemplateData: false,
 	contextMenuEnabled: true,
 	contextMenuEnabled: true,
 	tabMenuEnabled: true,
 	tabMenuEnabled: true,
 	browserActionMenuEnabled: true,
 	browserActionMenuEnabled: true,

+ 5 - 0
src/ui/bg/ui-options.js

@@ -104,6 +104,7 @@ const filenameMaxLengthBytesUnitLabel = document.getElementById("filenameMaxLeng
 const filenameMaxLengthCharsUnitLabel = document.getElementById("filenameMaxLengthCharsUnitLabel");
 const filenameMaxLengthCharsUnitLabel = document.getElementById("filenameMaxLengthCharsUnitLabel");
 const filenameReplacementCharacterLabel = document.getElementById("filenameReplacementCharacterLabel");
 const filenameReplacementCharacterLabel = document.getElementById("filenameReplacementCharacterLabel");
 const replaceEmojisInFilenameLabel = document.getElementById("replaceEmojisInFilenameLabel");
 const replaceEmojisInFilenameLabel = document.getElementById("replaceEmojisInFilenameLabel");
+const saveFilenameTemplateDataLabel = document.getElementById("saveFilenameTemplateDataLabel");
 const shadowEnabledLabel = document.getElementById("shadowEnabledLabel");
 const shadowEnabledLabel = document.getElementById("shadowEnabledLabel");
 const setMaxResourceSizeLabel = document.getElementById("setMaxResourceSizeLabel");
 const setMaxResourceSizeLabel = document.getElementById("setMaxResourceSizeLabel");
 const maxResourceSizeLabel = document.getElementById("maxResourceSizeLabel");
 const maxResourceSizeLabel = document.getElementById("maxResourceSizeLabel");
@@ -240,6 +241,7 @@ const filenameMaxLengthInput = document.getElementById("filenameMaxLengthInput")
 const filenameMaxLengthUnitInput = document.getElementById("filenameMaxLengthUnitInput");
 const filenameMaxLengthUnitInput = document.getElementById("filenameMaxLengthUnitInput");
 const filenameReplacementCharacterInput = document.getElementById("filenameReplacementCharacterInput");
 const filenameReplacementCharacterInput = document.getElementById("filenameReplacementCharacterInput");
 const replaceEmojisInFilenameInput = document.getElementById("replaceEmojisInFilenameInput");
 const replaceEmojisInFilenameInput = document.getElementById("replaceEmojisInFilenameInput");
+const saveFilenameTemplateDataInput = document.getElementById("saveFilenameTemplateDataInput");
 const shadowEnabledInput = document.getElementById("shadowEnabledInput");
 const shadowEnabledInput = document.getElementById("shadowEnabledInput");
 const maxResourceSizeInput = document.getElementById("maxResourceSizeInput");
 const maxResourceSizeInput = document.getElementById("maxResourceSizeInput");
 const maxResourceSizeEnabledInput = document.getElementById("maxResourceSizeEnabledInput");
 const maxResourceSizeEnabledInput = document.getElementById("maxResourceSizeEnabledInput");
@@ -624,6 +626,7 @@ filenameMaxLengthBytesUnitLabel.textContent = browser.i18n.getMessage("optionFil
 filenameMaxLengthCharsUnitLabel.textContent = browser.i18n.getMessage("optionFilenameMaxLengthCharsUnit");
 filenameMaxLengthCharsUnitLabel.textContent = browser.i18n.getMessage("optionFilenameMaxLengthCharsUnit");
 filenameReplacementCharacterLabel.textContent = browser.i18n.getMessage("optionFilenameReplacementCharacter");
 filenameReplacementCharacterLabel.textContent = browser.i18n.getMessage("optionFilenameReplacementCharacter");
 replaceEmojisInFilenameLabel.textContent = browser.i18n.getMessage("optionReplaceEmojisInFilename");
 replaceEmojisInFilenameLabel.textContent = browser.i18n.getMessage("optionReplaceEmojisInFilename");
+saveFilenameTemplateDataLabel.textContent = browser.i18n.getMessage("optionSaveFilenameTemplateData");
 shadowEnabledLabel.textContent = browser.i18n.getMessage("optionDisplayShadow");
 shadowEnabledLabel.textContent = browser.i18n.getMessage("optionDisplayShadow");
 setMaxResourceSizeLabel.textContent = browser.i18n.getMessage("optionSetMaxResourceSize");
 setMaxResourceSizeLabel.textContent = browser.i18n.getMessage("optionSetMaxResourceSize");
 maxResourceSizeLabel.textContent = browser.i18n.getMessage("optionMaxResourceSize");
 maxResourceSizeLabel.textContent = browser.i18n.getMessage("optionMaxResourceSize");
@@ -918,6 +921,7 @@ async function refresh(profileName) {
 	filenameMaxLengthUnitInput.value = profileOptions.filenameMaxLengthUnit;
 	filenameMaxLengthUnitInput.value = profileOptions.filenameMaxLengthUnit;
 	filenameReplacementCharacterInput.value = profileOptions.filenameReplacementCharacter;
 	filenameReplacementCharacterInput.value = profileOptions.filenameReplacementCharacter;
 	replaceEmojisInFilenameInput.checked = profileOptions.replaceEmojisInFilename;
 	replaceEmojisInFilenameInput.checked = profileOptions.replaceEmojisInFilename;
+	saveFilenameTemplateDataInput.checked = profileOptions.saveFilenameTemplateData;
 	shadowEnabledInput.checked = profileOptions.shadowEnabled;
 	shadowEnabledInput.checked = profileOptions.shadowEnabled;
 	maxResourceSizeEnabledInput.checked = profileOptions.maxResourceSizeEnabled;
 	maxResourceSizeEnabledInput.checked = profileOptions.maxResourceSizeEnabled;
 	maxResourceSizeInput.value = profileOptions.maxResourceSizeEnabled ? profileOptions.maxResourceSize : 10;
 	maxResourceSizeInput.value = profileOptions.maxResourceSizeEnabled ? profileOptions.maxResourceSize : 10;
@@ -1045,6 +1049,7 @@ async function update() {
 			filenameMaxLengthUnit: filenameMaxLengthUnitInput.value,
 			filenameMaxLengthUnit: filenameMaxLengthUnitInput.value,
 			filenameReplacementCharacter: filenameReplacementCharacterInput.value,
 			filenameReplacementCharacter: filenameReplacementCharacterInput.value,
 			replaceEmojisInFilename: replaceEmojisInFilenameInput.checked,
 			replaceEmojisInFilename: replaceEmojisInFilenameInput.checked,
+			saveFilenameTemplateData: saveFilenameTemplateDataInput.checked,
 			shadowEnabled: shadowEnabledInput.checked,
 			shadowEnabled: shadowEnabledInput.checked,
 			maxResourceSizeEnabled: maxResourceSizeEnabledInput.checked,
 			maxResourceSizeEnabled: maxResourceSizeEnabledInput.checked,
 			maxResourceSize: maxResourceSizeEnabledInput.checked ? Math.max(maxResourceSizeInput.value, 0) : 10,
 			maxResourceSize: maxResourceSizeEnabledInput.checked ? Math.max(maxResourceSizeInput.value, 0) : 10,

+ 12 - 5
src/ui/pages/help.html

@@ -164,6 +164,18 @@
 							character</span>
 							character</span>
 						<p>Enter the character used to replace invalid characters in the filename.</p>
 						<p>Enter the character used to replace invalid characters in the filename.</p>
 					</li>
 					</li>
+					<li data-options-label="replaceEmojisInFilenameLabel">
+						<span class="option">Option: replace emojis with text</span>
+						<p>Check this option to replace emojis in the file name with their unicode text representation.
+						</p>
+					</li>
+					<li data-options-label="saveFilenameTemplateDataLabel">
+						<span class="option">Option: save the filename template data into the page</span>
+						<p>Check this option to save the template file data to the page. This allows you to recover
+							template data previously used when saving the page and, for example, to ensure that the file
+							is saved in the same directory as the original file when saving the page again.
+						</p>
+					</li>
 					<li data-options-label="confirmFilenameLabel" id="confirmFilenameOption"> <span
 					<li data-options-label="confirmFilenameLabel" id="confirmFilenameOption"> <span
 							class="option">Option: open the "Save as"
 							class="option">Option: open the "Save as"
 							dialog to confirm the file name</span>
 							dialog to confirm the file name</span>
@@ -178,11 +190,6 @@
 							existing ones on the filesystem. The "skip duplicate files" action only detects duplicates
 							existing ones on the filesystem. The "skip duplicate files" action only detects duplicates
 							among files downloaded during the current browsing session.</p>
 							among files downloaded during the current browsing session.</p>
 					</li>
 					</li>
-					<li data-options-label="replaceEmojisInFilenameLabel">
-						<span class="option">Option: replace emojis with text</span>
-						<p>Check this option to replace emojis in the file name with their unicode text representation.
-						</p>
-					</li>
 				</ul>
 				</ul>
 				<p>File format</p>
 				<p>File format</p>
 				<ul>
 				<ul>

+ 8 - 4
src/ui/pages/options.html

@@ -67,6 +67,14 @@
 					<input type="text" id="filenameReplacementCharacterInput" class="small-input">
 					<input type="text" id="filenameReplacementCharacterInput" class="small-input">
 				</div>
 				</div>
 			</div>
 			</div>
+			<div class="option">
+				<label for="replaceEmojisInFilenameInput" id="replaceEmojisInFilenameLabel"></label>
+				<input type="checkbox" id="replaceEmojisInFilenameInput">
+			</div>
+			<div class="option">
+				<label for="saveFilenameTemplateDataInput" id="saveFilenameTemplateDataLabel"></label>
+				<input type="checkbox" id="saveFilenameTemplateDataInput">
+			</div>
 			<div class="option" id="confirmFilenameOption">
 			<div class="option" id="confirmFilenameOption">
 				<label for="confirmFilenameInput" id="confirmFilenameLabel"></label>
 				<label for="confirmFilenameInput" id="confirmFilenameLabel"></label>
 				<input type="checkbox" id="confirmFilenameInput">
 				<input type="checkbox" id="confirmFilenameInput">
@@ -80,10 +88,6 @@
 					<option id="filenameConflictActionSkipLabel" value="skip"></option>
 					<option id="filenameConflictActionSkipLabel" value="skip"></option>
 				</select>
 				</select>
 			</div>
 			</div>
-			<div class="option">
-				<label for="replaceEmojisInFilenameInput" id="replaceEmojisInFilenameLabel"></label>
-				<input type="checkbox" id="replaceEmojisInFilenameInput">
-			</div>
 		</details>
 		</details>
 		<details>
 		<details>
 			<summary id="fileFormatLabel"></summary>
 			<summary id="fileFormatLabel"></summary>