Skip to content
CAI
Software that uses CAICheck a score

hiroi-sora/Umi-OCR

39.3

Weak · 26 September 2026

11.3k

lines of production code

Python

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Umi-OCR is a cross-platform desktop application for Windows and Linux that performs offline optical character recognition on images and documents. It supports batch processing, screenshot capture, and QR code scanning/generation, with results exportable to formats like searchable PDF, TXT, and CSV. The system features a modular plugin architecture for OCR engines, a dynamic QML-based user interface, and an HTTP API for programmatic access.

How it got here

2023 — Umi-OCR v2 architecture and feature expansion

42 changes.

This period marked the initial release of Umi-OCR v2, involving a complete architectural overhaul that replaced legacy PySide2 and QML components with a new plugin-based system, centralized event bus, and modular output handling. The update introduced significant new capabilities, including batch document processing, QR code generation, and an HTTP API, while simultaneously refining the UI with a declarative configuration system, dynamic tab management, and enhanced theme support.

2024 — OCR parsing and platform enhancements

5 changes.

This period focused on improving core OCR capabilities by introducing layout analysis tools for text sorting and paragraph parsing, alongside a dedicated QR code configuration interface. It also expanded platform support with Linux-specific features for shortcuts and hardware control, while updating localization files and adding a comprehensive About page for system information.

Features

Initial release of Umi-OCR v2 with changelog and documentation

This commit introduces the initial v2 release of Umi-OCR, a free, open-source, batch offline OCR software for Windows 7+ and Linux. The repository now includes a comprehensive CHANGE\_LOG.md detailing features such as screenshot OCR, batch document recognition, QR code scanning/generation, and HTTP/command-line interfaces. The project is licensed under MIT and includes README files in Chinese, English, and Japanese. Key technical changes include a new plugin system where the offline OCR module is externalized, a restructured directory layout, and updated .gitignore rules to exclude build artifacts and runtime environments while preserving source files.

(repo-wide) · high confidence

Introduces configurable text layout parsers and ignore-area filtering

The tbpu (text block processing unit) module now provides a selection of layout parsers—single-column and multi-column modes for natural paragraphs, forced line breaks, and no-break text—along with a dedicated parser for code blocks that preserves indentation. It also adds an ignore-area feature to exclude text blocks falling within specified regions, and utilizes a gap-tree sorting algorithm to improve text ordering accuracy.

_UmiOCR-data/py\src/ocr/tbpu · high confidence

Introduction of a dynamic plugin system for offline OCR modules

The application now supports a new plugin architecture that allows offline OCR modules to be loaded dynamically from a dedicated 'plugins' directory rather than being bundled internally. This change introduces a controller that scans for valid Python packages containing specific metadata (PluginInfo, group, api\_class) and initializes them, enabling users to extend or replace OCR capabilities by placing compatible plugin packages in the designated folder.

_UmiOCR-data/py\_src/plugins\controller · high confidence

Linux platform support for shortcuts and hardware control

This change introduces the Linux platform module, adding the ability to create and delete desktop and start menu shortcuts via .desktop files, as well as basic hardware control functions like shutdown and hibernate. It also provides utilities for OpenGL renderer selection, key name mapping, and launching new processes or opening files with the default application. Note that automatic startup shortcuts are not yet supported on Linux and require manual configuration.

_UmiOCR-data/py\src/platform/linux · high confidence

New About page with version, license, and system info

The application now includes an 'About' tab that displays the current version, project links (official site, plugins, issue tracker), release sources (GitHub, SourceForge, Lanzou), and the license agreement. It also lists authors and translators, and provides a 'Copy' button to export runtime environment information for debugging purposes.

_UmiOCR-data/qt\res/qml/TabPages/About · high confidence

New Batch Document Processing Tab

A new 'BatchDOC' tab has been added to the application, providing a dedicated interface for batch processing of document files (such as PDFs). This feature allows users to load multiple documents, configure OCR and post-processing options (including content extraction modes and ignore areas), and manage tasks with progress tracking. The interface includes a document preview panel for inspecting pages and entering passwords for encrypted files, as well as configuration options for output formats (layered PDF, plain text, CSV, etc.) and post-task actions.

