Bläddra i källkod

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

Gildas 2 år sedan
förälder
incheckning
95e2801d3b

+ 4 - 0
_locales/de/messages.json

@@ -215,6 +215,10 @@
 		"message": "Emojis durch Text ersetzen",
 		"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": {
 		"message": "Dialogfenster \"Sichern als\" zur Bestätigung des Dateinamens öffnen",
 		"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",
 		"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": {
 		"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'"

+ 4 - 0
_locales/es/messages.json

@@ -215,6 +215,10 @@
 		"message": "reemplazar emojis con texto",
 		"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": {
 		"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'"

+ 4 - 0
_locales/fr/messages.json

@@ -215,6 +215,10 @@
 		"message": "remplacer les emojis par du texte",
 		"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": {
 		"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'"

+ 4 - 0
_locales/it/messages.json

@@ -215,6 +215,10 @@
 		"message": "sostituisci le emoji con il testo",
 		"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": {
 		"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'"

+ 4 - 0
_locales/ja/messages.json

@@ -215,6 +215,10 @@
 		"message": "絵文字をテキストに置き換える",
 		"description": "Options page label: 'replace emojis with text'"
 	},
+	"optionSaveFilenameTemplateData": {
+		"message": "ファイル名テンプレートデータをページに保存する",
+		"description": "Options page label: 'save the filename template data into the page'"
+	},
 	"optionConfirmFilename": {
 		"message": "を開く(として保存する:ファイル名を確認するためのダイアログ)",
 		"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",
 		"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": {
 		"message": "otwieraj okno \"Zapisz jako\", aby potwierdzić nazwę pliku",
 		"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",
 		"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": {
 		"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'"

+ 4 - 0
_locales/pt_br/messages.json

@@ -215,6 +215,10 @@
 		"message": "substituir emojis por texto",
 		"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": {
 		"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'"

+ 4 - 0
_locales/ru/messages.json

@@ -215,6 +215,10 @@
 		"message": "заменять эмодзи текстом",
 		"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": {
 		"message": "открыть диалоговое окно \"Сохранить как\" для подтверждения имени файла",
 		"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",
 		"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": {
 		"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'"

+ 4 - 0
_locales/uk/messages.json

@@ -215,6 +215,10 @@
 		"message": "Замініть смайлики на текст",
 		"description": "Options page label: 'replace emojis with text'"
 	},
+	"optionSaveFilenameTemplateData": {
+		"message": "Збережіть дані шаблону імені файлу на сторінці",
+		"description": "Options page label: 'save the filename template data into the page'"
+	},
 	"optionConfirmFilename": {
 		"message": "відкривати діалогове вікно \"Save as\" для підтвердження імені файлу",
 		"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": "用文字替换表情符号",
 		"description": "Options page label: 'replace emojis with text'"
 	},
+	"optionSaveFilenameTemplateData": {
+		"message": "将文件名模板数据保存到页面中",
+		"description": "Options page label: 'save the filename template data into the page'"
+	},
 	"optionConfirmFilename": {
 		"message": "打开 “另存为” 对话框以确认文件名",
 		"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": "用文字替換表情符號",
 		"description": "Options page label: 'replace emojis with text'"
 	},
+	"optionSaveFilenameTemplateData": {
+		"message": "將檔案名稱模板數據保存到頁面中",
+		"description": "Options page label: 'save the filename template data into the page'"
+	},
 	"optionConfirmFilename": {
 		"message": "打開 “另存為” 對話框以確認文件名",
 		"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"],
 	filenameReplacementCharacter: "_",
 	replaceEmojisInFilename: false,
+	saveFilenameTemplateData: false,
 	contextMenuEnabled: true,
 	tabMenuEnabled: 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 filenameReplacementCharacterLabel = document.getElementById("filenameReplacementCharacterLabel");
 const replaceEmojisInFilenameLabel = document.getElementById("replaceEmojisInFilenameLabel");
+const saveFilenameTemplateDataLabel = document.getElementById("saveFilenameTemplateDataLabel");
 const shadowEnabledLabel = document.getElementById("shadowEnabledLabel");
 const setMaxResourceSizeLabel = document.getElementById("setMaxResourceSizeLabel");
 const maxResourceSizeLabel = document.getElementById("maxResourceSizeLabel");
@@ -240,6 +241,7 @@ const filenameMaxLengthInput = document.getElementById("filenameMaxLengthInput")
 const filenameMaxLengthUnitInput = document.getElementById("filenameMaxLengthUnitInput");
 const filenameReplacementCharacterInput = document.getElementById("filenameReplacementCharacterInput");
 const replaceEmojisInFilenameInput = document.getElementById("replaceEmojisInFilenameInput");
+const saveFilenameTemplateDataInput = document.getElementById("saveFilenameTemplateDataInput");
 const shadowEnabledInput = document.getElementById("shadowEnabledInput");
 const maxResourceSizeInput = document.getElementById("maxResourceSizeInput");
 const maxResourceSizeEnabledInput = document.getElementById("maxResourceSizeEnabledInput");
@@ -624,6 +626,7 @@ filenameMaxLengthBytesUnitLabel.textContent = browser.i18n.getMessage("optionFil
 filenameMaxLengthCharsUnitLabel.textContent = browser.i18n.getMessage("optionFilenameMaxLengthCharsUnit");
 filenameReplacementCharacterLabel.textContent = browser.i18n.getMessage("optionFilenameReplacementCharacter");
 replaceEmojisInFilenameLabel.textContent = browser.i18n.getMessage("optionReplaceEmojisInFilename");
+saveFilenameTemplateDataLabel.textContent = browser.i18n.getMessage("optionSaveFilenameTemplateData");
 shadowEnabledLabel.textContent = browser.i18n.getMessage("optionDisplayShadow");
 setMaxResourceSizeLabel.textContent = browser.i18n.getMessage("optionSetMaxResourceSize");
 maxResourceSizeLabel.textContent = browser.i18n.getMessage("optionMaxResourceSize");
@@ -918,6 +921,7 @@ async function refresh(profileName) {
 	filenameMaxLengthUnitInput.value = profileOptions.filenameMaxLengthUnit;
 	filenameReplacementCharacterInput.value = profileOptions.filenameReplacementCharacter;
 	replaceEmojisInFilenameInput.checked = profileOptions.replaceEmojisInFilename;
+	saveFilenameTemplateDataInput.checked = profileOptions.saveFilenameTemplateData;
 	shadowEnabledInput.checked = profileOptions.shadowEnabled;
 	maxResourceSizeEnabledInput.checked = profileOptions.maxResourceSizeEnabled;
 	maxResourceSizeInput.value = profileOptions.maxResourceSizeEnabled ? profileOptions.maxResourceSize : 10;
@@ -1045,6 +1049,7 @@ async function update() {
 			filenameMaxLengthUnit: filenameMaxLengthUnitInput.value,
 			filenameReplacementCharacter: filenameReplacementCharacterInput.value,
 			replaceEmojisInFilename: replaceEmojisInFilenameInput.checked,
+			saveFilenameTemplateData: saveFilenameTemplateDataInput.checked,
 			shadowEnabled: shadowEnabledInput.checked,
 			maxResourceSizeEnabled: maxResourceSizeEnabledInput.checked,
 			maxResourceSize: maxResourceSizeEnabledInput.checked ? Math.max(maxResourceSizeInput.value, 0) : 10,

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

@@ -164,6 +164,18 @@
 							character</span>
 						<p>Enter the character used to replace invalid characters in the filename.</p>
 					</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
 							class="option">Option: open the "Save as"
 							dialog to confirm the file name</span>
@@ -178,11 +190,6 @@
 							existing ones on the filesystem. The "skip duplicate files" action only detects duplicates
 							among files downloaded during the current browsing session.</p>
 					</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>
 				<p>File format</p>
 				<ul>

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

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