From a053b3ea9ff28f57976451e9bf6e798319ddd23a Mon Sep 17 00:00:00 2001
From: Ryuga6 <2067331852@qq.com>
Date: Wed, 14 Oct 2026 02:10:33 +0800
Subject: [PATCH] Add multi-language i18n support (Simplified Chinese,
Japanese, Korean) (#1453)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* Add multi-language i18n support (English, Chinese, Japanese, Korean)
- Add i18n.py module for translation management via QTranslator
- Add Simplified Chinese (zh_CN), Japanese (ja_JP), and Korean (ko_KR) translations
- Integrate translation files into Qt resource system (KCC.qrc / KCC_rc.py)
- Add language switcher button in the top button bar of main window
- Language setting persists via QSettings
- Dynamic text updates work correctly after language switch
- Support %1, %2, %3 placeholders via tr_arg() helper function
- KCCGUI and KCCGUI_MetaEditor now inherit QObject for tr() support
* Complete Japanese/Korean/Chinese translations + fix language switch issues
- Fill 61 missing Japanese translations (tooltips, 3-state checkboxes, etc.)
- Fill 61 missing Korean translations (tooltips, 3-state checkboxes, etc.)
- Fill 6 missing Chinese translations
- Fix language menu: use QActionGroup for exclusive (single-select) checkmarks
- Fix jobList initial tips: refresh translations on language switch by
updating label text directly (preserves message order and user-added entries)
- Add PROJECT_I18N_README.md developer documentation
* Replace emoji language icon with PNG globe icon
Fixes PR review feedback from axu2: the emoji character doesn't render on Windows 7 (no emoji font support). Replaced with a PNG globe icon from Wikimedia Commons (CC license), loaded via Qt resource system for consistent cross-platform rendering.
* Fix RuntimeError when switching language: re-fetch labels from jobList
Previously, QLabel references were saved directly, but the underlying
C++ objects could be deleted by Qt, causing RuntimeError on access.
Now we save only source strings and re-fetch labels from jobList
items when updating, with try/except as a safety net.
* Use text label for language button instead of PNG icon
Replace the globe PNG icon with a plain text button (' 文 A ')
so its color automatically follows the system light/dark theme,
per review feedback. Removes icons/language.png and its QRC entry.
* Finalize i18n: retranslate jobList messages and translate CLI output
- Add source= to 16 GUI addMessage calls so already-shown messages retranslate on language switch
- Translate comic2ebook.py conversion/CLI messages via QCoreApplication.translate('KCCGUI', ...)
- Clear 29 unfinished WorkerThread translations (context unified to KCCGUI)
- Guard apply_language when QApplication is not yet created
- Trim dead imports and redundant code
* Avoid duplicated source strings: translate inside addMessage
Replace the self.tr/translate + source= pattern (same string written twice) with
QT_TRANSLATE_NOOP('KCCGUI', ...) at call sites; addMessage now translates internally
and stores the source text for retranslation on language switch.
- Drop the source parameter from addMessage; simplify signal to 3 args
- Include comic2ebook.py in lupdate (20 CLI/conversion messages)
* Add translation maintenance workflow
Add gen_translation_files.sh/.bat, TRANSLATION.md, and a README pointer; remove the superseded PROJECT_I18N_README.md.
* chmod +x
---
README.md | 4 +
TRANSLATION.md | 126 +
gen_translation_files.bat | 29 +
gen_translation_files.sh | 35 +
gui/KCC.qrc | 7 +-
kindlecomicconverter/KCC_gui.py | 364 +-
kindlecomicconverter/KCC_rc.py | 10209 +++++++++++++++++++++++++-
kindlecomicconverter/comic2ebook.py | 49 +-
kindlecomicconverter/i18n.py | 52 +
translations/kcc_ja_JP.qm | Bin 0 -> 55173 bytes
translations/kcc_ja_JP.ts | 1536 ++++
translations/kcc_ko_KR.qm | Bin 0 -> 55193 bytes
translations/kcc_ko_KR.ts | 1536 ++++
translations/kcc_zh_CN.qm | Bin 0 -> 50583 bytes
translations/kcc_zh_CN.ts | 1536 ++++
15 files changed, 15272 insertions(+), 211 deletions(-)
create mode 100644 TRANSLATION.md
create mode 100644 gen_translation_files.bat
create mode 100755 gen_translation_files.sh
create mode 100644 kindlecomicconverter/i18n.py
create mode 100644 translations/kcc_ja_JP.qm
create mode 100644 translations/kcc_ja_JP.ts
create mode 100644 translations/kcc_ko_KR.qm
create mode 100644 translations/kcc_ko_KR.ts
create mode 100644 translations/kcc_zh_CN.qm
create mode 100644 translations/kcc_zh_CN.ts
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 0000000000000000000000000000000000000000..ba9ee99f28c526e5f2dbbc1e3491183b7e21104d
GIT binary patch
literal 55173
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
xWh
+
+
+
+ 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 0000000000000000000000000000000000000000..0b02a61886a9d604b19c0f6121e428e15fdabd90
GIT binary patch
literal 55193
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
J1_Q_b|1ZYk*MI;3
literal 0
HcmV?d00001
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 0000000000000000000000000000000000000000..10ed9111150354f7c6dbd68510071b5d76a563e4
GIT binary patch
literal 50583
zcmdsg3w%`7wf;`Xb23Q)5j9mjph&m`Xx`@Hmsq1Y%4`n3z0cZvuf6tK-&%XEsz*Cd{n^`J+WpMT(|@qx&c}X#4`VEIlc%Fru3;?u
z7mTfRFm}>mmbv#JV+-D3nU8(ISaA)@{B4l2$LiSBS$4+0@&|Uxw;pF~=LKx}t+z0i
zTf$bJ{5!@bzr|K9|98fwoyx2-zCU>qvpxDJ#=fzLt@l5`*h4>KeLt^eY}S6Z>x`2a
z%V+G~Kg|FI=dvg7+Qitt7WU%XA2as7Z?HFh_cg|5exJSh;bz8aSz7wE_ZhoyN18PC
zQpRq-KJBbdwEOyx(`NtAHoUhz?cO~Fj7=F#dtvxx#t#{NA!{n@omjD7o*
z^yjB-W~}Xn^xxi@!Pp~zPJiPb{C(M_>2Gd-1AmuJn*Q34FfW;tY7afh*qvuj@?KoT
z*m-}S)N^JXV+(&gY2*2`89Q)f(v^q)2>N$U`q6ZJUS2%uM^|*>`F)dq`Q}-SegAip
zUhez~W8W#7bSN{7dA)4XU;g&L=(lgu-|wzwEbn)d-tB)D>vLm9-Yl%^v@d0x`A3Xv
za4=&Y+sD|~9?n=Wgz=p+KciB?-*c-nmYsGj+JBU>dY=j3|93{O=VZ*|M${
z%-E50JD%Sle%@1*v8(J=#tNrr+_VqIWp*P%gj6-
z>%CxR=Ipm5%2Dce@xXaAvL_MEkGYmFaB(ozn8mtHS@o*f&F&n{U88
zmwYGlhErBDcG}|1ueA9Y`&=ONtHEa(JAYZ`{V%oSeN~wce(MIz_r;k{?!rU+
zS21trUXoR?rWWJ+QP$)^%uDk_S*Kg@{GP|MDqaCUm;P^7)gL}a|BkHMFYgBZKh9eI
z74)C8D{JM$n;E-nOP2jUe82kbto4`pFpuYC-Eevf_$)1J$hwcQx^-E*XM_H-?`C~p
zdY-X4OR}DQ_+|9lmG$cXK8$(Xnr-g+A!C-V?9<+;X6)35vd=ng8pgjeyJRl-=Dw!v
zMSJeT{;10y_#WnQ>W1uFKf?Ole|z>l>MH>MF3&mhtKS5FJ)g6{HUsbfSPx(=QiYc52D}9wK>=CeVMUsH90@I1J9pvbIxyGdyBEVT{(XlzYXE{vn(
z)ZA->)r{Rxn!D%cFEjSVDY;+w{S*7WH}_jVDPZi(|IGc#KP$0rQ*(cLC%#|)h1}PB
z${71@ZSDsq^fP5@?vaP~F*f@VQx5H`1&^9aav#Th`%UFPaigC(rq35(-DcisTJi+u
z@$R!sYrckd_5WtFz9KWW>K`WM%wOR>Lnh_vUo&Pd5_Hvd!I0Ue*@?!Y{@f!i1*xle%`db1&l50%$xq|W_o#AmpF1F;&
z{qEJ+N5gsLPhr2@AIQ6S1D?;X&8xZa0mz5T^PH{w7&8szU3(UOUYC`3ee(>)>?`y3
zy!tZc|GB*T7u?9$J#yX?Z#ckL^?85(LIwE5k@wD}cs~Dd-p8kZ3+t1gH}da($o2m)
zPj{z*-fr_5`)`5#{DHaj&34AN|I@ti3wZBc@0l;Y>`i<=%WV7UTWEL0e8~l9SNe!K
z$}i!9SOo
z-#N3Mu`m7H{N7~n_x?8XM}GueQ@@;_HOmV*@L2w|GhW3y{dfM!h1hp@d?&xC-~o*D
z&-tHwyatEDukz&gED9XXH0wCWAgp
zLH?r$@Z3Fr$p6_nA2W92U-SQaANpHyLqVEd!MN-NW;^)be4yZz{{eq}#Zz#G7tde(
zWPwz*1)pDBu=0xwA;*=1j)gBXcI)p7wq9`~V^;Z$ftqA1uuc#(A|ZfuX`MFEK<1ivb!)ZZx=3qxQwx-
zg@sZ3Ti7QT6b`S)djl61?)xD=U-|9AFXx2O{*A(WuAho|T~qkIf*Fi`{@TKi_hX#*
zF9I=-eR&cNDifQ{Dn^R%@BAG6$+GDG*%g)2?D^UB>#Ew?~6&d02=k
ztczX5X5se;{tL1&t7I1Z=Vo5~?O{>oWM$070;~t0y6|a;|L)+=d(n@Db>njvJBwYw
zO4%kn5k!C0tvj|K#5*ovn?`bO`PlW49VNLG2eKA4^=hvW$8kBMzTWx?q!3?DP7&=T=!9)lwuNDSn63r%1Imms)CTY?e#w
z8!Sr1B?UtPml6(p{qC~FIUD|T=S<94W33W&`L|3Ty2&svu46whJxavU>4-QarPCWp
zHXF|#r`hNR_xM>S^MNnj_}@>Qgm*c0ep+RCVmUn#$6a_X36~k$NWBB#yEV)Tj;m+V
zkk92DNz-|3>jdVq+w1T2DQ?9-tGddmv)U^D>2k%dbDXm}f$P>-Yw9Iez~8Hc!rp*i
z>I#G;(JVYOk?kHlE)#8GeV9g?YzvdIo&C%>MWt8(h4tcF7k-9m2^5Pft#@EgJEqR~
zq%`<=OSbKl?Vj>Diu#j>QiMjyNT0QBzT5IqJJ1dkt7fChEX`4gjJheVGl$@E~T={;;c?0DQAd&
zoEN)uYlkEc(+2TZF!rK+s$kaE7t8JwcxWYC)Pa6=}qH>)(+}mHU%)
zHv`?(#u&uwk0_x~G?=Q(h@jH-i~dT(SZg6`eON>%m-3SR?X4eKi+YaO?if0->-QsR
zgYWkqc71iYXz0gS)V0ix{UAACRH|*|w5WWSbb>WpI01V2PKMu843iYPH#wYMST4dMir1E9z|Wq
zIbo?Y;EMJr{zw>G!q=&U@JKkKI66lOV_UKTw`JWfd9pX$*U;8nJe<3?pIKbFw>%)5
z>~Fgd_2ms7?kXrxZ^<9d^(?c$Egu?w-Im2Htvee%wvUH%4a0F8hqEGpO)B*SqG3hi
zzXpO4Y}v5I8I45nlg^T`qDacdpwHoV@bAi`n!rW{Y~b)qPDKhjLO7LtzJ5zr6#q&t
zkK*bEZzQs;oNP=R_7kmbS?fM-cuq{cb9&(1=!Nt%(Z8VMeFX|w8#GH&~LY|
zCeAX9r_(r|mOzx#)fsZQC5OLLEQzhk)Ou*DH_dAz+CkGfvo
zu+#?`7wDt03n>;EH5gT9$8)3@jCD)2*#53;+VRWY0a_qiw##|N)~=J7MLwzZ+n3Gk
zC^QhiEE(~UfZL73TXBT@Etq&E6u}C0DpHgVZb__+aC|QiA0nhun}mb8J4<0cfg<6
z!8GVZ^I6?Uk$<@Nt&X*F<)%%Bc{#IoeqE&`WS6?50wHXvutZ(=k6Mqjl~;T(4CgxE
zNEG1KHo0=>3ymMrJ9H9@YaM=nAOgn~H*M;@YHzeW-Tv1-tYhoCm$w{gd}VKR#5~LzKWr+v
z=^5q0q2D$ta@Un>>|y)chAC*R4fq0~aG)z9(Sd5IYgk*udE4XYRU{|2V>kAmTM3s*
zE2B6@+yTkyaCJ)#sY~e--;`kAdLt!#BZL$P9_)2zAkaN}`r1Dne1KHeaF33szfi2|i
zfz}C%LlAThr`P9AvV3OaX`wIEDJhPK#8t_l)_SXK(P|XG&$E55{X;JH^;II?9r`gw
znohrM{*`;6BfWjm$eDUy3u-|%9m{<3IXCx#O(FrzwbxxHH7njwr{HqTK-3k9hLq1I
zl6UI*cbdr-z*)^CB7(LHy-sf*)3TCsTPRH0jX#
zg=|agqAYnA(mB#OLO9duKaz&uxi+D9J!^E=Wo2a&WY^MwUzwRq3pmyAs<`>qJ3UG7
zRG-{%BEjXUdKr`Cvy${a5t?-cI&Pt2G;ZW1ESim6(ZH6nWkQ9~
zXF0|d4NI4e%@u|w0h!6?)fWQCpy`C(UZhVx7v#`f3TqXcQxy6W?%5+N8t|$E0lg
z6Sm7bD%PX9I>Au&W_P94l^oCi3zJH25-B%qK*6*?6hl8+86*gh9*8r6RZ33N?j
zD(^LZxcf8=&cq?0`Sf$$%l>chPiC|8^x>4%g+h2)XEa31B{Vl~e*z>jnP$&7nVLcl
zmqLeRrD^tgiG!Lo5L}L>bf1T4!*YGpkcMHPBl!a!3SMbp(zbVeGzG*hA;28
zv(bg3g?aU9Z4k3bf>+8`G;wsG1#>v_8wS&;0z5tyfwPkvpK8fof5_TquS_6+
zhN0V#f}RzKiM~LnI~>Hm9YuE$;ip*ExIja_o=lPlAFN=9wp0#eKbO>rwW
zWf`|%B+*w{l7%^+TJB*xwrzWt3&r_>fam##%hS6oP3LsHH29$X#h&fl4mZ={(bMJm
z20gP*eM3mOJPP^KkQrV8n;5$pA_|TV_UVbMk$^q>qWQu
z63(;S<&K^nN3vr~eR|tpZTt1<%Tu3T5{(2B_tY%SX4eGu`gdF%&DQet-KPz{&EFbh
znA!Eh0w;5Db_JaWu7C#kNL)N5gYhQ=i>t+d5`>yWy~gMQ*e{iemWg!5wHo}>?zi+-
z1)^1BR0$K1k=SrXJoHB}1j+Mt9x*_@o6}T$u9kxcsG_YIRkm`pH-L)e
z>7>iZCactzw#PZ9CR3rKff3lMz*VHRL0`bpDb6^8SjSRr;>X1?Wig%NOx4FVRlJFy
zU4>3k9GZz!G|xB?rgo*;B>FZ?*n+BgP2G0s($&T7D!vy-ZNrO4!>~84+2W^-Bj=N1
zgZb26X0bm%oR&Dl`iK^D!`ZF?2f}VqCz2cfx}HNvkUxgG!c71z_;+{YN
z5}S{bW<}^pqamaP8=vTXY15|NhvocT4~>`!UvauM@NMvYf_}=)@&e^OI)};uJMQf_
z5U^YZyrTF6QMZRwzix?(aC#r$EX;Y2K|d>#ngH!I0oZ|vBkYur9)UxSnu4>Ni@Q5%
zzOjFb2wtJ#51-k7chk;Y#Wy{-`>nlu4OG-v{g`6XJ~`lCLTD^zzt0OK8_1;?I#&_H
zK?TP?0fv`Hfm}ogY6?S6j3S`S{R?>>onAw~-ITX}uKyY!I{=fv|S*;|zONa)lgW5AEhPj((7WRRXDt`&BAnk@0MBfN?q`7$ggl!RO>+pqfcz_Gw-f_74bzMhH
zy5#NR=M2Z09R7at8bWpN8D*4J5j}E#yV?CYF5zhs*a+$w-`0TF1-h#O@uL>3
z3e)5TWJjP~ACtCBAADYU&ppqc*>o;QT8VF$GpT7OvpA>Y?*_Pw@b`{aH>RzF(?_4c
z^BTZ2fP@MCA@>K@68qqu1!5?zY*qbONM`if95_-{p|A}H_C
z&Ki7ti+|f+TW^!=J=w&;%%mv}M^PGj8iY4j*Gp;v142uUcq2GwvCfz>uvQqdrOyND
zi)B=uze4He!ly#jFUm}#)r+Gl7aZV8rh(~mcCtzzom4SEBk@S#5Kppx#ylBkC+&Z%
z)6fh*d>xF6r8q_Ld^P
zKXY2H7T7Pd(9iBiM&N}Rd|z420|PkY85nGx-4*g;wTOZEsl{z`57-TsGGr-42iA{o
zL&@jujst)#VF*p~+CVqJrY3ewI2{@W5ax8dfWteLE(e);Di|&h
znZ#ww(M}?L3iH(Fbh3>7bb;aN;_%$W1_jhT3AO|pr>o6`EEA+9X>L}V$HV@osEx-$
z`AyW?-WTUGI8ANai^I7G2CI5dd6iL8@h1e1Y}nsr0k3e!zN*D)E?RJr@?f;sdBF&z
zBYEy*CjT3M_SlE47$Jgs00Th|5kvqD_~E%I#s3t{!Xbj2p4qXD+*us_MG%XDH+R^*
zewV_}1Ywi;;b6e=5hAVx2n>54ZNL7t
zU3b0yjr(8UzZHMt-`Bss55K&5>!WYp`f%d5%1~N1<>}q!G_7s2+Ul3APJC>tdmf!g
zq}$rKUTcUTIipFat1&&5%sJsri;U9cr<0o0mbLv}5eP8&{-*qf(+o>cN)wA&r-Mn?
z%Z%Xwn%dgu@Q&6|p$n3lGn^hRmTw%oM)?aD&<0zJN$$$#LBspXn@Anh^c?Q9lUL0I^0+2Jq-G4hF!(}q@n!Scta4s^uj}SpGY5~j9f5OgS)MAxG%X~Z7JR|&
zv_8cNmk~~2haY`PbFt_ynL{Du@V
zup(Dx}K&gMs&ri|qF4v>wa4Q|BTTudxNzJEDSo2K3YxE!(#17E2HFSvw>=8!11
z593oULv042{c`+AeCdiJoCHjy@fh*#sHMNpx`A(vv0>;w2&X;-L^^OxD*28Wqx
z$44WG_aifyYoZ1j-a`Qt9GMt3Ygh6JvbbM7w%^A}cr!r1o2)#RhE9+O5UmkxghaNj9aF
z)H^Ic`PxHDDaU$ku<9cbheh2r4I!Ak3OrVp02#efJ)HkO$q@{WLJ6C&(otvuorq@W
z(0?jyBSsLy7+m;CpNr$E1GE!oxIuj}o6DrekCdSOuUkJN5p0L$w>P@S7@gDD6AgBD
zbW9fXI9M-5LGja!?$AL%%__lhoy
z5^QZY?9U=}(dAWq2>POU3lQs&{Lvn#YU-uv)jX2Z0!xpBHn}=$PcH6(itUBQB#;=c
z0H^3-mhD~k;Sm6PNhY0!Ew9B}vSAIjtdPozJeY%$|?U&Rvu#=$mG3+nOn_+I=`$Jba4%
zeOuP8w-_j#VJG(q1fJxG0;2%l#CMZ}u!|nY(H3k5;WfmpH1QnC)f}%CM77Sqh|Pi-
zBsAw3tV=UazSas6lb?e2BIjh=?U>UCITbjYw7*JlT9vSc`bbVy%G_lo(n1oZ6{QvB{AbB|B@2%tD$L4*p%v~D
z``eJzG4<&TQfA3E(gL4x@Hl#bd6Vax>vs9;L`ZZK;`|+*Bz4j@3nS6lf75gJKEClZ
zLy?Tf5UVBxsJoK~byjMU#Fll_8hfApeI8oNpW?mXY0(>5&UC{7(~!^`{-!tu3V^Q0
z6w$Y_zonTs!*NBfQcPY4Yx#NaK>LvGl#v|#U4l=~=l@;+g#iEY`wrT>V|{4TovLSw
zfg+CxUy|N|YbLEb%xM<18~dR*(ozvMNqTc-x8BxJWoWC>;$_vo*Bux;u`xoXFjuxU
zu3X6VXZCJtA9CH?KBR^u<4KJT(i&jM)
z_bA+cNd*MNLBQofyksw<*5ZG}&=Uen@V6rp=JCY*3xW%)7gkyLPw7wB-3-Bfc~l{r
zo1?-cY`On=p;WxEL^{7jx&VjT+*n&;TVwMO$tKaHf=I=;LCQ^AlRYWRdud^6(0
zy*w`5tndJkrHBs>xcMQQL7q@;(peS)FCwzoL*-0{vo0Ae6jq*5L1zpy5T?GS>o9yeVt*4>o
z@U*D`D+@F^C21KXdUcXA?2xG`=(zF-HfL;tvh7L;fK)0v2wFBgoz+A*af*jC?0tqu
zv&EiB@od(X={C3V>E@6Zk)|o0&atoE8zu8uAK~N*se!VKp@P=@9?pcQKfe?rDEd(V)pqP;WLkf02w9eXA%iSx(e0{(BJb3FFCrJgMLc*&Jx>9uC|nI8nk}Bc}T!mH3Uc`Z>In_}rh+b{78b
z;dl6#bByx@b>
z=cdnYiFnS+z!wJ_f#Kx4lI8qLV;{{
z9d0S2pe}(cV{V$kCEd&$H)0Cyjd8gpwi~pal)kXa6Y23)S9zeLSa5a)I{T}ug4k63
zKINi0eID%YQtr>K42G0B)m8W%wg&%p7EU(+xP1y))s^R$mtQDFVE5t169PW?^^r