_UmiOCR-data/qt\res/qml/TabPages/BatchDOC · high confidence

New HTTP API endpoints for OCR, document processing, and QR codes

The server now exposes dedicated HTTP endpoints for programmatic interaction: POST /api/ocr for image OCR with base64 input and configurable options (including layout parsing and ignore areas), GET /api/ocr/get\_options to retrieve available configuration parameters, POST /api/qrcode for both recognizing QR codes from base64 images and generating QR code images from text with customizable dimensions and error correction levels, and POST /api/doc for document OCR supporting multi-page files, password protection, page range selection, and ignore areas. These endpoints are built on the Bottle micro-framework and include CORS headers to allow cross-origin requests.

_UmiOCR-data/py\src/server · high confidence

New Ignore Area editor for excluding text regions during OCR

A new Ignore Area widget has been added to the application, allowing users to define rectangular regions on images that should be excluded from OCR results. The editor displays the image with overlaid text boxes and lets users draw ignore zones using the right mouse button. These configurations are persisted in the application settings and are applied during batch processing to prevent specific areas (such as watermarks) from being recognized.

_UmiOCR-data/qt\res/qml/Widgets/IgnoreArea · high confidence

New OCR API Manager component for plugin-based configuration

A new QML component, OcrManager.qml, has been introduced to centralize the management of OCR API plugins. This component handles the initialization of available OCR engines, validates that at least one plugin is available before allowing configuration changes, and prevents modifications while OCR tasks are actively running. It provides functions to apply configuration updates, force-stop all running missions, and deploy configuration UI sections to various pages, serving as the frontend interface for the newly externalized offline OCR module.

_UmiOCR-data/qt\res/qml/ApiManager · high confidence

New OCR plugin API interface module

A new \api\ module has been introduced to manage OCR plugin interactions. It provides functions to initialize plugins, retrieve OCR API instances with automatic type correction for arguments (converting specific floats back to integers), and fetch local configuration options. This module serves as the central interface for the plugin system, handling instance creation and error reporting via the logging system.

_UmiOCR-data/py\src/ocr/api · high confidence

New QML components for async file loading, window management, UI scaling, and system tray

This change introduces four new QML components in the MainWindow directory to enhance core application behaviors. AsynFilesLoader.qml provides an asynchronous file scanning module that displays real-time progress updates while loading large numbers of files. MainWindowManager.qml implements persistent window state management, saving and restoring the main window's position, size, and screen placement across sessions, along with logic to handle closing the window to the system tray. Size\_.qml introduces a scalable UI system that separates line height and font size, allowing for resolution-independent scaling and language-specific text adjustments. SystemTray.qml manages the application's system tray icon and context menu, including a dedicated 'Open Main Window' button and support for dynamic menu items.

_UmiOCR-data/qt\res/qml/MainWindow · high confidence

New Screenshot OCR tab page with configurable hotkeys and post-processing

The ScreenshotOCR tab page has been introduced, providing a dedicated interface for capturing screenshots and performing OCR. Users can configure hotkeys for taking screenshots, pasting images, and repeating the last screenshot area, with platform-specific defaults (Win+Alt+C/V on Windows, Alt+C/V on other systems). The page supports automatic OCR on captured images or pasted clipboard content, with options to copy results to the clipboard and automatically bring the main window to the foreground. Post-processing of OCR text can be configured using the tbpu parser, and users can control notification behavior for simple actions.

_UmiOCR-data/qt\res/qml/TabPages/ScreenshotOCR · high confidence

New Windows platform abstraction layer for shortcuts, hardware, and process management

This change introduces a new \win32\ platform module that centralizes Windows-specific operations. It provides an \Api\ class to manage application shortcuts (creating/deleting on Desktop, Start Menu, and Startup), control hardware states (shutdown/hibernate), and launch external processes in independent console windows. Additionally, it includes logic to automatically select the most suitable OpenGL renderer based on the Windows version and a key translator to normalize keyboard input for consistent hotkey handling.

_UmiOCR-data/py\src/platform/win32 · high confidence

New batch document processing and QR code scanning capabilities

