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

Merge branch 'master' into master

Gildas 4 лет назад
Родитель
Сommit
09225fbec8

+ 4 - 0
_locales/de/messages.json

@@ -279,6 +279,10 @@
 		"message": "CSS-Inhalte komprimieren",
 		"description": "Options page label: 'compress CSS content'"
 	},
+	"optionMoveStylesInHead": {
+		"message": "Die Stile, die sich außerhalb des Head-Elements befinden, in dieses verschieben",
+		"description": "Options page label: 'move in the head element the styles found outside of it'"
+	},
 	"optionRemoveUnusedStyles": {
 		"message": "Nicht verwendete Stile entfernen",
 		"description": "Options page label: 'remove unused styles'"

+ 5 - 1
_locales/en/messages.json

@@ -166,7 +166,7 @@
 	"optionSaveOriginalURLs": {
 		"message": "save original URLs of embedded resources",
 		"description": "Options page label: 'save original URLs of embedded resources'"
-	},	
+	},
 	"optionIncludeInfobar": {
 		"message": "include the infobar in the saved page",
 		"description": "Options page label: 'include the infobar in the saved page'"
@@ -279,6 +279,10 @@
 		"message": "compress CSS content",
 		"description": "Options page label: 'compress CSS content'"
 	},
+	"optionMoveStylesInHead": {
+		"message": "move in the head element the styles found outside of it",
+		"description": "Options page label: 'move in the head element the styles found outside of it'"
+	},
 	"optionRemoveUnusedStyles": {
 		"message": "remove unused styles",
 		"description": "Options page label: 'remove unused styles'"

+ 4 - 0
_locales/es/messages.json

@@ -279,6 +279,10 @@
 		"message": "comprimir contenido CSS",
 		"description": "Options page label: 'compress CSS content'"
 	},
+	"optionMoveStylesInHead": {
+		"message": "mover al elemento de head los estilos que se encuentran fuera de él",
+		"description": "Options page label: 'move in the head element the styles found outside of it'"
+	},
 	"optionRemoveUnusedStyles": {
 		"message": "eliminar estilos no usados",
 		"description": "Options page label: 'remove unused styles'"

+ 4 - 0
_locales/fr/messages.json

@@ -279,6 +279,10 @@
 		"message": "compresser le contenu CSS",
 		"description": "Options page label: 'compress CSS content'"
 	},
+	"optionMoveStylesInHead": {
+		"message": "déplacer dans l'élément head les styles trouvés en dehors de celui-ci",
+		"description": "Options page label: 'move in the head element the styles found outside of it'"
+	},
 	"optionRemoveUnusedStyles": {
 		"message": "supprimer les styles inutilisés",
 		"description": "Options page label: 'remove unused styles'"

+ 4 - 0
_locales/it/messages.json

@@ -279,6 +279,10 @@
 		"message": "comprimi contenuto CSS",
 		"description": "Options page label: 'compress CSS content'"
 	},
+	"optionMoveStylesInHead": {
+		"message": "move in the head element the styles found outside of it",
+		"description": "Options page label: 'move in the head element the styles found outside of it'"
+	},
 	"optionRemoveUnusedStyles": {
 		"message": "Rimuovi stili non utilizzati",
 		"description": "Options page label: 'remove unused styles'"

+ 4 - 0
_locales/ja/messages.json

@@ -279,6 +279,10 @@
 		"message": "CSS コンテンツを圧縮する",
 		"description": "Options page label: 'compress CSS content'"
 	},
+	"optionMoveStylesInHead": {
+		"message": "move in the head element the styles found outside of it",
+		"description": "Options page label: 'move in the head element the styles found outside of it'"
+	},
 	"optionRemoveUnusedStyles": {
 		"message": "未使用のスタイルを削除する",
 		"description": "Options page label: 'remove unused styles'"

+ 4 - 0
_locales/pl/messages.json

@@ -279,6 +279,10 @@
 		"message": "kompresuj zawartość CSS",
 		"description": "Options page label: 'compress CSS content'"
 	},
+	"optionMoveStylesInHead": {
+		"message": "move in the head element the styles found outside of it",
+		"description": "Options page label: 'move in the head element the styles found outside of it'"
+	},
 	"optionRemoveUnusedStyles": {
 		"message": "usuwaj nieużywane style",
 		"description": "Options page label: 'remove unused styles'"

+ 4 - 0
_locales/ru/messages.json

@@ -279,6 +279,10 @@
 		"message": "сжать содержимое CSS",
 		"description": "Options page label: 'compress CSS content'"
 	},
+	"optionMoveStylesInHead": {
+		"message": "move in the head element the styles found outside of it",
+		"description": "Options page label: 'move in the head element the styles found outside of it'"
+	},
 	"optionRemoveUnusedStyles": {
 		"message": "удалить неиспользуемые стили",
 		"description": "Options page label: 'remove unused styles'"

+ 4 - 0
_locales/uk/messages.json

@@ -279,6 +279,10 @@
 		"message": "стискати вміст CSS ",
 		"description": "Options page label: 'compress CSS content'"
 	},
