* 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
* Replaced Add Folders with output directory button.
I took the code from #969 and replaced the selectDir() function with it. Then replaced the button and linked it to selectDir()
* Fixed merge error in gui
* Fixed bug
Missing () at the end of checkState on line 852
* small fixes
* fix checkbox not saving
* rename selectDir to selectOutputDirectory
---------
Co-authored-by: Alex Xu <alexkurosakimh3@gmail.com>
* Adds options to use metadata title as output name
* update .ui files
* write rest
* small fixes
* small fix
* fix small
---------
Co-authored-by: Alex Xu <alexkurosakimh3@gmail.com>
* Added basic CBZ combine func
Need to add support for epub and maybe mobi.
* Removed irrelevant code for CBZ file fusion
* Fixed false description
* Removed irrelevant code
* Removed redundant code
Replaced page tracker and os.rename with os.renames. Removed unneeded reference to gui. Changed mkdir to mkdtemp.
* Made folder and cbz work together
You can select multiple folders of images, multiple cbz files, and folders with subfolders. Fusion will combine them all together at the same time. Mainly added this to idiot proof it.
* Updated gui
Removed redundant tooltip
* simplify code
* fix merging chapter folders with .
* uncheck fusion message
---------
Co-authored-by: Alex Xu <alexkurosakimh3@gmail.com>
* preserve margin
* set ratio to 0.5
* add preserve margin GUI
* increase step size to 5
* remove clear
* fix save
* save preserveMarginBox
* math
* max 99
* Add split size GUI widget
* Set split size and save GUI widget state in settings
* Set max split size in GUI to 600 MB
* Move chunk size control in middle column and widget on panel below.
Added warning label and tooltip
* Fix chunk size incorrectly enabled when webtoon active and format change
* add 'on older ereaders'
---------
Co-authored-by: Alex Xu <alexkurosakimh3@gmail.com>
1. Replaced both crop margins and crop margins & page num with newer algorithm.
2. Crop max power level increased to 3.0
3. Adds NumPy as a new dependency.
* Adds --author argument to CLI
* Add --prefercoverfile and --nocoveraspage arguments to CLI
* cover checks only run once
* Revert "cover checks only run once"
This reverts commit ad7b3cc106.
* split off author portion
* split off author
* remove prefercover
* whitespace fixes
* rename to duplicatecover
* whitespace fixes
* rename to dedupecover
* add dedupe to UI
---------
Co-authored-by: Alex Xu <alexkurosakimh3@gmail.com>