The application introduces a new BatchDOC tab for processing multi-page documents with support for page ranges, password-protected files, and configurable output formats (PDF, TXT, CSV) including filename placeholders like %range. A new QRCode tab allows scanning QR codes/barcodes from images and generating barcode images. The existing BatchOCR and ScreenshotOCR tabs have been refactored to use a new unified page controller architecture, improving task management and UI integration.

_UmiOCR-data/py\_src/tag\pages · high confidence

New event bus and hotkey subsystem for QML integration

This change introduces a new event bus architecture and hotkey management system within the application. It adds a publish/subscribe service (PubSubService) that safely handles event publishing across threads, exposing QML-compatible connectors (PubSubConnector) for subscribing, unsubscribing, and publishing events from the UI layer. Additionally, it implements a new key-mouse connector (KeyMouseConnector) backed by a keyboard controller that registers global hotkeys, supports hotkey recording, and allows users to interrupt operations (such as screenshots) by pressing the Escape key.

_UmiOCR-data/py\_src/event\bus · high confidence

New font selection panel and left-navigation sidebar in Global Settings

The Global Settings page now includes a dedicated Font Panel (FontPanel.qml) that allows users to select separate fonts for the UI interface and for OCR content data, with a list filtered to prioritize Chinese characters. Additionally, the main GlobalConfigsPage has been restructured to feature a left-side navigation sidebar that lists setting groups, enabling users to jump directly to specific configuration sections.

_UmiOCR-data/qt\res/qml/TabPages/GlobalConfigsPage · high confidence

New global import modules for logging, about info, plugin i18n, and thread-safe function calls

The application now exposes a set of new global Python modules in the \imports\ directory to standardize core functionality. \umi\_log\ provides a structured logging system with JSON file output, file rotation, and configurable log levels (defaulting to ERROR for file saves), including filters to suppress noisy Qt framework messages. \umi\_about\ replaces the previous global info mechanism, loading application metadata from \about.json\ and exposing details like version, platform, and hardware specs. \plugin\_i18n\ introduces a CSV-based translation API for plugins, allowing them to load and use localized strings. Additionally, \call\_func\ offers a thread-safe utility to execute Python functions in the main Qt thread, supporting both immediate and delayed execution with cancellation capabilities.

_UmiOCR-data/py\src/imports · high confidence

New i18n developer toolkit for managing UI translations

The \dev-tools/i18n\ directory now includes a comprehensive set of scripts and documentation to streamline the localization workflow. This includes \lupdate\_all.py\ and \lrelease\_all.py\ for batch-generating and compiling Qt translation files (\.ts\ to \.qm\) for both QML and Python sources, and \convert\_ts\_txt.py\/\convert\_txt\_ts.py\ for converting translation files to plain text to facilitate machine translation or external editing. The addition also provides detailed guides (\README.md\, \翻译步骤(完整).md\, \翻译步骤(简易).md\) for contributors on how to use Weblate, Linguist, and the new conversion tools to update and submit translations.

dev-tools/i18n · high confidence

New image viewer components with text overlay and selection

The ImageViewer area now uses new QML components (ImageScale, ImageWithText, TextBox) to display images with overlaid OCR text blocks. Users can now select text directly on the image, copy selected text (including across multiple blocks), and view line-break indicators. The image viewer also supports zooming, saving images to the desktop, and opening images with the default system application.

_UmiOCR-data/qt\res/qml/Widgets/ImageViewer · high confidence

New layout analysis tools for text sorting and paragraph parsing

The \parser\_tools\ module now includes three new components: \GapTree\ for sorting OCR text blocks into human-readable reading order, \line\_preprocessing\ for normalizing bounding boxes and handling rotated text, and \paragraph\_parse\ for detecting paragraph boundaries and inserting appropriate separators (spaces or newlines) between lines.

_UmiOCR-data/py\_src/ocr/tbpu/parser\tools · high confidence

New modular output system with searchable PDF support

The OCR output module has been restructured into a modular system with dedicated classes for various formats, including TXT (standard, plain, and individual files), Markdown, JSONL, and CSV (with adaptive encoding for better Excel compatibility). A key addition is the support for layered (searchable) PDFs, which overlays OCR text onto the original document while preserving existing text and metadata, and single-layer PDFs that replace the original content with OCR text. The system also handles encrypted documents by attempting decryption with a provided password and includes robust error handling and file-saving mechanisms.