+	"optionMoveStylesInHead": {
+		"message": "move in the head element the styles found outside of it",
+		"description": "Options page label: 'move in the head element the styles found outside of it'"
+	},
 	"optionRemoveUnusedStyles": {
 		"message": "видалити невикористовувані стилі",
 		"description": "Options page label: 'remove unused styles'"

+ 781 - 777
_locales/zh_CN/messages.json

@@ -1,778 +1,782 @@
 {
-    "extensionDescription": {
-        "message": "将一个完整的页面保存到单个 HTML 文件中",
-        "description": "Description of the extension."
-    },
-    "commandSaveSelectedTabs": {
-        "message": "保存选中标签页或其中的选中内容",
-        "description": "Command (Ctrl+Shift+Y): 'Save the selected tabs or their selected contents'"
-    },
-    "commandSaveAllTabs": {
-        "message": "保存所有标签页",
-        "description": "Command (Ctrl+Shift+U): 'Save all tabs'"
-    },
-    "menuSavePage": {
-        "message": "使用 SingleFile 保存页面",
-        "description": "Menu entry: 'Save page with SingleFile'"
-    },
-    "menuSaveSelectedLinks": {
-        "message": "保存所选链接",
-        "description": "Menu entry: 'Save selected links'"
-    },
-    "menuEditPage": {
-        "message": "标注页面...",
-        "description": "Menu entry: 'Annotate the page...'"
-    },
-    "menuEditAndSavePage": {
-        "message": "标注并保存该页面...",
-        "description": "Menu entry: 'Annotate and save the page...'"
-    },
-    "menuSaveWithProfile": {
-        "message": "使用指定的配置文件保存页面",
-        "description": "Menu entry: 'Save with profile'"
-    },
-    "menuViewPendingSaves": {
-        "message": "查看挂起的保存项...",
-        "description": "Menu entry: 'View pending saves...'"
-    },
-    "menuSelectProfile": {
-        "message": "选择默认配置文件",
-        "description": "Menu entry: 'Select the default profile'"
-    },
-    "menuUpdateRule": {
-        "message": "选择当前规则的配置文件",
-        "description": "Menu entry: 'Select the profile of the current rule'"
-    },
-    "menuCreateDomainRule": {
-        "message": "选择当前域名的配置文件",
-        "description": "Menu entry: 'Select the profile of the current domain'"
-    },
-    "menuSaveSelection": {
-        "message": "保存选中部分",
-        "description": "Menu entry: 'Save selection'"
-    },
-    "menuSaveFrame": {
-        "message": "保存框架",
-        "description": "Menu entry: 'Save frame'"
-    },
-    "menuSaveTabs": {
-        "message": "保存标签页",
-        "description": "Menu entry (SingleFile button only): 'Save tabs'"
-    },
-    "menuSaveSelectedTabs": {
-        "message": "保存选中标签页",
-        "description": "Menu entry: 'Save selected tabs'"
-    },
-    "menuSaveUnpinnedTabs": {
-        "message": "保存未固定标签页",
-        "description": "Menu entry: 'Save unpinned tabs'"
-    },
-    "menuSaveAllTabs": {
-        "message": "保存所有标签页",
-        "description": "Menu entry: 'Save all tabs'"
-    },
-    "menuAutoSave": {
-        "message": "自动保存",
-        "description": "Menu entry: 'Auto-save'"
-    },
-    "menuAutoSaveDisabled": {
-        "message": "已禁用",
-        "description": "Menu entry: 'Auto-save' > Disabled'"
-    },
-    "menuAutoSaveTab": {
-        "message": "自动保存此标签页",
-        "description": "Menu entry: 'Auto-save' > Auto-save this tab'"
-    },
-    "menuAutoSaveUnpinnedTabs": {
-        "message": "自动保存未固定标签页",
-        "description": "Menu entry: 'Auto-save' > Auto-save unpinned tabs'"
-    },
-    "menuAutoSaveAllTabs": {
-        "message": "自动保存所有标签页",
-        "description": "Menu entry: 'Auto-save' > Auto-save all tabs'"
-    },
-    "buttonDefaultTooltip": {
-        "message": "使用 SingleFile 保存页面",
-        "description": "Button title: 'Save page with SingleFile'"
-    },
-    "buttonBlockedBadge": {
-        "message": "🚫",
-        "description": "Button badge when the page is blocked: '🚫'"
-    },
-    "buttonBlockedTooltip": {
-        "message": "SingleFile 无法保存此页面",
-        "description": "Button title: 'This page cannot be saved with SingleFile'"
-    },
-    "buttonInitializingTooltip": {
-        "message": "正在初始化 SingleFile",
-        "description": "Button title during initialization: 'Initializing SingleFile (x/2)'"
-    },
-    "buttonInitializingBadge": {
-        "message": "•••",
-        "description": "Badge label during initialization: '•••'"
-    },
-    "buttonSaveProgressTooltip": {
-        "message": "保存进度:",
-        "description": "Button title during save: 'Save progress: xx%'"
-    },
-    "buttonUploadProgressTooltip": {
-        "message": "上传进度: ",
-        "description": "Button title during save: 'Upload progress: xx%'"
-    },
-    "buttonOKBadge": {
-        "message": "完成",
-        "description": "Badge label: 'OK'"
-    },
-    "buttonErrorBadge": {
-        "message": "错误",
-        "description": "Badge label for unexpected errors"
-    },
-    "buttonAutoSaveActiveTooltip": {
-        "message": "自动保存活动页面",
-        "description": "Button title: 'Auto-save active'"
-    },
-    "buttonAutoSaveActiveBadge": {
-        "message": "[自动]",
-        "description": "Badge label when auto-save is active"
-    },
-    "optionsTitle": {
-        "message": "选项",
-        "description": "Options page title"
-    },
-    "optionsUserInterfaceSubTitle": {
-        "message": "用户界面",
-        "description": "Options sub-title: 'User interface'"
-    },
-    "optionAddMenuEntry": {
-        "message": "在页面的上下文菜单中添加 SingleFile 条目",
-        "description": "Options page label: 'add entry in the context menu of the webpage'"
-    },
-    "optionDisplayShadow": {
-        "message": "在处理过程中用阴影覆盖页面",
-        "description": "Options page label: 'overlay a shadow on the page during processing'"
-    },
-    "optionDisplayInfobar": {
-        "message": "在查看一个已保存的页面时显示信息栏",
-        "description": "Options page label: 'display an infobar when viewing a saved page'"
-    },
-    "optionInfobarTemplate": {
-        "message": "信息栏内容模板",
-        "description": "Options page label: 'template of the infobar content'"
-    },
-    "optionBlockMixedContent": {
-        "message": "拦截混合內容",
-        "description": "Options page label: 'block mixed content'"
-    },
-    "optionSaveOriginalURLs": {
-        "message": "嵌入原始资源链接",
-        "description": "Options page label: 'save original URLs of embedded resources'"
-    },
-    "optionIncludeInfobar": {
-        "message": "在已保存页面中将信息栏包括在内",
-        "description": "Options page label: 'include the infobar in the saved page'"
-    },
-    "optionConfirmInfobar": {
-        "message": "打开一个提示对话框来编辑信息栏内容",
-        "description": "Options page label: 'open a prompt dialog to edit the infobar content'"
-    },
-    "optionAutoClose": {
-        "message": "页面保存后自动关闭该标签页",
-        "description": "Options page label: 'auto-close the tab after the page is saved'"
-    },
-    "optionsFileNameSubTitle": {
-        "message": "文件名",
-        "description": "Options sub-title: 'File name'"
-    },
-    "optionFilenameTemplate": {
-        "message": "模板",
-        "description": "Options page label: 'template'"
-    },
-    "optionFilenameMaxLength": {
-        "message": "最大长度(字节)",
-        "description": "Options page label: 'max length (bytes)'"
-    },
-    "optionConfirmFilename": {
-        "message": "打开 “另存为” 对话框以确认文件名",
-        "description": "Options page label: 'open the \"Save as\" dialog to confirm the file name'"
-    },
-    "optionFilenameConflictAction": {
-        "message": "文件名冲突解决方案",
-        "description": "Options page label: 'filename conflict resolution'"
-    },
-    "optionFilenameConflictActionUniquify": {
-        "message": "创建一个唯一名称",
-        "description": "Value for 'filename conflict resolution' option: 'create a unique name'"
-    },
-    "optionFilenameConflictActionOverwrite": {
-        "message": "覆盖现有文件",
-        "description": "Value for 'filename conflict resolution' option: 'overwrite the existing file'"
-    },
-    "optionFilenameConflictActionPrompt": {
-        "message": "指定一个新名称",
-        "description": "Value for 'name conflict resolution' option: 'prompt for a name'"
-    },
-    "optionFilenameConflictActionSkip": {
-        "message": "跳过重复文件",
-        "description": "Value for 'filename conflict resolution' option: 'skip duplicate files'"
-    },
-    "optionsHTMLContentSubTitle": {
-        "message": "HTML 内容",
-        "description": "Options sub-title: 'HTML content'"
-    },
-    "optionCompressHTML": {
-        "message": "压缩 HTML 内容",
-        "description": "Options page label: 'compress HTML content'"
-    },
-    "optionRemoveImports": {
-        "message": "移除 HTML 导入",
-        "description": "Options page label: 'remove HTML imports'"
-    },
-    "optionRemoveFrames": {
-        "message": "移除框架",
-        "description": "Options page label: 'remove frames'"
-    },
-    "optionRemoveHiddenElements": {
-        "message": "移除隐藏元素",
-        "description": "Options page label: 'remove hidden elements'"
-    },
-    "optionsImagesSubTitle": {
-        "message": "图片",
-        "description": "Options sub-title: 'Images'"
-    },
-    "optionGroupDuplicateImages": {
-        "message": "将重复图片分组到一起",
-        "description": "Options page label: 'group duplicate images together'"
-    },
-    "optionLoadDeferredImages": {
-        "message": "保存延迟加载的图像",
-        "description": "Options page label: 'save deferred images'"
-    },
-    "optionLoadDeferredImagesMaxIdleTime": {
-        "message": "最长空闲时间(毫秒)",
-        "description": "Options page label: 'maximum idle time (ms)'"
-    },
-    "optionLoadDeferredImagesKeepZoomLevel": {
-        "message": "缩小页面",
-        "description": "Options page label: 'zoom out the page'"
-    },
-    "optionRemoveAlternativeImages": {
-        "message": "移除用于备选分辨率的图片",
-        "description": "Options page label: 'remove images for alternative screen resolutions'"
-    },
-    "optionsFontsSubTitle": {
-        "message": "字体",
-        "description": "Options sub-title: 'Fonts'"
-    },
-    "optionRemoveUnusedFonts": {
-        "message": "移除未使用字体",
-        "description": "Options page label: 'remove unused fonts'"
-    },
-    "optionRemoveAlternativeFonts": {
-        "message": "移除备选字体",
-        "description": "Options page label: 'remove alternative fonts'"
-    },
-    "optionsStylesheetsSubTitle": {
-        "message": "样式表",
-        "description": "Options sub-title: 'Stylesheets'"
-    },
-    "optionCompressCSS": {
-        "message": "压缩 CSS 内容",
-        "description": "Options page label: 'compress CSS content'"
-    },
-    "optionRemoveUnusedStyles": {
-        "message": "移除未使用的样式",
-        "description": "Options page label: 'remove unused styles'"
-    },
-    "optionRemoveAlternativeMedias": {
-        "message": "移除用于备选设备屏幕的样式表",
-        "description": "Options page label: 'remove stylesheets for alternative devices to screens'"
-    },
-    "optionsOtherResourcesSubTitle": {
-        "message": "其他资源",
-        "description": "Options sub-title: 'Other resources'"
-    },
-    "optionRemoveScripts": {
-        "message": "移除脚本",
-        "description": "Options page label: 'remove scripts'"
-    },
-    "optionRemoveVideo": {
-        "message": "移除视频资源",
-        "description": "Options page label: 'remove video sources'"
-    },
-    "optionRemoveAudio": {
-        "message": "移除音频资源",
-        "description": "Options page label: 'remove audio sources'"
-    },
-    "optionsDestionationSubTitle": {
-        "message": "目的地",
-        "description": "Options sub-title: 'Destination'"
-    },
-    "optionsBookmarkSubTitle": {
-        "message": "书签",
-        "description": "Options sub-title: 'Bookmarks'"
-    },
-    "optionsAutoSaveSubTitle": {
-        "message": "自动保存",
-        "description": "Options sub-title: 'Auto-save'"
-    },
-    "optionsDeleteDisplayedRulesConfirm": {
-        "message": "确认删除所有已显示规则",
-        "description": "Popup text 'Confirm the deletion of all displayed rules'"
-    },
-    "optionsDeleteRulesTooltip": {
-        "message": "删除所有已显示规则",
-        "description": "Popup text 'Delete all displayed rules'"
-    },
-    "optionsAutoSettingsSubTitle": {
-        "message": "自动设置 规则",
-        "description": "Options sub-title: 'Auto-settings rules'"
-    },
-    "optionsAutoSettingsUrl": {
-        "message": "网址",
-        "description": "Options label in the Auto-settings rules: 'URL'"
-    },
-    "optionsAutoSettingsUrlPlaceholder": {
-        "message": "输入完整的或部分网址 (例如 example.com)",
-        "description": "Placeholder in the Auto-settings rules: 'Type a complete or partial URL (e.g. example.com)'"
-    },
-    "optionsAutoSettingsProfile": {
-        "message": "配置文件",
-        "description": "Options label in the Auto-settings rules: 'Profile'"
-    },
-    "optionsAutoSettingsAutoSaveProfile": {
-        "message": "自动保存配置文件",
-        "description": "Options label in the Auto-settings rules: 'Auto-save profile'"
-    },
-    "optionsAutoSettingsShowAllProfiles": {
-        "message": "显示所有配置文件",
-        "description": "Options label in the Auto-settings rules: 'display all profiles'"
-    },
-    "optionsAutoSettingsShowAutoSaveProfile": {
-        "message": "显示 “自动保存配置文件” 列",
-        "description": "Options label in the Auto-settings rules: 'display 'Auto-save profile' column'"
-    },
-    "optionsUpdateRuleTooltip": {
-        "message": "更新规则",
-        "description": "Popup text 'Update the rule' in the options page"
-    },
-    "optionsDeleteRuleTooltip": {
-        "message": "删除规则",
-        "description": "Popup text 'Delete the rule' in the options page"
-    },
-    "optionsAddRuleTooltip": {
-        "message": "添加规则",
-        "description": "Popup text 'Add the rule' in the options page"
-    },
-    "optionsValidateChangesTooltip": {
-        "message": "验证更改",
-        "description": "Popup text 'Validate changes' in the options page"
-    },
-    "optionsDeleteRuleConfirm": {
-        "message": "确认删除所选规则",
-        "description": "Popup text 'Confirm the deletion of the selected rule' in the options page"
-    },
-    "optionAutoSaveLoadOrUnload": {
-        "message": "在页面加载完成后或开始卸载时进行自动保存",
-        "description": "auto-save after page load or on page unload"
-    },
-    "optionAutoSaveLoad": {
-        "message": "在页面加载完成后进行自动保存",
-        "description": "Options page label: 'auto-save after page load'"
-    },
-    "optionAutoSaveUnload": {
-        "message": "在页面开始卸载时进行自动保存",
-        "description": "Options page label: 'auto-save on page unload'"
-    },
-    "optionAutoSaveDiscard": {
-        "message": "在页面丢弃时进行自动保存",
-        "description": "Options page label: 'auto-save on tab discard'"
-    },
-    "optionAutoSaveRemove": {
-        "message": "在页面移除时进行自动保存",
-        "description": "Options page label: 'auto-save on tab removal'"
-    },
-    "optionAutoSaveDelay": {
-        "message": "页面加载完成后延迟该时间再进行自动保存(秒)",
-        "description": "Options page label: 'auto-save waiting delay after page load (s)'"
-    },
-    "optionAutoSaveRepeat": {
-        "message": "定期自动保存",
-        "description": "Options page label: 'auto-save periodically'"
-    },
-    "optionAutoSaveRepeatDelay": {
-        "message": "周期(秒)",
-        "description": "Options page label: 'period (s)'"
-    },
-    "optionAutoSaveExternalSave": {
-        "message": "使用 SingleFile Companion 保存页面",
-        "description": "Options page label: 'save the page with SingleFile Companion'"
-    },
-    "optionsEditorSubTitle": {
-        "message": "标注编辑器",
-        "description": "Options sub-title: 'Annotation editor'"
-    },
-    "optionOpenEditor": {
-        "message": "在保存前对该页面进行标注编辑",
-        "description": "Options page label: 'annotate the page before saving'"
-    },
-    "optionOpenSavedPage": {
-        "message": "在新标签页中打开保存后的页面",
-        "description": "Options page label: 'open saved pages in a new tab'"
-    },
-    "optionAutoOpenEditor": {
-        "message": "在标注编辑器中打开用 SingleFile 保存的页面",
-        "description": "Options page label: 'open pages saved with SingleFile in the annotation editor'"
-    },
-    "optionDefaultEditorMode": {
-        "message": "默认模式",
-        "description": "Options page label: 'default mode'"
-    },
-    "optionDefaultEditorModeNormal": {
-        "message": "常规",
-        "description": "Options page label: 'default mode > normal'"
-    },
-    "optionDefaultEditorModeEdit": {
-        "message": "编辑模式",
-        "description": "Options page label: 'default mode > edit the page'"
-    },
-    "optionDefaultEditorModeFormat": {
-        "message": "格式化页面",
-        "description": "Options page label: 'default mode > format the page'"
-    },
-    "optionDefaultEditorModeCut": {
-        "message": "删除内部文档元素",
-        "description": "Options page label: 'default mode > remove elements'"
-    },
-    "optionDefaultEditorModeCutExternal": {
-        "message": "删除外部文档元素",
-        "description": "Options page label: 'default mode > remove external elements'"
-    },
-    "optionApplySystemTheme": {
-        "message": "在标注编辑器中打开页面时应用系统主题样式",
-        "description": "Title of the button 'apply the system theme when formatting a page'"
-    },
-    "optionWarnUnsavedPage": {
-        "message": "离开标注编辑器时提醒保存已修改的内容",
-        "description": "Title of the button 'warn if leaving page with unsaved changes'"
-    },
-    "optionsMiscSubTitle": {
-        "message": "杂项",
-        "description": "Options sub-title: 'Misc.'"
-    },
-    "optionBackgroundSave": {
-        "message": "在后台保存页面",
-        "description": "Options page label: 'save pages in background'"
-    },
-    "optionDisplayStats": {
-        "message": "处理完成后在控制台中显示统计数据",
-        "description": "Options page label: 'display stats in the console after processing'"
-    },
-    "optionSetMaxResourceSize": {
-        "message": "设置嵌入式资源的大小上限",
-        "description": "Options page label: 'set a maximum size for embedded resources'"
-    },
-    "optionMaxResourceSize": {
-        "message": "大小上限(兆字节)",
-        "description": "Options page label: 'maximum size (MB)'"
-    },
-    "optionPassReferrerOnError": {
-        "message": "跨域请求失败时添加来源地址头信息(Referer)",
-        "description": "Options page label: 'pass \"Referer\" header after a cross-origin request error'"
-    },
-    "optionSaveRawPage": {
-        "message": "保存原始页面",
-        "description": "Options page label: 'save raw page'"
-    },
-    "optionInsertMetaCSP": {
-        "message": "设置内容安全策略",
-        "description": "Options page label: 'set content security policy'"
-    },
-    "optionSaveToClipboard": {
-        "message": "保存到剪切板",
-        "description": "Options page label: 'copy to clipboard'"
-    },
-    "optionSaveToFilesystem": {
-        "message": "保存到文件系统",
-        "description": "Options page label: 'save to filesystem'"
-    },
-    "optionAddProof": {
-        "message": "添加证明文件存在的指纹",
-        "description": "Options page label: 'add proof of existence'"
-    },
-    "optionsAddProofConfirm": {
-        "message": "请确认您是否允许 SingleFile 将您要保存的每个页面的 SHA256 哈希值发送给 Woleet API 。您可以在帮助页面或者通过点击该选项旁的问号找到此功能的更多信息。",
-        "description": "Popup text displayed wen enabling the option 'add proof of existence'"
-    },
-    "optionWoleetKey": {
-        "message": "访问令牌",
-        "description": "Options page label: 'access token'"
-    },
-    "optionSaveToGDrive": {
-        "message": "保存到 Google Drive",
-        "description": "Options page label: 'upload to Google Drive'"
-    },
-    "optionSaveToGitHub": {
-        "message": "保存到 GitHub",
-        "description": "Options page label: 'upload to GitHub'"
-    },
-    "optionGitHubToken": {
-        "message": "访问令牌",
-        "description": "Options page label: 'access token'"
-    },
-    "optionGitHubUser": {
-        "message": "用户名",
-        "description": "Options page label: 'user name'"
-    },
-    "optionGitHubRepository": {
-        "message": "仓库名称",
-        "description": "Options page label: 'repository name'"
-    },
-    "optionGitHubBranch": {
-        "message": "分支名称",
-        "description": "Options page label: 'branch name'"
-    },
-    "optionSaveWithCompanion": {
-        "message": "使用 SingleFile Companion 保存",
-        "description": "Options page label: 'save with SingleFile Companion'"
-    },
-    "optionSaveCreatedBookmarks": {
-        "message": "创建新书签时保存其对应页面",
-        "description": "Options page label: 'save the page of a newly created bookmark'"
-    },
-    "optionReplaceBookmarkURL": {
-        "message": "将新书签的链接指向已保存页面",
-        "description": "Options page label: 'link the new bookmark to the saved page'"
-    },
-    "optionAllowedBookmarkFolders": {
-        "message": "允许文件夹",
-        "description": "Options page label: 'allowed folders'"
-    },
-    "optionIgnoredBookmarkFolders": {
-        "message": "忽略文件夹",
-        "description": "Options page label: 'ignored folders'"
-    },
-    "optionsHelpLink": {
-        "message": "帮助",
-        "description": "Options help link"
-    },
-    "optionSynchronize": {
-        "message": "同步选项",
-        "description": "Options label: 'synchronize options'"
-    },
-    "optionsResetButton": {
-        "message": "重置",
-        "description": "Options button: 'Reset'"
-    },
-    "optionsResetTooltip": {
-        "message": "重置所有选项为默认值",
-        "description": "Options 'Reset' button tooltip"
-    },
-    "optionsResetConfirm": {
-        "message": "确认重置所有选项或当前配置文件",
-        "description": "Popup text 'Confirm the reset of all options or the current profile' in the options page"
-    },
-    "optionsResetAllButton": {
-        "message": "重置所有选项",
-        "description": "Options confirm button: 'Reset all options'"
-    },
-    "optionsResetCurrentButton": {
-        "message": "重置当前配置文件",
-        "description": "Options confirm button: 'Reset current profile'"
-    },
-    "optionsOKButton": {
-        "message": "确定",
-        "description": "Options confirm button: 'OK'"
-    },
-    "optionsCancelButton": {
-        "message": "取消",
-        "description": "Options confirm button: 'Cancel'"
-    },
-    "optionsExportButton": {
-        "message": "导出",
-        "description": "Options button: 'Export'"
-    },
-    "optionsImportButton": {
-        "message": "导入",
-        "description": "Options button: 'Import'"
-    },
-    "logPanelDeferredImages": {
-        "message": "延迟加载的图像",
-        "description": "Label 'Deferred images' in the log panel"
-    },
-    "logPanelFrameContents": {
-        "message": "框架内容",
-        "description": "Label 'Frame contents' in the log panel"
-    },
-    "logPanelStep": {
-        "message": "步骤",
-        "description": "Label 'Step' (for 'Step x / 4') in the log panel"
-    },
-    "logPanelWidth": {
-        "message": "122",
-        "description": "Width of the log panel in pixels, it should be adjusted for the longest label beginning with 'log' (e.g. 'logPanelDeferredImages')"
-    },
-    "profileDefaultSettings": {
-        "message": "默认设置",
-        "description": "Label 'Default settings' of the default settings in the options page"
-    },
-    "profileDisabled": {
-        "message": "已禁用",
-        "description": "Label 'Disabled' of the disabled profile name in the options page"
-    },
-    "profileAddButtonTooltip": {
-        "message": "新增配置文件",
-        "description": "Tooltip 'Add a new profile' in the options page"
-    },
-    "profileRenameButtonTooltip": {
-        "message": "重命名配置文件",
-        "description": "Tooltip 'Rename the profile' in the options page"
-    },
-    "profileDeleteButtonTooltip": {
-        "message": "删除配置文件",
-        "description": "Tooltip 'Delete the profile' in the options page"
-    },
-    "profileAddPrompt": {
-        "message": "新增配置文件",
-        "description": "Popup text 'Enter a name for this new profile' in the options page"
-    },
-    "profileDeleteConfirm": {
-        "message": "确认删除所选配置文件?",
-        "description": "Popup text 'Confirm the deletion of the selected profile' in the options page"
-    },
-    "profileRenamePrompt": {
-        "message": "重命名配置文件",
-        "description": "Popup text 'Enter a new name for the selected profile' in the options page"
-    },
-    "editorAddYellowNote": {
-        "message": "添加黄色标注",
-        "description": "Title of the button 'Add a yellow note' in the editor"
-    },
-    "editorAddPinkNote": {
-        "message": "添加粉色标注",
-        "description": "Title of the button 'Add a pink note' in the editor"
-    },
-    "editorAddBlueNote": {
-        "message": "添加蓝色标注",
-        "description": "Title of the button 'Add a blue note' in the editor"
-    },
-    "editorAddGreenNote": {
-        "message": "添加绿色标注",
-        "description": "Title of the button 'Add a green note' in the editor"
-    },
-    "editorHighlightYellow": {
-        "message": "将所选文本高亮为黄色",
-        "description": "Title of the button 'Highlight selected text in yellow' in the editor"
-    },
-    "editorHighlightPink": {
-        "message": "将所选文本高亮为粉色",
-        "description": "Title of the button 'Highlight selected text in pink' in the editor"
-    },
-    "editorHighlightBlue": {
-        "message": "将所选文本高亮为蓝色",
-        "description": "Title of the button 'Highlight selected text in blue' in the editor"
-    },
-    "editorHighlightGreen": {
-        "message": "将所选文本高亮为绿色",
-        "description": "Title of the button 'Highlight selected text in green' in the editor"
-    },
-    "editorToggleNotes": {
-        "message": "显示/隐藏 标注",
-        "description": "Title of the button 'Display/hide notes' in the editor"
-    },
-    "editorToggleHighlights": {
-        "message": "显示/隐藏 高亮文本",
-        "description": "Title of the button 'Display/hide the highlighted text' in the editor"
-    },
-    "editorRemoveHighlight": {
-        "message": "移除所选高亮文本",
-        "description": "Title of the button 'Remove the selected highlighted text' in the editor"
-    },
-    "editorEditPage": {
-        "message": "启用/禁用 编辑模式",
-        "description": "Title of the button 'Enable/disable read-only' in the editor"
-    },
-    "editorFormatPage": {
-        "message": "格式化页面以提升可读性",
-        "description": "Title of the button 'Format the page for better readability' in the editor"
-    },
-    "editorCutInnerPage": {
-        "message": "启用/禁用 点击时删除内部文档元素",
-        "description": "Title of the button 'Enable/disable removing of internal elements' in the editor"
-    },
-    "editorCutOuterPage": {
-        "message": "启用/禁用 点击时删除外部文档元素",
-        "description": "Title of the button 'Enable/disable removing of external elements' in the editor"
-    },
-    "editorUndoCutPage": {
-        "message": "撤销上次移除元素的操作",
-        "description": "Title of the button 'Restore last removed element' in the editor"
-    },
-    "editorUndoAllCutPage": {
-        "message": "撤销所有移除元素的操作",
-        "description": "Title of the button 'Restore all removed elements' in the editor"
-    },
-    "editorRedoCutPage": {
-        "message": "恢复上次移除元素的操作",
-        "description": "Title of the button 'Remove last restored element' in the editor"
-    },
-    "editorSavePage": {
-        "message": "保存该页面",
-        "description": "Title of the button 'Save the page' in the editor"
-    },
-    "editorPrintPage": {
-        "message": "打印页面",
-        "description": "Title of the button 'Print the page' in the editor"
-    },
-    "pendingsTitle": {
-        "message": "挂起保存项",
-        "description": "Title of the pending save page 'Pending saves' in the editor"
-    },
-    "pendingsCancelAllButton": {
-        "message": "取消全部",
-        "description": "Pending saves button 'Cancel all'"
-    },
-    "pendingsTitleTitle": {
-        "message": "标题",
-        "description": "Title of the first column in the table of the pending saves 'Title'"
-    },
-    "pendingsURLTitle": {
-        "message": "网址",
-        "description": "Title of the first column in the table of the pending saves 'URL'"
-    },
-    "pendingsStatusTitle": {
-        "message": "状态",
-        "description": "Title of the second column in the table of the pending saves 'status'"
-    },
-    "pendingsPendingStatus": {
-        "message": "正在挂起",
-        "description": "Value of 'status' for pending saves"
-    },
-    "pendingsProcessingStatus": {
-        "message": "正在处理",
-        "description": "Value of 'status' for current saves"
-    },
-    "pendingsCancellingStatus": {
-        "message": "正在取消",
-        "description": "Value of 'status' for cancelled saves"
-    },
-    "pendingsNoPendings": {
-        "message": "没有挂起中的保存项",
-        "description": "Label displayed when they are no pending saves"
-    },
-    "pendingsAddUrlsButton": {
-        "message": "添加网址",
-        "description": "button 'Add URLs'"
-    },
-    "pendingsAddUrls": {
-        "message": "请按行输入网址列表",
-        "description": "Label of the add URLs input"
-    },
-    "pendingsAddUrlsOKButton": {
-        "message": "确定",
-        "description": "Add URLs popup confirm button: 'OK'"
-    },
-    "pendingsAddUrlsCancelButton": {
-        "message": "取消",
-        "description": "Add URLs popup cancel button: 'Cancel'"
-    }
-}
+	"extensionDescription": {
+		"message": "将一个完整的页面保存到单个 HTML 文件中",
+		"description": "Description of the extension."
+	},
+	"commandSaveSelectedTabs": {
+		"message": "保存选中标签页或其中的选中内容",
+		"description": "Command (Ctrl+Shift+Y): 'Save the selected tabs or their selected contents'"
+	},
+	"commandSaveAllTabs": {
+		"message": "保存所有标签页",
+		"description": "Command (Ctrl+Shift+U): 'Save all tabs'"
+	},
+	"menuSavePage": {
+		"message": "使用 SingleFile 保存页面",
+		"description": "Menu entry: 'Save page with SingleFile'"
+	},
+	"menuSaveSelectedLinks": {
+		"message": "保存所选链接",
+		"description": "Menu entry: 'Save selected links'"
+	},
+	"menuEditPage": {
+		"message": "标注页面...",
+		"description": "Menu entry: 'Annotate the page...'"
+	},
+	"menuEditAndSavePage": {
+		"message": "标注并保存该页面...",
+		"description": "Menu entry: 'Annotate and save the page...'"
+	},
+	"menuSaveWithProfile": {
+		"message": "使用指定的配置文件保存页面",
+		"description": "Menu entry: 'Save with profile'"
+	},
+	"menuViewPendingSaves": {
+		"message": "查看挂起的保存项...",
+		"description": "Menu entry: 'View pending saves...'"
+	},
+	"menuSelectProfile": {
+		"message": "选择默认配置文件",
+		"description": "Menu entry: 'Select the default profile'"
+	},
+	"menuUpdateRule": {
+		"message": "选择当前规则的配置文件",
+		"description": "Menu entry: 'Select the profile of the current rule'"
+	},
+	"menuCreateDomainRule": {
+		"message": "选择当前域名的配置文件",
+		"description": "Menu entry: 'Select the profile of the current domain'"
+	},
+	"menuSaveSelection": {
+		"message": "保存选中部分",
+		"description": "Menu entry: 'Save selection'"
+	},
+	"menuSaveFrame": {
+		"message": "保存框架",
+		"description": "Menu entry: 'Save frame'"
+	},
+	"menuSaveTabs": {
+		"message": "保存标签页",
+		"description": "Menu entry (SingleFile button only): 'Save tabs'"
+	},
+	"menuSaveSelectedTabs": {
+		"message": "保存选中标签页",
+		"description": "Menu entry: 'Save selected tabs'"
+	},
+	"menuSaveUnpinnedTabs": {
+		"message": "保存未固定标签页",
+		"description": "Menu entry: 'Save unpinned tabs'"
+	},
+	"menuSaveAllTabs": {
+		"message": "保存所有标签页",
+		"description": "Menu entry: 'Save all tabs'"
+	},
+	"menuAutoSave": {
+		"message": "自动保存",
+		"description": "Menu entry: 'Auto-save'"
+	},
+	"menuAutoSaveDisabled": {
+		"message": "已禁用",
+		"description": "Menu entry: 'Auto-save' > Disabled'"
+	},
+	"menuAutoSaveTab": {
+		"message": "自动保存此标签页",
+		"description": "Menu entry: 'Auto-save' > Auto-save this tab'"
+	},
+	"menuAutoSaveUnpinnedTabs": {
+		"message": "自动保存未固定标签页",
+		"description": "Menu entry: 'Auto-save' > Auto-save unpinned tabs'"
+	},
+	"menuAutoSaveAllTabs": {
+		"message": "自动保存所有标签页",
+		"description": "Menu entry: 'Auto-save' > Auto-save all tabs'"
+	},
+	"buttonDefaultTooltip": {
+		"message": "使用 SingleFile 保存页面",
+		"description": "Button title: 'Save page with SingleFile'"
+	},
+	"buttonBlockedBadge": {
+		"message": "🚫",
+		"description": "Button badge when the page is blocked: '🚫'"
+	},
+	"buttonBlockedTooltip": {
+		"message": "SingleFile 无法保存此页面",
+		"description": "Button title: 'This page cannot be saved with SingleFile'"
+	},
+	"buttonInitializingTooltip": {
+		"message": "正在初始化 SingleFile",
+		"description": "Button title during initialization: 'Initializing SingleFile (x/2)'"
+	},
+	"buttonInitializingBadge": {
+		"message": "•••",
+		"description": "Badge label during initialization: '•••'"
+	},
+	"buttonSaveProgressTooltip": {
+		"message": "保存进度:",
+		"description": "Button title during save: 'Save progress: xx%'"
+	},
+	"buttonUploadProgressTooltip": {
+		"message": "上传进度: ",
+		"description": "Button title during save: 'Upload progress: xx%'"
+	},
+	"buttonOKBadge": {
+		"message": "完成",
+		"description": "Badge label: 'OK'"
+	},
+	"buttonErrorBadge": {
+		"message": "错误",
+		"description": "Badge label for unexpected errors"
+	},
+	"buttonAutoSaveActiveTooltip": {
+		"message": "自动保存活动页面",
+		"description": "Button title: 'Auto-save active'"
+	},
+	"buttonAutoSaveActiveBadge": {
+		"message": "[自动]",
+		"description": "Badge label when auto-save is active"
+	},
+	"optionsTitle": {
+		"message": "选项",
+		"description": "Options page title"
+	},
+	"optionsUserInterfaceSubTitle": {
+		"message": "用户界面",
+		"description": "Options sub-title: 'User interface'"
+	},
+	"optionAddMenuEntry": {
+		"message": "在页面的上下文菜单中添加 SingleFile 条目",
+		"description": "Options page label: 'add entry in the context menu of the webpage'"
+	},
+	"optionDisplayShadow": {
+		"message": "在处理过程中用阴影覆盖页面",
+		"description": "Options page label: 'overlay a shadow on the page during processing'"
+	},
+	"optionDisplayInfobar": {
+		"message": "在查看一个已保存的页面时显示信息栏",
+		"description": "Options page label: 'display an infobar when viewing a saved page'"
+	},
+	"optionInfobarTemplate": {
+		"message": "信息栏内容模板",
+		"description": "Options page label: 'template of the infobar content'"
+	},
+	"optionBlockMixedContent": {
+		"message": "拦截混合內容",
+		"description": "Options page label: 'block mixed content'"
+	},
+	"optionSaveOriginalURLs": {
+		"message": "嵌入原始资源链接",
+		"description": "Options page label: 'save original URLs of embedded resources'"
+	},
+	"optionIncludeInfobar": {
+		"message": "在已保存页面中将信息栏包括在内",
+		"description": "Options page label: 'include the infobar in the saved page'"
+	},
+	"optionConfirmInfobar": {
+		"message": "打开一个提示对话框来编辑信息栏内容",
+		"description": "Options page label: 'open a prompt dialog to edit the infobar content'"
+	},
+	"optionAutoClose": {
+		"message": "页面保存后自动关闭该标签页",
+		"description": "Options page label: 'auto-close the tab after the page is saved'"
+	},
+	"optionsFileNameSubTitle": {
+		"message": "文件名",
+		"description": "Options sub-title: 'File name'"
+	},
+	"optionFilenameTemplate": {
+		"message": "模板",
+		"description": "Options page label: 'template'"
+	},
+	"optionFilenameMaxLength": {
+		"message": "最大长度(字节)",
+		"description": "Options page label: 'max length (bytes)'"
+	},
+	"optionConfirmFilename": {
+		"message": "打开 “另存为” 对话框以确认文件名",
+		"description": "Options page label: 'open the \"Save as\" dialog to confirm the file name'"
+	},
+	"optionFilenameConflictAction": {
+		"message": "文件名冲突解决方案",
+		"description": "Options page label: 'filename conflict resolution'"
+	},
+	"optionFilenameConflictActionUniquify": {
+		"message": "创建一个唯一名称",
+		"description": "Value for 'filename conflict resolution' option: 'create a unique name'"
+	},
+	"optionFilenameConflictActionOverwrite": {
+		"message": "覆盖现有文件",
+		"description": "Value for 'filename conflict resolution' option: 'overwrite the existing file'"
+	},
+	"optionFilenameConflictActionPrompt": {
+		"message": "指定一个新名称",
+		"description": "Value for 'name conflict resolution' option: 'prompt for a name'"
+	},
+	"optionFilenameConflictActionSkip": {
+		"message": "跳过重复文件",
+		"description": "Value for 'filename conflict resolution' option: 'skip duplicate files'"
+	},
+	"optionsHTMLContentSubTitle": {
+		"message": "HTML 内容",
+		"description": "Options sub-title: 'HTML content'"
+	},
+	"optionCompressHTML": {
+		"message": "压缩 HTML 内容",
+		"description": "Options page label: 'compress HTML content'"
+	},
+	"optionRemoveImports": {
+		"message": "移除 HTML 导入",
+		"description": "Options page label: 'remove HTML imports'"
+	},
+	"optionRemoveFrames": {
+		"message": "移除框架",
+		"description": "Options page label: 'remove frames'"
+	},
+	"optionRemoveHiddenElements": {
+		"message": "移除隐藏元素",
+		"description": "Options page label: 'remove hidden elements'"
+	},
+	"optionsImagesSubTitle": {
+		"message": "图片",
+		"description": "Options sub-title: 'Images'"
+	},
+	"optionGroupDuplicateImages": {
+		"message": "将重复图片分组到一起",
+		"description": "Options page label: 'group duplicate images together'"
+	},
+	"optionLoadDeferredImages": {
+		"message": "保存延迟加载的图像",
+		"description": "Options page label: 'save deferred images'"
+	},
+	"optionLoadDeferredImagesMaxIdleTime": {
+		"message": "最长空闲时间(毫秒)",
+		"description": "Options page label: 'maximum idle time (ms)'"
+	},
+	"optionLoadDeferredImagesKeepZoomLevel": {
+		"message": "缩小页面",
+		"description": "Options page label: 'zoom out the page'"
+	},
+	"optionRemoveAlternativeImages": {
+		"message": "移除用于备选分辨率的图片",
+		"description": "Options page label: 'remove images for alternative screen resolutions'"
+	},
+	"optionsFontsSubTitle": {
+		"message": "字体",
+		"description": "Options sub-title: 'Fonts'"
+	},
+	"optionRemoveUnusedFonts": {
+		"message": "移除未使用字体",
+		"description": "Options page label: 'remove unused fonts'"
+	},
+	"optionRemoveAlternativeFonts": {
+		"message": "移除备选字体",
+		"description": "Options page label: 'remove alternative fonts'"
+	},
+	"optionsStylesheetsSubTitle": {
+		"message": "样式表",
+		"description": "Options sub-title: 'Stylesheets'"
+	},
+	"optionCompressCSS": {
+		"message": "压缩 CSS 内容",
+		"description": "Options page label: 'compress CSS content'"
+	},
+	"optionMoveStylesInHead": {
+		"message": "move in the head element the styles found outside of it",
+		"description": "Options page label: 'move in the head element the styles found outside of it'"
+	},
+	"optionRemoveUnusedStyles": {
+		"message": "移除未使用的样式",
+		"description": "Options page label: 'remove unused styles'"
+	},
+	"optionRemoveAlternativeMedias": {
+		"message": "移除用于备选设备屏幕的样式表",
+		"description": "Options page label: 'remove stylesheets for alternative devices to screens'"
+	},
+	"optionsOtherResourcesSubTitle": {
+		"message": "其他资源",
+		"description": "Options sub-title: 'Other resources'"
+	},
+	"optionRemoveScripts": {
+		"message": "移除脚本",
+		"description": "Options page label: 'remove scripts'"
+	},
+	"optionRemoveVideo": {
+		"message": "移除视频资源",
+		"description": "Options page label: 'remove video sources'"
+	},
+	"optionRemoveAudio": {
+		"message": "移除音频资源",
+		"description": "Options page label: 'remove audio sources'"
+	},
+	"optionsDestionationSubTitle": {
+		"message": "目的地",
+		"description": "Options sub-title: 'Destination'"
+	},
+	"optionsBookmarkSubTitle": {
+		"message": "书签",
+		"description": "Options sub-title: 'Bookmarks'"
+	},
+	"optionsAutoSaveSubTitle": {
+		"message": "自动保存",
+		"description": "Options sub-title: 'Auto-save'"
+	},
+	"optionsDeleteDisplayedRulesConfirm": {
+		"message": "确认删除所有已显示规则",
+		"description": "Popup text 'Confirm the deletion of all displayed rules'"
+	},
+	"optionsDeleteRulesTooltip": {
+		"message": "删除所有已显示规则",
+		"description": "Popup text 'Delete all displayed rules'"
+	},
+	"optionsAutoSettingsSubTitle": {
+		"message": "自动设置 规则",
+		"description": "Options sub-title: 'Auto-settings rules'"
+	},
+	"optionsAutoSettingsUrl": {
+		"message": "网址",
+		"description": "Options label in the Auto-settings rules: 'URL'"
+	},
+	"optionsAutoSettingsUrlPlaceholder": {
+		"message": "输入完整的或部分网址 (例如 example.com)",
+		"description": "Placeholder in the Auto-settings rules: 'Type a complete or partial URL (e.g. example.com)'"
+	},
+	"optionsAutoSettingsProfile": {
+		"message": "配置文件",
+		"description": "Options label in the Auto-settings rules: 'Profile'"
+	},
+	"optionsAutoSettingsAutoSaveProfile": {
+		"message": "自动保存配置文件",
+		"description": "Options label in the Auto-settings rules: 'Auto-save profile'"
+	},
+	"optionsAutoSettingsShowAllProfiles": {
+		"message": "显示所有配置文件",
+		"description": "Options label in the Auto-settings rules: 'display all profiles'"
+	},
+	"optionsAutoSettingsShowAutoSaveProfile": {
+		"message": "显示 “自动保存配置文件” 列",
+		"description": "Options label in the Auto-settings rules: 'display 'Auto-save profile' column'"
+	},
+	"optionsUpdateRuleTooltip": {
+		"message": "更新规则",
+		"description": "Popup text 'Update the rule' in the options page"
+	},
+	"optionsDeleteRuleTooltip": {
+		"message": "删除规则",
+		"description": "Popup text 'Delete the rule' in the options page"
+	},
+	"optionsAddRuleTooltip": {
+		"message": "添加规则",
+		"description": "Popup text 'Add the rule' in the options page"
+	},
+	"optionsValidateChangesTooltip": {
+		"message": "验证更改",
+		"description": "Popup text 'Validate changes' in the options page"
+	},
+	"optionsDeleteRuleConfirm": {
+		"message": "确认删除所选规则",
+		"description": "Popup text 'Confirm the deletion of the selected rule' in the options page"
+	},
+	"optionAutoSaveLoadOrUnload": {
+		"message": "在页面加载完成后或开始卸载时进行自动保存",
+		"description": "auto-save after page load or on page unload"
+	},
+	"optionAutoSaveLoad": {
+		"message": "在页面加载完成后进行自动保存",
+		"description": "Options page label: 'auto-save after page load'"
+	},
+	"optionAutoSaveUnload": {
+		"message": "在页面开始卸载时进行自动保存",
+		"description": "Options page label: 'auto-save on page unload'"
+	},
+	"optionAutoSaveDiscard": {
+		"message": "在页面丢弃时进行自动保存",
+		"description": "Options page label: 'auto-save on tab discard'"
+	},
+	"optionAutoSaveRemove": {
+		"message": "在页面移除时进行自动保存",
+		"description": "Options page label: 'auto-save on tab removal'"
+	},
+	"optionAutoSaveDelay": {
+		"message": "页面加载完成后延迟该时间再进行自动保存(秒)",
+		"description": "Options page label: 'auto-save waiting delay after page load (s)'"
+	},
+	"optionAutoSaveRepeat": {
+		"message": "定期自动保存",
+		"description": "Options page label: 'auto-save periodically'"
+	},
+	"optionAutoSaveRepeatDelay": {
+		"message": "周期(秒)",
+		"description": "Options page label: 'period (s)'"
+	},
+	"optionAutoSaveExternalSave": {
+		"message": "使用 SingleFile Companion 保存页面",
+		"description": "Options page label: 'save the page with SingleFile Companion'"
+	},
+	"optionsEditorSubTitle": {
+		"message": "标注编辑器",
+		"description": "Options sub-title: 'Annotation editor'"
+	},
+	"optionOpenEditor": {
+		"message": "在保存前对该页面进行标注编辑",
+		"description": "Options page label: 'annotate the page before saving'"
+	},
+	"optionOpenSavedPage": {
+		"message": "在新标签页中打开保存后的页面",
+		"description": "Options page label: 'open saved pages in a new tab'"
+	},
+	"optionAutoOpenEditor": {
+		"message": "在标注编辑器中打开用 SingleFile 保存的页面",
+		"description": "Options page label: 'open pages saved with SingleFile in the annotation editor'"
+	},
+	"optionDefaultEditorMode": {
+		"message": "默认模式",
+		"description": "Options page label: 'default mode'"
+	},
+	"optionDefaultEditorModeNormal": {
+		"message": "常规",
+		"description": "Options page label: 'default mode > normal'"
+	},
+	"optionDefaultEditorModeEdit": {
+		"message": "编辑模式",
+		"description": "Options page label: 'default mode > edit the page'"
+	},
+	"optionDefaultEditorModeFormat": {
+		"message": "格式化页面",
+		"description": "Options page label: 'default mode > format the page'"
+	},
+	"optionDefaultEditorModeCut": {
+		"message": "删除内部文档元素",
+		"description": "Options page label: 'default mode > remove elements'"
+	},
+	"optionDefaultEditorModeCutExternal": {
+		"message": "删除外部文档元素",
+		"description": "Options page label: 'default mode > remove external elements'"
+	},
+	"optionApplySystemTheme": {
+		"message": "在标注编辑器中打开页面时应用系统主题样式",
+		"description": "Title of the button 'apply the system theme when formatting a page'"
+	},
+	"optionWarnUnsavedPage": {
+		"message": "离开标注编辑器时提醒保存已修改的内容",
+		"description": "Title of the button 'warn if leaving page with unsaved changes'"
+	},
+	"optionsMiscSubTitle": {
+		"message": "杂项",
+		"description": "Options sub-title: 'Misc.'"
+	},
+	"optionBackgroundSave": {
+		"message": "在后台保存页面",
+		"description": "Options page label: 'save pages in background'"
+	},
+	"optionDisplayStats": {
+		"message": "处理完成后在控制台中显示统计数据",
+		"description": "Options page label: 'display stats in the console after processing'"
+	},
+	"optionSetMaxResourceSize": {
+		"message": "设置嵌入式资源的大小上限",
+		"description": "Options page label: 'set a maximum size for embedded resources'"
+	},
+	"optionMaxResourceSize": {
+		"message": "大小上限(兆字节)",
+		"description": "Options page label: 'maximum size (MB)'"
+	},
+	"optionPassReferrerOnError": {
+		"message": "跨域请求失败时添加来源地址头信息(Referer)",
+		"description": "Options page label: 'pass \"Referer\" header after a cross-origin request error'"
+	},
+	"optionSaveRawPage": {
+		"message": "保存原始页面",
+		"description": "Options page label: 'save raw page'"
+	},
+	"optionInsertMetaCSP": {
+		"message": "设置内容安全策略",
+		"description": "Options page label: 'set content security policy'"
+	},
+	"optionSaveToClipboard": {
+		"message": "保存到剪切板",
+		"description": "Options page label: 'copy to clipboard'"
+	},
+	"optionSaveToFilesystem": {
+		"message": "保存到文件系统",
+		"description": "Options page label: 'save to filesystem'"
+	},
+	"optionAddProof": {
+		"message": "添加证明文件存在的指纹",
+		"description": "Options page label: 'add proof of existence'"
+	},
+	"optionsAddProofConfirm": {
+		"message": "请确认您是否允许 SingleFile 将您要保存的每个页面的 SHA256 哈希值发送给 Woleet API 。您可以在帮助页面或者通过点击该选项旁的问号找到此功能的更多信息。",
+		"description": "Popup text displayed wen enabling the option 'add proof of existence'"
+	},
+	"optionWoleetKey": {
+		"message": "访问令牌",
+		"description": "Options page label: 'access token'"
+	},
+	"optionSaveToGDrive": {
+		"message": "保存到 Google Drive",
+		"description": "Options page label: 'upload to Google Drive'"
+	},
+	"optionSaveToGitHub": {
+		"message": "保存到 GitHub",
+		"description": "Options page label: 'upload to GitHub'"
+	},
+	"optionGitHubToken": {
+		"message": "访问令牌",
+		"description": "Options page label: 'access token'"
+	},
+	"optionGitHubUser": {
+		"message": "用户名",
+		"description": "Options page label: 'user name'"
+	},
+	"optionGitHubRepository": {
+		"message": "仓库名称",
+		"description": "Options page label: 'repository name'"
+	},
+	"optionGitHubBranch": {
+		"message": "分支名称",
+		"description": "Options page label: 'branch name'"
+	},
+	"optionSaveWithCompanion": {
+		"message": "使用 SingleFile Companion 保存",
+		"description": "Options page label: 'save with SingleFile Companion'"
+	},
+	"optionSaveCreatedBookmarks": {
+		"message": "创建新书签时保存其对应页面",
+		"description": "Options page label: 'save the page of a newly created bookmark'"
+	},
+	"optionReplaceBookmarkURL": {
+		"message": "将新书签的链接指向已保存页面",
+		"description": "Options page label: 'link the new bookmark to the saved page'"
+	},
+	"optionAllowedBookmarkFolders": {
+		"message": "允许文件夹",
+		"description": "Options page label: 'allowed folders'"
+	},
+	"optionIgnoredBookmarkFolders": {
+		"message": "忽略文件夹",
+		"description": "Options page label: 'ignored folders'"
+	},
+	"optionsHelpLink": {
+		"message": "帮助",
+		"description": "Options help link"
+	},
+	"optionSynchronize": {
+		"message": "同步选项",
+		"description": "Options label: 'synchronize options'"
+	},
+	"optionsResetButton": {
+		"message": "重置",
+		"description": "Options button: 'Reset'"
+	},
+	"optionsResetTooltip": {
+		"message": "重置所有选项为默认值",
+		"description": "Options 'Reset' button tooltip"
+	},
+	"optionsResetConfirm": {
+		"message": "确认重置所有选项或当前配置文件",
+		"description": "Popup text 'Confirm the reset of all options or the current profile' in the options page"
+	},
+	"optionsResetAllButton": {
+		"message": "重置所有选项",
+		"description": "Options confirm button: 'Reset all options'"
+	},
+	"optionsResetCurrentButton": {
+		"message": "重置当前配置文件",
+		"description": "Options confirm button: 'Reset current profile'"
+	},
+	"optionsOKButton": {
+		"message": "确定",
+		"description": "Options confirm button: 'OK'"
+	},
+	"optionsCancelButton": {
+		"message": "取消",
+		"description": "Options confirm button: 'Cancel'"
+	},
+	"optionsExportButton": {
+		"message": "导出",
+		"description": "Options button: 'Export'"
+	},
+	"optionsImportButton": {
+		"message": "导入",
+		"description": "Options button: 'Import'"
+	},
+	"logPanelDeferredImages": {
+		"message": "延迟加载的图像",
+		"description": "Label 'Deferred images' in the log panel"
+	},
+	"logPanelFrameContents": {
+		"message": "框架内容",
+		"description": "Label 'Frame contents' in the log panel"
+	},
+	"logPanelStep": {
+		"message": "步骤",
+		"description": "Label 'Step' (for 'Step x / 4') in the log panel"
+	},
+	"logPanelWidth": {
+		"message": "122",
+		"description": "Width of the log panel in pixels, it should be adjusted for the longest label beginning with 'log' (e.g. 'logPanelDeferredImages')"
+	},
+	"profileDefaultSettings": {
+		"message": "默认设置",
+		"description": "Label 'Default settings' of the default settings in the options page"
+	},
+	"profileDisabled": {
+		"message": "已禁用",
+		"description": "Label 'Disabled' of the disabled profile name in the options page"
+	},
+	"profileAddButtonTooltip": {
+		"message": "新增配置文件",
+		"description": "Tooltip 'Add a new profile' in the options page"
+	},
+	"profileRenameButtonTooltip": {
+		"message": "重命名配置文件",
+		"description": "Tooltip 'Rename the profile' in the options page"
+	},
+	"profileDeleteButtonTooltip": {
+		"message": "删除配置文件",
+		"description": "Tooltip 'Delete the profile' in the options page"
+	},
+	"profileAddPrompt": {
+		"message": "新增配置文件",
+		"description": "Popup text 'Enter a name for this new profile' in the options page"
+	},
+	"profileDeleteConfirm": {
+		"message": "确认删除所选配置文件?",
+		"description": "Popup text 'Confirm the deletion of the selected profile' in the options page"
+	},
+	"profileRenamePrompt": {
+		"message": "重命名配置文件",
+		"description": "Popup text 'Enter a new name for the selected profile' in the options page"
+	},
+	"editorAddYellowNote": {
+		"message": "添加黄色标注",
+		"description": "Title of the button 'Add a yellow note' in the editor"
+	},
+	"editorAddPinkNote": {
+		"message": "添加粉色标注",
+		"description": "Title of the button 'Add a pink note' in the editor"
+	},
+	"editorAddBlueNote": {
+		"message": "添加蓝色标注",
+		"description": "Title of the button 'Add a blue note' in the editor"
+	},
+	"editorAddGreenNote": {
+		"message": "添加绿色标注",
+		"description": "Title of the button 'Add a green note' in the editor"
+	},
+	"editorHighlightYellow": {
+		"message": "将所选文本高亮为黄色",
+		"description": "Title of the button 'Highlight selected text in yellow' in the editor"
+	},
+	"editorHighlightPink": {
+		"message": "将所选文本高亮为粉色",
+		"description": "Title of the button 'Highlight selected text in pink' in the editor"
+	},
+	"editorHighlightBlue": {
+		"message": "将所选文本高亮为蓝色",
+		"description": "Title of the button 'Highlight selected text in blue' in the editor"
+	},
+	"editorHighlightGreen": {
+		"message": "将所选文本高亮为绿色",
+		"description": "Title of the button 'Highlight selected text in green' in the editor"
+	},
+	"editorToggleNotes": {
+		"message": "显示/隐藏 标注",
+		"description": "Title of the button 'Display/hide notes' in the editor"
+	},
+	"editorToggleHighlights": {
+		"message": "显示/隐藏 高亮文本",
+		"description": "Title of the button 'Display/hide the highlighted text' in the editor"
+	},
+	"editorRemoveHighlight": {
+		"message": "移除所选高亮文本",
+		"description": "Title of the button 'Remove the selected highlighted text' in the editor"
+	},
+	"editorEditPage": {
+		"message": "启用/禁用 编辑模式",
+		"description": "Title of the button 'Enable/disable read-only' in the editor"
+	},
+	"editorFormatPage": {
+		"message": "格式化页面以提升可读性",
+		"description": "Title of the button 'Format the page for better readability' in the editor"
+	},
+	"editorCutInnerPage": {
+		"message": "启用/禁用 点击时删除内部文档元素",
+		"description": "Title of the button 'Enable/disable removing of internal elements' in the editor"
+	},
+	"editorCutOuterPage": {
+		"message": "启用/禁用 点击时删除外部文档元素",
+		"description": "Title of the button 'Enable/disable removing of external elements' in the editor"
+	},
+	"editorUndoCutPage": {
+		"message": "撤销上次移除元素的操作",
+		"description": "Title of the button 'Restore last removed element' in the editor"
+	},
+	"editorUndoAllCutPage": {
+		"message": "撤销所有移除元素的操作",
+		"description": "Title of the button 'Restore all removed elements' in the editor"
+	},
+	"editorRedoCutPage": {
+		"message": "恢复上次移除元素的操作",
+		"description": "Title of the button 'Remove last restored element' in the editor"
+	},
+	"editorSavePage": {
+		"message": "保存该页面",
+		"description": "Title of the button 'Save the page' in the editor"
+	},
+	"editorPrintPage": {
+		"message": "打印页面",
+		"description": "Title of the button 'Print the page' in the editor"
+	},
+	"pendingsTitle": {
+		"message": "挂起保存项",
+		"description": "Title of the pending save page 'Pending saves' in the editor"
+	},
+	"pendingsCancelAllButton": {
+		"message": "取消全部",
+		"description": "Pending saves button 'Cancel all'"
+	},
+	"pendingsTitleTitle": {
+		"message": "标题",
+		"description": "Title of the first column in the table of the pending saves 'Title'"
+	},
+	"pendingsURLTitle": {
+		"message": "网址",
+		"description": "Title of the first column in the table of the pending saves 'URL'"
+	},
+	"pendingsStatusTitle": {
+		"message": "状态",
+		"description": "Title of the second column in the table of the pending saves 'status'"
+	},
+	"pendingsPendingStatus": {
+		"message": "正在挂起",
+		"description": "Value of 'status' for pending saves"
+	},
+	"pendingsProcessingStatus": {
+		"message": "正在处理",
+		"description": "Value of 'status' for current saves"
+	},
+	"pendingsCancellingStatus": {
+		"message": "正在取消",
+		"description": "Value of 'status' for cancelled saves"
+	},
+	"pendingsNoPendings": {
+		"message": "没有挂起中的保存项",
+		"description": "Label displayed when they are no pending saves"
+	},
+	"pendingsAddUrlsButton": {
+		"message": "添加网址",
+		"description": "button 'Add URLs'"
+	},
+	"pendingsAddUrls": {
+		"message": "请按行输入网址列表",
+		"description": "Label of the add URLs input"
+	},
+	"pendingsAddUrlsOKButton": {
+		"message": "确定",
+		"description": "Add URLs popup confirm button: 'OK'"
+	},
+	"pendingsAddUrlsCancelButton": {
+		"message": "取消",
+		"description": "Add URLs popup cancel button: 'Cancel'"
+	}
+}

