diff --git a/README.md b/README.md
index c4dbe5e3..36987d74 100644
--- a/README.md
+++ b/README.md
@@ -395,6 +395,10 @@ If you want to edit the `.ui` files, use `pyside6-designer` which is included in
If new objects have been added, verify that correct tab order has been applied by using [Tab Order Editing Mode](https://doc.qt.io/qt-6/designer-tab-order.html).
Then use the `gen_ui_files` scripts to autogenerate the python UI.
+When adding or changing translatable strings (`self.tr(...)`), run the
+`gen_translation_files` scripts to regenerate the translation sources and
+recompile them; see `TRANSLATION.md` for the full workflow.
+
An example PR adding a new checkbox is here: https://github.com/ciromattia/kcc/pull/1445
video of adding a new checkbox: https://youtu.be/g3I8DU74C7g
diff --git a/TRANSLATION.md b/TRANSLATION.md
new file mode 100644
index 00000000..19dd0a3e
--- /dev/null
+++ b/TRANSLATION.md
@@ -0,0 +1,126 @@
+# Translating KCC
+
+KCC ships its UI and CLI strings in English by default, with optional
+translations loaded at runtime. This file documents how to keep those
+translations up to date when strings are added or changed.
+
+## Why translation files need maintenance
+
+Translatable strings are wrapped in `self.tr(...)` or
+`QT_TRANSLATE_NOOP('KCCGUI', ...)` in the source. The English text lives in
+the code, but the actual translations live in `translations/*.ts`. If a new
+string is added to the code and the `.ts` files are not regenerated, the new
+string has no translation and silently falls back to English.
+
+The `.ts` files are the human-editable source of truth. The `.qm` files are
+the compiled, runtime-format translations. Both are committed to the
+repository.
+
+## Prerequisites
+
+- Python 3 with PySide6 installed in the active environment, which provides
+ the `pyside6-lupdate`, `pyside6-lrelease`, and `pyside6-rcc` tools.
+- Run all commands from the repository root.
+
+## Updating translations after adding a string
+
+The whole flow is wrapped in one script:
+
+```sh
+./gen_translation_files.sh # macOS / Linux
+gen_translation_files.bat # Windows
+```
+
+It runs three steps in order:
+
+1. `pyside6-lupdate` scans the source files and updates every
+ `translations/*.ts` in place.
+2. `pyside6-lrelease` compiles each `.ts` into its `.qm` runtime file.
+3. `pyside6-rcc` re-bundles the `.qm` files into `KCC_rc.py`, because the
+ `.qm` files are loaded from the Qt resource system, not from disk.
+
+After running the script, open the `.ts` files and fill in the newly added
+`` entries. `lupdate` extracts strings but does not translate
+them.
+
+### Manual equivalent
+
+If you prefer to run the steps yourself, the script is equivalent to:
+
+```sh
+for ts in translations/*.ts; do
+ pyside6-lupdate \
+ kindlecomicconverter/KCC_gui.py \
+ kindlecomicconverter/comic2ebook.py \
+ gui/KCC.ui \
+ gui/MetaEditor.ui \
+ -ts "$ts"
+done
+
+for ts in translations/*.ts; do
+ pyside6-lrelease "$ts" -qm "${ts%.ts}.qm"
+done
+
+pyside6-rcc gui/KCC.qrc > kindlecomicconverter/KCC_rc.py
+```
+
+The source file list is significant. `comic2ebook.py` contains the CLI-side
+messages; omitting it drops 20 strings (250 -> 230 extracted). The `.ui`
+files contribute the `mainWindow` and `editorDialog` contexts.
+
+`pyside6-project` is intentionally not used. Its `lupdate` scans the whole
+project, which would pick up both `gui/KCC.ui` and the generated
+`kindlecomicconverter/KCC_ui.py` and extract the `mainWindow` context twice.
+
+## Generated files and what to commit
+
+| File | Generated by | Commit? |
+|------|--------------|---------|
+| `translations/*.ts` | edited by hand (updated by `lupdate`) | yes |
+| `translations/*.qm` | `pyside6-lrelease` | yes |
+| `kindlecomicconverter/KCC_rc.py` | `pyside6-rcc` | yes |
+
+The `.qm` files are also embedded into `KCC_rc.py` via `gui/KCC.qrc`; both
+the standalone `.qm` and the resource module are kept in sync by the script.
+
+## Adding a new language
+
+1. Generate the new source file:
+ ```sh
+ pyside6-lupdate \
+ kindlecomicconverter/KCC_gui.py \
+ kindlecomicconverter/comic2ebook.py \
+ gui/KCC.ui \
+ gui/MetaEditor.ui \
+ -ts translations/kcc_xx_XX.ts
+ ```
+2. Fill in the `` entries.
+3. Register the language in `kindlecomicconverter/i18n.py` in the
+ `LANGUAGES` dict.
+4. Add the `.qm` to `gui/KCC.qrc` under the `/i18n` prefix:
+ ```xml
+ ../translations/kcc_xx_XX.qm
+ ```
+5. Run `gen_translation_files` to compile and re-bundle the new language.
+
+## Verifying the result
+
+- Run the script twice: the second run should produce no further changes
+ (`git diff` stays empty), confirming the flow is idempotent.
+- Launch KCC and switch languages via the language button; verify the UI,
+ the metadata editor, and the conversion progress messages all switch.
+
+## Common problems
+
+- **`pyside6-lupdate: command not found`** — PySide6 is not installed or the
+ virtual environment is not active. Install with `pip install pyside6`.
+- **Hundreds of `` lines changed after running `lupdate`** — the
+ `-ts` target was written outside `translations/`. Location paths are
+ relative to the `.ts` file, so always update the files in place.
+- **`dropping duplicate messages` warnings from `lrelease`** — a `.ts` file
+ has the same `(context, source)` entry twice. Regenerate it with `lupdate`.
+- **Some strings stay English after switching languages** — the `.qm` was not
+ re-bundled into `KCC_rc.py`. Run `gen_translation_files` (step 3).
+- **`type="vanished"` entries accumulate** — this is normal: `lupdate` marks
+ entries whose source string is no longer found instead of deleting them.
+ `lrelease` skips them, so they do not affect the runtime translations.
diff --git a/gen_translation_files.bat b/gen_translation_files.bat
new file mode 100644
index 00000000..1f97fd7e
--- /dev/null
+++ b/gen_translation_files.bat
@@ -0,0 +1,29 @@
+@echo off
+rem Update translation sources (.ts) and rebuild the runtime translation
+rem files (.qm), then re-bundle the .qm files into the Qt resource module
+rem (KCC_rc.py). Run from the repository root.
+setlocal
+
+where pyside6-lupdate >nul 2>nul || (echo Error: pyside6-lupdate not found. Install it with: pip install pyside6 & exit /b 1)
+where pyside6-lrelease >nul 2>nul || (echo Error: pyside6-lrelease not found. Install it with: pip install pyside6 & exit /b 1)
+where pyside6-rcc >nul 2>nul || (echo Error: pyside6-rcc not found. Install it with: pip install pyside6 & exit /b 1)
+
+rem 1. Update every translation source file in place.
+rem comic2ebook.py must stay in the list: the CLI-side messages live there.
+for %%f in (translations\*.ts) do (
+ pyside6-lupdate kindlecomicconverter\KCC_gui.py kindlecomicconverter\comic2ebook.py gui\KCC.ui gui\MetaEditor.ui -ts "%%f"
+ if errorlevel 1 exit /b 1
+)
+
+rem 2. Compile each .ts into its .qm runtime file.
+for %%f in (translations\*.ts) do (
+ pyside6-lrelease "%%f" -qm "%%~dpnf.qm"
+ if errorlevel 1 exit /b 1
+)
+
+rem 3. Re-bundle the .qm files into KCC_rc.py via the Qt resource file.
+pyside6-rcc gui\KCC.qrc > kindlecomicconverter\KCC_rc.py
+if errorlevel 1 exit /b 1
+
+echo Translation files updated and re-bundled.
+endlocal
diff --git a/gen_translation_files.sh b/gen_translation_files.sh
new file mode 100755
index 00000000..0ff30fb2
--- /dev/null
+++ b/gen_translation_files.sh
@@ -0,0 +1,35 @@
+#!/bin/sh
+# Update translation sources (.ts) and rebuild the runtime translation
+# files (.qm), then re-bundle the .qm files into the Qt resource module
+# (KCC_rc.py). Run from the repository root.
+
+set -e
+
+# Fail early if the PySide6 translation tools are missing.
+for tool in pyside6-lupdate pyside6-lrelease pyside6-rcc; do
+ if ! command -v "$tool" >/dev/null 2>&1; then
+ echo "Error: $tool not found. Install it with: pip install pyside6" >&2
+ exit 1
+ fi
+done
+
+# 1. Update every translation source file in place.
+# comic2ebook.py must stay in the list: the CLI-side messages live there.
+for ts in translations/*.ts; do
+ pyside6-lupdate \
+ kindlecomicconverter/KCC_gui.py \
+ kindlecomicconverter/comic2ebook.py \
+ gui/KCC.ui \
+ gui/MetaEditor.ui \
+ -ts "$ts"
+done
+
+# 2. Compile each .ts into its .qm runtime file.
+for ts in translations/*.ts; do
+ pyside6-lrelease "$ts" -qm "${ts%.ts}.qm"
+done
+
+# 3. Re-bundle the .qm files into KCC_rc.py via the Qt resource file.
+pyside6-rcc gui/KCC.qrc > kindlecomicconverter/KCC_rc.py
+
+echo "Translation files updated and re-bundled."
diff --git a/gui/KCC.qrc b/gui/KCC.qrc
index 84078e35..87b3dbf3 100644
--- a/gui/KCC.qrc
+++ b/gui/KCC.qrc
@@ -34,4 +34,9 @@
../icons/Bindle_Red.png
../icons/fanatical.png
-
+
+ ../translations/kcc_zh_CN.qm
+ ../translations/kcc_ja_JP.qm
+ ../translations/kcc_ko_KR.qm
+
+
\ No newline at end of file
diff --git a/kindlecomicconverter/KCC_gui.py b/kindlecomicconverter/KCC_gui.py
index 85dd8b38..96fa4e7e 100644
--- a/kindlecomicconverter/KCC_gui.py
+++ b/kindlecomicconverter/KCC_gui.py
@@ -21,9 +21,11 @@ from datetime import datetime, timezone
import itertools
import json
from pathlib import Path
-from PySide6.QtCore import (QSize, QUrl, Qt, Signal, QIODeviceBase, QEvent, QThread, QSettings)
-from PySide6.QtGui import (QColor, QIcon, QImage, QKeyEvent, QPixmap, QDesktopServices)
-from PySide6.QtWidgets import (QApplication, QDialogButtonBox, QHBoxLayout, QLabel, QListWidgetItem, QMainWindow, QSizePolicy, QSystemTrayIcon, QFileDialog, QMessageBox, QDialog, QAbstractItemView, QListView, QTreeView, QWidget)
+from PySide6.QtCore import (QSize, QUrl, Qt, Signal, QIODeviceBase, QEvent, QThread, QSettings,
+ QCoreApplication, QT_TRANSLATE_NOOP, QObject)
+from PySide6.QtGui import (QActionGroup, QColor, QIcon, QImage, QKeyEvent, QPixmap, QDesktopServices)
+from PySide6.QtWidgets import (QApplication, QDialogButtonBox, QHBoxLayout, QLabel, QListWidgetItem, QMainWindow, QSizePolicy, QSystemTrayIcon, QFileDialog, QMessageBox, QDialog, QAbstractItemView, QListView, QTreeView, QWidget,
+ QToolButton, QMenu)
from PySide6.QtNetwork import (QLocalSocket, QLocalServer)
import os
@@ -48,6 +50,7 @@ from .shared import HTMLStripper, sanitizeTrace, walkLevel
from .comicarchive import SEVENZIP, TAR, available_archive_tools
from .comic2ebook import OS_SORT_KEY, KF7_KINDLES, flattenTree, getWorkFolder, removeNonImages, sanitizeTree, detectKindleGen
from . import __version__
+from . import i18n
from . import comic2ebook
from . import metadata
from . import kindle
@@ -184,8 +187,8 @@ class VersionThread(QThread):
if ("b" not in __version__ and Version(latest_version) > Version(__version__)) \
or ("b" in __version__
and Version(latest_version) >= Version(re.sub(r'b.*', '', __version__))):
- MW.addMessage.emit('The new version is available! ', 'warning',
- False)
+ MW.addMessage.emit('' + self.tr('The new version is available!')
+ + ' ', 'warning', False)
except Exception:
pass
@@ -196,6 +199,8 @@ class VersionThread(QThread):
'X-GitHub-Api-Version': '2022-11-28'}).json()
for category, payloads in announcements.items():
for payload in payloads:
+ if not isinstance(payload, dict):
+ continue
expiration = datetime.fromisoformat(payload['expiration'])
if expiration < datetime.now(timezone.utc):
continue
@@ -407,8 +412,8 @@ class WorkerThread(QThread):
GUI.progress.stop()
GUI.needClean = True
MW.hideProgressBar.emit()
- MW.addMessage.emit('Conversion interrupted. ', 'error', False)
- MW.addTrayMessage.emit('Conversion interrupted.', 'Critical')
+ MW.addMessage.emit(QT_TRANSLATE_NOOP('KCCGUI', 'Conversion interrupted. '), 'error', False)
+ MW.addTrayMessage.emit(QCoreApplication.translate('KCCGUI', 'Conversion interrupted.'), 'Critical')
MW.modeConvert.emit(1)
# noinspection PyUnboundLocalVariable
@@ -427,7 +432,7 @@ class WorkerThread(QThread):
fusion_cover_path = None
if options.filefusion:
bookDir = []
- MW.addMessage.emit('Attempting file fusion', 'info', False)
+ MW.addMessage.emit(QT_TRANSLATE_NOOP('KCCGUI', 'Attempting file fusion'), 'info', False)
for job in currentJobs:
bookDir.append(job)
try:
@@ -438,13 +443,13 @@ class WorkerThread(QThread):
currentJobs.clear()
job, fusion_cover_path = comic2ebook.makeFusion(bookDir)
currentJobs.append(job)
- MW.addMessage.emit('Created fusion at ' + currentJobs[0], 'info', False)
+ MW.addMessage.emit(i18n.tr_arg(QCoreApplication.translate('KCCGUI', 'Created fusion at %1'), currentJobs[0]), 'info', False)
except Exception as e:
print('Fusion Failed. ' + str(e))
- MW.addMessage.emit('Fusion Failed. ' + str(e), 'error', True)
+ MW.addMessage.emit(i18n.tr_arg(QCoreApplication.translate('KCCGUI', 'Fusion Failed. %1'), str(e)), 'error', True)
elif len(currentJobs) > 1 and options.title != 'defaulttitle':
currentJobs.clear()
- error_message = 'Process Failed. Custom title can\'t be set when processing more than 1 source.\nDid you forget to check fusion?'
+ error_message = QCoreApplication.translate('KCCGUI', 'Process Failed. Custom title can\'t be set when processing more than 1 source.\nDid you forget to check fusion?')
print(error_message)
MW.addMessage.emit(error_message, 'error', True)
for i, job in enumerate(currentJobs, start=1):
@@ -454,19 +459,19 @@ class WorkerThread(QThread):
self.clean()
return
self.errors = False
- MW.addMessage.emit(f'{job_progress_number}Source: ' + job, 'info', False)
+ MW.addMessage.emit(i18n.tr_arg(QCoreApplication.translate('KCCGUI', '%1Source: %2'), job_progress_number, job), 'info', False)
if gui_current_format == 'CBZ':
- MW.addMessage.emit('Creating CBZ files', 'info', False)
- GUI.progress.content = 'Creating CBZ files'
+ MW.addMessage.emit(QT_TRANSLATE_NOOP('KCCGUI', 'Creating CBZ files'), 'info', False)
+ GUI.progress.content = QCoreApplication.translate('KCCGUI', 'Creating CBZ files')
elif gui_current_format == 'FOLDER':
- MW.addMessage.emit('Creating folders', 'info', False)
- GUI.progress.content = 'Creating folders'
+ MW.addMessage.emit(QT_TRANSLATE_NOOP('KCCGUI', 'Creating folders'), 'info', False)
+ GUI.progress.content = QCoreApplication.translate('KCCGUI', 'Creating folders')
elif gui_current_format == 'PDF':
- MW.addMessage.emit('Creating PDF files', 'info', False)
- GUI.progress.content = 'Creating PDF files'
+ MW.addMessage.emit(QT_TRANSLATE_NOOP('KCCGUI', 'Creating PDF files'), 'info', False)
+ GUI.progress.content = QCoreApplication.translate('KCCGUI', 'Creating PDF files')
else:
- MW.addMessage.emit('Creating EPUB files', 'info', False)
- GUI.progress.content = 'Creating EPUB files'
+ MW.addMessage.emit(QT_TRANSLATE_NOOP('KCCGUI', 'Creating EPUB files'), 'info', False)
+ GUI.progress.content = QCoreApplication.translate('KCCGUI', 'Creating EPUB files')
jobargv = list(argv)
jobargv.append(job)
try:
@@ -481,20 +486,20 @@ class WorkerThread(QThread):
GUI.progress.content = ''
self.errors = True
MW.addMessage.emit(str(warn), 'warning', False)
- MW.addMessage.emit('Error during conversion! Please consult '
+ MW.addMessage.emit(QT_TRANSLATE_NOOP('KCCGUI', 'Error during conversion! Please consult '
'wiki '
- 'for more details.', 'error', False)
- MW.addTrayMessage.emit('Error during conversion!', 'Critical')
+ 'for more details.'), 'error', False)
+ MW.addTrayMessage.emit(QCoreApplication.translate('KCCGUI', 'Error during conversion!'), 'Critical')
except Exception as err:
GUI.progress.content = ''
self.errors = True
_, _, traceback = sys.exc_info()
- MW.showDialog.emit("Error during conversion %s:\n\n%s\n\nTraceback:\n%s"
- % (jobargv[-1], str(err), sanitizeTrace(traceback)), 'error')
- MW.addMessage.emit('Error during conversion! Please consult '
+ MW.showDialog.emit(i18n.tr_arg(QCoreApplication.translate('KCCGUI', "Error during conversion %1:\n\n%2\n\nTraceback:\n%3"),
+ jobargv[-1], str(err), sanitizeTrace(traceback)), 'error')
+ MW.addMessage.emit(QT_TRANSLATE_NOOP('KCCGUI', 'Error during conversion! Please consult '
'wiki '
- 'for more details.', 'error', False)
- MW.addTrayMessage.emit('Error during conversion!', 'Critical')
+ 'for more details.'), 'error', False)
+ MW.addTrayMessage.emit(QCoreApplication.translate('KCCGUI', 'Error during conversion!'), 'Critical')
if not self.conversionAlive:
if 'outputPath' in locals():
for item in outputPath:
@@ -505,19 +510,19 @@ class WorkerThread(QThread):
if not self.errors:
GUI.progress.content = ''
if gui_current_format == 'CBZ':
- MW.addMessage.emit('Creating CBZ files... Done! ', 'info', True)
+ MW.addMessage.emit(QT_TRANSLATE_NOOP('KCCGUI', 'Creating CBZ files... Done! '), 'info', True)
elif gui_current_format == 'FOLDER':
- MW.addMessage.emit('Creating folders... Done! ', 'info', True)
+ MW.addMessage.emit(QT_TRANSLATE_NOOP('KCCGUI', 'Creating folders... Done! '), 'info', True)
elif gui_current_format == 'PDF':
- MW.addMessage.emit('Creating PDF files... Done! ', 'info', True)
+ MW.addMessage.emit(QT_TRANSLATE_NOOP('KCCGUI', 'Creating PDF files... Done! '), 'info', True)
else:
- MW.addMessage.emit('Creating EPUB files... Done! ', 'info', True)
+ MW.addMessage.emit(QT_TRANSLATE_NOOP('KCCGUI', 'Creating EPUB files... Done! '), 'info', True)
if 'MOBI' in gui_current_format and not options.lightnovel:
- MW.progressBarTick.emit(f'{job_progress_number}Creating MOBI files')
+ MW.progressBarTick.emit(job_progress_number + QCoreApplication.translate('KCCGUI', 'Creating MOBI files'))
MW.progressBarTick.emit(str(len(outputPath) * 2 + 1))
MW.progressBarTick.emit('tick')
- MW.addMessage.emit('Creating MOBI files', 'info', False)
- GUI.progress.content = 'Creating MOBI files'
+ MW.addMessage.emit(QT_TRANSLATE_NOOP('KCCGUI', 'Creating MOBI files'), 'info', False)
+ GUI.progress.content = QCoreApplication.translate('KCCGUI', 'Creating MOBI files')
work = []
for item in outputPath:
work.append([item])
@@ -537,9 +542,9 @@ class WorkerThread(QThread):
return
if self.kindlegenErrorCode[0] == 0:
GUI.progress.content = ''
- MW.addMessage.emit('Creating MOBI files... Done! ', 'info', True)
- MW.addMessage.emit('Processing MOBI files', 'info', False)
- GUI.progress.content = 'Processing MOBI files'
+ MW.addMessage.emit(QT_TRANSLATE_NOOP('KCCGUI', 'Creating MOBI files... Done! '), 'info', True)
+ MW.addMessage.emit(QT_TRANSLATE_NOOP('KCCGUI', 'Processing MOBI files'), 'info', False)
+ GUI.progress.content = QCoreApplication.translate('KCCGUI', 'Processing MOBI files')
self.workerOutput = []
for item in outputPath:
self.workerOutput.append(comic2ebook.makeMOBIFix(
@@ -558,7 +563,7 @@ class WorkerThread(QThread):
move(mobiPath, GUI.targetDirectory)
except Exception:
pass
- MW.addMessage.emit('Processing MOBI files... Done! ', 'info', True)
+ MW.addMessage.emit(QT_TRANSLATE_NOOP('KCCGUI', 'Processing MOBI files... Done! '), 'info', True)
k = kindle.Kindle(options.profile)
if k.path and k.coverSupport:
for item in outputPath:
@@ -566,15 +571,15 @@ class WorkerThread(QThread):
if cover:
cover.saveToKindle(
k, comic2ebook.options.covers[outputPath.index(item)][1])
- MW.addMessage.emit('Kindle detected. Uploading covers... Done! ', 'info', False)
+ MW.addMessage.emit(QT_TRANSLATE_NOOP('KCCGUI', 'Kindle detected. Uploading covers... Done! '), 'info', False)
else:
GUI.progress.content = ''
for item in outputPath:
mobiPath = item.replace('.epub', '.mobi')
if os.path.exists(mobiPath):
os.remove(mobiPath)
- MW.addMessage.emit('Failed to process MOBI file!', 'error', False)
- MW.addTrayMessage.emit('Failed to process MOBI file!', 'Critical')
+ MW.addMessage.emit(QT_TRANSLATE_NOOP('KCCGUI', 'Failed to process MOBI file!'), 'error', False)
+ MW.addTrayMessage.emit(QCoreApplication.translate('KCCGUI', 'Failed to process MOBI file!'), 'Critical')
else:
GUI.progress.content = ''
epubSize = (os.path.getsize(self.kindlegenErrorCode[2])) // 1024 // 1024
@@ -583,15 +588,15 @@ class WorkerThread(QThread):
os.remove(item)
if os.path.exists(item.replace('.epub', '.mobi')):
os.remove(item.replace('.epub', '.mobi'))
- MW.addMessage.emit('KindleGen failed to create MOBI!', 'error', False)
+ MW.addMessage.emit(QT_TRANSLATE_NOOP('KCCGUI', 'KindleGen failed to create MOBI!'), 'error', False)
MW.addMessage.emit(self.kindlegenErrorCode[1], 'error', False)
- MW.addTrayMessage.emit('KindleGen failed to create MOBI!', 'Critical')
+ MW.addTrayMessage.emit(QCoreApplication.translate('KCCGUI', 'KindleGen failed to create MOBI!'), 'Critical')
if self.kindlegenErrorCode[0] == 1 and self.kindlegenErrorCode[1] != '':
- MW.showDialog.emit("KindleGen error:\n\n" + self.kindlegenErrorCode[1], 'error')
+ MW.showDialog.emit(QCoreApplication.translate('KCCGUI', "KindleGen error:\n\n") + self.kindlegenErrorCode[1], 'error')
if self.kindlegenErrorCode[0] == 23026:
- MW.addMessage.emit('Created EPUB file was too big. Weird file structure?', 'error', False)
- MW.addMessage.emit('EPUB file: ' + str(epubSize) + 'MB. Supported size: ~350MB.', 'error',
- False)
+ MW.addMessage.emit(QT_TRANSLATE_NOOP('KCCGUI', 'Created EPUB file was too big. Weird file structure?'), 'error', False)
+ MW.addMessage.emit(i18n.tr_arg(QCoreApplication.translate('KCCGUI', 'EPUB file: %1MB. Supported size: ~350MB.'), str(epubSize)),
+ 'error', False)
else:
for item in outputPath:
if GUI.targetDirectory and GUI.targetDirectory != os.path.dirname(item):
@@ -604,8 +609,8 @@ class WorkerThread(QThread):
MW.hideProgressBar.emit()
GUI.needClean = True
if not self.errors:
- MW.addMessage.emit('All jobs completed. ', 'info', False)
- MW.addTrayMessage.emit('All jobs completed.', 'Information')
+ MW.addMessage.emit(QT_TRANSLATE_NOOP('KCCGUI', 'All jobs completed. '), 'info', False)
+ MW.addTrayMessage.emit(QCoreApplication.translate('KCCGUI', 'All jobs completed.'), 'Information')
MW.modeConvert.emit(1)
@@ -627,9 +632,9 @@ class SystemTrayIcon(QSystemTrayIcon):
self.showMessage('Kindle Comic Converter', message, icon)
-class KCCGUI(KCC_ui.Ui_mainWindow):
+class KCCGUI(QObject, KCC_ui.Ui_mainWindow):
def selectDefaultOutputFolder(self):
- dname = QFileDialog.getExistingDirectory(MW, 'Select default output folder', self.defaultOutputFolder)
+ dname = QFileDialog.getExistingDirectory(MW, self.tr('Select default output folder'), self.defaultOutputFolder)
if self.is_directory_on_kindle(dname):
return
if dname != '':
@@ -641,11 +646,11 @@ class KCCGUI(KCC_ui.Ui_mainWindow):
path = Path(dname)
for parent in itertools.chain([path], path.parents):
if parent.name == 'documents' and parent.parent.joinpath('system').joinpath('thumbnails').is_dir():
- self.addMessage("Cannot select Kindle as output directory", 'error')
+ self.addMessage(QT_TRANSLATE_NOOP('KCCGUI', "Cannot select Kindle as output directory"), 'error')
return True
def selectOutputFolder(self):
- dname = QFileDialog.getExistingDirectory(MW, 'Select output directory', self.lastPath)
+ dname = QFileDialog.getExistingDirectory(MW, self.tr('Select output directory'), self.lastPath)
if self.is_directory_on_kindle(dname):
return
if dname != '':
@@ -661,10 +666,10 @@ class KCCGUI(KCC_ui.Ui_mainWindow):
self.needClean = False
GUI.jobList.clear()
if self.tar or self.sevenzip:
- fnames = QFileDialog.getOpenFileNames(MW, 'Select file', self.lastPath,
+ fnames = QFileDialog.getOpenFileNames(MW, self.tr('Select file'), self.lastPath,
'Comic (*.cbz *.cbr *.cb7 *.zip *.rar *.7z *.epub *.pdf);;All (*.*)')
else:
- fnames = QFileDialog.getOpenFileNames(MW, 'Select file', self.lastPath,
+ fnames = QFileDialog.getOpenFileNames(MW, self.tr('Select file'), self.lastPath,
'Comic (*.pdf);;All (*.*)')
for fname in fnames[0]:
if fname != '':
@@ -677,7 +682,7 @@ class KCCGUI(KCC_ui.Ui_mainWindow):
self.needClean = False
GUI.jobList.clear()
- dialog = QFileDialog(MW, 'Select input folder(s)', self.lastPath)
+ dialog = QFileDialog(MW, self.tr('Select input folder(s)'), self.lastPath)
dialog.setFileMode(QFileDialog.FileMode.Directory)
dialog.setOption(QFileDialog.Option.ShowDirsOnly, True)
dialog.setOption(QFileDialog.Option.DontUseNativeDialog, True)
@@ -778,7 +783,7 @@ class KCCGUI(KCC_ui.Ui_mainWindow):
if not sname:
if QApplication.keyboardModifiers() == Qt.ShiftModifier:
# Multi-directory selection for bulk editing ComicInfo.xml
- dialog = QFileDialog(MW, 'Select volume directories', self.lastPath)
+ dialog = QFileDialog(MW, self.tr('Select volume directories'), self.lastPath)
dialog.setFileMode(QFileDialog.FileMode.Directory)
dialog.setOption(QFileDialog.Option.ShowDirsOnly, True)
dialog.setOption(QFileDialog.Option.DontUseNativeDialog, True)
@@ -798,15 +803,15 @@ class KCCGUI(KCC_ui.Ui_mainWindow):
self.lastPath = os.path.dirname(selected_dirs[0])
else:
if self.sevenzip:
- fnames = QFileDialog.getOpenFileNames(MW, 'Select file(s)', self.lastPath,
+ fnames = QFileDialog.getOpenFileNames(MW, self.tr('Select file(s)'), self.lastPath,
'Comic (*.cbz *.cbr *.cb7)')
files = fnames[0]
if files:
self.lastPath = os.path.abspath(os.path.join(files[0], os.pardir))
else:
- self.showDialog("Editor is disabled due to a lack of 7z.", 'error')
- self.addMessage('Install 7z (link) '
- ' to enable metadata editing.', 'warning')
+ self.showDialog(self.tr("Editor is disabled due to a lack of 7z."), 'error')
+ self.addMessage(QT_TRANSLATE_NOOP('KCCGUI', 'Install 7z (link) '
+ ' to enable metadata editing.'), 'warning')
else:
files = [sname]
@@ -815,8 +820,8 @@ class KCCGUI(KCC_ui.Ui_mainWindow):
self.editor.loadData(files)
except Exception as err:
_, _, traceback = sys.exc_info()
- self.showDialog("Failed to parse metadata!\n\n%s\n\nTraceback:\n%s"
- % (str(err), sanitizeTrace(traceback)), 'error')
+ self.showDialog(i18n.tr_arg(self.tr("Failed to parse metadata!\n\n%1\n\nTraceback:\n%2"),
+ str(err), sanitizeTrace(traceback)), 'error')
else:
self.editor.ui.exec_()
@@ -965,7 +970,7 @@ class KCCGUI(KCC_ui.Ui_mainWindow):
icon = QIcon()
icon.addPixmap(QPixmap(":/Other/icons/convert.png"), QIcon.Mode.Normal, QIcon.State.Off)
GUI.convertButton.setIcon(icon)
- GUI.convertButton.setText('Convert')
+ GUI.convertButton.setText(self.tr('Convert'))
GUI.centralWidget.setAcceptDrops(True)
elif enable == 0:
self.conversionAlive = True
@@ -973,7 +978,7 @@ class KCCGUI(KCC_ui.Ui_mainWindow):
icon = QIcon()
icon.addPixmap(QPixmap(":/Other/icons/clear.png"), QIcon.Mode.Normal, QIcon.State.Off)
GUI.convertButton.setIcon(icon)
- GUI.convertButton.setText('Abort')
+ GUI.convertButton.setText(self.tr('Abort'))
GUI.centralWidget.setAcceptDrops(False)
elif enable == -1:
self.conversionAlive = True
@@ -1004,8 +1009,8 @@ class KCCGUI(KCC_ui.Ui_mainWindow):
def togglewebtoonBox(self, value):
if value:
- self.addMessage('You can choose a taller device profile to get taller cuts in webtoon mode.', 'info')
- self.addMessage('Try reading webtoon panels side by side in landscape!', 'info')
+ self.addMessage(QT_TRANSLATE_NOOP('KCCGUI', 'You can choose a taller device profile to get taller cuts in webtoon mode.'), 'info')
+ self.addMessage(QT_TRANSLATE_NOOP('KCCGUI', 'Try reading webtoon panels side by side in landscape!'), 'info')
GUI.qualityBox.setEnabled(False)
GUI.qualityBox.setChecked(False)
GUI.mangaBox.setEnabled(False)
@@ -1044,9 +1049,9 @@ class KCCGUI(KCC_ui.Ui_mainWindow):
profile = GUI.profiles[str(GUI.deviceBox.currentText())]
if value == 2:
if profile['Label'] not in ('K57', 'KPW', 'K810') :
- self.addMessage('This option is intended for older Kindle models.', 'warning')
- self.addMessage('On this device, there will be conversion speed and quality issues.', 'warning')
- self.addMessage('Use the Kindle Scribe profile if you want higher resolution when zooming.', 'warning')
+ self.addMessage(QT_TRANSLATE_NOOP('KCCGUI', 'This option is intended for older Kindle models.'), 'warning')
+ self.addMessage(QT_TRANSLATE_NOOP('KCCGUI', 'On this device, there will be conversion speed and quality issues.'), 'warning')
+ self.addMessage(QT_TRANSLATE_NOOP('KCCGUI', 'Use the Kindle Scribe profile if you want higher resolution when zooming.'), 'warning')
GUI.upscaleBox.setEnabled(False)
GUI.upscaleBox.setChecked(True)
else:
@@ -1060,7 +1065,7 @@ class KCCGUI(KCC_ui.Ui_mainWindow):
current_format = GUI.formats[str(GUI.formatBox.currentText())]['format']
for bad_format in ('MOBI', 'EPUB'):
if bad_format in current_format:
- self.addMessage('Scribe PNG MOBI/EPUB has a lot of problems like blank pages/sections. Use JPG instead.', 'warning')
+ self.addMessage(QT_TRANSLATE_NOOP('KCCGUI', 'Scribe PNG MOBI/EPUB has a lot of problems like blank pages/sections. Use JPG instead.'), 'warning')
break
GUI.pngLegacyBox.setEnabled(True)
GUI.noQuantizeBox.setEnabled(True)
@@ -1108,19 +1113,73 @@ class KCCGUI(KCC_ui.Ui_mainWindow):
valueRaw = int(5 * round(float(value) / 5))
value = '%.2f' % (float(valueRaw) / 100)
if float(value) <= 0.09:
- GUI.gammaLabel.setText('Gamma: Auto')
+ GUI.gammaLabel.setText(self.tr('Gamma: Auto'))
else:
- GUI.gammaLabel.setText('Gamma: ' + str(value))
+ GUI.gammaLabel.setText(i18n.tr_arg(self.tr('Gamma: %1'), value))
GUI.gammaSlider.setValue(valueRaw)
self.gammaValue = value
def changeCroppingPower(self, value):
valueRaw = int(5 * round(float(value) / 5))
value = '%.2f' % (float(valueRaw) / 100)
- GUI.croppingPowerLabel.setText('Cropping Power: ' + str(value))
+ GUI.croppingPowerLabel.setText(i18n.tr_arg(self.tr('Cropping Power: %1'), value))
GUI.croppingPowerSlider.setValue(valueRaw)
self.croppingPowerValue = value
+ def updateDynamicText(self):
+ """语言切换后,重新应用所有"代码层动态写入"的文案。"""
+ # 窗口标题
+ MW.setWindowTitle(i18n.tr_arg(self.tr("Kindle Comic Converter %1"), __version__))
+ # 转换按钮状态
+ if getattr(self, 'conversionAlive', False):
+ GUI.convertButton.setText(self.tr('Abort'))
+ else:
+ GUI.convertButton.setText(self.tr('Convert'))
+ # Gamma / Cropping Power 标签:直接 setText,避免触发滑条 valueChanged 信号
+ if float(self.gammaValue) <= 0.09:
+ GUI.gammaLabel.setText(self.tr('Gamma: Auto'))
+ else:
+ GUI.gammaLabel.setText(i18n.tr_arg(self.tr('Gamma: %1'), self.gammaValue))
+ GUI.croppingPowerLabel.setText(i18n.tr_arg(self.tr('Cropping Power: %1'), self.croppingPowerValue))
+ # 语言按钮 tooltip
+ self.languageButton.setToolTip(self.tr('Switch language / 切换语言 / 言語 / 언어'))
+
+ def _addInitialTips(self):
+ """添加初始提示消息(一次性占位提示,首次操作后由 needClean 机制清空)。"""
+ # 文本必须以内联字面量直接传入 QT_TRANSLATE_NOOP('KCCGUI', ...),lupdate 才能抽取;
+ # 不要先存入变量再传(那样消息会从 .ts 中消失)。
+ self.addMessage(QT_TRANSLATE_NOOP('KCCGUI', 'Tip: Hover mouse over options/buttons to see explanations. Boxes can be partially/fully checked.'),
+ 'info')
+ self.addMessage(QT_TRANSLATE_NOOP('KCCGUI', 'Tip: You can drag and drop image folders or comic files/archives into this window to convert.'),
+ 'info')
+ self.addMessage(QT_TRANSLATE_NOOP('KCCGUI', "Tip: Calibre may add margins! USB drop directly into the device's documents folder instead."),
+ 'info')
+ self.addMessage(QT_TRANSLATE_NOOP('KCCGUI', 'Tip: You can toggle easy/expert mode using button at top right.'),
+ 'info')
+
+ if self.startNumber < 5:
+ self.addMessage(QT_TRANSLATE_NOOP('KCCGUI', 'Since you are a new user of KCC please see few '
+ 'important tips .'),
+ 'info')
+
+ if not any([self.tar, self.sevenzip]):
+ self.addMessage(QT_TRANSLATE_NOOP('KCCGUI', 'Install 7z (link) '
+ ' to enable CBZ/CBR/ZIP/etc processing.'),
+ 'warning')
+
+ def changeLanguage(self, lang_code):
+ self.language = i18n.apply_language(lang_code)
+ self.settings.setValue('language', self.language)
+ self.retranslateUi(MW)
+ self.updateDynamicText()
+ self.retranslateJobList()
+ # 同步刷新元数据编辑器弹窗
+ self.editor.retranslateUi(self.editor.ui)
+ self.editor.updateDynamicText()
+ # 更新菜单勾选
+ for act in self.languageMenu.actions():
+ act.setChecked(act.data() == self.language)
+
def changeDevice(self):
profile = GUI.profiles[str(GUI.deviceBox.currentText())]
if profile['ForceExpert']:
@@ -1143,7 +1202,7 @@ class KCCGUI(KCC_ui.Ui_mainWindow):
current_format = GUI.formats[str(GUI.formatBox.currentText())]['format']
for bad_format in ('MOBI', 'EPUB'):
if bad_format in current_format:
- self.addMessage('Colorsoft MOBI/EPUB can have blank pages. Just go back a few pages, exit, and reenter book.', 'info')
+ self.addMessage(QT_TRANSLATE_NOOP('KCCGUI', 'Colorsoft MOBI/EPUB can have blank pages. Just go back a few pages, exit, and reenter book.'), 'info')
break
elif profile['Label'] in KF7_KINDLES:
GUI.mozJpegBox.setCheckState(Qt.CheckState.PartiallyChecked)
@@ -1152,8 +1211,7 @@ class KCCGUI(KCC_ui.Ui_mainWindow):
if not profile['PVOptions']:
GUI.qualityBox.setChecked(False)
if str(GUI.deviceBox.currentText()) == 'Other':
- self.addMessage(''
- 'List of supported Non-Kindle devices. ', 'info')
+ self.addMessage(QT_TRANSLATE_NOOP('KCCGUI', 'List of supported Non-Kindle devices. '), 'info')
def changeFormat(self, outputformat=None):
profile = GUI.profiles[str(GUI.deviceBox.currentText())]
@@ -1178,7 +1236,7 @@ class KCCGUI(KCC_ui.Ui_mainWindow):
elif not GUI.webtoonBox.isChecked():
GUI.chunkSizeCheckBox.setEnabled(True)
if GUI.formats[str(GUI.formatBox.currentText())]['format'] in ('CBZ', 'FOLDER', 'PDF') and not GUI.webtoonBox.isChecked():
- self.addMessage("Partially check W/B Margins if you don't want KCC to extend the image margins.", 'info')
+ self.addMessage(QT_TRANSLATE_NOOP('KCCGUI', "Partially check W/B Margins if you don't want KCC to extend the image margins."), 'info')
GUI.borderBox.setCheckState(Qt.CheckState.PartiallyChecked)
GUI.mozJpegBox.setCheckState(Qt.CheckState.PartiallyChecked)
else:
@@ -1190,27 +1248,48 @@ class KCCGUI(KCC_ui.Ui_mainWindow):
return s.get_data()
def addMessage(self, message, icon, replace=False):
+ # message 为英文原文(QT_TRANSLATE_NOOP 返回);内部翻译并保存原文供语言切换时重译。
+ # 已翻译/动态文本经 self.tr() 查不到 key 会原样返回,因此同样安全。
+ translated = self.tr(message)
if icon != '':
icon = getattr(self.icons, icon)
- item = QListWidgetItem(icon, ' ' + self.stripTags(message))
+ item = QListWidgetItem(icon, ' ' + self.stripTags(translated))
else:
- item = QListWidgetItem(' ' + self.stripTags(message))
+ item = QListWidgetItem(' ' + self.stripTags(translated))
if replace:
GUI.jobList.takeItem(GUI.jobList.count() - 1)
# Due to lack of HTML support in QListWidgetItem we overlay text field with QLabel
# We still fill original text field with transparent content to trigger creation of horizontal scrollbar
item.setForeground(QColor('transparent'))
- label = QLabel(message)
+ label = QLabel(translated)
label.setOpenExternalLinks(True)
+ # 保存英文原文,供语言切换时重新翻译;不保存 label 引用(C++ 对象可能被删除,导致 RuntimeError)
+ label.setProperty('i18n_source', message)
GUI.jobList.addItem(item)
GUI.jobList.setItemWidget(item, label)
GUI.jobList.scrollToBottom()
+ def retranslateJobList(self):
+ """语言切换后,刷新 jobList 中带 i18n_source 标记的消息文本。"""
+ for i in range(GUI.jobList.count()):
+ item = GUI.jobList.item(i)
+ if item is None:
+ continue
+ label = GUI.jobList.itemWidget(item)
+ if label is None:
+ continue
+ source = label.property('i18n_source')
+ if source:
+ try:
+ label.setText(self.tr(source))
+ except RuntimeError:
+ pass # C++ 对象已删除,跳过
+
def showDialog(self, message, kind):
if kind == 'error':
- QMessageBox.critical(MW, 'KCC - Error', message, QMessageBox.StandardButton.Ok)
+ QMessageBox.critical(MW, self.tr('KCC - Error'), message, QMessageBox.StandardButton.Ok)
elif kind == 'question':
- GUI.versionCheck.setAnswer(QMessageBox.question(MW, 'KCC - Question', message,
+ GUI.versionCheck.setAnswer(QMessageBox.question(MW, self.tr('KCC - Question'), message,
QMessageBox.Yes,
QMessageBox.No))
@@ -1232,7 +1311,7 @@ class KCCGUI(KCC_ui.Ui_mainWindow):
def convertStart(self):
if self.conversionAlive:
GUI.convertButton.setEnabled(False)
- self.addMessage('The process will be interrupted. Please wait.', 'warning')
+ self.addMessage(QT_TRANSLATE_NOOP('KCCGUI', 'The process will be interrupted. Please wait.'), 'warning')
self.conversionAlive = False
self.worker.sync()
else:
@@ -1248,7 +1327,7 @@ class KCCGUI(KCC_ui.Ui_mainWindow):
self.needClean = False
GUI.jobList.clear()
if GUI.jobList.count() == 0:
- self.addMessage('No files selected! Please choose files to convert.', 'error')
+ self.addMessage(QT_TRANSLATE_NOOP('KCCGUI', 'No files selected! Please choose files to convert.'), 'error')
self.needClean = True
return
if GUI.defaultOutputFolderBox.checkState() == Qt.CheckState.PartiallyChecked:
@@ -1259,7 +1338,7 @@ class KCCGUI(KCC_ui.Ui_mainWindow):
self.targetDirectory = str(target_path)
if self.currentMode > 2 and (GUI.widthBox.value() == 0 or GUI.heightBox.value() == 0):
GUI.jobList.clear()
- self.addMessage('Target resolution is not set!', 'error')
+ self.addMessage(QT_TRANSLATE_NOOP('KCCGUI', 'Target resolution is not set!'), 'error')
self.needClean = True
return
if 'MOBI' in GUI.formats[str(GUI.formatBox.currentText())]['format'] and not self.kindleGen:
@@ -1273,14 +1352,14 @@ class KCCGUI(KCC_ui.Ui_mainWindow):
def display_kindlegen_missing(self):
self.addMessage(
- 'Install KindleGen (link) to enable MOBI conversion for Kindles!',
+ QT_TRANSLATE_NOOP('KCCGUI', 'Install KindleGen (link) to enable MOBI conversion for Kindles!'),
'error'
)
def saveSettings(self, event):
if self.conversionAlive:
GUI.convertButton.setEnabled(False)
- self.addMessage('The process will be interrupted. Please wait.', 'warning')
+ self.addMessage(QT_TRANSLATE_NOOP('KCCGUI', 'The process will be interrupted. Please wait.'), 'warning')
self.conversionAlive = False
self.worker.sync()
event.ignore()
@@ -1371,7 +1450,8 @@ class KCCGUI(KCC_ui.Ui_mainWindow):
GUI.jobList.addItem(message)
GUI.jobList.scrollToBottom()
else:
- self.addMessage('Unsupported file type for ' + message, 'error')
+ # 占位符消息不补 source:刷新时无法还原 %1(文件名),保持写入时语言
+ self.addMessage(i18n.tr_arg(self.tr('Unsupported file type for %1'), message), 'error')
def dragAndDrop(self, e):
e.accept()
@@ -1395,13 +1475,16 @@ class KCCGUI(KCC_ui.Ui_mainWindow):
def __init__(self, kccapp, kccwindow):
global APP, MW, GUI
+ QObject.__init__(self)
APP = kccapp
MW = kccwindow
GUI = self
+ self.settings = QSettings('ciromattia', 'kcc10')
+ self.language = str(self.settings.value('language', i18n.DEFAULT_LANGUAGE))
+ self.language = i18n.apply_language(self.language)
self.setupUi(MW)
self.editor = KCCGUI_MetaEditor()
self.icons = Icons()
- self.settings = QSettings('ciromattia', 'kcc10')
self.settingsVersion = self.settings.value('settingsVersion', '', type=str)
self.lastPath = self.settings.value('lastPath', '', type=str)
self.defaultOutputFolder = str(self.settings.value('defaultOutputFolder', '', type=str))
@@ -1630,16 +1713,17 @@ class KCCGUI(KCC_ui.Ui_mainWindow):
"Kobo Mini/Touch",
]
+ # 这些多为约定俗成的缩写,翻译时可保留原文
link_dict = {
- 'README': "https://github.com/ciromattia/kcc?tab=readme-ov-file#kcc",
- 'FAQ': "https://github.com/ciromattia/kcc/blob/master/README.md#faq",
- 'WIKI': "https://github.com/ciromattia/kcc/wiki",
- 'YOUTUBE': "https://www.youtube.com/@eink-dude",
- 'TUTORIAL': "https://youtu.be/QQ6zJcMF2Iw?si=80rfm6DU6OUJdFqa",
- 'EMAIL': "https://github.com/ciromattia/kcc?tab=readme-ov-file#commissions",
- 'DONATE': "https://github.com/ciromattia/kcc/blob/master/README.md#issues--new-features--donations",
- 'FORUM': "http://www.mobileread.com/forums/showthread.php?t=207461",
- 'DISCORD': "https://discord.com/invite/qj7wpnUHav",
+ self.tr('README'): "https://github.com/ciromattia/kcc?tab=readme-ov-file#kcc",
+ self.tr('FAQ'): "https://github.com/ciromattia/kcc/blob/master/README.md#faq",
+ self.tr('WIKI'): "https://github.com/ciromattia/kcc/wiki",
+ self.tr('YOUTUBE'): "https://www.youtube.com/@eink-dude",
+ self.tr('TUTORIAL'): "https://youtu.be/QQ6zJcMF2Iw?si=80rfm6DU6OUJdFqa",
+ self.tr('EMAIL'): "https://github.com/ciromattia/kcc?tab=readme-ov-file#commissions",
+ self.tr('DONATE'): "https://github.com/ciromattia/kcc/blob/master/README.md#issues--new-features--donations",
+ self.tr('FORUM'): "http://www.mobileread.com/forums/showthread.php?t=207461",
+ self.tr('DISCORD'): "https://discord.com/invite/qj7wpnUHav",
}
link_html_list = [f'{k} ' for k, v in link_dict.items()]
@@ -1648,20 +1732,29 @@ class KCCGUI(KCC_ui.Ui_mainWindow):
statusBarLabel.setOpenExternalLinks(True)
GUI.statusBar.addPermanentWidget(statusBarLabel, 1)
- self.addMessage('Tip: Hover mouse over options/buttons to see explanations. Boxes can be partially/fully checked.', 'info')
- self.addMessage('Tip: You can drag and drop image folders or comic files/archives into this window to convert.', 'info')
- self.addMessage("Tip: Calibre may add margins! USB drop directly into the device's documents folder instead.", 'info')
- self.addMessage("Tip: You can toggle easy/expert mode using button at top right.", 'info')
- if self.startNumber < 5:
- self.addMessage('Since you are a new user of KCC please see few '
- 'important tips .',
- 'info')
-
self.tar = TAR in available_archive_tools()
self.sevenzip = SEVENZIP in available_archive_tools()
- if not any([self.tar, self.sevenzip]):
- self.addMessage('Install 7z (link) '
- ' to enable CBZ/CBR/ZIP/etc processing.', 'warning')
+
+ self._addInitialTips()
+
+ # Language switch button: plain text so it adapts to light/dark mode automatically
+ self.languageButton = QToolButton()
+ self.languageButton.setText(' 文 A ') # spaces add padding
+ self.languageButton.setToolTip(self.tr('Switch language / 切换语言 / 言語 / 언어'))
+ self.languageButton.setPopupMode(QToolButton.ToolButtonPopupMode.InstantPopup)
+ self.languageMenu = QMenu(self.languageButton)
+ # 创建互斥 ActionGroup,确保只有一个语言选项被勾选
+ self.languageActionGroup = QActionGroup(self.languageMenu)
+ self.languageActionGroup.setExclusive(True)
+ for code, label in i18n.LANGUAGES.items():
+ act = self.languageMenu.addAction(label)
+ act.setCheckable(True)
+ act.setChecked(code == self.language)
+ act.setData(code)
+ self.languageActionGroup.addAction(act)
+ act.triggered.connect(lambda checked=False, c=code: self.changeLanguage(c))
+ self.languageButton.setMenu(self.languageMenu)
+ self.gridLayout_6.addWidget(self.languageButton, 0, 5)
APP.messageFromOtherInstance.connect(self.handleMessage)
GUI.defaultOutputFolderButton.clicked.connect(self.selectDefaultOutputFolder)
@@ -1766,12 +1859,12 @@ class KCCGUI(KCC_ui.Ui_mainWindow):
if self.windowSize != '0x0':
x, y = self.windowSize.split('x')
MW.resize(int(x), int(y))
- MW.setWindowTitle("Kindle Comic Converter " + __version__)
+ MW.setWindowTitle(i18n.tr_arg(self.tr("Kindle Comic Converter %1"), __version__))
MW.show()
MW.raise_()
-class KCCGUI_MetaEditor(KCC_ui_editor.Ui_editorDialog):
+class KCCGUI_MetaEditor(QObject, KCC_ui_editor.Ui_editorDialog):
def _buildBulkFieldToolTip(self, fieldLabel, valuesByFile):
note = 'Note: Changing this field will overwrite all values in all selected files.
'
@@ -1837,7 +1930,7 @@ class KCCGUI_MetaEditor(KCC_ui_editor.Ui_editorDialog):
if parser.format in ['RAR', 'RAR5']:
self.editorWidget.setEnabled(False)
self.okButton.setEnabled(False)
- self.statusLabel.setText('CBR files in selection are read-only.')
+ self.statusLabel.setText(self.tr('CBR files in selection are read-only.'))
return
if self.bulkMode:
@@ -1845,7 +1938,7 @@ class KCCGUI_MetaEditor(KCC_ui_editor.Ui_editorDialog):
self.parser = metadata.MetadataParser(firstFile)
self.editorWidget.setEnabled(True)
self.okButton.setEnabled(True)
- self.statusLabel.setText(f'Editing {len(self.files)} files.')
+ self.statusLabel.setText(i18n.tr_arg(self.tr('Editing %1 files.'), len(self.files)))
# Show bulk volume checkbox
self.bulkVolumeCheck.setVisible(True)
@@ -1854,7 +1947,7 @@ class KCCGUI_MetaEditor(KCC_ui_editor.Ui_editorDialog):
for field in (self.volumeLine, self.numberLine, self.titleLine):
field.setEnabled(False)
field.setText('')
- field.setPlaceholderText('(multiple files)')
+ field.setPlaceholderText(self.tr('(multiple files)'))
field.setToolTip('')
# Load metadata for all files and show common values, or “(multiple values)” + tooltip.
@@ -1898,7 +1991,7 @@ class KCCGUI_MetaEditor(KCC_ui_editor.Ui_editorDialog):
self.editorWidget.setEnabled(True)
self.okButton.setEnabled(True)
- self.statusLabel.setText('Separate authors with a comma.')
+ self.statusLabel.setText(self.tr('Separate authors with a comma.'))
for field in (self.seriesLine, self.volumeLine, self.numberLine, self.titleLine):
field.setText(self.parser.data[field.objectName().capitalize()[:-4]])
@@ -1934,7 +2027,7 @@ class KCCGUI_MetaEditor(KCC_ui_editor.Ui_editorDialog):
return
if not bulkData and volumes is None:
- self.statusLabel.setText('No changes to apply.')
+ self.statusLabel.setText(self.tr('No changes to apply.'))
return
errors = []
@@ -1943,7 +2036,7 @@ class KCCGUI_MetaEditor(KCC_ui_editor.Ui_editorDialog):
self.cancelButton.setEnabled(False)
for i, file in enumerate(self.files, 1):
- self.statusLabel.setText(f'Processing {i}/{total}: {os.path.basename(file)}')
+ self.statusLabel.setText(i18n.tr_arg(self.tr('Processing %1/%2: %3'), i, total, os.path.basename(file)))
QApplication.processEvents()
try:
@@ -1964,18 +2057,19 @@ class KCCGUI_MetaEditor(KCC_ui_editor.Ui_editorDialog):
self.cancelButton.setEnabled(True)
if errors:
- GUI.showDialog("Some files failed to save:\n\n" + "\n".join(errors[:10]) +
- (f"\n...and {len(errors) - 10} more" if len(errors) > 10 else ""), 'error')
- self.statusLabel.setText('Errors occurred.')
+ more = i18n.tr_arg(self.tr("\n...and %1 more"), len(errors) - 10) if len(errors) > 10 else ''
+ GUI.showDialog(i18n.tr_arg(self.tr("Some files failed to save:\n\n%1%2"),
+ "\n".join(errors[:10]), more), 'error')
+ self.statusLabel.setText(self.tr('Errors occurred.'))
else:
- self.statusLabel.setText(f'Successfully updated {total} files.')
+ self.statusLabel.setText(i18n.tr_arg(self.tr('Successfully updated %1 files.'), total))
self.ui.close()
else:
for field in (self.volumeLine, self.numberLine):
if field.text().isnumeric() or self.cleanData(field.text()) == '':
self.parser.data[field.objectName().capitalize()[:-4]] = self.cleanData(field.text())
else:
- self.statusLabel.setText(field.objectName().capitalize()[:-4] + ' field must be a number.')
+ self.statusLabel.setText(i18n.tr_arg(self.tr('%1 field must be a number.'), field.objectName().capitalize()[:-4]))
break
else:
for field in (self.seriesLine, self.titleLine):
@@ -1991,8 +2085,8 @@ class KCCGUI_MetaEditor(KCC_ui_editor.Ui_editorDialog):
self.parser.saveXML()
except Exception as err:
_, _, traceback = sys.exc_info()
- GUI.showDialog("Failed to save metadata!\n\n%s\n\nTraceback:\n%s"
- % (str(err), sanitizeTrace(traceback)), 'error')
+ GUI.showDialog(i18n.tr_arg(self.tr("Failed to save metadata!\n\n%1\n\nTraceback:\n%2"),
+ str(err), sanitizeTrace(traceback)), 'error')
self.ui.close()
def cleanData(self, s):
@@ -2050,12 +2144,24 @@ class KCCGUI_MetaEditor(KCC_ui_editor.Ui_editorDialog):
self.volumeLine.setEnabled(checked)
if checked:
self.volumeLine.setText('')
- self.volumeLine.setPlaceholderText('e.g., 5 or 1-10 or 1,3,5')
+ self.volumeLine.setPlaceholderText(self.tr('e.g., 5 or 1-10 or 1,3,5'))
else:
self.volumeLine.setText('')
- self.volumeLine.setPlaceholderText('(multiple files)')
+ self.volumeLine.setPlaceholderText(self.tr('(multiple files)'))
+
+ def updateDynamicText(self):
+ """语言切换后,重新应用动态设置的文案。"""
+ # 重新应用占位符文本
+ if self.bulkMode:
+ for field in (self.numberLine, self.titleLine):
+ if not field.isEnabled():
+ field.setPlaceholderText(self.tr('(multiple files)'))
+ self.volumeLine.setPlaceholderText(
+ self.tr('e.g., 5 or 1-10 or 1,3,5') if self.bulkVolumeCheck.isChecked()
+ else self.tr('(multiple files)'))
def __init__(self):
+ QObject.__init__(self)
self.ui = QDialog()
self.parser = None
self.files = []
diff --git a/kindlecomicconverter/KCC_rc.py b/kindlecomicconverter/KCC_rc.py
index 2b891105..5fb2ffdc 100644
--- a/kindlecomicconverter/KCC_rc.py
+++ b/kindlecomicconverter/KCC_rc.py
@@ -4577,6 +4577,10073 @@ r\x5c\x81\xfdoA'\x0b%\xcd-Gk\xe9\xb7\xf5\
\xea\xae\xee\xea\xae\xee\xea\xae\xee\xea\xae\xee\xea\xae\xee\xea\
\xae\xee\xfaY\xaf\xff\x07\xd5-Iu\xbc\xee;\xc6\x00\
\x00\x00\x00IEND\xaeB`\x82\
+\x00\x00\xd7\x99\
+<\
+\xb8d\x18\xca\xef\x9c\x95\xcd!\x1c\xbf`\xa1\xbd\xdd\xa7\
+\x00\x00\x00\x05ko_KRB\x00\x00\x07\xd0\x00\x00\
+Ja\x00\x00\x15\xf2\x00\x05\x98\xc5\x00\x00:\xe9\x00\x05\
+\xbd\xf9\x00\x00-\x1a\x00\x05\xdbp\x00\x00\xcfE\x00\x12\
+\x22S\x00\x00\xb3;\x00\x17\xb2\xbe\x00\x00\x97\xb7\x00G\
+\x96\x94\x00\x00\x0a\x06\x00J\x15\xdc\x00\x00\x12\xa2\x00K\
+G\x9d\x00\x00\x16\x16\x00ON\xbe\x00\x00\x17+\x00R\
+\xb8\xe2\x00\x00\xbe\xf2\x00]n\xae\x00\x00\xc4\x22\x00w\
+\xcb>\x00\x00&\xbe\x00\x8d\x1d\x13\x00\x00\x0e\x9a\x00\xab\
+\xe2\x1e\x00\x00\x00-\x00\xc3\xa2z\x00\x00\xab\xed\x00\xd6\
+\xef\xfe\x00\x00\xcd{\x00\xe9\xdc\xa9\x00\x00%\xbc\x00\xec\
+\xfa~\x00\x00I\xb6\x01\x02\x14\xf7\x00\x00\xbb\xf3\x01 \
+\x12Z\x00\x00\xad+\x01#d\x1e\x00\x00\xb9\xef\x01%\
+\xf0\x81\x00\x00\x12\x0c\x01\xab\x97\x0e\x00\x00\x13G\x01\xd5\
+\x90\xde\x00\x00\x07R\x01\xde\xbe\xc5\x00\x00\xcfp\x01\xed\
+u\xfe\x00\x006\x8d\x02\x0e@\xae\x00\x00\x16:\x02\x10\
+!\x1e\x00\x00ie\x02\x11(\x1e\x00\x00\x1dA\x02\x14\
+\x84\xba\x00\x00\xae<\x02\x1fV\xf2\x00\x00\xbe\x87\x02$\
+\x84\xfe\x00\x00\x05\xec\x02'\xcc.\x00\x00\xc0:\x02+\
+\x87\x01\x00\x00\x1f\xae\x02.\x92\xfe\x00\x00\x01k\x02A\
+\xbf\x8e\x00\x00\x98\xbd\x02\x84\xc2\x82\x00\x00\x00\x00\x02\xb9\
+D\x8e\x00\x00-m\x02\xccR\x09\x00\x00\xaaa\x02\xce\
+UT\x00\x00\xc7\x09\x02\xd1\x14~\x00\x00e=\x02\xdb\
+\xa1\x04\x00\x00\xc6\xd4\x02\xe9\xa7~\x00\x00sb\x02\xec\
+\x88\xe9\x00\x00\xc5\xf5\x03\x16\xe6\xc4\x00\x00\xbe\xbd\x03C\
+\xe5\xc3\x00\x00\xae\xf4\x03i@\x1a\x00\x009\xeb\x03m\
+\x1fE\x00\x00;\xc7\x03x6%\x00\x00\xcb\x93\x03|\
+\xe5\xe1\x00\x006,\x03\xc4\x16E\x00\x005\xc4\x03\xc4\
+{d\x00\x00\xafx\x03\xd2\xec#\x00\x00\xce\xd4\x03\xde\
+d\xa4\x00\x00\xc8D\x03\xe5\x05s\x00\x00&v\x03\xe7\
+\xed\xf5\x00\x00\xbf5\x03\xf1\xa6>\x00\x00\x0dF\x03\xf3\
+y\xce\x00\x00\x0av\x04\x0b\x22a\x00\x00\x16\xae\x04\x1f\
+\xe1.\x00\x00\x97\x09\x04*\x00\x9e\x00\x00\xb8\xda\x044\
+\x8f\x01\x00\x00\x19\xb4\x04:e\x9e\x00\x00. \x04F\
+\x19\x85\x00\x00\xbf\xbd\x04L\x9e\x0a\x00\x00\xb9\x13\x04v\
+h\x15\x00\x00\xcf\x0a\x04\x83\x5c\xb5\x00\x00\xbc3\x04\x89\
+\x08\x9f\x00\x00\x19\xe4\x04\x89\x08\x9f\x00\x00\xb5\xc4\x04\x8d\
+.\xe3\x00\x00\x10\xbc\x04\x91\x9e.\x00\x00\xb4>\x04\x94\
+&\x85\x00\x00\x12}\x04\x98I\xbc\x00\x009\xc0\x04\xab\
+\xcc\x8e\x00\x00B\x14\x04\xb3W\xd5\x00\x00\xc8\xbf\x04\xcd\
+~\xaf\x00\x00\x19\x02\x04\xce\x0b\xc1\x00\x00\x18q\x04\xd3\
+ \xc5\x00\x00\xab\xba\x04\xf9\x069\x00\x00\xc9E\x05\x00\
+\x0c\x81\x00\x00\x18\xc4\x05\x05\x08N\x00\x00\x0c\xa0\x05\x05\
+\x1cZ\x00\x00:\x1b\x05%\xee \x00\x00\xc8\x01\x05<\
+s\x99\x00\x00&0\x05Lkc\x00\x00\x10\x04\x05]\
+\x8b\xc5\x00\x00\xb2\xfa\x05iY\x15\x00\x00$'\x05}\
+s\xf0\x00\x00\xc1b\x05~\x8a\xe9\x00\x001\xed\x05\x8a\
+\x17J\x00\x00\x1b\xdd\x05\xa4\x5cn\x00\x00\x1e_\x05\xa5\
+p\xce\x00\x00\x00\x000^\x06\x0eMC\x00\x00\x11n\x06\x10\
+\x8b\x9e\x00\x00_\x91\x06\x1c/^\x00\x00\xa4\x97\x061\
+\xe0\xe2\x00\x003I\x06<\xdf\xfe\x00\x001\x8d\x06C\
+\xa3\x95\x00\x00\xaca\x06G\xa4n\x00\x00\x09M\x06J\
+\xb4~\x00\x00\xb0\x85\x06S\xac\xfe\x00\x00T9\x06]\
+Xl\x00\x00\xb8F\x06\x8a\x1cY\x00\x00\xad\xb1\x06\x8f\
+O\x9e\x00\x00LB\x06\x95%c\x00\x004&\x06\xbc\
+ \xd1\x00\x00+\xf9\x06\xce\xb4\xde\x00\x002\xa6\x06\xe3\
+\xf5\xb4\x00\x00\xb3\xf6\x07\x0cm\xc2\x00\x004\xdc\x07\x19\
+\xe9>\x00\x00\x1bM\x07#\x19\x14\x00\x00\xc7D\x07,\
+)\xc4\x00\x00\xbb\xba\x078\x97\xa2\x00\x00%?\x07\x84\
+\xbb\xc1\x00\x00\x140\x07\x96\xfd\xb5\x00\x00\xbd)\x07\xa7\
+\x00\x93\x00\x00 V\x07\xb7\xcc\x80\x00\x00\xb8\x9b\x07\xbe\
+\xf1.\x00\x0021\x07\xc4\xc6!\x00\x00\x02\x8f\x07\xdf\
+\xc1$\x00\x00)\x0b\x07\xfd\x0e\xce\x00\x00,^\x08\x00\
+\x09\xb3\x00\x00\xbb~\x08\x1aw\x0e\x00\x00\xaa\xa3\x08\x1f\
+\xa5\xb1\x00\x00\xaf\xad\x084R\x1e\x00\x005R\x08=\
+\xae>\x00\x00W\x95\x08C\x92\x14\x00\x00\xac,\x08T\
+^>\x00\x00\x0a*\x08i\xc5.\x00\x00\x05\x8b\x08\x87\
+\x98\xde\x00\x00\x8b\xde\x08\xc8\xa0\x1e\x00\x00!\x04\x08\xd9\
+\xe6\xee\x00\x00\xb4\xe9\x08\xe7\x84$\x00\x00\x12M\x08\xf7\
+@N\x00\x00\x81\xc9\x09*\xfb\x1e\x00\x00\x1f\x17\x09B\
+T\xbe\x00\x00\x1d\xda\x09pA\xbb\x00\x00\xb4r\x09p\
+jO\x00\x00\x22a\x09~Zn\x00\x00\xa0\xb8\x09\x7f\
+\x8d\xb5\x00\x001B\x09\x85p>\x00\x00\x95\x95\x09\x97\
+\xcb\xde\x00\x00\xa6\x0d\x09\xaal\xfc\x00\x00\xb9\x9e\x09\xb2\
+\xc8\x0e\x00\x00#\xb3\x09\xc8\xfc:\x00\x00;\x12\x09\xd2\
+\xa1\xde\x00\x00N\xaf\x09\xe8m.\x00\x00\xcb\xe1\x09\xf9\
+\x0an\x00\x00\x12\xc8\x09\xfb\xb3\x9e\x00\x00*%\x0a\x08\
+@\x1a\x00\x00:\xb8\x0a,\x09\xbe\x00\x003\xcc\x0a0\
+\xc8g\x00\x00\xb9O\x0a?\x0e\x95\x00\x00%\x8c\x0aA\
+\xc1\xa2\x00\x00\xb4\xa9\x0aM\xa9n\x00\x00P\xbd\x0aO\
+\xe0N\x00\x00S@\x0ae\x1f\xd3\x00\x00#k\x0ae\
+\xcc\xd4\x00\x00\x0d\x90\x0ae\xcc\xd4\x00\x00\xac\x94\x0as\
+\xed\x93\x00\x00\x0fL\x0a\x94h\xcc\x00\x00)\x9c\x0a\xb4\
+\xe6K\x00\x00\xccq\x0a\xbc`\xde\x00\x00\x10\xff\x0b\x0c\
+\xfa\xbe\x00\x00\x9e\x16\x0b\x14\x98\x0e\x00\x00Mj\x0b\x16\
+\xe3~\x00\x00\x11\xa7\x0b\x19\x89o\x00\x00/j\x0b\x1d\
+hb\x00\x00\x17\x95\x0b)\xba\x82\x00\x00\x1a\x16\x0b0\
+\xc6\x85\x00\x00\xbc\xf1\x0b@`\x0e\x00\x00\x0e\xdd\x0bB\
+;\xae\x00\x00\xc6G\x0bb[\x9e\x00\x00\x0b\x9a\x0b\x85\
+#\x9e\x00\x00\x90\xec\x0b\x87W\x1e\x00\x00Z\xee\x0b\x97\
+\xe3\xde\x00\x00\x0a\xbb\x0b\xad4\x8e\x00\x00\xb5\xfa\x0b\xc1\
+\xe9a\x00\x00\xad\xff\x0b\xe4\x931\x00\x00\x1a\xf9\x0b\xf2\
+Z\x9e\x00\x00\x0f\x92\x0b\xfe\x1c\xb2\x00\x00\x05?\x0b\xff\
+\x9dn\x00\x00\x08Z\x0c\x16g\x01\x00\x00)\xc7\x0c\x1d\
+\xa8\x94\x00\x00\xadg\x0c-\xec^\x00\x00\x94@\x0c5\
+\x93\x0e\x00\x00\xb1$\x0c@j\xec\x00\x00\xac\xbe\x0cR\
+\xc9\xee\x00\x00\x06K\x0cX7n\x00\x002\xfd\x0cr\
+l>\x00\x00*\x9d\x0c\x80\xbdC\x00\x00<\x04\x0c\x98\
+_.\x00\x00\x1a\xc0\x0c\xaa\xd6\x1c\x00\x00\xce\x99\x0c\xc1\
+\xd4\x92\x00\x00:H\x0c\xd4\xc3\x91\x00\x00+\x16\x0c\xe7\
+\x87U\x00\x00\xafB\x0c\xf2\x1fI\x00\x00\xaa!\x0c\xf6\
+\x10\xd1\x00\x00\xb7N\x0c\xfd\xe1\x9e\x00\x00\x14\x83\x0d\x06\
+\x22i\x00\x00\xc8\xfd\x0d\x14\x1d\xe3\x00\x00\x13\xb7\x0d\x15\
+\x0f\x0a\x00\x00\xae}\x0d\x1a\x0e\xae\x00\x00\x91\xe6\x0d\x1b\
+\xbeB\x00\x00\xbb\x1d\x0d)O\xee\x00\x00\x8f\xba\x0d1\
+\xad\x1e\x00\x00\x10J\x0dC\x19\xee\x00\x00\x04\x02\x0dc\
+\xc3\xda\x00\x00;o\x0dxK\xf1\x00\x00\xbfw\x0d\x83\
+\x10>\x00\x004|\x0d\xb8\xb9\x1e\x00\x00\xb6\xab\x0d\xca\
+&\xfe\x00\x00\x9a\xa4\x0d\xeb\x9e\xae\x00\x00O\xa8\x0e\x01\
+Se\x00\x00\xac\xf3\x0e\x0cS!\x00\x00\x0eI\x0e\x17\
+\xf0\xb5\x00\x00\xb2\xc0\x0e\x1di\x1e\x00\x00G[\x0e \
+<\x7f\x00\x00\x0d\xb6\x0eJ\x995\x00\x00-=\x0e_\
+5\xde\x00\x00\xa3\x9e\x0e\x80{\x8e\x00\x00\x86\xcc\x0e\x90\
+\xac\x0a\x00\x00;\x9b\x0e\x90\xda\x9e\x00\x00+\x98\x0e\x99\
+v>\x00\x00\xbd]\x0e\xaa\xe9N\x00\x00(>\x0e\xba\
+\x1e\xa9\x00\x00\x0b!\x0e\xc1\xd4\x92\x00\x00\xbct\x0e\xc9\
+\xd6i\x00\x00%\xef\x0e\xcc\x1a\xd2\x00\x00\xbf\xfb\x0e\xe4\
+\x22>\x00\x00\x18\x14\x0f\x02\x09\xde\x00\x00m\xb9\x0f\x03\
+\xeeB\x00\x00\x1a\x8a\x0f\x0dp\x87\x00\x00\xb0F\x0f#\
+\x1c\x11\x00\x00\x1c(\x0f4\xd8\xae\x00\x00|0\x0f?\
+E\xbe\x00\x00$T\x0fDj\xa2\x00\x00\xae\xbd\x0fG\
+\xb4.\x00\x00J\xdb\x0fuS\xee\x00\x00!\xc9\x0f\x90\
+]N\x00\x00x{\x0f\x9e\xc2.\x00\x00Q\xe8\x0f\xa3\
+\x08s\x00\x00\x1c\x99\x0f\xa7\x87\x12\x00\x00\xc8\x7f\x0f\xbb\
+\x0e\x1e\x00\x00F\x11\x0f\xfe\xa8\xb5\x00\x00\xbc\xb4i\x00\
+\x00\xcf\xa5\x03\x00\x00\x00\x0c\x00%\x001\x00:\x00 \
+\x00%\x002\x08\x00\x00\x00\x00\x06\x00\x00\x00\x06%1\
+: %2\x07\x00\x00\x00\x06KCCGUI\x01\
+\x03\x00\x00\x00\xb6\x00<\x00a\x00 \x00h\x00r\x00\
+e\x00f\x00=\x00\x22\x00h\x00t\x00t\x00p\x00\
+s\x00:\x00/\x00/\x00g\x00i\x00t\x00h\x00\
+u\x00b\x00.\x00c\x00o\x00m\x00/\x00c\x00\
+i\x00r\x00o\x00m\x00a\x00t\x00t\x00i\x00\
+a\x00/\x00k\x00c\x00c\x00#\x007\x00-\x00\
+z\x00i\x00p\x00\x22\x00>\x007\x00z\x00 \xc1\
+$\xceX\x00(\xb9\xc1\xd0l\x00)\x00<\x00/\x00\
+a\x00>\xd5X\xc5\xec\x00 \x00C\x00B\x00Z\x00\
+/\x00C\x00B\x00R\x00/\x00Z\x00I\x00P\x00\
+ \xb4\xf1\x00 \xcc\x98\xb9\xac\xb9|\x00 \xd6\x5c\xc1\
+1\xd6T\xd5X\xc18\xc6\x94\x00.\x08\x00\x00\x00\x00\
+\x06\x00\x00\x00mInstall 7\
+z (link) to \
+enable CBZ/CBR/Z\
+IP/etc processin\
+g.\x07\x00\x00\x00\x06KCCGUI\x01\x03\x00\
+\x00\x00\xa6\x00<\x00a\x00 \x00h\x00r\x00e\x00\
+f\x00=\x00\x22\x00h\x00t\x00t\x00p\x00s\x00\
+:\x00/\x00/\x00g\x00i\x00t\x00h\x00u\x00\
+b\x00.\x00c\x00o\x00m\x00/\x00c\x00i\x00\
+r\x00o\x00m\x00a\x00t\x00t\x00i\x00a\x00\
+/\x00k\x00c\x00c\x00#\x007\x00-\x00z\x00\
+i\x00p\x00\x22\x00>\x007\x00z\x00 \xc1$\xce\
+X\x00(\xb9\xc1\xd0l\x00)\x00<\x00/\x00a\x00\
+>\xd5X\xc5\xec\x00 \xbaT\xd0\xc0\xb3p\xc7t\xd1\
+0\x00 \xd3\xb8\xc9\xd1\xc7D\x00 \xd6\x5c\xc11\xd6\
+T\xd5X\xc18\xc6\x94\x00.\x08\x00\x00\x00\x00\x06\x00\
+\x00\x00cInstall 7z \
+(link) to en\
+able metadata ed\
+iting.\x07\x00\x00\x00\x06KCCGU\
+I\x01\x03\x00\x00\x00\xd8\x00<\x00a\x00 \x00h\x00\
+r\x00e\x00f\x00=\x00\x22\x00h\x00t\x00t\x00\
+p\x00s\x00:\x00/\x00/\x00g\x00i\x00t\x00\
+h\x00u\x00b\x00.\x00c\x00o\x00m\x00/\x00\
+c\x00i\x00r\x00o\x00m\x00a\x00t\x00t\x00\
+i\x00a\x00/\x00k\x00c\x00c\x00#\x00k\x00\
+i\x00n\x00d\x00l\x00e\x00g\x00e\x00n\x00\
+\x22\x00>\x00<\x00b\x00>\x00K\x00i\x00n\x00\
+d\x00l\x00e\x00G\x00e\x00n\x00 \xc1$\xce\
+X\x00(\xb9\xc1\xd0l\x00)\x00<\x00/\x00b\x00\
+>\x00<\x00/\x00a\x00>\xd5X\xc5\xec\x00 \x00\
+K\x00i\x00n\x00d\x00l\x00e\xc6\xa9\x00 \x00\
+M\x00O\x00B\x00I\x00 \xbc\xc0\xd6X\xc7D\x00\
+ \xd6\x5c\xc11\xd6T\xd5X\xc18\xc6\x94\x00!\x08\
+\x00\x00\x00\x00\x06\x00\x00\x00\x80<\
+b>Install Kindle\
+Gen (link)\
+a> to enable MOB\
+I conversion for\
+ Kindles!\x07\x00\x00\x00\x06KC\
+CGUI\x01\x03\x00\x00\x00\xb6\x00<\x00a\x00 \
+\x00h\x00r\x00e\x00f\x00=\x00\x22\x00h\x00t\
+\x00t\x00p\x00s\x00:\x00/\x00/\x00g\x00i\
+\x00t\x00h\x00u\x00b\x00.\x00c\x00o\x00m\
+\x00/\x00c\x00i\x00r\x00o\x00m\x00a\x00t\
+\x00t\x00i\x00a\x00/\x00k\x00c\x00c\x00/\
+\x00w\x00i\x00k\x00i\x00/\x00N\x00o\x00n\
+\x00K\x00i\x00n\x00d\x00l\x00e\x00-\x00d\
+\x00e\x00v\x00i\x00c\x00e\x00s\x00\x22\x00>\
+\xc9\xc0\xc6\xd0\xb4\x18\xb2\x94\x00 \xbeD\x00-\x00K\
+\x00i\x00n\x00d\x00l\x00e\x00 \xae0\xae0\
+\x00 \xba\xa9\xb8]\x00.\x00<\x00/\x00a\x00>\
+\x08\x00\x00\x00\x00\x06\x00\x00\x00l Lis\
+t of supported N\
+on-Kindle device\
+s. \x07\x00\x00\x00\x06KCCGU\
+I\x01\x03\x00\x00\x00\x1e\x00<\x00b\x00>\x00%\x00\
+1\xc1\x8c\xc2\xa4\x00:\x00<\x00/\x00b\x00>\x00\
+ \x00%\x002\x08\x00\x00\x00\x00\x06\x00\x00\x00\x13<\
+b>%1Source: \
+%2\x07\x00\x00\x00\x06KCCGUI\x01\x03\x00\
+\x00\x00,\x00<\x00b\x00>\xba\xa8\xb4\xe0\x00 \xc7\
+\x91\xc5\xc5\xc7t\x00 \xc6D\xb8\xcc\xb4\x18\xc5\xc8\xc2\
+\xb5\xb2\xc8\xb2\xe4\x00.\x00<\x00/\x00b\x00>\x08\
+\x00\x00\x00\x00\x06\x00\x00\x00\x1aAll \
+jobs completed.<\
+/b>\x07\x00\x00\x00\x06KCCGUI\x01\x03\
+\x00\x00\x00&\x00<\x00b\x00>\xbc\xc0\xd6X\xc7t\
+\x00 \xc9\x11\xb2\xe8\xb4\x18\xc5\xc8\xc2\xb5\xb2\xc8\xb2\xe4\
+\x00.\x00<\x00/\x00b\x00>\x08\x00\x00\x00\x00\x06\
+\x00\x00\x00\x1eConversio\
+n interrupted.\
+b>\x07\x00\x00\x00\x06KCCGUI\x01\x03\x00\
+\x00\x00\x8a\x00<\x00b\x00>\xd3\x01\x00:\x00<\x00\
+/\x00b\x00>\x00 \x00C\x00a\x00l\x00i\x00\
+b\x00r\x00e\xac\x00\x00 \xc5\xec\xbc1\xc7D\x00\
+ \xcd\x94\xac\x00\xd5`\x00 \xc2\x18\x00 \xc7\x88\xc2\
+\xb5\xb2\xc8\xb2\xe4\x00!\x00 \xb3\x00\xc2\xe0\x00 \xae\
+0\xae0\xc7X\x00 \x00d\x00o\x00c\x00u\x00\
+m\x00e\x00n\x00t\x00s\x00 \xd3\xf4\xb3T\xc5\
+\xd0\x00 \x00U\x00S\x00B\xb8\x5c\x00 \xc9\xc1\xc8\
+\x11\x00 \xb1#\xc7<\xc18\xc6\x94\x00.\x08\x00\x00\
+\x00\x00\x06\x00\x00\x00bTip:\
+b> Calibre may a\
+dd margins! USB \
+drop directly in\
+to the device's \
+documents folder\
+ instead.\x07\x00\x00\x00\x06KC\
+CGUI\x01\x03\x00\x00\x00\x86\x00<\x00b\x00>\
+\xd3\x01\x00:\x00<\x00/\x00b\x00>\x00 \xc65\
+\xc1X\x00/\xbc\x84\xd2\xbc\x00 \xc7\x04\xc5\xd0\x00 \
+\xb9\xc8\xc6\xb0\xc2\xa4\xb9|\x00 \xc6,\xb9\xac\xbat\
+\x00 \xc1$\xba\x85\xc7t\x00 \xd4\x5c\xc2\xdc\xb4)\
+\xb2\xc8\xb2\xe4\x00.\x00 \xcc\xb4\xd0l\xbc\x15\xc2\xa4\
+\xb2\x94\x00 \xbd\x80\xbd\x84\xc8\x01\x00 \xb6\x10\xb2\x94\
+\x00 \xc6D\xc8\x04\xd7\x88\x00 \xcc\xb4\xd0l\xd5`\
+\x00 \xc2\x18\x00 \xc7\x88\xc2\xb5\xb2\xc8\xb2\xe4\x00.\
+\x08\x00\x00\x00\x00\x06\x00\x00\x00gTip\
+: Hover mous\
+e over options/b\
+uttons to see ex\
+planations. Boxe\
+s can be partial\
+ly/fully checked\
+.\x07\x00\x00\x00\x06KCCGUI\x01\x03\x00\x00\
+\x00t\x00<\x00b\x00>\xd3\x01\x00:\x00<\x00/\
+\x00b\x00>\x00 \xc7t\xbb\xf8\xc9\xc0\x00 \xd3\xf4\
+\xb3T\xb0\x98\x00 \xb9\xcc\xd6T\x00 \xd3\x0c\xc7|\
+\x00/\xc5D\xcet\xc7t\xbe\x0c\xb9|\x00 \xc7t\
+\x00 \xcc=\xc7<\xb8\x5c\x00 \xb4\xdc\xb7\x98\xad\xf8\
+\x00 \xc5d\x00 \xb4\xdc\xb8m\xd5X\xc5\xec\x00 \
+\xbc\xc0\xd6X\xd5`\x00 \xc2\x18\x00 \xc7\x88\xc2\xb5\
+\xb2\xc8\xb2\xe4\x00.\x08\x00\x00\x00\x00\x06\x00\x00\x00d\
+Tip: You \
+can drag and dro\
+p image folders \
+or comic files/a\
+rchives into thi\
+s window to conv\
+ert.\x07\x00\x00\x00\x06KCCGUI\x01\
+\x03\x00\x00\x00X\x00<\x00b\x00>\xd3\x01\x00:\x00\
+<\x00/\x00b\x00>\x00 \xc6$\xb9x\xca\xbd\x00\
+ \xc0\xc1\xb2\xe8\x00 \xbc\x84\xd2\xbc\xc7<\xb8\x5c\x00\
+ \xc2l\xc6\xc0\x00/\xc8\x04\xbb8\xac\x00\x00 \xba\
+\xa8\xb4\xdc\xb9|\x00 \xc8\x04\xd6X\xd5`\x00 \xc2\
+\x18\x00 \xc7\x88\xc2\xb5\xb2\xc8\xb2\xe4\x00.\x08\x00\x00\
+\x00\x00\x06\x00\x00\x00FTip:\
+b> You can toggl\
+e easy/expert mo\
+de using button \
+at top right.\x07\x00\x00\
+\x00\x06KCCGUI\x01\x03\x00\x00\x00\x04\xc9\x11\
+\xb2\xe8\x08\x00\x00\x00\x00\x06\x00\x00\x00\x05Abor\
+t\x07\x00\x00\x00\x06KCCGUI\x01\x03\x00\x00\
+\x00\x1e\xba\xa8\xb4\xe0\x00 \xc7\x91\xc5\xc5\xc7t\x00 \
+\xc6D\xb8\xcc\xb4\x18\xc5\xc8\xc2\xb5\xb2\xc8\xb2\xe4\x00.\
+\x08\x00\x00\x00\x00\x06\x00\x00\x00\x13All jo\
+bs completed.\x07\x00\x00\
+\x00\x06KCCGUI\x01\x03\x00\x00\x00\x14\xd3\x0c\
+\xc7|\x00 \xbc\xd1\xd5i\x00 \xc2\xdc\xb3\xc4\x00 \
+\xc9\x11\x08\x00\x00\x00\x00\x06\x00\x00\x00\x16Atte\
+mpting file fusi\
+on\x07\x00\x00\x00\x06KCCGUI\x01\x03\x00\
+\x00\x00,\x00C\x002\x00E\x00:\x00 \xc1\x8c\xc2\
+\xa4\x00 \xb5\x14\xb8\x09\xd10\xb9\xac\xac\x00\x00 \xbe\
+D\xc5\xb4\x00 \xc7\x88\xc2\xb5\xb2\xc8\xb2\xe4\x00.\x08\
+\x00\x00\x00\x00\x06\x00\x00\x00\x1fC2E: So\
+urce directory i\
+s empty.\x07\x00\x00\x00\x06KCC\
+GUI\x01\x03\x00\x00\x006\x00K\x00i\x00n\x00\
+d\x00l\x00e\xc7D\x00 \xcd\x9c\xb8%\x00 \xb5\
+\x14\xb8\x09\xd10\xb9\xac\xb8\x5c\x00 \xc1 \xd0\xdd\xd5\
+`\x00 \xc2\x18\x00 \xc5\xc6\xc2\xb5\xb2\xc8\xb2\xe4\x08\
+\x00\x00\x00\x00\x06\x00\x00\x00(Cannot \
+select Kindle as\
+ output director\
+y\x07\x00\x00\x00\x06KCCGUI\x01\x03\x00\x00\
+\x00\x90\x00C\x00o\x00l\x00o\x00r\x00s\x00o\
+\x00f\x00t\x00 \x00M\x00O\x00B\x00I\x00/\
+\x00E\x00P\x00U\x00B\xc5\xd0\xc1\x1c\x00 \xbeH\
+\x00 \xd3\x98\xc7t\xc9\xc0\xac\x00\x00 \xb0\x98\xd0\xc0\
+\xb0\xa0\x00 \xc2\x18\x00 \xc7\x88\xc2\xb5\xb2\xc8\xb2\xe4\
+\x00.\x00 \xba\x87\x00 \xd3\x98\xc7t\xc9\xc0\x00 \
+\xb4\xa4\xb8\x5c\x00 \xac\x00\xc1\x1c\x00 \xc8\x85\xb8\xcc\
+\xd5\x5c\x00 \xb2\xe4\xc7L\x00 \xccE\xc7D\x00 \
+\xb2\xe4\xc2\xdc\x00 \xc5\xf4\xc5\xb4\xbc\xf4\xc18\xc6\x94\
+\x00.\x08\x00\x00\x00\x00\x06\x00\x00\x00[Colo\
+rsoft MOBI/EPUB \
+can have blank p\
+ages. Just go ba\
+ck a few pages, \
+exit, and reente\
+r book.\x07\x00\x00\x00\x06KCCG\
+UI\x01\x03\x00\x00\x00J\xac\x00\xb3\xc5\xc11\xc7D\
+\x00 \xb1\x92\xc7t\xb8$\xbat\x00 \x00'\xb2\x98\
+\xb9\xac\xae0\x00/\xc5\xc5\xc2\xa4\xcf\x00\xc7|\x00'\
+\xc7D\x00 \xd6\x5c\xc11\xd6T\xd5X\xb2\x94\x00 \
+\xac\x83\xc7D\x00 \xac\xe0\xb8$\xd5X\xc18\xc6\x94\
+\x00.\x08\x00\x00\x00\x00\x06\x00\x00\x00ACons\
+ider enabling st\
+retching or upsc\
+aling to improve\
+ readability.\x07\x00\x00\
+\x00\x06KCCGUI\x01\x03\x00\x00\x00\x18\xbc\xc0\
+\xd6X\xc7t\x00 \xc9\x11\xb2\xe8\xb4\x18\xc5\xc8\xc2\xb5\
+\xb2\xc8\xb2\xe4\x00.\x08\x00\x00\x00\x00\x06\x00\x00\x00\x17\
+Conversion inter\
+rupted.\x07\x00\x00\x00\x06KCCG\
+UI\x01\x03\x00\x00\x00\x04\xbc\xc0\xd6X\x08\x00\x00\x00\
+\x00\x06\x00\x00\x00\x07Convert\x07\x00\x00\
+\x00\x06KCCGUI\x01\x03\x00\x00\x00D\xc0\xdd\
+\xc11\xb4\x1c\x00 \x00E\x00P\x00U\x00B\x00 \
+\xd3\x0c\xc7|\xc7t\x00 \xb1\x08\xbb4\x00 \xd0}\
+\xb2\xc8\xb2\xe4\x00.\x00 \xd3\x0c\xc7|\x00 \xadl\
+\xc8p\xac\x00\x00 \xc7t\xc0\xc1\xd5\x5c\xac\x00\xc6\x94\
+\x00?\x08\x00\x00\x00\x00\x06\x00\x00\x004Crea\
+ted EPUB file wa\
+s too big. Weird\
+ file structure?\
+\x07\x00\x00\x00\x06KCCGUI\x01\x03\x00\x00\x00\
+\x22\x00%\x001\xc5\xd0\x00 \xbc\xd1\xd5i\x00 \xd3\
+\x0c\xc7|\xc7D\x00 \xb9\xcc\xb4\xe4\xc5\xc8\xc2\xb5\xb2\
+\xc8\xb2\xe4\x08\x00\x00\x00\x00\x06\x00\x00\x00\x14Cre\
+ated fusion at %\
+1\x07\x00\x00\x00\x06KCCGUI\x01\x03\x00\x00\
+\x00\x16\x00C\x00B\x00Z\x00 \xd3\x0c\xc7|\x00 \
+\xc0\xdd\xc11\x00 \xc9\x11\x08\x00\x00\x00\x00\x06\x00\x00\
+\x00\x12Creating CBZ f\
+iles\x07\x00\x00\x00\x06KCCGUI\x01\
+\x03\x00\x00\x002\x00C\x00B\x00Z\x00 \xd3\x0c\xc7\
+|\x00 \xc0\xdd\xc11\x00 \xc9\x11\x00.\x00.\x00\
+.\x00 \x00<\x00b\x00>\xc6D\xb8\xcc\x00!\x00\
+<\x00/\x00b\x00>\x08\x00\x00\x00\x00\x06\x00\x00\x00\
+\x22Creating CBZ fi\
+les... Done!<\
+/b>\x07\x00\x00\x00\x06KCCGUI\x01\x03\
+\x00\x00\x00\x18\x00E\x00P\x00U\x00B\x00 \xd3\x0c\
+\xc7|\x00 \xc0\xdd\xc11\x00 \xc9\x11\x08\x00\x00\x00\
+\x00\x06\x00\x00\x00\x13Creating E\
+PUB files\x07\x00\x00\x00\x06KC\
+CGUI\x01\x03\x00\x00\x004\x00E\x00P\x00U\
+\x00B\x00 \xd3\x0c\xc7|\x00 \xc0\xdd\xc11\x00 \
+\xc9\x11\x00.\x00.\x00.\x00 \x00<\x00b\x00>\
+\xc6D\xb8\xcc\x00!\x00<\x00/\x00b\x00>\x08\x00\
+\x00\x00\x00\x06\x00\x00\x00#Creating\
+ EPUB files... <\
+b>Done! \x07\x00\x00\x00\x06\
+KCCGUI\x01\x03\x00\x00\x00\x18\x00M\x00O\
+\x00B\x00I\x00 \xd3\x0c\xc7|\x00 \xc0\xdd\xc11\
+\x00 \xc9\x11\x08\x00\x00\x00\x00\x06\x00\x00\x00\x13Cr\
+eating MOBI file\
+s\x07\x00\x00\x00\x06KCCGUI\x01\x03\x00\x00\
+\x004\x00M\x00O\x00B\x00I\x00 \xd3\x0c\xc7|\
+\x00 \xc0\xdd\xc11\x00 \xc9\x11\x00.\x00.\x00.\
+\x00 \x00<\x00b\x00>\xc6D\xb8\xcc\x00!\x00<\
+\x00/\x00b\x00>\x08\x00\x00\x00\x00\x06\x00\x00\x00#\
+Creating MOBI fi\
+les... Done!<\
+/b>\x07\x00\x00\x00\x06KCCGUI\x01\x03\
+\x00\x00\x00\x16\x00P\x00D\x00F\x00 \xd3\x0c\xc7|\
+\x00 \xc0\xdd\xc11\x00 \xc9\x11\x08\x00\x00\x00\x00\x06\
+\x00\x00\x00\x12Creating PDF\
+ files\x07\x00\x00\x00\x06KCCGU\
+I\x01\x03\x00\x00\x002\x00P\x00D\x00F\x00 \xd3\
+\x0c\xc7|\x00 \xc0\xdd\xc11\x00 \xc9\x11\x00.\x00\
+.\x00.\x00 \x00<\x00b\x00>\xc6D\xb8\xcc\x00\
+!\x00<\x00/\x00b\x00>\x08\x00\x00\x00\x00\x06\x00\
+\x00\x00\x22Creating PDF \
+files... Done\
+! \x07\x00\x00\x00\x06KCCGUI\
+\x01\x03\x00\x00\x00\x0e\xd3\xf4\xb3T\x00 \xc0\xdd\xc11\
+\x00 \xc9\x11\x08\x00\x00\x00\x00\x06\x00\x00\x00\x10Cr\
+eating folders\x07\x00\
+\x00\x00\x06KCCGUI\x01\x03\x00\x00\x00*\xd3\
+\xf4\xb3T\x00 \xc0\xdd\xc11\x00 \xc9\x11\x00.\x00\
+.\x00.\x00 \x00<\x00b\x00>\xc6D\xb8\xcc\x00\
+!\x00<\x00/\x00b\x00>\x08\x00\x00\x00\x00\x06\x00\
+\x00\x00 Creating fold\
+ers... Done!<\
+/b>\x07\x00\x00\x00\x06KCCGUI\x01\x03\
+\x00\x00\x00\x14\xc7\x90\xb9t\xae0\x00 \xac\x15\xb3\xc4\
+\x00:\x00 \x00%\x001\x08\x00\x00\x00\x00\x06\x00\x00\
+\x00\x12Cropping Power\
+: %1\x07\x00\x00\x00\x06KCCGUI\x01\
+\x03\x00\x00\x00\x0e\x00D\x00i\x00s\x00c\x00o\x00\
+r\x00d\x08\x00\x00\x00\x00\x06\x00\x00\x00\x07DIS\
+CORD\x07\x00\x00\x00\x06KCCGUI\x01\
+\x03\x00\x00\x00\x04\xae0\xbd\x80\x08\x00\x00\x00\x00\x06\x00\
+\x00\x00\x06DONATE\x07\x00\x00\x00\x06KC\
+CGUI\x01\x03\x00\x00\x00\x06\xc7t\xbaT\xc7|\
+\x08\x00\x00\x00\x00\x06\x00\x00\x00\x05EMAIL\x07\
+\x00\x00\x00\x06KCCGUI\x01\x03\x00\x00\x00<\
+\x00E\x00P\x00U\x00B\x00 \xd3\x0c\xc7|\x00:\
+\x00 \x00%\x001\x00M\x00B\x00.\x00 \xc9\xc0\
+\xc6\xd0\x00 \xd0l\xae0\x00:\x00 \xc5}\x00 \
+\x003\x005\x000\x00M\x00B\x00.\x08\x00\x00\x00\
+\x00\x06\x00\x00\x00(EPUB file:\
+ %1MB. Supported\
+ size: ~350MB.\x07\x00\
+\x00\x00\x06KCCGUI\x01\x03\x00\x00\x00.\x00\
+7\x00z\xac\x00\x00 \xc5\xc6\xc5\xb4\xc1\x1c\x00 \xd3\
+\xb8\xc9\xd1\xae0\xac\x00\x00 \xbeD\xd6\x5c\xc11\xd6\
+T\xb4\x18\xc5\xc8\xc2\xb5\xb2\xc8\xb2\xe4\x00.\x08\x00\x00\
+\x00\x00\x06\x00\x00\x00'Editor is\
+ disabled due to\
+ a lack of 7z.\x07\x00\
+\x00\x00\x06KCCGUI\x01\x03\x00\x00\x000\xbc\
+\xc0\xd6X\x00 \x00%\x001\x00 \xc9\x11\x00 \xc6\
+$\xb9X\x00:\x00\x0a\x00\x0a\x00%\x002\x00\x0a\x00\
+\x0a\xc5\xed\xcd\x94\xc8\x01\x00:\x00\x0a\x00%\x003\x08\
+\x00\x00\x00\x00\x06\x00\x00\x00.Error d\
+uring conversion\
+ %1:\x0a\x0a%2\x0a\x0aTraceb\
+ack:\x0a%3\x07\x00\x00\x00\x06KCCG\
+UI\x01\x03\x00\x00\x00 \xbc\xc0\xd6X\x00 \xc9\x11\
+\x00 \xc6$\xb9X\xac\x00\x00 \xbc\x1c\xc0\xdd\xd5\x88\
+\xc2\xb5\xb2\xc8\xb2\xe4\x00!\x08\x00\x00\x00\x00\x06\x00\x00\
+\x00\x18Error during c\
+onversion!\x07\x00\x00\x00\x06K\
+CCGUI\x01\x03\x00\x00\x00\xd2\xbc\xc0\xd6X\x00\
+ \xc9\x11\x00 \xc6$\xb9X\xac\x00\x00 \xbc\x1c\xc0\
+\xdd\xd5\x88\xc2\xb5\xb2\xc8\xb2\xe4\x00!\x00 \xc7\x90\xc1\
+8\xd5\x5c\x00 \xb0\xb4\xc6\xa9\xc7@\x00 \x00<\x00\
+a\x00 \x00h\x00r\x00e\x00f\x00=\x00\x22\x00\
+h\x00t\x00t\x00p\x00s\x00:\x00/\x00/\x00\
+g\x00i\x00t\x00h\x00u\x00b\x00.\x00c\x00\
+o\x00m\x00/\x00c\x00i\x00r\x00o\x00m\x00\
+a\x00t\x00t\x00i\x00a\x00/\x00k\x00c\x00\
+c\x00/\x00w\x00i\x00k\x00i\x00/\x00E\x00\
+r\x00r\x00o\x00r\x00-\x00m\x00e\x00s\x00\
+s\x00a\x00g\x00e\x00s\x00\x22\x00>\x00w\x00\
+i\x00k\x00i\x00<\x00/\x00a\x00>\xb9|\x00\
+ \xcc8\xc8p\xd5X\xc18\xc6\x94\x00.\x08\x00\x00\
+\x00\x00\x06\x00\x00\x00\x82Error dur\
+ing conversion! \
+Please consult <\
+a href=\x22https://\
+github.com/cirom\
+attia/kcc/wiki/E\
+rror-messages\x22>w\
+iki for more\
+ details.\x07\x00\x00\x00\x06KC\
+CGUI\x01\x03\x00\x00\x00\x06\x00F\x00A\x00Q\
+\x08\x00\x00\x00\x00\x06\x00\x00\x00\x03FAQ\x07\x00\x00\
+\x00\x06KCCGUI\x01\x03\x00\x00\x00\x04\xd3\xec\
+\xb7\xfc\x08\x00\x00\x00\x00\x06\x00\x00\x00\x05FORU\
+M\x07\x00\x00\x00\x06KCCGUI\x01\x03\x00\x00\
+\x002\x00P\x00D\x00F\x00 \xd3\x0c\xc7|\xc5\xd0\
+\xc1\x1c\x00 \xc7t\xbb\xf8\xc9\xc0\xb9|\x00 \xcd\x94\
+\xcd\x9c\xd5X\xc9\xc0\x00 \xba\xbb\xd5\x88\xc2\xb5\xb2\xc8\
+\xb2\xe4\x00.\x08\x00\x00\x00\x00\x06\x00\x00\x00'Fa\
+iled to extract \
+images from PDF \
+file.\x07\x00\x00\x00\x06KCCGUI\
+\x01\x03\x00\x00\x008\x00P\x00D\x00F\x00 \xd3\x0c\
+\xc7|\xc5\xd0\xc1\x1c\x00 \xc7t\xbb\xf8\xc9\xc0\xb9|\
+\x00 \xcd\x94\xcd\x9c\xd5X\xc9\xc0\x00 \xba\xbb\xd5\x88\
+\xc2\xb5\xb2\xc8\xb2\xe4\x00.\x00 \x00%\x001\x08\x00\
+\x00\x00\x00\x06\x00\x00\x00*Failed t\
+o extract images\
+ from PDF file. \
+%1\x07\x00\x00\x00\x06KCCGUI\x01\x03\x00\
+\x00\x00*\xc1\x8c\xc2\xa4\x00 \xd3\x0c\xc7|\x00/\xb5\
+\x14\xb8\x09\xd10\xb9\xac\xb9|\x00 \xc5\xf4\xc9\xc0\x00\
+ \xba\xbb\xd5\x88\xc2\xb5\xb2\xc8\xb2\xe4\x00.\x08\x00\x00\
+\x00\x00\x06\x00\x00\x00%Failed to\
+ open source fil\
+e/directory.\x07\x00\x00\x00\
+\x06KCCGUI\x01\x03\x00\x00\x008\xbaT\xd0\
+\xc0\xb3p\xc7t\xd10\x00 \xadl\xbb8\x00 \xbd\
+\x84\xc1\x1d\x00 \xc2\xe4\xd3(\x00!\x00\x0a\x00\x0a\x00\
+%\x001\x00\x0a\x00\x0a\xc5\xed\xcd\x94\xc8\x01\x00:\x00\
+\x0a\x00%\x002\x08\x00\x00\x00\x00\x06\x00\x00\x00,F\
+ailed to parse m\
+etadata!\x0a\x0a%1\x0a\x0aTr\
+aceback:\x0a%2\x07\x00\x00\x00\x06\
+KCCGUI\x01\x03\x00\x00\x00$\xc7\x91\xc5\xc5\
+\x00 \xac\xf5\xac\x04\xc7D\x00 \xc9\x00\xbeD\xd5X\
+\xc9\xc0\x00 \xba\xbb\xd5\x88\xc2\xb5\xb2\xc8\xb2\xe4\x00.\
+\x08\x00\x00\x00\x00\x06\x00\x00\x00\x1eFailed\
+ to prepare a wo\
+rkspace.\x07\x00\x00\x00\x06KCC\
+GUI\x01\x03\x00\x00\x00\x1c\x00M\x00O\x00B\x00\
+I\x00 \xd3\x0c\xc7|\x00 \xcc\x98\xb9\xac\x00 \xc2\
+\xe4\xd3(\x00!\x08\x00\x00\x00\x00\x06\x00\x00\x00\x1cF\
+ailed to process\
+ MOBI file!\x07\x00\x00\x00\x06\
+KCCGUI\x01\x03\x00\x00\x00\x12\xbc\xd1\xd5i\
+\x00 \xc2\xe4\xd3(\x00.\x00 \x00%\x001\x08\x00\
+\x00\x00\x00\x06\x00\x00\x00\x11Fusion F\
+ailed. %1\x07\x00\x00\x00\x06KC\
+CGUI\x01\x03\x00\x00\x00R\xbc\xd1\xd5i\xc5\xd0\
+\xb2\x94\x00 \xcd\x5c\xc1\x8c\x00 \x002\xac\x1c\xc7X\
+\x00 \xc1\x8c\xc2\xa4\xac\x00\x00 \xd5D\xc6\x94\xd5i\
+\xb2\xc8\xb2\xe4\x00.\x00 \xbc\xd1\xd5i\xc7D\x00 \
+\xd5t\xc8\x1c\xd5X\xb2\x94\x00 \xac\x83\xc7D\x00 \
+\xc7\x8a\xc7<\xc1h\xb0\x98\xc6\x94\x00?\x08\x00\x00\x00\
+\x00\x06\x00\x00\x00EFusion req\
+uires at least 2\
+ sources. Did yo\
+u forget to unch\
+eck fusion?\x07\x00\x00\x00\x06\
+KCCGUI\x01\x03\x00\x00\x00\x0c\xac\x10\xb9\xc8\
+\x00:\x00 \x00%\x001\x08\x00\x00\x00\x00\x06\x00\x00\
+\x00\x09Gamma: %1\x07\x00\x00\x00\x06\
+KCCGUI\x01\x03\x00\x00\x00\x0c\xac\x10\xb9\xc8\
+\x00:\x00 \xc7\x90\xb3\xd9\x08\x00\x00\x00\x00\x06\x00\x00\
+\x00\x0bGamma: Auto\x07\x00\x00\
+\x00\x06KCCGUI\x01\x03\x00\x00\x004\xc7t\
+\xbb\xf8\xc9\xc0\x00 \xd3\x0c\xc7|\x00 \x00%\x001\
+\xc7t\x00 \xc1\x90\xc0\xc1\xb4\x18\xc5\xc8\xc2\xb5\xb2\xc8\
+\xb2\xe4\x00.\x00 \xc6$\xb9X\x00:\x00 \x00%\
+\x002\x08\x00\x00\x00\x00\x06\x00\x00\x00%Imag\
+e file %1 is cor\
+rupted. Error: %\
+2\x07\x00\x00\x00\x06KCCGUI\x01\x03\x00\x00\
+\x00\x10\x00K\x00C\x00C\x00 \x00-\x00 \xc6$\
+\xb9X\x08\x00\x00\x00\x00\x06\x00\x00\x00\x0bKCC \
+- Error\x07\x00\x00\x00\x06KCCG\
+UI\x01\x03\x00\x00\x00\x10\x00K\x00C\x00C\x00 \
+\x00-\x00 \xc9\xc8\xbb8\x08\x00\x00\x00\x00\x06\x00\x00\
+\x00\x0eKCC - Question\
+\x07\x00\x00\x00\x06KCCGUI\x01\x03\x00\x00\x00\
+ \x00K\x00i\x00n\x00d\x00l\x00e\x00 \xb9\
+\xcc\xd6T\x00 \xbc\xc0\xd6X\xae0\x00 \x00%\x00\
+1\x08\x00\x00\x00\x00\x06\x00\x00\x00\x19Kindl\
+e Comic Converte\
+r %1\x07\x00\x00\x00\x06KCCGUI\x01\
+\x03\x00\x00\x00D\x00K\x00i\x00n\x00d\x00l\x00\
+e\x00 \xac\x10\xc9\xc0\xb4(\x00.\x00 \xd4\x5c\xc9\
+\xc0\x00 \xc5\xc5\xb8\x5c\xb4\xdc\x00 \xc9\x11\x00.\x00\
+.\x00.\x00 \x00<\x00b\x00>\xc6D\xb8\xcc\x00\
+!\x00<\x00/\x00b\x00>\x08\x00\x00\x00\x00\x06\x00\
+\x00\x001Kindle detect\
+ed. Uploading co\
+vers... Done!\
+ \x07\x00\x00\x00\x06KCCGUI\x01\
+\x03\x00\x00\x00\x1e\x00K\x00i\x00n\x00d\x00l\x00\
+e\x00G\x00e\x00n\x00 \xc6$\xb9X\x00:\x00\
+\x0a\x00\x0a\x08\x00\x00\x00\x00\x06\x00\x00\x00\x12Kin\
+dleGen error:\x0a\x0a\x07\
+\x00\x00\x00\x06KCCGUI\x01\x03\x00\x00\x006\
+\x00K\x00i\x00n\x00d\x00l\x00e\x00G\x00e\
+\x00n\xc7t\x00 \x00M\x00O\x00B\x00I\xb9|\
+\x00 \xb9\xcc\xb4\xe4\xc9\xc0\x00 \xba\xbb\xd5\x88\xc2\xb5\
+\xb2\xc8\xb2\xe4\x00!\x08\x00\x00\x00\x00\x06\x00\x00\x00 \
+KindleGen failed\
+ to create MOBI!\
+\x07\x00\x00\x00\x06KCCGUI\x01\x03\x00\x00\x00\
+T\x00M\x00O\x00B\x00I\x00/\x00K\x00i\x00\
+n\x00d\x00l\x00e\xb8\x5c\x00 \xbc\xf4\xb0\xb4\xae\
+0\xb2\x94\x00 \x00K\x00i\x00n\x00d\x00l\x00\
+e\x00 \xc6x\x00 \xd5\x04\xb8\x5c\xd5D\xc5\xd0\xc1\
+\x1c\x00 \xc9\xc0\xc6\xd0\xb4\x18\xc9\xc0\x00 \xc5J\xc2\
+\xb5\xb2\xc8\xb2\xe4\x08\x00\x00\x00\x00\x06\x00\x00\x009M\
+OBI/Send to Kind\
+le not supported\
+ for non-Kindle \
+profiles\x07\x00\x00\x00\x06KCC\
+GUI\x01\x03\x00\x00\x00<\xc7t\xbb\xf8\xc9\xc0\xc7\
+X\x00 \x002\x005\x00%\x00 \xc7t\xc0\xc1\xc7\
+t\x00 \xb3\x00\xc0\xc1\x00 \xae0\xae0\x00 \xd5\
+t\xc0\xc1\xb3\xc4\xbc\xf4\xb2\xe4\x00 \xc7\x91\xc2\xb5\xb2\
+\xc8\xb2\xe4\x00.\x08\x00\x00\x00\x00\x06\x00\x00\x00BM\
+ore than 25% of \
+images are small\
+er than target d\
+evice resolution\
+.\x07\x00\x00\x00\x06KCCGUI\x01\x03\x00\x00\
+\x008\xc1 \xd0\xdd\xb4\x1c\x00 \xd3\x0c\xc7|\xc7t\
+\x00 \xc5\xc6\xc2\xb5\xb2\xc8\xb2\xe4\x00!\x00 \xbc\xc0\
+\xd6X\xd5`\x00 \xd3\x0c\xc7|\xc7D\x00 \xc1 \
+\xd0\xdd\xd5X\xc18\xc6\x94\x00.\x08\x00\x00\x00\x00\x06\
+\x00\x00\x002No files sel\
+ected! Please ch\
+oose files to co\
+nvert.\x07\x00\x00\x00\x06KCCGU\
+I\x01\x03\x00\x00\x00V\xbc\xc0\xd6X\xc7D\x00 \xc2\
+\x18\xd5\x89\xd5`\x00 \xb5\x14\xc2\xa4\xd0l\x00 \xac\
+\xf5\xac\x04\xc7t\x00 \xbd\x80\xc8q\xd5i\xb2\xc8\xb2\
+\xe4\x00.\x00 \xc7\x84\xc2\xdc\x00 \xb5\x14\xb8\x09\xd1\
+0\xb9\xac\x00 \xc65\xc1X\xc7D\x00 \xc0\xac\xc6\
+\xa9\xd5t\x00 \xbc\xf4\xc18\xc6\x94\x00.\x08\x00\x00\
+\x00\x00\x06\x00\x00\x00GNot enoug\
+h disk space to \
+perform conversi\
+on. Try Temp Dir\
+ectory option.\x07\x00\
+\x00\x00\x06KCCGUI\x01\x03\x00\x00\x00:\xc7\
+t\x00 \xae0\xae0\xc5\xd0\xc1\x1c\xb2\x94\x00 \xbc\
+\xc0\xd6X\x00 \xc1\x8d\xb3\xc4\xc6@\x00 \xd4\x88\xc9\
+\xc8\xc5\xd0\x00 \xbb8\xc8\x1c\xac\x00\x00 \xbc\x1c\xc0\
+\xdd\xd5i\xb2\xc8\xb2\xe4\x00.\x08\x00\x00\x00\x00\x06\x00\
+\x00\x00BOn this devic\
+e, there will be\
+ conversion spee\
+d and quality is\
+sues.\x07\x00\x00\x00\x06KCCGUI\
+\x01\x03\x00\x00\x00Z\xc6\xcc\xce\xe4\x00 \xc9\x11\x00 \
+\xd5X\xb0\x98\xac\x00\x00 \xcd\xa9\xb3\xcc\xd5\x88\xc2\xb5\
+\xb2\xc8\xb2\xe4\x00.\x00 \x00P\x00C\xb9|\x00 \
+\xb2\xe4\xc2\xdc\x00 \xc2\xdc\xc7\x91\xd5t\xc5|\x00 \
+\xd5`\x00 \xc2\x18\x00 \xc7\x88\xc2\xb5\xb2\xc8\xb2\xe4\
+\x00.\x00 \xc6\xd0\xc7x\x00:\x00 \x00%\x001\
+\x08\x00\x00\x00\x00\x06\x00\x00\x003One of\
+ workers crashed\
+. Maybe restart \
+PC. Cause: %1\x07\x00\x00\
+\x00\x06KCCGUI\x01\x03\x00\x00\x00N\xbb8\
+\xc8\x1c\xac\x00\x00 \xc7\x88\xc7<\xbat\x00 \x00P\
+\x00D\x00F\x00 \xc7\x85\xb8%\xc5\xd0\xc1\x1c\x00 \
+\xb8\x08\xacp\xc2\xdc\x00 \xcd\x94\xcd\x9c\x00 \xc65\
+\xc1X\xc7D\x00 \xc0\xac\xc6\xa9\xd5`\x00 \xc2\x18\
+\xb3\xc4\x00 \xc7\x88\xc2\xb5\xb2\xc8\xb2\xe4\x08\x00\x00\x00\
+\x00\x06\x00\x00\x00EPDF input \
+can also use leg\
+acy extract opti\
+on if you have a\
+ny problems\x07\x00\x00\x00\x06\
+KCCGUI\x01\x03\x00\x00\x00\x5c\x00K\x00C\
+\x00C\xac\x00\x00 \xc7t\xbb\xf8\xc9\xc0\x00 \xc5\xec\
+\xbc1\xc7D\x00 \xd6U\xc7\xa5\xd5X\xc9\xc0\x00 \
+\xc5J\xae0\xb9|\x00 \xc6\xd0\xd5X\xbat\x00 \
+\x00W\x00/\x00B\x00 \xc5\xec\xbc1\xc7D\x00 \
+\xbd\x80\xbd\x84\xc8\x01\xc7<\xb8\x5c\x00 \xcc\xb4\xd0l\
+\xd5X\xc18\xc6\x94\x00.\x08\x00\x00\x00\x00\x06\x00\x00\
+\x00NPartially chec\
+k W/B Margins if\
+ you don't want \
+KCC to extend th\
+e image margins.\
+\x07\x00\x00\x00\x06KCCGUI\x01\x03\x00\x00\x00\
+J\x00P\x00i\x00l\x00l\x00o\x00w\xac\x00\x00\
+ \x00J\x00P\x00G\x00 \xbc\x0f\x00/\xb6\x10\xb2\
+\x94\x00 \x00P\x00N\x00G\x00 \xb5\x14\xcfT\xb3\
+T\x00 \xc5\xc6\xc7t\x00 \xce\xf4\xd3\x0c\xc7|\xb4\
+\x18\xc5\xc8\xc2\xb5\xb2\xc8\xb2\xe4\x00.\x08\x00\x00\x00\x00\
+\x06\x00\x00\x003Pillow was \
+compiled without\
+ JPG and/or PNG \
+decoder.\x07\x00\x00\x00\x06KCC\
+GUI\x01\x03\x00\x00\x00\x82\xcc\x98\xb9\xac\x00 \xc2\
+\xe4\xd3(\x00.\x00 \xc1\x8c\xc2\xa4\xb9|\x00 \x00\
+2\xac\x1c\x00 \xc7t\xc0\xc1\x00 \xcc\x98\xb9\xac\xd5\
+`\x00 \xb5L\xb2\x94\x00 \xc0\xac\xc6\xa9\xc7\x90\x00\
+ \xc9\xc0\xc8\x15\x00 \xc8\x1c\xba\xa9\xc7D\x00 \xc1\
+$\xc8\x15\xd5`\x00 \xc2\x18\x00 \xc5\xc6\xc2\xb5\xb2\
+\xc8\xb2\xe4\x00.\x00\x0a\xbc\xd1\xd5i\xc7D\x00 \xcc\
+\xb4\xd0l\xd5X\xb2\x94\x00 \xac\x83\xc7D\x00 \xc7\
+\x8a\xc7<\xc1h\xb0\x98\xc6\x94\x00?\x08\x00\x00\x00\x00\
+\x06\x00\x00\x00mProcess Fai\
+led. Custom titl\
+e can't be set w\
+hen processing m\
+ore than 1 sourc\
+e.\x0aDid you forge\
+t to check fusio\
+n?\x07\x00\x00\x00\x06KCCGUI\x01\x03\x00\
+\x00\x00\x18\x00M\x00O\x00B\x00I\x00 \xd3\x0c\xc7\
+|\x00 \xcc\x98\xb9\xac\x00 \xc9\x11\x08\x00\x00\x00\x00\
+\x06\x00\x00\x00\x15Processing \
+MOBI files\x07\x00\x00\x00\x06K\
+CCGUI\x01\x03\x00\x00\x004\x00M\x00O\x00\
+B\x00I\x00 \xd3\x0c\xc7|\x00 \xcc\x98\xb9\xac\x00\
+ \xc9\x11\x00.\x00.\x00.\x00 \x00<\x00b\x00\
+>\xc6D\xb8\xcc\x00!\x00<\x00/\x00b\x00>\x08\
+\x00\x00\x00\x00\x06\x00\x00\x00%Process\
+ing MOBI files..\
+. Done! \x07\x00\
+\x00\x00\x06KCCGUI\x01\x03\x00\x00\x00\x0c\x00\
+R\x00E\x00A\x00D\x00M\x00E\x08\x00\x00\x00\x00\
+\x06\x00\x00\x00\x06README\x07\x00\x00\x00\x06\
+KCCGUI\x01\x03\x00\x00\x00z\x00S\x00c\
+\x00r\x00i\x00b\x00e\x00 \x00P\x00N\x00G\
+\x00 \x00M\x00O\x00B\x00I\x00/\x00E\x00P\
+\x00U\x00B\xc5\xd0\xb2\x94\x00 \xbeH\x00 \xd3\x98\
+\xc7t\xc9\xc0\x00/\xc19\xc1X\x00 \xb4\xf1\x00 \
+\xb9\xce\xc7@\x00 \xbb8\xc8\x1c\xac\x00\x00 \xc7\x88\
+\xc2\xb5\xb2\xc8\xb2\xe4\x00.\x00 \xb3\x00\xc2\xe0\x00 \
+\x00J\x00P\x00G\xb9|\x00 \xc0\xac\xc6\xa9\xd5X\
+\xc18\xc6\x94\x00.\x08\x00\x00\x00\x00\x06\x00\x00\x00V\
+Scribe PNG MOBI/\
+EPUB has a lot o\
+f problems like \
+blank pages/sect\
+ions. Use JPG in\
+stead.\x07\x00\x00\x00\x06KCCGU\
+I\x01\x03\x00\x00\x00\x16\xae0\xbc\xf8\x00 \xcd\x9c\xb8\
+%\x00 \xd3\xf4\xb3T\x00 \xc1 \xd0\xdd\x08\x00\x00\
+\x00\x00\x06\x00\x00\x00\x1cSelect de\
+fault output fol\
+der\x07\x00\x00\x00\x06KCCGUI\x01\x03\
+\x00\x00\x00\x0a\xd3\x0c\xc7|\x00 \xc1 \xd0\xdd\x08\x00\
+\x00\x00\x00\x06\x00\x00\x00\x0bSelect f\
+ile\x07\x00\x00\x00\x06KCCGUI\x01\x03\
+\x00\x00\x00\x0a\xd3\x0c\xc7|\x00 \xc1 \xd0\xdd\x08\x00\
+\x00\x00\x00\x06\x00\x00\x00\x0eSelect f\
+ile(s)\x07\x00\x00\x00\x06KCCGU\
+I\x01\x03\x00\x00\x00\x10\xc7\x85\xb8%\x00 \xd3\xf4\xb3\
+T\x00 \xc1 \xd0\xdd\x08\x00\x00\x00\x00\x06\x00\x00\x00\
+\x16Select input fo\
+lder(s)\x07\x00\x00\x00\x06KCCG\
+UI\x01\x03\x00\x00\x00\x14\xcd\x9c\xb8%\x00 \xb5\x14\
+\xb8\x09\xd10\xb9\xac\x00 \xc1 \xd0\xdd\x08\x00\x00\x00\
+\x00\x06\x00\x00\x00\x17Select out\
+put directory\x07\x00\x00\
+\x00\x06KCCGUI\x01\x03\x00\x00\x00\x14\xbc\xfc\
+\xb9h\x00 \xb5\x14\xb8\x09\xd10\xb9\xac\x00 \xc1 \
+\xd0\xdd\x08\x00\x00\x00\x00\x06\x00\x00\x00\x19Sele\
+ct volume direct\
+ories\x07\x00\x00\x00\x06KCCGUI\
+\x01\x03\x00\x00\x00\xdc\x00<\x00b\x00>\x00K\x00C\
+\x00C\x00<\x00/\x00b\x00>\xc7X\x00 \xc0\xc8\
+\x00 \xc0\xac\xc6\xa9\xc7\x90\xc7t\xc2\xdc\xb7|\xbat\
+\x00 \xba\x87\x00 \xac\x00\xc9\xc0\x00 \x00<\x00a\
+\x00 \x00h\x00r\x00e\x00f\x00=\x00\x22\x00h\
+\x00t\x00t\x00p\x00s\x00:\x00/\x00/\x00g\
+\x00i\x00t\x00h\x00u\x00b\x00.\x00c\x00o\
+\x00m\x00/\x00c\x00i\x00r\x00o\x00m\x00a\
+\x00t\x00t\x00i\x00a\x00/\x00k\x00c\x00c\
+\x00/\x00w\x00i\x00k\x00i\x00/\x00I\x00m\
+\x00p\x00o\x00r\x00t\x00a\x00n\x00t\x00-\
+\x00t\x00i\x00p\x00s\x00\x22\x00>\xc9\x11\xc6\x94\
+\xd5\x5c\x00 \xd3\x01\x00<\x00/\x00a\x00>\xc7D\
+\x00 \xd6U\xc7x\xd5t\x00 \xc8\xfc\xc18\xc6\x94\
+\x00.\x08\x00\x00\x00\x00\x06\x00\x00\x00\x89Sinc\
+e you are a new \
+user of KCC\
+b> please see fe\
+w important tips\
+ .\x07\x00\x00\x00\x06KCCGUI\
+\x01\x03\x00\x00\x00\x5c\xc1\x8c\xc2\xa4\x00 \xd3\x0c\xc7|\
+\xc7@\x00 \xc5D\xb9\xc8\xb3\xc4\x00 \x00K\x00C\
+\x00C\xb8\x5c\x00 \xc0\xdd\xc11\xb4\x1c\x00 \xac\x83\
+\xc7\x85\xb2\xc8\xb2\xe4\x00.\x00 \xb4P\x00 \xbc\x88\
+\xc9\xf8\x00 \xbc\xc0\xd6X\xc7@\x00 \xd4\x88\xc9\xc8\
+\xc7D\x00 \xc8\x00\xd5X\xc2\xdc\xd0\xb5\xb2\xc8\xb2\xe4\
+\x00.\x08\x00\x00\x00\x00\x06\x00\x00\x00VSour\
+ce files are pro\
+bably created by\
+ KCC. The second\
+ conversion will\
+ decrease qualit\
+y.\x07\x00\x00\x00\x06KCCGUI\x01\x03\x00\
+\x00\x00F\xc5\xb8\xc5\xb4\x00 \xc8\x04\xd6X\x00 \x00\
+/\x00 \x00S\x00w\x00i\x00t\x00c\x00h\x00\
+ \x00l\x00a\x00n\x00g\x00u\x00a\x00g\x00\
+e\x00 \x00/\x00 R\x07cb\x8b\xed\x8a\x00\x00\
+ \x00/\x00 \x8a\x00\x8a\x9e\x08\x00\x00\x00\x00\x06\x00\
+\x00\x000Switch langua\
+ge / \xe5\x88\x87\xe6\x8d\xa2\xe8\xaf\xad\xe8\xa8\
+\x80 / \xe8\xa8\x80\xe8\xaa\x9e / \xec\x96\xb8\
+\xec\x96\xb4\x07\x00\x00\x00\x06KCCGUI\x01\x03\
+\x00\x00\x00\x08\xd2\x9c\xd1\xa0\xb9\xac\xc5\xbc\x08\x00\x00\x00\
+\x00\x06\x00\x00\x00\x08TUTORIAL\x07\x00\
+\x00\x00\x06KCCGUI\x01\x03\x00\x00\x00&\xb3\
+\x00\xc0\xc1\x00 \xd5t\xc0\xc1\xb3\xc4\xac\x00\x00 \xc1\
+$\xc8\x15\xb4\x18\xc9\xc0\x00 \xc5J\xc5X\xc2\xb5\xb2\
+\xc8\xb2\xe4\x00!\x08\x00\x00\x00\x00\x06\x00\x00\x00\x1dT\
+arget resolution\
+ is not set!\x07\x00\x00\x00\
+\x06KCCGUI\x01\x03\x00\x00\x000\xd5\x04\xb8\
+\x5c\xc18\xc2\xa4\xac\x00\x00 \xc9\x11\xb2\xe8\xb4)\xb2\
+\xc8\xb2\xe4\x00.\x00 \xc7\xa0\xc2\xdc\x00 \xae0\xb2\
+\xe4\xb8$\x00 \xc8\xfc\xc18\xc6\x94\x00.\x08\x00\x00\
+\x00\x00\x06\x00\x00\x00-The proce\
+ss will be inter\
+rupted. Please w\
+ait.\x07\x00\x00\x00\x06KCCGUI\x01\
+\x03\x00\x00\x00.\xc7t\x00 \xc65\xc1X\xc7@\x00\
+ \xadl\xd6\x15\x00 \x00K\x00i\x00n\x00d\x00\
+l\x00e\x00 \xba\xa8\xb3x\xc6\xa9\xc7\x85\xb2\xc8\xb2\
+\xe4\x00.\x08\x00\x00\x00\x00\x06\x00\x00\x000Thi\
+s option is inte\
+nded for older K\
+indle models.\x07\x00\x00\
+\x00\x06KCCGUI\x01\x03\x00\x00\x002\xac\x00\
+\xb8\x5c\x00 \xba\xa8\xb4\xdc\xc5\xd0\xc1\x1c\x00 \xc6\xf9\
+\xd20\x00 \xd3(\xb1\x10\xc7D\x00 \xb0\x98\xb7\x80\
+\xd7\x88\x00 \xc7}\xc5\xb4\xbc\xf4\xc18\xc6\x94\x00!\
+\x08\x00\x00\x00\x00\x06\x00\x00\x005Try re\
+ading webtoon pa\
+nels side by sid\
+e in landscape!\x07\
+\x00\x00\x00\x06KCCGUI\x01\x03\x00\x00\x00&\
+\xc9\xc0\xc6\xd0\xb4\x18\xc9\xc0\x00 \xc5J\xb2\x94\x00 \
+\xb5\x14\xb8\x09\xd10\xb9\xac\x00 \xadl\xc8p\xc7\x85\
+\xb2\xc8\xb2\xe4\x00.\x08\x00\x00\x00\x00\x06\x00\x00\x00 \
+Unsupported dire\
+ctory structure.\
+\x07\x00\x00\x00\x06KCCGUI\x01\x03\x00\x00\x00\
+.\x00%\x001\xc5\xd0\x00 \xb3\x00\xd5t\x00 \xc9\
+\xc0\xc6\xd0\xb4\x18\xc9\xc0\x00 \xc5J\xb2\x94\x00 \xd3\
+\x0c\xc7|\x00 \xd6\x15\xc2\xdd\xc7\x85\xb2\xc8\xb2\xe4\x08\
+\x00\x00\x00\x00\x06\x00\x00\x00\x1cUnsuppo\
+rted file type f\
+or %1\x07\x00\x00\x00\x06KCCGUI\
+\x01\x03\x00\x00\x00X\xd6U\xb3\x00\x00 \xc2\xdc\x00 \
+\xb3T\x00 \xb1\x92\xc7@\x00 \xd5t\xc0\xc1\xb3\xc4\
+\xb9|\x00 \xc6\xd0\xd5X\xbat\x00 \x00K\x00i\
+\x00n\x00d\x00l\x00e\x00 \x00S\x00c\x00r\
+\x00i\x00b\x00e\x00 \xd5\x04\xb8\x5c\xd5D\xc7D\
+\x00 \xc0\xac\xc6\xa9\xd5X\xc18\xc6\x94\x00.\x08\x00\
+\x00\x00\x00\x06\x00\x00\x00IUse the \
+Kindle Scribe pr\
+ofile if you wan\
+t higher resolut\
+ion when zooming\
+.\x07\x00\x00\x00\x06KCCGUI\x01\x03\x00\x00\
+\x00\x04\xc7\x04\xd0\xa4\x08\x00\x00\x00\x00\x06\x00\x00\x00\x04\
+WIKI\x07\x00\x00\x00\x06KCCGUI\x01\
+\x03\x00\x00\x00\x0e\x00Y\x00o\x00u\x00T\x00u\x00\
+b\x00e\x08\x00\x00\x00\x00\x06\x00\x00\x00\x07YOU\
+TUBE\x07\x00\x00\x00\x06KCCGUI\x01\
+\x03\x00\x00\x00N\xc6\xf9\xd20\x00 \xba\xa8\xb4\xdc\xc5\
+\xd0\xc1\x1c\x00 \xb3T\x00 \xc18\xb8\x5c\xb8\x5c\x00\
+ \xc7\x98\xb7|\xb0\xb4\xb8$\xbat\x00 \xb3T\x00\
+ \xb1\x92\xc7@\x00 \xae0\xae0\x00 \xd5\x04\xb8\
+\x5c\xd5D\xc7D\x00 \xc1 \xd0\xdd\xd5X\xc18\xc6\
+\x94\x00.\x08\x00\x00\x00\x00\x06\x00\x00\x00JYou\
+ can choose a ta\
+ller device prof\
+ile to get talle\
+r cuts in webtoo\
+n mode.\x07\x00\x00\x00\x06KCCG\
+UI\x01\x03\x00\x00\x00\xc0\x00<\x00a\x00 \x00h\
+\x00r\x00e\x00f\x00=\x00\x22\x00h\x00t\x00t\
+\x00p\x00s\x00:\x00/\x00/\x00w\x00w\x00w\
+\x00.\x00a\x00m\x00a\x00z\x00o\x00n\x00.\
+\x00c\x00o\x00m\x00/\x00b\x00?\x00n\x00o\
+\x00d\x00e\x00=\x002\x003\x004\x009\x006\
+\x003\x000\x009\x000\x001\x001\x00\x22\x00>\
+\x00K\x00i\x00n\x00d\x00l\x00e\x00G\x00e\
+\x00n\x00<\x00/\x00a\x00>\xc7t\x00 \xc6$\
+\xb7\x98\xb4\x18\xc5\xc8\xc2\xb5\xb2\xc8\xb2\xe4\x00!\x00 \
+\x00M\x00O\x00B\x00I\x00 \xbc\xc0\xd6X\xc7t\
+\x00 \xc2\xe4\xd3(\xd5`\x00 \xc2\x18\x00 \xc7\x88\
+\xc2\xb5\xb2\xc8\xb2\xe4\x00.\x08\x00\x00\x00\x00\x06\x00\x00\
+\x00oYour Kindl\
+eGen is outd\
+ated! MOBI conve\
+rsion might fail\
+.\x07\x00\x00\x00\x06KCCGUI\x01\x03\x00\x00\
+\x00\x8a\x00k\x00i\x00n\x00d\x00l\x00e\x00g\
+\x00e\x00n\x00:\x00 \x00%\x001\x00\x0a\x00\x0a\
+\x00 \x00R\x00o\x00s\x00e\x00t\x00t\x00a\
+\x00/\x00K\x00i\x00n\x00d\x00l\x00e\x00 \
+\x00P\x00r\x00e\x00v\x00i\x00e\x00w\x00e\
+\x00r\x00/\xae0\xd0\xc0\x00 \x00I\x00n\x00t\
+\x00e\x00l\x00 \xc5q\xc7D\x00 \xb2\xe4\xc2\xdc\
+\x00 \xc1$\xceX\xd5X\xacp\xb0\x98\x00 \xb2\xe4\
+\xc2\xdc\x00 \xc5\xf4\xaeL\xc6\x94\x00?\x08\x00\x00\x00\
+\x00\x06\x00\x00\x00Okindlegen:\
+ %1\x0a\x0a Re-install\
+ or re-open Rose\
+tta/Kindle Previ\
+ewer/other Intel\
+ app?\x07\x00\x00\x00\x06KCCGUI\
+\x01\x03\x00\x00\x00x\x00m\x00u\x00p\x00d\x00f\
+\x00_\x00p\x00d\x00f\x00_\x00e\x00x\x00t\
+\x00r\x00a\x00c\x00t\x00_\x00p\x00a\x00g\
+\x00e\x00_\x00i\x00m\x00a\x00g\x00e\x00(\
+\x00)\x00 \xd5h\xc2\x18\xb2\x94\x00 \xb2\xe8\xc7|\
+\x00 \xc7t\xbb\xf8\xc9\xc0\x00 \xd3\x98\xc7t\xc9\xc0\
+\xc5\xd0\xc1\x1c\xb9\xcc\x00 \xc0\xac\xc6\xa9\xd5`\x00 \
+\xc2\x18\x00 \xc7\x88\xc2\xb5\xb2\xc8\xb2\xe4\x00.\x08\x00\
+\x00\x00\x00\x06\x00\x00\x00Qmupdf_pd\
+f_extract_page_i\
+mage() function \
+can be used only\
+ with single ima\
+ge pages.\x07\x00\x00\x00\x06KC\
+CGUI\x01\x03\x00\x00\x00\x16\x00\x0a\x00.\x00.\
+\x00.\xc6x\x00 \x00%\x001\xac\x1c\x00 \xb3T\
+\x08\x00\x00\x00\x00\x06\x00\x00\x00\x0f\x0a...an\
+d %1 more\x07\x00\x00\x00\x11KC\
+CGUI_MetaEditor\x01\
+\x03\x00\x00\x00 \x00%\x001\x00 \xd5D\xb4\xdc\xb2\
+\x94\x00 \xc2+\xc7\x90\xc5\xec\xc5|\x00 \xd5i\xb2\
+\xc8\xb2\xe4\x00.\x08\x00\x00\x00\x00\x06\x00\x00\x00\x1a%\
+1 field must be \
+a number.\x07\x00\x00\x00\x11KC\
+CGUI_MetaEditor\x01\
+\x03\x00\x00\x00\x0e\xff\x08\xc5\xec\xb7\xec\x00 \xd3\x0c\xc7\
+|\xff\x09\x08\x00\x00\x00\x00\x06\x00\x00\x00\x10(mu\
+ltiple files)\x07\x00\x00\
+\x00\x11KCCGUI_MetaEdi\
+tor\x01\x03\x00\x00\x00*\xc1 \xd0\xdd\xd5\x5c\x00\
+ \x00C\x00B\x00R\x00 \xd3\x0c\xc7|\xc7@\x00\
+ \xc7}\xae0\x00 \xc8\x04\xc6\xa9\xc7\x85\xb2\xc8\xb2\
+\xe4\x00.\x08\x00\x00\x00\x00\x06\x00\x00\x00%CBR\
+ files in select\
+ion are read-onl\
+y.\x07\x00\x00\x00\x11KCCGUI_Me\
+taEditor\x01\x03\x00\x00\x00 \x00%\
+\x001\xac\x1c\x00 \xd3\x0c\xc7|\xc7D\x00 \xd3\xb8\
+\xc9\xd1\x00 \xc9\x11\xc7\x85\xb2\xc8\xb2\xe4\x00.\x08\x00\
+\x00\x00\x00\x06\x00\x00\x00\x11Editing \
+%1 files.\x07\x00\x00\x00\x11KC\
+CGUI_MetaEditor\x01\
+\x03\x00\x00\x00\x16\xc6$\xb9X\xac\x00\x00 \xbc\x1c\xc0\
+\xdd\xd5\x88\xc2\xb5\xb2\xc8\xb2\xe4\x00.\x08\x00\x00\x00\x00\
+\x06\x00\x00\x00\x10Errors occu\
+rred.\x07\x00\x00\x00\x11KCCGUI\
+_MetaEditor\x01\x03\x00\x00\x00\
+2\xbaT\xd0\xc0\xb3p\xc7t\xd10\x00 \xc8\x00\xc7\
+\xa5\x00 \xc2\xe4\xd3(\x00!\x00\x0a\x00\x0a\x00%\x00\
+1\x00\x0a\x00\x0a\xc5\xed\xcd\x94\xc8\x01\x00:\x00\x0a\x00\
+%\x002\x08\x00\x00\x00\x00\x06\x00\x00\x00+Fai\
+led to save meta\
+data!\x0a\x0a%1\x0a\x0aTrace\
+back:\x0a%2\x07\x00\x00\x00\x11KCC\
+GUI_MetaEditor\x01\x03\
+\x00\x00\x00 \xc8\x01\xc6\xa9\xd5`\x00 \xbc\xc0\xac\xbd\
+\x00 \xc0\xac\xd5m\xc7t\x00 \xc5\xc6\xc2\xb5\xb2\xc8\
+\xb2\xe4\x00.\x08\x00\x00\x00\x00\x06\x00\x00\x00\x14No\
+ changes to appl\
+y.\x07\x00\x00\x00\x11KCCGUI_Me\
+taEditor\x01\x03\x00\x00\x00\x1c\xcc\x98\
+\xb9\xac\x00 \xc9\x11\x00 \x00%\x001\x00/\x00%\
+\x002\x00:\x00 \x00%\x003\x08\x00\x00\x00\x00\x06\
+\x00\x00\x00\x14Processing %\
+1/%2: %3\x07\x00\x00\x00\x11KCC\
+GUI_MetaEditor\x01\x03\
+\x00\x00\x00\x1c\xc7\x91\xac\x00\xb2\x94\x00 \xc2|\xd4\x5c\
+\xb8\x5c\x00 \xadl\xbd\x84\xd5X\xc18\xc6\x94\x00.\
+\x08\x00\x00\x00\x00\x06\x00\x00\x00\x1eSepara\
+te authors with \
+a comma.\x07\x00\x00\x00\x11KCC\
+GUI_MetaEditor\x01\x03\
+\x00\x00\x000\xc7|\xbd\x80\x00 \xd3\x0c\xc7|\xc7D\
+\x00 \xc8\x00\xc7\xa5\xd5X\xc9\xc0\x00 \xba\xbb\xd5\x88\
+\xc2\xb5\xb2\xc8\xb2\xe4\x00:\x00\x0a\x00\x0a\x00%\x001\
+\x00%\x002\x08\x00\x00\x00\x00\x06\x00\x00\x00 So\
+me files failed \
+to save:\x0a\x0a%1%2\x07\x00\
+\x00\x00\x11KCCGUI_MetaEd\
+itor\x01\x03\x00\x00\x00.\x00%\x001\xac\x1c\
+\x00 \xd3\x0c\xc7|\xc7D\x00 \xc11\xac\xf5\xc8\x01\
+\xc7<\xb8\x5c\x00 \xc5\xc5\xb3p\xc7t\xd2\xb8\xd5\x88\
+\xc2\xb5\xb2\xc8\xb2\xe4\x00.\x08\x00\x00\x00\x00\x06\x00\x00\
+\x00\x1eSuccessfully u\
+pdated %1 files.\
+\x07\x00\x00\x00\x11KCCGUI_Meta\
+Editor\x01\x03\x00\x00\x00*\xc6\x08\x00:\
+\x00 \x005\x00 \xb6\x10\xb2\x94\x00 \x001\x00-\
+\x001\x000\x00 \xb6\x10\xb2\x94\x00 \x001\x00,\
+\x003\x00,\x005\x08\x00\x00\x00\x00\x06\x00\x00\x00\x18\
+e.g., 5 or 1-10 \
+or 1,3,5\x07\x00\x00\x00\x11KCC\
+GUI_MetaEditor\x01\x03\
+\x00\x00\x00\x22\xc0\xc8\x00 \xbc\x84\xc8\x04\xc7D\x00 \
+\xc0\xac\xc6\xa9\xd5`\x00 \xc2\x18\x00 \xc7\x88\xc2\xb5\
+\xb2\xc8\xb2\xe4\x00!\x08\x00\x00\x00\x00\x06\x00\x00\x00\x1d\
+The new version \
+is available!\x07\x00\x00\
+\x00\x0dVersionThread\x01\
+\x03\x00\x00\x01\xc2\x00<\x00b\x00>\xc7|\xad\x04\x00\
+ \xad\x8c\x00 \xd3\xb8\xc9\xd1\x00<\x00/\x00b\x00\
+>\x00<\x00b\x00r\x00>\xc5\xec\xb7\xec\x00 \xd3\
+\x0c\xc7|\xc5\xd0\x00 \xad\x8c\x00 \xbc\x88\xd68\xb9\
+|\x00 \xd5`\xb2\xf9\xd5X\xb8$\xbat\x00 \xc7\
+t\x00 \xc0\xc1\xc7\x90\xb9|\x00 \xcc\xb4\xd0l\xd5\
+X\xc18\xc6\x94\x00.\x00<\x00b\x00r\x00>\x00\
+<\x00b\x00r\x00>\x00<\x00b\x00>\xc7\x85\xb8\
+%\x00 \xd6\x15\xc2\xdd\x00:\x00<\x00/\x00b\x00\
+>\x00<\x00b\x00r\x00>\x00<\x00c\x00o\x00\
+d\x00e\x00>\x005\x00<\x00/\x00c\x00o\x00\
+d\x00e\x00>\x00 !\x92\x00 \x005\xbd\x80\xd1\
+0\x00 \xc2\xdc\xc7\x91\xd5X\xb2\x94\x00 \xc2\xdc\xd0\
+\x00\xc2\xa4\x00 \x00(\x005\x00,\x00 \x006\x00\
+,\x00 \x007\x00.\x00.\x00.\x00)\x00<\x00\
+b\x00r\x00>\x00<\x00c\x00o\x00d\x00e\x00\
+>\x001\x00-\x001\x000\x00<\x00/\x00c\x00\
+o\x00d\x00e\x00>\x00 !\x92\x00 \x001\xbd\
+\x80\xd10\x00 \x001\x000\xaeL\xc9\xc0\x00 \xbc\
+\x94\xc7\x04\x00<\x00b\x00r\x00>\x00<\x00c\x00\
+o\x00d\x00e\x00>\x001\x00,\x00 \x003\x00\
+,\x00 \x005\x00<\x00/\x00c\x00o\x00d\x00\
+e\x00>\x00 !\x92\x00 \xd2\xb9\xc8\x15\x00 \xac\
+\x12\x00<\x00b\x00r\x00>\x00<\x00b\x00r\x00\
+>\x00<\x00i\x00>\xcc8\xac\xe0\x00:\x00 \xd5\
+`\xb2\xf9\x00 \xc8\x04\xc5\xd0\x00 \xd3\x0c\xc7|\xc7\
+t\x00 \xc5L\xd3\x0c\xbc\xb3\x00 \xc2\x1c\xc7<\xb8\
+\x5c\x00 \xc8\x15\xb8,\xb4)\xb2\xc8\xb2\xe4\x00.\x00\
+<\x00/\x00i\x00>\x08\x00\x00\x00\x00\x06\x00\x00\x01\
+PBulk Volume \
+Editing C\
+heck this box to\
+ assign volume n\
+umbers to multip\
+le files.Input format\
+s: \
+5 \xe2\x86\x92 seq\
+uence starting f\
+rom 5 (5, 6, 7..\
+.)1-10\
+ \xe2\x86\x92 rang\
+e from 1 to 101, 3, 5<\
+/code> \xe2\x86\x92 speci\
+fic valuesNote: Files\
+ are sorted alph\
+abetically befor\
+e assignment. \x07\x00\x00\x00\x0ceditorDial\
+og\x01\x03\x00\x00\x00\x04\xcd\xe8\xc1\x8c\x08\x00\x00\x00\
+\x00\x06\x00\x00\x00\x06Cancel\x07\x00\x00\x00\
+\x0ceditorDialog\x01\x03\x00\
+\x00\x00\x06\xccD\xc0\xc9\x00:\x08\x00\x00\x00\x00\x06\x00\
+\x00\x00\x09Colorist:\x07\x00\x00\x00\
+\x0ceditorDialog\x01\x03\x00\
+\x00\x00\x06\xc7\x89\xd0l\x00:\x08\x00\x00\x00\x00\x06\x00\
+\x00\x00\x06Inker:\x07\x00\x00\x00\x0ced\
+itorDialog\x01\x03\x00\x00\x00\x12\
+\xbaT\xd0\xc0\xb3p\xc7t\xd10\x00 \xd3\xb8\xc9\xd1\
+\xae0\x08\x00\x00\x00\x00\x06\x00\x00\x00\x0fMeta\
+data editor\x07\x00\x00\x00\x0c\
+editorDialog\x01\x03\x00\x00\
+\x00\x06\xd6T\xc2\x18\x00:\x08\x00\x00\x00\x00\x06\x00\x00\
+\x00\x07Number:\x07\x00\x00\x00\x0ced\
+itorDialog\x01\x03\x00\x00\x00\x06\
+\xad\xf8\xb9\xbc\x00:\x08\x00\x00\x00\x00\x06\x00\x00\x00\x0a\
+Penciller:\x07\x00\x00\x00\x0ce\
+ditorDialog\x01\x03\x00\x00\x00\
+\x04\xc8\x00\xc7\xa5\x08\x00\x00\x00\x00\x06\x00\x00\x00\x04S\
+ave\x07\x00\x00\x00\x0ceditorDi\
+alog\x01\x03\x00\x00\x00\x08\xc2\xdc\xb9\xac\xc9\x88\
+\x00:\x08\x00\x00\x00\x00\x06\x00\x00\x00\x07Seri\
+es:\x07\x00\x00\x00\x0ceditorDi\
+alog\x01\x03\x00\x00\x00\x06\xc8\x1c\xba\xa9\x00:\
+\x08\x00\x00\x00\x00\x06\x00\x00\x00\x06Title:\
+\x07\x00\x00\x00\x0ceditorDialo\
+g\x01\x03\x00\x00\x00\x04\xad\x8c\x00:\x08\x00\x00\x00\x00\
+\x06\x00\x00\x00\x07Volume:\x07\x00\x00\x00\
+\x0ceditorDialog\x01\x03\x00\
+\x00\x00\x04\xae\x00\x00:\x08\x00\x00\x00\x00\x06\x00\x00\x00\
+\x07Writer:\x07\x00\x00\x00\x0cedi\
+torDialog\x01\x03\x00\x00\x00\x0e\x00\
+1\xd3\x98\xc7t\xc9\xc0\x00 \xac\x00\xb8\x5c\x08\x00\x00\
+\x00\x00\x06\x00\x00\x00\x101 Page La\
+ndscape\x07\x00\x00\x00\x0amain\
+Window\x01\x03\x00\x00\x00\x1a\x001\x00x\
+\x004\xc5\xd0\xc1\x1c\x00 \x002\x00x\x002\x00 \
+\xc2\xa4\xd2\xb8\xb9\xbd\x08\x00\x00\x00\x00\x06\x00\x00\x00\x11\
+1x4 to 2x2 strip\
+s\x07\x00\x00\x00\x0amainWindow\
+\x01\x03\x00\x00\x03r\x00<\x00h\x00t\x00m\x00l\
+\x00>\x00<\x00h\x00e\x00a\x00d\x00/\x00>\
+\x00<\x00b\x00o\x00d\x00y\x00>\x00<\x00p\
+\x00 \x00s\x00t\x00y\x00l\x00e\x00=\x00'\
+\x00w\x00h\x00i\x00t\x00e\x00-\x00s\x00p\
+\x00a\x00c\x00e\x00:\x00p\x00r\x00e\x00'\
+\x00>\x00<\x00s\x00p\x00a\x00n\x00 \x00s\
+\x00t\x00y\x00l\x00e\x00=\x00\x22\x00 \x00f\
+\x00o\x00n\x00t\x00-\x00w\x00e\x00i\x00g\
+\x00h\x00t\x00:\x006\x000\x000\x00;\x00 \
+\x00t\x00e\x00x\x00t\x00-\x00d\x00e\x00c\
+\x00o\x00r\x00a\x00t\x00i\x00o\x00n\x00:\
+\x00 \x00u\x00n\x00d\x00e\x00r\x00l\x00i\
+\x00n\x00e\x00;\x00\x22\x00>\xc1 \xd0\xdd\x00 \
+\xc5H\x00 \xd5h\x00 \x00-\x00 \x004\xcex\
+\x00<\x00b\x00r\x00/\x00>\x00<\x00/\x00s\
+\x00p\x00a\x00n\x00>\xac\x01\x00 \xba\xa8\xc1\x1c\
+\xb9\xac\xb9|\x00 \xac\x1c\xbc\xc4\xc8\x01\xc7<\xb8\x5c\
+\x00 \xd6U\xb3\x00\xd5i\xb2\xc8\xb2\xe4\x00.\x00<\
+\x00/\x00p\x00>\x00<\x00p\x00 \x00s\x00t\
+\x00y\x00l\x00e\x00=\x00'\x00w\x00h\x00i\
+\x00t\x00e\x00-\x00s\x00p\x00a\x00c\x00e\
+\x00:\x00p\x00r\x00e\x00'\x00>\x00<\x00s\
+\x00p\x00a\x00n\x00 \x00s\x00t\x00y\x00l\
+\x00e\x00=\x00\x22\x00 \x00f\x00o\x00n\x00t\
+\x00-\x00w\x00e\x00i\x00g\x00h\x00t\x00:\
+\x006\x000\x000\x00;\x00 \x00t\x00e\x00x\
+\x00t\x00-\x00d\x00e\x00c\x00o\x00r\x00a\
+\x00t\x00i\x00o\x00n\x00:\x00 \x00u\x00n\
+\x00d\x00e\x00r\x00l\x00i\x00n\x00e\x00;\
+\x00\x22\x00>\xc9\x11\xac\x04\x00 \x00-\x00 \x002\
+\xcex\x00<\x00b\x00r\x00/\x00>\x00<\x00/\
+\x00s\x00p\x00a\x00n\x00>\xd3\x98\xc7t\xc9\xc0\
+\x00 \xc0\xc1\xb2\xe8\xac\xfc\x00 \xd5X\xb2\xe8\xb9\xcc\
+\x00 \xd6U\xb3\x00\xd5i\xb2\xc8\xb2\xe4\x00.\x00<\
+\x00/\x00p\x00>\x00<\x00p\x00>\x00<\x00s\
+\x00p\x00a\x00n\x00 \x00s\x00t\x00y\x00l\
+\x00e\x00=\x00\x22\x00 \x00f\x00o\x00n\x00t\
+\x00-\x00w\x00e\x00i\x00g\x00h\x00t\x00:\
+\x006\x000\x000\x00;\x00 \x00t\x00e\x00x\
+\x00t\x00-\x00d\x00e\x00c\x00o\x00r\x00a\
+\x00t\x00i\x00o\x00n\x00:\x00 \x00u\x00n\
+\x00d\x00e\x00r\x00l\x00i\x00n\x00e\x00;\
+\x00\x22\x00>\xc1 \xd0\xdd\x00 \x00-\x00 \xac\xe0\
+\xd4\x88\xc9\xc8\x00 \x004\xcex\x00<\x00b\x00r\
+\x00/\x00>\x00<\x00/\x00s\x00p\x00a\x00n\
+\x00>\xac\x01\x00 \xba\xa8\xc1\x1c\xb9\xac\xb9|\x00 \
+\xac\x1c\xbc\xc4\xc8\x01\xc7<\xb8\x5c\x00 \xd6U\xb3\x00\
+\xd5i\xb2\xc8\xb2\xe4\x00.\x00 \xd6U\xb3\x00\x00 \
+\xd4\x88\xc9\xc8\xc7D\x00 \xb1\x92\xc7t\xb8$\xac\xe0\
+\x00 \xc2\xdc\xb3\xc4\xd5i\xb2\xc8\xb2\xe4\x00.\x00 \
+\xc7\x90\xc18\xd5\x5c\x00 \xb0\xb4\xc6\xa9\xc7@\x00 \
+\xc7\x04\xd0\xa4\xb9|\x00 \xd6U\xc7x\xd5X\xc18\
+\xc6\x94\x00.\x00<\x00/\x00p\x00>\x00<\x00/\
+\x00b\x00o\x00d\x00y\x00>\x00<\x00/\x00h\
+\x00t\x00m\x00l\x00>\x08\x00\x00\x00\x00\x06\x00\x00\
+\x025 <\
+body>\
+Unch\
+ecked - 4 panels\
+ Zoom\
+ each corner sep\
+arately.
Indeterminate\
+ - 2 panels \
+ Zoom only\
+ the top and bot\
+tom of the page.\
+
Checked - 4 h\
+igh-quality pane\
+ls Zo\
+om each corner s\
+eparately. Try t\
+o increase the q\
+uality of magnif\
+ication. Check w\
+iki for more det\
+ails.
\
+\x07\x00\x00\x00\x0amain\
+Window\x01\x03\x00\x00\x02^\x00<\x00h\
+\x00t\x00m\x00l\x00>\x00<\x00h\x00e\x00a\
+\x00d\x00/\x00>\x00<\x00b\x00o\x00d\x00y\
+\x00>\x00<\x00p\x00 \x00s\x00t\x00y\x00l\
+\x00e\x00=\x00'\x00w\x00h\x00i\x00t\x00e\
+\x00-\x00s\x00p\x00a\x00c\x00e\x00:\x00p\
+\x00r\x00e\x00'\x00>\x00<\x00s\x00p\x00a\
+\x00n\x00 \x00s\x00t\x00y\x00l\x00e\x00=\
+\x00\x22\x00 \x00f\x00o\x00n\x00t\x00-\x00w\
+\x00e\x00i\x00g\x00h\x00t\x00:\x006\x000\
+\x000\x00;\x00 \x00t\x00e\x00x\x00t\x00-\
+\x00d\x00e\x00c\x00o\x00r\x00a\x00t\x00i\
+\x00o\x00n\x00:\x00 \x00u\x00n\x00d\x00e\
+\x00r\x00l\x00i\x00n\x00e\x00;\x00\x22\x00>\
+\xc1 \xd0\xdd\x00 \xc5H\x00 \xd5h\x00 \x00-\
+\x00 \xc7\x90\xb3\xd9\x00 \xba\xa8\xb4\xdc\x00<\x00b\
+\x00r\x00/\x00>\x00<\x00/\x00s\x00p\x00a\
+\x00n\x00>\xcd\x9c\xb8%\xc7t\x00 \xc7\x90\xb3\xd9\
+\xc7<\xb8\x5c\x00 \xbd\x84\xd5`\xb4)\xb2\xc8\xb2\xe4\
+\x00.\x00<\x00/\x00p\x00>\x00<\x00p\x00 \
+\x00s\x00t\x00y\x00l\x00e\x00=\x00'\x00w\
+\x00h\x00i\x00t\x00e\x00-\x00s\x00p\x00a\
+\x00c\x00e\x00:\x00p\x00r\x00e\x00'\x00>\
+\x00<\x00s\x00p\x00a\x00n\x00 \x00s\x00t\
+\x00y\x00l\x00e\x00=\x00\x22\x00 \x00f\x00o\
+\x00n\x00t\x00-\x00w\x00e\x00i\x00g\x00h\
+\x00t\x00:\x006\x000\x000\x00;\x00 \x00t\
+\x00e\x00x\x00t\x00-\x00d\x00e\x00c\x00o\
+\x00r\x00a\x00t\x00i\x00o\x00n\x00:\x00 \
+\x00u\x00n\x00d\x00e\x00r\x00l\x00i\x00n\
+\x00e\x00;\x00\x22\x00>\xc1 \xd0\xdd\x00 \x00-\
+\x00 \xad\x8c\xbc\xc4\x00 \xba\xa8\xb4\xdc\x00<\x00b\
+\x00r\x00/\x00>\x00<\x00/\x00s\x00p\x00a\
+\x00n\x00>\xac\x01\x00 \xd5X\xc7\x04\x00 \xb5\x14\
+\xb8\x09\xd1\xa0\xb9\xac\xac\x00\x00 \xbc\xc4\xb3\xc4\xc7X\
+\x00 \xad\x8c\xc7<\xb8\x5c\x00 \xac\x04\xc8\xfc\xb4)\
+\xb2\xc8\xb2\xe4\x00.\x00<\x00/\x00p\x00>\x00<\
+\x00/\x00b\x00o\x00d\x00y\x00>\x00<\x00/\
+\x00h\x00t\x00m\x00l\x00>\x08\x00\x00\x00\x00\x06\
+\x00\x00\x01\x80Un\
+checked - Automa\
+tic mode The output w\
+ill be split aut\
+omatically.
<\
+p style='white-s\
+pace:pre'>Checked - \
+Volume mode \
+ Every sub\
+directory will b\
+e considered as \
+a separate volum\
+e.
\x07\x00\x00\x00\x0amainWin\
+dow\x01\x03\x00\x00\x00\xc4\x00<\x00h\x00t\x00\
+m\x00l\x00>\x00<\x00h\x00e\x00a\x00d\x00\
+/\x00>\x00<\x00b\x00o\x00d\x00y\x00>\x00\
+<\x00p\x00 \x00s\x00t\x00y\x00l\x00e\x00\
+=\x00'\x00w\x00h\x00i\x00t\x00e\x00-\x00\
+s\x00p\x00a\x00c\x00e\x00:\x00p\x00r\x00\
+e\x00'\x00>\x00C\x00B\x00R\x00,\x00 \x00\
+C\x00B\x00Z\x00,\x00 \x00C\x00B\x007\x00\
+ \xb6\x10\xb2\x94\x00 \x00P\x00D\x00F\x00 \xd3\
+\x0c\xc7|\xc7D\x00 \xd0P\xc5\xd0\x00 \xcd\x94\xac\
+\x00\xd5i\xb2\xc8\xb2\xe4\x00.\x00<\x00/\x00p\x00\
+>\x00<\x00/\x00b\x00o\x00d\x00y\x00>\x00\
+<\x00/\x00h\x00t\x00m\x00l\x00>\x08\x00\x00\
+\x00\x00\x06\x00\x00\x00gAdd CBR, CB\
+Z, CB7 or PDF fi\
+le to queue.
\
+\x07\x00\
+\x00\x00\x0amainWindow\x01\x03\x00\
+\x00\x01d\x00<\x00h\x00t\x00m\x00l\x00>\x00\
+<\x00h\x00e\x00a\x00d\x00/\x00>\x00<\x00\
+b\x00o\x00d\x00y\x00>\x00<\x00p\x00 \x00\
+s\x00t\x00y\x00l\x00e\x00=\x00'\x00w\x00\
+h\x00i\x00t\x00e\x00-\x00s\x00p\x00a\x00\
+c\x00e\x00:\x00p\x00r\x00e\x00'\x00>\x00\
+J\x00P\x00G\x00,\x00 \x00P\x00N\x00G\x00\
+ \xb6\x10\xb2\x94\x00 \x00G\x00I\x00F\x00 \xd3\
+\x0c\xc7|\xc7t\x00 \xd3\xec\xd5h\xb4\x1c\x00 \xb5\
+\x14\xb8\x09\xd1\xa0\xb9\xac\xb9|\x00 \xd0P\xc5\xd0\x00\
+ \xcd\x94\xac\x00\xd5i\xb2\xc8\xb2\xe4\x00.\x00<\x00\
+b\x00r\x00/\x00>\x00<\x00s\x00p\x00a\x00\
+n\x00 \x00s\x00t\x00y\x00l\x00e\x00=\x00\
+\x22\x00 \x00f\x00o\x00n\x00t\x00-\x00w\x00\
+e\x00i\x00g\x00h\x00t\x00:\x006\x000\x00\
+0\x00;\x00\x22\x00>\xc5H\xc7X\x00 \x00C\x00\
+B\x00R\x00,\x00 \x00C\x00B\x00Z\x00,\x00\
+ \x00C\x00B\x007\x00 \xd3\x0c\xc7|\xc7@\x00\
+ \xcc\x98\xb9\xac\xb4\x18\xc9\xc0\x00 \xc5J\xc2\xb5\xb2\
+\xc8\xb2\xe4\x00!\x00<\x00/\x00s\x00p\x00a\x00\
+n\x00>\x00<\x00/\x00p\x00>\x00<\x00/\x00\
+b\x00o\x00d\x00y\x00>\x00<\x00/\x00h\x00\
+t\x00m\x00l\x00>\x08\x00\x00\x00\x00\x06\x00\x00\x00\
+\xd8Disa\
+ble conversion t\
+o grayscale.
\
+\x07\x00\
+\x00\x00\x0amainWindow\x01\x03\x00\
+\x00\x00\xc8\x00<\x00h\x00t\x00m\x00l\x00>\x00\
+<\x00h\x00e\x00a\x00d\x00/\x00>\x00<\x00\
+b\x00o\x00d\x00y\x00>\x00<\x00p\x00 \x00\
+s\x00t\x00y\x00l\x00e\x00=\x00'\x00w\x00\
+h\x00i\x00t\x00e\x00-\x00s\x00p\x00a\x00\
+c\x00e\x00:\x00p\x00r\x00e\x00'\x00>\xc5\
+\xb4\xb5\xa4\x00 \xc7t\xbb\xf8\xc9\xc0\xb3\xc4\x00 \xcc\
+\x98\xb9\xac\xd5X\xc9\xc0\x00 \xc5J\xc7<\xbap\x00\
+,\x00 \xd5\x04\xb8\x5c\xd5D\xac\xfc\x00 \xcc\x98\xb9\
+\xac\x00 \xc65\xc1X\xc7D\x00 \xbb4\xc2\xdc\xd5\
+i\xb2\xc8\xb2\xe4\x00.\x00<\x00/\x00p\x00>\x00\
+<\x00/\x00b\x00o\x00d\x00y\x00>\x00<\x00\
+/\x00h\x00t\x00m\x00l\x00>\x08\x00\x00\x00\x00\
+\x06\x00\x00\x00\x80Do not proces\
+s any image, ign\
+ore profile and \
+processing optio\
+ns.
\
+html>\x07\x00\x00\x00\x0amainWi\
+ndow\x01\x03\x00\x00\x00\xac\x00<\x00h\x00t\
+\x00m\x00l\x00>\x00<\x00h\x00e\x00a\x00d\
+\x00/\x00>\x00<\x00b\x00o\x00d\x00y\x00>\
+\x00<\x00p\x00 \x00s\x00t\x00y\x00l\x00e\
+\x00=\x00'\x00w\x00h\x00i\x00t\x00e\x00-\
+\x00s\x00p\x00a\x00c\x00e\x00:\x00p\x00r\
+\x00e\x00'\x00>\xc6$\xb9x\xca\xbd\xc5\xd0\xc1\x1c\
+\x00 \xc6|\xca\xbd\xc7<\xb8\x5c\x00 \xc7}\xae0\
+\xb9|\x00 \xd6\x5c\xc11\xd6T\xd5i\xb2\xc8\xb2\xe4\
+\x00.\x00<\x00/\x00p\x00>\x00<\x00/\x00b\
+\x00o\x00d\x00y\x00>\x00<\x00/\x00h\x00t\
+\x00m\x00l\x00>\x08\x00\x00\x00\x00\x06\x00\x00\x00]\
+\
+Outpu\
+t format.
\x07\x00\x00\x00\x0a\
+mainWindow\x01\x03\x00\x00\x00\x96\
+\x00<\x00h\x00t\x00m\x00l\x00>\x00<\x00h\
+\x00e\x00a\x00d\x00/\x00>\x00<\x00b\x00o\
+\x00d\x00y\x00>\x00<\x00p\x00 \x00s\x00t\
+\x00y\x00l\x00e\x00=\x00'\x00w\x00h\x00i\
+\x00t\x00e\x00-\x00s\x00p\x00a\x00c\x00e\
+\x00:\x00p\x00r\x00e\x00'\x00>\xb3\x00\xc0\xc1\
+\x00 \xae0\xae0\xc7X\x00 \xd5t\xc0\xc1\xb3\xc4\
+\x00.\x00<\x00/\x00p\x00>\x00<\x00/\x00b\
+\x00o\x00d\x00y\x00>\x00<\x00/\x00h\x00t\
+\x00m\x00l\x00>\x08\x00\x00\x00\x00\x06\x00\x00\x00`\
+Defau\
+lt Title
\x07\x00\x00\x00\x0am\
+ainWindow\x01\x03\x00\x00\x00\x8a\x00\
+<\x00h\x00t\x00m\x00l\x00>\x00<\x00h\x00\
+e\x00a\x00d\x00/\x00>\x00<\x00b\x00o\x00\
+d\x00y\x00>\x00<\x00p\x00>\xc1\x8c\xc2\xa4\xb9\
+|\x00 \xb3T\xbe\x14\x00 \xd0t\xb9\xad\xd5X\xba\
+t\x00 \xbaT\xd0\xc0\xb3p\xc7t\xd10\x00 \xd3\
+\xb8\xc9\xd1\xae0\xc5\xd0\xc1\x1c\x00 \xc5\xf4\xb9\xbd\xb2\
+\xc8\xb2\xe4\x00.\x00<\x00/\x00p\x00>\x00<\x00\
+/\x00b\x00o\x00d\x00y\x00>\x00<\x00/\x00\
+h\x00t\x00m\x00l\x00>\x08\x00\x00\x00\x00\x06\x00\
+\x00\x00]Double \
+click on source \
+to open it in me\
+tadata editor.\
+p>\
+\x07\x00\x00\x00\x0amainWindow\x01\
+\x03\x00\x00\x01\x0a\x00<\x00h\x00t\x00m\x00l\x00\
+>\x00<\x00h\x00e\x00a\x00d\x00/\x00>\x00\
+<\x00b\x00o\x00d\x00y\x00>\x00<\x00p\x00\
+>\x00K\x00i\x00n\x00d\x00l\x00e\x00 \x00\
+M\x00O\x00B\x00I\xb9|\x00 \x00P\x00D\x00\
+O\x00C\x00 \xb3\x00\xc2\xe0\x00 \x00E\x00B\x00\
+O\x00K\xb8\x5c\x00 \xd0\xdc\xad\xf8\xd5X\xb3\xc4\xb8\
+]\x00 \xac\x15\xc8\x1c\xd5i\xb2\xc8\xb2\xe4\x00.\x00\
+<\x00/\x00p\x00>\x00<\x00p\x00>\xd5\x5c\x00\
+ \xb2\xec\x00 \xc6$\xd5\x04\xb7|\xc7x\x00 \xc0\
+\xc1\xd0\xdc\xc6\x00\xb2\xe4\xac\x00\x00 \xc6(\xb7|\xc7\
+x\xc5\xd0\x00 \xc5\xf0\xac\xb0\xd5X\xbat\x00 \x00\
+U\x00S\x00B\xb8\x5c\x00 \xb1#\xc7@\x00 \xcc\
+E\xc7t\x00 \xc0\xad\xc8\x1c\xb4 \x00 \xc2\x18\x00\
+ \xc7\x88\xc2\xb5\xb2\xc8\xb2\xe4\x00.\x00<\x00/\x00\
+p\x00>\x00<\x00/\x00b\x00o\x00d\x00y\x00\
+>\x00<\x00/\x00h\x00t\x00m\x00l\x00>\x08\
+\x00\x00\x00\x00\x06\x00\x00\x00\xbe<\
+head/>
F\
+orce Kindle MOBI\
+ to be be tagged\
+ as EBOK instead\
+ of PDOC.
\
+This may cause U\
+SB loaded books \
+to be deleted if\
+ you go online a\
+fter a month off\
+line.
\
+\x07\x00\x00\x00\x0amain\
+Window\x01\x03\x00\x00\x02\x06\x00<\x00h\
+\x00t\x00m\x00l\x00>\x00<\x00h\x00e\x00a\
+\x00d\x00/\x00>\x00<\x00b\x00o\x00d\x00y\
+\x00>\x00<\x00p\x00>\xac\x00\xc0\xc1\x00 \xd3(\
+\xb1\x10\x00 \xba\xa8\xb4\xdc\x00:\x00<\x00/\x00p\
+\x00>\x00<\x00p\x00>\x00<\x00s\x00p\x00a\
+\x00n\x00 \x00s\x00t\x00y\x00l\x00e\x00=\
+\x00\x22\x00 \x00f\x00o\x00n\x00t\x00-\x00w\
+\x00e\x00i\x00g\x00h\x00t\x00:\x006\x000\
+\x000\x00;\x00 \x00t\x00e\x00x\x00t\x00-\
+\x00d\x00e\x00c\x00o\x00r\x00a\x00t\x00i\
+\x00o\x00n\x00:\x00 \x00u\x00n\x00d\x00e\
+\x00r\x00l\x00i\x00n\x00e\x00;\x00\x22\x00>\
+\xc1 \xd0\xdd\x00 \xc5H\x00 \xd5h\x00 \x00-\
+\x00 \xc2\x18\xd3\xc9\x00<\x00b\x00r\x00/\x00>\
+\x00<\x00/\x00s\x00p\x00a\x00n\x00>\xcc\x98\
+\xc7L\x00 \xb4P\x00 \xcex\xc7@\x00 \xc7\x04\
+\xca\xbd\x00 \xcex\xc7\x85\xb2\xc8\xb2\xe4\x00.\x00<\
+\x00/\x00p\x00>\x00<\x00p\x00>\x00<\x00s\
+\x00p\x00a\x00n\x00 \x00s\x00t\x00y\x00l\
+\x00e\x00=\x00\x22\x00 \x00f\x00o\x00n\x00t\
+\x00-\x00w\x00e\x00i\x00g\x00h\x00t\x00:\
+\x006\x000\x000\x00;\x00 \x00t\x00e\x00x\
+\x00t\x00-\x00d\x00e\x00c\x00o\x00r\x00a\
+\x00t\x00i\x00o\x00n\x00:\x00 \x00u\x00n\
+\x00d\x00e\x00r\x00l\x00i\x00n\x00e\x00;\
+\x00\x22\x00>\xc1 \xd0\xdd\x00 \x00-\x00 \xc2\x18\
+\xc9\xc1\x00<\x00b\x00r\x00/\x00>\x00<\x00/\
+\x00s\x00p\x00a\x00n\x00>\xcc\x98\xc7L\x00 \
+\xb4P\x00 \xcex\xc7@\x00 \xc5\x91\xca\xbd\x00 \
+\xc6\x06\x00 \xcex\xc7\x85\xb2\xc8\xb2\xe4\x00.\x00<\
+\x00/\x00p\x00>\x00<\x00/\x00b\x00o\x00d\
+\x00y\x00>\x00<\x00/\x00h\x00t\x00m\x00l\
+\x00>\x08\x00\x00\x00\x00\x06\x00\x00\x01M <\
+p>In virtual pan\
+el mode:<\
+span style=\x22 fon\
+t-weight:600; te\
+xt-decoration: u\
+nderline;\x22>Unche\
+cked - Horizonta\
+l Fir\
+st two panels ar\
+e the top panels\
+.
Checked - Ve\
+rtical First two pane\
+ls are the side \
+panels.
\x07\x00\x00\x00\x0ama\
+inWindow\x01\x03\x00\x00\x01n\x00<\
+\x00h\x00t\x00m\x00l\x00>\x00<\x00h\x00e\
+\x00a\x00d\x00/\x00>\x00<\x00b\x00o\x00d\
+\x00y\x00>\x00<\x00p\x00>\xd3\x98\xc7t\xc9\xc0\
+\x00 \xb1\x18\xae@\x00 \xbc)\xd5\xa5\xc7D\x00 \
+\xbc\x18\xb3\x00\xb8\x5c\x00 \xd5i\xb2\xc8\xb2\xe4\x00.\
+\x00<\x00/\x00p\x00>\x00<\x00p\x00>\xbc\xf4\
+\xd1\xb5\x00 \xc6$\xb9x\xca\xbd\xc5\xd0\xc1\x1c\x00 \
+\xc6|\xca\xbd\xc7<\xb8\x5c\x00 \xc7}\xb2\x94\x00 \
+\xb9\xcc\xd6T\xc7t\xc9\xc0\xb9\xcc\x00 \xc6|\xca\xbd\
+\xc5\xd0\xc1\x1c\x00 \xc6$\xb9x\xca\xbd\xc7<\xb8\x5c\
+\x00 \xb1\x18\xae0\xac\xe0\x00 \xc2\xf6\xc7D\x00 \
+\xb5L\x00 \xc0\xac\xc6\xa9\xd5i\xb2\xc8\xb2\xe4\x00.\
+\x00 \xc7t\x00 \xac\xbd\xc6\xb0\x00 \xc5\x91\xbat\
+\x00 \xbd\x84\xd5`\xc7@\x00 \xc5\xec\xc8\x04\xd7\x88\
+\x00 \xc6$\xb9x\xca\xbd\xc5\xd0\xc1\x1c\x00 \xc6|\
+\xca\xbd\xc7<\xb8\x5c\x00 \xb4)\xb2\xc8\xb2\xe4\x00.\
+\x00<\x00/\x00p\x00>\x00<\x00p\x00>\xac\x00\
+\xb8\x5c\x00 \xba\xa8\xb4\xdc\x00 \xc2\x1c\xc1\x1c\x00 \
+\xb4\xf1\x00 \xb2\xe4\xc5\x91\xd5\x5c\x00 \xae0\xb2\xa5\
+\xc7t\x00 \xaeh\xc9\xc8\x00 \xc2\x18\x00 \xc7\x88\
+\xc2\xb5\xb2\xc8\xb2\xe4\x00.\x00<\x00/\x00p\x00>\
+\x00<\x00/\x00b\x00o\x00d\x00y\x00>\x00<\
+\x00/\x00h\x00t\x00m\x00l\x00>\x08\x00\x00\x00\
+\x00\x06\x00\x00\x01\x15Inve\
+rt the page turn\
+ direction.
<\
+p>Usually used w\
+ith right to lef\
+t manga but you \
+want to page tur\
+n left to right.\
+ Spread splittin\
+g would still be\
+ right to left i\
+n this case.\
+Will break va\
+rious features l\
+ike landscape mo\
+de order.
\x07\x00\x00\x00\x0a\
+mainWindow\x01\x03\x00\x00\x01\xb0\
+\x00<\x00h\x00t\x00m\x00l\x00>\x00<\x00h\
+\x00e\x00a\x00d\x00/\x00>\x00<\x00b\x00o\
+\x00d\x00y\x00>\x00<\x00p\x00>\xc0\xac\xc6\xa9\
+\xc7\x90\x00 \xac\x10\xb9\xc8\x00 \xbc\xf4\xc8\x15\xc7D\
+\x00 \xc1$\xc8\x15\xd5i\xb2\xc8\xb2\xe4\x00.\x00<\
+\x00/\x00p\x00>\x00<\x00p\x00>\x001\x00.\
+\x000\xc7t\x00 \xae0\xbc\xf8\xac\x12\x00(\xbeD\
+\xd6\x5c\xc11\xd6T\x00)\xc7\x85\xb2\xc8\xb2\xe4\x00.\
+\x00<\x00b\x00r\x00/\x00>\x00&\x00l\x00t\
+\x00;\x00 \x001\x00.\x000\x00 \xc7@\x00 \
+\xc7t\xbb\xf8\xc9\xc0\xb9|\x00 \xb3T\x00 \xbc\x1d\
+\xac\x8c\x00 \xb9\xcc\xb4\xed\xb2\xc8\xb2\xe4\x00.\x00<\
+\x00b\x00r\x00/\x00>\x00&\x00g\x00t\x00;\
+\x00 \x001\x00.\x000\x00 \xc7@\x00 \xc7t\
+\xbb\xf8\xc9\xc0\xb9|\x00 \xb3T\x00 \xc5\xb4\xb4a\
+\xac\x8c\x00 \xb9\xcc\xb4\xed\xb2\xc8\xb2\xe4\x00.\x00<\
+\x00/\x00p\x00>\x00<\x00p\x00>\x001\x00.\
+\x008\xc7@\x00 \x00K\x00C\x00C\x00 \x009\
+\x00.\x001\x00.\x000\x00 \xc7t\xc8\x04\x00 \
+\xbc\x84\xc8\x04\xc7X\x00 \xae0\xbc\xf8\xac\x12\xc7t\
+\xc5\xc8\xc2\xb5\xb2\xc8\xb2\xe4\x00.\x00<\x00/\x00p\
+\x00>\x00<\x00p\x00>\xc9\x11\xac\x04\xc8p\xb9|\
+\x00 \xb3T\x00 \xc5\xb4\xb4a\xac\x8c\x00 \xb9\xcc\
+\xb4\xe4\xac\xe0\x00 \xc2\xf6\xc7D\x00 \xb5L\x00 \
+\xc0\xac\xc6\xa9\xd5X\xc18\xc6\x94\x00.\x00<\x00/\
+\x00p\x00>\x00<\x00/\x00b\x00o\x00d\x00y\
+\x00>\x00<\x00/\x00h\x00t\x00m\x00l\x00>\
+\x08\x00\x00\x00\x00\x06\x00\x00\x01\x17\
+\
+Set a custom gam\
+ma correction.\
+p>
1.0 is defa\
+ult (disabled).<\
+br/>< 1.0 mak\
+es the image bri\
+ghter. > \
+1.0 makes the im\
+age darker.
\
+1.8 was the d\
+efault in KCC 9.\
+1.0 and earlier.\
+
Use if yo\
+u want to make m\
+idtones darker.<\
+/p>\x07\x00\x00\x00\x0amainWindow\
+\x01\x03\x00\x00\x00\x82\x00<\x00h\x00t\x00m\x00l\
+\x00>\x00<\x00h\x00e\x00a\x00d\x00/\x00>\
+\x00<\x00b\x00o\x00d\x00y\x00>\x00<\x00p\
+\x00>\xae0\xbc\xf8\x00 \xcd\x9c\xb8%\x00 \xb5\x14\
+\xb8\x09\xd1\xa0\xb9\xac\xb9|\x00 \xc1 \xd0\xdd\xd5X\
+\xb2\x94\x00 \xb3p\x00 \xc0\xac\xc6\xa9\xd5i\xb2\xc8\
+\xb2\xe4\x00.\x00<\x00/\x00p\x00>\x00<\x00/\
+\x00b\x00o\x00d\x00y\x00>\x00<\x00/\x00h\
+\x00t\x00m\x00l\x00>\x08\x00\x00\x00\x00\x06\x00\x00\
+\x00X
W\
+arning: chunk si\
+ze greater than \
+default may caus\
+e performanc\
+e/battery issues\
+, especially on \
+older devices.\
+p>\
+\x07\x00\x00\x00\x0amainWindow\x01\
+\x03\x00\x00\x02`\x00<\x00h\x00t\x00m\x00l\x00\
+>\x00<\x00h\x00e\x00a\x00d\x00/\x00>\x00\
+<\x00b\x00o\x00d\x00y\x00>\x00<\x00p\x00\
+>\xc5\x91\xbat\x00 \xbd\x84\xd5`\x00 \xc65\xc1\
+X\xc7t\x00 \xbd\x80\xbd\x84\xc8\x01\xc7<\xb8\x5c\x00\
+ \xcc\xb4\xd0l\xb4\x1c\x00 \xac\xbd\xc6\xb0\x00,\x00\
+<\x00/\x00p\x00>\x00<\x00p\x00>\x00<\x00\
+s\x00p\x00a\x00n\x00 \x00s\x00t\x00y\x00\
+l\x00e\x00=\x00\x22\x00 \x00f\x00o\x00n\x00\
+t\x00-\x00w\x00e\x00i\x00g\x00h\x00t\x00\
+:\x006\x000\x000\x00;\x00 \x00t\x00e\x00\
+x\x00t\x00-\x00d\x00e\x00c\x00o\x00r\x00\
+a\x00t\x00i\x00o\x00n\x00:\x00 \x00u\x00\
+n\x00d\x00e\x00r\x00l\x00i\x00n\x00e\x00\
+;\x00\x22\x00>\xc1 \xd0\xdd\x00 \xc5H\x00 \xd5\
+h\x00 \x00-\x00 \xb9\xc8\xc9\xc0\xb9\xc9\xc5\xd0\x00\
+ \xd6\x8c\xc8\x04\x00<\x00b\x00r\x00/\x00>\x00\
+<\x00/\x00s\x00p\x00a\x00n\x00>\xd6\x8c\xc8\
+\x04\xb4\x1c\x00 \xc5\x91\xbat\x00 \xd3\x98\xc7t\xc9\
+\xc0\xb9|\x00 \xbd\x84\xd5`\x00 \xd3\x98\xc7t\xc9\
+\xc0\x00 \xb4\xa4\xc5\xd0\x00 \xbc0\xceX\xd5i\xb2\
+\xc8\xb2\xe4\x00.\x00<\x00/\x00p\x00>\x00<\x00\
+p\x00>\x00<\x00s\x00p\x00a\x00n\x00 \x00\
+s\x00t\x00y\x00l\x00e\x00=\x00\x22\x00 \x00\
+f\x00o\x00n\x00t\x00-\x00w\x00e\x00i\x00\
+g\x00h\x00t\x00:\x006\x000\x000\x00;\x00\
+ \x00t\x00e\x00x\x00t\x00-\x00d\x00e\x00\
+c\x00o\x00r\x00a\x00t\x00i\x00o\x00n\x00\
+:\x00 \x00u\x00n\x00d\x00e\x00r\x00l\x00\
+i\x00n\x00e\x00;\x00\x22\x00>\xc1 \xd0\xdd\x00\
+ \x00-\x00 \xcc\x98\xc7L\xc5\xd0\x00 \xd6\x8c\xc8\
+\x04\x00<\x00b\x00r\x00/\x00>\x00<\x00/\x00\
+s\x00p\x00a\x00n\x00>\xd6\x8c\xc8\x04\xb4\x1c\x00\
+ \xc5\x91\xbat\x00 \xd3\x98\xc7t\xc9\xc0\xb9|\x00\
+ \xbd\x84\xd5`\x00 \xd3\x98\xc7t\xc9\xc0\x00 \xc5\
+^\xc5\xd0\x00 \xbc0\xceX\xd5i\xb2\xc8\xb2\xe4\x00\
+.\x00<\x00/\x00p\x00>\x00<\x00/\x00b\x00\
+o\x00d\x00y\x00>\x00<\x00/\x00h\x00t\x00\
+m\x00l\x00>\x08\x00\x00\x00\x00\x06\x00\x00\x01\x95<\
+html>
Use this to \
+select the defau\
+lt output direct\
+ory.
<\
+/html>\x07\x00\x00\x00\x0amainW\
+indow\x01\x03\x00\x00\x00\xd0\x00<\x00h\x00\
+t\x00m\x00l\x00>\x00<\x00h\x00e\x00a\x00\
+d\x00/\x00>\x00<\x00b\x00o\x00d\x00y\x00\
+>\x00<\x00p\x00>\x8bfTJ\xff\x1a0\xc10\
+\xe30\xf30\xaf0\xb50\xa40\xba0L0\xc70\
+\xd50\xa90\xeb0\xc80\x880\x8aY'0M0\
+D0h\x00<\x00b\x00r\x00/\x00>ry0\
+kS\xe40D0\xc70\xd00\xa40\xb90g0\
+\xd10\xd50\xa90\xfc0\xde0\xf30\xb90\x840\
+\xd00\xc30\xc60\xea0\xfc0kUO\x98L0\
+Lu\x1f0X0\x8bX4T\x080L0B0\
+\x8a0~0Y0\x02\x00<\x00/\x00p\x00>\x00\
+<\x00/\x00b\x00o\x00d\x00y\x00>\x00<\x00\
+/\x00h\x00t\x00m\x00l\x00>\x08\x00\x00\x00\x00\
+\x06\x00\x00\x00\x97Warni\
+ng: chunk size g\
+reater than defa\
+ult may cause performance/ba\
+ttery issues, es\
+pecially on olde\
+r devices.
\
+body>\x07\x00\x00\x00\
+\x0amainWindow\x01\x03\x00\x00\x02\
+X\x00<\x00h\x00t\x00m\x00l\x00>\x00<\x00\
+h\x00e\x00a\x00d\x00/\x00>\x00<\x00b\x00\
+o\x00d\x00y\x00>\x00<\x00p\x00>\x89\x8b\x95\
+\x8b0MR\x06Rr0\xaa0\xd70\xb70\xe70\
+\xf30L\x90\xe8R\x06v\x840k0\xc10\xa70\
+\xc30\xaf0U0\x8c0f0D0\x8bX4T\
+\x080\x01\x00<\x00/\x00p\x00>\x00<\x00p\x00\
+>\x00<\x00s\x00p\x00a\x00n\x00 \x00s\x00\
+t\x00y\x00l\x00e\x00=\x00\x22\x00 \x00f\x00\
+o\x00n\x00t\x00-\x00w\x00e\x00i\x00g\x00\
+h\x00t\x00:\x006\x000\x000\x00;\x00 \x00\
+t\x00e\x00x\x00t\x00-\x00d\x00e\x00c\x00\
+o\x00r\x00a\x00t\x00i\x00o\x00n\x00:\x00\
+ \x00u\x00n\x00d\x00e\x00r\x00l\x00i\x00\
+n\x00e\x00;\x00\x22\x00>g*0\xc10\xa70\
+\xc30\xaf\x00 \x00-\x00 g\x00_\x8c0kV\
+\xde\x8e\xe2\x00<\x00b\x00r\x00/\x00>\x00<\x00\
+/\x00s\x00p\x00a\x00n\x00>V\xde\x8e\xe20\
+W0_\x89\x8b\x95\x8b0M0\xda0\xfc0\xb80\
+\x92R\x06Rr0\xda0\xfc0\xb80n_\x8c0\
+k\x91M\x7fn0W0~0Y0\x02\x00<\x00\
+/\x00p\x00>\x00<\x00p\x00>\x00<\x00s\x00\
+p\x00a\x00n\x00 \x00s\x00t\x00y\x00l\x00\
+e\x00=\x00\x22\x00 \x00f\x00o\x00n\x00t\x00\
+-\x00w\x00e\x00i\x00g\x00h\x00t\x00:\x00\
+6\x000\x000\x00;\x00 \x00t\x00e\x00x\x00\
+t\x00-\x00d\x00e\x00c\x00o\x00r\x00a\x00\
+t\x00i\x00o\x00n\x00:\x00 \x00u\x00n\x00\
+d\x00e\x00r\x00l\x00i\x00n\x00e\x00;\x00\
+\x22\x00>0\xc10\xa70\xc30\xaf\x00 \x00-\x00\
+ g\x00R\x1d0kV\xde\x8e\xe2\x00<\x00b\x00\
+r\x00/\x00>\x00<\x00/\x00s\x00p\x00a\x00\
+n\x00>V\xde\x8e\xe20W0_\x89\x8b\x95\x8b0\
+M0\xda0\xfc0\xb80\x92R\x06Rr0\xda0\
+\xfc0\xb80nRM0k\x91M\x7fn0W0\
+~0Y0\x02\x00<\x00/\x00p\x00>\x00<\x00\
+/\x00b\x00o\x00d\x00y\x00>\x00<\x00/\x00\
+h\x00t\x00m\x00l\x00>\x08\x00\x00\x00\x00\x06\x00\
+\x00\x01\x95When th\
+e spread splitte\
+r option is part\
+ially checked,\
+p>
Unchecked - Rot\
+ate Last Put the rota\
+ted 2 page sprea\
+d after the spli\
+t spreads.
Che\
+cked - Rotate Fi\
+rst P\
+ut the rotated 2\
+ page spread bef\
+ore the split sp\
+reads.
\x07\x00\x00\x00\x0amai\
+nWindow\x01\x03\x00\x00\x00\x12QeR\
+\x9b0\xd50\xa10\xa40\xeb0\x92\x8f\xfdR\xa0\x08\
+\x00\x00\x00\x00\x06\x00\x00\x00\x11Add inp\
+ut file(s)\x07\x00\x00\x00\x0am\
+ainWindow\x01\x03\x00\x00\x00\x12Q\
+eR\x9b0\xd50\xa90\xeb0\xc00\x92\x8f\xfdR\
+\xa0\x08\x00\x00\x00\x00\x06\x00\x00\x00\x13Add i\
+nput folder(s)\x07\x00\
+\x00\x00\x0amainWindow\x01\x03\x00\
+\x00\x00z\x00K\x00O\x00r\x00e\x00a\x00d\x00\
+e\x00r0nX\xc1}\x19T\x110Q0nT\
+\x04z.0\xaa0\xd70\xb70\xe70\xf30\x92\x81\
+\xeaR\xd50g0\xc10\xa70\xc30\xaf0W0\
+~0Y0\x02\x00\x0a\x00\x0a0~0_0\x01u\
+;P\xcf0\x92N-Y.[\xc40[0gu\
+;\x97b0D0c0q0D0k0\xaf0\
+\xed0\xc30\xd70W0~0Y0\x02\x08\x00\x00\
+\x00\x00\x06\x00\x00\x00pAuto chec\
+k various option\
+s intended for K\
+Oreader wallpape\
+rs.\x0a\x0aWill also c\
+rop images to fi\
+ll the screen ce\
+ntered.\x07\x00\x00\x00\x0amain\
+Window\x01\x03\x00\x00\x00\x0e0\xc10\xe3\
+0\xf30\xaf0\xb50\xa40\xba\x08\x00\x00\x00\x00\x06\
+\x00\x00\x00\x0aChunk size\x07\x00\
+\x00\x00\x0amainWindow\x01\x03\x00\
+\x00\x00\x160\xc10\xe30\xf30\xaf0\xb50\xa40\
+\xba\x00 \x00M\x00B\xff\x1a\x08\x00\x00\x00\x00\x06\x00\
+\x00\x00\x0eChunk size MB\
+:\x07\x00\x00\x00\x0amainWindow\
+\x01\x03\x00\x00\x00\x0e0\xea0\xb90\xc80\x920\xaf\
+0\xea0\xa2\x08\x00\x00\x00\x00\x06\x00\x00\x00\x0aCl\
+ear list\x07\x00\x00\x00\x0amai\
+nWindow\x01\x03\x00\x00\x00\x0c0\xab0\
+\xe90\xfc0\xe20\xfc0\xc9\x08\x00\x00\x00\x00\x06\x00\
+\x00\x00\x0aColor mode\x07\x00\x00\
+\x00\x0amainWindow\x01\x03\x00\x00\
+\x00\x04Y\x09c\xdb\x08\x00\x00\x00\x00\x06\x00\x00\x00\x07\
+Convert\x07\x00\x00\x00\x0amain\
+Window\x01\x03\x00\x00\x00\x0c0\xab0\xd0\
+0\xfc0\xd50\xa30\xeb\x08\x00\x00\x00\x00\x06\x00\x00\
+\x00\x0aCover Fill\x07\x00\x00\x00\
+\x0amainWindow\x01\x03\x00\x00\x00\
+\x0e0\xaf0\xed0\xc30\xd70\xe20\xfc0\xc9\x08\
+\x00\x00\x00\x00\x06\x00\x00\x00\x0dCroppin\
+g mode\x07\x00\x00\x00\x0amainW\
+indow\x01\x03\x00\x00\x00\x0e0\xaf0\xed0\
+\xc30\xd7_7^\xa6\xff\x1a\x08\x00\x00\x00\x00\x06\x00\
+\x00\x00\x0fCropping powe\
+r:\x07\x00\x00\x00\x0amainWindo\
+w\x01\x03\x00\x00\x00\x1a0\xab0\xb90\xbf0\xe00\
+\xaa0\xfc0\xc80\xb30\xf30\xc80\xe90\xb90\
+\xc8\x08\x00\x00\x00\x00\x06\x00\x00\x00\x13Custo\
+m Autocontrast\x07\x00\
+\x00\x00\x0amainWindow\x01\x03\x00\
+\x00\x00\x140\xab0\xb90\xbf0\xe0\x00J\x00P\x00\
+E\x00GT\xc1\x8c\xea\x08\x00\x00\x00\x00\x06\x00\x00\x00\
+\x13Custom JPEG Qua\
+lity\x07\x00\x00\x00\x0amainWin\
+dow\x01\x03\x00\x00\x00\x0e0\xab0\xb90\xbf0\
+\xe00\xac0\xf30\xde\x08\x00\x00\x00\x00\x06\x00\x00\x00\
+\x0cCustom gamma\x07\x00\x00\
+\x00\x0amainWindow\x01\x03\x00\x00\
+\x00\x0e0\xab0\xb90\xbf0\xe0\x9a\xd80U\xff\x1a\
+\x08\x00\x00\x00\x00\x06\x00\x00\x00\x0eCustom\
+ height:\x07\x00\x00\x00\x0amai\
+nWindow\x01\x03\x00\x00\x00\x0c0\xab0\
+\xb90\xbf0\xe0^E\xff\x1a\x08\x00\x00\x00\x00\x06\x00\
+\x00\x00\x0dCustom width:\
+\x07\x00\x00\x00\x0amainWindow\x01\
+\x03\x00\x00\x00\x0e0\xc70\xd50\xa90\xeb0\xc8O\
+\x5c\x80\x05\x08\x00\x00\x00\x00\x06\x00\x00\x00\x0eDef\
+ault Author\x07\x00\x00\x00\x0a\
+mainWindow\x01\x03\x00\x00\x00\x1c\
+0\xc70\xd50\xa90\xeb0\xc80nO\x5c\x80\x05\
+0o\x00K\x00C\x00C0g0Y\x08\x00\x00\x00\
+\x00\x06\x00\x00\x00\x15Default Au\
+thor is KCC\x07\x00\x00\x00\x0a\
+mainWindow\x01\x03\x00\x00\x00\x12\
+0\xc70\xd50\xa90\xeb0\xc80\xbf0\xa40\xc8\
+0\xeb\x08\x00\x00\x00\x00\x06\x00\x00\x00\x0dDefa\
+ult Title\x07\x00\x00\x00\x0ama\
+inWindow\x01\x03\x00\x00\x00\x0aQe\
+R\x9b0\x92RJ\x96d\x08\x00\x00\x00\x00\x06\x00\x00\
+\x00\x0cDelete input\x07\x00\
+\x00\x00\x0amainWindow\x01\x03\x00\
+\x00\x008QeR\x9b0\xd50\xa10\xa40\xeb0\
+~0_0o0\xd50\xa90\xeb0\xc00\x92R\
+J\x96d0W0~0Y0\x02QC0kb\
+;0[0~0[0\x93\xff\x01\x08\x00\x00\x00\x00\
+\x06\x00\x00\x008Delete inpu\
+t file(s) or dir\
+ectory. It's not\
+ recoverable!\x07\x00\x00\
+\x00\x0amainWindow\x01\x03\x00\x00\
+\x00\x0cQ\xe6t\x060\x92q!R\xb9S\x16\x08\x00\
+\x00\x00\x00\x06\x00\x00\x00\x12Disable \
+processing\x07\x00\x00\x00\x0am\
+ainWindow\x01\x03\x00\x00\x004\x89\
+\x8b\x95\x8b0MR\x06Rr0\xaa0\xd70\xb70\
+\xe70\xf30g\x89\x8b\x95\x8b0M0\xda0\xfc0\
+\xb80\x92V\xde\x8e\xe20U0[0~0[0\
+\x930\x02\x08\x00\x00\x00\x00\x06\x00\x00\x00\x89\x8b\x95\x8b0M\x91M\x7fn\
+0n0_0\x810\x01j*\x5cO0\xe20\xfc\
+0\xc90gg\x00R\x1d0n0\xda0\xfc0\xb8\
+0\x92S\xcd[\xfePt0ky\xfbR\xd50W\
+0~0Y\x08\x00\x00\x00\x00\x06\x00\x00\x00LSh\
+ift first page t\
+o opposite side \
+in landscape for\
+ two page spread\
+ alignment\x07\x00\x00\x00\x0am\
+ainWindow\x01\x03\x00\x00\x00\x160\
+\xb90\xde0\xfc0\xc80\xab0\xd00\xfc0\xaf0\
+\xed0\xc30\xd7\x08\x00\x00\x00\x00\x06\x00\x00\x00\x10S\
+mart Cover Crop\x07\
+\x00\x00\x00\x0amainWindow\x01\x03\
+\x00\x00\x00\x100\xb90\xd70\xec0\xc30\xc90\xb7\
+0\xd50\xc8\x08\x00\x00\x00\x00\x06\x00\x00\x00\x0cSp\
+read shift\x07\x00\x00\x00\x0am\
+ainWindow\x01\x03\x00\x00\x00\x160\
+\xb90\xd70\xec0\xc30\xc90\xb90\xd70\xea0\
+\xc30\xbf0\xfc\x08\x00\x00\x00\x00\x06\x00\x00\x00\x0fS\
+pread splitter\x07\x00\
+\x00\x00\x0amainWindow\x01\x03\x00\
+\x00\x00\x1a0\xb90\xc80\xec0\xc30\xc1\x00/0\
+\xa20\xc30\xd70\xb90\xb10\xfc0\xeb\x08\x00\x00\
+\x00\x00\x06\x00\x00\x00\x0fStretch/U\
+pscale\x07\x00\x00\x00\x0amainW\
+indow\x01\x03\x00\x00\x00\x14\x00K\x00o\x00\
+-\x00f\x00i0ge/c\xf40Y0\x8b\x08\
+\x00\x00\x00\x00\x06\x00\x00\x00\x13Support\
+ me on Ko-fi\x07\x00\x00\x00\
+\x0amainWindow\x01\x03\x00\x00\x00\
+\x10N\x00fB0\xc70\xa30\xec0\xaf0\xc80\
+\xea\x08\x00\x00\x00\x00\x06\x00\x00\x00\x0eTemp \
+Directory\x07\x00\x00\x00\x0ama\
+inWindow\x01\x03\x00\x00\x010\x00J\
+\x00P\x00E\x00GT\xc1\x8c\xea0\x02\x000\xff\x08\
+g\x00ON\xff\x090K0\x89\x009\x005\xff\x08\
+g\x00\x9a\xd8\xff\x090~0g0n{\xc4V\xf2\
+0gc\x07[\x9a0W0~0Y0\x02\x00\x0a\
+\x00\x0a\x00K\x00i\x00n\x00d\x00l\x00e\x00 \
+\x00S\x00c\x00r\x00i\x00b\x00e0h\x00C\
+\x00o\x00l\x00o\x00r\x00s\x00o\x00f\x00t\
+0\x92\x96d0O0{0h0\x930i0n\
+0\xc70\xd00\xa40\xb90n0\xc70\xd50\xa9\
+0\xeb0\xc80o\x008\x0050g0\x01\x00S\
+\x00c\x00r\x00i\x00b\x00e0h\x00C\x00o\
+\x00l\x00o\x00r\x00s\x00o\x00f\x00t0o\
+\x009\x0000g0Y0\x02\x00\x0a\x00\x0aP$\
+0LY'0M0D0{0i0\xd50\xa1\
+0\xa40\xeb0\xb50\xa40\xba0LY'0M\
+0OT\xc1\x8c\xea0L\x9a\xd80O0j0\x8a\
+0\x01zzv}0\xda0\xfc0\xb80nUO\
+\x98L0L\x89\xe3m\x880U0\x8c0\x8bX4\
+T\x080L0B0\x8a0~0Y0\x02\x08\x00\
+\x00\x00\x00\x06\x00\x00\x00\xdeThe JPEG\
+ quality, on a s\
+cale from 0 (wor\
+st) to 95 (best)\
+. \x0a\x0aDefault is 8\
+5 for most devic\
+es besides Kindl\
+e Scribe and Col\
+orsoft, which ar\
+e 90.\x0a\x0aHigher va\
+lues are larger \
+and higher quali\
+ty, and may reso\
+lve blank page i\
+ssues.\x07\x00\x00\x00\x0amainW\
+indow\x01\x03\x00\x00\x00\x1c|!f\x13\x00\
+/0\xa80\xad0\xb90\xd10\xfc0\xc80\xe20\
+\xfc0\xc9R\x07f\xff\x08\x00\x00\x00\x00\x06\x00\x00\x00\
+\x17Toggle Easy/Exp\
+ert Mode\x07\x00\x00\x00\x0amai\
+nWindow\x01\x03\x00\x00\x00@\x0040\
+\xd30\xc30\xc80nN\xe30\x8f0\x8a0k0\
+\x010\x880\x8aN\x92c\xdb`'0n\x9a\xd80\
+D\x0080\xd30\xc30\xc8\x00P\x00N\x00G0\
+\x92O\x7fu(0W0~0Y0\x02\x08\x00\x00\
+\x00\x00\x06\x00\x00\x001Use a mor\
+e compatible 8 b\
+it PNG instead o\
+f 4 bit.\x07\x00\x00\x00\x0amai\
+nWindow\x01\x03\x00\x00\x00\x80\x00K\x00\
+C\x00C\x00 \x0060ne\xe70\xd10\xcd0\
+\xeb0\xd30\xe50\xfce\xb9_\x0f0\x92O\x7fu\
+(0W0~0Y0\x02\x00\x0a\x00\x0a0\xd50\
+\xa10\xfc0\xe00\xa60\xa70\xa2\x005\x00.\x00\
+1\x009\x00.\x002\xff\x080\xed0\xfc0\xeb0\
+\xd00\xc30\xafRM\xff\x090J0\x880s\x00\
+5\x00.\x001\x009\x00.\x003N\xe5\x96M0\
+gR\xd5O\x5c0W0~0Y0\x02\x08\x00\x00\
+\x00\x00\x06\x00\x00\x00gUse legac\
+y panel view met\
+hod from KCC 6.\x0a\
+\x0aKind of works o\
+n firmwares 5.19\
+.2 (before rever\
+t) and 5.19.3+\x07\x00\
+\x00\x00\x0amainWindow\x01\x03\x00\
+\x00\x00~e\xe70\xd00\xfc0\xb80\xe70\xf30\
+n\x00K\x00C\x00C0n\x00P\x00D\x00F\x00\
+/\x00E\x00P\x00U\x00Bu;P\xcfb\xbdQ\
+\xfae\xb9l\xd50\x92O\x7fu(0W0~0\
+Y0\x02\x00\x0a\x00\x0aj\x19n\x960nb\xbdQ\
+\xfa0LOU0\x890K0nt\x06u10\
+gY1eW0W0_X4T\x080kO\
+\x7fu(0W0f0O0`0U0D0\
+\x02\x08\x00\x00\x00\x00\x06\x00\x00\x00yUse t\
+he PDF/EPUB imag\
+e extraction met\
+hod from older K\
+CC versions. \x0a\x0aU\
+se if standard e\
+xtraction fails \
+for whatever rea\
+son.\x07\x00\x00\x00\x0amainWin\
+dow\x01\x03\x00\x00\x00\x0cW\x82v\xf4\x0040\
+\xd10\xcd0\xeb\x08\x00\x00\x00\x00\x06\x00\x00\x00\x10V\
+ertical 4 Panel\x07\
+\x00\x00\x00\x0amainWindow\x01\x03\
+\x00\x00\x00\x0av}\x00/\x9e\xd2OYv}\x08\x00\
+\x00\x00\x00\x06\x00\x00\x00\x0bW/B marg\
+ins\x07\x00\x00\x00\x0amainWind\
+ow\x01\x03\x00\x00\x00\x0aX\xc1}\x190\xe20\xfc\
+0\xc9\x08\x00\x00\x00\x00\x06\x00\x00\x00\x0eWall\
+paper mode\x07\x00\x00\x00\x0am\
+ainWindow\x01\x03\x00\x00\x00\x08\x00\
+W\x00e\x00b\x00P\x08\x00\x00\x00\x00\x06\x00\x00\x00\
+\x04WebP\x07\x00\x00\x00\x0amainWi\
+ndow\x01\x03\x00\x00\x00\x14\x00W\x00e\x00b\
+\x00t\x00o\x00o\x00n0\xe20\xfc0\xc9\x08\x00\
+\x00\x00\x00\x06\x00\x00\x00\x0cWebtoon \
+mode\x07\x00\x00\x00\x0amainWin\
+dow\x01\
\x00\x00 <\
\x89\
PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
@@ -14580,6 +24647,10 @@ qt_resource_name = b"\
\x00B\
\x00r\x00a\x00n\x00d\
\x00\x04\
+\x00\x06\xc4\xee\
+\x00i\
+\x001\x008\x00n\
+\x00\x04\
\x00\x04\xfa^\
\x00I\
\x00c\x00o\x00n\
@@ -14591,6 +24662,18 @@ qt_resource_name = b"\
\x05\xb2\xe9\xe7\
\x00c\
\x00o\x00m\x00i\x00c\x002\x00e\x00b\x00o\x00o\x00k\x00.\x00p\x00n\x00g\
+\x00\x0c\
+\x0b3y=\
+\x00k\
+\x00c\x00c\x00_\x00k\x00o\x00_\x00K\x00R\x00.\x00q\x00m\
+\x00\x0c\
+\x04\x07;}\
+\x00k\
+\x00c\x00c\x00_\x00z\x00h\x00_\x00C\x00N\x00.\x00q\x00m\
+\x00\x0c\
+\x09\x0c\x19}\
+\x00k\
+\x00c\x00c\x00_\x00j\x00a\x00_\x00J\x00P\x00.\x00q\x00m\
\x00\x0e\
\x08!\x13\x87\
\x00B\
@@ -14683,78 +24766,86 @@ qt_resource_name = b"\
"
qt_resource_struct = b"\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x01\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x01\
\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00Z\x00\x02\x00\x00\x00\x01\x00\x00\x00\x22\
+\x00\x00\x00h\x00\x02\x00\x00\x00\x01\x00\x00\x00&\
\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00J\x00\x02\x00\x00\x00\x01\x00\x00\x00\x1d\
+\x00\x00\x00Z\x00\x02\x00\x00\x00\x03\x00\x00\x00#\
\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00&\x00\x02\x00\x00\x00\x01\x00\x00\x00\x15\
+\x00\x00\x00J\x00\x02\x00\x00\x00\x01\x00\x00\x00\x1e\
\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x11\
+\x00\x00\x00&\x00\x02\x00\x00\x00\x01\x00\x00\x00\x16\
\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x006\x00\x02\x00\x00\x00\x01\x00\x00\x00\x0c\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x12\
\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x12\x00\x02\x00\x00\x00\x01\x00\x00\x00\x07\
+\x00\x00\x006\x00\x02\x00\x00\x00\x01\x00\x00\x00\x0d\
\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00h\x00\x02\x00\x00\x00\x04\x00\x00\x00\x08\
+\x00\x00\x00\x12\x00\x02\x00\x00\x00\x01\x00\x00\x00\x08\
\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x02\x5c\x00\x00\x00\x00\x00\x01\x00\x02\xee\x02\
-\x00\x00\x01\x9d\xa2D\xd8\xb7\
-\x00\x00\x02\x9a\x00\x00\x00\x00\x00\x01\x00\x03B\x9c\
-\x00\x00\x01\x9d\xa2D\xd8\xb6\
-\x00\x00\x02\x86\x00\x00\x00\x00\x00\x01\x00\x03\x18\xa1\
-\x00\x00\x01\x9d\xa2D\xd8\xb6\
-\x00\x00\x02r\x00\x00\x00\x00\x00\x01\x00\x03\x0d>\
-\x00\x00\x01\x9d\xa2D\xd8\xb7\
-\x00\x00\x00h\x00\x02\x00\x00\x00\x04\x00\x00\x00\x0d\
+\x00\x00\x00v\x00\x02\x00\x00\x00\x04\x00\x00\x00\x09\
\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x01B\x00\x00\x00\x00\x00\x01\x00\x01\xe7\xac\
-\x00\x00\x01\x9d\xa2D\xd8\xb7\
-\x00\x00\x01X\x00\x00\x00\x00\x00\x01\x00\x01\xf1\x04\
-\x00\x00\x01\x9d\xa2D\xd8\xb7\
-\x00\x00\x01(\x00\x00\x00\x00\x00\x01\x00\x01\xdc\xa5\
-\x00\x00\x01\x9d\xa2D\xd8\xb7\
-\x00\x00\x01l\x00\x00\x00\x00\x00\x01\x00\x01\xf9\x1a\
-\x00\x00\x01\x9d\xa2D\xd8\xb7\
-\x00\x00\x00h\x00\x02\x00\x00\x00\x03\x00\x00\x00\x12\
+\x00\x00\x02\xc4\x00\x00\x00\x00\x00\x01\x00\x05b\xc3\
+\x00\x00\x01\xa0\xf7.\x05\xa1\
+\x00\x00\x03\x02\x00\x00\x00\x00\x00\x01\x00\x05\xb7]\
+\x00\x00\x01\xa0\xf7.\x05\x9f\
+\x00\x00\x02\xee\x00\x00\x00\x00\x00\x01\x00\x05\x8db\
+\x00\x00\x01\xa0\xf7.\x05\x9f\
+\x00\x00\x02\xda\x00\x00\x00\x00\x00\x01\x00\x05\x81\xff\
+\x00\x00\x01\xa0\xf7.\x05\x9f\
+\x00\x00\x00v\x00\x02\x00\x00\x00\x04\x00\x00\x00\x0e\
\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x02\xde\x00\x00\x00\x00\x00\x01\x00\x03t\xe8\
-\x00\x00\x01\x9d\xa2D\xd8\xbb\
-\x00\x00\x02\xb0\x00\x00\x00\x00\x00\x01\x00\x03^\xeb\
-\x00\x00\x01\x9d\xa2D\xd8\xba\
-\x00\x00\x02\xc6\x00\x00\x00\x00\x00\x01\x00\x03hH\
-\x00\x00\x01\x9d\xa2D\xd8\xba\
-\x00\x00\x00h\x00\x02\x00\x00\x00\x07\x00\x00\x00\x16\
+\x00\x00\x01\xaa\x00\x00\x00\x00\x00\x01\x00\x04\x5cm\
+\x00\x00\x01\xa0\xf7.\x05\xa0\
+\x00\x00\x01\xc0\x00\x00\x00\x00\x00\x01\x00\x04e\xc5\
+\x00\x00\x01\xa0\xf7.\x05\xa2\
+\x00\x00\x01\x90\x00\x00\x00\x00\x00\x01\x00\x04Qf\
+\x00\x00\x01\xa0\xf7.\x05\xa0\
+\x00\x00\x01\xd4\x00\x00\x00\x00\x00\x01\x00\x04m\xdb\
+\x00\x00\x01\xa0\xf7.\x05\xa1\
+\x00\x00\x00v\x00\x02\x00\x00\x00\x03\x00\x00\x00\x13\
\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x01\xb8\x00\x00\x00\x00\x00\x01\x00\x02\x0f\xc6\
-\x00\x00\x01\x9d\xa2D\xd8\xbb\
-\x00\x00\x01\xce\x00\x00\x00\x00\x00\x01\x00\x028n\
-\x00\x00\x01\x9d\xa2D\xd8\xba\
-\x00\x00\x020\x00\x00\x00\x00\x00\x01\x00\x02\x91B\
-\x00\x00\x01\x9d\xa2D\xd8\xbb\
-\x00\x00\x02\x16\x00\x00\x00\x00\x00\x01\x00\x02K\xfb\
-\x00\x00\x01\x9d\xa2D\xd8\xba\
-\x00\x00\x01\xa0\x00\x00\x00\x00\x00\x01\x00\x02\x0bg\
-\x00\x00\x01\x9d\xa2D\xd8\xb9\
-\x00\x00\x01\x84\x00\x00\x00\x00\x00\x01\x00\x01\xfe\xfe\
-\x00\x00\x01\x9d\xa2D\xd8\xba\
-\x00\x00\x01\xf0\x00\x00\x00\x00\x00\x01\x00\x02A\xc5\
-\x00\x00\x01\x9d\xa2D\xd8\xba\
-\x00\x00\x00h\x00\x02\x00\x00\x00\x04\x00\x00\x00\x1e\
+\x00\x00\x03F\x00\x00\x00\x00\x00\x01\x00\x05\xe9\xa9\
+\x00\x00\x01\xa0\xf7.\x05\xb0\
+\x00\x00\x03\x18\x00\x00\x00\x00\x00\x01\x00\x05\xd3\xac\
+\x00\x00\x01\xa0\xf7.\x05\xad\
+\x00\x00\x03.\x00\x00\x00\x00\x00\x01\x00\x05\xdd\x09\
+\x00\x00\x01\xa0\xf7.\x05\xad\
+\x00\x00\x00v\x00\x02\x00\x00\x00\x07\x00\x00\x00\x17\
\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x01\x08\x00\x00\x00\x00\x00\x01\x00\x01\xa2\xbb\
-\x00\x00\x01\xa0\xdb\x0f\xd6\x82\
-\x00\x00\x00\xe4\x00\x00\x00\x00\x00\x01\x00\x01~z\
-\x00\x00\x01\x9d\xa2D\xd8\xbb\
-\x00\x00\x00\x9c\x00\x00\x00\x00\x00\x01\x00\x01\x1d\x90\
-\x00\x00\x01\x9d\xa2D\xd8\xb6\
-\x00\x00\x00\xbe\x00\x00\x00\x00\x00\x01\x00\x01=\xd0\
-\x00\x00\x01\x9d\xa2D\xd8\xb7\
-\x00\x00\x00h\x00\x02\x00\x00\x00\x01\x00\x00\x00#\
+\x00\x00\x02 \x00\x00\x00\x00\x00\x01\x00\x04\x84\x87\
+\x00\x00\x01\xa0\xf7.\x05\xb1\
+\x00\x00\x026\x00\x00\x00\x00\x00\x01\x00\x04\xad/\
+\x00\x00\x01\xa0\xf7.\x05\xad\
+\x00\x00\x02\x98\x00\x00\x00\x00\x00\x01\x00\x05\x06\x03\
+\x00\x00\x01\xa0\xf7.\x05\xaf\
+\x00\x00\x02~\x00\x00\x00\x00\x00\x01\x00\x04\xc0\xbc\
+\x00\x00\x01\xa0\xf7.\x05\xac\
+\x00\x00\x02\x08\x00\x00\x00\x00\x00\x01\x00\x04\x80(\
+\x00\x00\x01\xa0\xf7.\x05\xa8\
+\x00\x00\x01\xec\x00\x00\x00\x00\x00\x01\x00\x04s\xbf\
+\x00\x00\x01\xa0\xf7.\x05\xac\
+\x00\x00\x02X\x00\x00\x00\x00\x00\x01\x00\x04\xb6\x86\
+\x00\x00\x01\xa0\xf7.\x05\xac\
+\x00\x00\x00v\x00\x02\x00\x00\x00\x04\x00\x00\x00\x1f\
\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00x\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x01\x9d\xa2D\xd8\xba\
+\x00\x00\x01p\x00\x00\x00\x00\x00\x01\x00\x04\x17|\
+\x00\x00\x01\xa0\xf7.\x05\xad\
+\x00\x00\x01L\x00\x00\x00\x00\x00\x01\x00\x03\xf3;\
+\x00\x00\x01\xa0\xf7.\x05\xaf\
+\x00\x00\x01\x04\x00\x00\x00\x00\x00\x01\x00\x03\x92Q\
+\x00\x00\x01\xa0\xf7.\x05\x9e\
+\x00\x00\x01&\x00\x00\x00\x00\x00\x01\x00\x03\xb2\x91\
+\x00\x00\x01\xa0\xf7.\x05\x9f\
+\x00\x00\x00\xc8\x00\x00\x00\x00\x00\x01\x00\x01\xf5-\
+\x00\x00\x01\xa1/L@\xd3\
+\x00\x00\x00\xe6\x00\x00\x00\x00\x00\x01\x00\x02\xba\xc8\
+\x00\x00\x01\xa1/L@\xd6\
+\x00\x00\x00\xaa\x00\x00\x00\x00\x00\x01\x00\x01\x1d\x90\
+\x00\x00\x01\xa1/L@\xda\
+\x00\x00\x00v\x00\x02\x00\x00\x00\x01\x00\x00\x00'\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x86\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x01\xa0\xf7.\x05\xab\
"
def qInitResources():
diff --git a/kindlecomicconverter/comic2ebook.py b/kindlecomicconverter/comic2ebook.py
index 4aec575d..28d88a22 100755
--- a/kindlecomicconverter/comic2ebook.py
+++ b/kindlecomicconverter/comic2ebook.py
@@ -48,6 +48,7 @@ from subprocess import STDOUT, PIPE, CalledProcessError
from psutil import virtual_memory, disk_usage
from html import escape as hescape
import pymupdf
+from PySide6.QtCore import QCoreApplication
from .shared import IMAGE_TYPES, getImageFileName, walkSort, walkLevel, sanitizeTrace, subprocess_run, dot_clean, get_contain_resolution
from .comicarchive import SEVENZIP, available_archive_tools
@@ -58,8 +59,12 @@ from . import pdfjpgextract
from . import dualmetafix
from . import metadata
from . import kindle
+from . import i18n
from . import __version__
+
+# GUI 消息统一通过 QCoreApplication.translate("KCCGUI", ...) 翻译,
+# 与主窗口动态文案同 context;CLI 模式下无 QTranslator,返回原文不影响命令行输出。
ImageFile.LOAD_TRUNCATED_IMAGES = True
OS_SORT_KEY = os_sort_keygen()
KF7_KINDLES = ('K1', 'K2', 'K34', 'KDX')
@@ -710,13 +715,13 @@ def imgDirectoryProcessing(path, job_progress=''):
if GUI and not GUI.conversionAlive:
rmtree(os.path.join(path, '..', '..'), True)
- raise UserWarning("Conversion interrupted.")
+ raise UserWarning(QCoreApplication.translate("KCCGUI", "Conversion interrupted."))
if len(workerOutput) > 0:
rmtree(os.path.join(path, '..', '..'), True)
- raise RuntimeError("One of workers crashed. Maybe restart PC. Cause: " + workerOutput[0][0], workerOutput[0][1])
+ raise RuntimeError(i18n.tr_arg(QCoreApplication.translate("KCCGUI", "One of workers crashed. Maybe restart PC. Cause: %1"), workerOutput[0][0]), workerOutput[0][1])
else:
rmtree(os.path.join(path, '..', '..'), True)
- raise UserWarning("C2E: Source directory is empty.")
+ raise UserWarning(QCoreApplication.translate("KCCGUI", "C2E: Source directory is empty."))
def imgFileProcessingTick(output):
@@ -856,7 +861,7 @@ def extract_page(vector):
page = doc.load_page(i)
image_list = page.get_images()
if len(image_list) > 1:
- raise UserWarning("mupdf_pdf_extract_page_image() function can be used only with single image pages.")
+ raise UserWarning(QCoreApplication.translate("KCCGUI", "mupdf_pdf_extract_page_image() function can be used only with single image pages."))
if not image_list:
continue
else:
@@ -895,7 +900,7 @@ def mupdf_pdf_process_pages_parallel(filename, output_dir, target_width, target_
if not render:
print('PDF input can also use legacy extract option if you have any problems')
if GUI:
- GUI.addMessage.emit('PDF input can also use legacy extract option if you have any problems'
+ GUI.addMessage.emit(QCoreApplication.translate("KCCGUI", 'PDF input can also use legacy extract option if you have any problems')
, 'info', False)
GUI.addMessage.emit('', '', False)
@@ -929,7 +934,7 @@ def getWorkFolder(afile, options, workdir=None):
else:
check_path = gettempdir()
- DISK_WARNING = "Not enough disk space to perform conversion. Try Temp Directory option."
+ DISK_WARNING = QCoreApplication.translate("KCCGUI", "Not enough disk space to perform conversion. Try Temp Directory option.")
if os.path.isdir(afile):
if disk_usage(check_path)[2] < getDirectorySize(afile) * 2.5:
@@ -940,7 +945,7 @@ def getWorkFolder(afile, options, workdir=None):
return workdir
except Exception:
rmtree(workdir, True)
- raise UserWarning("Failed to prepare a workspace.")
+ raise UserWarning(QCoreApplication.translate("KCCGUI", "Failed to prepare a workspace."))
elif os.path.isfile(afile):
if disk_usage(check_path)[2]< os.path.getsize(afile) * 2.5:
raise UserWarning(DISK_WARNING)
@@ -953,7 +958,7 @@ def getWorkFolder(afile, options, workdir=None):
pdf = pdfjpgextract.PdfJpgExtract(afile, fullPath)
njpg = pdf.extract()
if njpg == 0:
- raise UserWarning("Failed to extract images from PDF file.")
+ raise UserWarning(QCoreApplication.translate("KCCGUI", "Failed to extract images from PDF file."))
return workdir
target_width, target_height = options.profileData[1]
if options.cropping == 1:
@@ -966,7 +971,7 @@ def getWorkFolder(afile, options, workdir=None):
mupdf_pdf_process_pages_parallel(afile, fullPath, target_width, target_height, options.pdfwidth)
except Exception as e:
rmtree(path, True)
- raise UserWarning(f"Failed to extract images from PDF file. {e}")
+ raise UserWarning(i18n.tr_arg(QCoreApplication.translate("KCCGUI", "Failed to extract images from PDF file. %1"), e))
return workdir
else:
if not os.path.exists(fullPath):
@@ -1061,7 +1066,7 @@ def getWorkFolder(afile, options, workdir=None):
finally:
pass
else:
- raise UserWarning("Failed to open source file/directory.")
+ raise UserWarning(QCoreApplication.translate("KCCGUI", "Failed to open source file/directory."))
def getOutputFilename(srcpath, wantedname, ext, tomenumber):
@@ -1319,7 +1324,7 @@ def chunk_directory(path):
path.append(tome)
return path
else:
- raise UserWarning('Unsupported directory structure.')
+ raise UserWarning(QCoreApplication.translate("KCCGUI", 'Unsupported directory structure.'))
def chunk_process(path, mode, parent):
@@ -1396,27 +1401,27 @@ def detectSuboptimalProcessing(tmppath, orgpath):
except Exception as err:
rmtree(os.path.join(tmppath, '..', '..'), True)
if 'decoder' in str(err) and 'not available' in str(err):
- raise RuntimeError('Pillow was compiled without JPG and/or PNG decoder.')
+ raise RuntimeError(QCoreApplication.translate("KCCGUI", 'Pillow was compiled without JPG and/or PNG decoder.'))
else:
- raise RuntimeError('Image file %s is corrupted. Error: %s' % (pathOrg, str(err)))
+ raise RuntimeError(i18n.tr_arg(QCoreApplication.translate("KCCGUI", 'Image file %1 is corrupted. Error: %2'), pathOrg, str(err)))
else:
try:
if os.path.exists(os.path.join(root, name)):
os.remove(os.path.join(root, name))
except OSError as e:
- raise RuntimeError(f"{name}: {e}")
+ raise RuntimeError(i18n.tr_arg(QCoreApplication.translate("KCCGUI", '%1: %2'), name, e))
if alreadyProcessed:
print("WARNING: Source files are probably created by KCC. The second conversion will decrease quality.")
if GUI:
- GUI.addMessage.emit('Source files are probably created by KCC. The second conversion will decrease quality.'
+ GUI.addMessage.emit(QCoreApplication.translate("KCCGUI", 'Source files are probably created by KCC. The second conversion will decrease quality.')
, 'warning', False)
GUI.addMessage.emit('', '', False)
if imageSmaller > imageNumber * 0.25 and not options.upscale and not options.stretch and not options.profile.startswith('KS'):
print("WARNING: More than 25% of images are smaller than target device resolution. "
"Consider enabling stretching or upscaling to improve readability.")
if GUI:
- GUI.addMessage.emit('More than 25% of images are smaller than target device resolution.', 'warning', False)
- GUI.addMessage.emit('Consider enabling stretching or upscaling to improve readability.', 'warning', False)
+ GUI.addMessage.emit(QCoreApplication.translate("KCCGUI", 'More than 25% of images are smaller than target device resolution.'), 'warning', False)
+ GUI.addMessage.emit(QCoreApplication.translate("KCCGUI", 'Consider enabling stretching or upscaling to improve readability.'), 'warning', False)
GUI.addMessage.emit('', '', False)
@@ -1631,7 +1636,7 @@ def checkOptions(options):
options.noKepub = True
if not options.iskindle and ('MOBI' in options.format or 'EPUB-200MB' in options.format or 'KFX' in options.format):
- raise UserWarning('MOBI/Send to Kindle not supported for non-Kindle profiles')
+ raise UserWarning(QCoreApplication.translate("KCCGUI", 'MOBI/Send to Kindle not supported for non-Kindle profiles'))
if options.format == 'PDF-200MB':
options.targetsize = 195
@@ -1788,8 +1793,8 @@ def _detectKindleGen(GUI=None):
versionCheck = line.split('V')[1].split(' ')[0]
if Version(versionCheck) < Version('2.9'):
if GUI:
- GUI.addMessage('Your KindleGen '
- ' is outdated! MOBI conversion might fail.', 'warning')
+ GUI.addMessage.emit(QCoreApplication.translate("KCCGUI", 'Your KindleGen '
+ ' is outdated! MOBI conversion might fail.'), 'warning', False)
break
return True
except (FileNotFoundError, CalledProcessError):
@@ -1799,7 +1804,7 @@ def _detectKindleGen(GUI=None):
print(f"kindlegen: {e.strerror}")
print('Re-install or re-open Rosetta/Kindle Previewer/other Intel app?')
if GUI:
- error = f"kindlegen: {e.strerror}\n\n Re-install or re-open Rosetta/Kindle Previewer/other Intel app?"
+ error = i18n.tr_arg(QCoreApplication.translate("KCCGUI", "kindlegen: %1\n\n Re-install or re-open Rosetta/Kindle Previewer/other Intel app?"), e.strerror)
GUI.showDialog(error, 'error')
return False
@@ -1812,7 +1817,7 @@ def checkPre(source='KCC-'):
def makeFusion(sources: List[str]):
if len(sources) < 2:
- raise UserWarning('Fusion requires at least 2 sources. Did you forget to uncheck fusion?')
+ raise UserWarning(QCoreApplication.translate("KCCGUI", 'Fusion requires at least 2 sources. Did you forget to uncheck fusion?'))
start = perf_counter()
first_path = Path(sources[0])
diff --git a/kindlecomicconverter/i18n.py b/kindlecomicconverter/i18n.py
new file mode 100644
index 00000000..1defc53d
--- /dev/null
+++ b/kindlecomicconverter/i18n.py
@@ -0,0 +1,52 @@
+# -*- coding: utf-8 -*-
+"""KCC UI 语言切换辅助模块。"""
+from PySide6.QtCore import QCoreApplication, QTranslator
+
+# 语言代码 -> 菜单显示名(菜单按"各自语言"显示,不参与翻译)
+LANGUAGES = {
+ 'en': 'English',
+ 'zh_CN': '中文(简体)',
+ 'ja_JP': '日本語',
+ 'ko_KR': '한국어',
+}
+DEFAULT_LANGUAGE = 'en'
+
+# 模块级持有引用,防止 translator 被 GC 回收后失效
+_translator = None
+
+
+def apply_language(lang_code):
+ """安装指定语言的 QTranslator,返回实际生效的 code。
+
+ 语言文件打包在 qrc 资源 /i18n/ 前缀下。
+ """
+ global _translator
+ app = QCoreApplication.instance()
+ if app is None:
+ # QApplication 尚未创建,无法安装翻译器;保持默认语言
+ return DEFAULT_LANGUAGE
+ if _translator is not None:
+ app.removeTranslator(_translator)
+ _translator = None
+ if lang_code not in LANGUAGES:
+ lang_code = DEFAULT_LANGUAGE
+ if lang_code != 'en':
+ t = QTranslator()
+ if t.load(f':/i18n/kcc_{lang_code}.qm'):
+ app.installTranslator(t)
+ _translator = t
+ else:
+ lang_code = DEFAULT_LANGUAGE
+ return lang_code
+
+
+def tr_arg(translated_str, *args):
+ """替换翻译字符串中的 %1, %2, %3 ... 占位符。
+
+ PySide6 的 tr() 返回 Python str 而非 QString,没有 .arg() 方法,
+ 因此用此函数手动替换占位符。
+ """
+ result = translated_str
+ for i, arg in enumerate(args, 1):
+ result = result.replace(f'%{i}', str(arg))
+ return result
diff --git a/translations/kcc_ja_JP.qm b/translations/kcc_ja_JP.qm
new file mode 100644
index 00000000..ba9ee99f
Binary files /dev/null and b/translations/kcc_ja_JP.qm differ
diff --git a/translations/kcc_ja_JP.ts b/translations/kcc_ja_JP.ts
new file mode 100644
index 00000000..75b05695
--- /dev/null
+++ b/translations/kcc_ja_JP.ts
@@ -0,0 +1,1536 @@
+
+
+
+
+ KCCGUI
+
+
+ Select default output folder
+ デフォルトの出力フォルダーを選択
+
+
+
+ Cannot select Kindle as output directory
+ Kindle を出力先ディレクトリに選択できません
+
+
+
+ Select output directory
+ 出力ディレクトリを選択
+
+
+
+
+ Select file
+ ファイルを選択
+
+
+
+ Select input folder(s)
+ 入力フォルダーを選択
+
+
+
+ Select volume directories
+ ボリュームのディレクトリを選択
+
+
+
+ Select file(s)
+ ファイルを選択
+
+
+
+ Editor is disabled due to a lack of 7z.
+ 7z がないためエディターは無効です。
+
+
+
+ <a href="https://github.com/ciromattia/kcc#7-zip">Install 7z (link)</a> to enable metadata editing.
+ <a href="https://github.com/ciromattia/kcc#7-zip">7z をインストール(リンク)</a>するとメタデータ編集が有効になります。
+
+
+
+ Failed to parse metadata!
+
+%1
+
+Traceback:
+%2
+ メタデータの解析に失敗しました!
+
+%1
+
+トレースバック:
+%2
+
+
+
+
+ Convert
+ 変換
+
+
+
+
+ Abort
+ 中止
+
+
+
+ You can choose a taller device profile to get taller cuts in webtoon mode.
+ ウェブトゥーンモードでより縦長に切り取るには、縦長のデバイスプロファイルを選択してください。
+
+
+
+ Try reading webtoon panels side by side in landscape!
+ 横向きでウェブトゥーンのコマを並べて読んでみてください!
+
+
+
+ This option is intended for older Kindle models.
+ このオプションは古い Kindle モデル向けです。
+
+
+
+ On this device, there will be conversion speed and quality issues.
+ このデバイスでは変換速度と品質に問題が生じます。
+
+
+
+ Use the Kindle Scribe profile if you want higher resolution when zooming.
+ ズーム時に高解像度にしたい場合は Kindle Scribe プロファイルを使用してください。
+
+
+
+ Scribe PNG MOBI/EPUB has a lot of problems like blank pages/sections. Use JPG instead.
+ Scribe の PNG MOBI/EPUB には空白ページ/セクションなど多くの問題があります。代わりに JPG を使用してください。
+
+
+
+
+ Gamma: Auto
+ ガンマ:自動
+
+
+
+
+ Gamma: %1
+ ガンマ:%1
+
+
+
+
+ Cropping Power: %1
+ クロップ強度:%1
+
+
+
+
+ Kindle Comic Converter %1
+ Kindle コミックコンバーター %1
+
+
+
+
+ Switch language / 切换语言 / 言語 / 언어
+ 言語切替 / Switch language / 切换语言 / 언어
+
+
+
+ Colorsoft MOBI/EPUB can have blank pages. Just go back a few pages, exit, and reenter book.
+ Colorsoft MOBI/EPUBで空白ページが発生する場合があります。数ページ戻ってから終了し、本を再表示してください。
+
+
+
+ <a href="https://github.com/ciromattia/kcc/wiki/NonKindle-devices">List of supported Non-Kindle devices.</a>
+ <a href="https://github.com/ciromattia/kcc/wiki/NonKindle-devices">非Kindleデバイスのサポートリスト。</a>
+
+
+
+ Partially check W/B Margins if you don't want KCC to extend the image margins.
+ 画像の余白を拡張したくない場合は、W/B Marginsを部分的にチェックしてください。
+
+
+
+ KCC - Error
+ KCC - エラー
+
+
+
+ KCC - Question
+ KCC - 質問
+
+
+
+
+ The process will be interrupted. Please wait.
+ プロセスが中断されます。しばらくお待ちください。
+
+
+
+ No files selected! Please choose files to convert.
+ ファイルが選択されていません!変換するファイルを選択してください。
+
+
+
+ Target resolution is not set!
+ ターゲット解像度が設定されていません!
+
+
+
+ <a href="https://github.com/ciromattia/kcc#kindlegen"><b>Install KindleGen (link)</b></a> to enable MOBI conversion for Kindles!
+ <a href="https://github.com/ciromattia/kcc#kindlegen"><b>KindleGenをインストール(リンク)</b></a>して、Kindle用MOBI変換を有効にしてください!
+
+
+
+ Unsupported file type for %1
+ %1 のファイル形式はサポートされていません
+
+
+
+ README
+ README
+
+
+
+ FAQ
+ FAQ
+
+
+
+ WIKI
+ Wiki
+
+
+
+ YOUTUBE
+ YouTube
+
+
+
+ TUTORIAL
+ チュートリアル
+
+
+
+ EMAIL
+ メール
+
+
+
+ DONATE
+ 寄付
+
+
+
+ FORUM
+ フォーラム
+
+
+
+ DISCORD
+ Discord
+
+
+
+ <b>Tip:</b> Hover mouse over options/buttons to see explanations. Boxes can be partially/fully checked.
+ <b>ヒント:</b>オプション/ボタンの上にマウスを置くと説明が表示されます。チェックボックスは部分的または完全にチェックできます。
+
+
+
+ <b>Conversion interrupted.</b>
+ <b>変換が中断されました。</b>
+
+
+
+ Attempting file fusion
+ ファイル融合を試みています
+
+
+
+ Created fusion at %1
+ %1 に融合ファイルを作成しました
+
+
+
+ Fusion Failed. %1
+ 融合に失敗しました。%1
+
+
+
+ Process Failed. Custom title can't be set when processing more than 1 source.
+Did you forget to check fusion?
+ 処理に失敗しました。複数のソースを処理する場合、カスタムタイトルは設定できません。
+「ファイル融合」のチェックを忘れていませんか?
+
+
+
+ <b>%1Source:</b> %2
+ <b>%1ソース:</b>%2
+
+
+
+
+ Creating CBZ files
+ CBZ ファイルを作成しています
+
+
+
+
+ Creating folders
+ フォルダーを作成しています
+
+
+
+
+ Creating PDF files
+ PDF ファイルを作成しています
+
+
+
+
+ Creating EPUB files
+ EPUB ファイルを作成しています
+
+
+
+
+ Error during conversion! Please consult <a href="https://github.com/ciromattia/kcc/wiki/Error-messages">wiki</a> for more details.
+ 変換中にエラーが発生しました!詳細は <a href="https://github.com/ciromattia/kcc/wiki/Error-messages">wiki</a> をご覧ください。
+
+
+
+
+ Error during conversion!
+ 変換中にエラーが発生しました!
+
+
+
+ Error during conversion %1:
+
+%2
+
+Traceback:
+%3
+ 変換 %1 中にエラー:
+
+%2
+
+トレースバック:
+%3
+
+
+
+ Creating CBZ files... <b>Done!</b>
+ CBZ ファイルを作成中……<b>完了!</b>
+
+
+
+ Creating folders... <b>Done!</b>
+ フォルダーを作成中……<b>完了!</b>
+
+
+
+ Creating PDF files... <b>Done!</b>
+ PDF ファイルを作成中……<b>完了!</b>
+
+
+
+ Creating EPUB files... <b>Done!</b>
+ EPUB ファイルを作成中……<b>完了!</b>
+
+
+
+
+
+ Creating MOBI files
+ MOBI ファイルを作成しています
+
+
+
+ Creating MOBI files... <b>Done!</b>
+ MOBI ファイルを作成中……<b>完了!</b>
+
+
+
+
+ Processing MOBI files
+ MOBI ファイルを処理しています
+
+
+
+ Processing MOBI files... <b>Done!</b>
+ MOBI ファイルを処理中……<b>完了!</b>
+
+
+
+ Kindle detected. Uploading covers... <b>Done!</b>
+ Kindle を検出しました。カバーをアップロード中……<b>完了!</b>
+
+
+
+
+ Failed to process MOBI file!
+ MOBI ファイルの処理に失敗しました!
+
+
+
+
+ KindleGen failed to create MOBI!
+ KindleGen が MOBI を作成できませんでした!
+
+
+
+ KindleGen error:
+
+
+ KindleGen エラー:
+
+
+
+
+
+ Created EPUB file was too big. Weird file structure?
+ 作成した EPUB ファイルが大きすぎます。ファイル構造が異常ではありませんか?
+
+
+
+ EPUB file: %1MB. Supported size: ~350MB.
+ EPUB ファイル:%1MB。対応サイズ:約 350MB。
+
+
+
+ <b>All jobs completed.</b>
+ <b>すべてのジョブが完了しました。</b>
+
+
+
+ All jobs completed.
+ すべてのジョブが完了しました。
+
+
+
+ <b>Tip:</b> You can drag and drop image folders or comic files/archives into this window to convert.
+ <b>ヒント:</b>画像フォルダやコミックファイル/アーカイブをこのウィンドウにドラッグ&ドロップして変換できます。
+
+
+
+ <b>Tip:</b> Calibre may add margins! USB drop directly into the device's documents folder instead.
+ <b>ヒント:</b>Calibreは余白を追加する場合があります!代わりにデバイスのdocumentsフォルダに直接USB転送してください。
+
+
+
+ <b>Tip:</b> You can toggle easy/expert mode using button at top right.
+ <b>ヒント:</b>右上のボタンで簡易/エキスパートモードを切り替えられます。
+
+
+
+ Since you are a new user of <b>KCC</b> please see few <a href="https://github.com/ciromattia/kcc/wiki/Important-tips">important tips</a>.
+ <b>KCC</b>の新規ユーザーの方は、いくつかの<a href="https://github.com/ciromattia/kcc/wiki/Important-tips">重要なヒント</a>をご覧ください。
+
+
+
+ <a href="https://github.com/ciromattia/kcc#7-zip">Install 7z (link)</a> to enable CBZ/CBR/ZIP/etc processing.
+ <a href="https://github.com/ciromattia/kcc#7-zip">7zをインストール(リンク)</a>して、CBZ/CBR/ZIPなどの処理を有効にしてください。
+
+
+
+
+ Conversion interrupted.
+ 変換が中断されました。
+
+
+
+ One of workers crashed. Maybe restart PC. Cause: %1
+ ワーカーの 1 つがクラッシュしました。PC の再起動が必要かもしれません。原因:%1
+
+
+
+ C2E: Source directory is empty.
+ C2E:ソースディレクトリが空です。
+
+
+
+ mupdf_pdf_extract_page_image() function can be used only with single image pages.
+ mupdf_pdf_extract_page_image() 関数は単一画像ページでのみ使用できます。
+
+
+
+ PDF input can also use legacy extract option if you have any problems
+ 問題がある場合は、PDF 入力でレガシー抽出オプションも使用できます
+
+
+
+ Not enough disk space to perform conversion. Try Temp Directory option.
+ 変換を実行するためのディスク容量が不足しています。「一時ディレクトリ」オプションを試してください。
+
+
+
+ Failed to prepare a workspace.
+ ワークスペースの準備に失敗しました。
+
+
+
+ Failed to extract images from PDF file.
+ PDF ファイルから画像を抽出できませんでした。
+
+
+
+ Failed to extract images from PDF file. %1
+ PDF ファイルから画像を抽出できませんでした。%1
+
+
+
+ Failed to open source file/directory.
+ ソースファイル/ディレクトリを開けませんでした。
+
+
+
+ Unsupported directory structure.
+ サポートされていないディレクトリ構造です。
+
+
+
+ Pillow was compiled without JPG and/or PNG decoder.
+ Pillow が JPG および/または PNG デコーダーなしでコンパイルされています。
+
+
+
+ Image file %1 is corrupted. Error: %2
+ 画像ファイル %1 が破損しています。エラー:%2
+
+
+
+ %1: %2
+ %1:%2
+
+
+
+ Source files are probably created by KCC. The second conversion will decrease quality.
+ ソースファイルはおそらく KCC で作成されています。2 回目の変換では品質が低下します。
+
+
+
+ More than 25% of images are smaller than target device resolution.
+ 画像の 25% 以上がターゲットデバイスの解像度より小さいです。
+
+
+
+ Consider enabling stretching or upscaling to improve readability.
+ 読みやすさを向上させるには「ストレッチ/アップスケール」を有効にすることを検討してください。
+
+
+
+ MOBI/Send to Kindle not supported for non-Kindle profiles
+ MOBI/Kindle へ送信は Kindle 以外のプロファイルではサポートされていません
+
+
+
+ Your <a href="https://www.amazon.com/b?node=23496309011">KindleGen</a> is outdated! MOBI conversion might fail.
+ あなたの <a href="https://www.amazon.com/b?node=23496309011">KindleGen</a> は古いバージョンです!MOBI 変換が失敗する可能性があります。
+
+
+
+ kindlegen: %1
+
+ Re-install or re-open Rosetta/Kindle Previewer/other Intel app?
+ kindlegen:%1
+
+ Rosetta/Kindle Previewer/その他の Intel アプリを再インストールまたは再度開きますか?
+
+
+
+ Fusion requires at least 2 sources. Did you forget to uncheck fusion?
+ フュージョンには少なくとも 2 つのソースが必要です。「ファイル融合」のチェックを外し忘れていませんか?
+
+
+
+ KCCGUI_MetaEditor
+
+
+ CBR files in selection are read-only.
+ 選択されたCBRファイルは読み取り専用です。
+
+
+
+ Editing %1 files.
+ %1個のファイルを編集中です。
+
+
+
+
+
+
+ (multiple files)
+ (複数ファイル)
+
+
+
+ Separate authors with a comma.
+ 作者はカンマで区切ってください。
+
+
+
+ No changes to apply.
+ 適用する変更はありません。
+
+
+
+ Processing %1/%2: %3
+ 処理中 %1/%2:%3
+
+
+
+
+...and %1 more
+
+...さらに %1 件
+
+
+
+ Some files failed to save:
+
+%1%2
+ 一部のファイルを保存できませんでした:
+
+%1%2
+
+
+
+ Errors occurred.
+ エラーが発生しました。
+
+
+
+ Successfully updated %1 files.
+ %1個のファイルの更新に成功しました。
+
+
+
+ %1 field must be a number.
+ %1フィールドは数値である必要があります。
+
+
+
+ Failed to save metadata!
+
+%1
+
+Traceback:
+%2
+ メタデータの保存に失敗しました!
+
+%1
+
+トレースバック:
+%2
+
+
+
+
+ e.g., 5 or 1-10 or 1,3,5
+ 例:5 または 1-10 または 1,3,5
+
+
+
+ VersionThread
+
+
+ The new version is available!
+ 新しいバージョンが利用可能です!
+
+
+
+ WorkerThread
+
+ <b>Conversion interrupted.</b>
+ <b>変換が中断されました。</b>
+
+
+ Conversion interrupted.
+ 変換が中断されました。
+
+
+ Attempting file fusion
+ ファイル融合を試みています
+
+
+ Created fusion at %1
+ %1 に融合ファイルを作成しました
+
+
+ Fusion Failed. %1
+ 融合に失敗しました。%1
+
+
+ Process Failed. Custom title can't be set when processing more than 1 source.
+Did you forget to check fusion?
+ 処理に失敗しました。複数のソースを処理する場合、カスタムタイトルは設定できません。
+「ファイル融合」のチェックを忘れていませんか?
+
+
+ <b>%1Source:</b> %2
+ <b>%1ソース:</b>%2
+
+
+ Creating CBZ files
+ CBZ ファイルを作成しています
+
+
+ Creating folders
+ フォルダーを作成しています
+
+
+ Creating PDF files
+ PDF ファイルを作成しています
+
+
+ Creating EPUB files
+ EPUB ファイルを作成しています
+
+
+ Error during conversion! Please consult <a href="https://github.com/ciromattia/kcc/wiki/Error-messages">wiki</a> for more details.
+ 変換中にエラーが発生しました!詳細は <a href="https://github.com/ciromattia/kcc/wiki/Error-messages">wiki</a> をご覧ください。
+
+
+ Error during conversion!
+ 変換中にエラーが発生しました!
+
+
+ Error during conversion %1:
+
+%2
+
+Traceback:
+%3
+ 変換 %1 中にエラー:
+
+%2
+
+トレースバック:
+%3
+
+
+ Creating CBZ files... <b>Done!</b>
+ CBZ ファイルを作成中……<b>完了!</b>
+
+
+ Creating folders... <b>Done!</b>
+ フォルダーを作成中……<b>完了!</b>
+
+
+ Creating PDF files... <b>Done!</b>
+ PDF ファイルを作成中……<b>完了!</b>
+
+
+ Creating EPUB files... <b>Done!</b>
+ EPUB ファイルを作成中……<b>完了!</b>
+
+
+ Creating MOBI files
+ MOBI ファイルを作成しています
+
+
+ Creating MOBI files... <b>Done!</b>
+ MOBI ファイルを作成中……<b>完了!</b>
+
+
+ Processing MOBI files
+ MOBI ファイルを処理しています
+
+
+ Processing MOBI files... <b>Done!</b>
+ MOBI ファイルを処理中……<b>完了!</b>
+
+
+ Kindle detected. Uploading covers... <b>Done!</b>
+ Kindle を検出しました。カバーをアップロード中……<b>完了!</b>
+
+
+ Failed to process MOBI file!
+ MOBI ファイルの処理に失敗しました!
+
+
+ KindleGen failed to create MOBI!
+ KindleGen が MOBI を作成できませんでした!
+
+
+ KindleGen error:
+
+
+ KindleGen エラー:
+
+
+
+
+ Created EPUB file was too big. Weird file structure?
+ 作成した EPUB ファイルが大きすぎます。ファイル構造が異常ではありませんか?
+
+
+ EPUB file: %1MB. Supported size: ~350MB.
+ EPUB ファイル:%1MB。対応サイズ:約 350MB。
+
+
+ <b>All jobs completed.</b>
+ <b>すべてのジョブが完了しました。</b>
+
+
+ All jobs completed.
+ すべてのジョブが完了しました。
+
+
+
+ editorDialog
+
+
+ Metadata editor
+ メタデータエディタ
+
+
+
+ Series:
+ シリーズ:
+
+
+
+ Volume:
+ 巻:
+
+
+
+ <b>Bulk Volume Editing</b><br>Check this box to assign volume numbers to multiple files.<br><br><b>Input formats:</b><br><code>5</code> → sequence starting from 5 (5, 6, 7...)<br><code>1-10</code> → range from 1 to 10<br><code>1, 3, 5</code> → specific values<br><br><i>Note: Files are sorted alphabetically before assignment.</i>
+ <b>一括巻編集</b><br>複数のファイルに巻番号を割り当てるには、このボックスにチェックを入れてください。<br><br><b>入力形式:</b><br><code>5</code> → 5から始まるシーケンス(5, 6, 7...)<br><code>1-10</code> → 1から10までの範囲<br><code>1, 3, 5</code> → 特定の値<br><br><i>注意:ファイルは割り当て前にアルファベット順にソートされます。</i>
+
+
+
+ Number:
+ 話数:
+
+
+
+ Writer:
+ 原作:
+
+
+
+ Penciller:
+ 作画:
+
+
+
+ Inker:
+ インク:
+
+
+
+ Colorist:
+ 彩色:
+
+
+
+ Title:
+ タイトル:
+
+
+
+ Save
+ 保存
+
+
+
+ Cancel
+ キャンセル
+
+
+
+ mainWindow
+
+
+ Kindle Comic Converter
+ Kindle Comic Converter
+
+
+
+ <html><head/><body><p>Double click on source to open it in metadata editor.</p></body></html>
+ <html><head/><body><p>ソースをダブルクリックするとメタデータエディタで開きます。</p></body></html>
+
+
+
+ <html><head/><body><p>After calculating the cropping boundaries, "back up" a specified percentage amount.</p></body></html>
+ <html><head/><body><p>クロップ境界を計算した後、指定した割合だけ「後退」させます。</p></body></html>
+
+
+
+ Preserve Margin %
+ 余白を保持 %
+
+
+
+ Cropping power:
+ クロップ強度:
+
+
+
+ Gamma: Auto
+ ガンマ:自動
+
+
+
+
+
+
+ <html><head/><body><p style='white-space:pre'>Resolution of the target device.</p></body></html>
+ <html><head/><body><p style='white-space:pre'>対象デバイスの解像度。</p></body></html>
+
+
+
+ Custom height:
+ カスタム高さ:
+
+
+
+ Custom width:
+ カスタム幅:
+
+
+
+ <html><head/><body><p style='white-space:pre'>Add directory containing JPG, PNG or GIF files to queue.<br/><span style=" font-weight:600;">CBR, CBZ and CB7 files inside will not be processed!</span></p></body></html>
+ <html><head/><body><p style='white-space:pre'>JPG、PNGまたはGIFファイルを含むフォルダをキューに追加します。<br/><span style=" font-weight:600;">中にあるCBR、CBZ、CB7ファイルは処理されません!</span></p></body></html>
+
+
+
+ Add input folder(s)
+ 入力フォルダを追加
+
+
+
+ <html><head/><body><p style='white-space:pre'>Output format.</p></body></html>
+ <html><head/><body><p style='white-space:pre'>出力フォーマット。</p></body></html>
+
+
+
+ <html><head/><body><p style='white-space:pre'>Target device.</p></body></html>
+ <html><head/><body><p style='white-space:pre'>対象デバイス。</p></body></html>
+
+
+
+ Clear list
+ リストをクリア
+
+
+
+ <html><head/><body><p style='white-space:pre'>Add CBR, CBZ, CB7 or PDF file to queue.</p></body></html>
+ <html><head/><body><p style='white-space:pre'>CBR、CBZ、CB7またはPDFファイルをキューに追加します。</p></body></html>
+
+
+
+ Add input file(s)
+ 入力ファイルを追加
+
+
+
+ <html><head/><body><p style='white-space:pre'>Shift+Click to select the output directory for this list.</p></body></html>
+ <html><head/><body><p style='white-space:pre'>Shift+クリックでこのリストの出力先フォルダを選択します。</p></body></html>
+
+
+
+ Convert
+ 変換
+
+
+
+ <html><head/><body><p style='white-space:pre'><span style=" font-weight:600; text-decoration: underline;">Unchecked - 4 panels<br/></span>Zoom each corner separately.</p><p style='white-space:pre'><span style=" font-weight:600; text-decoration: underline;">Indeterminate - 2 panels<br/></span>Zoom only the top and bottom of the page.</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - 4 high-quality panels<br/></span>Zoom each corner separately. Try to increase the quality of magnification. Check wiki for more details.</p></body></html>
+ <html><head/><body><p style='white-space:pre'><span style=" font-weight:600; text-decoration: underline;">未チェック - 4コマ<br/></span>各コーナーを別々に拡大します。</p><p style='white-space:pre'><span style=" font-weight:600; text-decoration: underline;">中間 - 2コマ<br/></span>ページの上下だけを拡大します。</p><p><span style=" font-weight:600; text-decoration: underline;">チェック - 高品質4コマ<br/></span>各コーナーを別々に拡大します。拡大品質を向上させるよう試みます。詳細はWikiを参照してください。</p></body></html>
+
+
+
+ Panel View 4/2/HQ
+ パネルビュー 4/2/HQ
+
+
+
+ Use the PDF/EPUB image extraction method from older KCC versions.
+
+Use if standard extraction fails for whatever reason.
+ 旧バージョンのKCCのPDF/EPUB画像抽出方法を使用します。
+
+標準の抽出が何らかの理由で失敗した場合に使用してください。
+
+
+
+ Legacy Extract
+ レガシー抽出
+
+
+
+ <html><head/><body><p style='white-space:pre'><span style=" font-weight:600; text-decoration: underline;">Unchecked - Automatic mode<br/></span>The output will be split automatically.</p><p style='white-space:pre'><span style=" font-weight:600; text-decoration: underline;">Checked - Volume mode<br/></span>Every subdirectory will be considered as a separate volume.</p></body></html>
+ <html><head/><body><p style='white-space:pre'><span style=" font-weight:600; text-decoration: underline;">未チェック - 自動モード<br/></span>出力は自動的に分割されます。</p><p style='white-space:pre'><span style=" font-weight:600; text-decoration: underline;">チェック - ボリュームモード<br/></span>各サブフォルダは別々の巻として扱われます。</p></body></html>
+
+
+
+ Output split
+ 出力分割
+
+
+
+ <html><head/><body><p style='white-space:pre'>Do not process any image, ignore profile and processing options.</p></body></html>
+ <html><head/><body><p style='white-space:pre'>画像を一切処理せず、プロファイルと処理オプションを無視します。</p></body></html>
+
+
+
+ Disable processing
+ 処理を無効化
+
+
+
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - Nothing<br/></span>Images smaller than device resolution will not be resized.</p><p><span style=" font-weight:600; text-decoration: underline;">Indeterminate - Stretching<br/></span>Images smaller than device resolution will be resized. Aspect ratio will be not preserved.</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - Upscaling<br/></span>Images smaller than device resolution will be resized. Aspect ratio will be preserved.</p></body></html>
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">未チェック - なし<br/></span>デバイス解像度より小さい画像はリサイズされません。</p><p><span style=" font-weight:600; text-decoration: underline;">中間 - 引き伸ばし<br/></span>デバイス解像度より小さい画像はリサイズされます。縦横比は保持されません。</p><p><span style=" font-weight:600; text-decoration: underline;">チェック - 拡大<br/></span>デバイス解像度より小さい画像はリサイズされます。縦横比は保持されます。</p></body></html>
+
+
+
+ Stretch/Upscale
+ ストレッチ/アップスケール
+
+
+
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - Disabled<br/></span>Disabled</p><p><span style=" font-weight:600; text-decoration: underline;">Indeterminate - Horizontal<br/></span>Crop empty horizontal lines.</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - Both<br/></span>Crop empty horizontal and vertical lines.</p></body></html>
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">未チェック - 無効<br/></span>無効</p><p><span style=" font-weight:600; text-decoration: underline;">中間 - 水平<br/></span>空白の水平ラインをクロップします。</p><p><span style=" font-weight:600; text-decoration: underline;">チェック - 両方<br/></span>空白の水平ラインと垂直ラインをクロップします。</p></body></html>
+
+
+
+ Inter-panel crop
+ パネル間クロップ
+
+
+
+ <html><head/><body><p>Default EPUB language is en-US.</p><p>Only use if your EPUB reader has problems with English fonts.</p></body></html>
+ <html><head/><body><p>デフォルトのEPUB言語はen-USです。</p><p>お使いのEPUBリーダーで英語フォントに問題がある場合にのみ使用してください。</p></body></html>
+
+
+
+ EPUB language
+ EPUB言語
+
+
+
+ <html><head/><body><p style='white-space:pre'>Enable special parsing mode for Korean Webtoons.</p></body></html>
+ <html><head/><body><p style='white-space:pre'>韓国Webtoon用の特殊パースモードを有効にします。</p></body></html>
+
+
+
+ Webtoon mode
+ Webtoonモード
+
+
+
+ Do not rotate double page spreads in spread splitter option.
+ 見開き分割オプションで見開きページを回転させません。
+
+
+
+ No rotate
+ 回転しない
+
+
+
+ Delete input file(s) or directory. It's not recoverable!
+ 入力ファイルまたはフォルダを削除します。元に戻せません!
+
+
+
+ Delete input
+ 入力を削除
+
+
+
+ <html><head/><body><p>Invert the page turn direction.</p><p>Usually used with right to left manga but you want to page turn left to right. Spread splitting would still be right to left in this case.</p><p>Will break various features like landscape mode order.</p></body></html>
+ <html><head/><body><p>ページをめくる方向を反転します。</p><p>通常は右開きの漫画で左から右にページをめくりたい場合に使用します。この場合でも見開き分割は右から左に行われます。</p><p>横屏モードの順序など、一部の機能が正常に動作しなくなります。</p></body></html>
+
+
+
+ Invert Direction
+ 方向を反転
+
+
+
+ Don't quantize PNG images to 16 colors (4 bit)
+
+This will double file size but preserve all 256 colors (8 bit).
+
+Eink only has 16 shades of gray so you probably don't want this.
+ PNG画像を16色(4ビット)に量子化しない
+
+ファイルサイズは2倍になりますが、256色(8ビット)すべてが保持されます。
+
+電子書籍リーダーは16階調のグレースケールしかないため、通常は必要ありません。
+
+
+
+ No Quantize
+ 量子化しない
+
+
+
+ <html><head/><body><p>When the spread splitter option is partially checked,</p><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - Rotate Last<br/></span>Put the rotated 2 page spread after the split spreads.</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - Rotate First<br/></span>Put the rotated 2 page spread before the split spreads.</p></body></html>
+ <html><head/><body><p>見開き分割オプションが部分的にチェックされている場合、</p><p><span style=" font-weight:600; text-decoration: underline;">未チェック - 最後に回転<br/></span>回転した見開きページを分割ページの後に配置します。</p><p><span style=" font-weight:600; text-decoration: underline;">チェック - 最初に回転<br/></span>回転した見開きページを分割ページの前に配置します。</p></body></html>
+
+
+
+ Rotate First
+ 最初に回転
+
+
+
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - Disabled</span></p><p>Disabled</p><p><span style=" font-weight:600; text-decoration: underline;">Indeterminate - Margins<br/></span>Margins</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - Margins + page numbers<br/></span>Margins +page numbers</p></body></html>
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">未チェック - 無効</span></p><p>無効</p><p><span style=" font-weight:600; text-decoration: underline;">中間 - 余白<br/></span>余白</p><p><span style=" font-weight:600; text-decoration: underline;">チェック - 余白 + ページ番号<br/></span>余白 + ページ番号</p></body></html>
+
+
+
+ Cropping mode
+ クロップモード
+
+
+
+ Default Author is KCC
+ デフォルトの作者はKCCです
+
+
+
+ Default Author
+ デフォルト作者
+
+
+
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - JPEG<br/></span>Use JPEG files</p><p><span style=" font-weight:600; text-decoration: underline;">Indeterminate - force PNG<br/></span>Create PNG files instead JPEG for black and white images</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - mozJpeg<br/></span>10-20% smaller JPEG file, with the same image quality, but processing time multiplied by 2</p></body></html>
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">未チェック - JPEG<br/></span>JPEGファイルを使用します</p><p><span style=" font-weight:600; text-decoration: underline;">中間 - PNG強制<br/></span>白黒画像にはJPEGの代わりにPNGファイルを作成します</p><p><span style=" font-weight:600; text-decoration: underline;">チェック - mozJpeg<br/></span>画像品質は同じでJPEGファイルが10~20%小さくなりますが、処理時間は2倍になります</p></body></html>
+
+
+
+ JPEG/PNG/mozJpeg
+ JPEG/PNG/mozJpeg
+
+
+
+ Only resize images and preserve original file structure.
+
+Ignores most options besides JPEG quality, color mode, output folder.
+ 画像のリサイズのみを行い、元のファイル構造を保持します。
+
+JPEG品質、カラーモード、出力フォルダ以外のほとんどのオプションを無視します。
+
+
+
+ Light novel mode
+ ライトノベルモード
+
+
+
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - Don't use metadata Title<br/></span>Write default title.</p><p><span style=" font-weight:600; text-decoration: underline;">Indeterminate - Add metadata Title to the default schema<br/></span>Write default title with Title from ComicInfo.xml or other embedded metadata.</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - Use metadata Title only<br/></span>Write Title from ComicInfo.xml or other embedded metadata.</p></body></html>
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">未チェック - メタデータタイトルを使用しない<br/></span>デフォルトのタイトルを書き込みます。</p><p><span style=" font-weight:600; text-decoration: underline;">中間 - デフォルトスキーマにメタデータタイトルを追加<br/></span>ComicInfo.xmlまたはその他の埋め込みメタデータのタイトルをデフォルトタイトルに追加して書き込みます。</p><p><span style=" font-weight:600; text-decoration: underline;">チェック - メタデータタイトルのみ使用<br/></span>ComicInfo.xmlまたはその他の埋め込みメタデータのタイトルを書き込みます。</p></body></html>
+
+
+
+ Metadata Title
+ メタデータタイトル
+
+
+
+ <html><head/><body><p>Combines all selected files into a single file. (Helpful for combining chapters into volumes.)</p></body></html>
+ <html><head/><body><p>選択したすべてのファイルを1つのファイルに結合します。(章を巻にまとめるのに便利です。)</p></body></html>
+
+
+
+ File Fusion
+ ファイル結合
+
+
+
+ Force full color images to be saved in lossless PNG format, dramatically increases the filesize.
+ フルカラー画像をロスレスPNG形式で強制保存します。ファイルサイズが大幅に増加します。
+
+
+
+ Force PNG RGB
+ PNG RGBを強制
+
+
+
+ Auto check various options intended for KOreader wallpapers.
+
+Will also crop images to fill the screen centered.
+ KOreaderの壁紙向けの各種オプションを自動でチェックします。
+
+また、画像を中央寄せで画面いっぱいにクロップします。
+
+
+
+ Wallpaper mode
+ 壁紙モード
+
+
+
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - 1x4<br/></span>Keep format 1x4 panels strips.</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - 2x2<br/></span>Turn 1x4 strips to 2x2 to maximize screen usage.</p></body></html>
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">未チェック - 1x4<br/></span>1x4のストリップ形式を維持します。</p><p><span style=" font-weight:600; text-decoration: underline;">チェック - 2x2<br/></span>1x4のストリップを2x2に変換し、画面使用率を最大化します。</p></body></html>
+
+
+
+ 1x4 to 2x2 strips
+ 1x4から2x2ストリップ
+
+
+
+ <html><head/><body><p>By default, KCC maps the darkest pixel value to pure black (the black point.)</p><p>Extreme black point sets the black point to be the most common dark pixel value.</p><p>Useful when text is black but artwork is gray.</p></body></html>
+ <html><head/><body><p>デフォルトでは、KCCは最も暗いピクセル値を純黒(黒点)にマッピングします。</p><p>エクストリームブラックポイントは、最も頻度の高い暗いピクセル値を黒点として設定します。</p><p>文字は黒だがアートワークが灰色の場合に便利です。</p></body></html>
+
+
+
+ Extreme Black Point
+ エクストリームブラックポイント
+
+
+
+ <html><head/><body><p>Force Kindle MOBI to be be tagged as EBOK instead of PDOC.</p><p>This may cause USB loaded books to be deleted if you go online after a month offline.</p></body></html>
+ <html><head/><body><p>Kindle MOBIをPDOCではなくEBOKとしてタグ付けするよう強制します。</p><p>1か月間オフラインだった後にオンラインになると、USBで転送した本が削除される場合があります。</p></body></html>
+
+
+
+ Force EBOK
+ EBOKを強制
+
+
+
+ Render vector PDFs to device width instead of height.
+
+Useful if you plan to crop a little off the top and bottom to fill screen.
+ ベクターPDFを高さではなくデバイスの幅に合わせてレンダリングします。
+
+画面いっぱいにするために上下を少しクロップする予定がある場合に便利です。
+
+
+
+ PDF Width Render
+ PDF幅レンダリング
+
+
+
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - BW only<br/></span>Only autocontrast bw pages. Ignored for pages where near blacks or whites don't exist.</p><p><span style=" font-weight:600; text-decoration: underline;">Indeterminate - Disabled<br/></span>Disable autocontrast</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - BW and Color<br/></span>BW and color images will be autocontrasted. Ignored for pages where near blacks or whites don't exist.</p></body></html>
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">未チェック - 白黒のみ<br/></span>白黒ページのみオートコントラストを適用します。黒に近い色または白に近い色が存在しないページでは無視されます。</p><p><span style=" font-weight:600; text-decoration: underline;">中間 - 無効<br/></span>オートコントラストを無効にします</p><p><span style=" font-weight:600; text-decoration: underline;">チェック - 白黒とカラー<br/></span>白黒とカラーの両方の画像にオートコントラストが適用されます。黒に近い色または白に近い色が存在しないページでは無視されます。</p></body></html>
+
+
+
+ Custom Autocontrast
+ カスタムオートコントラスト
+
+
+
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - next to source<br/></span>Place output files next to source files</p><p><span style=" font-weight:600; text-decoration: underline;">Indeterminate - folder next to source<br/></span>Place output files in a folder next to source files</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - Custom<br/></span>Place output files in custom directory specified by right button</p></body></html>
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">未チェック - ソースの隣<br/></span>出力ファイルをソースファイルの隣に配置します</p><p><span style=" font-weight:600; text-decoration: underline;">中間 - ソース隣のフォルダ<br/></span>出力ファイルをソースファイルの隣のフォルダに配置します</p><p><span style=" font-weight:600; text-decoration: underline;">チェック - カスタム<br/></span>右側のボタンで指定した任意のフォルダに出力ファイルを配置します</p></body></html>
+
+
+
+ Output Folder
+ 出力フォルダ
+
+
+
+ <html><head/><body><p>Use this to select the default output directory.</p></body></html>
+ <html><head/><body><p>デフォルトの出力先フォルダを選択するために使用します。</p></body></html>
+
+
+
+ Use a more compatible 8 bit PNG instead of 4 bit.
+ 4ビットの代わりに、より互換性の高い8ビットPNGを使用します。
+
+
+
+ PNG Legacy Mode
+ PNGレガシーモード
+
+
+
+ Rotate 2 page spreads in opposite direction than normal.
+ 見開きページを通常と逆方向に回転させます。
+
+
+
+ Rotate Right
+ 右回転
+
+
+
+ <html><head/><body><p>In virtual panel mode:</p><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - Horizontal<br/></span>First two panels are the top panels.</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - Vertical<br/></span>First two panels are the side panels.</p></body></html>
+ <html><head/><body><p>バーチャルパネルモード:</p><p><span style=" font-weight:600; text-decoration: underline;">未チェック - 水平<br/></span>最初の2コマは上部のコマです。</p><p><span style=" font-weight:600; text-decoration: underline;">チェック - 垂直<br/></span>最初の2コマは左右のコマです。</p></body></html>
+
+
+
+ Vertical 4 Panel
+ 垂直4パネル
+
+
+
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - Autodetection<br/></span>The color of margins fill will be detected automatically.</p><p><span style=" font-weight:600; text-decoration: underline;">Indeterminate - White<br/></span>Margins will be untouched.</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - Black<br/></span>Margins will be filled with black color.</p></body></html>
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">未チェック - 自動検出<br/></span>余白の塗りつぶし色は自動的に検出されます。</p><p><span style=" font-weight:600; text-decoration: underline;">中間 - 白<br/></span>余白はそのまま維持されます。</p><p><span style=" font-weight:600; text-decoration: underline;">チェック - 黒<br/></span>余白は黒で塗りつぶされます。</p></body></html>
+
+
+
+ W/B margins
+ 白/黒余白
+
+
+
+ Erase rainbow effect on color eink screen by attenuating interfering frequencies
+ 干渉周波数を減衰させてカラー電子書籍画面のレインボー効果を消去します
+
+
+
+ Rainbow eraser
+ レインボーイレーサー
+
+
+
+ Replace JPG with lossy WebP and PNG with lossless WebP. This includes the JPG Quality.
+
+Ignored for Kindle EPUB/MOBI and all PDF.
+
+Makes a large difference in filesize for color content.
+
+Not very useful for BW content due to minimal filesize improvement compared to PNG and greater resource usage.
+ JPGを非可逆WebPに、PNGを可逆WebPに置き換えます。JPEG品質設定が適用されます。
+
+Kindle EPUB/MOBIおよびすべてのPDFでは無視されます。
+
+カラーコンテンツのファイルサイズに大きな違いが生まれます。
+
+白黒コンテンツにはあまり役立ちません。PNGに比べてファイルサイズの削減幅は小さく、リソース消費が大きくなるためです。
+
+
+
+ WebP
+ WebP
+
+
+
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - Split<br/></span>Double page spreads will be cut into two separate pages.</p><p><span style=" font-weight:600; text-decoration: underline;">Indeterminate - Split and rotate<br/></span>Double page spreads will be displayed twice. First split and then rotated. </p><p><span style=" font-weight:600; text-decoration: underline;">Checked - Rotate<br/></span>Double page spreads will be rotated.</p></body></html>
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">未チェック - 分割<br/></span>見開きページは2つの独立したページに分割されます。</p><p><span style=" font-weight:600; text-decoration: underline;">中間 - 分割して回転<br/></span>見開きページは2回表示されます。まず分割し、その後回転します。</p><p><span style=" font-weight:600; text-decoration: underline;">チェック - 回転<br/></span>見開きページは回転されます。</p></body></html>
+
+
+
+ Spread splitter
+ スプレッドスプリッター
+
+
+
+ <html><head/><body><p><span style=" font-weight:700; text-decoration: underline;">Unchecked<br/></span>Maximal output file size is 100 MB for Webtoon, 400 MB for others before split occurs.</p><p><span style=" font-weight:700; text-decoration: underline;">Checked</span><br/>Output file size specified in "Chunk size MB" before split occurs.</p></body></html>
+ <html><head/><body><p><span style=" font-weight:700; text-decoration: underline;">未チェック<br/></span>分割されるまでの最大出力ファイルサイズは、Webtoonで100MB、その他で400MBです。</p><p><span style=" font-weight:700; text-decoration: underline;">チェック</span><br/>「チャンクサイズMB」で指定したサイズで分割されます。</p></body></html>
+
+
+
+ Chunk size
+ チャンクサイズ
+
+
+
+ The JPEG quality, on a scale from 0 (worst) to 95 (best).
+
+Default is 85 for most devices besides Kindle Scribe and Colorsoft, which are 90.
+
+Higher values are larger and higher quality, and may resolve blank page issues.
+ JPEG品質。0(最低)から95(最高)までの範囲で指定します。
+
+Kindle ScribeとColorsoftを除くほとんどのデバイスのデフォルトは85で、ScribeとColorsoftは90です。
+
+値が大きいほどファイルサイズが大きく品質が高くなり、空白ページの問題が解消される場合があります。
+
+
+
+ Custom JPEG Quality
+ カスタムJPEG品質
+
+
+
+ <html><head/><body><p>Set a custom gamma correction.</p><p>1.0 is default (disabled).<br/>< 1.0 makes the image brighter.<br/>> 1.0 makes the image darker. </p><p>1.8 was the default in KCC 9.1.0 and earlier.</p><p>Use if you want to make midtones darker.</p></body></html>
+ <html><head/><body><p>カスタムガンマ補正を設定します。</p><p>1.0がデフォルト(無効)です。<br/>< 1.0 は画像を明るくします。<br/>> 1.0 は画像を暗くします。</p><p>1.8はKCC 9.1.0以前のデフォルト値でした。</p><p>中間調を暗くしたい場合に使用してください。</p></body></html>
+
+
+
+ Custom gamma
+ カスタムガンマ
+
+
+
+ <html><head/><body><p style='white-space:pre'>Enable right-to-left reading.</p></body></html>
+ <html><head/><body><p style='white-space:pre'>右から左への読み方を有効にします。</p></body></html>
+
+
+
+ Right-to-left (manga)
+ 右から左(漫画)
+
+
+
+ <html><head/><body><p style='white-space:pre'>Disable conversion to grayscale.</p></body></html>
+ <html><head/><body><p style='white-space:pre'>グレースケールへの変換を無効にします。</p></body></html>
+
+
+
+ Color mode
+ カラーモード
+
+
+
+ <html><head/><body><p>Default Title</p></body></html>
+ <html><head/><body><p>デフォルトタイトル</p></body></html>
+
+
+
+ Default Title
+ デフォルトタイトル
+
+
+
+ Resize cover to exact device resolution by center-cropping to aspect ratio first.
+May crop top/bottom or left/right depending on source aspect ratio. Not implemented for Kindle Scribe.
+ まずアスペクト比に合わせて中央クロップし、表紙をデバイスの解像度ぴったりにリサイズします。
+元のアスペクト比によって上下または左右がクロップされる場合があります。Kindle Scribeには実装されていません。
+
+
+
+ Cover Fill
+ カバーフィル
+
+
+
+ <html><head/><body><p>Attempt to crop main cover from wide image.</p></body></html>
+ <html><head/><body><p>横長の画像からメインの表紙を切り抜くよう試みます。</p></body></html>
+
+
+
+ Smart Cover Crop
+ スマートカバークロップ
+
+
+
+ Shift first page to opposite side in landscape for two page spread alignment
+ 見開き配置のため、横屏モードで最初のページを反対側に移動します
+
+
+
+ Spread shift
+ スプレッドシフト
+
+
+
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - 2 page landscape<br/></span>2 viewports for left and right pages</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - 1 page landscape<br/></span>A single centered viewport for 1 page</p></body></html>
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">未チェック - 2ページ横屏<br/></span>左右ページに2つのビューポート</p><p><span style=" font-weight:600; text-decoration: underline;">チェック - 1ページ横屏<br/></span>1ページ分の中央寄せビューポート</p></body></html>
+
+
+
+ 1 Page Landscape
+ 1ページ横画面
+
+
+
+ Keep any original ComicInfo.xml files.
+
+Keeping this file may crash some readers like the Kobo native CBZ reader.
+ 元のComicInfo.xmlファイルをすべて保持します。
+
+このファイルを保持すると、KoboネイティブCBZリーダーなど一部のリーダーがクラッシュする場合があります。
+
+
+
+ Keep ComicInfo.xml
+ ComicInfo.xmlを保持
+
+
+
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - Main Drive<br/></span>Use dedicated temporary directory on main OS drive.</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - Source File Drive<br/></span>Create temporary file directory on source file drive.</p></body></html>
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">未チェック - メインドライブ<br/></span>OSのメインドライブ上の専用一時フォルダを使用します。</p><p><span style=" font-weight:600; text-decoration: underline;">チェック - ソースファイルドライブ<br/></span>ソースファイルのあるドライブに一時ファイルフォルダを作成します。</p></body></html>
+
+
+
+ Temp Directory
+ 一時ディレクトリ
+
+
+
+ Use legacy panel view method from KCC 6.
+
+Kind of works on firmwares 5.19.2 (before revert) and 5.19.3+
+ KCC 6の旧パネルビュー方式を使用します。
+
+ファームウェア5.19.2(ロールバック前)および5.19.3以降で動作します。
+
+
+
+ Legacy Panel View
+ レガシーパネルビュー
+
+
+
+ JPEG Quality:
+ JPEG品質:
+
+
+
+ Hold shift while clicking for a low quality preview.
+ Shiftキーを押しながらクリックすると低品質でプレビューできます。
+
+
+
+ Label Spreads
+ スプレッドにラベル
+
+
+
+ Support me on Ko-fi
+ Ko-fiで支援する
+
+
+
+ <html><head/><body><p style='white-space:pre'>Shift+Click to edit directory.</p></body></html>
+ <html><head/><body><p style='white-space:pre'>Shift+クリックでディレクトリを編集します。</p></body></html>
+
+
+
+ Metadata Editor
+ メタデータエディタ
+
+
+
+ Humble Bundle Referral
+ Humble Bundle紹介
+
+
+
+ Toggle Easy/Expert Mode
+ 簡易/エキスパートモード切替
+
+
+
+ Easy/Expert Mode
+ 簡易/エキスパートモード
+
+
+
+ <html><head/><body><p>Warning: chunk size greater than default may cause<br/>performance/battery issues, especially on older devices.</p></body></html>
+ <html><head/><body><p>警告:チャンクサイズがデフォルトより大きいと<br/>特に古いデバイスでパフォーマンスやバッテリーに問題が生じる場合があります。</p></body></html>
+
+
+
+ Chunk size MB:
+ チャンクサイズ MB:
+
+
+
+ Greater than default may cause performance issues on older ereaders.
+ デフォルトより大きいと、古い電子書籍リーダーでパフォーマンスの問題が発生する場合があります。
+
+
+
+ Hover over each option/button to see an explanation! Options can be partially checked or fully checked!
+ 各オプション/ボタンの上にマウスを置くと説明が表示されます!オプションは部分的または完全にチェックできます!
+
+
+
diff --git a/translations/kcc_ko_KR.qm b/translations/kcc_ko_KR.qm
new file mode 100644
index 00000000..0b02a618
Binary files /dev/null and b/translations/kcc_ko_KR.qm differ
diff --git a/translations/kcc_ko_KR.ts b/translations/kcc_ko_KR.ts
new file mode 100644
index 00000000..7bc16464
--- /dev/null
+++ b/translations/kcc_ko_KR.ts
@@ -0,0 +1,1536 @@
+
+
+
+
+ KCCGUI
+
+
+ Select default output folder
+ 기본 출력 폴더 선택
+
+
+
+ Cannot select Kindle as output directory
+ Kindle을 출력 디렉터리로 선택할 수 없습니다
+
+
+
+ Select output directory
+ 출력 디렉터리 선택
+
+
+
+
+ Select file
+ 파일 선택
+
+
+
+ Select input folder(s)
+ 입력 폴더 선택
+
+
+
+ Select volume directories
+ 볼륨 디렉터리 선택
+
+
+
+ Select file(s)
+ 파일 선택
+
+
+
+ Editor is disabled due to a lack of 7z.
+ 7z가 없어서 편집기가 비활성화되었습니다.
+
+
+
+ <a href="https://github.com/ciromattia/kcc#7-zip">Install 7z (link)</a> to enable metadata editing.
+ <a href="https://github.com/ciromattia/kcc#7-zip">7z 설치(링크)</a>하여 메타데이터 편집을 활성화하세요.
+
+
+
+ Failed to parse metadata!
+
+%1
+
+Traceback:
+%2
+ 메타데이터 구문 분석 실패!
+
+%1
+
+역추적:
+%2
+
+
+
+
+ Convert
+ 변환
+
+
+
+
+ Abort
+ 중단
+
+
+
+ You can choose a taller device profile to get taller cuts in webtoon mode.
+ 웹툰 모드에서 더 세로로 잘라내려면 더 높은 기기 프로필을 선택하세요.
+
+
+
+ Try reading webtoon panels side by side in landscape!
+ 가로 모드에서 웹툰 패널을 나란히 읽어보세요!
+
+
+
+ This option is intended for older Kindle models.
+ 이 옵션은 구형 Kindle 모델용입니다.
+
+
+
+ On this device, there will be conversion speed and quality issues.
+ 이 기기에서는 변환 속도와 품질에 문제가 발생합니다.
+
+
+
+ Use the Kindle Scribe profile if you want higher resolution when zooming.
+ 확대 시 더 높은 해상도를 원하면 Kindle Scribe 프로필을 사용하세요.
+
+
+
+ Scribe PNG MOBI/EPUB has a lot of problems like blank pages/sections. Use JPG instead.
+ Scribe PNG MOBI/EPUB에는 빈 페이지/섹션 등 많은 문제가 있습니다. 대신 JPG를 사용하세요.
+
+
+
+
+ Gamma: Auto
+ 감마: 자동
+
+
+
+
+ Gamma: %1
+ 감마: %1
+
+
+
+
+ Cropping Power: %1
+ 자르기 강도: %1
+
+
+
+
+ Kindle Comic Converter %1
+ Kindle 만화 변환기 %1
+
+
+
+
+ Switch language / 切换语言 / 言語 / 언어
+ 언어 전환 / Switch language / 切换语言 / 言語
+
+
+
+ Colorsoft MOBI/EPUB can have blank pages. Just go back a few pages, exit, and reenter book.
+ Colorsoft MOBI/EPUB에서 빈 페이지가 나타날 수 있습니다. 몇 페이지 뒤로 가서 종료한 다음 책을 다시 열어보세요.
+
+
+
+ <a href="https://github.com/ciromattia/kcc/wiki/NonKindle-devices">List of supported Non-Kindle devices.</a>
+ <a href="https://github.com/ciromattia/kcc/wiki/NonKindle-devices">지원되는 비-Kindle 기기 목록.</a>
+
+
+
+ Partially check W/B Margins if you don't want KCC to extend the image margins.
+ KCC가 이미지 여백을 확장하지 않기를 원하면 W/B 여백을 부분적으로 체크하세요.
+
+
+
+ KCC - Error
+ KCC - 오류
+
+
+
+ KCC - Question
+ KCC - 질문
+
+
+
+
+ The process will be interrupted. Please wait.
+ 프로세스가 중단됩니다. 잠시 기다려 주세요.
+
+
+
+ No files selected! Please choose files to convert.
+ 선택된 파일이 없습니다! 변환할 파일을 선택하세요.
+
+
+
+ Target resolution is not set!
+ 대상 해상도가 설정되지 않았습니다!
+
+
+
+ <a href="https://github.com/ciromattia/kcc#kindlegen"><b>Install KindleGen (link)</b></a> to enable MOBI conversion for Kindles!
+ <a href="https://github.com/ciromattia/kcc#kindlegen"><b>KindleGen 설치(링크)</b></a>하여 Kindle용 MOBI 변환을 활성화하세요!
+
+
+
+ Unsupported file type for %1
+ %1에 대해 지원되지 않는 파일 형식입니다
+
+
+
+ README
+ README
+
+
+
+ FAQ
+ FAQ
+
+
+
+ WIKI
+ 위키
+
+
+
+ YOUTUBE
+ YouTube
+
+
+
+ TUTORIAL
+ 튜토리얼
+
+
+
+ EMAIL
+ 이메일
+
+
+
+ DONATE
+ 기부
+
+
+
+ FORUM
+ 포럼
+
+
+
+ DISCORD
+ Discord
+
+
+
+ <b>Tip:</b> Hover mouse over options/buttons to see explanations. Boxes can be partially/fully checked.
+ <b>팁:</b> 옵션/버튼 위에 마우스를 올리면 설명이 표시됩니다. 체크박스는 부분적 또는 완전히 체크할 수 있습니다.
+
+
+
+ <b>Conversion interrupted.</b>
+ <b>변환이 중단되었습니다.</b>
+
+
+
+ Attempting file fusion
+ 파일 병합 시도 중
+
+
+
+ Created fusion at %1
+ %1에 병합 파일을 만들었습니다
+
+
+
+ Fusion Failed. %1
+ 병합 실패. %1
+
+
+
+ Process Failed. Custom title can't be set when processing more than 1 source.
+Did you forget to check fusion?
+ 처리 실패. 소스를 2개 이상 처리할 때는 사용자 지정 제목을 설정할 수 없습니다.
+병합을 체크하는 것을 잊으셨나요?
+
+
+
+ <b>%1Source:</b> %2
+ <b>%1소스:</b> %2
+
+
+
+
+ Creating CBZ files
+ CBZ 파일 생성 중
+
+
+
+
+ Creating folders
+ 폴더 생성 중
+
+
+
+
+ Creating PDF files
+ PDF 파일 생성 중
+
+
+
+
+ Creating EPUB files
+ EPUB 파일 생성 중
+
+
+
+
+ Error during conversion! Please consult <a href="https://github.com/ciromattia/kcc/wiki/Error-messages">wiki</a> for more details.
+ 변환 중 오류가 발생했습니다! 자세한 내용은 <a href="https://github.com/ciromattia/kcc/wiki/Error-messages">wiki</a>를 참조하세요.
+
+
+
+
+ Error during conversion!
+ 변환 중 오류가 발생했습니다!
+
+
+
+ Error during conversion %1:
+
+%2
+
+Traceback:
+%3
+ 변환 %1 중 오류:
+
+%2
+
+역추적:
+%3
+
+
+
+ Creating CBZ files... <b>Done!</b>
+ CBZ 파일 생성 중... <b>완료!</b>
+
+
+
+ Creating folders... <b>Done!</b>
+ 폴더 생성 중... <b>완료!</b>
+
+
+
+ Creating PDF files... <b>Done!</b>
+ PDF 파일 생성 중... <b>완료!</b>
+
+
+
+ Creating EPUB files... <b>Done!</b>
+ EPUB 파일 생성 중... <b>완료!</b>
+
+
+
+
+
+ Creating MOBI files
+ MOBI 파일 생성 중
+
+
+
+ Creating MOBI files... <b>Done!</b>
+ MOBI 파일 생성 중... <b>완료!</b>
+
+
+
+
+ Processing MOBI files
+ MOBI 파일 처리 중
+
+
+
+ Processing MOBI files... <b>Done!</b>
+ MOBI 파일 처리 중... <b>완료!</b>
+
+
+
+ Kindle detected. Uploading covers... <b>Done!</b>
+ Kindle 감지됨. 표지 업로드 중... <b>완료!</b>
+
+
+
+
+ Failed to process MOBI file!
+ MOBI 파일 처리 실패!
+
+
+
+
+ KindleGen failed to create MOBI!
+ KindleGen이 MOBI를 만들지 못했습니다!
+
+
+
+ KindleGen error:
+
+
+ KindleGen 오류:
+
+
+
+
+
+ Created EPUB file was too big. Weird file structure?
+ 생성된 EPUB 파일이 너무 큽니다. 파일 구조가 이상한가요?
+
+
+
+ EPUB file: %1MB. Supported size: ~350MB.
+ EPUB 파일: %1MB. 지원 크기: 약 350MB.
+
+
+
+ <b>All jobs completed.</b>
+ <b>모든 작업이 완료되었습니다.</b>
+
+
+
+ All jobs completed.
+ 모든 작업이 완료되었습니다.
+
+
+
+ <b>Tip:</b> You can drag and drop image folders or comic files/archives into this window to convert.
+ <b>팁:</b> 이미지 폴더나 만화 파일/아카이브를 이 창으로 드래그 앤 드롭하여 변환할 수 있습니다.
+
+
+
+ <b>Tip:</b> Calibre may add margins! USB drop directly into the device's documents folder instead.
+ <b>팁:</b> Calibre가 여백을 추가할 수 있습니다! 대신 기기의 documents 폴더에 USB로 직접 넣으세요.
+
+
+
+ <b>Tip:</b> You can toggle easy/expert mode using button at top right.
+ <b>팁:</b> 오른쪽 상단 버튼으로 쉬움/전문가 모드를 전환할 수 있습니다.
+
+
+
+ Since you are a new user of <b>KCC</b> please see few <a href="https://github.com/ciromattia/kcc/wiki/Important-tips">important tips</a>.
+ <b>KCC</b>의 새 사용자이시라면 몇 가지 <a href="https://github.com/ciromattia/kcc/wiki/Important-tips">중요한 팁</a>을 확인해 주세요.
+
+
+
+ <a href="https://github.com/ciromattia/kcc#7-zip">Install 7z (link)</a> to enable CBZ/CBR/ZIP/etc processing.
+ <a href="https://github.com/ciromattia/kcc#7-zip">7z 설치(링크)</a>하여 CBZ/CBR/ZIP 등 처리를 활성화하세요.
+
+
+
+
+ Conversion interrupted.
+ 변환이 중단되었습니다.
+
+
+
+ One of workers crashed. Maybe restart PC. Cause: %1
+ 워커 중 하나가 충돌했습니다. PC를 다시 시작해야 할 수 있습니다. 원인: %1
+
+
+
+ C2E: Source directory is empty.
+ C2E: 소스 디렉터리가 비어 있습니다.
+
+
+
+ mupdf_pdf_extract_page_image() function can be used only with single image pages.
+ mupdf_pdf_extract_page_image() 함수는 단일 이미지 페이지에서만 사용할 수 있습니다.
+
+
+
+ PDF input can also use legacy extract option if you have any problems
+ 문제가 있으면 PDF 입력에서 레거시 추출 옵션을 사용할 수도 있습니다
+
+
+
+ Not enough disk space to perform conversion. Try Temp Directory option.
+ 변환을 수행할 디스크 공간이 부족합니다. 임시 디렉터리 옵션을 사용해 보세요.
+
+
+
+ Failed to prepare a workspace.
+ 작업 공간을 준비하지 못했습니다.
+
+
+
+ Failed to extract images from PDF file.
+ PDF 파일에서 이미지를 추출하지 못했습니다.
+
+
+
+ Failed to extract images from PDF file. %1
+ PDF 파일에서 이미지를 추출하지 못했습니다. %1
+
+
+
+ Failed to open source file/directory.
+ 소스 파일/디렉터리를 열지 못했습니다.
+
+
+
+ Unsupported directory structure.
+ 지원되지 않는 디렉터리 구조입니다.
+
+
+
+ Pillow was compiled without JPG and/or PNG decoder.
+ Pillow가 JPG 및/또는 PNG 디코더 없이 컴파일되었습니다.
+
+
+
+ Image file %1 is corrupted. Error: %2
+ 이미지 파일 %1이 손상되었습니다. 오류: %2
+
+
+
+ %1: %2
+ %1: %2
+
+
+
+ Source files are probably created by KCC. The second conversion will decrease quality.
+ 소스 파일은 아마도 KCC로 생성된 것입니다. 두 번째 변환은 품질을 저하시킵니다.
+
+
+
+ More than 25% of images are smaller than target device resolution.
+ 이미지의 25% 이상이 대상 기기 해상도보다 작습니다.
+
+
+
+ Consider enabling stretching or upscaling to improve readability.
+ 가독성을 높이려면 '늘리기/업스케일'을 활성화하는 것을 고려하세요.
+
+
+
+ MOBI/Send to Kindle not supported for non-Kindle profiles
+ MOBI/Kindle로 보내기는 Kindle 외 프로필에서 지원되지 않습니다
+
+
+
+ Your <a href="https://www.amazon.com/b?node=23496309011">KindleGen</a> is outdated! MOBI conversion might fail.
+ <a href="https://www.amazon.com/b?node=23496309011">KindleGen</a>이 오래되었습니다! MOBI 변환이 실패할 수 있습니다.
+
+
+
+ kindlegen: %1
+
+ Re-install or re-open Rosetta/Kindle Previewer/other Intel app?
+ kindlegen: %1
+
+ Rosetta/Kindle Previewer/기타 Intel 앱을 다시 설치하거나 다시 열까요?
+
+
+
+ Fusion requires at least 2 sources. Did you forget to uncheck fusion?
+ 병합에는 최소 2개의 소스가 필요합니다. 병합을 해제하는 것을 잊으셨나요?
+
+
+
+ KCCGUI_MetaEditor
+
+
+ CBR files in selection are read-only.
+ 선택한 CBR 파일은 읽기 전용입니다.
+
+
+
+ Editing %1 files.
+ %1개 파일을 편집 중입니다.
+
+
+
+
+
+
+ (multiple files)
+ (여러 파일)
+
+
+
+ Separate authors with a comma.
+ 작가는 쉼표로 구분하세요.
+
+
+
+ No changes to apply.
+ 적용할 변경 사항이 없습니다.
+
+
+
+ Processing %1/%2: %3
+ 처리 중 %1/%2: %3
+
+
+
+
+...and %1 more
+
+...외 %1개 더
+
+
+
+ Some files failed to save:
+
+%1%2
+ 일부 파일을 저장하지 못했습니다:
+
+%1%2
+
+
+
+ Errors occurred.
+ 오류가 발생했습니다.
+
+
+
+ Successfully updated %1 files.
+ %1개 파일을 성공적으로 업데이트했습니다.
+
+
+
+ %1 field must be a number.
+ %1 필드는 숫자여야 합니다.
+
+
+
+ Failed to save metadata!
+
+%1
+
+Traceback:
+%2
+ 메타데이터 저장 실패!
+
+%1
+
+역추적:
+%2
+
+
+
+
+ e.g., 5 or 1-10 or 1,3,5
+ 예: 5 또는 1-10 또는 1,3,5
+
+
+
+ VersionThread
+
+
+ The new version is available!
+ 새 버전을 사용할 수 있습니다!
+
+
+
+ WorkerThread
+
+ <b>Conversion interrupted.</b>
+ <b>변환이 중단되었습니다.</b>
+
+
+ Conversion interrupted.
+ 변환이 중단되었습니다.
+
+
+ Attempting file fusion
+ 파일 병합 시도 중
+
+
+ Created fusion at %1
+ %1에 병합 파일을 만들었습니다
+
+
+ Fusion Failed. %1
+ 병합 실패. %1
+
+
+ Process Failed. Custom title can't be set when processing more than 1 source.
+Did you forget to check fusion?
+ 처리 실패. 소스를 2개 이상 처리할 때는 사용자 지정 제목을 설정할 수 없습니다.
+병합을 체크하는 것을 잊으셨나요?
+
+
+ <b>%1Source:</b> %2
+ <b>%1소스:</b> %2
+
+
+ Creating CBZ files
+ CBZ 파일 생성 중
+
+
+ Creating folders
+ 폴더 생성 중
+
+
+ Creating PDF files
+ PDF 파일 생성 중
+
+
+ Creating EPUB files
+ EPUB 파일 생성 중
+
+
+ Error during conversion! Please consult <a href="https://github.com/ciromattia/kcc/wiki/Error-messages">wiki</a> for more details.
+ 변환 중 오류가 발생했습니다! 자세한 내용은 <a href="https://github.com/ciromattia/kcc/wiki/Error-messages">wiki</a>를 참조하세요.
+
+
+ Error during conversion!
+ 변환 중 오류가 발생했습니다!
+
+
+ Error during conversion %1:
+
+%2
+
+Traceback:
+%3
+ 변환 %1 중 오류:
+
+%2
+
+역추적:
+%3
+
+
+ Creating CBZ files... <b>Done!</b>
+ CBZ 파일 생성 중... <b>완료!</b>
+
+
+ Creating folders... <b>Done!</b>
+ 폴더 생성 중... <b>완료!</b>
+
+
+ Creating PDF files... <b>Done!</b>
+ PDF 파일 생성 중... <b>완료!</b>
+
+
+ Creating EPUB files... <b>Done!</b>
+ EPUB 파일 생성 중... <b>완료!</b>
+
+
+ Creating MOBI files
+ MOBI 파일 생성 중
+
+
+ Creating MOBI files... <b>Done!</b>
+ MOBI 파일 생성 중... <b>완료!</b>
+
+
+ Processing MOBI files
+ MOBI 파일 처리 중
+
+
+ Processing MOBI files... <b>Done!</b>
+ MOBI 파일 처리 중... <b>완료!</b>
+
+
+ Kindle detected. Uploading covers... <b>Done!</b>
+ Kindle 감지됨. 표지 업로드 중... <b>완료!</b>
+
+
+ Failed to process MOBI file!
+ MOBI 파일 처리 실패!
+
+
+ KindleGen failed to create MOBI!
+ KindleGen이 MOBI를 만들지 못했습니다!
+
+
+ KindleGen error:
+
+
+ KindleGen 오류:
+
+
+
+
+ Created EPUB file was too big. Weird file structure?
+ 생성된 EPUB 파일이 너무 큽니다. 파일 구조가 이상한가요?
+
+
+ EPUB file: %1MB. Supported size: ~350MB.
+ EPUB 파일: %1MB. 지원 크기: 약 350MB.
+
+
+ <b>All jobs completed.</b>
+ <b>모든 작업이 완료되었습니다.</b>
+
+
+ All jobs completed.
+ 모든 작업이 완료되었습니다.
+
+
+
+ editorDialog
+
+
+ Metadata editor
+ 메타데이터 편집기
+
+
+
+ Series:
+ 시리즈:
+
+
+
+ Volume:
+ 권:
+
+
+
+ <b>Bulk Volume Editing</b><br>Check this box to assign volume numbers to multiple files.<br><br><b>Input formats:</b><br><code>5</code> → sequence starting from 5 (5, 6, 7...)<br><code>1-10</code> → range from 1 to 10<br><code>1, 3, 5</code> → specific values<br><br><i>Note: Files are sorted alphabetically before assignment.</i>
+ <b>일괄 권 편집</b><br>여러 파일에 권 번호를 할당하려면 이 상자를 체크하세요.<br><br><b>입력 형식:</b><br><code>5</code> → 5부터 시작하는 시퀀스 (5, 6, 7...)<br><code>1-10</code> → 1부터 10까지 범위<br><code>1, 3, 5</code> → 특정 값<br><br><i>참고: 할당 전에 파일이 알파벳 순으로 정렬됩니다.</i>
+
+
+
+ Number:
+ 화수:
+
+
+
+ Writer:
+ 글:
+
+
+
+ Penciller:
+ 그림:
+
+
+
+ Inker:
+ 잉크:
+
+
+
+ Colorist:
+ 채색:
+
+
+
+ Title:
+ 제목:
+
+
+
+ Save
+ 저장
+
+
+
+ Cancel
+ 취소
+
+
+
+ mainWindow
+
+
+ Kindle Comic Converter
+ Kindle Comic Converter
+
+
+
+ <html><head/><body><p>Double click on source to open it in metadata editor.</p></body></html>
+ <html><head/><body><p>소스를 더블 클릭하면 메타데이터 편집기에서 열립니다.</p></body></html>
+
+
+
+ <html><head/><body><p>After calculating the cropping boundaries, "back up" a specified percentage amount.</p></body></html>
+ <html><head/><body><p>크롭 경계를 계산한 후 지정된 비율만큼 "후퇴"시킵니다.</p></body></html>
+
+
+
+ Preserve Margin %
+ 여백 유지 %
+
+
+
+ Cropping power:
+ 자르기 강도:
+
+
+
+ Gamma: Auto
+ 감마: 자동
+
+
+
+
+
+
+ <html><head/><body><p style='white-space:pre'>Resolution of the target device.</p></body></html>
+ <html><head/><body><p style='white-space:pre'>대상 기기의 해상도.</p></body></html>
+
+
+
+ Custom height:
+ 사용자 지정 높이:
+
+
+
+ Custom width:
+ 사용자 지정 너비:
+
+
+
+ <html><head/><body><p style='white-space:pre'>Add directory containing JPG, PNG or GIF files to queue.<br/><span style=" font-weight:600;">CBR, CBZ and CB7 files inside will not be processed!</span></p></body></html>
+ <html><head/><body><p style='white-space:pre'>JPG, PNG 또는 GIF 파일이 포함된 디렉토리를 큐에 추가합니다.<br/><span style=" font-weight:600;">안의 CBR, CBZ, CB7 파일은 처리되지 않습니다!</span></p></body></html>
+
+
+
+ Add input folder(s)
+ 입력 폴더 추가
+
+
+
+ <html><head/><body><p style='white-space:pre'>Output format.</p></body></html>
+ <html><head/><body><p style='white-space:pre'>출력 형식.</p></body></html>
+
+
+
+ <html><head/><body><p style='white-space:pre'>Target device.</p></body></html>
+ <html><head/><body><p style='white-space:pre'>대상 기기.</p></body></html>
+
+
+
+ Clear list
+ 목록 지우기
+
+
+
+ <html><head/><body><p style='white-space:pre'>Add CBR, CBZ, CB7 or PDF file to queue.</p></body></html>
+ <html><head/><body><p style='white-space:pre'>CBR, CBZ, CB7 또는 PDF 파일을 큐에 추가합니다.</p></body></html>
+
+
+
+ Add input file(s)
+ 입력 파일 추가
+
+
+
+ <html><head/><body><p style='white-space:pre'>Shift+Click to select the output directory for this list.</p></body></html>
+ <html><head/><body><p style='white-space:pre'>Shift+클릭으로 이 목록의 출력 디렉토리를 선택합니다.</p></body></html>
+
+
+
+ Convert
+ 변환
+
+
+
+ <html><head/><body><p style='white-space:pre'><span style=" font-weight:600; text-decoration: underline;">Unchecked - 4 panels<br/></span>Zoom each corner separately.</p><p style='white-space:pre'><span style=" font-weight:600; text-decoration: underline;">Indeterminate - 2 panels<br/></span>Zoom only the top and bottom of the page.</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - 4 high-quality panels<br/></span>Zoom each corner separately. Try to increase the quality of magnification. Check wiki for more details.</p></body></html>
+ <html><head/><body><p style='white-space:pre'><span style=" font-weight:600; text-decoration: underline;">선택 안 함 - 4칸<br/></span>각 모서리를 개별적으로 확대합니다.</p><p style='white-space:pre'><span style=" font-weight:600; text-decoration: underline;">중간 - 2칸<br/></span>페이지 상단과 하단만 확대합니다.</p><p><span style=" font-weight:600; text-decoration: underline;">선택 - 고품질 4칸<br/></span>각 모서리를 개별적으로 확대합니다. 확대 품질을 높이려고 시도합니다. 자세한 내용은 위키를 확인하세요.</p></body></html>
+
+
+
+ Panel View 4/2/HQ
+ 패널 뷰 4/2/HQ
+
+
+
+ Use the PDF/EPUB image extraction method from older KCC versions.
+
+Use if standard extraction fails for whatever reason.
+ 이전 KCC 버전의 PDF/EPUB 이미지 추출 방식을 사용합니다.
+
+표준 추출이 어떤 이유로든 실패할 경우 사용하세요.
+
+
+
+ Legacy Extract
+ 레거시 추출
+
+
+
+ <html><head/><body><p style='white-space:pre'><span style=" font-weight:600; text-decoration: underline;">Unchecked - Automatic mode<br/></span>The output will be split automatically.</p><p style='white-space:pre'><span style=" font-weight:600; text-decoration: underline;">Checked - Volume mode<br/></span>Every subdirectory will be considered as a separate volume.</p></body></html>
+ <html><head/><body><p style='white-space:pre'><span style=" font-weight:600; text-decoration: underline;">선택 안 함 - 자동 모드<br/></span>출력이 자동으로 분할됩니다.</p><p style='white-space:pre'><span style=" font-weight:600; text-decoration: underline;">선택 - 권별 모드<br/></span>각 하위 디렉토리가 별도의 권으로 간주됩니다.</p></body></html>
+
+
+
+ Output split
+ 출력 분할
+
+
+
+ <html><head/><body><p style='white-space:pre'>Do not process any image, ignore profile and processing options.</p></body></html>
+ <html><head/><body><p style='white-space:pre'>어떤 이미지도 처리하지 않으며, 프로필과 처리 옵션을 무시합니다.</p></body></html>
+
+
+
+ Disable processing
+ 처리 비활성화
+
+
+
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - Nothing<br/></span>Images smaller than device resolution will not be resized.</p><p><span style=" font-weight:600; text-decoration: underline;">Indeterminate - Stretching<br/></span>Images smaller than device resolution will be resized. Aspect ratio will be not preserved.</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - Upscaling<br/></span>Images smaller than device resolution will be resized. Aspect ratio will be preserved.</p></body></html>
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">선택 안 함 - 없음<br/></span>기기 해상도보다 작은 이미지는 크기가 조정되지 않습니다.</p><p><span style=" font-weight:600; text-decoration: underline;">중간 - 늘이기<br/></span>기기 해상도보다 작은 이미지의 크기가 조정됩니다. 가로세로 비율은 유지되지 않습니다.</p><p><span style=" font-weight:600; text-decoration: underline;">선택 - 확대<br/></span>기기 해상도보다 작은 이미지의 크기가 조정됩니다. 가로세로 비율이 유지됩니다.</p></body></html>
+
+
+
+ Stretch/Upscale
+ 늘이기/업스케일
+
+
+
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - Disabled<br/></span>Disabled</p><p><span style=" font-weight:600; text-decoration: underline;">Indeterminate - Horizontal<br/></span>Crop empty horizontal lines.</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - Both<br/></span>Crop empty horizontal and vertical lines.</p></body></html>
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">선택 안 함 - 비활성화<br/></span>비활성화</p><p><span style=" font-weight:600; text-decoration: underline;">중간 - 수평<br/></span>빈 수평 라인을 자릅니다.</p><p><span style=" font-weight:600; text-decoration: underline;">선택 - 둘 다<br/></span>빈 수평 및 수직 라인을 자릅니다.</p></body></html>
+
+
+
+ Inter-panel crop
+ 패널 간 자르기
+
+
+
+ <html><head/><body><p>Default EPUB language is en-US.</p><p>Only use if your EPUB reader has problems with English fonts.</p></body></html>
+ <html><head/><body><p>기본 EPUB 언어는 en-US입니다.</p><p>EPUB 리더에서 영어 글꼴에 문제가 있을 때만 사용하세요.</p></body></html>
+
+
+
+ EPUB language
+ EPUB 언어
+
+
+
+ <html><head/><body><p style='white-space:pre'>Enable special parsing mode for Korean Webtoons.</p></body></html>
+ <html><head/><body><p style='white-space:pre'>한국 웹툰을 위한 특수 파싱 모드를 활성화합니다.</p></body></html>
+
+
+
+ Webtoon mode
+ 웹툰 모드
+
+
+
+ Do not rotate double page spreads in spread splitter option.
+ 양면 페이지 분할 옵션에서 양면 페이지를 회전시키지 않습니다.
+
+
+
+ No rotate
+ 회전 안 함
+
+
+
+ Delete input file(s) or directory. It's not recoverable!
+ 입력 파일 또는 디렉토리를 삭제합니다. 복구할 수 없습니다!
+
+
+
+ Delete input
+ 입력 삭제
+
+
+
+ <html><head/><body><p>Invert the page turn direction.</p><p>Usually used with right to left manga but you want to page turn left to right. Spread splitting would still be right to left in this case.</p><p>Will break various features like landscape mode order.</p></body></html>
+ <html><head/><body><p>페이지 넘김 방향을 반대로 합니다.</p><p>보통 오른쪽에서 왼쪽으로 읽는 만화이지만 왼쪽에서 오른쪽으로 넘기고 싶을 때 사용합니다. 이 경우 양면 분할은 여전히 오른쪽에서 왼쪽으로 됩니다.</p><p>가로 모드 순서 등 다양한 기능이 깨질 수 있습니다.</p></body></html>
+
+
+
+ Invert Direction
+ 방향 반전
+
+
+
+ Don't quantize PNG images to 16 colors (4 bit)
+
+This will double file size but preserve all 256 colors (8 bit).
+
+Eink only has 16 shades of gray so you probably don't want this.
+ PNG 이미지를 16색(4비트)으로 양자화하지 않음
+
+파일 크기가 두 배가 되지만 256색(8비트) 모두가 유지됩니다.
+
+Eink는 16단계 회색조만 있으므로 보통 필요하지 않습니다.
+
+
+
+ No Quantize
+ 양자화 안 함
+
+
+
+ <html><head/><body><p>When the spread splitter option is partially checked,</p><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - Rotate Last<br/></span>Put the rotated 2 page spread after the split spreads.</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - Rotate First<br/></span>Put the rotated 2 page spread before the split spreads.</p></body></html>
+ <html><head/><body><p>양면 분할 옵션이 부분적으로 체크된 경우,</p><p><span style=" font-weight:600; text-decoration: underline;">선택 안 함 - 마지막에 회전<br/></span>회전된 양면 페이지를 분할 페이지 뒤에 배치합니다.</p><p><span style=" font-weight:600; text-decoration: underline;">선택 - 처음에 회전<br/></span>회전된 양면 페이지를 분할 페이지 앞에 배치합니다.</p></body></html>
+
+
+
+ Rotate First
+ 먼저 회전
+
+
+
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - Disabled</span></p><p>Disabled</p><p><span style=" font-weight:600; text-decoration: underline;">Indeterminate - Margins<br/></span>Margins</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - Margins + page numbers<br/></span>Margins +page numbers</p></body></html>
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">선택 안 함 - 비활성화</span></p><p>비활성화</p><p><span style=" font-weight:600; text-decoration: underline;">중간 - 여백<br/></span>여백</p><p><span style=" font-weight:600; text-decoration: underline;">선택 - 여백 + 페이지 번호<br/></span>여백 + 페이지 번호</p></body></html>
+
+
+
+ Cropping mode
+ 자르기 모드
+
+
+
+ Default Author is KCC
+ 기본 작가는 KCC입니다
+
+
+
+ Default Author
+ 기본 작가
+
+
+
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - JPEG<br/></span>Use JPEG files</p><p><span style=" font-weight:600; text-decoration: underline;">Indeterminate - force PNG<br/></span>Create PNG files instead JPEG for black and white images</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - mozJpeg<br/></span>10-20% smaller JPEG file, with the same image quality, but processing time multiplied by 2</p></body></html>
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">선택 안 함 - JPEG<br/></span>JPEG 파일 사용</p><p><span style=" font-weight:600; text-decoration: underline;">중간 - PNG 강제<br/></span>흑백 이미지에 대해 JPEG 대신 PNG 파일 생성</p><p><span style=" font-weight:600; text-decoration: underline;">선택 - mozJpeg<br/></span>동일한 이미지 품질로 JPEG 파일이 10-20% 작아지지만, 처리 시간이 2배가 됩니다</p></body></html>
+
+
+
+ JPEG/PNG/mozJpeg
+ JPEG/PNG/mozJpeg
+
+
+
+ Only resize images and preserve original file structure.
+
+Ignores most options besides JPEG quality, color mode, output folder.
+ 이미지 크기만 조정하고 원본 파일 구조를 유지합니다.
+
+JPEG 품질, 컬러 모드, 출력 폴더 외의 대부분 옵션을 무시합니다.
+
+
+
+ Light novel mode
+ 라이트 노벨 모드
+
+
+
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - Don't use metadata Title<br/></span>Write default title.</p><p><span style=" font-weight:600; text-decoration: underline;">Indeterminate - Add metadata Title to the default schema<br/></span>Write default title with Title from ComicInfo.xml or other embedded metadata.</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - Use metadata Title only<br/></span>Write Title from ComicInfo.xml or other embedded metadata.</p></body></html>
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">선택 안 함 - 메타데이터 제목 사용 안 함<br/></span>기본 제목을 씁니다.</p><p><span style=" font-weight:600; text-decoration: underline;">중간 - 기본 스키마에 메타데이터 제목 추가<br/></span>ComicInfo.xml 또는 기타 내장 메타데이터의 제목을 기본 제목에 추가하여 씁니다.</p><p><span style=" font-weight:600; text-decoration: underline;">선택 - 메타데이터 제목만 사용<br/></span>ComicInfo.xml 또는 기타 내장 메타데이터의 제목을 씁니다.</p></body></html>
+
+
+
+ Metadata Title
+ 메타데이터 제목
+
+
+
+ <html><head/><body><p>Combines all selected files into a single file. (Helpful for combining chapters into volumes.)</p></body></html>
+ <html><head/><body><p>선택한 모든 파일을 하나의 파일로 합칩니다. (여러 화를 권으로 묶을 때 유용합니다.)</p></body></html>
+
+
+
+ File Fusion
+ 파일 병합
+
+
+
+ Force full color images to be saved in lossless PNG format, dramatically increases the filesize.
+ 풀컬러 이미지를 무손실 PNG 형식으로 강제 저장하여 파일 크기가 크게 증가합니다.
+
+
+
+ Force PNG RGB
+ PNG RGB 강제
+
+
+
+ Auto check various options intended for KOreader wallpapers.
+
+Will also crop images to fill the screen centered.
+ KOreader 배경화면용으로 설계된 다양한 옵션을 자동으로 체크합니다.
+
+또한 이미지가 화면 중앙에 꽉 차도록 자릅니다.
+
+
+
+ Wallpaper mode
+ 배경화면 모드
+
+
+
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - 1x4<br/></span>Keep format 1x4 panels strips.</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - 2x2<br/></span>Turn 1x4 strips to 2x2 to maximize screen usage.</p></body></html>
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">선택 안 함 - 1x4<br/></span>1x4 세로 스트립 형식을 유지합니다.</p><p><span style=" font-weight:600; text-decoration: underline;">선택 - 2x2<br/></span>1x4 스트립을 2x2로 변환하여 화면 사용률을 극대화합니다.</p></body></html>
+
+
+
+ 1x4 to 2x2 strips
+ 1x4에서 2x2 스트립
+
+
+
+ <html><head/><body><p>By default, KCC maps the darkest pixel value to pure black (the black point.)</p><p>Extreme black point sets the black point to be the most common dark pixel value.</p><p>Useful when text is black but artwork is gray.</p></body></html>
+ <html><head/><body><p>기본적으로 KCC는 가장 어두운 픽셀 값을 순수한 검정색(흑점)에 매핑합니다.</p><p>극단 흑점은 가장 흔한 어두운 픽셀 값을 흑점으로 설정합니다.</p><p>글자는 검은색인데 그림은 회색일 때 유용합니다.</p></body></html>
+
+
+
+ Extreme Black Point
+ 익스트림 블랙 포인트
+
+
+
+ <html><head/><body><p>Force Kindle MOBI to be be tagged as EBOK instead of PDOC.</p><p>This may cause USB loaded books to be deleted if you go online after a month offline.</p></body></html>
+ <html><head/><body><p>Kindle MOBI를 PDOC 대신 EBOK로 태그하도록 강제합니다.</p><p>한 달 오프라인 상태였다가 온라인에 연결하면 USB로 넣은 책이 삭제될 수 있습니다.</p></body></html>
+
+
+
+ Force EBOK
+ EBOK 강제
+
+
+
+ Render vector PDFs to device width instead of height.
+
+Useful if you plan to crop a little off the top and bottom to fill screen.
+ 벡터 PDF를 높이가 아닌 기기 너비에 맞춰 렌더링합니다.
+
+화면을 채우기 위해 위아래를 약간 자를 계획일 때 유용합니다.
+
+
+
+ PDF Width Render
+ PDF 너비 렌더링
+
+
+
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - BW only<br/></span>Only autocontrast bw pages. Ignored for pages where near blacks or whites don't exist.</p><p><span style=" font-weight:600; text-decoration: underline;">Indeterminate - Disabled<br/></span>Disable autocontrast</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - BW and Color<br/></span>BW and color images will be autocontrasted. Ignored for pages where near blacks or whites don't exist.</p></body></html>
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">선택 안 함 - 흑백만<br/></span>흑백 페이지만 자동 대비 조정을 적용합니다. 검은색이나 흰색에 가까운 픽셀이 없는 페이지에서는 무시됩니다.</p><p><span style=" font-weight:600; text-decoration: underline;">중간 - 비활성화<br/></span>자동 대비 조정을 비활성화합니다</p><p><span style=" font-weight:600; text-decoration: underline;">선택 - 흑백 및 컬러<br/></span>흑백 및 컬러 이미지가 자동 대비 조정됩니다. 검은색이나 흰색에 가까운 픽셀이 없는 페이지에서는 무시됩니다.</p></body></html>
+
+
+
+ Custom Autocontrast
+ 사용자 지정 자동 대비
+
+
+
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - next to source<br/></span>Place output files next to source files</p><p><span style=" font-weight:600; text-decoration: underline;">Indeterminate - folder next to source<br/></span>Place output files in a folder next to source files</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - Custom<br/></span>Place output files in custom directory specified by right button</p></body></html>
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">선택 안 함 - 원본 옆<br/></span>출력 파일을 원본 파일 옆에 배치합니다</p><p><span style=" font-weight:600; text-decoration: underline;">중간 - 원본 옆 폴더<br/></span>출력 파일을 원본 파일 옆 폴더에 배치합니다</p><p><span style=" font-weight:600; text-decoration: underline;">선택 - 사용자 지정<br/></span>오른쪽 버튼으로 지정한 디렉토리에 출력 파일을 배치합니다</p></body></html>
+
+
+
+ Output Folder
+ 출력 폴더
+
+
+
+ <html><head/><body><p>Use this to select the default output directory.</p></body></html>
+ <html><head/><body><p>기본 출력 디렉토리를 선택하는 데 사용합니다.</p></body></html>
+
+
+
+ Use a more compatible 8 bit PNG instead of 4 bit.
+ 4비트 대신 호환성이 더 높은 8비트 PNG를 사용합니다.
+
+
+
+ PNG Legacy Mode
+ PNG 레거시 모드
+
+
+
+ Rotate 2 page spreads in opposite direction than normal.
+ 양면 페이지를 평소와 반대 방향으로 회전시킵니다.
+
+
+
+ Rotate Right
+ 오른쪽으로 회전
+
+
+
+ <html><head/><body><p>In virtual panel mode:</p><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - Horizontal<br/></span>First two panels are the top panels.</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - Vertical<br/></span>First two panels are the side panels.</p></body></html>
+ <html><head/><body><p>가상 패널 모드:</p><p><span style=" font-weight:600; text-decoration: underline;">선택 안 함 - 수평<br/></span>처음 두 칸은 위쪽 칸입니다.</p><p><span style=" font-weight:600; text-decoration: underline;">선택 - 수직<br/></span>처음 두 칸은 양쪽 옆 칸입니다.</p></body></html>
+
+
+
+ Vertical 4 Panel
+ 수직 4패널
+
+
+
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - Autodetection<br/></span>The color of margins fill will be detected automatically.</p><p><span style=" font-weight:600; text-decoration: underline;">Indeterminate - White<br/></span>Margins will be untouched.</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - Black<br/></span>Margins will be filled with black color.</p></body></html>
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">선택 안 함 - 자동 감지<br/></span>여백 채우기 색상이 자동으로 감지됩니다.</p><p><span style=" font-weight:600; text-decoration: underline;">중간 - 흰색<br/></span>여백이 그대로 유지됩니다.</p><p><span style=" font-weight:600; text-decoration: underline;">선택 - 검은색<br/></span>여백이 검은색으로 채워집니다.</p></body></html>
+
+
+
+ W/B margins
+ 흰/검 여백
+
+
+
+ Erase rainbow effect on color eink screen by attenuating interfering frequencies
+ 간섭 주파수를 감쇠시켜 컬러 eink 화면의 무지개 효과를 제거합니다
+
+
+
+ Rainbow eraser
+ 레인보우 이레이저
+
+
+
+ Replace JPG with lossy WebP and PNG with lossless WebP. This includes the JPG Quality.
+
+Ignored for Kindle EPUB/MOBI and all PDF.
+
+Makes a large difference in filesize for color content.
+
+Not very useful for BW content due to minimal filesize improvement compared to PNG and greater resource usage.
+ JPG를 손실 WebP로, PNG를 무손실 WebP로 교체합니다. JPG 품질 설정이 포함됩니다.
+
+Kindle EPUB/MOBI와 모든 PDF에서는 무시됩니다.
+
+컬러 콘텐츠의 파일 크기에 큰 차이를 만듭니다.
+
+흑백 콘텐츠에는 그다지 유용하지 않습니다. PNG에 비해 파일 크기 개선은 미미하고 리소스 사용량은 더 크기 때문입니다.
+
+
+
+ WebP
+ WebP
+
+
+
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - Split<br/></span>Double page spreads will be cut into two separate pages.</p><p><span style=" font-weight:600; text-decoration: underline;">Indeterminate - Split and rotate<br/></span>Double page spreads will be displayed twice. First split and then rotated. </p><p><span style=" font-weight:600; text-decoration: underline;">Checked - Rotate<br/></span>Double page spreads will be rotated.</p></body></html>
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">선택 안 함 - 분할<br/></span>양면 페이지가 두 개의 별도 페이지로 나뉩니다.</p><p><span style=" font-weight:600; text-decoration: underline;">중간 - 분할 후 회전<br/></span>양면 페이지가 두 번 표시됩니다. 먼저 분할한 다음 회전합니다.</p><p><span style=" font-weight:600; text-decoration: underline;">선택 - 회전<br/></span>양면 페이지가 회전됩니다.</p></body></html>
+
+
+
+ Spread splitter
+ 스프레드 스플리터
+
+
+
+ <html><head/><body><p><span style=" font-weight:700; text-decoration: underline;">Unchecked<br/></span>Maximal output file size is 100 MB for Webtoon, 400 MB for others before split occurs.</p><p><span style=" font-weight:700; text-decoration: underline;">Checked</span><br/>Output file size specified in "Chunk size MB" before split occurs.</p></body></html>
+ <html><head/><body><p><span style=" font-weight:700; text-decoration: underline;">선택 안 함<br/></span>분할이 발생하기 전 최대 출력 파일 크기는 Webtoon은 100MB, 나머지는 400MB입니다.</p><p><span style=" font-weight:700; text-decoration: underline;">선택</span><br/>"청크 크기 MB"에 지정된 크기에서 분할이 발생합니다.</p></body></html>
+
+
+
+ Chunk size
+ 청크 크기
+
+
+
+ The JPEG quality, on a scale from 0 (worst) to 95 (best).
+
+Default is 85 for most devices besides Kindle Scribe and Colorsoft, which are 90.
+
+Higher values are larger and higher quality, and may resolve blank page issues.
+ JPEG 품질. 0(최악)에서 95(최고)까지의 범위.
+
+Kindle Scribe와 Colorsoft는 90이며, 나머지 대부분 기기의 기본값은 85입니다.
+
+값이 높을수록 파일 크기가 커지고 품질이 높아지며, 빈 페이지 문제를 해결할 수 있습니다.
+
+
+
+ Custom JPEG Quality
+ 사용자 지정 JPEG 품질
+
+
+
+ <html><head/><body><p>Set a custom gamma correction.</p><p>1.0 is default (disabled).<br/>< 1.0 makes the image brighter.<br/>> 1.0 makes the image darker. </p><p>1.8 was the default in KCC 9.1.0 and earlier.</p><p>Use if you want to make midtones darker.</p></body></html>
+ <html><head/><body><p>사용자 감마 보정을 설정합니다.</p><p>1.0이 기본값(비활성화)입니다.<br/>< 1.0 은 이미지를 더 밝게 만듭니다.<br/>> 1.0 은 이미지를 더 어둡게 만듭니다.</p><p>1.8은 KCC 9.1.0 이전 버전의 기본값이었습니다.</p><p>중간조를 더 어둡게 만들고 싶을 때 사용하세요.</p></body></html>
+
+
+
+ Custom gamma
+ 사용자 지정 감마
+
+
+
+ <html><head/><body><p style='white-space:pre'>Enable right-to-left reading.</p></body></html>
+ <html><head/><body><p style='white-space:pre'>오른쪽에서 왼쪽으로 읽기를 활성화합니다.</p></body></html>
+
+
+
+ Right-to-left (manga)
+ 오른쪽에서 왼쪽으로 (만화)
+
+
+
+ <html><head/><body><p style='white-space:pre'>Disable conversion to grayscale.</p></body></html>
+ <html><head/><body><p style='white-space:pre'>그레이스케일 변환을 비활성화합니다.</p></body></html>
+
+
+
+ Color mode
+ 컬러 모드
+
+
+
+ <html><head/><body><p>Default Title</p></body></html>
+ <html><head/><body><p>기본 제목</p></body></html>
+
+
+
+ Default Title
+ 기본 제목
+
+
+
+ Resize cover to exact device resolution by center-cropping to aspect ratio first.
+May crop top/bottom or left/right depending on source aspect ratio. Not implemented for Kindle Scribe.
+ 먼저 가로세로 비율에 맞춰 중앙 자르기를 한 다음, 표지를 기기 해상도에 정확히 맞춰 크기 조정합니다.
+원본 가로세로 비율에 따라 위/아래 또는 왼쪽/오른쪽이 잘릴 수 있습니다. Kindle Scribe에는 적용되지 않습니다.
+
+
+
+ Cover Fill
+ 커버 채우기
+
+
+
+ <html><head/><body><p>Attempt to crop main cover from wide image.</p></body></html>
+ <html><head/><body><p>넓은 이미지에서 메인 표지를 잘라내려고 시도합니다.</p></body></html>
+
+
+
+ Smart Cover Crop
+ 스마트 커버 자르기
+
+
+
+ Shift first page to opposite side in landscape for two page spread alignment
+ 양면 페이지 정렬을 위해 가로 모드에서 첫 페이지를 반대쪽으로 이동시킵니다
+
+
+
+ Spread shift
+ 스프레드 시프트
+
+
+
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - 2 page landscape<br/></span>2 viewports for left and right pages</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - 1 page landscape<br/></span>A single centered viewport for 1 page</p></body></html>
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">선택 안 함 - 2페이지 가로<br/></span>왼쪽과 오른쪽 페이지에 2개의 뷰포트</p><p><span style=" font-weight:600; text-decoration: underline;">선택 - 1페이지 가로<br/></span>1페이지용 중앙 정렬 뷰포트</p></body></html>
+
+
+
+ 1 Page Landscape
+ 1페이지 가로
+
+
+
+ Keep any original ComicInfo.xml files.
+
+Keeping this file may crash some readers like the Kobo native CBZ reader.
+ 원본 ComicInfo.xml 파일을 모두 유지합니다.
+
+이 파일을 유지하면 Kobo 기본 CBZ 리더 등 일부 리더가 크래시될 수 있습니다.
+
+
+
+ Keep ComicInfo.xml
+ ComicInfo.xml 유지
+
+
+
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - Main Drive<br/></span>Use dedicated temporary directory on main OS drive.</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - Source File Drive<br/></span>Create temporary file directory on source file drive.</p></body></html>
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">선택 안 함 - 주 드라이브<br/></span>OS 주 드라이브에 있는 전용 임시 디렉토리를 사용합니다.</p><p><span style=" font-weight:600; text-decoration: underline;">선택 - 원본 파일 드라이브<br/></span>원본 파일이 있는 드라이브에 임시 파일 디렉토리를 생성합니다.</p></body></html>
+
+
+
+ Temp Directory
+ 임시 디렉토리
+
+
+
+ Use legacy panel view method from KCC 6.
+
+Kind of works on firmwares 5.19.2 (before revert) and 5.19.3+
+ KCC 6의 레거시 패널 뷰 방식을 사용합니다.
+
+펌웨어 5.19.2(롤백 전) 및 5.19.3+ 버전에서 작동합니다.
+
+
+
+ Legacy Panel View
+ 레거시 패널 뷰
+
+
+
+ JPEG Quality:
+ JPEG 품질:
+
+
+
+ Hold shift while clicking for a low quality preview.
+ Shift 키를 누른 상태로 클릭하면 저화질 미리보기를 볼 수 있습니다.
+
+
+
+ Label Spreads
+ 스프레드 레이블
+
+
+
+ Support me on Ko-fi
+ Ko-fi로 후원하기
+
+
+
+ <html><head/><body><p style='white-space:pre'>Shift+Click to edit directory.</p></body></html>
+ <html><head/><body><p style='white-space:pre'>Shift+클릭으로 디렉토리를 편집합니다.</p></body></html>
+
+
+
+ Metadata Editor
+ 메타데이터 편집기
+
+
+
+ Humble Bundle Referral
+ Humble Bundle 추천
+
+
+
+ Toggle Easy/Expert Mode
+ 쉬움/전문가 모드 전환
+
+
+
+ Easy/Expert Mode
+ 쉬움/전문가 모드
+
+
+
+ <html><head/><body><p>Warning: chunk size greater than default may cause<br/>performance/battery issues, especially on older devices.</p></body></html>
+ <html><head/><body><p>경고: 기본값보다 큰 청크 크기는<br/>특히 구형 기기에서 성능/배터리 문제를 일으킬 수 있습니다.</p></body></html>
+
+
+
+ Chunk size MB:
+ 청크 크기 MB:
+
+
+
+ Greater than default may cause performance issues on older ereaders.
+ 기본값보다 크면 구형 전자책 리더에서 성능 문제가 발생할 수 있습니다.
+
+
+
+ Hover over each option/button to see an explanation! Options can be partially checked or fully checked!
+ 각 옵션/버튼 위에 마우스를 올리면 설명이 표시됩니다! 옵션은 부분적 또는 완전히 체크할 수 있습니다!
+
+
+
diff --git a/translations/kcc_zh_CN.qm b/translations/kcc_zh_CN.qm
new file mode 100644
index 00000000..10ed9111
Binary files /dev/null and b/translations/kcc_zh_CN.qm differ
diff --git a/translations/kcc_zh_CN.ts b/translations/kcc_zh_CN.ts
new file mode 100644
index 00000000..9b216a77
--- /dev/null
+++ b/translations/kcc_zh_CN.ts
@@ -0,0 +1,1536 @@
+
+
+
+
+ KCCGUI
+
+
+ Select default output folder
+ 选择默认输出文件夹
+
+
+
+ Cannot select Kindle as output directory
+ 无法选择 Kindle 作为输出目录
+
+
+
+ Select output directory
+ 选择输出目录
+
+
+
+
+ Select file
+ 选择文件
+
+
+
+ Select input folder(s)
+ 选择输入文件夹
+
+
+
+ Select volume directories
+ 选择卷目录
+
+
+
+ Select file(s)
+ 选择文件
+
+
+
+ Editor is disabled due to a lack of 7z.
+ 由于缺少 7z,编辑器已禁用。
+
+
+
+ <a href="https://github.com/ciromattia/kcc#7-zip">Install 7z (link)</a> to enable metadata editing.
+ <a href="https://github.com/ciromattia/kcc#7-zip">安装 7z(链接)</a>以启用元数据编辑。
+
+
+
+ Failed to parse metadata!
+
+%1
+
+Traceback:
+%2
+ 解析元数据失败!
+
+%1
+
+回溯:
+%2
+
+
+
+
+ Convert
+ 转换
+
+
+
+
+ Abort
+ 中止
+
+
+
+ You can choose a taller device profile to get taller cuts in webtoon mode.
+ 你可以选择更高(纵向)的设备配置文件,在条漫模式下获得更高的裁切。
+
+
+
+ Try reading webtoon panels side by side in landscape!
+ 试试在横屏下并排阅读条漫分格!
+
+
+
+ This option is intended for older Kindle models.
+ 此选项适用于较旧的 Kindle 机型。
+
+
+
+ On this device, there will be conversion speed and quality issues.
+ 在此设备上会出现转换速度和质量问题。
+
+
+
+ Use the Kindle Scribe profile if you want higher resolution when zooming.
+ 如果希望在放大时获得更高分辨率,请使用 Kindle Scribe 配置文件。
+
+
+
+ Scribe PNG MOBI/EPUB has a lot of problems like blank pages/sections. Use JPG instead.
+ Scribe 的 PNG MOBI/EPUB 存在很多问题(如空白页/空白段)。请改用 JPG。
+
+
+
+
+ Gamma: Auto
+ 伽马:自动
+
+
+
+
+ Gamma: %1
+ 伽马:%1
+
+
+
+
+ Cropping Power: %1
+ 裁剪强度:%1
+
+
+
+
+ Kindle Comic Converter %1
+ Kindle 漫画转换器 %1
+
+
+
+
+ Switch language / 切换语言 / 言語 / 언어
+ 切换语言 / Switch language / 言語 / 언어
+
+
+
+ Colorsoft MOBI/EPUB can have blank pages. Just go back a few pages, exit, and reenter book.
+ Colorsoft MOBI/EPUB 可能会出现空白页。只需往回翻几页,退出后重新进入书籍即可。
+
+
+
+ <a href="https://github.com/ciromattia/kcc/wiki/NonKindle-devices">List of supported Non-Kindle devices.</a>
+ <a href="https://github.com/ciromattia/kcc/wiki/NonKindle-devices">支持的非 Kindle 设备列表。</a>
+
+
+
+ Partially check W/B Margins if you don't want KCC to extend the image margins.
+ 如果不希望 KCC 扩展图像边距,请部分勾选 W/B 边距。
+
+
+
+ KCC - Error
+ KCC - 错误
+
+
+
+ KCC - Question
+ KCC - 询问
+
+
+
+
+ The process will be interrupted. Please wait.
+ 进程将被中断。请稍候。
+
+
+
+ No files selected! Please choose files to convert.
+ 未选择文件!请选择要转换的文件。
+
+
+
+ Target resolution is not set!
+ 未设置目标分辨率!
+
+
+
+ <a href="https://github.com/ciromattia/kcc#kindlegen"><b>Install KindleGen (link)</b></a> to enable MOBI conversion for Kindles!
+ <a href="https://github.com/ciromattia/kcc#kindlegen"><b>安装 KindleGen(链接)</b></a> 以启用 Kindle 的 MOBI 转换!
+
+
+
+ Unsupported file type for %1
+ %1 的文件类型不受支持
+
+
+
+ README
+ README
+
+
+
+ FAQ
+ FAQ
+
+
+
+ WIKI
+ 维基
+
+
+
+ YOUTUBE
+ YouTube
+
+
+
+ TUTORIAL
+ 教程
+
+
+
+ EMAIL
+ 邮箱
+
+
+
+ DONATE
+ 捐赠
+
+
+
+ FORUM
+ 论坛
+
+
+
+ DISCORD
+ Discord
+
+
+
+ <b>Tip:</b> Hover mouse over options/buttons to see explanations. Boxes can be partially/fully checked.
+ <b>提示:</b>将鼠标悬停在选项/按钮上可查看说明。复选框可以部分/完全勾选。
+
+
+
+ <b>Conversion interrupted.</b>
+ <b>转换已中断。</b>
+
+
+
+ Attempting file fusion
+ 正在尝试文件合并
+
+
+
+ Created fusion at %1
+ 已在 %1 创建合并文件
+
+
+
+ Fusion Failed. %1
+ 合并失败。%1
+
+
+
+ Process Failed. Custom title can't be set when processing more than 1 source.
+Did you forget to check fusion?
+ 处理失败。处理多个源时无法设置自定义标题。
+是否忘记勾选「文件合并」?
+
+
+
+ <b>%1Source:</b> %2
+ <b>%1源:</b>%2
+
+
+
+
+ Creating CBZ files
+ 正在创建 CBZ 文件
+
+
+
+
+ Creating folders
+ 正在创建文件夹
+
+
+
+
+ Creating PDF files
+ 正在创建 PDF 文件
+
+
+
+
+ Creating EPUB files
+ 正在创建 EPUB 文件
+
+
+
+
+ Error during conversion! Please consult <a href="https://github.com/ciromattia/kcc/wiki/Error-messages">wiki</a> for more details.
+ 转换过程中出错!请查阅 <a href="https://github.com/ciromattia/kcc/wiki/Error-messages">wiki</a> 了解详情。
+
+
+
+
+ Error during conversion!
+ 转换过程中出错!
+
+
+
+ Error during conversion %1:
+
+%2
+
+Traceback:
+%3
+ 转换 %1 时出错:
+
+%2
+
+回溯:
+%3
+
+
+
+ Creating CBZ files... <b>Done!</b>
+ 正在创建 CBZ 文件……<b>完成!</b>
+
+
+
+ Creating folders... <b>Done!</b>
+ 正在创建文件夹……<b>完成!</b>
+
+
+
+ Creating PDF files... <b>Done!</b>
+ 正在创建 PDF 文件……<b>完成!</b>
+
+
+
+ Creating EPUB files... <b>Done!</b>
+ 正在创建 EPUB 文件……<b>完成!</b>
+
+
+
+
+
+ Creating MOBI files
+ 正在创建 MOBI 文件
+
+
+
+ Creating MOBI files... <b>Done!</b>
+ 正在创建 MOBI 文件……<b>完成!</b>
+
+
+
+
+ Processing MOBI files
+ 正在处理 MOBI 文件
+
+
+
+ Processing MOBI files... <b>Done!</b>
+ 正在处理 MOBI 文件……<b>完成!</b>
+
+
+
+ Kindle detected. Uploading covers... <b>Done!</b>
+ 检测到 Kindle。正在上传封面……<b>完成!</b>
+
+
+
+
+ Failed to process MOBI file!
+ 处理 MOBI 文件失败!
+
+
+
+
+ KindleGen failed to create MOBI!
+ KindleGen 创建 MOBI 失败!
+
+
+
+ KindleGen error:
+
+
+ KindleGen 错误:
+
+
+
+
+
+ Created EPUB file was too big. Weird file structure?
+ 创建的 EPUB 文件过大。文件结构异常?
+
+
+
+ EPUB file: %1MB. Supported size: ~350MB.
+ EPUB 文件:%1MB。支持的大小:约 350MB。
+
+
+
+ <b>All jobs completed.</b>
+ <b>所有任务已完成。</b>
+
+
+
+ All jobs completed.
+ 所有任务已完成。
+
+
+
+ <b>Tip:</b> You can drag and drop image folders or comic files/archives into this window to convert.
+ <b>提示:</b>您可以将图像文件夹或漫画文件/压缩包拖放到此窗口进行转换。
+
+
+
+ <b>Tip:</b> Calibre may add margins! USB drop directly into the device's documents folder instead.
+ <b>提示:</b>Calibre 可能会添加边距!请直接通过 USB 拖放到设备的 documents 文件夹中。
+
+
+
+ <b>Tip:</b> You can toggle easy/expert mode using button at top right.
+ <b>提示:</b>您可以使用右上角的按钮切换简易/专家模式。
+
+
+
+ Since you are a new user of <b>KCC</b> please see few <a href="https://github.com/ciromattia/kcc/wiki/Important-tips">important tips</a>.
+ 由于您是 <b>KCC</b> 的新用户,请查看一些 <a href="https://github.com/ciromattia/kcc/wiki/Important-tips">重要提示</a>。
+
+
+
+ <a href="https://github.com/ciromattia/kcc#7-zip">Install 7z (link)</a> to enable CBZ/CBR/ZIP/etc processing.
+ <a href="https://github.com/ciromattia/kcc#7-zip">安装 7z(链接)</a> 以启用 CBZ/CBR/ZIP 等格式处理。
+
+
+
+
+ Conversion interrupted.
+ 转换已中断。
+
+
+
+ One of workers crashed. Maybe restart PC. Cause: %1
+ 某个工作进程崩溃。可能需要重启电脑。原因:%1
+
+
+
+ C2E: Source directory is empty.
+ C2E:源目录为空。
+
+
+
+ mupdf_pdf_extract_page_image() function can be used only with single image pages.
+ mupdf_pdf_extract_page_image() 函数只能用于单图页面。
+
+
+
+ PDF input can also use legacy extract option if you have any problems
+ 如果遇到问题,PDF 输入也可以使用旧版提取选项
+
+
+
+ Not enough disk space to perform conversion. Try Temp Directory option.
+ 磁盘空间不足,无法执行转换。请尝试「临时目录」选项。
+
+
+
+ Failed to prepare a workspace.
+ 准备工作区失败。
+
+
+
+ Failed to extract images from PDF file.
+ 从 PDF 文件提取图像失败。
+
+
+
+ Failed to extract images from PDF file. %1
+ 从 PDF 文件提取图像失败。%1
+
+
+
+ Failed to open source file/directory.
+ 打开源文件/目录失败。
+
+
+
+ Unsupported directory structure.
+ 不支持的目录结构。
+
+
+
+ Pillow was compiled without JPG and/or PNG decoder.
+ Pillow 编译时未包含 JPG 和/或 PNG 解码器。
+
+
+
+ Image file %1 is corrupted. Error: %2
+ 图像文件 %1 已损坏。错误:%2
+
+
+
+ %1: %2
+ %1:%2
+
+
+
+ Source files are probably created by KCC. The second conversion will decrease quality.
+ 源文件可能是由 KCC 生成的。二次转换会降低质量。
+
+
+
+ More than 25% of images are smaller than target device resolution.
+ 超过 25% 的图像小于目标设备分辨率。
+
+
+
+ Consider enabling stretching or upscaling to improve readability.
+ 建议启用「拉伸/放大」以提高可读性。
+
+
+
+ MOBI/Send to Kindle not supported for non-Kindle profiles
+ 非 Kindle 配置文件不支持 MOBI/发送到 Kindle
+
+
+
+ Your <a href="https://www.amazon.com/b?node=23496309011">KindleGen</a> is outdated! MOBI conversion might fail.
+ 你的 <a href="https://www.amazon.com/b?node=23496309011">KindleGen</a> 已过时!MOBI 转换可能会失败。
+
+
+
+ kindlegen: %1
+
+ Re-install or re-open Rosetta/Kindle Previewer/other Intel app?
+ kindlegen:%1
+
+ 重新安装或重新打开 Rosetta/Kindle Previewer/其他 Intel 应用?
+
+
+
+ Fusion requires at least 2 sources. Did you forget to uncheck fusion?
+ 合并需要至少 2 个源。是否忘记取消勾选「文件合并」?
+
+
+
+ KCCGUI_MetaEditor
+
+
+ CBR files in selection are read-only.
+ 所选内容中的 CBR 文件为只读。
+
+
+
+ Editing %1 files.
+ 正在编辑 %1 个文件。
+
+
+
+
+
+
+ (multiple files)
+ (多个文件)
+
+
+
+ Separate authors with a comma.
+ 作者之间用逗号分隔。
+
+
+
+ No changes to apply.
+ 没有要应用的更改。
+
+
+
+ Processing %1/%2: %3
+ 正在处理 %1/%2:%3
+
+
+
+
+...and %1 more
+
+……还有 %1 项
+
+
+
+ Some files failed to save:
+
+%1%2
+ 部分文件保存失败:
+
+%1%2
+
+
+
+ Errors occurred.
+ 发生错误。
+
+
+
+ Successfully updated %1 files.
+ 成功更新了 %1 个文件。
+
+
+
+ %1 field must be a number.
+ %1 字段必须是数字。
+
+
+
+ Failed to save metadata!
+
+%1
+
+Traceback:
+%2
+ 保存元数据失败!
+
+%1
+
+回溯:
+%2
+
+
+
+
+ e.g., 5 or 1-10 or 1,3,5
+ 例如:5 或 1-10 或 1,3,5
+
+
+
+ VersionThread
+
+
+ The new version is available!
+ 新版本可用!
+
+
+
+ WorkerThread
+
+ <b>Conversion interrupted.</b>
+ <b>转换已中断。</b>
+
+
+ Conversion interrupted.
+ 转换已中断。
+
+
+ Attempting file fusion
+ 正在尝试文件合并
+
+
+ Created fusion at %1
+ 已在 %1 创建合并文件
+
+
+ Fusion Failed. %1
+ 合并失败。%1
+
+
+ Process Failed. Custom title can't be set when processing more than 1 source.
+Did you forget to check fusion?
+ 处理失败。处理多个源时无法设置自定义标题。
+是否忘记勾选「文件合并」?
+
+
+ <b>%1Source:</b> %2
+ <b>%1源:</b>%2
+
+
+ Creating CBZ files
+ 正在创建 CBZ 文件
+
+
+ Creating folders
+ 正在创建文件夹
+
+
+ Creating PDF files
+ 正在创建 PDF 文件
+
+
+ Creating EPUB files
+ 正在创建 EPUB 文件
+
+
+ Error during conversion! Please consult <a href="https://github.com/ciromattia/kcc/wiki/Error-messages">wiki</a> for more details.
+ 转换过程中出错!请查阅 <a href="https://github.com/ciromattia/kcc/wiki/Error-messages">wiki</a> 了解详情。
+
+
+ Error during conversion!
+ 转换过程中出错!
+
+
+ Error during conversion %1:
+
+%2
+
+Traceback:
+%3
+ 转换 %1 时出错:
+
+%2
+
+回溯:
+%3
+
+
+ Creating CBZ files... <b>Done!</b>
+ 正在创建 CBZ 文件……<b>完成!</b>
+
+
+ Creating folders... <b>Done!</b>
+ 正在创建文件夹……<b>完成!</b>
+
+
+ Creating PDF files... <b>Done!</b>
+ 正在创建 PDF 文件……<b>完成!</b>
+
+
+ Creating EPUB files... <b>Done!</b>
+ 正在创建 EPUB 文件……<b>完成!</b>
+
+
+ Creating MOBI files
+ 正在创建 MOBI 文件
+
+
+ Creating MOBI files... <b>Done!</b>
+ 正在创建 MOBI 文件……<b>完成!</b>
+
+
+ Processing MOBI files
+ 正在处理 MOBI 文件
+
+
+ Processing MOBI files... <b>Done!</b>
+ 正在处理 MOBI 文件……<b>完成!</b>
+
+
+ Kindle detected. Uploading covers... <b>Done!</b>
+ 检测到 Kindle。正在上传封面……<b>完成!</b>
+
+
+ Failed to process MOBI file!
+ 处理 MOBI 文件失败!
+
+
+ KindleGen failed to create MOBI!
+ KindleGen 创建 MOBI 失败!
+
+
+ KindleGen error:
+
+
+ KindleGen 错误:
+
+
+
+
+ Created EPUB file was too big. Weird file structure?
+ 创建的 EPUB 文件过大。文件结构异常?
+
+
+ EPUB file: %1MB. Supported size: ~350MB.
+ EPUB 文件:%1MB。支持的大小:约 350MB。
+
+
+ <b>All jobs completed.</b>
+ <b>所有任务已完成。</b>
+
+
+ All jobs completed.
+ 所有任务已完成。
+
+
+
+ editorDialog
+
+
+ Metadata editor
+ 元数据编辑器
+
+
+
+ Series:
+ 系列:
+
+
+
+ Volume:
+ 卷:
+
+
+
+ <b>Bulk Volume Editing</b><br>Check this box to assign volume numbers to multiple files.<br><br><b>Input formats:</b><br><code>5</code> → sequence starting from 5 (5, 6, 7...)<br><code>1-10</code> → range from 1 to 10<br><code>1, 3, 5</code> → specific values<br><br><i>Note: Files are sorted alphabetically before assignment.</i>
+ <b>批量卷编辑</b><br>勾选此框可为多个文件分配卷号。<br><br><b>输入格式:</b><br><code>5</code> → 从 5 开始的序列(5, 6, 7...)<br><code>1-10</code> → 从 1 到 10 的范围<br><code>1, 3, 5</code> → 指定值<br><br><i>注意:文件在分配前按字母顺序排序。</i>
+
+
+
+ Number:
+ 话数:
+
+
+
+ Writer:
+ 编剧:
+
+
+
+ Penciller:
+ 线稿:
+
+
+
+ Inker:
+ 描线:
+
+
+
+ Colorist:
+ 上色:
+
+
+
+ Title:
+ 标题:
+
+
+
+ Save
+ 保存
+
+
+
+ Cancel
+ 取消
+
+
+
+ mainWindow
+
+
+ Kindle Comic Converter
+ Kindle 漫画转换器
+
+
+
+ <html><head/><body><p>Double click on source to open it in metadata editor.</p></body></html>
+ <html><head/><body><p>双击源文件可在元数据编辑器中打开。</p></body></html>
+
+
+
+ <html><head/><body><p>After calculating the cropping boundaries, "back up" a specified percentage amount.</p></body></html>
+ <html><head/><body><p>计算裁剪边界后,按指定百分比"回缩"。</p></body></html>
+
+
+
+ Preserve Margin %
+ 保留边距 %
+
+
+
+ Cropping power:
+ 裁剪强度:
+
+
+
+ Gamma: Auto
+ 伽马:自动
+
+
+
+
+
+
+ <html><head/><body><p style='white-space:pre'>Resolution of the target device.</p></body></html>
+ <html><head/><body><p style='white-space:pre'>目标设备的分辨率。</p></body></html>
+
+
+
+ Custom height:
+ 自定义高度:
+
+
+
+ Custom width:
+ 自定义宽度:
+
+
+
+ <html><head/><body><p style='white-space:pre'>Add directory containing JPG, PNG or GIF files to queue.<br/><span style=" font-weight:600;">CBR, CBZ and CB7 files inside will not be processed!</span></p></body></html>
+ <html><head/><body><p style='white-space:pre'>将包含 JPG、PNG 或 GIF 文件的目录添加到队列。<br/><span style=" font-weight:600;">其中的 CBR、CBZ 和 CB7 文件不会被处理!</span></p></body></html>
+
+
+
+ Add input folder(s)
+ 添加输入文件夹
+
+
+
+ <html><head/><body><p style='white-space:pre'>Output format.</p></body></html>
+ <html><head/><body><p style='white-space:pre'>输出格式。</p></body></html>
+
+
+
+ <html><head/><body><p style='white-space:pre'>Target device.</p></body></html>
+ <html><head/><body><p style='white-space:pre'>目标设备。</p></body></html>
+
+
+
+ Clear list
+ 清空列表
+
+
+
+ <html><head/><body><p style='white-space:pre'>Add CBR, CBZ, CB7 or PDF file to queue.</p></body></html>
+ <html><head/><body><p style='white-space:pre'>将 CBR、CBZ、CB7 或 PDF 文件添加到队列。</p></body></html>
+
+
+
+ Add input file(s)
+ 添加输入文件
+
+
+
+ <html><head/><body><p style='white-space:pre'>Shift+Click to select the output directory for this list.</p></body></html>
+ <html><head/><body><p style='white-space:pre'>Shift+点击 可选择此列表的输出目录。</p></body></html>
+
+
+
+ Convert
+ 转换
+
+
+
+ <html><head/><body><p style='white-space:pre'><span style=" font-weight:600; text-decoration: underline;">Unchecked - 4 panels<br/></span>Zoom each corner separately.</p><p style='white-space:pre'><span style=" font-weight:600; text-decoration: underline;">Indeterminate - 2 panels<br/></span>Zoom only the top and bottom of the page.</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - 4 high-quality panels<br/></span>Zoom each corner separately. Try to increase the quality of magnification. Check wiki for more details.</p></body></html>
+ <html><head/><body><p style='white-space:pre'><span style=" font-weight:600; text-decoration: underline;">未勾选 - 4 格<br/></span>分别放大每个角落。</p><p style='white-space:pre'><span style=" font-weight:600; text-decoration: underline;">半选 - 2 格<br/></span>仅放大页面顶部和底部。</p><p><span style=" font-weight:600; text-decoration: underline;">全选 - 4 格高质量<br/></span>分别放大每个角落。尝试提高放大质量。更多详情请查看 Wiki。</p></body></html>
+
+
+
+ Panel View 4/2/HQ
+ 面板视图 4/2/高质量
+
+
+
+ Use the PDF/EPUB image extraction method from older KCC versions.
+
+Use if standard extraction fails for whatever reason.
+ 使用旧版 KCC 的 PDF/EPUB 图像提取方法。
+
+当标准提取因任何原因失败时使用。
+
+
+
+ Legacy Extract
+ 旧版提取
+
+
+
+ <html><head/><body><p style='white-space:pre'><span style=" font-weight:600; text-decoration: underline;">Unchecked - Automatic mode<br/></span>The output will be split automatically.</p><p style='white-space:pre'><span style=" font-weight:600; text-decoration: underline;">Checked - Volume mode<br/></span>Every subdirectory will be considered as a separate volume.</p></body></html>
+ <html><head/><body><p style='white-space:pre'><span style=" font-weight:600; text-decoration: underline;">未勾选 - 自动模式<br/></span>输出将自动分割。</p><p style='white-space:pre'><span style=" font-weight:600; text-decoration: underline;">全选 - 分卷模式<br/></span>每个子目录将被视为独立的一卷。</p></body></html>
+
+
+
+ Output split
+ 输出分割
+
+
+
+ <html><head/><body><p style='white-space:pre'>Do not process any image, ignore profile and processing options.</p></body></html>
+ <html><head/><body><p style='white-space:pre'>不处理任何图像,忽略配置文件和处理选项。</p></body></html>
+
+
+
+ Disable processing
+ 禁用处理
+
+
+
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - Nothing<br/></span>Images smaller than device resolution will not be resized.</p><p><span style=" font-weight:600; text-decoration: underline;">Indeterminate - Stretching<br/></span>Images smaller than device resolution will be resized. Aspect ratio will be not preserved.</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - Upscaling<br/></span>Images smaller than device resolution will be resized. Aspect ratio will be preserved.</p></body></html>
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">未勾选 - 无<br/></span>小于设备分辨率的图像不会调整大小。</p><p><span style=" font-weight:600; text-decoration: underline;">半选 - 拉伸<br/></span>小于设备分辨率的图像将被调整大小。不保持宽高比。</p><p><span style=" font-weight:600; text-decoration: underline;">全选 - 放大<br/></span>小于设备分辨率的图像将被调整大小。保持宽高比。</p></body></html>
+
+
+
+ Stretch/Upscale
+ 拉伸/放大
+
+
+
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - Disabled<br/></span>Disabled</p><p><span style=" font-weight:600; text-decoration: underline;">Indeterminate - Horizontal<br/></span>Crop empty horizontal lines.</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - Both<br/></span>Crop empty horizontal and vertical lines.</p></body></html>
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">未勾选 - 禁用<br/></span>已禁用</p><p><span style=" font-weight:600; text-decoration: underline;">半选 - 水平<br/></span>裁剪空白水平线。</p><p><span style=" font-weight:600; text-decoration: underline;">全选 - 两者<br/></span>裁剪空白水平线和垂直线。</p></body></html>
+
+
+
+ Inter-panel crop
+ 面板间裁剪
+
+
+
+ <html><head/><body><p>Default EPUB language is en-US.</p><p>Only use if your EPUB reader has problems with English fonts.</p></body></html>
+ <html><head/><body><p>默认 EPUB 语言为 en-US。</p><p>仅当您的 EPUB 阅读器对英文字体有问题时使用。</p></body></html>
+
+
+
+ EPUB language
+ EPUB 语言
+
+
+
+ <html><head/><body><p style='white-space:pre'>Enable special parsing mode for Korean Webtoons.</p></body></html>
+ <html><head/><body><p style='white-space:pre'>为韩国网络漫画启用特殊解析模式。</p></body></html>
+
+
+
+ Webtoon mode
+ 条漫模式
+
+
+
+ Do not rotate double page spreads in spread splitter option.
+ 在分页切割选项中不旋转跨页。
+
+
+
+ No rotate
+ 不旋转
+
+
+
+ Delete input file(s) or directory. It's not recoverable!
+ 删除输入文件或目录。无法恢复!
+
+
+
+ Delete input
+ 删除输入
+
+
+
+ <html><head/><body><p>Invert the page turn direction.</p><p>Usually used with right to left manga but you want to page turn left to right. Spread splitting would still be right to left in this case.</p><p>Will break various features like landscape mode order.</p></body></html>
+ <html><head/><body><p>反转翻页方向。</p><p>通常用于从右到左阅读的漫画,但您希望从左到右翻页。这种情况下分页切割仍然是从右到左。</p><p>会破坏某些功能,如横屏模式顺序。</p></body></html>
+
+
+
+ Invert Direction
+ 反转方向
+
+
+
+ Don't quantize PNG images to 16 colors (4 bit)
+
+This will double file size but preserve all 256 colors (8 bit).
+
+Eink only has 16 shades of gray so you probably don't want this.
+ 不要将 PNG 图像量化为 16 色(4 位)
+
+这会使文件大小翻倍,但会保留全部 256 色(8 位)。
+
+电子墨水屏只有 16 级灰度,所以通常不需要此选项。
+
+
+
+ No Quantize
+ 不量化
+
+
+
+ <html><head/><body><p>When the spread splitter option is partially checked,</p><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - Rotate Last<br/></span>Put the rotated 2 page spread after the split spreads.</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - Rotate First<br/></span>Put the rotated 2 page spread before the split spreads.</p></body></html>
+ <html><head/><body><p>当分页切割选项被部分勾选时,</p><p><span style=" font-weight:600; text-decoration: underline;">未勾选 - 最后旋转<br/></span>将旋转的跨页放在分割页之后。</p><p><span style=" font-weight:600; text-decoration: underline;">全选 - 最先旋转<br/></span>将旋转的跨页放在分割页之前。</p></body></html>
+
+
+
+ Rotate First
+ 最先旋转
+
+
+
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - Disabled</span></p><p>Disabled</p><p><span style=" font-weight:600; text-decoration: underline;">Indeterminate - Margins<br/></span>Margins</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - Margins + page numbers<br/></span>Margins +page numbers</p></body></html>
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">未勾选 - 禁用</span></p><p>已禁用</p><p><span style=" font-weight:600; text-decoration: underline;">半选 - 边距<br/></span>边距</p><p><span style=" font-weight:600; text-decoration: underline;">全选 - 边距 + 页码<br/></span>边距 + 页码</p></body></html>
+
+
+
+ Cropping mode
+ 裁剪模式
+
+
+
+ Default Author is KCC
+ 默认作者为 KCC
+
+
+
+ Default Author
+ 默认作者
+
+
+
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - JPEG<br/></span>Use JPEG files</p><p><span style=" font-weight:600; text-decoration: underline;">Indeterminate - force PNG<br/></span>Create PNG files instead JPEG for black and white images</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - mozJpeg<br/></span>10-20% smaller JPEG file, with the same image quality, but processing time multiplied by 2</p></body></html>
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">未勾选 - JPEG<br/></span>使用 JPEG 文件</p><p><span style=" font-weight:600; text-decoration: underline;">半选 - 强制 PNG<br/></span>为黑白图像创建 PNG 文件而不是 JPEG</p><p><span style=" font-weight:600; text-decoration: underline;">全选 - mozJpeg<br/></span>JPEG 文件小 10-20%,图像质量相同,但处理时间翻倍</p></body></html>
+
+
+
+ JPEG/PNG/mozJpeg
+ JPEG/PNG/mozJpeg
+
+
+
+ Only resize images and preserve original file structure.
+
+Ignores most options besides JPEG quality, color mode, output folder.
+ 仅调整图像大小并保留原始文件结构。
+
+忽略除 JPEG 质量、颜色模式、输出文件夹之外的大多数选项。
+
+
+
+ Light novel mode
+ 轻小说模式
+
+
+
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - Don't use metadata Title<br/></span>Write default title.</p><p><span style=" font-weight:600; text-decoration: underline;">Indeterminate - Add metadata Title to the default schema<br/></span>Write default title with Title from ComicInfo.xml or other embedded metadata.</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - Use metadata Title only<br/></span>Write Title from ComicInfo.xml or other embedded metadata.</p></body></html>
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">未勾选 - 不使用元数据标题<br/></span>写入默认标题。</p><p><span style=" font-weight:600; text-decoration: underline;">半选 - 将元数据标题添加到默认结构<br/></span>在默认标题中加入 ComicInfo.xml 或其他内嵌元数据中的标题。</p><p><span style=" font-weight:600; text-decoration: underline;">全选 - 仅使用元数据标题<br/></span>写入 ComicInfo.xml 或其他内嵌元数据中的标题。</p></body></html>
+
+
+
+ Metadata Title
+ 元数据标题
+
+
+
+ <html><head/><body><p>Combines all selected files into a single file. (Helpful for combining chapters into volumes.)</p></body></html>
+ <html><head/><body><p>将所有选定文件合并为一个文件。(有助于将章节合并为单行本。)</p></body></html>
+
+
+
+ File Fusion
+ 文件合并
+
+
+
+ Force full color images to be saved in lossless PNG format, dramatically increases the filesize.
+ 强制全彩图像以无损 PNG 格式保存,大幅增加文件大小。
+
+
+
+ Force PNG RGB
+ 强制 PNG RGB
+
+
+
+ Auto check various options intended for KOreader wallpapers.
+
+Will also crop images to fill the screen centered.
+ 自动勾选各种适用于 KOreader 壁纸的选项。
+
+还会裁剪图像以居中填充屏幕。
+
+
+
+ Wallpaper mode
+ 壁纸模式
+
+
+
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - 1x4<br/></span>Keep format 1x4 panels strips.</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - 2x2<br/></span>Turn 1x4 strips to 2x2 to maximize screen usage.</p></body></html>
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">未勾选 - 1x4<br/></span>保持 1x4 格条漫格式。</p><p><span style=" font-weight:600; text-decoration: underline;">全选 - 2x2<br/></span>将 1x4 条漫转为 2x2 以最大化屏幕利用率。</p></body></html>
+
+
+
+ 1x4 to 2x2 strips
+ 1x4 转 2x2 条漫
+
+
+
+ <html><head/><body><p>By default, KCC maps the darkest pixel value to pure black (the black point.)</p><p>Extreme black point sets the black point to be the most common dark pixel value.</p><p>Useful when text is black but artwork is gray.</p></body></html>
+ <html><head/><body><p>默认情况下,KCC 将最暗的像素值映射为纯黑(黑点)。</p><p>极端黑点将黑点设置为最常见的暗像素值。</p><p>当文字是黑色但 artwork 是灰色时很有用。</p></body></html>
+
+
+
+ Extreme Black Point
+ 极端黑点
+
+
+
+ <html><head/><body><p>Force Kindle MOBI to be be tagged as EBOK instead of PDOC.</p><p>This may cause USB loaded books to be deleted if you go online after a month offline.</p></body></html>
+ <html><head/><body><p>强制 Kindle MOBI 被标记为 EBOK 而不是 PDOC。</p><p>如果离线一个月后重新联网,这可能会导致通过 USB 加载的书籍被删除。</p></body></html>
+
+
+
+ Force EBOK
+ 强制 EBOK
+
+
+
+ Render vector PDFs to device width instead of height.
+
+Useful if you plan to crop a little off the top and bottom to fill screen.
+ 将矢量 PDF 渲染为设备宽度而非高度。
+
+如果您计划从顶部和底部裁剪一点以填充屏幕,这会很有用。
+
+
+
+ PDF Width Render
+ PDF 宽度渲染
+
+
+
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - BW only<br/></span>Only autocontrast bw pages. Ignored for pages where near blacks or whites don't exist.</p><p><span style=" font-weight:600; text-decoration: underline;">Indeterminate - Disabled<br/></span>Disable autocontrast</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - BW and Color<br/></span>BW and color images will be autocontrasted. Ignored for pages where near blacks or whites don't exist.</p></body></html>
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">未勾选 - 仅黑白<br/></span>仅对黑白页面应用自动对比度。不存在近黑或近白像素的页面将被忽略。</p><p><span style=" font-weight:600; text-decoration: underline;">半选 - 禁用<br/></span>禁用自动对比度</p><p><span style=" font-weight:600; text-decoration: underline;">全选 - 黑白和彩色<br/></span>黑白和彩色图像都将应用自动对比度。不存在近黑或近白像素的页面将被忽略。</p></body></html>
+
+
+
+ Custom Autocontrast
+ 自定义自动对比度
+
+
+
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - next to source<br/></span>Place output files next to source files</p><p><span style=" font-weight:600; text-decoration: underline;">Indeterminate - folder next to source<br/></span>Place output files in a folder next to source files</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - Custom<br/></span>Place output files in custom directory specified by right button</p></body></html>
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">未勾选 - 源文件旁<br/></span>将输出文件放在源文件旁边</p><p><span style=" font-weight:600; text-decoration: underline;">半选 - 源文件旁的文件夹<br/></span>将输出文件放在源文件旁边的文件夹中</p><p><span style=" font-weight:600; text-decoration: underline;">全选 - 自定义<br/></span>将输出文件放在右侧按钮指定的自定义目录中</p></body></html>
+
+
+
+ Output Folder
+ 输出文件夹
+
+
+
+ <html><head/><body><p>Use this to select the default output directory.</p></body></html>
+ <html><head/><body><p>用这个来选择默认输出目录。</p></body></html>
+
+
+
+ Use a more compatible 8 bit PNG instead of 4 bit.
+ 使用更兼容的 8 位 PNG 而不是 4 位。
+
+
+
+ PNG Legacy Mode
+ PNG 旧版模式
+
+
+
+ Rotate 2 page spreads in opposite direction than normal.
+ 以与正常相反的方向旋转跨页。
+
+
+
+ Rotate Right
+ 向右旋转
+
+
+
+ <html><head/><body><p>In virtual panel mode:</p><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - Horizontal<br/></span>First two panels are the top panels.</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - Vertical<br/></span>First two panels are the side panels.</p></body></html>
+ <html><head/><body><p>在虚拟面板模式下:</p><p><span style=" font-weight:600; text-decoration: underline;">未勾选 - 水平<br/></span>前两格是顶部格子。</p><p><span style=" font-weight:600; text-decoration: underline;">全选 - 垂直<br/></span>前两格是侧边格子。</p></body></html>
+
+
+
+ Vertical 4 Panel
+ 垂直 4 格
+
+
+
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - Autodetection<br/></span>The color of margins fill will be detected automatically.</p><p><span style=" font-weight:600; text-decoration: underline;">Indeterminate - White<br/></span>Margins will be untouched.</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - Black<br/></span>Margins will be filled with black color.</p></body></html>
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">未勾选 - 自动检测<br/></span>边距填充颜色将自动检测。</p><p><span style=" font-weight:600; text-decoration: underline;">半选 - 白色<br/></span>边距将保持不变。</p><p><span style=" font-weight:600; text-decoration: underline;">全选 - 黑色<br/></span>边距将填充黑色。</p></body></html>
+
+
+
+ W/B margins
+ 白/黑边距
+
+
+
+ Erase rainbow effect on color eink screen by attenuating interfering frequencies
+ 通过衰减干扰频率来消除彩色电子墨水屏幕上的彩虹效应
+
+
+
+ Rainbow eraser
+ 彩虹消除器
+
+
+
+ Replace JPG with lossy WebP and PNG with lossless WebP. This includes the JPG Quality.
+
+Ignored for Kindle EPUB/MOBI and all PDF.
+
+Makes a large difference in filesize for color content.
+
+Not very useful for BW content due to minimal filesize improvement compared to PNG and greater resource usage.
+ 用有损 WebP 替换 JPG,用无损 WebP 替换 PNG。这包括 JPG 质量设置。
+
+对于 Kindle EPUB/MOBI 和所有 PDF 会被忽略。
+
+对彩色内容的文件大小影响很大。
+
+对黑白内容不太有用,因为与 PNG 相比文件大小改进最小但资源消耗更大。
+
+
+
+ WebP
+ WebP
+
+
+
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - Split<br/></span>Double page spreads will be cut into two separate pages.</p><p><span style=" font-weight:600; text-decoration: underline;">Indeterminate - Split and rotate<br/></span>Double page spreads will be displayed twice. First split and then rotated. </p><p><span style=" font-weight:600; text-decoration: underline;">Checked - Rotate<br/></span>Double page spreads will be rotated.</p></body></html>
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">未勾选 - 分割<br/></span>跨页将被切成两个独立的页面。</p><p><span style=" font-weight:600; text-decoration: underline;">半选 - 分割并旋转<br/></span>跨页将显示两次。先分割然后旋转。</p><p><span style=" font-weight:600; text-decoration: underline;">全选 - 旋转<br/></span>跨页将被旋转。</p></body></html>
+
+
+
+ Spread splitter
+ 跨页分割器
+
+
+
+ <html><head/><body><p><span style=" font-weight:700; text-decoration: underline;">Unchecked<br/></span>Maximal output file size is 100 MB for Webtoon, 400 MB for others before split occurs.</p><p><span style=" font-weight:700; text-decoration: underline;">Checked</span><br/>Output file size specified in "Chunk size MB" before split occurs.</p></body></html>
+ <html><head/><body><p><span style=" font-weight:700; text-decoration: underline;">未勾选<br/></span>Webtoon 最大输出文件大小为 100 MB,其他格式为 400 MB,超过则会分割。</p><p><span style=" font-weight:700; text-decoration: underline;">已勾选</span><br/>在"分块大小 MB"中指定输出文件大小,超过则会分割。</p></body></html>
+
+
+
+ Chunk size
+ 分块大小
+
+
+
+ The JPEG quality, on a scale from 0 (worst) to 95 (best).
+
+Default is 85 for most devices besides Kindle Scribe and Colorsoft, which are 90.
+
+Higher values are larger and higher quality, and may resolve blank page issues.
+ JPEG 质量,范围从 0(最差)到 95(最佳)。
+
+大多数设备默认为 85,Kindle Scribe 和 Colorsoft 为 90。
+
+值越大文件越大且质量越高,并可能解决空白页问题。
+
+
+
+ Custom JPEG Quality
+ 自定义 JPEG 质量
+
+
+
+ <html><head/><body><p>Set a custom gamma correction.</p><p>1.0 is default (disabled).<br/>< 1.0 makes the image brighter.<br/>> 1.0 makes the image darker. </p><p>1.8 was the default in KCC 9.1.0 and earlier.</p><p>Use if you want to make midtones darker.</p></body></html>
+ <html><head/><body><p>设置自定义伽马校正。</p><p>1.0 为默认(禁用)。<br/>< 1.0 使图像更亮。<br/>> 1.0 使图像更暗。</p><p>1.8 是 KCC 9.1.0 及更早版本的默认值。</p><p>如果您想使中间调更暗,请使用此选项。</p></body></html>
+
+
+
+ Custom gamma
+ 自定义伽马
+
+
+
+ <html><head/><body><p style='white-space:pre'>Enable right-to-left reading.</p></body></html>
+ <html><head/><body><p style='white-space:pre'>启用从右到左阅读。</p></body></html>
+
+
+
+ Right-to-left (manga)
+ 从右到左(漫画)
+
+
+
+ <html><head/><body><p style='white-space:pre'>Disable conversion to grayscale.</p></body></html>
+ <html><head/><body><p style='white-space:pre'>禁用转换为灰度。</p></body></html>
+
+
+
+ Color mode
+ 彩色模式
+
+
+
+ <html><head/><body><p>Default Title</p></body></html>
+ <html><head/><body><p>默认标题</p></body></html>
+
+
+
+ Default Title
+ 默认标题
+
+
+
+ Resize cover to exact device resolution by center-cropping to aspect ratio first.
+May crop top/bottom or left/right depending on source aspect ratio. Not implemented for Kindle Scribe.
+ 通过先按宽高比中心裁剪,将封面调整为精确的设备分辨率。
+可能会根据源宽高比裁剪顶部/底部或左侧/右侧。不适用于 Kindle Scribe。
+
+
+
+ Cover Fill
+ 封面填充
+
+
+
+ <html><head/><body><p>Attempt to crop main cover from wide image.</p></body></html>
+ <html><head/><body><p>尝试从宽幅图像中裁剪主封面。</p></body></html>
+
+
+
+ Smart Cover Crop
+ 智能封面裁剪
+
+
+
+ Shift first page to opposite side in landscape for two page spread alignment
+ 在横屏模式下将第一页移到对侧以对齐双页跨页
+
+
+
+ Spread shift
+ 跨页偏移
+
+
+
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - 2 page landscape<br/></span>2 viewports for left and right pages</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - 1 page landscape<br/></span>A single centered viewport for 1 page</p></body></html>
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">未勾选 - 双页横屏<br/></span>左右两页各一个视口</p><p><span style=" font-weight:600; text-decoration: underline;">全选 - 单页横屏<br/></span>单页居中显示一个视口</p></body></html>
+
+
+
+ 1 Page Landscape
+ 单页横屏
+
+
+
+ Keep any original ComicInfo.xml files.
+
+Keeping this file may crash some readers like the Kobo native CBZ reader.
+ 保留所有原始 ComicInfo.xml 文件。
+
+保留此文件可能会导致某些阅读器崩溃,如 Kobo 原生 CBZ 阅读器。
+
+
+
+ Keep ComicInfo.xml
+ 保留 ComicInfo.xml
+
+
+
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - Main Drive<br/></span>Use dedicated temporary directory on main OS drive.</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - Source File Drive<br/></span>Create temporary file directory on source file drive.</p></body></html>
+ <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">未勾选 - 主驱动器<br/></span>在操作系统主驱动器上使用专用临时目录。</p><p><span style=" font-weight:600; text-decoration: underline;">全选 - 源文件驱动器<br/></span>在源文件所在驱动器上创建临时文件目录。</p></body></html>
+
+
+
+ Temp Directory
+ 临时目录
+
+
+
+ Use legacy panel view method from KCC 6.
+
+Kind of works on firmwares 5.19.2 (before revert) and 5.19.3+
+ 使用 KCC 6 的旧版面板视图方法。
+
+在固件 5.19.2(回退之前)和 5.19.3+ 上可以工作
+
+
+
+ Legacy Panel View
+ 旧版面板视图
+
+
+
+ JPEG Quality:
+ JPEG 质量:
+
+
+
+ Hold shift while clicking for a low quality preview.
+ 按住 Shift 键点击可进行低质量预览。
+
+
+
+ Label Spreads
+ 标记跨页
+
+
+
+ Support me on Ko-fi
+ 在 Ko-fi 上支持我
+
+
+
+ <html><head/><body><p style='white-space:pre'>Shift+Click to edit directory.</p></body></html>
+ <html><head/><body><p style='white-space:pre'>Shift+点击 可编辑目录。</p></body></html>
+
+
+
+ Metadata Editor
+ 元数据编辑器
+
+
+
+ Humble Bundle Referral
+ Humble Bundle 推荐
+
+
+
+ Toggle Easy/Expert Mode
+ 切换简易/专家模式
+
+
+
+ Easy/Expert Mode
+ 简易/专家模式
+
+
+
+ <html><head/><body><p>Warning: chunk size greater than default may cause<br/>performance/battery issues, especially on older devices.</p></body></html>
+ <html><head/><body><p>警告:分块大小大于默认值可能会导致<br/>性能/电池问题,尤其是在旧设备上。</p></body></html>
+
+
+
+ Chunk size MB:
+ 分块大小 MB:
+
+
+
+ Greater than default may cause performance issues on older ereaders.
+ 大于默认值可能会在旧电子阅读器上导致性能问题。
+
+
+
+ Hover over each option/button to see an explanation! Options can be partially checked or fully checked!
+ 将鼠标悬停在每个选项/按钮上可查看说明!选项可以部分勾选或完全勾选!
+
+
+
A\
+dd directory con\
+taining JPG, PNG\
+ or GIF files to\
+ queue.CBR,\
+ CBZ and CB7 fil\
+es inside will n\
+ot be processed!\
+
\x07\x00\x00\x00\x0ama\
+inWindow\x01\x03\x00\x00\x00\xa6\x00<\
+\x00h\x00t\x00m\x00l\x00>\x00<\x00h\x00e\
+\x00a\x00d\x00/\x00>\x00<\x00b\x00o\x00d\
+\x00y\x00>\x00<\x00p\x00 \x00s\x00t\x00y\
+\x00l\x00e\x00=\x00'\x00w\x00h\x00i\x00t\
+\x00e\x00-\x00s\x00p\x00a\x00c\x00e\x00:\
+\x00p\x00r\x00e\x00'\x00>\xad\xf8\xb8\x08\xc7t\
+\xc2\xa4\xcf\x00\xc7|\x00 \xbc\xc0\xd6X\xc7D\x00 \
+\xbeD\xd6\x5c\xc11\xd6T\xd5i\xb2\xc8\xb2\xe4\x00.\
+\x00<\x00/\x00p\x00>\x00<\x00/\x00b\x00o\
+\x00d\x00y\x00>\x00<\x00/\x00h\x00t\x00m\
+\x00l\x00>\x08\x00\x00\x00\x00\x06\x00\x00\x00`
\x07\x00\x00\x00\x0amainWindo\
+w\x01\x03\x00\x00\x00\x8c\x00<\x00h\x00t\x00m\x00\
+l\x00>\x00<\x00h\x00e\x00a\x00d\x00/\x00\
+>\x00<\x00b\x00o\x00d\x00y\x00>\x00<\x00\
+p\x00 \x00s\x00t\x00y\x00l\x00e\x00=\x00\
+'\x00w\x00h\x00i\x00t\x00e\x00-\x00s\x00\
+p\x00a\x00c\x00e\x00:\x00p\x00r\x00e\x00\
+'\x00>\xcd\x9c\xb8%\x00 \xd6\x15\xc2\xdd\x00.\x00\
+<\x00/\x00p\x00>\x00<\x00/\x00b\x00o\x00\
+d\x00y\x00>\x00<\x00/\x00h\x00t\x00m\x00\
+l\x00>\x08\x00\x00\x00\x00\x06\x00\x00\x00N
Default E\
+PUB language is \
+en-US.
Onl\
+y use if your EP\
+UB reader has pr\
+oblems with Engl\
+ish fonts.
\
+body>\x07\x00\x00\x00\
+\x0amainWindow\x01\x03\x00\x00\x00\
+Z\x00<\x00h\x00t\x00m\x00l\x00>\x00<\x00\
+h\x00e\x00a\x00d\x00/\x00>\x00<\x00b\x00\
+o\x00d\x00y\x00>\x00<\x00p\x00>\xae0\xbc\
+\xf8\x00 \xc8\x1c\xba\xa9\x00<\x00/\x00p\x00>\x00\
+<\x00/\x00b\x00o\x00d\x00y\x00>\x00<\x00\
+/\x00h\x00t\x00m\x00l\x00>\x08\x00\x00\x00\x00\
+\x06\x00\x00\x005
Use this\
+ to select the d\
+efault output di\
+rectory.
\x07\x00\x00\x00\x0am\
+ainWindow\x01\x03\x00\x00\x00\xc0\x00\
+<\x00h\x00t\x00m\x00l\x00>\x00<\x00h\x00\
+e\x00a\x00d\x00/\x00>\x00<\x00b\x00o\x00\
+d\x00y\x00>\x00<\x00p\x00>\xac\xbd\xac\xe0\x00\
+:\x00 \xae0\xbc\xf8\xac\x12\xbc\xf4\xb2\xe4\x00 \xd0\
+p\x00 \xcc\xad\xd0l\x00 \xd0l\xae0\xb2\x94\x00\
+<\x00b\x00r\x00/\x00>\xd2\xb9\xd7\x88\x00 \xad\
+l\xd6\x15\x00 \xae0\xae0\xc5\xd0\xc1\x1c\x00 \xc1\
+1\xb2\xa5\x00/\xbc0\xd10\xb9\xac\x00 \xbb8\xc8\
+\x1c\xb9|\x00 \xc7|\xc7<\xd0\xac\x00 \xc2\x18\x00\
+ \xc7\x88\xc2\xb5\xb2\xc8\xb2\xe4\x00.\x00<\x00/\x00\
+p\x00>\x00<\x00/\x00b\x00o\x00d\x00y\x00\
+>\x00<\x00/\x00h\x00t\x00m\x00l\x00>\x08\
+\x00\x00\x00\x00\x06\x00\x00\x00\x97<\
+head/>
\x07\x00\x00\x00\x0ama\
+inWindow\x01\x03\x00\x00\x00\x86\x00<\
+\x00h\x00t\x00m\x00l\x00>\x00<\x00h\x00e\
+\x00a\x00d\x00/\x00>\x00<\x00b\x00o\x00d\
+\x00y\x00>\x00<\x00p\x00>0\xc70\xd50\xa9\
+0\xeb0\xc80nQ\xfaR\x9bQH0\xd50\xa9\
+0\xeb0\xc00\x92\x90xb\x9e0Y0\x8b0_\
+0\x810kO\x7fu(0W0~0Y0\x02\
+\x00<\x00/\x00p\x00>\x00<\x00/\x00b\x00o\
+\x00d\x00y\x00>\x00<\x00/\x00h\x00t\x00m\
+\x00l\x00>\x08\x00\x00\x00\x00\x06\x00\x00\x00X