_UmiOCR-data/py\src/ocr/output · high confidence

New reusable UI widget library for consistent interface design

This update introduces a comprehensive suite of new QML components in the Widgets directory to standardize the application's look and feel. Key additions include DoubleColumnLayout and DoubleRowLayout for resizable split-pane views with state caching, a DoubleSwitchableLayout to toggle between vertical and horizontal arrangements, and a MissionCtrlPanel for managing task progress with timers and counters. The library also provides enhanced controls such as CheckBox\_ and CheckButton with animation support, a MarkdownView for rendering text with link handling, a ModalLayer for overlay dialogs (including Esc-to-close), and utility components like DropArea\_ for file handling and IconButtonBar for action menus.

_UmiOCR-data/qt\res/qml/Widgets · high confidence

New unified popup and notification system

The application now uses a new set of QML components in the Popup\_ directory to manage all user-facing dialogs and notifications. This includes a centralized PopupManager that exposes methods for simple auto-dismissing notifications, confirmation dialogs, and dialogs with a "Do not show again" option. The system supports both internal overlays and external system-style windows, features a new MaskLayer for background dimming, and allows error messages to be copied or linked to issue trackers directly from the dialog.

_UmiOCR-data/qt\res/qml/Popup\ · high confidence_

New utility modules for async file scanning, thread management, and configuration handling

The application introduces a new \utils\ package containing several core components: \file\_finder\ provides both synchronous and asynchronous file scanning with UI progress updates; \thread\_pool\ manages background tasks via a global QThreadPool; \pre\_configs\ handles early-stage JSON configuration storage; \app\_opengl\ manages OpenGL renderer selection and compatibility checks; \i18n\_configs\ handles UI language loading and mapping; \theme\_connector\ loads and saves custom theme JSON; and \utils\_connector\ exposes these utilities to the QML frontend. These changes enable asynchronous file loading, improved configuration management, and better cross-platform utility access.

_UmiOCR-data/py\src/utils · high confidence

Removals

Removal of legacy DoubleColumnLayout QML widget

The \DoubleColumnLayout.qml\ component, which previously provided a split-pane interface with a draggable divider and automatic hiding of columns when narrowed, has been removed from the application. This change eliminates the specific QML implementation for the dual-column view, indicating that this layout pattern is no longer supported or has been replaced by a different architectural approach in the current codebase.

UmiOCR-data/res/qml/Widgets · high confidence

Removal of legacy PySide2 QML application entry point

The legacy Python entry point for the QML-based UI (UmiOCR-data/app/\_\init\\_.py) has been removed. This file previously initialized the PySide2 application, configured OpenGL software rendering to reduce flicker, and loaded the main QML interface. Its removal indicates a shift away from this specific PySide2 startup mechanism, likely in favor of the newly introduced QML/Python controller linkage or a different application bootstrap method.

UmiOCR-data/app · high confidence

Removal of legacy QML tab page components

The QML files for the BatchOCR, GlobalSettings, Page3, ScreenshotOCR, and the PagesController logic have been deleted from the TabPages directory. This removes the previous implementation of the batch processing interface, global settings panel, screenshot OCR view, and the dynamic tab management controller that handled page instantiation and navigation.

UmiOCR-data/res/qml/TabPages · high confidence

Removal of legacy QML theme definition files

The legacy QML theme infrastructure has been removed from the application. Specifically, the base theme definition (Theme.qml), the light theme implementation (ThemeLight.qml), and the themes controller (ThemesController.qml) have been deleted. This eliminates the previous color, font, size, and effect property definitions that were previously managed by these QML objects.

UmiOCR-data/res/qml/Themes · high confidence

Behavioural changes

27 commits (0 fixes) modifying UmiOCR-data/i18n

A change to existing behaviour in UmiOCR-data/i18n — 27 commits, 6 files.

UmiOCR-data/i18n · medium confidence · unverified

Batch OCR tab page restructured with new configuration and preview components