+ 781 - 777
_locales/zh_TW/messages.json

@@ -1,778 +1,782 @@
 {
-    "extensionDescription": {
-        "message": "將一個完整的頁面保存到單個 HTML 文件中",
-        "description": "Description of the extension."
-    },
-    "commandSaveSelectedTabs": {
-        "message": "保存選中標籤頁或其中的選中內容",
-        "description": "Command (Ctrl+Shift+Y): 'Save the selected tabs or their selected contents'"
-    },
-    "commandSaveAllTabs": {
-        "message": "保存所有標籤頁",
-        "description": "Command (Ctrl+Shift+U): 'Save all tabs'"
-    },
-    "menuSavePage": {
-        "message": "使用 SingleFile 保存頁面",
-        "description": "Menu entry: 'Save page with SingleFile'"
-    },
-    "menuSaveSelectedLinks": {
-        "message": "保存所選鏈接",
-        "description": "Menu entry: 'Save selected links'"
-    },
-    "menuEditPage": {
-        "message": "標註頁面...",
-        "description": "Menu entry: 'Annotate the page...'"
-    },
-    "menuEditAndSavePage": {
-        "message": "標註並保存該頁面...",
-        "description": "Menu entry: 'Annotate and save the page...'"
-    },
-    "menuSaveWithProfile": {
-        "message": "使用指定的配置文件保存頁面",
-        "description": "Menu entry: 'Save with profile'"
-    },
-    "menuViewPendingSaves": {
-        "message": "查看掛起的保存項...",
-        "description": "Menu entry: 'View pending saves...'"
-    },
-    "menuSelectProfile": {
-        "message": "選擇默認配置文件",
-        "description": "Menu entry: 'Select the default profile'"
-    },
-    "menuUpdateRule": {
-        "message": "選擇當前規則的配置文件",
-        "description": "Menu entry: 'Select the profile of the current rule'"
-    },
-    "menuCreateDomainRule": {
-        "message": "選擇當前域名的配置文件",
-        "description": "Menu entry: 'Select the profile of the current domain'"
-    },
-    "menuSaveSelection": {
-        "message": "保存選中部分",
-        "description": "Menu entry: 'Save selection'"
-    },
-    "menuSaveFrame": {
-        "message": "保存框架",
-        "description": "Menu entry: 'Save frame'"
-    },
-    "menuSaveTabs": {
-        "message": "保存標籤頁",
-        "description": "Menu entry (SingleFile button only): 'Save tabs'"
-    },
-    "menuSaveSelectedTabs": {
-        "message": "保存選中標籤頁",
-        "description": "Menu entry: 'Save selected tabs'"
-    },
-    "menuSaveUnpinnedTabs": {
-        "message": "保存未固定標籤頁",
-        "description": "Menu entry: 'Save unpinned tabs'"
-    },
-    "menuSaveAllTabs": {
-        "message": "保存所有標籤頁",
-        "description": "Menu entry: 'Save all tabs'"
-    },
-    "menuAutoSave": {
-        "message": "自動保存",
-        "description": "Menu entry: 'Auto-save'"
-    },
-    "menuAutoSaveDisabled": {
-        "message": "已禁用",
-        "description": "Menu entry: 'Auto-save' > Disabled'"
-    },
-    "menuAutoSaveTab": {
-        "message": "自動保存此標籤頁",
-        "description": "Menu entry: 'Auto-save' > Auto-save this tab'"
-    },
-    "menuAutoSaveUnpinnedTabs": {
-        "message": "自動保存未固定標籤頁",
-        "description": "Menu entry: 'Auto-save' > Auto-save unpinned tabs'"
-    },
-    "menuAutoSaveAllTabs": {
-        "message": "自動保存所有標籤頁",
-        "description": "Menu entry: 'Auto-save' > Auto-save all tabs'"
-    },
-    "buttonDefaultTooltip": {
-        "message": "使用 SingleFile 保存頁面",
-        "description": "Button title: 'Save page with SingleFile'"
-    },
-    "buttonBlockedBadge": {
-        "message": "🚫",
-        "description": "Button badge when the page is blocked: '🚫'"
-    },
-    "buttonBlockedTooltip": {
-        "message": "SingleFile 無法保存此頁面",
-        "description": "Button title: 'This page cannot be saved with SingleFile'"
-    },
-    "buttonInitializingTooltip": {
-        "message": "正在初始化 SingleFile",
-        "description": "Button title during initialization: 'Initializing SingleFile (x/2)'"
-    },
-    "buttonInitializingBadge": {
-        "message": "•••",
-        "description": "Badge label during initialization: '•••'"
-    },
-    "buttonSaveProgressTooltip": {
-        "message": "保存進度:",
-        "description": "Button title during save: 'Save progress: xx%'"
-    },
-    "buttonUploadProgressTooltip": {
-        "message": "上傳進度: ",
-        "description": "Button title during save: 'Upload progress: xx%'"
-    },
-    "buttonOKBadge": {
-        "message": "完成",
-        "description": "Badge label: 'OK'"
-    },
-    "buttonErrorBadge": {
-        "message": "錯誤",
-        "description": "Badge label for unexpected errors"
-    },
-    "buttonAutoSaveActiveTooltip": {
-        "message": "自動保存活動頁面",
-        "description": "Button title: 'Auto-save active'"
-    },
-    "buttonAutoSaveActiveBadge": {
-        "message": "[自動]",
-        "description": "Badge label when auto-save is active"
-    },
-    "optionsTitle": {
-        "message": "選項",
-        "description": "Options page title"
-    },
-    "optionsUserInterfaceSubTitle": {
-        "message": "用戶界面",
-        "description": "Options sub-title: 'User interface'"
-    },
-    "optionAddMenuEntry": {
-        "message": "在頁面的上下文菜單中添加 SingleFile 條目",
-        "description": "Options page label: 'add entry in the context menu of the webpage'"
-    },
-    "optionDisplayShadow": {
-        "message": "在處理過程中用陰影覆蓋頁面",
-        "description": "Options page label: 'overlay a shadow on the page during processing'"
-    },
-    "optionDisplayInfobar": {
-        "message": "在查看一個已保存的頁面時顯示信息欄",
-        "description": "Options page label: 'display an infobar when viewing a saved page'"
-    },
-    "optionInfobarTemplate": {
-        "message": "信息欄內容模板",
-        "description": "Options page label: 'template of the infobar content'"
-    },
-    "optionBlockMixedContent": {
-        "message": "攔截混合內容",
-        "description": "Options page label: 'block mixed content'"
-    },
-    "optionSaveOriginalURLs": {
-        "message": "嵌入原始資源鏈接",
-        "description": "Options page label: 'save original URLs of embedded resources'"
-    },
-    "optionIncludeInfobar": {
-        "message": "在已保存頁面中將信息欄包括在內",
-        "description": "Options page label: 'include the infobar in the saved page'"
-    },
-    "optionConfirmInfobar": {
-        "message": "打開一個提示對話框來編輯信息欄內容",
-        "description": "Options page label: 'open a prompt dialog to edit the infobar content'"
-    },
-    "optionAutoClose": {
-        "message": "頁面保存後自動關閉該標籤頁",
-        "description": "Options page label: 'auto-close the tab after the page is saved'"
-    },
-    "optionsFileNameSubTitle": {
-        "message": "文件名",
-        "description": "Options sub-title: 'File name'"
-    },
-    "optionFilenameTemplate": {
-        "message": "模板",
-        "description": "Options page label: 'template'"
-    },
-    "optionFilenameMaxLength": {
-        "message": "最大長度(字節)",
-        "description": "Options page label: 'max length (bytes)'"
-    },
-    "optionConfirmFilename": {
-        "message": "打開 “另存為” 對話框以確認文件名",
-        "description": "Options page label: 'open the \"Save as\" dialog to confirm the file name'"
-    },
-    "optionFilenameConflictAction": {
-        "message": "文件名衝突解決方案",
-        "description": "Options page label: 'filename conflict resolution'"
-    },
-    "optionFilenameConflictActionUniquify": {
-        "message": "創建一個唯一名稱",
-        "description": "Value for 'filename conflict resolution' option: 'create a unique name'"
-    },
-    "optionFilenameConflictActionOverwrite": {
-        "message": "覆蓋現有文件",
-        "description": "Value for 'filename conflict resolution' option: 'overwrite the existing file'"
-    },
-    "optionFilenameConflictActionPrompt": {
-        "message": "指定一個新名稱",
-        "description": "Value for 'name conflict resolution' option: 'prompt for a name'"
-    },
-    "optionFilenameConflictActionSkip": {
-        "message": "跳過重複文件",
-        "description": "Value for 'filename conflict resolution' option: 'skip duplicate files'"
-    },
-    "optionsHTMLContentSubTitle": {
-        "message": "HTML 內容",
-        "description": "Options sub-title: 'HTML content'"
-    },
-    "optionCompressHTML": {
-        "message": "壓縮 HTML 內容",
-        "description": "Options page label: 'compress HTML content'"
-    },
-    "optionRemoveImports": {
-        "message": "移除 HTML 導入",
-        "description": "Options page label: 'remove HTML imports'"
-    },
-    "optionRemoveFrames": {
-        "message": "移除框架",
-        "description": "Options page label: 'remove frames'"
-    },
-    "optionRemoveHiddenElements": {
-        "message": "移除隱藏元素",
-        "description": "Options page label: 'remove hidden elements'"
-    },
-    "optionsImagesSubTitle": {
-        "message": "圖片",
-        "description": "Options sub-title: 'Images'"
-    },
-    "optionGroupDuplicateImages": {
-        "message": "將重複圖片分組到一起",
-        "description": "Options page label: 'group duplicate images together'"
-    },
-    "optionLoadDeferredImages": {
-        "message": "保存延遲加載的圖像",
-        "description": "Options page label: 'save deferred images'"
-    },
-    "optionLoadDeferredImagesMaxIdleTime": {
-        "message": "最長空閒時間(毫秒)",
-        "description": "Options page label: 'maximum idle time (ms)'"
-    },
-    "optionLoadDeferredImagesKeepZoomLevel": {
-        "message": "縮小頁面",
-        "description": "Options page label: 'zoom out the page'"
-    },
-    "optionRemoveAlternativeImages": {
-        "message": "移除用於備選分辨率的圖片",
-        "description": "Options page label: 'remove images for alternative screen resolutions'"
-    },
-    "optionsFontsSubTitle": {
-        "message": "字體",
-        "description": "Options sub-title: 'Fonts'"
-    },
-    "optionRemoveUnusedFonts": {
-        "message": "移除未使用字體",
-        "description": "Options page label: 'remove unused fonts'"
-    },
-    "optionRemoveAlternativeFonts": {
-        "message": "移除備選字體",
-        "description": "Options page label: 'remove alternative fonts'"
-    },
-    "optionsStylesheetsSubTitle": {
-        "message": "樣式表",
-        "description": "Options sub-title: 'Stylesheets'"
-    },
-    "optionCompressCSS": {
-        "message": "壓縮 CSS 內容",
-        "description": "Options page label: 'compress CSS content'"
-    },
-    "optionRemoveUnusedStyles": {
-        "message": "移除未使用的樣式",
-        "description": "Options page label: 'remove unused styles'"
-    },
-    "optionRemoveAlternativeMedias": {
-        "message": "移除用於備選設備屏幕的樣式表",
-        "description": "Options page label: 'remove stylesheets for alternative devices to screens'"
-    },
-    "optionsOtherResourcesSubTitle": {
-        "message": "其他資源",
-        "description": "Options sub-title: 'Other resources'"
-    },
-    "optionRemoveScripts": {
-        "message": "移除腳本",
-        "description": "Options page label: 'remove scripts'"
-    },
-    "optionRemoveVideo": {
-        "message": "移除視頻資源",
-        "description": "Options page label: 'remove video sources'"
-    },
-    "optionRemoveAudio": {
-        "message": "移除音頻資源",
-        "description": "Options page label: 'remove audio sources'"
-    },
-    "optionsDestionationSubTitle": {
-        "message": "目的地",
-        "description": "Options sub-title: 'Destination'"
-    },
-    "optionsBookmarkSubTitle": {
-        "message": "書籤",
-        "description": "Options sub-title: 'Bookmarks'"
-    },
-    "optionsAutoSaveSubTitle": {
-        "message": "自動保存",
-        "description": "Options sub-title: 'Auto-save'"
-    },
-    "optionsDeleteDisplayedRulesConfirm": {
-        "message": "確認刪除所有已顯示規則",
-        "description": "Popup text 'Confirm the deletion of all displayed rules'"
-    },
-    "optionsDeleteRulesTooltip": {
-        "message": "刪除所有已顯示規則",
-        "description": "Popup text 'Delete all displayed rules'"
-    },
-    "optionsAutoSettingsSubTitle": {
-        "message": "自動設置 規則",
-        "description": "Options sub-title: 'Auto-settings rules'"
-    },
-    "optionsAutoSettingsUrl": {
-        "message": "網址",
-        "description": "Options label in the Auto-settings rules: 'URL'"
-    },
-    "optionsAutoSettingsUrlPlaceholder": {
-        "message": "輸入完整的或部分網址 (例如 example.com)",
-        "description": "Placeholder in the Auto-settings rules: 'Type a complete or partial URL (e.g. example.com)'"
-    },
-    "optionsAutoSettingsProfile": {
-        "message": "配置文件",
-        "description": "Options label in the Auto-settings rules: 'Profile'"
-    },
-    "optionsAutoSettingsAutoSaveProfile": {
-        "message": "自動保存配置文件",
-        "description": "Options label in the Auto-settings rules: 'Auto-save profile'"
-    },
-    "optionsAutoSettingsShowAllProfiles": {
-        "message": "顯示所有配置文件",
-        "description": "Options label in the Auto-settings rules: 'display all profiles'"
-    },
-    "optionsAutoSettingsShowAutoSaveProfile": {
-        "message": "顯示 “自動保存配置文件” 列",
-        "description": "Options label in the Auto-settings rules: 'display 'Auto-save profile' column'"
-    },
-    "optionsUpdateRuleTooltip": {
-        "message": "更新規則",
-        "description": "Popup text 'Update the rule' in the options page"
-    },
-    "optionsDeleteRuleTooltip": {
-        "message": "刪除規則",
-        "description": "Popup text 'Delete the rule' in the options page"
-    },
-    "optionsAddRuleTooltip": {
-        "message": "添加規則",
-        "description": "Popup text 'Add the rule' in the options page"
-    },
-    "optionsValidateChangesTooltip": {
-        "message": "驗證更改",
-        "description": "Popup text 'Validate changes' in the options page"
-    },
-    "optionsDeleteRuleConfirm": {
-        "message": "確認刪除所選規則",
-        "description": "Popup text 'Confirm the deletion of the selected rule' in the options page"
-    },
-    "optionAutoSaveLoadOrUnload": {
-        "message": "在頁面加載完成後或開始卸載時進行自動保存",
-        "description": "auto-save after page load or on page unload"
-    },
-    "optionAutoSaveLoad": {
-        "message": "在頁面加載完成後進行自動保存",
-        "description": "Options page label: 'auto-save after page load'"
-    },
-    "optionAutoSaveUnload": {
-        "message": "在頁面開始卸載時進行自動保存",
-        "description": "Options page label: 'auto-save on page unload'"
-    },
-    "optionAutoSaveDiscard": {
-        "message": "在頁面丟棄時進行自動保存",
-        "description": "Options page label: 'auto-save on tab discard'"
-    },
-    "optionAutoSaveRemove": {
-        "message": "在頁面移除時進行自動保存",
-        "description": "Options page label: 'auto-save on tab removal'"
-    },
-    "optionAutoSaveDelay": {
-        "message": "頁面加載完成後延遲該時間再進行自動保存(秒)",
-        "description": "Options page label: 'auto-save waiting delay after page load (s)'"
-    },
-    "optionAutoSaveRepeat": {
-        "message": "定期自動保存",
-        "description": "Options page label: 'auto-save periodically'"
-    },
-    "optionAutoSaveRepeatDelay": {
-        "message": "週期(秒)",
-        "description": "Options page label: 'period (s)'"
-    },
-    "optionAutoSaveExternalSave": {
-        "message": "使用 SingleFile Companion 保存頁面",
-        "description": "Options page label: 'save the page with SingleFile Companion'"
-    },
-    "optionsEditorSubTitle": {
-        "message": "標註編輯器",
-        "description": "Options sub-title: 'Annotation editor'"
-    },
-    "optionOpenEditor": {
-        "message": "在保存前對該頁面進行標註編輯",
-        "description": "Options page label: 'annotate the page before saving'"
-    },
-    "optionOpenSavedPage": {
-        "message": "在新標籤頁中打開保存後的頁面",
-        "description": "Options page label: 'open saved pages in a new tab'"
-    },
-    "optionAutoOpenEditor": {
-        "message": "在標註編輯器中打開用 SingleFile 保存的頁面",
-        "description": "Options page label: 'open pages saved with SingleFile in the annotation editor'"
-    },
-    "optionDefaultEditorMode": {
-        "message": "默認模式",
-        "description": "Options page label: 'default mode'"
-    },
-    "optionDefaultEditorModeNormal": {
-        "message": "常規",
-        "description": "Options page label: 'default mode > normal'"
-    },
-    "optionDefaultEditorModeEdit": {
-        "message": "編輯模式",
-        "description": "Options page label: 'default mode > edit the page'"
-    },
-    "optionDefaultEditorModeFormat": {
-        "message": "格式化頁面",
-        "description": "Options page label: 'default mode > format the page'"
-    },
-    "optionDefaultEditorModeCut": {
-        "message": "刪除內部文檔元素",
-        "description": "Options page label: 'default mode > remove elements'"
-    },
-    "optionDefaultEditorModeCutExternal": {
-        "message": "刪除外部文檔元素",
-        "description": "Options page label: 'default mode > remove external elements'"
-    },
-    "optionApplySystemTheme": {
-        "message": "在標註編輯器中打開頁面時應用系統主題樣式",
-        "description": "Title of the button 'apply the system theme when formatting a page'"
-    },
-    "optionWarnUnsavedPage": {
-        "message": "離開標註編輯器時提醒保存已修改的內容",
-        "description": "Title of the button 'warn if leaving page with unsaved changes'"
-    },
-    "optionsMiscSubTitle": {
-        "message": "雜項",
-        "description": "Options sub-title: 'Misc.'"
-    },
-    "optionBackgroundSave": {
-        "message": "在後臺保存頁面",
-        "description": "Options page label: 'save pages in background'"
-    },
-    "optionDisplayStats": {
-        "message": "處理完成後在控制檯中顯示統計數據",
-        "description": "Options page label: 'display stats in the console after processing'"
-    },
-    "optionSetMaxResourceSize": {
-        "message": "設置嵌入式資源的大小上限",
-        "description": "Options page label: 'set a maximum size for embedded resources'"
-    },
-    "optionMaxResourceSize": {
-        "message": "大小上限(兆字節)",
-        "description": "Options page label: 'maximum size (MB)'"
-    },
-    "optionPassReferrerOnError": {
-        "message": "跨域請求失敗時添加來源地址頭信息(Referer)",
-        "description": "Options page label: 'pass \"Referer\" header after a cross-origin request error'"
-    },
-    "optionSaveRawPage": {
-        "message": "保存原始頁面",
-        "description": "Options page label: 'save raw page'"
-    },
-    "optionInsertMetaCSP": {
-        "message": "設置內容安全策略",
-        "description": "Options page label: 'set content security policy'"
-    },
-    "optionSaveToClipboard": {
-        "message": "保存到剪切板",
-        "description": "Options page label: 'copy to clipboard'"
-    },
-    "optionSaveToFilesystem": {
-        "message": "保存到文件系統",
-        "description": "Options page label: 'save to filesystem'"
-    },
-    "optionAddProof": {
-        "message": "添加證明文件存在的指紋",
-        "description": "Options page label: 'add proof of existence'"
-    },
-    "optionsAddProofConfirm": {
-        "message": "請確認您是否允許 SingleFile 將您要保存的每個頁面的 SHA256 哈希值發送給 Woleet API 。您可以在幫助頁面或者通過點擊該選項旁的問號找到此功能的更多信息。",
-        "description": "Popup text displayed wen enabling the option 'add proof of existence'"
-    },
-    "optionWoleetKey": {
-        "message": "訪問令牌",
-        "description": "Options page label: 'access token'"
-    },
-    "optionSaveToGDrive": {
-        "message": "保存到 Google Drive",
-        "description": "Options page label: 'upload to Google Drive'"
-    },
-    "optionSaveToGitHub": {
-        "message": "保存到 GitHub",
-        "description": "Options page label: 'upload to GitHub'"
-    },
-    "optionGitHubToken": {
-        "message": "訪問令牌",
-        "description": "Options page label: 'access token'"
-    },
-    "optionGitHubUser": {
-        "message": "用戶名",
-        "description": "Options page label: 'user name'"
-    },
-    "optionGitHubRepository": {
-        "message": "倉庫名稱",
-        "description": "Options page label: 'repository name'"
-    },
-    "optionGitHubBranch": {
-        "message": "分支名稱",
-        "description": "Options page label: 'branch name'"
-    },
-    "optionSaveWithCompanion": {
-        "message": "使用 SingleFile Companion 保存",
-        "description": "Options page label: 'save with SingleFile Companion'"
-    },
-    "optionSaveCreatedBookmarks": {
-        "message": "創建新書籤時保存其對應頁面",
-        "description": "Options page label: 'save the page of a newly created bookmark'"
-    },
-    "optionReplaceBookmarkURL": {
-        "message": "將新書籤的鏈接指向已保存頁面",
-        "description": "Options page label: 'link the new bookmark to the saved page'"
-    },
-    "optionAllowedBookmarkFolders": {
-        "message": "允許文件夾",
-        "description": "Options page label: 'allowed folders'"
-    },
-    "optionIgnoredBookmarkFolders": {
-        "message": "忽略文件夾",
-        "description": "Options page label: 'ignored folders'"
-    },
-    "optionsHelpLink": {
-        "message": "幫助",
-        "description": "Options help link"
-    },
-    "optionSynchronize": {
-        "message": "同步選項",
-        "description": "Options label: 'synchronize options'"
-    },
-    "optionsResetButton": {
-        "message": "重置",
-        "description": "Options button: 'Reset'"
-    },
-    "optionsResetTooltip": {
-        "message": "重置所有選項為默認值",
-        "description": "Options 'Reset' button tooltip"
-    },
-    "optionsResetConfirm": {
-        "message": "確認重置所有選項或當前配置文件",
-        "description": "Popup text 'Confirm the reset of all options or the current profile' in the options page"
-    },
-    "optionsResetAllButton": {
-        "message": "重置所有選項",
-        "description": "Options confirm button: 'Reset all options'"
-    },
-    "optionsResetCurrentButton": {
-        "message": "重置當前配置文件",
-        "description": "Options confirm button: 'Reset current profile'"
-    },
-    "optionsOKButton": {
-        "message": "確定",
-        "description": "Options confirm button: 'OK'"
-    },
-    "optionsCancelButton": {
-        "message": "取消",
-        "description": "Options confirm button: 'Cancel'"
-    },
-    "optionsExportButton": {
-        "message": "導出",
-        "description": "Options button: 'Export'"
-    },
-    "optionsImportButton": {
-        "message": "導入",
-        "description": "Options button: 'Import'"
-    },
-    "logPanelDeferredImages": {
-        "message": "延遲加載的圖像",
-        "description": "Label 'Deferred images' in the log panel"
-    },
-    "logPanelFrameContents": {
-        "message": "框架內容",
-        "description": "Label 'Frame contents' in the log panel"
-    },
-    "logPanelStep": {
-        "message": "步驟",
-        "description": "Label 'Step' (for 'Step x / 4') in the log panel"
-    },
-    "logPanelWidth": {
-        "message": "122",
-        "description": "Width of the log panel in pixels, it should be adjusted for the longest label beginning with 'log' (e.g. 'logPanelDeferredImages')"
-    },
-    "profileDefaultSettings": {
-        "message": "默認設置",
-        "description": "Label 'Default settings' of the default settings in the options page"
-    },
-    "profileDisabled": {
-        "message": "已禁用",
-        "description": "Label 'Disabled' of the disabled profile name in the options page"
-    },
-    "profileAddButtonTooltip": {
-        "message": "新增配置文件",
-        "description": "Tooltip 'Add a new profile' in the options page"
-    },
-    "profileRenameButtonTooltip": {
-        "message": "重命名配置文件",
-        "description": "Tooltip 'Rename the profile' in the options page"
-    },
-    "profileDeleteButtonTooltip": {
-        "message": "刪除配置文件",
-        "description": "Tooltip 'Delete the profile' in the options page"
-    },
-    "profileAddPrompt": {
-        "message": "新增配置文件",
-        "description": "Popup text 'Enter a name for this new profile' in the options page"
-    },
-    "profileDeleteConfirm": {
-        "message": "確認刪除所選配置文件?",
-        "description": "Popup text 'Confirm the deletion of the selected profile' in the options page"
-    },
-    "profileRenamePrompt": {
-        "message": "重命名配置文件",
-        "description": "Popup text 'Enter a new name for the selected profile' in the options page"
-    },
-    "editorAddYellowNote": {
-        "message": "添加黃色標註",
-        "description": "Title of the button 'Add a yellow note' in the editor"
-    },
-    "editorAddPinkNote": {
-        "message": "添加粉色標註",
-        "description": "Title of the button 'Add a pink note' in the editor"
-    },
-    "editorAddBlueNote": {
-        "message": "添加藍色標註",
-        "description": "Title of the button 'Add a blue note' in the editor"
-    },
-    "editorAddGreenNote": {
-        "message": "添加綠色標註",
-        "description": "Title of the button 'Add a green note' in the editor"
-    },
-    "editorHighlightYellow": {
-        "message": "將所選文本高亮為黃色",
-        "description": "Title of the button 'Highlight selected text in yellow' in the editor"
-    },
-    "editorHighlightPink": {
-        "message": "將所選文本高亮為粉色",
-        "description": "Title of the button 'Highlight selected text in pink' in the editor"
-    },
-    "editorHighlightBlue": {
-        "message": "將所選文本高亮為藍色",
-        "description": "Title of the button 'Highlight selected text in blue' in the editor"
-    },
-    "editorHighlightGreen": {
-        "message": "將所選文本高亮為綠色",
-        "description": "Title of the button 'Highlight selected text in green' in the editor"
-    },
-    "editorToggleNotes": {
-        "message": "顯示/隱藏 標註",
-        "description": "Title of the button 'Display/hide notes' in the editor"
-    },
-    "editorToggleHighlights": {
-        "message": "顯示/隱藏 高亮文本",
-        "description": "Title of the button 'Display/hide the highlighted text' in the editor"
-    },
-    "editorRemoveHighlight": {
-        "message": "移除所選高亮文本",
-        "description": "Title of the button 'Remove the selected highlighted text' in the editor"
-    },
-    "editorEditPage": {
-        "message": "啟用/禁用 編輯模式",
-        "description": "Title of the button 'Enable/disable read-only' in the editor"
-    },
-    "editorFormatPage": {
-        "message": "格式化頁面以提升可讀性",
-        "description": "Title of the button 'Format the page for better readability' in the editor"
-    },
-    "editorCutInnerPage": {
-        "message": "啟用/禁用 點擊時刪除內部文檔元素",
-        "description": "Title of the button 'Enable/disable removing of internal elements' in the editor"
-    },
-    "editorCutOuterPage": {
-        "message": "啟用/禁用 點擊時刪除外部文檔元素",
-        "description": "Title of the button 'Enable/disable removing of external elements' in the editor"
-    },
-    "editorUndoCutPage": {
-        "message": "撤銷上次移除元素的操作",
-        "description": "Title of the button 'Restore last removed element' in the editor"
-    },
-    "editorUndoAllCutPage": {
-        "message": "撤銷所有移除元素的操作",
-        "description": "Title of the button 'Restore all removed elements' in the editor"
-    },
-    "editorRedoCutPage": {
-        "message": "恢復上次移除元素的操作",
-        "description": "Title of the button 'Remove last restored element' in the editor"
-    },
-    "editorSavePage": {
-        "message": "保存該頁面",
-        "description": "Title of the button 'Save the page' in the editor"
-    },
-    "editorPrintPage": {
-        "message": "打印頁面",
-        "description": "Title of the button 'Print the page' in the editor"
-    },
-    "pendingsTitle": {
-        "message": "掛起保存項",
-        "description": "Title of the pending save page 'Pending saves' in the editor"
-    },
-    "pendingsCancelAllButton": {
-        "message": "取消全部",
-        "description": "Pending saves button 'Cancel all'"
-    },
-    "pendingsTitleTitle": {
-        "message": "標題",
-        "description": "Title of the first column in the table of the pending saves 'Title'"
-    },
-    "pendingsURLTitle": {
-        "message": "網址",
-        "description": "Title of the first column in the table of the pending saves 'URL'"
-    },
-    "pendingsStatusTitle": {
-        "message": "狀態",
-        "description": "Title of the second column in the table of the pending saves 'status'"
-    },
-    "pendingsPendingStatus": {
-        "message": "正在掛起",
-        "description": "Value of 'status' for pending saves"
-    },
-    "pendingsProcessingStatus": {
-        "message": "正在處理",
-        "description": "Value of 'status' for current saves"
-    },
-    "pendingsCancellingStatus": {
-        "message": "正在取消",
-        "description": "Value of 'status' for cancelled saves"
-    },
-    "pendingsNoPendings": {
-        "message": "沒有掛起中的保存項",
-        "description": "Label displayed when they are no pending saves"
-    },
-    "pendingsAddUrlsButton": {
-        "message": "添加網址",
-        "description": "button 'Add URLs'"
-    },
-    "pendingsAddUrls": {
-        "message": "請按行輸入網址列表",
-        "description": "Label of the add URLs input"
-    },
-    "pendingsAddUrlsOKButton": {
-        "message": "確定",
-        "description": "Add URLs popup confirm button: 'OK'"
-    },
-    "pendingsAddUrlsCancelButton": {
-        "message": "取消",
-        "description": "Add URLs popup cancel button: 'Cancel'"
-    }
-}
+	"extensionDescription": {
+		"message": "將一個完整的頁面保存到單個 HTML 文件中",
+		"description": "Description of the extension."
+	},
+	"commandSaveSelectedTabs": {
+		"message": "保存選中標籤頁或其中的選中內容",
+		"description": "Command (Ctrl+Shift+Y): 'Save the selected tabs or their selected contents'"
+	},
+	"commandSaveAllTabs": {
+		"message": "保存所有標籤頁",
+		"description": "Command (Ctrl+Shift+U): 'Save all tabs'"
+	},
+	"menuSavePage": {
+		"message": "使用 SingleFile 保存頁面",
+		"description": "Menu entry: 'Save page with SingleFile'"
+	},
+	"menuSaveSelectedLinks": {
+		"message": "保存所選鏈接",
+		"description": "Menu entry: 'Save selected links'"
+	},
+	"menuEditPage": {
+		"message": "標註頁面...",
+		"description": "Menu entry: 'Annotate the page...'"
+	},
+	"menuEditAndSavePage": {
+		"message": "標註並保存該頁面...",
+		"description": "Menu entry: 'Annotate and save the page...'"
+	},
+	"menuSaveWithProfile": {
+		"message": "使用指定的配置文件保存頁面",
+		"description": "Menu entry: 'Save with profile'"
+	},
+	"menuViewPendingSaves": {
+		"message": "查看掛起的保存項...",
+		"description": "Menu entry: 'View pending saves...'"
+	},
+	"menuSelectProfile": {
+		"message": "選擇默認配置文件",
+		"description": "Menu entry: 'Select the default profile'"
+	},
+	"menuUpdateRule": {
+		"message": "選擇當前規則的配置文件",
+		"description": "Menu entry: 'Select the profile of the current rule'"
+	},
+	"menuCreateDomainRule": {
+		"message": "選擇當前域名的配置文件",
+		"description": "Menu entry: 'Select the profile of the current domain'"
+	},
+	"menuSaveSelection": {
+		"message": "保存選中部分",
+		"description": "Menu entry: 'Save selection'"
+	},
+	"menuSaveFrame": {
+		"message": "保存框架",
+		"description": "Menu entry: 'Save frame'"
+	},
+	"menuSaveTabs": {
+		"message": "保存標籤頁",
+		"description": "Menu entry (SingleFile button only): 'Save tabs'"
+	},
+	"menuSaveSelectedTabs": {
+		"message": "保存選中標籤頁",
+		"description": "Menu entry: 'Save selected tabs'"
+	},
+	"menuSaveUnpinnedTabs": {
+		"message": "保存未固定標籤頁",
+		"description": "Menu entry: 'Save unpinned tabs'"
+	},
+	"menuSaveAllTabs": {
+		"message": "保存所有標籤頁",
+		"description": "Menu entry: 'Save all tabs'"
+	},
+	"menuAutoSave": {
+		"message": "自動保存",
+		"description": "Menu entry: 'Auto-save'"
+	},
+	"menuAutoSaveDisabled": {
+		"message": "已禁用",
+		"description": "Menu entry: 'Auto-save' > Disabled'"
+	},
+	"menuAutoSaveTab": {
+		"message": "自動保存此標籤頁",
+		"description": "Menu entry: 'Auto-save' > Auto-save this tab'"
+	},
+	"menuAutoSaveUnpinnedTabs": {
+		"message": "自動保存未固定標籤頁",
+		"description": "Menu entry: 'Auto-save' > Auto-save unpinned tabs'"
+	},
+	"menuAutoSaveAllTabs": {
+		"message": "自動保存所有標籤頁",
+		"description": "Menu entry: 'Auto-save' > Auto-save all tabs'"
+	},
+	"buttonDefaultTooltip": {
+		"message": "使用 SingleFile 保存頁面",
+		"description": "Button title: 'Save page with SingleFile'"
+	},
+	"buttonBlockedBadge": {
+		"message": "🚫",
+		"description": "Button badge when the page is blocked: '🚫'"
+	},
+	"buttonBlockedTooltip": {
+		"message": "SingleFile 無法保存此頁面",
+		"description": "Button title: 'This page cannot be saved with SingleFile'"
+	},
+	"buttonInitializingTooltip": {
+		"message": "正在初始化 SingleFile",
+		"description": "Button title during initialization: 'Initializing SingleFile (x/2)'"
+	},
+	"buttonInitializingBadge": {
+		"message": "•••",
+		"description": "Badge label during initialization: '•••'"
+	},
+	"buttonSaveProgressTooltip": {
+		"message": "保存進度:",
+		"description": "Button title during save: 'Save progress: xx%'"
+	},
+	"buttonUploadProgressTooltip": {
+		"message": "上傳進度: ",
+		"description": "Button title during save: 'Upload progress: xx%'"
+	},
+	"buttonOKBadge": {
+		"message": "完成",
+		"description": "Badge label: 'OK'"
+	},
+	"buttonErrorBadge": {
+		"message": "錯誤",
+		"description": "Badge label for unexpected errors"
+	},
+	"buttonAutoSaveActiveTooltip": {
+		"message": "自動保存活動頁面",
+		"description": "Button title: 'Auto-save active'"
+	},
+	"buttonAutoSaveActiveBadge": {
+		"message": "[自動]",
+		"description": "Badge label when auto-save is active"
+	},
+	"optionsTitle": {
+		"message": "選項",
+		"description": "Options page title"
+	},
+	"optionsUserInterfaceSubTitle": {
+		"message": "用戶界面",
+		"description": "Options sub-title: 'User interface'"
+	},
+	"optionAddMenuEntry": {
+		"message": "在頁面的上下文菜單中添加 SingleFile 條目",
+		"description": "Options page label: 'add entry in the context menu of the webpage'"
+	},
+	"optionDisplayShadow": {
+		"message": "在處理過程中用陰影覆蓋頁面",
+		"description": "Options page label: 'overlay a shadow on the page during processing'"
+	},
+	"optionDisplayInfobar": {
+		"message": "在查看一個已保存的頁面時顯示信息欄",
+		"description": "Options page label: 'display an infobar when viewing a saved page'"
+	},
+	"optionInfobarTemplate": {
+		"message": "信息欄內容模板",
+		"description": "Options page label: 'template of the infobar content'"
+	},
+	"optionBlockMixedContent": {
+		"message": "攔截混合內容",
+		"description": "Options page label: 'block mixed content'"
+	},
+	"optionSaveOriginalURLs": {
+		"message": "嵌入原始資源鏈接",
+		"description": "Options page label: 'save original URLs of embedded resources'"
+	},
+	"optionIncludeInfobar": {
+		"message": "在已保存頁面中將信息欄包括在內",
+		"description": "Options page label: 'include the infobar in the saved page'"
+	},
+	"optionConfirmInfobar": {
+		"message": "打開一個提示對話框來編輯信息欄內容",
+		"description": "Options page label: 'open a prompt dialog to edit the infobar content'"
+	},
+	"optionAutoClose": {
+		"message": "頁面保存後自動關閉該標籤頁",
+		"description": "Options page label: 'auto-close the tab after the page is saved'"
+	},
+	"optionsFileNameSubTitle": {
+		"message": "文件名",
+		"description": "Options sub-title: 'File name'"
+	},
+	"optionFilenameTemplate": {
+		"message": "模板",
+		"description": "Options page label: 'template'"
+	},
+	"optionFilenameMaxLength": {
+		"message": "最大長度(字節)",
+		"description": "Options page label: 'max length (bytes)'"
+	},
+	"optionConfirmFilename": {
+		"message": "打開 “另存為” 對話框以確認文件名",
+		"description": "Options page label: 'open the \"Save as\" dialog to confirm the file name'"
+	},
+	"optionFilenameConflictAction": {
+		"message": "文件名衝突解決方案",
+		"description": "Options page label: 'filename conflict resolution'"
+	},
+	"optionFilenameConflictActionUniquify": {
+		"message": "創建一個唯一名稱",
+		"description": "Value for 'filename conflict resolution' option: 'create a unique name'"
+	},
+	"optionFilenameConflictActionOverwrite": {
+		"message": "覆蓋現有文件",
+		"description": "Value for 'filename conflict resolution' option: 'overwrite the existing file'"
+	},
+	"optionFilenameConflictActionPrompt": {
+		"message": "指定一個新名稱",
+		"description": "Value for 'name conflict resolution' option: 'prompt for a name'"
+	},
+	"optionFilenameConflictActionSkip": {
+		"message": "跳過重複文件",
+		"description": "Value for 'filename conflict resolution' option: 'skip duplicate files'"
+	},
+	"optionsHTMLContentSubTitle": {
+		"message": "HTML 內容",
+		"description": "Options sub-title: 'HTML content'"
+	},
+	"optionCompressHTML": {
+		"message": "壓縮 HTML 內容",
+		"description": "Options page label: 'compress HTML content'"
+	},
+	"optionRemoveImports": {
+		"message": "移除 HTML 導入",
+		"description": "Options page label: 'remove HTML imports'"
+	},
+	"optionRemoveFrames": {
+		"message": "移除框架",
+		"description": "Options page label: 'remove frames'"
+	},
+	"optionRemoveHiddenElements": {
+		"message": "移除隱藏元素",
+		"description": "Options page label: 'remove hidden elements'"
+	},
+	"optionsImagesSubTitle": {
+		"message": "圖片",
+		"description": "Options sub-title: 'Images'"
+	},
+	"optionGroupDuplicateImages": {
+		"message": "將重複圖片分組到一起",
+		"description": "Options page label: 'group duplicate images together'"
+	},
+	"optionLoadDeferredImages": {
+		"message": "保存延遲加載的圖像",
+		"description": "Options page label: 'save deferred images'"
+	},
+	"optionLoadDeferredImagesMaxIdleTime": {
+		"message": "最長空閒時間(毫秒)",
+		"description": "Options page label: 'maximum idle time (ms)'"
+	},
+	"optionLoadDeferredImagesKeepZoomLevel": {
+		"message": "縮小頁面",
+		"description": "Options page label: 'zoom out the page'"
+	},
+	"optionRemoveAlternativeImages": {
+		"message": "移除用於備選分辨率的圖片",
+		"description": "Options page label: 'remove images for alternative screen resolutions'"
+	},
+	"optionsFontsSubTitle": {
+		"message": "字體",
+		"description": "Options sub-title: 'Fonts'"
+	},
+	"optionRemoveUnusedFonts": {
+		"message": "移除未使用字體",
+		"description": "Options page label: 'remove unused fonts'"
+	},
+	"optionRemoveAlternativeFonts": {
+		"message": "移除備選字體",
+		"description": "Options page label: 'remove alternative fonts'"
+	},
+	"optionsStylesheetsSubTitle": {
+		"message": "樣式表",
+		"description": "Options sub-title: 'Stylesheets'"
+	},
+	"optionCompressCSS": {
+		"message": "壓縮 CSS 內容",
+		"description": "Options page label: 'compress CSS content'"
+	},
+	"optionMoveStylesInHead": {
+		"message": "move in the head element the styles found outside of it",
+		"description": "Options page label: 'move in the head element the styles found outside of it'"
+	},
+	"optionRemoveUnusedStyles": {
+		"message": "移除未使用的樣式",
+		"description": "Options page label: 'remove unused styles'"
+	},
+	"optionRemoveAlternativeMedias": {
+		"message": "移除用於備選設備屏幕的樣式表",
+		"description": "Options page label: 'remove stylesheets for alternative devices to screens'"
+	},
+	"optionsOtherResourcesSubTitle": {
+		"message": "其他資源",
+		"description": "Options sub-title: 'Other resources'"
+	},
+	"optionRemoveScripts": {
+		"message": "移除腳本",
+		"description": "Options page label: 'remove scripts'"
+	},
+	"optionRemoveVideo": {
+		"message": "移除視頻資源",
+		"description": "Options page label: 'remove video sources'"
+	},
+	"optionRemoveAudio": {
+		"message": "移除音頻資源",
+		"description": "Options page label: 'remove audio sources'"
+	},
+	"optionsDestionationSubTitle": {
+		"message": "目的地",
+		"description": "Options sub-title: 'Destination'"
+	},
+	"optionsBookmarkSubTitle": {
+		"message": "書籤",
+		"description": "Options sub-title: 'Bookmarks'"
+	},
+	"optionsAutoSaveSubTitle": {
+		"message": "自動保存",
+		"description": "Options sub-title: 'Auto-save'"
+	},
+	"optionsDeleteDisplayedRulesConfirm": {
+		"message": "確認刪除所有已顯示規則",
+		"description": "Popup text 'Confirm the deletion of all displayed rules'"
+	},
+	"optionsDeleteRulesTooltip": {
+		"message": "刪除所有已顯示規則",
+		"description": "Popup text 'Delete all displayed rules'"
+	},
+	"optionsAutoSettingsSubTitle": {
+		"message": "自動設置 規則",
+		"description": "Options sub-title: 'Auto-settings rules'"
+	},
+	"optionsAutoSettingsUrl": {
+		"message": "網址",
+		"description": "Options label in the Auto-settings rules: 'URL'"
+	},
+	"optionsAutoSettingsUrlPlaceholder": {
+		"message": "輸入完整的或部分網址 (例如 example.com)",
+		"description": "Placeholder in the Auto-settings rules: 'Type a complete or partial URL (e.g. example.com)'"
+	},
+	"optionsAutoSettingsProfile": {
+		"message": "配置文件",
+		"description": "Options label in the Auto-settings rules: 'Profile'"
+	},
+	"optionsAutoSettingsAutoSaveProfile": {
+		"message": "自動保存配置文件",
+		"description": "Options label in the Auto-settings rules: 'Auto-save profile'"
+	},
+	"optionsAutoSettingsShowAllProfiles": {
+		"message": "顯示所有配置文件",
+		"description": "Options label in the Auto-settings rules: 'display all profiles'"
+	},
+	"optionsAutoSettingsShowAutoSaveProfile": {
+		"message": "顯示 “自動保存配置文件” 列",
+		"description": "Options label in the Auto-settings rules: 'display 'Auto-save profile' column'"
+	},
+	"optionsUpdateRuleTooltip": {
+		"message": "更新規則",
+		"description": "Popup text 'Update the rule' in the options page"
+	},
+	"optionsDeleteRuleTooltip": {
+		"message": "刪除規則",
+		"description": "Popup text 'Delete the rule' in the options page"
+	},
+	"optionsAddRuleTooltip": {
+		"message": "添加規則",
+		"description": "Popup text 'Add the rule' in the options page"
+	},
+	"optionsValidateChangesTooltip": {
+		"message": "驗證更改",
+		"description": "Popup text 'Validate changes' in the options page"
+	},
+	"optionsDeleteRuleConfirm": {
+		"message": "確認刪除所選規則",
+		"description": "Popup text 'Confirm the deletion of the selected rule' in the options page"
+	},
+	"optionAutoSaveLoadOrUnload": {
+		"message": "在頁面加載完成後或開始卸載時進行自動保存",
+		"description": "auto-save after page load or on page unload"
+	},
+	"optionAutoSaveLoad": {
+		"message": "在頁面加載完成後進行自動保存",
+		"description": "Options page label: 'auto-save after page load'"
+	},
+	"optionAutoSaveUnload": {
+		"message": "在頁面開始卸載時進行自動保存",
+		"description": "Options page label: 'auto-save on page unload'"
+	},
+	"optionAutoSaveDiscard": {
+		"message": "在頁面丟棄時進行自動保存",
+		"description": "Options page label: 'auto-save on tab discard'"
+	},
+	"optionAutoSaveRemove": {
+		"message": "在頁面移除時進行自動保存",
+		"description": "Options page label: 'auto-save on tab removal'"
+	},
+	"optionAutoSaveDelay": {
+		"message": "頁面加載完成後延遲該時間再進行自動保存(秒)",
+		"description": "Options page label: 'auto-save waiting delay after page load (s)'"
+	},
+	"optionAutoSaveRepeat": {
+		"message": "定期自動保存",
+		"description": "Options page label: 'auto-save periodically'"
+	},
+	"optionAutoSaveRepeatDelay": {
+		"message": "週期(秒)",
+		"description": "Options page label: 'period (s)'"
+	},
+	"optionAutoSaveExternalSave": {
+		"message": "使用 SingleFile Companion 保存頁面",
+		"description": "Options page label: 'save the page with SingleFile Companion'"
+	},
+	"optionsEditorSubTitle": {
+		"message": "標註編輯器",
+		"description": "Options sub-title: 'Annotation editor'"
+	},
+	"optionOpenEditor": {
+		"message": "在保存前對該頁面進行標註編輯",
+		"description": "Options page label: 'annotate the page before saving'"
+	},
+	"optionOpenSavedPage": {
+		"message": "在新標籤頁中打開保存後的頁面",
+		"description": "Options page label: 'open saved pages in a new tab'"
+	},
+	"optionAutoOpenEditor": {
+		"message": "在標註編輯器中打開用 SingleFile 保存的頁面",
+		"description": "Options page label: 'open pages saved with SingleFile in the annotation editor'"
+	},
+	"optionDefaultEditorMode": {
+		"message": "默認模式",
+		"description": "Options page label: 'default mode'"
+	},
+	"optionDefaultEditorModeNormal": {
+		"message": "常規",
+		"description": "Options page label: 'default mode > normal'"
+	},
+	"optionDefaultEditorModeEdit": {
+		"message": "編輯模式",
+		"description": "Options page label: 'default mode > edit the page'"
+	},
+	"optionDefaultEditorModeFormat": {
+		"message": "格式化頁面",
+		"description": "Options page label: 'default mode > format the page'"
+	},
+	"optionDefaultEditorModeCut": {
+		"message": "刪除內部文檔元素",
+		"description": "Options page label: 'default mode > remove elements'"
+	},
+	"optionDefaultEditorModeCutExternal": {
+		"message": "刪除外部文檔元素",
+		"description": "Options page label: 'default mode > remove external elements'"
+	},
+	"optionApplySystemTheme": {
+		"message": "在標註編輯器中打開頁面時應用系統主題樣式",
+		"description": "Title of the button 'apply the system theme when formatting a page'"
+	},
+	"optionWarnUnsavedPage": {
+		"message": "離開標註編輯器時提醒保存已修改的內容",
+		"description": "Title of the button 'warn if leaving page with unsaved changes'"
+	},
+	"optionsMiscSubTitle": {
+		"message": "雜項",
+		"description": "Options sub-title: 'Misc.'"
+	},
+	"optionBackgroundSave": {
+		"message": "在後臺保存頁面",
+		"description": "Options page label: 'save pages in background'"
+	},
+	"optionDisplayStats": {
+		"message": "處理完成後在控制檯中顯示統計數據",
+		"description": "Options page label: 'display stats in the console after processing'"
+	},
+	"optionSetMaxResourceSize": {
+		"message": "設置嵌入式資源的大小上限",
+		"description": "Options page label: 'set a maximum size for embedded resources'"
+	},
+	"optionMaxResourceSize": {
+		"message": "大小上限(兆字節)",
+		"description": "Options page label: 'maximum size (MB)'"
+	},
+	"optionPassReferrerOnError": {
+		"message": "跨域請求失敗時添加來源地址頭信息(Referer)",
+		"description": "Options page label: 'pass \"Referer\" header after a cross-origin request error'"
+	},
+	"optionSaveRawPage": {
+		"message": "保存原始頁面",
+		"description": "Options page label: 'save raw page'"
+	},
+	"optionInsertMetaCSP": {
+		"message": "設置內容安全策略",
+		"description": "Options page label: 'set content security policy'"
+	},
+	"optionSaveToClipboard": {
+		"message": "保存到剪切板",
+		"description": "Options page label: 'copy to clipboard'"
+	},
+	"optionSaveToFilesystem": {
+		"message": "保存到文件系統",
+		"description": "Options page label: 'save to filesystem'"
+	},
+	"optionAddProof": {
+		"message": "添加證明文件存在的指紋",
+		"description": "Options page label: 'add proof of existence'"
+	},
+	"optionsAddProofConfirm": {
+		"message": "請確認您是否允許 SingleFile 將您要保存的每個頁面的 SHA256 哈希值發送給 Woleet API 。您可以在幫助頁面或者通過點擊該選項旁的問號找到此功能的更多信息。",
+		"description": "Popup text displayed wen enabling the option 'add proof of existence'"
+	},
+	"optionWoleetKey": {
+		"message": "訪問令牌",
+		"description": "Options page label: 'access token'"
+	},
+	"optionSaveToGDrive": {
+		"message": "保存到 Google Drive",
+		"description": "Options page label: 'upload to Google Drive'"
+	},
+	"optionSaveToGitHub": {
+		"message": "保存到 GitHub",
+		"description": "Options page label: 'upload to GitHub'"
+	},
+	"optionGitHubToken": {
+		"message": "訪問令牌",
+		"description": "Options page label: 'access token'"
+	},
+	"optionGitHubUser": {
+		"message": "用戶名",
+		"description": "Options page label: 'user name'"
+	},
+	"optionGitHubRepository": {
+		"message": "倉庫名稱",
+		"description": "Options page label: 'repository name'"
+	},
+	"optionGitHubBranch": {
+		"message": "分支名稱",
+		"description": "Options page label: 'branch name'"
+	},
+	"optionSaveWithCompanion": {
+		"message": "使用 SingleFile Companion 保存",
+		"description": "Options page label: 'save with SingleFile Companion'"
+	},
+	"optionSaveCreatedBookmarks": {
+		"message": "創建新書籤時保存其對應頁面",
+		"description": "Options page label: 'save the page of a newly created bookmark'"
+	},
+	"optionReplaceBookmarkURL": {
+		"message": "將新書籤的鏈接指向已保存頁面",
+		"description": "Options page label: 'link the new bookmark to the saved page'"
+	},
+	"optionAllowedBookmarkFolders": {
+		"message": "允許文件夾",
+		"description": "Options page label: 'allowed folders'"
+	},
+	"optionIgnoredBookmarkFolders": {
+		"message": "忽略文件夾",
+		"description": "Options page label: 'ignored folders'"
+	},
+	"optionsHelpLink": {
+		"message": "幫助",
+		"description": "Options help link"
+	},
+	"optionSynchronize": {
+		"message": "同步選項",
+		"description": "Options label: 'synchronize options'"
+	},
+	"optionsResetButton": {
+		"message": "重置",
+		"description": "Options button: 'Reset'"
+	},
+	"optionsResetTooltip": {
+		"message": "重置所有選項為默認值",
+		"description": "Options 'Reset' button tooltip"
+	},
+	"optionsResetConfirm": {
+		"message": "確認重置所有選項或當前配置文件",
+		"description": "Popup text 'Confirm the reset of all options or the current profile' in the options page"
+	},
+	"optionsResetAllButton": {
+		"message": "重置所有選項",
+		"description": "Options confirm button: 'Reset all options'"
+	},
+	"optionsResetCurrentButton": {
+		"message": "重置當前配置文件",
+		"description": "Options confirm button: 'Reset current profile'"
+	},
+	"optionsOKButton": {
+		"message": "確定",
+		"description": "Options confirm button: 'OK'"
+	},
+	"optionsCancelButton": {
+		"message": "取消",
+		"description": "Options confirm button: 'Cancel'"
+	},
+	"optionsExportButton": {
+		"message": "導出",
+		"description": "Options button: 'Export'"
+	},
+	"optionsImportButton": {
+		"message": "導入",
+		"description": "Options button: 'Import'"
+	},
+	"logPanelDeferredImages": {
+		"message": "延遲加載的圖像",
+		"description": "Label 'Deferred images' in the log panel"
+	},
+	"logPanelFrameContents": {
+		"message": "框架內容",
+		"description": "Label 'Frame contents' in the log panel"
+	},
+	"logPanelStep": {
+		"message": "步驟",
+		"description": "Label 'Step' (for 'Step x / 4') in the log panel"
+	},
+	"logPanelWidth": {
+		"message": "122",
+		"description": "Width of the log panel in pixels, it should be adjusted for the longest label beginning with 'log' (e.g. 'logPanelDeferredImages')"
+	},
+	"profileDefaultSettings": {
+		"message": "默認設置",
+		"description": "Label 'Default settings' of the default settings in the options page"
+	},
+	"profileDisabled": {
+		"message": "已禁用",
+		"description": "Label 'Disabled' of the disabled profile name in the options page"
+	},
+	"profileAddButtonTooltip": {
+		"message": "新增配置文件",
+		"description": "Tooltip 'Add a new profile' in the options page"
+	},
+	"profileRenameButtonTooltip": {
+		"message": "重命名配置文件",
+		"description": "Tooltip 'Rename the profile' in the options page"
+	},
+	"profileDeleteButtonTooltip": {
+		"message": "刪除配置文件",
+		"description": "Tooltip 'Delete the profile' in the options page"
+	},
+	"profileAddPrompt": {
+		"message": "新增配置文件",
+		"description": "Popup text 'Enter a name for this new profile' in the options page"
+	},
+	"profileDeleteConfirm": {
+		"message": "確認刪除所選配置文件?",
+		"description": "Popup text 'Confirm the deletion of the selected profile' in the options page"
+	},
+	"profileRenamePrompt": {
+		"message": "重命名配置文件",
+		"description": "Popup text 'Enter a new name for the selected profile' in the options page"
+	},
+	"editorAddYellowNote": {
+		"message": "添加黃色標註",
+		"description": "Title of the button 'Add a yellow note' in the editor"
+	},
+	"editorAddPinkNote": {
+		"message": "添加粉色標註",
+		"description": "Title of the button 'Add a pink note' in the editor"
+	},
+	"editorAddBlueNote": {
+		"message": "添加藍色標註",
+		"description": "Title of the button 'Add a blue note' in the editor"
+	},
+	"editorAddGreenNote": {
+		"message": "添加綠色標註",
+		"description": "Title of the button 'Add a green note' in the editor"
+	},
+	"editorHighlightYellow": {
+		"message": "將所選文本高亮為黃色",
+		"description": "Title of the button 'Highlight selected text in yellow' in the editor"
+	},
+	"editorHighlightPink": {
+		"message": "將所選文本高亮為粉色",
+		"description": "Title of the button 'Highlight selected text in pink' in the editor"
+	},
+	"editorHighlightBlue": {
+		"message": "將所選文本高亮為藍色",
+		"description": "Title of the button 'Highlight selected text in blue' in the editor"
+	},
+	"editorHighlightGreen": {
+		"message": "將所選文本高亮為綠色",
+		"description": "Title of the button 'Highlight selected text in green' in the editor"
+	},
+	"editorToggleNotes": {
+		"message": "顯示/隱藏 標註",
+		"description": "Title of the button 'Display/hide notes' in the editor"
+	},
+	"editorToggleHighlights": {
+		"message": "顯示/隱藏 高亮文本",
+		"description": "Title of the button 'Display/hide the highlighted text' in the editor"
+	},
+	"editorRemoveHighlight": {
+		"message": "移除所選高亮文本",
+		"description": "Title of the button 'Remove the selected highlighted text' in the editor"
+	},
+	"editorEditPage": {
+		"message": "啟用/禁用 編輯模式",
+		"description": "Title of the button 'Enable/disable read-only' in the editor"
+	},
+	"editorFormatPage": {
+		"message": "格式化頁面以提升可讀性",
+		"description": "Title of the button 'Format the page for better readability' in the editor"
+	},
+	"editorCutInnerPage": {
+		"message": "啟用/禁用 點擊時刪除內部文檔元素",
+		"description": "Title of the button 'Enable/disable removing of internal elements' in the editor"
+	},
+	"editorCutOuterPage": {
+		"message": "啟用/禁用 點擊時刪除外部文檔元素",
+		"description": "Title of the button 'Enable/disable removing of external elements' in the editor"
+	},
+	"editorUndoCutPage": {
+		"message": "撤銷上次移除元素的操作",
+		"description": "Title of the button 'Restore last removed element' in the editor"
+	},
+	"editorUndoAllCutPage": {
+		"message": "撤銷所有移除元素的操作",
+		"description": "Title of the button 'Restore all removed elements' in the editor"
+	},
+	"editorRedoCutPage": {
+		"message": "恢復上次移除元素的操作",
+		"description": "Title of the button 'Remove last restored element' in the editor"
+	},
+	"editorSavePage": {
+		"message": "保存該頁面",
+		"description": "Title of the button 'Save the page' in the editor"
+	},
+	"editorPrintPage": {
+		"message": "打印頁面",
+		"description": "Title of the button 'Print the page' in the editor"
+	},
+	"pendingsTitle": {
+		"message": "掛起保存項",
+		"description": "Title of the pending save page 'Pending saves' in the editor"
+	},
+	"pendingsCancelAllButton": {
+		"message": "取消全部",
+		"description": "Pending saves button 'Cancel all'"
+	},
+	"pendingsTitleTitle": {
+		"message": "標題",
+		"description": "Title of the first column in the table of the pending saves 'Title'"
+	},
+	"pendingsURLTitle": {
+		"message": "網址",
+		"description": "Title of the first column in the table of the pending saves 'URL'"
+	},
+	"pendingsStatusTitle": {
+		"message": "狀態",
+		"description": "Title of the second column in the table of the pending saves 'status'"
+	},
+	"pendingsPendingStatus": {
+		"message": "正在掛起",
+		"description": "Value of 'status' for pending saves"
+	},
+	"pendingsProcessingStatus": {
+		"message": "正在處理",
+		"description": "Value of 'status' for current saves"
+	},
+	"pendingsCancellingStatus": {
+		"message": "正在取消",
+		"description": "Value of 'status' for cancelled saves"
+	},
+	"pendingsNoPendings": {
+		"message": "沒有掛起中的保存項",
+		"description": "Label displayed when they are no pending saves"
+	},
+	"pendingsAddUrlsButton": {
+		"message": "添加網址",
+		"description": "button 'Add URLs'"
+	},
+	"pendingsAddUrls": {
+		"message": "請按行輸入網址列表",
+		"description": "Label of the add URLs input"
+	},
+	"pendingsAddUrlsOKButton": {
+		"message": "確定",
+		"description": "Add URLs popup confirm button: 'OK'"
+	},
+	"pendingsAddUrlsCancelButton": {
+		"message": "取消",
+		"description": "Add URLs popup cancel button: 'Cancel'"
+	}
+}

