Browse Source

add option "do not append data after the ZIP data"

Gildas 2 năm trước cách đây
mục cha
commit
6b86227bc5

+ 4 - 0
_locales/de/messages.json

@@ -287,6 +287,10 @@
 		"message": "Stammverzeichnis erstellen",
 		"description": "Options page label: 'create a root directory'"
 	},
+	"optionPreventAppendedData": {
+		"message": "Keine Daten nach den ZIP-Daten anhängen",
+		"description": "Options page label: 'do not append data after the ZIP data'"
+	},
 	"optionInsertTextBody": {
 		"message": "Text durchsuchbar machen",
 		"description": "Options page label: 'make text searchable'"

+ 4 - 0
_locales/en/messages.json

@@ -287,6 +287,10 @@
 		"message": "create a root directory",
 		"description": "Options page label: 'create a root directory'"
 	},
+	"optionPreventAppendedData": {
+		"message": "do not append data after the ZIP data",
+		"description": "Options page label: 'do not append data after the ZIP data'"
+	},
 	"optionInsertTextBody": {
 		"message": "make text searchable",
 		"description": "Options page label: 'make text searchable'"

+ 4 - 0
_locales/es/messages.json

@@ -287,6 +287,10 @@
 		"message": "crear un directorio raíz",
 		"description": "Options page label: 'create a root directory'"
 	},
+	"optionPreventAppendedData": {
+		"message": "no añadir datos después de los datos ZIP",
+		"description": "Options page label: 'do not append data after the ZIP data'"
+	},
 	"optionInsertTextBody": {
 		"message": "hacer buscable el texto",
 		"description": "Options page label: 'make text searchable'"

+ 4 - 0
_locales/fr/messages.json

@@ -287,6 +287,10 @@
 		"message": "créer un répertoire racine",
 		"description": "Options page label: 'create a root directory'"
 	},
+	"optionPreventAppendedData": {
+		"message": "ne pas ajouter de données après les données ZIP",
+		"description": "Options page label: 'do not append data after the ZIP data'"
+	},
 	"optionInsertTextBody": {
 		"message": "rendre le texte indexable",
 		"description": "Options page label: 'make text searchable'"

+ 4 - 0
_locales/it/messages.json

@@ -287,6 +287,10 @@
 		"message": "crea una cartella principale",
 		"description": "Options page label: 'create a root directory'"
 	},
+	"optionPreventAppendedData": {
+		"message": "non aggiungere dati dopo i dati ZIP",
+		"description": "Options page label: 'do not append data after the ZIP data'"
+	},
 	"optionInsertTextBody": {
 		"message": "rendi il testo ricercabile",
 		"description": "Options page label: 'make text searchable'"

+ 4 - 0
_locales/ja/messages.json

@@ -287,6 +287,10 @@
 		"message": "ルートディレクトリを作成する",
 		"description": "Options page label: 'create a root directory'"
 	},
+	"optionPreventAppendedData": {
+		"message": "ZIPデータの後にデータを追加しない",
+		"description": "Options page label: 'do not append data after the ZIP data'"
+	},
 	"optionInsertTextBody": {
 		"message": "テキストを検索可能にする",
 		"description": "Options page label: 'make text searchable'"

+ 4 - 0
_locales/pl/messages.json

@@ -287,6 +287,10 @@
 		"message": "utwórz katalog główny",
 		"description": "Options page label: 'create a root directory'"
 	},
+	"optionPreventAppendedData": {
+		"message": "do not append data after the ZIP data",
+		"description": "Options page label: 'do not append data after the ZIP data'"
+	},
 	"optionInsertTextBody": {
 		"message": "uczyń tekst przeszukiwalnym",
 		"description": "Options page label: 'make text searchable'"

+ 4 - 0
_locales/pt_br/messages.json

@@ -287,6 +287,10 @@
 		"message": "criar um diretório raiz",
 		"description": "Options page label: 'create a root directory'"
 	},
+	"optionPreventAppendedData": {
+		"message": "não anexe dados após os dados ZIP",
+		"description": "Options page label: 'do not append data after the ZIP data'"
+	},
 	"optionInsertTextBody": {
 		"message": "tornar texto pesquisável",
 		"description": "Options page label: 'make text searchable'"

+ 4 - 0
_locales/ru/messages.json

@@ -287,6 +287,10 @@
 		"message": "создавать корневую папку",
 		"description": "Options page label: 'create a root directory'"
 	},