The Batch OCR tab page has been reorganized into distinct QML components: BatchOCR.qml (main logic and layout), BatchOCRConfigs.qml (settings), and PreviewImage.qml (image/text preview). Key behavioral changes include: 1) The 'recursive subfolder reading' option is now a standard configuration setting rather than a special mode. 2) Task completion notifications now display the count of failed images in a simple notification instead of a detailed error popup. 3) Failed recognition items are now marked with red text in the file table. 4) A new image preview panel allows users to click on image entries to view the original image with optional OCR text overlay and extracted text in a split view. 5) The paragraph merging configuration has been updated to use layout analysis (tbpu.parser) instead of the previous tbpu.merge approach.

_UmiOCR-data/qt\res/qml/TabPages/BatchOCR · high confidence

Improved startup stability and error reporting with new help documentation

The application now provides more robust error handling during startup: if the runtime environment or main program fails to initialize, a detailed error message is displayed along with the path to the log file for easier troubleshooting. A new 'Help' document has been added to guide users through common issues such as missing Visual C++ redistributables, OpenGL context errors, and Windows 7 compatibility patches. Additionally, the startup script has been refactored to use a new logging module and improved output stream redirection, ensuring that console output is only redirected when necessary.

UmiOCR-data · high confidence

Introduces a dynamic tab page management system with lazy loading

The application now uses a new \PagesManager\ and \TabPage\ QML architecture to manage UI pages dynamically. This system supports lazy loading of page components to improve startup performance and allows for the runtime creation, switching, and destruction of tabs. It integrates with a Python backend via a \TagPageConnector\ to handle logic controllers for specific pages (such as ScreenshotOCR, BatchOCR, and QRCode) while supporting simple pages without controllers (like GlobalConfigs and About).

_UmiOCR-data/qt\res/qml/TabPages · high confidence

Introduces a unified task queue system and document preview connector

The \mission\ module has been restructured to include a new \Mission\ base class that manages task queues with support for pausing, resuming, and stopping, alongside a \DocPreviewConnector\ that enables on-demand preview of document pages and their OCR results. This change also introduces dedicated task managers for OCR (\MissionOCR\), documents (\MissionDOC\), and QR codes (\MissionQRCode\), along with a \MissionConnector\ to expose these controllers to the QML frontend, fundamentally changing how background tasks are scheduled and executed.

_UmiOCR-data/py\src/mission · high confidence

The Navigation tab has been restructured to use a DoubleRowLayout instead of the previous DoubleColumnLayout, allowing for more flexible width adjustments based on font size. The right-hand panel now renders the introduction text using a dedicated MarkdownView component rather than a raw TextEdit, enabling richer formatting for the welcome message and version info. Additionally, a DropArea has been added to the navigation page to provide visual feedback and instructions when users attempt to drag files into the sidebar, guiding them to open the appropriate functional tab first.

_UmiOCR-data/qt\res/qml/TabPages/Navigation · high confidence

New centralized application entry point with structured initialization

A new \run.py\ entry point has been introduced to manage the Umi-OCR startup sequence. This module handles the initialization of the \UmiAbout\ global information, configures Qt application settings (such as high-DPI scaling and OpenGL context sharing), and registers a comprehensive set of Python connectors (including TagPage, Mission, DocPreview, PubSub, KeyMouse, Plugins, Theme, Image, and GlobalConfigs) with the QML engine. It also sets up the logging system by redirecting Qt messages to the Umi log module and initializes internationalization before launching the main QML interface.

_UmiOCR-data/py\src · high confidence

New declarative configuration system for settings management

The application now uses a new declarative QML-based configuration framework (ConfigItemComp, Configs, GlobalConfigs) to manage settings. This introduces a structured dictionary-based approach for defining UI elements (booleans, text, numbers, enums, files, hotkeys) and their persistence via the Settings component. Users benefit from improved UI consistency, support for nested configuration groups with folding, advanced option visibility toggles, and integrated tooltips. The system also enforces platform-specific constraints, such as disabling shutdown/hibernate options on non-Windows systems, and supports dynamic reloading of configuration states.

_UmiOCR-data/qt\res/qml/Configs · high confidence

New main window layout with ESC-to-hide behavior

The main application window is now defined by a new QML entry point (Main.qml) that establishes the core UI structure, including the tab view, image manager, and global configuration singletons. A key behavioral change is the handling of the Escape key: pressing Esc no longer closes the application entirely; instead, it hides the main window to the system tray if the 'closeWin2Hide' setting is enabled, or minimizes the window on platforms without a tray, improving usability for background operation.