+ 18 - 2
cli/args.js

@@ -30,7 +30,15 @@ const args = require("yargs")
 		yargs.positional("output", { description: "Output filename", type: "string" });
 	})
 	.default({
+		"accept-headers": {
+			"font": "application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8",
+			"image": "image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8",
+			"stylesheet": "text/css,*/*;q=0.1",
+			"script": "*/*",
+			"document": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
+		},
 		"back-end": "puppeteer",
+		"block-mixed-content": false,
 		"browser-server": "",
 		"browser-headless": true,
 		"browser-executable-path": "",
@@ -64,6 +72,8 @@ const args = require("yargs")
 		"max-parallel-workers": 8,
 		"max-resource-size-enabled": false,
 		"max-resource-size": 10,
+		"move-styles-in-head": false,
+		"output-directory": "",
 		"remove-hidden-elements": true,
 		"remove-unused-styles": true,
 		"remove-unused-fonts": true,
@@ -75,6 +85,7 @@ const args = require("yargs")
 		"remove-alternative-fonts": true,
 		"remove-alternative-medias": true,
 		"remove-alternative-images": true,
+		"save-original-urls": false,
 		"save-raw-page": false,
 		"web-driver-executable-path": "",
 		"user-script-enabled": true,
@@ -85,11 +96,12 @@ const args = require("yargs")
 		"crawl-max-depth": 1,
 		"crawl-external-links-max-depth": 1,
 		"crawl-replace-urls": false,
-		"crawl-rewrite-rule": [],
-		"output-directory": ""
+		"crawl-rewrite-rule": []		
 	})
 	.options("back-end", { description: "Back-end to use" })
 	.choices("back-end", ["jsdom", "puppeteer", "webdriver-chromium", "webdriver-gecko", "puppeteer-firefox", "playwright-firefox", "playwright-chromium"])