+	"optionPreventAppendedData": {
+		"message": "do not append data after the ZIP data",
+		"description": "Options page label: 'do not append data after the ZIP data'"
+	},
 	"optionInsertTextBody": {
 		"message": "делать текст доступным для поиска",
 		"description": "Options page label: 'make text searchable'"

+ 4 - 0
_locales/tr/messages.json

@@ -287,6 +287,10 @@
 		"message": "kök dizin oluştur",
 		"description": "Options page label: 'create a root directory'"
 	},
+	"optionPreventAppendedData": {
+		"message": "ZIP verilerinden sonra veri eklemeyin",
+		"description": "Options page label: 'do not append data after the ZIP data'"
+	},
 	"optionInsertTextBody": {
 		"message": "metni aranabilir yap",
 		"description": "Options page label: 'make text searchable'"

+ 4 - 0
_locales/uk/messages.json

@@ -287,6 +287,10 @@
 		"message": "створити кореневий каталог",
 		"description": "Options page label: 'create a root directory'"
 	},
+	"optionPreventAppendedData": {
+		"message": "не додавайте дані після ZIP-архіву",
+		"description": "Options page label: 'do not append data after the ZIP data'"
+	},
 	"optionInsertTextBody": {
 		"message": "зробити текст доступним для пошуку",
 		"description": "Options page label: 'make text searchable'"

+ 4 - 0
_locales/zh_CN/messages.json

@@ -287,6 +287,10 @@
 		"message": "创建根目录",
 		"description": "Options page label: 'create a root directory'"
 	},
+	"optionPreventAppendedData": {
+		"message": "不要在 ZIP 数据后添加数据",
+		"description": "Options page label: 'do not append data after the ZIP data'"
+	},
 	"optionInsertTextBody": {
 		"message": "使文本可被搜索",
 		"description": "Options page label: 'make text searchable'"

+ 4 - 0
_locales/zh_TW/messages.json

@@ -287,6 +287,10 @@
 		"message": "創建根目錄",
 		"description": "Options page label: 'create a root directory'"
 	},