_UmiOCR-data/qt\res/qml · high confidence

New screenshot workflow with click-mode support and Linux window-position fixes

The ImageManager QML module now provides a dedicated screenshot workflow that includes a new 'click screenshot' mode (allowing users to select a region by clicking twice instead of dragging), a 'repeat last screenshot' feature, and the ability to hide the main window before capturing to prevent UI interference. It also fixes a bug on Linux where the main window would shift position after a screenshot due to taskbar exclusion issues, and adds a global setting to control whether the main window is hidden during capture.

_UmiOCR-data/qt\res/qml/ImageManager · high confidence

New theme system with Solarized and Cyberpunk options

The application now features a redesigned theme engine that supports switching between built-in themes, including the newly added Solarized Light, Solarized Dark, and Cyberpunk styles alongside the existing Default Light and Dark options. This change introduces a new configuration mechanism where theme definitions are stored in JSON, allowing for external customization and persistence of user preferences through a dedicated ThemeManager component.

_UmiOCR-data/qt\res/qml/Themes · high confidence

Platform-specific renderer selection on first launch

The application now automatically selects the most suitable rendering engine based on the user's operating system at startup. This is achieved through a new platform abstraction layer that detects the OS (Windows or Linux) and instantiates the corresponding API module, ensuring the correct backend is used without manual configuration.

_UmiOCR-data/py\src/platform · high confidence

QR Code tab receives dedicated configuration and auto-refresh behavior

The QR Code tab now includes a dedicated configuration component (QRCodeConfigs.qml) that exposes settings for barcode generation (format, dimensions, quiet zone, error correction) and image preprocessing (median filter, sharpness, contrast, grayscale, threshold). Additionally, the main QRCode.qml component now listens for configuration changes and automatically regenerates the barcode image via a delayed event loop, ensuring the preview updates immediately after parameter adjustments without requiring manual intervention.

_UmiOCR-data/qt\res/qml/TabPages/QRCode · high confidence

Redesigned results panel with enhanced text selection and editing capabilities

The results panel has been rebuilt using new QML components (ResultTextContainer and ResultsTableView) to support advanced text interactions. Users can now select text across multiple result blocks, use Ctrl+A for single-block selection or Ctrl+Shift+A (via double-click logic) for full selection, and copy selected text from multiple blocks simultaneously. The panel also supports inline editing of result text, with changes automatically synced to the model, and includes a dedicated copy button for each record. Additionally, the UI displays timing and confidence scores for each OCR result.

_UmiOCR-data/qt\res/qml/Widgets/ResultLayout · high confidence

Refactored image handling with dedicated screenshot controller and Qt/PIL conversion

The image controller module has been restructured to improve reliability and separation of concerns. A new \screenshot\_controller.py\ now handles screen capture, clipboard inspection (images, URLs, text), and image clipping, replacing the previous monolithic approach. A new \ImageQt.py\ module provides robust conversion between PIL and Qt image formats (QImage/QPixmap), addressing issues with data alignment and format support. The \image\_provider.py\ manages a centralized pixmap cache for QML rendering, while \image\_connector.py\ exposes these capabilities to the UI layer. These changes enhance screenshot stability, fix bugs related to copying local images, and improve the overall image processing pipeline.

_UmiOCR-data/py\_src/image\controller · high confidence

Removal of Main.qml main window definition

The QML file defining the main application window (Main.qml) has been deleted from the resources. This file previously contained the root Window component, including the layout for the main container, the tab view controller, and the settings persistence logic. Its removal indicates a structural change to how the main UI entry point is defined or managed within the application.

UmiOCR-data/res/qml · high confidence

Tab bar UI refinements and configuration persistence

The tab bar interface now persists the 'window always on top' and 'tab bar lock' states to global configuration, ensuring they survive application restarts. The UI has been updated to use a scalable sizing system (replacing fixed theme values with size\_ properties) for better proportion control, and the tab close button icon has been changed from 'close' to 'no'. Additionally, the pin button now displays a tooltip, and visual adjustments include updated margins, colors, and shadow effects.

_UmiOCR-data/qt\res/qml/TabBar\ · high confidence_