+	.options("block-mixed-content", { description: "Block mixed contents" })
+	.boolean("block-mixed-content")
 	.options("browser-server", { description: "Server to connect to (puppeteer only for now)" })
 	.string("browser-server")
 	.options("browser-headless", { description: "Run the browser in headless mode (puppeteer, webdriver-gecko, webdriver-chromium)" })
@@ -182,6 +194,8 @@ const args = require("yargs")
 	.boolean("max-resource-size-enabled")
 	.options("max-resource-size", { description: "Maximum size of embedded resources in MB (i.e. images, stylesheets, scripts and iframes)" })
 	.number("max-resource-size")
+	.options("move-styles-in-head", { description: "Move style elements outside the head element into the head element" })
+	.boolean("move-styles-in-head")
 	.options("remove-frames", { description: "Remove frames (puppeteer, webdriver-gecko, webdriver-chromium)" })
 	.boolean("remove-frames")
 	.options("remove-hidden-elements", { description: "Remove HTML elements which are not displayed" })
@@ -204,6 +218,8 @@ const args = require("yargs")
 	.boolean("remove-alternative-medias")
 	.options("remove-alternative-images", { description: "Remove images for alternative sizes of screen" })
 	.boolean("remove-alternative-images")
+	.options("save-original-urls", { description: "Save the original URLS in the embedded contents" })
+	.boolean("save-original-urls")
 	.options("save-raw-page", { description: "Save the original page without interpreting it into the browser (puppeteer, webdriver-gecko, webdriver-chromium)" })
 	.boolean("save-raw-page")
 	.options("urls-file", { description: "Path to a text file containing a list of URLs (separated by a newline) to save" })

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

