diff --git a/apps/client/src/translations/en/translation.json b/apps/client/src/translations/en/translation.json index 64a0e5daca..f06c32ed9e 100644 --- a/apps/client/src/translations/en/translation.json +++ b/apps/client/src/translations/en/translation.json @@ -1265,13 +1265,15 @@ "jpeg_quality": "JPEG quality", "jpeg_quality_description": "Recommended range is 50–85. Lower values reduce file size, higher values preserve detail.", "ocr_section_title": "Optical Character Recognition (OCR)", - "enable_ocr": "Enable OCR for images", - "ocr_description": "Automatically extract text from images using OCR technology. This makes image content searchable within your notes.", - "ocr_auto_process": "Automatically process new images with OCR", - "ocr_language": "OCR Language", - "ocr_min_confidence": "Minimum confidence threshold", + "enable_ocr": "Enable OCR", + "ocr_description": "Extract text from images to make their content searchable within your notes.", + "ocr_auto_process": "Auto-process new images", + "ocr_auto_process_description": "Automatically run OCR on newly uploaded or pasted images.", + "ocr_language": "Language", + "ocr_language_description": "Tesseract language code. Use + for multiple languages (e.g. eng+deu).", + "ocr_min_confidence": "Minimum confidence", "ocr_confidence_unit": "(0.0-1.0)", - "ocr_confidence_description": "Only extract text with confidence above this threshold. Lower values include more text but may be less accurate.", + "ocr_confidence_description": "Only extract text above this confidence threshold. Lower values include more text but may be less accurate.", "batch_ocr_title": "Process Existing Images", "batch_ocr_description": "Process all existing images in your notes with OCR. This may take some time depending on the number of images.", "batch_ocr_start": "Start Batch OCR Processing", diff --git a/apps/client/src/widgets/type_widgets/options/components/OptionsRow.css b/apps/client/src/widgets/type_widgets/options/components/OptionsRow.css index 4352c4b7a5..3e6fc2dbf8 100644 --- a/apps/client/src/widgets/type_widgets/options/components/OptionsRow.css +++ b/apps/client/src/widgets/type_widgets/options/components/OptionsRow.css @@ -11,7 +11,7 @@ } .option-row-main > label { - width: 40%; + width: 45%; margin-bottom: 0 !important; flex-shrink: 0; } diff --git a/apps/client/src/widgets/type_widgets/options/media.tsx b/apps/client/src/widgets/type_widgets/options/media.tsx index bdb27dad8a..e8fd9dbb50 100644 --- a/apps/client/src/widgets/type_widgets/options/media.tsx +++ b/apps/client/src/widgets/type_widgets/options/media.tsx @@ -1,11 +1,20 @@ import { t } from "../../../services/i18n"; -import { FormTextBoxWithUnit } from "../../react/FormTextBox"; +import FormTextBox, { FormTextBoxWithUnit } from "../../react/FormTextBox"; import FormToggle from "../../react/FormToggle"; import { useTriliumOption, useTriliumOptionBool } from "../../react/hooks"; import OptionsRow from "./components/OptionsRow"; import OptionsSection from "./components/OptionsSection"; export default function MediaSettings() { + return ( + <> + + + + ); +} + +function ImageSettings() { const [ downloadImagesAutomatically, setDownloadImagesAutomatically ] = useTriliumOptionBool("downloadImagesAutomatically"); const [ compressImages, setCompressImages ] = useTriliumOptionBool("compressImages"); const [ imageMaxWidthHeight, setImageMaxWidthHeight ] = useTriliumOption("imageMaxWidthHeight"); @@ -49,3 +58,49 @@ export default function MediaSettings() { ); } + +function OcrSettings() { + const [ ocrEnabled, setOcrEnabled ] = useTriliumOptionBool("ocrEnabled"); + const [ ocrAutoProcess, setOcrAutoProcess ] = useTriliumOptionBool("ocrAutoProcessImages"); + const [ ocrLanguage, setOcrLanguage ] = useTriliumOption("ocrLanguage"); + const [ ocrMinConfidence, setOcrMinConfidence ] = useTriliumOption("ocrMinConfidence"); + + return ( + + + + + + + + + + + + + + + + + + ); +}