Tab persistence and layout restructuring

The tab view now automatically saves and restores the list of open pages and the currently selected tab index across sessions, ensuring your workspace is preserved after restarts. The underlying architecture has been refactored to use a new \PagesManager\ component and a dedicated settings module for this persistence. Additionally, the UI layout has been restructured to position the tab bar and page container using explicit anchors rather than a column layout, improving rendering stability.

_UmiOCR-data/qt\res/qml/TabView\ · high confidence_

Updated release localization files for multiple languages

The release localization files in dev-tools/i18n/release have been updated with new translations for Arabic, English (US), Spanish, Persian, French (France), Hebrew, Japanese, and Kabyle. These updates, largely driven by Weblate contributions, refresh the UI text for core application screens such as the About page, Batch Document processing, and asynchronous file loading, ensuring that users see the latest translated strings in their respective languages.

dev-tools/i18n/release · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.

Score

  • CAI 32 → 39 (+7.6)
  • Rubric changed (rubric-2026.08.15 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 43 → 86 (+43.1)
  • Architecture 96 → 99 (+3.6)
  • Maturity 44 → 43 (-1.0)
  • Readiness 11 → 17 (+6.2)
  • Security 60 → 61 (+0.5)

Resolved (19)

  • Dimension evaluation failed
  • Duplicated block (19 lines × 2) (UmiOCR-data/py_src/server/cmd_server.py)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • Medium: security finding (details withheld)
  • Medium: security finding (details withheld)
  • Medium: security finding (details withheld)
  • Medium: security finding (details withheld)
  • Medium: security finding (details withheld)
  • Medium: security finding (details withheld)
  • Medium: security finding (details withheld)
  • Medium: security finding (details withheld)
  • Medium: security finding (details withheld)
  • No exposed public API
  • early-stage repository — too little history to judge knowledge freshness
  • single-commit history — no usable git history window to measure hotspots
  • single-maintainer — knowledge-concentration (bus factor) risk
  • 缺少关于如何在 Windows7 x64 上安装和运行 Umi-OCR 的具体步骤(如解压后配置文件路径) (README.md)

New (92)

  • BaseRequest._iter_chunked (cognitive 23) (UmiOCR-data/py_src/server/bottle.py)
  • BatchDOC._initOutputList (cognitive 17) (UmiOCR-data/py_src/tag_pages/BatchDOC.py)
  • BatchDOC._onEnd (cognitive 16) (UmiOCR-data/py_src/tag_pages/BatchDOC.py)
  • Bottle._cast (cognitive 25) (UmiOCR-data/py_src/server/bottle.py)
  • Bottle._cast (cyclomatic 24) (UmiOCR-data/py_src/server/bottle.py)
  • ConfigDict.load_dict (cognitive 19) (UmiOCR-data/py_src/server/bottle.py)
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no project overview (README.md)
  • Dormant codebase
  • Duplicated block (10 lines × 2) (UmiOCR-data/py_src/imports/call_func.py)
  • Duplicated block (12 lines × 2) (UmiOCR-data/py_src/tag_pages/BatchDOC.py)
  • Duplicated block (17 lines × 2) (UmiOCR-data/py_src/tag_pages/tag_pages_connector.py)
  • Duplicated block (23 lines × 2) (UmiOCR-data/py_src/server/doc_server.py)
  • Duplicated block (5 lines × 2) (UmiOCR-data/py_src/mission/doc_preview_connector.py)
  • Duplicated block (7 lines × 2) (UmiOCR-data/py_src/imports/call_func.py)
  • Duplicated block (7 lines × 2) (UmiOCR-data/py_src/imports/call_func.py)
  • Duplicated block (7 lines × 3) (UmiOCR-data/py_src/ocr/output/output_jsonl.py)
  • Duplicated block (8 lines × 2) (UmiOCR-data/py_src/platform/linux/linux_api.py)
  • FileCheckerThread.run (cognitive 17) (UmiOCR-data/py_src/server/bottle.py)
  • FileTooLong: release/en_US.ts (dev-tools/i18n/release/en_US.ts)
  • …and 72 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

hiroi-sora/Umi-OCR was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 26 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 83173efc4f4453b41223ea96d63d44534bf0505c — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-09659c52afae.