@@ -121,6 +121,7 @@ const DEFAULT_CONFIG = {
 		script: "*/*",
 		document: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
 	},
+	moveStylesInHead: false,
 	woleetKey: ""
 };
 

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

@@ -48,6 +48,7 @@ const githubBranchLabel = document.getElementById("githubBranchLabel");
 const saveWithCompanionLabel = document.getElementById("saveWithCompanionLabel");
 const compressHTMLLabel = document.getElementById("compressHTMLLabel");
 const compressCSSLabel = document.getElementById("compressCSSLabel");
+const moveStylesInHeadLabel = document.getElementById("moveStylesInHeadLabel");
 const loadDeferredImagesLabel = document.getElementById("loadDeferredImagesLabel");
 const loadDeferredImagesMaxIdleTimeLabel = document.getElementById("loadDeferredImagesMaxIdleTimeLabel");
 const loadDeferredImagesKeepZoomLevelLabel = document.getElementById("loadDeferredImagesKeepZoomLevelLabel");
@@ -148,6 +149,7 @@ const saveWithCompanionInput = document.getElementById("saveWithCompanionInput")
 const saveToFilesystemInput = document.getElementById("saveToFilesystemInput");
 const compressHTMLInput = document.getElementById("compressHTMLInput");
 const compressCSSInput = document.getElementById("compressCSSInput");