+	"optionPreventAppendedData": {
+		"message": "不要在 ZIP 數據後追加數據",
+		"description": "Options page label: 'do not append data after the ZIP data'"
+	},
 	"optionInsertTextBody": {
 		"message": "使文本可被搜索",
 		"description": "Options page label: 'make text searchable'"

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

@@ -244,6 +244,7 @@ async function downloadCompressedContent(message, tab) {
 				tabId,
 				selfExtractingArchive: message.selfExtractingArchive,
 				extractDataFromPage: message.extractDataFromPage,
+				preventAppendedData: message.preventAppendedData,
 				insertCanonicalLink: message.insertCanonicalLink,
 				insertMetaNoIndex: message.insertMetaNoIndex,
 				password: message.password

+ 1 - 0
src/core/common/download.js

@@ -68,6 +68,7 @@ async function downloadPage(pageData, options) {
 		warnUnsavedPage: options.warnUnsavedPage,
 		createRootDirectory: options.createRootDirectory,
 		selfExtractingArchive: options.selfExtractingArchive,
+		preventAppendedData: options.preventAppendedData,
 		extractDataFromPage: options.extractDataFromPage,
 		insertCanonicalLink: options.insertCanonicalLink,
 		insertMetaNoIndex: options.insertMetaNoIndex,

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

@@ -136,6 +136,7 @@ const replaceBookmarkURLLabel = document.getElementById("replaceBookmarkURLLabel
 const allowedBookmarkFoldersLabel = document.getElementById("allowedBookmarkFoldersLabel");
 const ignoredBookmarkFoldersLabel = document.getElementById("ignoredBookmarkFoldersLabel");
 const createRootDirectoryLabel = document.getElementById("createRootDirectoryLabel");
+const preventAppendedDataLabel = document.getElementById("preventAppendedDataLabel");
 const passwordLabel = document.getElementById("passwordLabel");
 const titleLabel = document.getElementById("titleLabel");
 const userInterfaceLabel = document.getElementById("userInterfaceLabel");
@@ -268,6 +269,7 @@ const allowedBookmarkFoldersInput = document.getElementById("allowedBookmarkFold
 const ignoredBookmarkFoldersInput = document.getElementById("ignoredBookmarkFoldersInput");
 const fileFormatSelectInput = document.getElementById("fileFormatSelectInput");
 const createRootDirectoryInput = document.getElementById("createRootDirectoryInput");
+const preventAppendedDataInput = document.getElementById("preventAppendedDataInput");
 const passwordInput = document.getElementById("passwordInput");
 const groupDuplicateImagesInput = document.getElementById("groupDuplicateImagesInput");
 const infobarTemplateInput = document.getElementById("infobarTemplateInput");
@@ -654,6 +656,7 @@ replaceBookmarkURLLabel.textContent = browser.i18n.getMessage("optionReplaceBook
 allowedBookmarkFoldersLabel.textContent = browser.i18n.getMessage("optionAllowedBookmarkFolders");
 ignoredBookmarkFoldersLabel.textContent = browser.i18n.getMessage("optionIgnoredBookmarkFolders");
 createRootDirectoryLabel.textContent = browser.i18n.getMessage("optionCreateRootDirectory");
+preventAppendedDataLabel.textContent = browser.i18n.getMessage("optionPreventAppendedData");
 passwordLabel.textContent = browser.i18n.getMessage("optionPassword");
 groupDuplicateImagesLabel.textContent = browser.i18n.getMessage("optionGroupDuplicateImages");
 titleLabel.textContent = browser.i18n.getMessage("optionsTitle");
@@ -956,6 +959,8 @@ async function refresh(profileName) {
 		"self-extracting-zip-universal" : "self-extracting-zip" : "zip" : "html";
 	createRootDirectoryInput.checked = profileOptions.createRootDirectory;
 	createRootDirectoryInput.disabled = !profileOptions.compressContent;
+	preventAppendedDataInput.checked = profileOptions.preventAppendedData;
+	preventAppendedDataInput.disabled = !profileOptions.compressContent && !profileOptions.selfExtractingArchive;
 	passwordInput.value = profileOptions.password;
 	passwordInput.disabled = !profileOptions.compressContent;
 	insertTextBodyInput.checked = profileOptions.insertTextBody;
@@ -1068,6 +1073,7 @@ async function update() {
 			ignoredBookmarkFolders: ignoredBookmarkFoldersInput.value.replace(/([^\\]),/g, "$1 ,").split(/[^\\],/).map(folder => folder.replace(/\\,/g, ",")),
 			compressContent: fileFormatSelectInput.value.includes("zip"),
 			createRootDirectory: createRootDirectoryInput.checked,
+			preventAppendedData: preventAppendedDataInput.checked,
 			selfExtractingArchive: fileFormatSelectInput.value.includes("self-extracting"),
 			extractDataFromPage: fileFormatSelectInput.value == "self-extracting-zip-universal",
 			password: passwordInput.value,

+ 7 - 0
src/ui/pages/help.html

@@ -221,6 +221,13 @@
 							a timestamp and the identifier of the tab where the saved page is displayed.
 						</p>
 					</li>
+					<li data-options-label="preventAppendedDataLabel">
+						<span class="option">Option: do not append data after the ZIP data</span>
+						<p>Check this option to remove the data appended after the ZIP data. The resulting file may be
+							easier to open with some archive managers that do not support ZIP files with appended data.
+							Enabling this option increases the time needed to save a page.
+						</p>
+					</li>
 					<li data-options-label="insertTextBodyLabel">
 						<span class="option">Option: make text searchable</span>
 						<p>Check this option to insert the text content of the saved page into the self-extracting ZIP

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

@@ -104,6 +104,10 @@
 				<label for="createRootDirectoryInput" id="createRootDirectoryLabel"></label>
 				<input type="checkbox" id="createRootDirectoryInput">
 			</div>
+			<div class="option">
+				<label for="preventAppendedDataInput" id="preventAppendedDataLabel"></label>
+				<input type="checkbox" id="preventAppendedDataInput">
+			</div>
 			<div class="option">
 				<label for="insertTextBodyInput" id="insertTextBodyLabel"></label>
 				<input type="checkbox" id="insertTextBodyInput">