+const moveStylesInHeadInput = document.getElementById("moveStylesInHeadInput");
 const loadDeferredImagesInput = document.getElementById("loadDeferredImagesInput");
 const loadDeferredImagesMaxIdleTimeInput = document.getElementById("loadDeferredImagesMaxIdleTimeInput");
 const loadDeferredImagesKeepZoomLevelInput = document.getElementById("loadDeferredImagesKeepZoomLevelInput");
@@ -495,6 +497,7 @@ githubBranchLabel.textContent = browser.i18n.getMessage("optionGitHubBranch");
 saveWithCompanionLabel.textContent = browser.i18n.getMessage("optionSaveWithCompanion");
 compressHTMLLabel.textContent = browser.i18n.getMessage("optionCompressHTML");
 compressCSSLabel.textContent = browser.i18n.getMessage("optionCompressCSS");
+moveStylesInHeadLabel.textContent = browser.i18n.getMessage("optionMoveStylesInHead");
 loadDeferredImagesLabel.textContent = browser.i18n.getMessage("optionLoadDeferredImages");
 loadDeferredImagesMaxIdleTimeLabel.textContent = browser.i18n.getMessage("optionLoadDeferredImagesMaxIdleTime");
 loadDeferredImagesKeepZoomLevelLabel.textContent = browser.i18n.getMessage("optionLoadDeferredImagesKeepZoomLevel");
@@ -713,6 +716,7 @@ async function refresh(profileName) {
 	saveToFilesystemInput.checked = !profileOptions.saveToGDrive && !profileOptions.saveToGitHub && !profileOptions.saveWithCompanion && !saveToClipboardInput.checked;
 	compressHTMLInput.checked = profileOptions.compressHTML;
 	compressCSSInput.checked = profileOptions.compressCSS;
+	moveStylesInHeadInput.checked = profileOptions.moveStylesInHead;
 	loadDeferredImagesInput.checked = profileOptions.loadDeferredImages;
 	loadDeferredImagesMaxIdleTimeInput.value = profileOptions.loadDeferredImagesMaxIdleTime;
 	loadDeferredImagesKeepZoomLevelInput.checked = profileOptions.loadDeferredImagesKeepZoomLevel;
@@ -805,6 +809,7 @@ async function update() {
 			saveWithCompanion: saveWithCompanionInput.checked,
 			compressHTML: compressHTMLInput.checked,
 			compressCSS: compressCSSInput.checked,
+			moveStylesInHead: moveStylesInHeadInput.checked,
 			loadDeferredImages: loadDeferredImagesInput.checked,
 			loadDeferredImagesMaxIdleTime: Math.max(loadDeferredImagesMaxIdleTimeInput.value, 0),
 			loadDeferredImagesKeepZoomLevel: loadDeferredImagesKeepZoomLevelInput.checked,

+ 8 - 0
extension/ui/pages/help.html

@@ -268,6 +268,14 @@
 							to save a page.</p>
 						<p class="notice">It is recommended to <u>uncheck</u> this option</p>
 					</li>
+					<li data-options-label="moveStylesInHeadLabel"> <span class="option">Option: move in the head
+							element the styles found outside of it</span>
+						<p>
+							Check this option to move all the style elements found outside the head element into the
+							head element. This can be useful to avoid a FOUC ("flash of unstyled content") when
+							displaying a saved page.</p>
+						<p class="notice">It is recommended to <u>uncheck</u> this option</p>
+					</li>
 				</ul>
 				<p>Images</p>
 				<ul>

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

@@ -133,6 +133,10 @@
 				<label for="compressCSSInput" id="compressCSSLabel"></label>
 				<input type="checkbox" id="compressCSSInput">
 			</div>
+			<div class="option">
+				<label for="moveStylesInHeadInput" id="moveStylesInHeadLabel"></label>
+				<input type="checkbox" id="moveStylesInHeadInput">
+			</div>
 		</details>
 		<details>
 			<summary id="imagesLabel"></summary>

+ 9 - 0
lib/single-file/single-file-core.js

@@ -101,6 +101,7 @@ const STAGES = [{
 		{ action: "insertFonts" },
 		{ action: "insertShadowRootContents" },
 		{ action: "setInputValues" },
+		{ option: "moveStylesInHead", action: "moveStylesInHead" },
 		{ option: "removeScripts", action: "removeScripts" },
 		{ option: "selected", action: "removeUnselectedElements" },
 		{ option: "removeVideoSrc", action: "insertVideoPosters" },
@@ -807,6 +808,14 @@ class Processor {
 		});
 	}
 
+	moveStylesInHead() {
+		this.doc.querySelectorAll("style").forEach(stylesheet => {
+			if (stylesheet.getAttribute(util.STYLE_ATTRIBUTE_NAME) == "") {
+				this.doc.head.appendChild(stylesheet);
+			}
+		});
+	}
+
 	saveFavicon() {
 		let faviconElement = this.doc.querySelector("link[href][rel=\"icon\"]");
 		if (!faviconElement) {

+ 16 - 0
lib/single-file/single-file-helper.js

@@ -39,6 +39,7 @@ const IMAGE_ATTRIBUTE_NAME = "data-single-file-image";
 const POSTER_ATTRIBUTE_NAME = "data-single-file-poster";
 const CANVAS_ATTRIBUTE_NAME = "data-single-file-canvas";
 const HTML_IMPORT_ATTRIBUTE_NAME = "data-single-file-import";
+const STYLE_ATTRIBUTE_NAME = "data-single-file-movable-style";
 const INPUT_VALUE_ATTRIBUTE_NAME = "data-single-file-input-value";
 const LAZY_SRC_ATTRIBUTE_NAME = "data-single-file-lazy-loaded-src";
 const STYLESHEET_ATTRIBUTE_NAME = "data-single-file-stylesheet";
@@ -86,6 +87,7 @@ export {
 	INPUT_VALUE_ATTRIBUTE_NAME,
 	SHADOW_ROOT_ATTRIBUTE_NAME,
 	HTML_IMPORT_ATTRIBUTE_NAME,
+	STYLE_ATTRIBUTE_NAME,
 	LAZY_SRC_ATTRIBUTE_NAME,
 	STYLESHEET_ATTRIBUTE_NAME,
 	SELECTED_CONTENT_ATTRIBUTE_NAME,
@@ -132,6 +134,15 @@ function preProcessDoc(doc, win, options) {
 	let elementsInfo;
 	if (win && doc.documentElement) {
 		elementsInfo = getElementsInfo(win, doc, doc.documentElement, options);
+		if (options.moveStylesInHead) {
+			doc.querySelectorAll("body style, body ~ style").forEach(element => {
+				const computedStyle = win.getComputedStyle(element);
+				if (computedStyle && testHiddenElement(element, computedStyle)) {
+					element.setAttribute(STYLE_ATTRIBUTE_NAME, "");
+					elementsInfo.markedElements.push(element);
+				}
+			});
+		}
 	} else {
 		elementsInfo = {
 			canvases: [],
@@ -397,6 +408,7 @@ function postProcessDoc(doc, markedElements) {
 		element.removeAttribute(HTML_IMPORT_ATTRIBUTE_NAME);
 		element.removeAttribute(STYLESHEET_ATTRIBUTE_NAME);
 		element.removeAttribute(ASYNC_SCRIPT_ATTRIBUTE_NAME);
+		element.removeAttribute(STYLE_ATTRIBUTE_NAME);
 	});
 }
 
@@ -426,6 +438,7 @@ function getSize(win, imageElement, computedStyle) {
 	let pxWidth = imageElement.naturalWidth;
 	let pxHeight = imageElement.naturalHeight;
 	if (!pxWidth && !pxHeight) {
+		const noStyleAttribute = imageElement.getAttribute("style") == null;
 		computedStyle = computedStyle || win.getComputedStyle(imageElement);
 		let removeBorderWidth = false;
 		if (computedStyle.getPropertyValue("box-sizing") == "content-box") {
@@ -455,6 +468,9 @@ function getSize(win, imageElement, computedStyle) {
 		}
 		pxWidth = Math.max(0, imageElement.clientWidth - paddingLeft - paddingRight - borderLeft - borderRight);
 		pxHeight = Math.max(0, imageElement.clientHeight - paddingTop - paddingBottom - borderTop - borderBottom);
+		if (noStyleAttribute) {
+			imageElement.removeAttribute("style");
+		}
 	}
 	return { pxWidth, pxHeight };
 }

+ 1 - 0
lib/single-file/single-file-util.js

@@ -176,6 +176,7 @@ function getInstance(utilOptions) {
 		POSTER_ATTRIBUTE_NAME: helper.POSTER_ATTRIBUTE_NAME,
 		CANVAS_ATTRIBUTE_NAME: helper.CANVAS_ATTRIBUTE_NAME,
 		HTML_IMPORT_ATTRIBUTE_NAME: helper.HTML_IMPORT_ATTRIBUTE_NAME,
+		STYLE_ATTRIBUTE_NAME: helper.STYLE_ATTRIBUTE_NAME,
 		INPUT_VALUE_ATTRIBUTE_NAME: helper.INPUT_VALUE_ATTRIBUTE_NAME,
 		SHADOW_ROOT_ATTRIBUTE_NAME: helper.SHADOW_ROOT_ATTRIBUTE_NAME,
 		PRESERVED_SPACE_ELEMENT_ATTRIBUTE_NAME: helper.PRESERVED_SPACE_ELEMENT_ATTRIBUTE_NAME,