From df1f8e25d16e08594d530c18de58f44b1fd7b0a5 Mon Sep 17 00:00:00 2001 From: mirusu400 Date: Wed, 9 Oct 2019 18:05:05 +0900 Subject: [PATCH 01/25] Add Korean Translate --- src/translations/scantailor_ko.ts | 2836 +++++++++++++++++++++++++++++ 1 file changed, 2836 insertions(+) create mode 100644 src/translations/scantailor_ko.ts diff --git a/src/translations/scantailor_ko.ts b/src/translations/scantailor_ko.ts new file mode 100644 index 000000000..5550e6d51 --- /dev/null +++ b/src/translations/scantailor_ko.ts @@ -0,0 +1,2836 @@ + + + + + AboutDialog + + ScanTailor Advanced + 프로그램 제목이므로 번역 안함. + ScanTailor Advanced + + + About + ScanTailor Advanced 정보 + + + Scan Tailor is an interactive post-processing tool for scanned pages. It performs operations such as page splitting, skew correction, adding/removing margins, and others. You give it raw scans, and you get pages ready to be printed or assembled into a PDF or DJVU file. Scanning and optical character recognition is out of scope of this project. + Scan Tailor는 스캔한 페이지를 처리하기 위한 상호 후처리 프로그램입니다. 페이지 분할, 기울기 보정, 여백 추가/제거 등과 같은 작업이 가능합니다. 막 스캔한 페이지를 이용해 PDF 또는 DJVU 파일로 인쇄 또는 저장할 수 있습니다. 스캔과 OCR에 관해서는 이 프로그램에서 다루지 않습니다. 한글패치 : mirusu400 + + + Authors + 제작자 + + + Joseph Artsimovich + Joseph Artsimovich + + + Contributors + 공헌자 + + + U235 - Picture auto-detection algorithm. + U235 - 사진 자동인식 알고리즘. + + + Robert B. - First generation dewarping algorithm. + Robert B. - 1세대 왜곡 보정 알고리즘 제공 + + + Andrey Bergman - System load adjustment. + Andrey Bergman - 시스템 불러오기 조정 + + + Petr Kovář - Command line interface, ver. Enhanced + Petr Kovář - 커맨드 라인 인터페이스(Enhanced 버전 제작) + + + Vadim Kuznetsov - ver. Plus + Vadim Kuznetsov - Plus 버전 제작 + + + monday2000 - ver. Featured + monday2000 - Featured 버전 제작 + + + Alexander Trufanov - ver. Universal + Alexander Trufanov - Universal 버전 제작 + + + License + 라이센스 + + + Lead Developer of original version + 오리지널 버전 개발자 + + + Lead Developer of Advanced version + Advanced 버전 개발자 + + + 4lex4 + 4lex4 + + + + BatchProcessingLowerPanel + + Form + + + + Beep when finished + 끝나면 소리 울리기 + + + + ColorPickupInteraction + + Click on an area to pick up its color, or ESC to cancel. + 색상을 선택할 영역을 클릭하세요. ESC를 누를시 종료됩니다. + + + + DefaultParamsDialog + + Default parameters + 기본 매개 변수 + + + Save + 저장 + + + Delete + 삭제 + + + Units: + 단위: + + + Fix Orientation + 방향 수정 + + + Rotate + 회전 + + + ... + ... + + + Reset + 초기화 + + + Split Pages + 페이지 분할 + + + Mode + 모드 + + + Page Layout + 페이지 레이아웃 + + + Deskew + 기울기 보정 + + + Auto + 자동 + + + Manual + 수동 + + + Select Content + 컨텐츠 선택 + + + Page Box + 페이지 박스 + + + Disable + 비활성화 + + + Options + 옵션 + + + Shift with corners while they are in black. + 검은색 테두리를 옮기기 + + + Fine Tune Page Corners + 페이지 테두리 깔끔하게 자르기 + + + Width + + + + Height + 높이 + + + Content Box + 컨텐츠 박스 + + + Margins + 테두리 + + + Auto Margins + 테두리 자동 설정 + + + Top + + + + Right + 오른쪽 + + + Left + 왼쪽 + + + Bottom + 아래 + + + Alignment + 위치 조정 + + + Auto + auto + 자동 + + + Manual + manual + 수동 + + + Original + original + 원래대로 + + + Auto aligning + 자동 위치 조정 + + + Enable horizontal + 수평 위치 조정 + + + Enable vertical + 수직 위치 조정 + + + Match size with other pages + 다른 페이지와 크기 같게 하기 + + + Output + 출력 + + + Normalize illumination before binarization. + 이진화 이전에 조명을 통일시키세요. + + + Equalize illumination (B&&W) + 조명 통일 (흑백) + + + Normalize illumination in color mode / in picture zones in mixed mode. + 믹스 모드의 사진 영역과 컬러 모드에서 조명을 통일시킵니다. + + + Equalize illumination (Color) + 조명 통일 (컬러) + + + Savitzky-Golay smoothing + Savitzky-Golay 스무딩 + + + Morphological smoothing + Morphological(형태학적) 스무딩 + + + Filling + 채우기 + + + Color: + 색상: + + + Color operations + 색상 조정 + + + Split the image into color segments and colorize b&w mask. + 이미지를 색상 조각으로 분할하고 흑백 마스크로 칠합니다. + + + Color segmentation + 색상 분할 + + + R + R + + + Red component adjustment. A negative value means the segmenter will be more sensitive to red and vice versa for a positive one. + 빨간색 요소 조정. 음수의 경우 빨간색에 더 민감하고 양수의 경우 덜 민감해집니다. + + + G + + + + Green component adjustment. A negative value means the segmenter will be more sensitive to green and vice versa for a positive one. + 초록색 요소 조정. 음수의 경우 초록색에 더 민감하고 양수의 경우 덜 민감해집니다. + + + B + + + + Blue component adjustment. A negative value means the segmenter will be more sensitive to blue and vice versa for a positive one. + 파란색 요소 조정. 음수의 경우 파란색에 더 민감하고 양수의 경우 덜 민감해집니다. + + + Reduce noise: + 노이즈 줄이기: + + + Reduce the number of colors of the output image by grouping similar colors. + 유사한 색상을 그룹화해 출력 이미지의 색상 종류를 줄여줍니다. + + + Posterize + Posterize(명암 단위 제한) + + + Level: + 레벨: + + + Lower value means lower count of colors in the output image, values between 2 and 6 inclusive guarantee an indexed image. + 값이 낮을수록 출력 이미지의 색상 수가 적어집니다. 2~6은 인덱스 이미지를 보장합니다. + + + Normalize + 일반화 + + + Make dark and light gray gradients black and white respectively. + 어두은 회색, 밝은 회색 그라디언트를 각각 흑백으로 만듭니다. + + + Force b&&w + 강제 흑백화 + + + Threshold + 임계값 + + + Method: + 방법 + + + 0 + 0 + + + Thinner + 얇게 + + + Thicker + 굵게 + + + Coef: + 계수 + + + The dimensions of a pixel neighborhood to consider. + 고려해야할 주변 픽셀수의 범위를 설정합니다. + + + Window size: + 창 크기: + + + Default value is 0.34. + 기본값은 0.34입니다. + + + The minimum possible gray level that can be made white. + 흰색으로 만들 수 있는 회색 레벨의 최소값입니다. + + + Upper Bound: + 상한: + + + Lower bound: + 하한: + + + The maximum possible gray level that can be made black. + 흰색으로 만들 수 있는 회색 레벨의 최대값입니다. + + + Coeff: + 계수 + + + Default value is 0.3. + 기본값은 0.3입니다. + + + Picture Shape + 사진 모양 + + + Sensitivity (%): + 민감도 (%): + + + Higher search sensivity + 더 높은 검색 민감도 + + + Output Resolution (DPI) + 출력 해상도 (DPI) + + + Splitting + 분할 + + + Split output + 분할 결과 + + + B&&W foreground + 흑백 전경 + + + Save the original background of the foreground layer. + 전경 부분을 원본 배경으로 저장합니다. + + + Original background + 원본 배경 + + + Color foreground + 색상 전경 + + + Despeckling + 얼룩 제거 + + + Dewarping + 왜곡 보정 + + + Post deskew + 사전 기울기 보정 + + + Depth perception + 깊이 인식 + + + Black and White + 흑백 + + + Color / Grayscale + 컬러 / 회색조 + + + Mixed + 혼합 + + + Background + 배경 + + + White + 흰색 + + + Otsu + + + + Sauvola + + + + Wolf + + + + Off + 끄기 + + + Free + 자유 + + + Rectangular + 직사각형 + + + Custom + 커스텀 + + + Marginal + 테두리 + + + Default + 기본값 + + + Source + 원본 + + + Error + 에러 + + + Error loading the profile. + 프로필을 불러오는데 실패했습니다. + + + The name conflicts with a default profile name. Please enter a different name. + 이름이 기본 프로필과 동일합니다. 다른 이름을 입력하세요. + + + Error saving the profile. + 프로필을 저장하는데 실패했습니다. + + + Error deleting the profile. + 프로필을 삭제하는데 실패했습니다. + + + Fill offcut + 오프컷 채우기 + + + Fill margins + 테두리 채우기 + + + Despeckle + 얼룩 제거 + + + Mode: + 모드: + + + The profile file is not compatible with the current application version. Remove? + 이 프로필은 현재 프로그램에 호환되지 않습니다. 삭제 하시겠습니까? + + + + DeskewApplyDialog + + Apply to + 적용하기 + + + This page only (already applied) + 이 페이지만 (이미 적용되어 있음) + + + All pages + 모든 페이지 + + + This page and the following ones + 이 페이지와 다음 페이지 + + + This page and the following every other page + All odd or even pages, depending on the current page being odd or even. + 이 페이지와 모든 짝수(홀수) 페이지 + + + Every other page + All odd or even pages, depending on the current page being odd or even. + 모든 짝수(홀수) 페이지 + + + Selected pages + 선택된 페이지 + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Ctrl+Click / Shift+Click 으로 여러 페이지를 선택 가능합니다 + + + Every other selected page + 선택된 모든 짝수(홀수) 페이지 + + + The current page will be included. + 현재 페이지도 포함됩니다. + + + + DeskewOptionsWidget + + Form + + + + Deskew + 기울기 보정 + + + Auto + 자동 + + + Manual + 수동 + + + Apply To ... + 적용하기 + + + + DragHandler + + Unrestricted dragging is possible by holding down the Shift key. + Shift키를 누르면 제한 없이 드래그가 가능합니다. + + + + ErrorWidget + + Form + + + + + FixDpiDialog + + Fix DPI + DPI 수정 + + + Tab 1 + 탭 1 + + + Tab 2 + 탭 2 + + + DPI + DPI + + + Custom + 커스텀 + + + x + x + + + Apply + 적용 + + + Need Fixing + 수정 필요 + + + All Pages + 모든 페이지 + + + DPI is too large and most likely wrong. + DPI가 너무 크고 잘못된 것 같습니다. + + + DPI is too small. Even if it's correct, you are not going to get acceptable results with it. + DPI가 너무 작습니다. 정확한 DPI여도, 괜찮은 결과물을 얻지 못할 것입니다. + + + DPI is too small for this pixel size. Such combination would probably lead to out of memory errors. + 픽셀 크기에 비해 DPI가 너무 작습니다. 메모리 에러가 일어날 수 있습니다. + + + %1 (page %2) + %1 (페이지 %2) + + + + ImageViewBase + + Use the mouse wheel or +/- to zoom. When zoomed, dragging is possible. + 마우스 휠, +/-로 확대가 가능합니다. 확대 후 드래그가 가능합니다. + + + + InteractiveXSpline + + Click to create a new control point. + 새 제어점을 만들려면 클릭하세요. + + + This point can be dragged. Hold Ctrl or Shift to drag along axes. + 이 점은 드래그 가능합니다. Ctrl과 Shift로 축을 따라 드래그 가능합니다. + + + Drag this point or delete it by pressing Del or D. + 이 점을 드래그하거나 Del 또는 D를 눌러 삭제하세요. + + + + LoadFileTask + + The following file could not be loaded: +%1 + 이 파일을 로드할 수 없습니다: +%1 + + + The following file doesn't exist:<br>%1<br><br>Use the <a href="#relink">Relinking Tool</a> to locate it. + 이 파일들은 존재하지 않습니다:<br>%1<br><br> <a href="#relink">재 링크 도구</a> 로 다시 위치시키세요. + + + + LoadFilesStatusDialog + + Some files failed to load + 몇몇 파일이 로드에 실패했습니다. + + + Loaded successfully: %1 + 로드 성공: %1 + + + Failed to load: %1 + 로드 실패: %1 + + + + MainWindow + + MainWindow + 메인 윈도우 + + + Tools + 도구 + + + Units + 단위 + + + File + 파일 + + + Help + 도움 + + + Thumbnails + 미리 보기 + + + Keep current page in view. + 현재 페이지를 계속 봅니다. + + + Follow page + 다음 페이지 + + + Filters + 필터 + + + Debug Mode + 디버그 모드 + + + Save Project + 프로젝트 저장 + + + Save Project As ... + 프로젝트 다른 이름으로 저장 + + + Next Page + 다음 페이지 + + + Previous Page + 이전 페이지 + + + New Project ... + 새 프로젝트 + + + Open Project ... + 프로젝트 열기 + + + Close Project + 프로젝트 닫기 + + + Quit + 종료 + + + Settings ... + 설정 + + + First Page + 첫번째 페이지 + + + Last Page + 마지막 페이지 + + + About + ScanTailor Advanced 정보 + + + Fix DPI ... + DPI 수정 + + + Relinking ... + 재 링크 도구 + + + Switch filter to orientation + 필터를 방향 수정으로 바꾸기 + + + Switch filter to split pages + 필터를 페이지 분할로 바꾸기 + + + Switch filter to deskew + 필터를 기울기 보정으로 바꾸기 + + + Switch filter to select content + 필터를 컨텐츠 선택으로 바꾸기 + + + Switch filter to margins + 필터를 테두리로 바꾸기 + + + Switch filter to output + 필터를 출력으로 바꾸기 + + + Pixels + 픽셀 + + + Millimetres + 밀리미터 + + + Inches + 인치 + + + Centimetres + 센티미터 + + + Default parameters ... + 기본 매개 변수 + + + Stop batch processing + 일괄 작업 종료하기 + + + Save the project? + 프로젝트를 저장하시겠습니까? + + + Insert before ... + 앞에 파일 추가하기 + + + Insert after ... + 뒤에 파일 추가하기 + + + Remove from project ... + 프로젝트에서 제거하기 + + + Insert here ... + 여기에 파일 추가하기 + + + Scan Tailor Projects + Scan Tailor 프로젝트 + + + Open Project + 프로젝트 열기 + + + Error + 에러 + + + Unable to open the project file. + 프로젝트 파일을 열 수 없습니다. + + + The project file is broken. + 프로젝트 파일이 손상되었습니다. + + + version + 버전 + + + Output is not yet possible, as the final size of pages is not yet known. +To determine it, run batch processing at "Select Content" or "Margins". + 페이지의 최종 크기를 알 수 없기 때문에 출력이 불가능합니다. +"컨텐츠 선택" 또는 "테두리" 작업을 먼저 수행해 주세요. + + + Unnamed + 이름 없음 + + + %2 - ScanTailor Advanced [%1bit] + %2 - ScanTailor Advanced [%1bit] + + + Error saving the project file! + 프로젝트를 저장하는 데 실패했습니다! + + + Files to insert + 삽입할 파일 + + + Images not in project (%1) + 프로젝트 (%1)에 이미지가 없습니다 + + + Skip failed files + 실패한 파일 스킵 + + + Remove + 삭제 + + + Use Home, End, PgUp/Q, PgDown/W to navigate between pages or Shift+PgUp/Q and Shift+PgDown/W to navigate between selected ones. Alt+Wheel - scale thumbnails. + Home, End, PgUp/Q, PgDown/W 를 눌러 페이지를 이동하거나 Shift+PgUp/Q and Shift+PgDown/W 로 선택된 페이지를 이동할 수 있습니다. Alt+Wheel은 미리 보기 크기를 조절합니다. + + + Previous Selected Page + 이전 선택된 페이지 + + + Next Selected Page + 다음 선택된 페이지 + + + Previous page. + 이전 페이지 + + + Next page. + 다음 페이지 + + + Filter selected pages only. + 선택된 페이지만 필터링하기 + + + + NewOpenProjectPanel + + Form + + + + New Project ... + 새 프로젝트 + + + Open Project ... + 프로젝트 열기 + + + Recent Projects + 최근 프로젝트 + + + + OrientationApplyDialog + + Fix Orientation + 방향 수정 + + + Apply to + 적용하기 + + + This page only (already applied) + 이 페이지만 (이미 적용되어 있음) + + + All pages + 모든 페이지 + + + This page and the following ones + 이 페이지와 다음 페이지 + + + This page and the following every other page + All odd or even pages, depending on the current page being odd or even. + 이 페이지와 모든 짝수(홀수) 페이지 + + + Every other page + All odd or even pages, depending on the current page being odd or even. + 모든 짝수(홀수) 페이지 + + + Selected pages + 선택된 페이지 + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Ctrl+Click / Shift+Click 으로 여러 페이지를 선택 가능합니다 + + + Every other selected page + 선택된 모든 짝수(홀수) 페이지 + + + The current page will be included. + 현재 페이지도 포함됩니다. + + + + OrientationOptionsWidget + + Form + + + + Rotate + 회전 + + + ... + ... + + + Reset + 초기화 + + + Apply to ... + 적용하기 + + + + OtsuBinarizationOptionsWidget + + Form + + + + 0 + 0 + + + Thinner + 가늘게 + + + Thicker + 두껍게 + + + + OutOfMemoryDialog + + Out of memory + 메모리 부족 + + + Out of Memory Situation in Scan Tailor + Scan Tailor에서 메모리 부족 현상이 발생했습니다. + + + Possible reasons + 가능한 원인 + + + Did you have to fix the DPI of your source images? Are you sure the values you entered were correct? + 원본 이미지의 DPI를 정상적으로 수정하셨습니까? + + + Sometimes your source images may have wrong DPI embedded into them. Scan Tailor tries to detect those, but it's not always easy to tell. You may need to check "Fix DPI even if they look normal" when creating a project and look into "All pages" tab in the "Fix DPI" dialog, which is also accessible from the Tools menu. + 때때로 원본 이미지가 잘못된 DPI가 포함되어 있을수도 있습니다. Scan Tailor가 이를 감지할려 하지만, 쉬운 일이 아닙니다. 프로젝트를 새로 시작할 때 DPI가 정상적인 것 처럼 보여도 "도구 -> DPI 수정"을 이용해 확인해봐야 합니다. + + + Is your output DPI set too high? Usually you don't need it higher than 600. + 출력 DPI가 너무 높지 않습니까? 일반적인 기기에선 600DPI 이상 필요하지 않습니다. + + + What can help + 도울수 있는 무언가 + + + Fix your DPIs. Learn how to <a href="http://vimeo.com/12524529">estimate unknown DPIs</a>. + Feel free to change the URL to a localized video / text tutorial. + DPI를 수정해야 합니다. 관련 <a href="http://vimeo.com/12524529">estimate 동영상</a>. + + + If your hardware and operating system are 64-bit capable, consider switching to a 64-bit version of Scan Tailor. + 만약 64비트 컴퓨터를 사용중이시라면, Scan Tailor의 64비트 버전으로 교체해 사용해주세요. + + + When working with grayscale images, make sure they are really grayscale. If they are actually color images that just happen to look grayscale, convert them to grayscale using some kind of batch image converter. This will both save memory and increase performance. + 회색조 이미지를 작업할 때는 실제 이미지가 회색조인지 확인하세요. 회색조로 보이지만 실제로는 컬러 이미지라면, 일괄 이미지 변환 프로그램을 이용해 회색조로 바꿔주세요. 이 작업은 메모리를 절약하고 성능을 향상시켜 줍니다. + + + As a last resort, you can save some memory by making sure thumbnails are pre-created rather than created on demand. This can be done by slowly scrolling the thumbnail list all the way from top to bottom before starting any real work. + 최후의 수단으로, 미리보기 이미지를 미리 만들고 작업하게 할 수 있습니다. 실제 작업을 하기 전에 미리보기 리스트의 스크롤을 위에서 아래로 천천히 내려주세요. + + + What won't help + 쓸데 없는 것 + + + Surprisingly, upgrading your RAM won't help here. The lack of RAM is compensated by the swap mechanism, which makes things slow, but keeps programs running. An out of memory situation means we ran out of memory address space, which has nothing to do with the amount of RAM you have. The only way to increase the memory address space is to go 64-bit hardware, 64-bit operating system and 64-bit Scan Tailor. + 놀랍게도, RAM을 업그레이드 하는게 도움이 안 될 수 있습니다. RAM부족 현상은 스왑 메커니즘에 의해 보완되므로 속도가 굉장히 느려지지만 프로그램은 계속 실행이 가능합니다. 이는 실제 RAM 용량과는 관련이 없습니다. 메모리 주소 공간을 늘리는 유일한 방법은 64비트 OS와 64비트 Scan Tailor를 사용하는 방법 뿐입니다. + + + Save Project + 프로젝트 저장 + + + Save Project As ... + 프로젝트 다른 이름으로 저장 + + + Don't Save + 저장하지 않기 + + + Project Saved Successfully + 프로젝트 저장 성공 + + + Please note that while Scan Tailor tries to catch out-of-memory situations and give you the opportunity to save your project, it's not always possible. This time it succeeded, but the next time it might just crash. + Scan Tailor는 항상 메모리 부족 현상을 탐지하고 튕기기 직전 프로젝트를 저장할 기회를 줄려 노력하지만, 항상 가능한 것은 아닙니다. 운 좋게 이번에는 저장했지만 다음은 아닐 수도 있습니다. + + + Scan Tailor Projects + Scan Tailor 프로젝트 + + + Error + 에러 + + + Error saving the project file! + 프로젝트를 저장하는 데 실패했습니다! + + + + OutputApplyColorsDialog + + Apply Mode + 적용 모드 + + + Apply to + 적용하기 + + + This page only (already applied) + 이 페이지만 (이미 적용되어 있음) + + + All pages + 모든 페이지 + + + This page and the following ones + 이 페이지와 다음 페이지 + + + Selected pages + 선택된 페이지 + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Ctrl+Click / Shift+Click 으로 여러 페이지를 선택 가능합니다 + + + + OutputChangeDewarpingDialog + + Apply Dewarping Mode + 왜곡 보정 모드 적용 + + + Mode + 모드 + + + Off + 끄기 + + + Auto (experimental) + 자동 (실험적) + + + Marginal (experimental) + 테두리 (실험적) + + + Manual + 수동 + + + Options + 옵션 + + + Post deskew + 사전 기울기 보정 + + + Apply to + 적용하기 + + + This page only + 이 페이지만 + + + All pages + 모든 페이지 + + + This page and the following ones + 이 페이지와 다음 페이지 + + + Selected pages + 선택된 페이지 + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Ctrl+Click / Shift+Click 으로 여러 페이지를 선택 가능합니다 + + + + OutputChangeDpiDialog + + Apply Output Resolution + 출력 해상도 적용 + + + DPI + DPI + + + Apply to + 적용하기 + + + This page only + 이 페이지만 + + + All pages + 모든 페이지 + + + This page and the following ones + 이 페이지와 다음 페이지 + + + Selected pages + 선택된 페이지 + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Ctrl+Click / Shift+Click 으로 여러 페이지를 선택 가능합니다 + + + + OutputOptionsWidget + + Form + + + + Output Resolution (DPI) + 출력 해상도 (DPI) + + + 0 + 0 + + + Change ... + 변경 + + + Mode + 모드 + + + Options + 옵션 + + + Normalize illumination before binarization. + 이진화 이전에 조명을 통일시키세요. + + + Equalize illumination (B&&W) + 조명 통일 (흑백) + + + Normalize illumination in color mode / in picture zones in mixed mode. + 믹스 모드의 사진 영역과 컬러 모드에서 조명을 통일시킵니다. + + + Equalize illumination (Color) + 조명 통일 (컬러) + + + Savitzky-Golay smoothing + Savitzky-Golay 스무딩 + + + Morphological smoothing + Morphological(형태학적) 스무딩 + + + Filling + 채우기 + + + Color: + 색상: + + + Threshold + 임계값 + + + qk: + 방법 + + + Color operations + 색상 조정 + + + Split the image into color segments and colorize b&w mask. + 이미지를 색상 조각으로 분할하고 흑백 마스크로 칠합니다. + + + Color segmentation + 색상 분할 + + + R + R + + + Red component adjustment. A negative value means the segmenter will be more sensitive to red and vice versa for a positive one. + 빨간색 요소 조정. 음수의 경우 빨간색에 더 민감하고 양수의 경우 덜 민감해집니다. + + + G + + + + Green component adjustment. A negative value means the segmenter will be more sensitive to green and vice versa for a positive one. + 초록색 요소 조정. 음수의 경우 초록색에 더 민감하고 양수의 경우 덜 민감해집니다. + + + B + + + + Blue component adjustment. A negative value means the segmenter will be more sensitive to blue and vice versa for a positive one. + 파란색 요소 조정. 음수의 경우 파란색에 더 민감하고 양수의 경우 덜 민감해집니다. + + + Reduce noise: + 노이즈 줄이기: + + + Reduce the number of colors of the output image by grouping similar colors. + 유사한 색상을 그룹화해 출력 이미지의 색상 종류를 줄여줍니다. + + + Posterize + Posterize(명암 단위 제한) + + + Level: + 레벨: + + + Lower value means lower count of colors in the output image, values between 2 and 6 inclusive guarantee an indexed image. + 값이 낮을수록 출력 이미지의 색상 수가 적어집니다. 2~6은 인덱스 이미지를 보장합니다. + + + Normalize + 일반화 + + + Make dark and light gray gradients black and white respectively. + 어두은 회색, 밝은 회색 그라디언트를 각각 흑백으로 만듭니다. + + + Force b&&w + 강제 흑백화 + + + Picture Shape + 사진 모양 + + + Sensitivity (%): + 민감도 (%): + + + Higher search sensivity + 더 높은 검색 민감도 + + + Apply To ... + 적용하기 + + + Splitting + 분할 + + + Split output + 분할 결과 + + + B&&W foreground + 흑백 전경 + + + Save the original background of the foreground layer. + 전경 부분을 원본 배경으로 저장합니다. + + + Original background + 원본 배경 + + + Color foreground + 색상 전경 + + + Despeckling + 얼룩 제거 + + + Dewarping + 왜곡 보정 + + + Fill offcut + 오프컷 채우기 + + + Fill margins + 테두리 채우기 + + + Despeckle + 얼룩 제거 + + + Processing + 작업 + + + This option should be enabled when the page has dark content on light background and disabled if vice versa in order to correct processing algorithms. + 이 옵션은 밝은 배경에서 검은 내용이 있을 때 활성화 해야 하고, 반대의 경우에는 비활성화 해야 합니다. + + + Black on white mode + 흰 종이 검은 글씨 모드 + + + + PageLayoutApplyDialog + + Apply to + 적용하기 + + + This page only (already applied) + 이 페이지만 (이미 적용되어 있음) + + + All pages + 모든 페이지 + + + This page and the following ones + 이 페이지와 다음 페이지 + + + This page and the following every other page + All odd or even pages, depending on the current page being odd or even. + 이 페이지와 모든 짝수(홀수) 페이지 + + + Every other page + All odd or even pages, depending on the current page being odd or even. + 모든 짝수(홀수) 페이지 + + + Selected pages + 선택된 페이지 + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Ctrl+Click / Shift+Click 으로 여러 페이지를 선택 가능합니다 + + + Every other selected page + 선택된 모든 짝수(홀수) 페이지 + + + The current page will be included. + 현재 페이지도 포함됩니다. + + + + PageLayoutOptionsWidget + + Form + + + + Margins + 테두리 + + + Top + + + + ... + ... + + + Bottom + 아래 + + + Left + 왼쪽 + + + Right + 오른쪽 + + + Apply To ... + 테두리 + + + Alignment + 위치 조정 + + + Auto + auto + 자동 + + + Manual + manual + 수동 + + + Original + original + 원래대로 + + + Auto Margins + 자동 테두리 + + + Auto aligning + 자동 위치 조정 + + + Enable horizontal + 수평 위치 조정 + + + Enable vertical + 수직 위치 조정 + + + Match size with other pages + 다른 페이지와 크기 같게 하기 + + + Guides Help + 가이드 도움말 + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Right-click</span><span style=" font-size:7pt;"> to create/remove guides from the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> called.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Right-click</span><span style=" font-size:7pt;"> on a guide to delete that guide from the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> called.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Shift+LMB</span><span style=" font-size:7pt;"> - drag the guide under the cursor.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Shift/Ctrl+LMB</span><span style=" font-size:7pt;"> on the content rectangle - drag the page content. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;"> pressed to restrict moving along the horizontal axis only or </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> for the vertical one. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;"> for usual dragging.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Double-click</span><span style=" font-size:7pt;"> on content - automatically attach that content to the nearest guide. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;"> pressed to select vertical guides only or </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> for horizontal ones. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;"> to attach that to both the nearest vertical and horizontal guides.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣</span><span style=" font-size:7pt;"> Use the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> to enable/disable showing the hard margins rectangle.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ 우 클릭</span><span style=" font-size:7pt;">을 통해</span><span style=" font-size:7pt; font-weight:600;">컨텍스트 메뉴</span><span style=" font-size:7pt;">에서 가이드를 추가/제거 할 수 있습니다.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ 우 클릭</span><span style=" font-size:7pt;">을 가이드 위에서 하면</span><span style=" font-size:7pt; font-weight:600;">컨텍스트 메뉴</span><span style=" font-size:7pt;">에서 가이드를 제거 할 수 있습니다.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Shift+왼쪽 버튼</span><span style=" font-size:7pt;"> - 가이드를 커서 아래에서 드래그합니다.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Shift/Ctrl+왼쪽 버튼</span><span style=" font-size:7pt;"> - 컨텐츠 사각형 위에 있을 시 페이지 컨텐츠를 드래그합니다. </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;">를 누른채 움직이면 수평으로만 움직이며 </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;">을 누른채 움직이면 수직으로만 움직입니다. </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;">를 누르면 일반적인 드래그입니다.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ 더블 클릭</span><span style=" font-size:7pt;"> 을 컨텐츠 위에서 - 자동으로 컨텐츠를 주변 가이드에 붙입니다. </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;">를 누르면 수직 가이드만 적용되며 </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;">을 누르면 수평 가이드만 적용됩니다. </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;">를 누르면 수직, 수평 가이드가 모두 적용됩니다.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣</span><span style=" font-size:7pt;"></span><span style=" font-size:7pt; font-weight:600;">컨텍스트 메뉴</span><span style=" font-size:7pt;">를 이용해 두꺼운 여백 사각형을 보일지 결정할 수 있습니다..</span></p></body></html> + + + Mode: + 모드: + + + + PageSplitModeDialog + + Split Pages + 페이지 분할 + + + Mode + 모드 + + + Auto + 자동 + + + Manual + 수동 + + + Options + 옵션 + + + Apply cut + 잘라내기 적용 + + + Apply to + 적용하기 + + + This page only + 이 페이지만 + + + All pages + 모든 페이지 + + + This page and the following ones + 이 페이지와 다음 페이지 + + + This page and the following ones + 이 페이지와 다음 페이지 + + + Every other page + 모든 짝수(홀수) 페이지 + + + Selected pages + 선택된 페이지 + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Ctrl+Click / Shift+Click 으로 여러 페이지를 선택 가능합니다 + + + Every other selected page + 선택된 모든 짝수(홀수) 페이지 + + + The current page will be included. + 현재 페이지도 포함됩니다. + + + + PageSplitOptionsWidget + + Form + + + + Page Layout + 페이지 레이아웃 + + + ? + + + + Change ... + + + + Split Line + 줄 나누기 + + + Auto + 자동 + + + Manual + 수동 + + + + PictureZonePropDialog + + Zone Properties + 영역 속성 + + + Subtract from all layers + 모든 레이어에서 빼기 + + + Add to auto layer + 자동 레이어에 더하기 + + + Subtract from auto layer + 자동 레이어에 빼기 + + + + ProjectFilesDialog + + Project Files + 프로젝트 파일 + + + Input Directory + 입력 디렉토리 + + + Browse + 찾기 + + + Output Directory + 출력 디렉토리 + + + Files Not In Project + 프로젝트에서 제외할 파일 + + + Select All + 모두 선택하기 + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Add selected files to project.</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">선택된 파일을 프로젝트에 추가합니다.</p></body></html> + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Remove selected files from project.</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">선택된 파일을 프로젝트에서 삭제합니다.</p></body></html> + + + Files In Project + 프로젝트에서 사용할 파일 + + + Right to left layout (for Hebrew and Arabic) + 오른쪽에서 왼쪽으로 (히브리어와 아랍어 전용) + + + Fix DPIs, even if they look OK + 괜찮아 보여도 DPI 수정하기 + + + Error + 에러 + + + No files in project! + 프로젝트에 사용할 파일이 없습니다! + + + Input directory is not set or doesn't exist. + 입력 디렉토리가 설정되지 않았거나 존재하지 않습니다. + + + Input and output directories can't be the same. + 입력 디렉토리와 출력 디렉토리가 동일합니다. + + + Create Directory? + 디렉토리를 만드시겠습니까? + + + Output directory doesn't exist. Create it? + 출력 디렉토리가 존재하지 않습니다. 만드시겠습니까? + + + Unable to create output directory. + 출력 디렉토리를 만들 수 없습니다. + + + Output directory is not set or doesn't exist. + 출력 디렉토리가 설정되지 않았거나 존재하지 않습니다. + + + Some of the files failed to load. +Either we don't support their format, or they are broken. +You should remove them from the project. + 몇몇 파일의 로드에 실패했습니다. +또는 파일 포맷을 지원하지 않거나, 깨진 파일일 수 있습니다. +프로젝트에서 삭제해 주시길 바랍니다. + + + + ProjectOpeningContext + + Error + 에러 + + + The project file is not compatible with the current application version. + 프로젝트 파일이 프로그램과 호환되지 않습니다. + + + Unable to interpret the project file. + 프로젝트 파일을 해석할 수 없습니다. + + + + QObject + + px + px + + + mm + mm + + + cm + cm + + + in + in + + + + RelinkingDialog + + Relinking + 재 링크 도구 + + + Undo + 되돌리기 + + + ... + ... + + + Substitution File for %1 + %1의 대체 파일 + + + Substitution Directory for %1 + %1의 대체 디렉토리 + + + This change would merge several files into one. + 이 변경으로 여러 파일이 하나로 병합됩니다. + + + + RemovePagesDialog + + Remove Pages + 페이지 삭제 + + + Remove %1 page(s) from project? + %1 페이지(들)을 프로젝트에서 삭제하겠습니까? + + + Corresponding output files will be deleted, while input files will remain. + 이에 해당하는 출력 파일은 삭제되지만, 원본 파일은 프로젝트에서 삭제해도 여전히 존재합니다. + + + + SauvolaBinarizationOptionsWidget + + Form + + + + Coef: + 계수 + + + The dimensions of a pixel neighborhood to consider. + 고려해야할 주변 픽셀수의 범위를 설정합니다. + + + Window size: + 창 크기: + + + Default value is 0.34. + 기본값은 0.34입니다. + + + + SelectContentApplyDialog + + Select Content + 컨텐츠 선택 + + + Options + 옵션 + + + Apply content box + 컨텐츠 박스 적용 + + + Apply page box + 페이지 박스 적용 + + + Apply to + 적용하기 + + + This page only (already applied) + 이 페이지만 (이미 적용되어 있음) + + + All pages + 모든 페이지 + + + This page and the following ones + 이 페이지와 다음 페이지 + + + This page and the following every other page + All odd or even pages, depending on the current page being odd or even. + 이 페이지와 모든 짝수(홀수) 페이지 + + + Every other page + All odd or even pages, depending on the current page being odd or even. + 모든 짝수(홀수) 페이지 + + + Selected pages + 선택된 페이지 + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Ctrl+Click / Shift+Click 으로 여러 페이지를 선택 가능합니다 + + + Every other selected page + 선택된 모든 짝수(홀수) 페이지 + + + The current page will be included. + 현재 페이지도 포함됩니다. + + + + SelectContentOptionsWidget + + Form + + + + Page Box + 페이지 박스 + + + Options + 옵션 + + + Shift with corners while they are in black. + 검은색 테두리를 옮기기 + + + Fine Tune Page Corners + 페이지 테두리 깔끔하게 자르기 + + + Disable + 비활성화 + + + Auto + 자동 + + + Content Box + 컨텐츠 박스 + + + Manual + 수동 + + + Width + + + + Height + 높이 + + + Apply to ... + 적용하기 + + + + SettingsDialog + + Settings + 설정 + + + General + 일반 + + + Accelerate user interface with OpenGL + OpenGL로 사용자 인터페이스 가속화 + + + Device: %1 + 사용 인터페이스: %1 + + + Auto-save the existing project + 작업 중인 프로젝트를 자동 저장하기 + + + Processing + 작업 + + + Deviation + 편차 + + + Highlight the thumbnails of pages with high deviation + 편집 편차가 심한 페이지를 강조 표시합니다 + + + Params + 매개 변수 + + + Deksew: + 기울기 보정: + + + Select content: + 컨텐츠 선택: + + + Deviation multiplier: a higher value means lower sensivity. + 편차 값: 높은 값일수록 덜 민감합니다. + + + Margins: + 테두리: + + + The minimum deviation to be highlighted. + 최소 편차가 강조될 것입니다. + + + Color Scheme: + 색 테마: + + + Language: + 언어: + + + Saving + 저장 + + + B&W Compression: + 흑백 압축 + + + Color Compression: + 컬러 압축 + + + Your hardware / driver don't provide the necessary features + 하드웨어 / 드라이버가 필요한 기능을 제공하지 않습니다. + + + Dark + 다크 + + + Light + 라이트 + + + None + 없음 + + + LZW + LZW + + + Deflate + Deflate + + + CCITT G4 + CCITT G4 + + + JPEG + JPEG + + + Information + 정보 + + + ScanTailor need to be restarted to apply the color scheme changes. + ScanTailor는 색 테마 변경후 재시작해야 적용됩니다. + + + User Interface + 유저 인터페이스 + + + Thumbnails + 미리보기 + + + Quality: + 퀄리티: + + + The pixel size of the thumbnail image. The default value is 200. + 미리보기 이미지의 픽셀 개수입니다. 기본 값은 200 입니다. + + + Size: + 크기: + + + The thumbnail size in the view. The default value is 250. + 실제 볼때의 미리보기 이미지 크기입니다. 기본 값은 250 입니다. + + + White on black detection + 검은색 위 흰색 인식 + + + Auto detect pages with light content on dark background. The corrections to all the auto algorithms are made for such pages. + 검은 배경의 흰 글씨를 인식합니다. 모든 자동 알고리즘에 대한 수정은 해당 페이지에 대해 수행됩니다. + + + Auto detect light content on dark background + 검은 배경 위 흰색 글씨 인식 + + + Whether to use auto detection at the output stage. The wrong result can be changed manually in the output filter options. + 출력 단계에서 자동 감지를 사용할지 여부입니다. 출력 필터 옵션에서 수동으로 잘못된 결과를 변경할 수 있습니다. + + + Use auto detection at the output stage + 출력 단계에서 자동 인식 사용하기 + + + Native + 네이티브 + + + + StageListView + + Launch batch processing + 일괄 작업 실행하기 + + + + StatusBarPanel + + Form + + + + Mouse position. + 마우스 위치. + + + Mouse position relative to page. + 페이지에 대한 마우스 위치. + + + Physical size. + 실제 크기. + + + Physical size of image. + 이미지의 실제 크기. + + + Page number. + 페이지 넘버. + + + Position of the selected page in current order. + 전체 페이지와 현재 페이지의 위치. + + + Page information. + 페이지 정보. + + + Page name and type. + 페이지 이름과 종류. + + + p. %1 / %2 + 페이지. %1 / %2 + + + [L] + [L] + + + [R] + [R] + + + + SystemLoadWidget + + Form + + + + System load + 시스템 로드 + + + ... + ... + + + + ThumbnailSequence + + %1 (page %2) + %1 (페이지 %2) + + + + WolfBinarizationOptionsWidget + + Form + + + + The dimensions of a pixel neighborhood to consider. + 고려해야할 주변 픽셀수의 범위를 설정합니다. + + + Window size: + 창 크기: + + + The minimum possible gray level that can be made white. + 흰색으로 만들 수 있는 회색 레벨의 최소값입니다. + + + Upper Bound: + 상한: + + + Lower bound: + 하한: + + + The maximum possible gray level that can be made black. + 흰색으로 만들 수 있는 회색 레벨의 최대값입니다. + + + Coeff: + 계수 + + + Default value is 0.3. + 기본값은 0.3입니다. + + + + ZoneContextMenuInteraction + + Delete + 삭제 + + + Properties + 속성 + + + + ZoneCreationInteraction + + Click to finish this rectangular zone. ESC to cancel. + 사각형 영역을 마칠려면 클릭하세요. ESC를 누르면 취소합니다. + + + Click to finish this zone. ESC to cancel. + 이 영역을 마칠려면 클릭하세요. ESC를 누르면 취소합니다. + + + Connect first and last points to finish this zone. ESC to cancel. + 이 영역을 마칠려면 처음과 마지막 점을 연결하세요. ESC를 누르면 취소합니다. + + + Hold Ctrl to create a rectangular zone or Shift+Alt+LMB to use lasso mode. ESC to cancel. + Ctrl을 눌러 사각형 영역을 만들거나 Shift+Alt+마우스 왼쪽 버튼을 눌러 올가미 모드를 이용하세요. ESC를 누르면 취소합니다. + + + + ZoneDefaultInteraction + + Drag the vertex. Hold Ctrl to make the vertex angle right. + 꼭짓점을 드래그합니다. Ctrl을 누르고 있으면 꼭짓점을 오른쪽으로 만듭니다. + + + Click to create a new vertex here. + 클릭하면 꼭짓점을 새롭게 만듭니다. + + + Right click to edit zone properties. Hold Shift to drag the zone or Shift+Ctrl to copy. Press Del to delete this zone. + 영역 속성을 수정할려면 우클릭 하세요. Shift를 누르면 드래그가 가능하고, Shift+Ctrl을 누르면 복사가 가능합니다. Delete로 영역 삭제가 가능합니다. + + + Click to start creating a new zone. Use Ctrl+Alt+Click to copy the latest created zone. + 새 영역을 만들려면 클릭하세요. Ctrl+Alt+클릭으로 가장 최근에 생성된 영역 복사가 가능합니다. + + + + ZoneDragInteraction + + Release left mouse button to finish dragging. + 드래그를 종료할려면 왼쪽 마우스를 떼세요. + + + + ZoneVertexDragInteraction + + Merge these two vertices. + 이 두 정점을 병합하세요. + + + Move the vertex to one of its neighbors to merge them. + 정점을 주변 정점 중 하나로 이동해 병합합니다. + + + + deskew::Filter + + Natural order + 일반적인 순서대로 정렬하기 + + + Order by decreasing deviation + 편차가 높은 순서대로 정렬하기 + + + Deskew + 기울기 보정 + + + + deskew::ImageView + + Use Ctrl+Wheel to rotate or Ctrl+Shift+Wheel for finer rotation. + Ctrl+마우스 휠을 통해 회전하거나 Ctrl+Shift+마우스 휠을 통해 더 미세하게 회전 가능합니다. + + + Drag this handle to rotate the image. + 이 핸들을 드래그해 이미지 회전이 가능합니다. + + + + deskew::OptionsWidget + + Apply Deskew + 기울기 보정 적용하기 + + + + fix_orientation::Filter + + Fix Orientation + 방향 수정 + + + + output::ChangeDpiDialog + + Custom + 커스텀 + + + Error + 에러 + + + DPI is not set. + DPI가 설정되지 않았습니다. + + + DPI is too low! + DPI가 너무 낮습니다. + + + DPI is too high! + DPI가 너무 높습니다. + + + + output::FillZoneEditor + + Pick color + 색상 선택 + + + + output::Filter + + Output + 출력 + + + Natural order + 자연적인 순서 + + + Order by completeness + 완전성 순 + + + + output::OptionsWidget + + Black and White + 흑백 + + + Color / Grayscale + 컬러 / 회색조 + + + Mixed + 혼합 + + + Otsu + + + + Sauvola + + + + Wolf + + + + Background + 배경 + + + White + 흰색 + + + Free + 자유 + + + Rectangular + 직사각형 + + + Apply Splitting Settings + 분할 설정 적용 + + + Apply Despeckling Level + 얼룩 제거 레벨 적용 + + + Apply Depth Perception + 깊이 인식 적용 + + + Off + 끄기 + + + Auto + 자동 + + + Manual + 수동 + + + Marginal + 테두리 + + + deskew disabled + 기울기 보정 꺼짐 + + + Apply Processing Settings + 적용 작업 설정 + + + + output::TabbedImageView + + Use Ctrl+1..5 to switch the tabs. + Ctrl+1..5 를 통해 탭을 전환합니다. + + + + output::Task::UiUpdater + + Picture zones are only available in Mixed mode. + 그림 영역은 혼합 모드에서만 사용 가능합니다. + + + Despeckling can't be done in Color / Grayscale mode. + 얼룩 제거는 컬러 / 회색조 모드에서 적용 불가능합니다. + + + Output + 출력 + + + Picture Zones + 사진 영역 + + + Fill Zones + 채우기 영역 + + + Dewarping + 왜곡 보정 + + + Despeckling + 얼룩 제거 + + + + page_layout::Filter + + Natural order + 일반적인 순서대로 정렬하기 + + + Order by increasing width + 폭이 높은 순서대로 정렬하기 + + + Order by increasing height + 높이가 높은 순서대로 정렬하기 + + + Order by decreasing deviation + 편차가 높은 순서대로 정렬하기 + + + Margins + 테두리 + + + + page_layout::ImageView + + Resize margins by dragging any of the solid lines. + 실선을 드래그해서 여백의 크기를 조절하세요. + + + Hold left mouse button to drag the page content. + 왼쪽 버튼을 누르고 있으면 페이지 컨텐츠가 드래그됩니다. + + + Release left mouse button to finish dragging. + 왼쪽 버튼을 떼면 드래그가 종료됩니다. + + + Add a horizontal guide + 가로 안내선 추가하기 + + + Add a vertical guide + 세로 안내선 추가하기 + + + Remove all the guides + 모든 안내선 삭제하기 + + + Remove this guide + 이 안내선 삭제하기 + + + Show hard margins rectangle + 두꺼운 여백 사각형 표시 + + + Drag the guide. + 가이드 드래그. + + + + page_layout::OptionsWidget + + Apply Margins + 테두리 적용 + + + Apply Alignment + 위치 조정 적용 + + + + page_split::Filter + + Natural order + 일반적인 순서대로 정렬하기 + + + Order by split type + 페이지 분할 종류에 따라 정렬하기 + + + Split Pages + 페이지 분할 + + + + page_split::ImageView + + Drag the line or the handles. + 선이나 핸들을 드래그하십시오. + + + + page_split::OptionsWidget + + Set manually + 수동으로 설정하기 + + + Auto detected + 자동 인식 + + + + page_split::UnremoveButton + + Restore removed page. + 삭제한 페이지 복구하기 + + + + select_content::Filter + + Natural order + 일반적인 순서대로 정렬하기 + + + Order by increasing width + 폭이 높은 순서대로 정렬하기 + + + Order by increasing height + 높이가 높은 순서대로 정렬하기 + + + Order by decreasing deviation + 편차가 높은 순서대로 정렬하기 + + + Select Content + 컨텐츠 선택 + + + + select_content::ImageView + + Use the context menu to enable / disable the content box. Hold Shift to drag a box. Use double-click on content to automatically adjust the content area. + 컨텐츠 박스를 활성/비활성화 하는데 컨텍스트 메뉴를 사용합니다. Shift를 누르면 박스를 드래그합니다. 더블 클릭시 자동적으로 영역을 조정합니다. + + + Drag lines or corners to resize the content box. + 선 또는 테두리를 드래그하면 컨텐츠 박스를 조절 가능합니다. + + + Drag lines or corners to resize the page box. + 선 또는 테두리를 드래그하면 페이지 박스를 조절 가능합니다. + + + Hold left mouse button to drag the content box. + 왼쪽 버튼을 누르고 있으면 컨텐츠 박스가 드래그됩니다. + + + Release left mouse button to finish dragging. + 왼쪽 버튼을 떼면 드래그가 종료됩니다. + + + Hold left mouse button to drag the page box. + 왼쪽 버튼을 누르고 있으면 페이지 박스가 드래그됩니다. + + + Create Content Box + 컨텐츠 박스 생성하기 + + + Remove Content Box + 컨텐츠 박스 제거하기 + + + From 61e423c5bb6afc112eaf3da59a108fcd5570483b Mon Sep 17 00:00:00 2001 From: maltaisn Date: Sun, 4 Oct 2020 21:09:35 -0400 Subject: [PATCH 02/25] Add French translation --- src/translations/scantailor_fr.ts | 3662 +++++++++++++++++++++++++++++ 1 file changed, 3662 insertions(+) create mode 100644 src/translations/scantailor_fr.ts diff --git a/src/translations/scantailor_fr.ts b/src/translations/scantailor_fr.ts new file mode 100644 index 000000000..214e2e777 --- /dev/null +++ b/src/translations/scantailor_fr.ts @@ -0,0 +1,3662 @@ + + + + + AboutDialog + + + ScanTailor Advanced + Software name was not translated at all, neither was any of its related versions (universal, plus, etc). + + + + + About + À propos + + + + Scan Tailor is an interactive post-processing tool for scanned pages. It performs operations such as page splitting, skew correction, adding/removing margins, and others. You give it raw scans, and you get pages ready to be printed or assembled into a PDF or DJVU file. Scanning and optical character recognition is out of scope of this project. + Scan Tailor est un outil interactif de post-traitement pour les pages numérisées. Il permet d'effectuer des d'opérations telles que la séparation des pages, le redressement automatique, l'ajout ou le retrait de marges, et plus encore. À partir de numérisations brutes, il est possible d'obtenir des pages prêtes à être imprimées ou assemblées en un fichier PDF ou DJVU. La numérisation en tant que tel ainsi que la reconnaissance de caractères (OCR) ne sont pas visés par ce project. + + + + Authors + Auteurs + + + + Joseph Artsimovich + + + + + Contributors + Contributeurs + + + + U235 - Picture auto-detection algorithm. + U235 - Algorithme de détection automatique des images. + + + + Robert B. - First generation dewarping algorithm. + Robert B. - Première génération de l'algorithme de dégauchissement. + + + + Andrey Bergman - System load adjustment. + Andrey Bergman - Ajustement de la charge sur le système. + + + + Vadim Kuznetsov - ver. Plus + Vadim Kuznetsov - ver. Plus + + + + monday2000 - ver. Featured + monday2000 - ver. Featured + + + + Alexander Trufanov - ver. Universal + + + + + License + Licence + + + + Lead Developer of original version + Développeur principal de la version originale + + + + Lead Developer of Advanced version + Développeur principale de la version Advanced + + + + 4lex4 + + + + + Petr Kovář - ver. Enhanced + Petr Kovář - ver. Enhanced + + + + BatchProcessingLowerPanel + + + Form + + + + + Beep when finished + Sonner lorsque terminé + + + + ColorPickupInteraction + + + Click on an area to pick up its color, or ESC to cancel. + Cliquer sur une zone pour prendre sa couleur, ou Échap pour annuler. + + + + DefaultParamsDialog + + + Default parameters + Paramètres par défaut + + + + Save + Sauvegarder + + + + Delete + Supprimer + + + + Units: + Unités: + + + + Fix Orientation + Orientation + + + + Rotate + Pivoter + + + + + + + + + + + + + + + + ... + + + + + Reset + Réinitialiser + + + + Split Pages + Séparation + + + + + Mode + Mode + + + + Page Layout + Disposition de la page + + + + + Deskew + Redressement + + + + + + + + Auto + Auto + + + + + + + Manual + Manuel + + + + Select Content + Contenu + + + + Page Box + Bornes de la page + + + + + Disable + Désactiver + + + + + Options + Options + + + + Shift with corners while they are in black. + Décaler les coins lorsque qu'ils sont dans le noir. + + + + Fine Tune Page Corners + Réglage précis des coins + + + + Width + Largeur + + + + Height + Hauteur + + + + Content Box + Bornes du contenu + + + + + Margins + Marges + + + + Auto Margins + Marges automatiques + + + + Top + Haut + + + + Right + Droite + + + + Left + Gauche + + + + Bottom + Bas + + + + Alignment + Alignement + + + + + Auto + auto + Auto + + + + + Manual + manual + Manuel + + + + + Original + original + Original + + + + Match size with other pages + Égaliser la taille avec les autres pages + + + + Horizontal mode: + Mode horizontal: + + + + Vertical mode: + Mode vertical: + + + + Output + Sortie + + + + Normalize illumination before binarization. + Normaliser l'éclairement avant la binarisation. + + + + Equalize illumination (B&&W) + Égaliser l'éclairement (N&&B) + + + + Normalize illumination in color mode / in picture zones in mixed mode. + En mode couleur, normaliser tout l'éclairement / en mode mixe, seulement dans les zones d'images. + + + + Equalize illumination (Color) + Égaliser l'éclairement (couleur) + + + + Savitzky-Golay smoothing + Lissage Savitzky-Golay + + + + Morphological smoothing + Lissage morphologique + + + + Filling + Remplissage + + + + Color: + Couleur: + + + + Color operations + Opérations sur les couleurs + + + + Split the image into color segments and colorize b&w mask. + Séparer les couleurs de l'image en segments et coloriser le masque N&B. + + + + Color segmentation + Segmentation des couleurs + + + + R + R + + + + Red component adjustment. A negative value means the segmenter will be more sensitive to red and vice versa for a positive one. + Ajustement de la composante rouge. Une valeur négative signifie que le segmentateur sera plus sensible au rouge et vice versa pour une valeur positive. + + + + G + V + + + + Green component adjustment. A negative value means the segmenter will be more sensitive to green and vice versa for a positive one. + Ajustement de la composante verte. Une valeur négative signifie que le segmentateur sera plus sensible au vert et vice versa pour une valeur positive. + + + + B + B + + + + Blue component adjustment. A negative value means the segmenter will be more sensitive to blue and vice versa for a positive one. + Ajustement de la composante bleue. Une valeur négative signifie que le segmentateur sera plus sensible au bleu et vice versa pour une valeur positive. + + + + Reduce noise: + Réduction du bruit: + + + + Reduce the number of colors of the output image by grouping similar colors. + Réduire le nombre de couleurs à la sortie en réunissant les couleurs similaires. + + + + Posterize + Postériser + + + + Level: + Niveau: + + + + Lower value means lower count of colors in the output image, values between 2 and 6 inclusive guarantee an indexed image. + Une valeur plus basse se traduit par un nombre plus bas de couleurs à la sortie. Les valeurs entre 2 et 6 garantissent une image indexée. + + + + Normalize + Normaliser + + + + Make dark and light gray gradients black and white respectively. + Rendre respectivement noir et blanc les gradients de nuances de gris allants du foncé au pâle. + + + + Force b&&w + Forcer le N&&B + + + + Threshold + Seuil + + + + Method: + Méthode: + + + + 0 + + + + + Thinner + Plus mince + + + + Thicker + Plus épais + + + + Coef: + Coeff: + + + + + The dimensions of a pixel neighborhood to consider. + Les dimensions au voisinage d'un pixel à considérer. + + + + + Window size: + Taille de la fenêtre: + + + + Default value is 0.34. + La valeur par défaut est 0.34. + + + + The minimum possible gray level that can be made white. + Le niveau minimal de gris qui peut être rendu blanc. + + + + Upper Bound: + Limite supérieure: + + + + Lower bound: + Limite inférieure: + + + + The maximum possible gray level that can be made black. + Le niveau maximal de gris qui peut être rendu noir. + + + + Coeff: + Coeff: + + + + Default value is 0.3. + La valeur par défaut est 0.3. + + + + Picture Shape + Zones d'image + + + + Sensitivity (%): + Sensibilité (%): + + + + Higher search sensivity + Recherche haute-sensibilité + + + + Output Resolution (DPI) + Résolution de sortie (DPI) + + + + Splitting + Séparation des couches + + + + Split output + Séparer la sortie + + + + B&&W foreground + Premier plan en N&&B + + + + Save the original background of the foreground layer. + Sauvegarder l'arrière-plan original de la couche au premier plan. + + + + Original background + Arrière-plan original + + + + Color foreground + Premier plan en couleur + + + + Despeckling + Détachage + + + + Dewarping + Dégauchissement + + + + Post deskew + Post-redressement + + + + Depth perception + Perception de la profondeur + + + + Black and White + Noir et blanc + + + + Color / Grayscale + Couleur / nuances de gris + + + + Mixed + Mixe + + + + Background + Arrière-plan + + + + White + Blanc + + + + Otsu + Otsu + + + + Sauvola + Sauvola + + + + Wolf + Wolf + + + + + Off + Désactivé + + + + Free + Libre + + + + Rectangular + Rectangulaire + + + + + + Custom + Personnalisé + + + + Marginal + Marginal + + + + Default + Par défaut + + + + Source + Source + + + + + + + + Error + Erreur + + + + Error loading the profile. + Erreur lors du chargement du profil. + + + + The name conflicts with a default profile name. Please enter a different name. + Le nom rentre en conflit avec un profil par défaut. Veuillez entrer un autre nom. + + + + Error saving the profile. + Erreur lors de l'enregistrement du profil. + + + + Error deleting the profile. + Erreur lors de la suppression du profil. + + + + Fill offcut + Remplir la coupe + + + + Fill margins + Remplir les marges + + + + Despeckle + Détacher + + + + The profile file is not compatible with the current application version. Remove? + Le fichier de profil n'est pas compatible avec la version courante de l'application. Supprimer? + + + + DragHandler + + + Unrestricted dragging is possible by holding down the Shift key. + Il est possible de glisser librement en enfonçant la touche Maj. + + + + ErrorWidget + + + Form + + + + + FixDpiDialog + + + Fix DPI + Correction des DPI + + + + Tab 1 + + + + + Tab 2 + + + + + DPI + DPI + + + + Custom + Personnalisé + + + + x + x + + + + Apply + Appliquer + + + + Need Fixing + Correction nécessaire + + + + + All Pages + Toutes les pages + + + + DPI is too large and most likely wrong. + Cette valeur de DPI est trop grande et probablement incorrecte. + + + + DPI is too small. Even if it's correct, you are not going to get acceptable results with it. + Cette valeur de DPI est trop petite. Même si elle est correcte, le résultat final ne sera bon. + + + + DPI is too small for this pixel size. Such combination would probably lead to out of memory errors. + Cette valeur de DPI est trop petite. Une telle combinaison risque probablement d'engendrer un manque de mémoire. + + + + %1 (page %2) + %1 (page %2) + + + + ImageViewBase + + + Use the mouse wheel or +/- to zoom. When zoomed, dragging is possible. + Utiliser la roulette de la souris ou les touches +/- pour zoomer. Une fois zoomée, il est possible de déplacer l'image. + + + + InteractiveXSpline + + + Click to create a new control point. + Cliquer pour créer un nouveau point de contrôle. + + + + This point can be dragged. Hold Ctrl or Shift to drag along axes. + Ce point peut être glissé. Enfoncer Ctrl ou Maj pour glisser le long des axes. + + + + Drag this point or delete it by pressing D key. + Glisser ce point ou le supprimer en appuyant sur D. + + + + LoadFileTask + + + The following file could not be loaded: +%1 + Le fichier suivant n'a pas pu être chargé: +%1 + + + + The following file doesn't exist:<br>%1<br><br>Use the <a href="#relink">Relinking Tool</a> to locate it. + Le fichier suivant n'existe pas:<br>%1<br><br>Utilisez l'<a href="#relink">outil de réassociation</a> pour le localiser. + + + + LoadFilesStatusDialog + + + Some files failed to load + Certains fichiers n'ont pas pu être chargés + + + + Loaded successfully: %1 + Chargement réussi: %1 + + + + Failed to load: %1 + Chargement échoué: %1 + + + + MainWindow + + + MainWindow + + + + + Tools + Outils + + + + Units + Unités + + + + File + Fichier + + + + Help + Aide + + + + Thumbnails + Vignettes + + + + Keep current page in view. + Garder la page courante en vue. + + + + Navigate through selected pages only. + Naviguer à travers les pages sélectionnées seulement. + + + + Magnify thumbnails. (Ctrl++) + Grossir les vignettes. (Ctrl++) + + + + Diminish thumbnails. (Ctrl+-) + Rapetisser les vignettes. (Ctrl+-) + + + + Go To Page... (Ctrl+G) + Aller à la page... (Ctrl+G) + + + + Enable multi page selection mode. + Activer le mode de sélection multi-page. + + + + Single/multi column display. + Affichage à une ou plusieurs colonnes. + + + + Sorting order. + Ordre de tri. + + + + Highlight deviation. + Accentuer les déviations. + + + + Filters + Filtres + + + + Debug Mode + Mode déboggage + + + + + Save Project + Enregistrer le projet + + + + Save Project As ... + Enregistrer le projet sous ... + + + + + Next Page + Page suivante + + + + + Previous Page + Page précédente + + + + New Project ... + Nouveau projet ... + + + + Open Project ... + Ouvrir un projet ... + + + + Close Project + Fermer le projet + + + + Quit + Quitter + + + + Settings ... + Paramètres ... + + + + First Page + Première page + + + + Last Page + Dernière page + + + + About + À propos + + + + Fix DPI ... + Correction des DPI ... + + + + Relinking ... + Outil de réassociation ... + + + + + + + + + Switch filter to orientation + Changer le filtre à orientation + + + + Switch filter to split pages + Changer le filtre à séparation des pages + + + + Switch filter to deskew + Changer le filtre à redressement + + + + Switch filter to select content + Change le fitre à sélection de contenu + + + + Switch filter to margins + Change le filtre à marges + + + + Switch filter to output + Changer le filtre à sortie + + + + Pixels + Pixels + + + + Millimetres + Millimètres + + + + Inches + Pouces + + + + Centimetres + Centimètres + + + + Default parameters ... + Paramètres par défaut ... + + + + + Go To Page + Aller à la page + + + + Magnify thumbnails + Grossir les vignettes + + + + Diminish thumbnails + Rapetisser les vignettes + + + + + Reload current page + Recharger la page courante + + + + Stop batch processing + Arrêter le traitement du lot + + + + Save the project? + Enregistrer le projet? + + + + Insert before ... + Insérer avant ... + + + + Insert after ... + Insérer après ... + + + + Remove from project ... + Retirer du projet ... + + + + Insert here ... + Insérer ici ... + + + + + Scan Tailor Projects + Projets Scan Tailor + + + + Open Project + Ouvrir le projet + + + + + + + Error + Erreur + + + + Unable to open the project file. + Impossible d'ouvrir le fichier de projet. + + + + The project file is broken. + Le fichier de projet est brisé. + + + + version + version + + + + Output is not yet possible, as the final size of pages is not yet known. +To determine it, run batch processing at "Select Content" or "Margins". + La sortie n'est pas encore possible, car la taille finale des pages n'est pas encore connue. +Pour la déterminer, exécuter le traitement de toutes les images à l'étape "Sélection du contenu" ou "Marges". + + + + Unnamed + Sans nom + + + + %2 - ScanTailor Advanced [%1bit] + %2 - ScanTailor Advanced [%1bit] + + + + + Error saving the project file! + Erreur lors de l'enregistrement du fichier de projet! + + + + Files to insert + Fichiers à insérer + + + + Images not in project (%1) + Images non-incluses (%1) + + + + Skip failed files + Sauter les fichiers manqués + + + + Remove + Supprimer + + + + Enter the page number: + Entrez le numéro de page: + + + + Use Home, End, PgUp/Q, PgDown/W to navigate between pages or Shift+PgUp/Q and Shift+PgDown/W to navigate between selected ones. Alt+Wheel - scale thumbnails. + Utiliser les touches Début, Fin, PgPréc/Q, PgSuiv/W pour naviguer entre les pages ou Maj+PgPréc/Q et Maj+PgSuiv/W pour naviguer entre les pages sélectionnées. Alt+Roulette pour changer la taille des vignettes. + + + + + + + Previous Selected Page + Page sélectionnée précédente + + + + + + + Next Selected Page + Page sélectionnée suivante + + + + Previous page. + Page précédente. + + + + Next page. + Page suivante. + + + + NewOpenProjectPanel + + + Form + + + + + New Project ... + Nouveau projet ... + + + + Open Project ... + Ouvrir un projet ... + + + + Recent Projects + Projets récents + + + + OutOfMemoryDialog + + + Out of memory + Mémoire insuffisante + + + + Out of Memory Situation in Scan Tailor + Situation de mémoire insuffisante dans Scan Tailor + + + + Possible reasons + Raisons possibles + + + + Did you have to fix the DPI of your source images? Are you sure the values you entered were correct? + Avez-vous corriger les DPI (la résolution) de vos images originales? Êtes-vous certain que les valeurs que vous avez entrées étaient correctes? + + + + Sometimes your source images may have wrong DPI embedded into them. Scan Tailor tries to detect those, but it's not always easy to tell. You may need to check "Fix DPI even if they look normal" when creating a project and look into "All pages" tab in the "Fix DPI" dialog, which is also accessible from the Tools menu. + Parfois vos images originales peuvent avoir une valeur incorrecte de DPI incorporées dans celles-ci. Scan Tailor essaie de détecter ces cas, mais ce n'est pas toujours facile à deviner. Vous aurez peut-être besoin de cocher "Corriger des DPI, même s'ils ont l'air corrects" lors de la création d'un projet et de regarder dans l'onglet "Toutes les pages" du dialogue "Correction des DPI", qui est également accessible à partir du menu Outils. + + + + Is your output DPI set too high? Usually you don't need it higher than 600. + La résolution de sortie en DPI est-elle trop grande? Habituellement vous n'avez pas besoin de le mettre plus haut que 600. + + + + What can help + Qu'est qui peut aider + + + + Fix your DPIs. Learn how to <a href="http://vimeo.com/12524529">estimate unknown DPIs</a>. + Feel free to change the URL to a localized video / text tutorial. + Corrigez les DPI. Apprenez comment <a href="http://vimeo.com/12524529">estimer une résolution inconnue</a>. + + + + If your hardware and operating system are 64-bit capable, consider switching to a 64-bit version of Scan Tailor. + Si votre matériel informatique et votre système d'exploitation permettent un mode 64-bit, envisagez d'utiliser la version 64-bit de Scan Tailor. + + + + When working with grayscale images, make sure they are really grayscale. If they are actually color images that just happen to look grayscale, convert them to grayscale using some kind of batch image converter. This will both save memory and increase performance. + Lorsque vous travaillez avec des images en nuances de gris, assurez-vous qu'elles sont réellement en nuances de gris. Si elles sont en fait des images en couleur qui ont simplement l'air d'être en nuances de gris, convertissez-les en nuances de gris avec un logiciel de conversion par lots. Ceci sauvera de la mémoire tout en améliorant la performance. + + + + As a last resort, you can save some memory by making sure thumbnails are pre-created rather than created on demand. This can be done by slowly scrolling the thumbnail list all the way from top to bottom before starting any real work. + En dernier recours, il est possible d'économiser de la mémoire en s'assurant que les vignettes sont créées au départ et non sur demande. Cela est possible en défilant lentement la liste des vignettes du haut vers le bas avant de commencer votre travail. + + + + What won't help + Qu'est qui n'aidera pas + + + + Surprisingly, upgrading your RAM won't help here. The lack of RAM is compensated by the swap mechanism, which makes things slow, but keeps programs running. An out of memory situation means we ran out of memory address space, which has nothing to do with the amount of RAM you have. The only way to increase the memory address space is to go 64-bit hardware, 64-bit operating system and 64-bit Scan Tailor. + Surprenamment, augmenter votre quantité de mémoire vive (RAM) n'aidera pas. Le manque de RAM est compensé par le mécanisme de swap, ce qui rend les choses lentes, mais permet de continuer l'exécution des programmes. Une situation de mémoire insuffisante signifie que le programme a épuisé son espace d'adressage de mémoire, ce qui n'a rien à voir avec la quantité de RAM disponible. La seule façon d'augmenter l'espace d'adressage de mémoire est de mettre votre matériel informatique et votre système d'exploiration à niveau vers le 64-bit, en plus d'utiliser la version 64-bit de ScanTailor. + + + + Save Project + Enregistrer le projet + + + + Save Project As ... + Enregistrer le projet sous ... + + + + Don't Save + Ne pas enregistrer + + + + Project Saved Successfully + Le projet a été enregistré avec succès + + + + Please note that while Scan Tailor tries to catch out-of-memory situations and give you the opportunity to save your project, it's not always possible. This time it succeeded, but the next time it might just crash. + Veuillez noter que même si Scan Tailor essaie de capter les situations de mémoire insuffisante et de vous donner l'opportunité d'enregistrer votre projet, il reste que ce n'est pas toujours possible. Cette fois-ci a fonctionné, mais la prochaine fois le programme pourrait tout simplement planter. + + + + Scan Tailor Projects + Projets Scan Tailor + + + + Error + Erreur + + + + Error saving the project file! + Erreur lors de l'enregistrement du fichier de projet! + + + + ProjectFilesDialog + + + Project Files + Fichiers du projet + + + + + Input Directory + Répertoire d'entrée + + + + + Browse + Parcourir + + + + + Output Directory + Répertoire de sortie + + + + Files Not In Project + Fichiers hors du projet + + + + + Select All + Tout sélectionner + + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Add selected files to project.</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ajouter les fichiers sélectionnés au projet.</p></body></html> + + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Remove selected files from project.</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Retirer les fichiers sélectionnés du projet.</p></body></html> + + + + Files In Project + Fichiers dans le projet + + + + Right to left layout (for Hebrew and Arabic) + Disposition de droite à gauche (pour l'hébreu et l'arabe) + + + + Fix DPIs, even if they look OK + Corriger des DPI même s'ils ont l'air corrects + + + + + + + + + Error + Erreur + + + + No files in project! + Aucun fichier dans le projet! + + + + Input directory is not set or doesn't exist. + Le répertoire d'entrée n'a pas été entré ou n'existe pas. + + + + Input and output directories can't be the same. + Le répertoire d'entrée ne peut pas être le même que le répertoire de sortie. + + + + Create Directory? + Créer le répertoire? + + + + Output directory doesn't exist. Create it? + Le répertoire de sortie n'existe pas. Le créer? + + + + Unable to create output directory. + Impossible de créer le répertoire de sortie. + + + + Output directory is not set or doesn't exist. + Le répertoire de sortie n'a pas été entré ou n'existe pas. + + + + Some of the files failed to load. +Either we don't support their format, or they are broken. +You should remove them from the project. + Certains fichiers n'ont pas pu être chargés. +Soit leur format n'est pas pris en charge, or ils sont brisés. +Vous devriez les retirer du projet. + + + + ProjectOpeningContext + + + + Error + Erreur + + + + The project file is not compatible with the current application version. + Le fichier de projet n'est pas compatible avec la version courante de l'application. + + + + Unable to interpret the project file. + Impossible d'interpréter le fichier de projet. + + + + QObject + + + px + px + + + + mm + mm + + + + cm + cm + + + + in + po + + + + Canceling multi page selection + Annuler la sélection multi-page + + + + %1 pages selection are going to be canceled. Continue? + Une sélection de %1 pages est sur le point d'annulée. Continuer? + + + + Don't show this message again. + Ne plus afficher ce message. + + + + RelinkingDialog + + + Relinking + Outil de réassociation + + + + Undo + Annuler + + + + ... + + + + + Substitution File for %1 + Fichier de substitution pour %1 + + + + Substitution Directory for %1 + Répertoire de substitution pour %1 + + + + This change would merge several files into one. + Ce changement combinerait plusieurs fichiers en un. + + + + RemovePagesDialog + + + Remove Pages + Supprimer des pages + + + + Remove %1 page(s) from project? + Supprimer %1 page(s) du projet? + + + + Corresponding output files will be deleted, while input files will remain. + Les fichiers de sortie correspondants seront supprimés, mais les fichiers d'entrée resteront. + + + + SettingsDialog + + + Settings + Paramètres + + + + General + Général + + + + Accelerate user interface with OpenGL + Accélérer l'interface utilisateur avec OpenGL + + + + Device: %1 + Périphérique: %1 + + + + Auto-save the existing project + Enregistrer automatiquement le projet en cours + + + + Show question on canceling multi page selection + Confirmer l'annulation d'une sélection multiple + + + + Processing + Traitement + + + + Deviation + Déviation + + + + Highlight the thumbnails of pages with high deviation + Accentuer les pages avec une déviation élevée + + + + Params + Paramètres + + + + Select content: + Sélection du contenu: + + + + + + Deviation multiplier: a higher value means lower sensivity. + Multiplicateur de déviation: une valeur plus élevée signifie un sensibilité réduite. + + + + Margins: + Marges: + + + + + + The minimum deviation to be highlighted. + La déviation minimale pour être accentuée. + + + + Color Scheme: + Thème de couleur: + + + + Language: + Langue: + + + + Saving + Enregistrement + + + + B&W Compression: + Compression N&B: + + + + Color Compression: + Compression couleur: + + + + Your hardware / driver don't provide the necessary features + Votre matériel ou votre pilote ne fournit pas les caractéristiques nécessaires + + + + Dark + Foncé + + + + Light + Pâle + + + + + None + Aucune + + + + + LZW + LZW + + + + + Deflate + Deflate + + + + CCITT G4 + CCITT G4 + + + + JPEG + JPEG + + + + Information + Information + + + + ScanTailor need to be restarted to apply the color scheme changes. + ScanTailor doit être redémarré pour appliquer les changements de thème. + + + + User Interface + Interface utilisateur + + + + Thumbnails + Vignettes + + + + Quality: + Qualité: + + + + The pixel size of the thumbnail image. The default value is 200. + La dimension en pixels de l'image de la vignette. La valeur par défaut est 200. + + + + Size: + Taille: + + + + The thumbnail size in the view. The default value is 250. + La dimension en pixels de la vignette. La valeur par défaut est 250. + + + + White on black detection + Détection du noir sur blanc + + + + Auto detect pages with light content on dark background. The corrections to all the auto algorithms are made for such pages. + Détecter automatiquement les pages avec un contenu pâle sur un arrière-plan foncé. Les corrections pour tous les algorithmes automatiques sont faits pour de telles pages. + + + + Auto detect light content on dark background + Détecter les pages avec contenu pâle sur fond foncé + + + + Whether to use auto detection at the output stage. The wrong result can be changed manually in the output filter options. + Détermine si le mode automatique est utilisé à l'étape de sortie. Un mauvais résultat peut être changé manuellement dans les options du filtre. + + + + Use auto detection at the output stage + Utiliser le mode auto à l'étape de sortie + + + + Native + Natif + + + + Single column thumbnail display + Affichage à une seule colonne + + + + Deskew: + Redressement: + + + + StageListView + + + Launch batch processing + Lancer le traitement par lots + + + + StatusBarPanel + + + Form + + + + + Zone creation mode. + Mode création de zone + + + + The type of a new zone created. + Le type d&une nouvelle zone à créer. + + + + Mouse position. + Position de la souris. + + + + Mouse position relative to page. + Position de la souris par rapport à la page. + + + + Image size. + Taille de l'image. + + + + Image size in current units. + Taille de l& en unités courantes. + + + + Page number. + Numéro de page. + + + + Position of the selected page in current order. + Position de la page sélectionnée dans l'ordre actuel. + + + + Page information. + Information sur la page. + + + + Page name and type. + Nom et type de la page. + + + + p. %1 / %2 + p. %1 / %2 + + + + [L] + [G] + + + + [R] + [D] + + + + SystemLoadWidget + + + Form + + + + + System load + Charge sur le système + + + + + ... + + + + + ThumbnailSequence + + + %1 (page %2) + %1 (page %2) + + + + ZoneContextMenuInteraction + + + Delete + Supprimer + + + + Properties + Propriétés + + + + ZoneCreationInteraction + + + Click to finish this rectangular zone. ESC to cancel. + Cliquer pour terminer cette zone rectangulaire. Échap pour annuler. + + + + Click to finish this zone. ESC to cancel. + Cliquer pour terminer cette zone. Échap pour annuler. + + + + Connect first and last points to finish this zone. ESC to cancel. + Connecter le premier point au dernier point pour terminer cette zone. Échap pour annuler. + + + + Use Z and X keys to switch zone creation mode. ESC to cancel. + Utiliser les touches Z et X pour changer de mode de création de zone. Échap pour annuler. + + + + ZoneDefaultInteraction + + + Drag the vertex. Hold Ctrl to make the vertex angle right. Press D to delete the vertex. + Glisser le sommet. Garder Ctrl enfoncé pour faire un angle droit avec le sommet. Appuyer sur D pour le supprimer. + + + + Click to create a new vertex here. + Cliquer pour ajouter un nouveau sommet ici. + + + + Right click to edit zone properties. Hold Shift to drag the zone or Shift+Ctrl to copy. Press Del to delete this zone. + Clic droit pour éditer les propriétés de la zone. Enfoncer Maj pour glisser la zone ou Maj+Ctrl pour la copier. Appuyer sur Suppr pour la supprimer. + + + + Hold left mouse button to drag the zone. + Garder le bouton gauche enfoncé pour glisser la zone. + + + + Hold left mouse button to copy and drag the zone. + Garder le bouton gauche enfoncé pour copier et glisser la zone. + + + + Click to start creating a new zone. Ctrl+Alt+Click to copy the latest created zone. Use Z, X and C keys to switch zone creation mode. + Cliquer pour commencer une nouvelle zone. Ctrl+Alt+Clic pour copier la dernière zone créée. Utiliser Z, X et C pour changer le mode de création de zone. + + + + ZoneDragInteraction + + + Release left mouse button to finish dragging. + Relâcher le bouton gauche de la souris pour arrêter de glisser. + + + + ZoneVertexDragInteraction + + + Merge these two vertices. + Combiner ces deux sommets. + + + + Move the vertex to one of its neighbors to merge them. + Déplacer le sommet vers un de ses voisins pour les combiner ensemble. + + + + deskew::ApplyDialog + + + Apply to + Appliquer à + + + + This page only (already applied) + Cette page seulement (déjà appliqué) + + + + All pages + Toutes les pages + + + + This page and the following ones + Cette page et les suivantes + + + + This page and the following every other page + All odd or even pages, depending on the current page being odd or even. + Cette page et les suivantes, en alternance + + + + Every other page + All odd or even pages, depending on the current page being odd or even. + Toutes les pages, en alternance + + + + Selected pages + Pages sélectionnées + + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Utiliser Ctrl+Clic / Maj+Ctrl+Clic pour sélectionner plusieurs pages. + + + + Every other selected page + Pages sélectionnées, en alternance + + + + The current page will be included. + La page courante sera incluse. + + + + deskew::Filter + + + Natural order + En ordre naturel + + + + Order by decreasing deviation + En ordre décroissant de déviation + + + + Deskew + Redressement + + + + deskew::ImageView + + + Use Ctrl+Wheel to rotate or Ctrl+Shift+Wheel for finer rotation. + Utiliser Ctrl+Roulette pour pivoter ou Ctrl+Maj+Roulette pour une rotation plus précise. + + + + Drag this handle to rotate the image. + Glisser cette poignée pour pivoter l'image. + + + + deskew::OptionsWidget + + + Apply Deskew + Appliquer le redressement + + + + Form + + + + + Deskew + Redressement + + + + Auto + Auto + + + + Manual + Manuel + + + + Apply To ... + Appliquer à ... + + + + fix_orientation::ApplyDialog + + + Fix Orientation + Corriger l'orientation + + + + Apply to + Appliquer à + + + + This page only (already applied) + Cette page seulement (déjà appliqué) + + + + All pages + Toutes les pages + + + + This page and the following ones + Cette page et les suivantes + + + + This page and the following every other page + All odd or even pages, depending on the current page being odd or even. + Cette page et les suivantes, en alternance + + + + Every other page + All odd or even pages, depending on the current page being odd or even. + Toutes les pages, en alternance + + + + Selected pages + Pages sélectionnées + + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Utiliser Ctrl+Clic / Maj+Ctrl+Clic pour sélectionner plusieurs pages. + + + + Every other selected page + Pages sélectionnées, en alternance + + + + The current page will be included. + La page courante sera incluse. + + + + fix_orientation::Filter + + + Fix Orientation + Corriger l'orientation + + + + fix_orientation::OptionsWidget + + + Form + + + + + Rotate + Pivoter + + + + + ... + + + + + Reset + Réinitialiser + + + + Apply to ... + Appliquer à ... + + + + output::ApplyColorsDialog + + + Apply Mode + Appliquer le mode + + + + Apply to + Appliquer à + + + + This page only (already applied) + Cette page seulement (déjà appliqué) + + + + All pages + Toutes les pages + + + + This page and the following ones + Cette page et les suivantes + + + + Selected pages + Pages sélectionnées + + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Utiliser Ctrl+Clic / Maj+Ctrl+Clic pour sélectionner plusieurs pages. + + + + output::ChangeDewarpingDialog + + + Apply Dewarping Mode + Appliquer le mode de dégauchissement + + + + Mode + Mode + + + + Off + Off + + + + Auto (experimental) + Auto (expérimental) + + + + Marginal (experimental) + Marginal (expérimental) + + + + Manual + Manuel + + + + Options + Options + + + + Post deskew + Post-redressement + + + + Apply to + Appliquer à + + + + This page only + Cette page seulement + + + + All pages + Toutes les pages + + + + This page and the following ones + Cette page et les suivantes + + + + Selected pages + Pages sélectionnées + + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Utiliser Ctrl+Clic / Maj+Ctrl+Clic pour sélectionner plusieurs pages. + + + + output::ChangeDpiDialog + + + Custom + Personnalisé + + + + + + Error + Erreur + + + + DPI is not set. + Les DPI ne sont pas établis. + + + + DPI is too low! + Les DPI sont trop bas! + + + + DPI is too high! + Les DPI sont trop hauts! + + + + Apply Output Resolution + Appliquer la résolution de sortie + + + + DPI + DPI + + + + Apply to + Appliquer à + + + + This page only + Cette page seulement + + + + All pages + Toutes les pages + + + + This page and the following ones + Cette page et les suivantes + + + + Selected pages + Pages sélectionnées + + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Utiliser Ctrl+Clic / Maj+Ctrl+Clic pour sélectionner plusieurs pages. + + + + output::FillZoneEditor + + + Pick color + Choisir une couleur + + + + output::Filter + + + Output + Sortie + + + + Natural order + En ordre naturel + + + + Order by completeness + En ordre de complétude + + + + output::OptionsWidget + + + Black and White + Noir et blanc + + + + Color / Grayscale + Couleur / nuances de gris + + + + Mixed + Mixe + + + + Otsu + Otsu + + + + Sauvola + Sauvola + + + + Wolf + Wolf + + + + Background + Arrière-plan + + + + White + Blanc + + + + Free + Libre + + + + Rectangular + Rectangulaire + + + + Apply Splitting Settings + Appliquer les paramètres de séparation + + + + Apply Despeckling Level + Appliquer le niveau de détachage + + + + Apply Depth Perception + Appliquer la perception de la profondeur + + + + + Off + Désactivé + + + + Auto + Auto + + + + Manual + Manuel + + + + Marginal + Marginal + + + + deskew disabled + aucun redressement + + + + Apply Processing Settings + Appliquer les paramètres de traitement + + + + Form + + + + + Output Resolution (DPI) + Résolution de sortie (DPI) + + + + 0 + + + + + + Change ... + Changer ... + + + + Mode + Mode + + + + Options + Options + + + + Fill offcut + Remplir la coupe + + + + Fill margins + Remplir les marges + + + + Normalize illumination before binarization. + Normaliser l'éclairement avant la binarisation. + + + + Equalize illumination (B&&W) + Égaliser l'éclairement (N&&B) + + + + Normalize illumination in color mode / in picture zones in mixed mode. + En mode couleur, normaliser tout l'éclairement / en mode mixe, seulement dans les zones d'images. + + + + Equalize illumination (Color) + Égaliser l'éclairement (couleur) + + + + Savitzky-Golay smoothing + Lissage Savitzky-Golay + + + + Morphological smoothing + Lissage morphologique + + + + Filling + Remplissage + + + + Color: + Couleur: + + + + Threshold + Seuil + + + + Method: + Méthode: + + + + Color operations + Opérations sur les couleurs + + + + Split the image into color segments and colorize b&w mask. + Séparer les couleurs de l'image en segments et coloriser le masque N&B. + + + + Color segmentation + Segmentation des couleurs + + + + R + R + + + + Red component adjustment. A negative value means the segmenter will be more sensitive to red and vice versa for a positive one. + Ajustement de la composante rouge. Une valeur négative signifie que le segmentateur sera plus sensible au rouge et vice versa pour une valeur positive. + + + + G + V + + + + Green component adjustment. A negative value means the segmenter will be more sensitive to green and vice versa for a positive one. + Ajustement de la composante verte. Une valeur négative signifie que le segmentateur sera plus sensible au vert et vice versa pour une valeur positive. + + + + B + B + + + + Blue component adjustment. A negative value means the segmenter will be more sensitive to blue and vice versa for a positive one. + Ajustement de la composante bleue. Une valeur négative signifie que le segmentateur sera plus sensible au bleu et vice versa pour une valeur positive. + + + + Reduce noise: + Réduction du bruit: + + + + Reduce the number of colors of the output image by grouping similar colors. + Réduire le nombre de couleurs à la sortie en réunissant les couleurs similaires. + + + + Posterize + Postériser + + + + Level: + Niveau: + + + + Lower value means lower count of colors in the output image, values between 2 and 6 inclusive guarantee an indexed image. + Une valeur plus basse se traduit par un nombre plus bas de couleurs à la sortie. Les valeurs entre 2 et 6 garantissent une image indexée. + + + + Normalize + Normaliser + + + + Make dark and light gray gradients black and white respectively. + Rendre respectivement noir et blanc les gradients de nuances de gris allants du foncé au pâle. + + + + Force b&&w + Forcer le N&&B + + + + Picture Shape + Zones d'images + + + + Sensitivity (%): + Sensibilité (%): + + + + Higher search sensitivity + Recherche haute-sensibilité + + + + + + + + Apply To ... + Appliquer à ... + + + + Splitting + Séparation des couches + + + + Split output + Séparer la sortie + + + + B&&W foreground + Premier plan en N&&B + + + + Save the original background of the foreground layer. + Sauvegarder l'arrière-plan original de la couche au premier plan. + + + + Original background + Arrière-plan original + + + + Color foreground + Premier plan en couleur + + + + Despeckling + Détachage + + + + Despeckle + Détacher + + + + Processing + Traitement + + + + This option should be enabled when the page has dark content on light background and disabled if vice versa in order to correct processing algorithms. + Cette option devrait être activée pour les pages avec un contenu foncé sur un arrière-plan pâle et désactivée sinon afin de corriger les algorithmes de traitement. + + + + Black on white mode + Mode noir sur blanc + + + + Depth perception + Perception de la profondeur + + + + Dewarping + Dégauchissement + + + + deskew + redressement + + + + output::OtsuBinarizationOptionsWidget + + + Form + + + + + 0 + + + + + Thinner + Plus mince + + + + Thicker + Plus épais + + + + output::PictureZonePropDialog + + + Zone Properties + Propriétés de la zone + + + + Subtract from all layers + Soustraire à toutes les couches + + + + Add to auto layer + Ajouter à toutes les couches + + + + Subtract from auto layer + Soustraire à la couche automatique + + + + output::SauvolaBinarizationOptionsWidget + + + Form + + + + + Coef: + Coeff: + + + + The dimensions of a pixel neighborhood to consider. + Les dimensions au voisinage d'un pixel à considérer. + + + + Default value is 0.34. + La valeur par défaut est 0.34. + + + + Window size: + Taille de la fenêtre: + + + + output::TabbedImageView + + + Use Ctrl+1..5 to switch the tabs. + Utiliser Ctrl+1..5 pour changer d'onglet. + + + + output::Task::UiUpdater + + + Picture zones are only available in Mixed mode. + Les zones d'images sont uniquement disponibles en mode mixe. + + + + Despeckling can't be done in Color / Grayscale mode. + Le détachage ne peut pas être fait en mode couleur / nuances de gris. + + + + Output + Sortie + + + + Picture Zones + Zones d'images + + + + Fill Zones + Zones de remplissage + + + + Dewarping + Dégauchissement + + + + Despeckling + Détachage + + + + output::WolfBinarizationOptionsWidget + + + Form + + + + + The dimensions of a pixel neighborhood to consider. + Les dimensions au voisinage d'un pixel à considérer. + + + + Window size: + Taille de la fenêtre: + + + + The minimum possible gray level that can be made white. + Le niveau minimal de gris qui peut être rendu blanc. + + + + Upper Bound: + Limite supérieure: + + + + Lower bound: + Limite inférieure: + + + + The maximum possible gray level that can be made black. + Le niveau maximal de gris qui peut être rendu noir. + + + + Coeff: + Coeff: + + + + Default value is 0.3. + La valeur par défaut est 0.3. + + + + page_layout::ApplyDialog + + + Apply to + Appliquer à + + + + This page only (already applied) + Cette page seulement (déjà appliqué) + + + + All pages + Toutes les pages + + + + This page and the following ones + Cette page et les suivantes + + + + This page and the following every other page + All odd or even pages, depending on the current page being odd or even. + Cette page et les suivantes, en alternance + + + + Every other page + All odd or even pages, depending on the current page being odd or even. + Toutes les pages, en alternance + + + + Selected pages + Pages sélectionnées + + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Utiliser Ctrl+Clic / Maj+Ctrl+Clic pour sélectionner plusieurs pages. + + + + Every other selected page + Pages sélectionnées, en alternance + + + + The current page will be included. + La page courante sera incluse. + + + + page_layout::Filter + + + Natural order + En ordre naturel + + + + Order by increasing width + En ordre croissant de largeur + + + + Order by increasing height + En ordre croissant de hauteur + + + + Order by decreasing deviation + En ordre décroissant de déviation + + + + Margins + Marges + + + + page_layout::ImageView + + + Resize margins by dragging any of the solid lines. + Redimensionner les marges en glissant n'importe quelles des lignes en trait plein. + + + + Hold left mouse button to drag the page content. + Garder le bouton gauche de la souris enfoncé pour glisser la zone de la page. + + + + Release left mouse button to finish dragging. + Relâcher le bouton gauche de la souris pour arrêter de glisser. + + + + Add a horizontal guide + Ajouter un guide horizontal + + + + Add a vertical guide + Ajouter un guide vertical + + + + Remove all the guides + Supprimer tous les guides + + + + Remove this guide + Supprimer ce guide + + + + Show hard margins rectangle + Afficher le rectangle des marges fixes + + + + Drag the guide. + Glisser le guide. + + + + page_layout::OptionsWidget + + + Apply Margins + Appliquer les marges + + + + Apply Alignment + Appliquer l'alignement + + + + Form + + + + + Margins + Marges + + + + Auto Margins + Marges automatiques + + + + + + + + + + + + + + ... + + + + + Top + Haut + + + + Right + Droite + + + + Left + Gauche + + + + Bottom + Bas + + + + + Apply To ... + Appliquer à ... + + + + Alignment + Alignement + + + + Match size with other pages + Égaliser la taille avec les autres pages + + + + Horizontal mode: + Mode horizontal: + + + + Vertical mode: + Mode vertical: + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Right-click</span><span style=" font-size:7pt;"> to create/remove guides from the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> called.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Right-click</span><span style=" font-size:7pt;"> on a guide to delete that guide from the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> called.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Ctrl+Alt+LMB</span><span style=" font-size:7pt;"> - drag the guide under the cursor.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Shift/Ctrl+LMB</span><span style=" font-size:7pt;"> on the content rectangle - drag the page content. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;"> pressed to restrict moving along the horizontal axis only or </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> for the vertical one. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;"> for usual dragging.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Double-click</span><span style=" font-size:7pt;"> on content - automatically attach that content to the nearest guide. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;"> pressed to select vertical guides only or </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> for horizontal ones. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;"> to attach that to both the nearest vertical and horizontal guides.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣</span><span style=" font-size:7pt;"> Use the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> to enable/disable showing the hard margins rectangle.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Clic droit</span><span style=" font-size:7pt;"> pour créer ou supprimer des guides à partir du </span><span style=" font-size:7pt; font-weight:600;">menu contextuel</span><span style=" font-size:7pt;"> affiché.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Click droit</span><span style=" font-size:7pt;"> sur un guide pour supprimer le guide à partir du </span><span style=" font-size:7pt; font-weight:600;">menu contextuel</span><span style=" font-size:7pt;"> affiché.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Ctrl+Maj+Clic gauche</span><span style=" font-size:7pt;"> - glisser le guide avec le curseur.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Maj/Ctrl+Clic gauche</span><span style=" font-size:7pt;"> sur le rectangle de contenu - glisser le contenu de la page. Gardez </span><span style=" font-size:7pt; font-weight:600;">Maj</span><span style=" font-size:7pt;"> enfoncé pour restraindre le mouvement à l'axe horizontal ou </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> pour l'axe vertical. Gardez </span><span style=" font-size:7pt; font-weight:600;">Maj+Ctrl</span><span style=" font-size:7pt;"> enfoncés pour le glissement usuel.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Double-clic</span><span style=" font-size:7pt;"> sur le contenu- attacher automatiquement le contenu au guide le plus proche. Gardez </span><span style=" font-size:7pt; font-weight:600;">Maj</span><span style=" font-size:7pt;"> enfoncé pour sélectionner les guides verticaux seulement ou </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> pour les guides horizontaux. Gardez </span><span style=" font-size:7pt; font-weight:600;">Maj+Ctrl</span><span style=" font-size:7pt;"> pour l'attacher sur les deux en même temps.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣</span><span style=" font-size:7pt;"> Utilisez le </span><span style=" font-size:7pt; font-weight:600;">menu contextuel</span><span style=" font-size:7pt;"> pour activer ou désactiver le rectangle des marges fixes.</span></p></body></html> + + + + + Auto + auto + Auto + + + + + Manual + manual + Manuel + + + + + Original + original + Original + + + + Guides Help + Aide sur les guides + + + + page_split::Filter + + + Natural order + En ordre naturel + + + + Order by split type + En ordre de type de séparation + + + + Split Pages + Séparation des pages + + + + page_split::ImageView + + + Drag the line or the handles. + Glisser la ligne ou les poignées. + + + + page_split::OptionsWidget + + + + + Set manually + Réglé manuellement + + + + + Auto detected + Détecté automatiquement + + + + Form + + + + + Page Layout + Disposition de la page + + + + ? + + + + + Change ... + Changer ... + + + + Split Line + Ligne de séparation + + + + Auto + Auto + + + + Manual + Manuel + + + + page_split::SplitModeDialog + + + Split Pages + Séparation des pages + + + + Mode + Mode + + + + Auto + Auto + + + + Manual + Manuel + + + + Options + Options + + + + Apply cut + Appliquer la coupe + + + + Apply to + Appliquer à + + + + This page only + Cette page seulement + + + + All pages + Toutes les pages + + + + This page and the following ones + Cette page et les suivantes + + + + This page and the following every other page + Cette page et les suivantes, en alternance + + + + Every other page + Toutes les pages, en alternance + + + + Selected pages + Pages sélectionnées + + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Utiliser Ctrl+Clic / Maj+Ctrl+Clic pour sélectionner plusieurs pages. + + + + Every other selected page + Pages sélectionnées, en alternance + + + + The current page will be included. + La page courante sera incluse. + + + + page_split::UnremoveButton + + + Restore removed page. + Rétablir la page supprimée. + + + + select_content::ApplyDialog + + + Select Content + Sélection du contenu + + + + Options + Options + + + + Apply content box + Appliquer les bornes du contenu + + + + Apply page box + Appliquer les bornes de la page + + + + Apply to + Appliquer à + + + + This page only (already applied) + Cette page seulement (déjà appliqué) + + + + All pages + Toutes les pages + + + + This page and the following ones + Cette page et les suivantes + + + + This page and the following every other page + All odd or even pages, depending on the current page being odd or even. + Cette page et les suivantes, en alternance + + + + Every other page + All odd or even pages, depending on the current page being odd or even. + Toutes les pages, en alternance + + + + Selected pages + Pages sélectionnées + + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Utiliser Ctrl+Clic / Maj+Ctrl+Clic pour sélectionner plusieurs pages. + + + + Every other selected page + Pages sélectionnées, en alternance + + + + The current page will be included. + La page courante sera incluse. + + + + select_content::Filter + + + Natural order + Ordre naturel + + + + Order by increasing width + En ordre croissant de largeur + + + + Order by increasing height + En ordre croissant de hauteur + + + + Order by decreasing deviation + En ordre décroissant de déviation + + + + Select Content + Sélection du contenu + + + + select_content::ImageView + + + Use the context menu to enable / disable the content box. Hold Shift to drag a box. Use double-click on content to automatically adjust the content area. + Utiliser le menu contextuel pour activer / désactiver les bornes de contenu. Enfoncer Maj pour glisser une zone. Double-cliquer sur le contenu pour ajuster automatiquement les bornes du contenu. + + + + Drag lines or corners to resize the content box. + Glisser les bordures ou les coins pour redimensionner les bornes du contenu. + + + + Drag lines or corners to resize the page box. + Glisser les bordures ou les coins pour redimensionner les bornes de la page. + + + + Hold left mouse button to drag the content box. + Garder le bouton gauche de la souris enfoncé pour glisser la zone du contenu. + + + + + Release left mouse button to finish dragging. + Relâcher le bouton gauche de la souris pour arrêter de glisser. + + + + Hold left mouse button to drag the page box. + Garder le bouton gauche de la souris enfoncé pour glisser la zone de la page. + + + + Create Content Box + Créer des bornes de contenu + + + + Remove Content Box + Supprimer les bornes de contenu + + + + select_content::OptionsWidget + + + Form + + + + + Page Box + Bornes de page + + + + + Disable + Désactiver + + + + + Auto + Auto + + + + + Manual + Manuel + + + + Options + Options + + + + Shift with corners while they are in black. + Décaler les coins lorsque qu'ils sont dans le noir. + + + + Fine Tune Page Corners + Réglage précis des coins + + + + Width + Largeur + + + + Height + Hauteur + + + + Content Box + Bornes du contenu + + + + Apply to ... + Appliquer à ... + + + From 2de32ffdd4d7cf01ef739d00d8ea4a2d27d719c0 Mon Sep 17 00:00:00 2001 From: ukolaj-skoski <33764198+ukolaj-skoski@users.noreply.github.com> Date: Sat, 25 Sep 2021 16:40:09 +0200 Subject: [PATCH 03/25] Add Polish translation --- src/translations/scantailor_pl.ts | 3587 +++++++++++++++++++++++++++++ 1 file changed, 3587 insertions(+) create mode 100644 src/translations/scantailor_pl.ts diff --git a/src/translations/scantailor_pl.ts b/src/translations/scantailor_pl.ts new file mode 100644 index 000000000..83ebf66bd --- /dev/null +++ b/src/translations/scantailor_pl.ts @@ -0,0 +1,3587 @@ + + + + + AboutDialog + + + ScanTailor Advanced + + + + + About + O programie + + + + Scan Tailor is an interactive post-processing tool for scanned pages. It performs operations such as page splitting, skew correction, adding/removing margins, and others. You give it raw scans, and you get pages ready to be printed or assembled into a PDF or DJVU file. Scanning and optical character recognition is out of scope of this project. + Scan Tailor to interaktywne narzędzie do przetwarzania zeskanowanych stron. Wykonuje operacje takie jak: dzielenie strony, korekta pochylenia, dodawanie/usuwanie marginesów i inne. Dajesz mu surowe skany i otrzymujesz strony gotowe do wydrukowania lub złożenia do pliku PDF lub DJVU. Skanowanie i optyczne rozpoznawanie znaków jest poza zakresem tego projektu. + + + + Authors + Autorzy + + + + Joseph Artsimovich + Joseph Artsimovich + + + + Contributors + Współtwórcy + + + + U235 - Picture auto-detection algorithm. + U235 - Algorytm automatycznego wykrywania obrazów. + + + + Robert B. - First generation dewarping algorithm. + Robert B. - Algorytm korekcji zniekształceń pierwszej genracji. + + + + Andrey Bergman - System load adjustment. + Andrey Bergman - Regulacja obciążenia systemu. + + + + Vadim Kuznetsov - ver. Plus + Vadim Kuznetsov - wersja Plus + + + + monday2000 - ver. Featured + monday2000 - wersja Featured + + + + Alexander Trufanov - ver. Universal + Alexander Trufanov - wersja Universal + + + + License + Licencja + + + + Lead Developer of original version + Główny programista oryginalnej wersji + + + + Lead Developer of Advanced version + Główny programista wersji "Advanced" + + + + 4lex4 + + + + + Petr Kovář - ver. Enhanced + Petr Kovář - wersja Enhanced + + + + BatchProcessingLowerPanel + + + Form + Formularz + + + + Beep when finished + sygnalizuj zakończenie dźwiękiem + + + + ColorPickupInteraction + + + Click on an area to pick up its color, or ESC to cancel. + Kliknij na obszar, aby pobrać jego kolor lub naciśnij klawisz ESC, aby to pominąć. + + + + DefaultParamsDialog + + + Default parameters + Wartości domyślne + + + + Save + Zapisz + + + + Delete + Usuń + + + + Units: + Jednostki: + + + + Fix Orientation + Popraw orientację + + + + Rotate + Obrót + + + + + + + + + + + + + + + + ... + + + + + Reset + Przywróć ustawienia początkowe + + + + Split Pages + Dziel strony + + + + + Mode + Tryb + + + + Page Layout + Układ strony + + + + + Deskew + Obróć + + + + + + + + Auto + Automatyczny + + + + + + + Manual + Ręczny + + + + Select Content + Wybierz zawartość + + + + Page Box + Obszar strony + + + + + Disable + Wyłącz + + + + + Options + Opcje + + + + Shift with corners while they are in black. + Dopasuj krawędzie do czarnego obszaru. + + + + Fine Tune Page Corners + Dopasuj krawędzie strony + + + + Width + Szerokość + + + + Height + Wysokość + + + + Content Box + Obszar zawartości + + + + + Margins + Marginesy + + + + Auto Margins + Automatyczne marginesy + + + + Top + Górny + + + + Right + Prawy + + + + Left + Lewy + + + + Bottom + Dolny + + + + Alignment + Wyrównanie + + + + Auto + auto + Automatyczny + + + + Manual + manual + Ręczny + + + + Original + original + Orginalnie + + + + Auto aligning + Automatyczne wyrównywanie + + + + Enable horizontal + Włącz poziome + + + + Enable vertical + Włącz pionowe + + + + Match size with other pages + Dopasuj rozmiar do pozostałych stron + + + + Output + Wyjście + + + + Normalize illumination before binarization. + Normalizuj oświetlenie przed binaryzacją. + + + + Equalize illumination (B&&W) + Wyrównaj oświetlenie (B&&W) + + + + Normalize illumination in color mode / in picture zones in mixed mode. + Normalizuj oświetlenia w trybie kolorowym / w strefach obrazu w trybie mieszanym. + + + + Equalize illumination (Color) + Wyrównaj oświetlenie (kolor) + + + + Savitzky-Golay smoothing + Wygładzanie Savitzky-Golay + + + + Morphological smoothing + Wygładzanie morfologiczne + + + + Filling + Wypełnianie + + + + Color: + Kolor: + + + + Color operations + Operacje kolorystyczne + + + + Split the image into color segments and colorize mask. + Podziel obraz na segmenty kolorów i pokoloruj maskę B&W. + + + + Color segmentation + Segmentacja kolorów + + + + R + + + + + Red component adjustment. A negative value means the segmenter will be more sensitive to red and vice versa for a positive one. + Ustawienie czerwonego elementu. Wartości ujemne wskazują, że segment będzie bardziej wrażliwy na kolor czerwony i odwrotnie w przypadku wartości dodatnich. + + + + G + + + + + Green component adjustment. A negative value means the segmenter will be more sensitive to green and vice versa for a positive one. + Ustawienie zielonego elementu. Wartości ujemne wskazują, że segment będzie bardziej wrażliwy na kolor zielony i odwrotnie w przypadku wartości dodatnich. + + + + B + + + + + Blue component adjustment. A negative value means the segmenter will be more sensitive to blue and vice versa for a positive one. + Ustawienie niebieskiego elementu. Wartości ujemne wskazują, że segment będzie bardziej wrażliwy na kolor niebieski i odwrotnie w przypadku wartości dodatnich. + + + + Reduce noise: + Redukcja szumów: + + + + Reduce the number of colors of the output image by grouping similar colors. + Zmniejsz liczbę kolorów na obrazie wyjściowym, grupując podobne kolory. + + + + Posterize + Posteryzuj + + + + Level: + Poziom: + + + + Lower value means lower count of colors in the output image, values between 2 and 6 inclusive guarantee an indexed image. + Niższa wartość oznacza mniej kolorów na obrazie wyjściowym, wartości 2 i 6 włącznie gwarantują obraz indeksowany. + + + + Normalize + Normalizuj + + + + Make dark and light gray gradients black and white respectively. + Twórz odpowiednio ciemne i jasne odcienie szarości czerni i bieli. + + + + Force b&&w + Wymusz B&&W + + + + Threshold + Próg + + + + Method: + Metoda: + + + + 0 + + + + + Thinner + Cieńsze + + + + Thicker + Grubsze + + + + Coef: + Współczynnik: + + + + + The dimensions of a pixel neighborhood to consider. + Rozmiar obszaru z sąsiadującymi pikselami do obliczeń. + + + + + Window size: + Rozmiar okna: + + + + Default value is 0.34. + Wartość domyślna — 0.34. + + + + The minimum possible gray level that can be made white. + Minimalny poziom szarości, który można zmienić na biały. + + + + Upper Bound: + Górna granica: + + + + Lower bound: + Dolna granica: + + + + The maximum possible gray level that can be made black. + Maksymalny poziom szarości, który można zmienić na czarny. + + + + Coeff: + Współczynnik: + + + + Default value is 0.3. + Wartość domyślna — 0.3. + + + + Picture Shape + Forma zdjęć + + + + Sensitivity (%): + Wrażliwość (%): + + + + Higher search sensivity + Wyższa czułość wyszukiwania + + + + Output Resolution (DPI) + Rozdzielczość wyjściowa (DPI) + + + + Splitting + Podział + + + + Split output + Podział wyjścia + + + + B&&W foreground + Pierwszy plan B&&W + + + + Save the original background of the foreground layer. + Zapisz oryginalne tło pierwszego planu. + + + + Original background + Oryginalne tło + + + + Color foreground + Kolor pierwszego planu + + + + Despeckling + Usuwanie plam + + + + Dewarping + Prostowanie + + + + Post deskew + Po rotacji + + + + Depth perception + Percepcja głębi + + + + Black and White + Czarno-biały + + + + Color / Grayscale + Kolor / szary + + + + Mixed + Mieszany + + + + Background + Tło + + + + White + Biały + + + + Otsu + + + + + Sauvola + + + + + Wolf + + + + + + Off + Wyłączone + + + + Free + Luźne + + + + Rectangular + Prostokątny + + + + + + Custom + Własne + + + + Marginal + Wokół krawędzi + + + + Default + Domyślne + + + + Source + Źródło + + + + + + + + Error + Błąd + + + + Error loading the profile. + Błąd ładowania profilu. + + + + The name conflicts with a default profile name. Please enter a different name. + Ta nazwa jest w konflikcie z domyślną nazwą profilu. Wpisz inną nazwę. + + + + Error saving the profile. + Błąd podczas zapisywania profilu. + + + + Error deleting the profile. + Błąd podczas usuwania profilu. + + + + Fill offcut + Wypełnij wycięcie + + + + Fill margins + Wypełnij marginesy + + + + Despeckle + Usuń plamy + + + + Mode: + Tryb: + + + + The profile file is not compatible with the current application version. Remove? + Plik profilu nie jest zgodny z bieżącą wersją aplikacji. Usunąć? + + + + DragHandler + + + Unrestricted dragging is possible by holding down the Shift key. + Swobodne przesuwanie jest dostępne poprzez przytrzymanie klawisza Shift. + + + + ErrorWidget + + + Form + Formularz + + + + FixDpiDialog + + + Fix DPI + Napraw DPI + + + + Tab 1 + Karta 1 + + + + Tab 2 + Karta 2 + + + + DPI + + + + + Custom + Własne + + + + x + + + + + Apply + Zastosuj + + + + Need Fixing + Wymagające naprawy + + + + + All Pages + Wszystkie strony + + + + DPI is too large and most likely wrong. + DPI jest zbyt duże i najprawdopodobniej niepoprawne. + + + + DPI is too small. Even if it's correct, you are not going to get acceptable results with it. + DPI jest za małe. Nawet jeśli jest to poprawne, nie uzyskasz akceptowalnych wyników. + + + + DPI is too small for this pixel size. Such combination would probably lead to out of memory errors. + DPI jest za małe dla tego rozmiaru piksela. Taka kombinacja może prowadzić do błędów przepełnienia pamięci. + + + + %1 (page %2) + %1 (strona %2) + + + + ImageViewBase + + + Use the mouse wheel or +/- to zoom. When zoomed, dragging is possible. + Użyj kółka myszy lub +/-, aby powiększyć. W większym widoku dostępne jest przeciąganie i upuszczanie. + + + + InteractiveXSpline + + + Click to create a new control point. + Kliknij, aby utworzyć nowy punkt kontrolny. + + + + This point can be dragged. Hold Ctrl or Shift to drag along axes. + Ten punkt można przesuwać. Przytrzymaj Ctrl lub Shift, aby przeciągać wzdłuż osi. + + + + Drag this point or delete it by pressing Del or D. + Przesuń ten punkt lub usuń go naciskając klawisz Del albo D. + + + + LoadFileTask + + + The following file could not be loaded: +%1 + Plik nie został załadowany: %1 + + + + The following file doesn't exist:<br>%1<br><br>Use the <a href="#relink">Relinking Tool</a> to locate it. + Następujący plik nie istnieje:<br>%1<br><br>Użyj <a href="#relink">Relinking Tool</a>, aby go zlokalizować. + + + + LoadFilesStatusDialog + + + Some files failed to load + Nie udało się załadować niektórych plików. + + + + Loaded successfully: %1 + Pomyślnie załadowano: %1 + + + + Failed to load: %1 + Nie udało się załadować: %1 + + + + MainWindow + + + MainWindow + + + + + Tools + Narzędzia + + + + Units + Jednostki + + + + File + Plik + + + + Help + Pomoc + + + + Thumbnails + Miniatury + + + + Keep current page in view. + Trzymaj bieżącą stronę w widoku. + + + + Filters + Filtry + + + + Debug Mode + Tryb debugowania + + + + + Save Project + Zapisz projekt + + + + Save Project As ... + Zapisz projekt jako... + + + + + Next Page + Następna strona + + + + + Previous Page + Poprzednia strona + + + + New Project ... + Nowy projekt... + + + + Open Project ... + Otwórz projekt... + + + + Close Project + Zamknij projekt + + + + Quit + Wyjdź + + + + Settings ... + Ustawienia... + + + + First Page + Pierwsza strona + + + + Last Page + Ostatnia strona + + + + About + O programie + + + + Fix DPI ... + Napraw DPI... + + + + Relinking ... + Relinking... + + + + + + + + + Switch filter to orientation + Idź do orientacji + + + + Switch filter to split pages + Przejdź do dzielenia stron + + + + Switch filter to deskew + Przejdź do obracania + + + + Switch filter to select content + Przejdź do wybierania zawartości + + + + Switch filter to margins + Przejdź do marginesów + + + + Switch filter to output + Przejdź do wyjścia + + + + Pixels + Piksele + + + + Millimetres + Milimetry + + + + Inches + Cale + + + + Centimetres + Centymetry + + + + Default parameters ... + Wartości domyślne... + + + + Stop batch processing + Zatrzymaj przetwarzanie wsadowe + + + + Save the project? + Zapisać projekt? + + + + Insert before ... + Wstaw przed... + + + + Insert after ... + Wstaw po... + + + + Remove from project ... + Usuń z projektu... + + + + Insert here ... + Wstaw tutaj... + + + + + Scan Tailor Projects + Projekty Scan Tailor + + + + Open Project + Otwórz projekt + + + + + + + Error + Błąd + + + + Unable to open the project file. + Nie można otworzyć pliku projektu. + + + + The project file is broken. + Plik projektu jest uszkodzony. + + + + version + Wersja + + + + Output is not yet possible, as the final size of pages is not yet known. +To determine it, run batch processing at "Select Content" or "Margins". + Wyjście nie jest jeszcze możliwe, ponieważ ostateczny rozmiar stron nie jest jeszcze znany. +Aby je zdefiniować, uruchom przetwarzanie wsadowe na "Wybierz zawartość' lub "Marginesy". + + + + Unnamed + Bez nazwy + + + + %2 - ScanTailor Advanced [%1bit] + + + + + + Error saving the project file! + Błąd podczas zapisywania pliku! + + + + Files to insert + Pliki do dodania + + + + Images not in project (%1) + Obrazy nie znajdujące się w projekcie (%1) + + + + Skip failed files + Pomiń błędne pliki + + + + Remove + Usuń + + + + Use Home, End, PgUp/Q, PgDown/W to navigate between pages or Shift+PgUp/Q and Shift+PgDown/W to navigate between selected ones. Alt+Wheel - scale thumbnails. + Użyj klawiszy Home, End, PgUp/Q, PgDown/W, aby poruszać się między stronami lub Shift+PgUp/Q i Shift+PgDown/W dla zaznaczonych. Alt+kółko_myszy do skalowania miniatur. + + + + + + + Previous Selected Page + Poprzednia zanaczona strona + + + + + + + Next Selected Page + Następna zaznaczona strona + + + + Previous page. + Poprzednia strona. + + + + Next page. + Następna strona. + + + + Filter selected pages only. + Tylko wybrane strony. + + + + NewOpenProjectPanel + + + Form + Formularz + + + + New Project ... + Nowy projekt... + + + + Open Project ... + Otwórz projekt... + + + + Recent Projects + Ostatnie projekty + + + + OutOfMemoryDialog + + + Out of memory + Brak pamięci + + + + Out of Memory Situation in Scan Tailor + Za mało pamięci, aby kontynuować pracę. + + + + Possible reasons + Możliwe powody + + + + Did you have to fix the DPI of your source images? Are you sure the values you entered were correct? + Jeśli musisz poprawić DPI obrazów źródłowych upewnij się, że te wartości są prawidłowe. + + + + Sometimes your source images may have wrong DPI embedded into them. Scan Tailor tries to detect those, but it's not always easy to tell. You may need to check "Fix DPI even if they look normal" when creating a project and look into "All pages" tab in the "Fix DPI" dialog, which is also accessible from the Tools menu. + Czasami nieprawidłowe DPI są zapisywane bezpośrednio w obrazach źródłowych. Scan Tailor próbuje wykryć takie przypadki, ale nie zawsze się to udaje. Być może powinieneś zaznaczyć pole wyboru "Edytuj DPI, nawet jeśli wyglądają normalnie" podczas tworzenia projektu i zaznacz pliki na karcie "Wszystkie" okna dialogowego "korekcji DPI". Po utworzeniu projektu to okno dialogowe jest dostępne z menu Narzędzia. + + + + Is your output DPI set too high? Usually you don't need it higher than 600. + Czy DPI wyjścia jest zbyt wysokie? Zazwyczaj nie ma sensu wystawiać go na więcej niż 600. + + + + What can help + Co może pomóc + + + + Fix your DPIs. Learn how to <a href="http://vimeo.com/12524529">estimate unknown DPIs</a>. + Feel free to change the URL to a localized video / text tutorial. + Zmień adres URL na samouczek wideo / tekstowy. + Napraw swoje DPI. Dowiedz się, jak <a href="http://vimeo.com/12524529">oszacować nieznane DPI</a>. + + + + If your hardware and operating system are 64-bit capable, consider switching to a 64-bit version of Scan Tailor. + Jeśli twój sprzęt i system operacyjny są 64-bitowe, rozważ przejście do 64-bitowej wersji Scan Tailor. + + + + When working with grayscale images, make sure they are really grayscale. If they are actually color images that just happen to look grayscale, convert them to grayscale using some kind of batch image converter. This will both save memory and increase performance. + Jeśli pracujesz z obrazami w skali szarości, upewnij się, że są one w tej formie zapisane. Jeśli są zapisane jako obrazy kolorowe, to zapisz je w skali szarości za pomocą jakiegoś konwertera obrazów wsadowych. Zmniejszy to zużycie pamięci i przyspieszy przetwarzanie. + + + + As a last resort, you can save some memory by making sure thumbnails are pre-created rather than created on demand. This can be done by slowly scrolling the thumbnail list all the way from top to bottom before starting any real work. + W ostateczności możesz zaoszczędzić trochę pamięci, upewniając się, że miniatury są wstępnie tworzone, a nie tworzone na żądanie. Można to zrobić, powoli przewijając listę miniatur od góry do dołu przed rozpoczęciem prawdziwej pracy. + + + + What won't help + Co nie pomaga + + + + Surprisingly, upgrading your RAM won't help here. The lack of RAM is compensated by the swap mechanism, which makes things slow, but keeps programs running. An out of memory situation means we ran out of memory address space, which has nothing to do with the amount of RAM you have. The only way to increase the memory address space is to go 64-bit hardware, 64-bit operating system and 64-bit Scan Tailor. + Co zaskakujące, uaktualnienie pamięci RAM nie pomoże tutaj. Brak pamięci RAM jest kompensowany przez mechanizm wymiany, który spowalnia pracę, ale utrzymuje działanie programów. Sytuacja braku pamięci oznacza, że skończyła się przestrzeń adresowa pamięci, co nie ma nic wspólnego z ilością pamięci RAM. Jedynym sposobem na zwiększenie przestrzeni adresowej pamięci jest przejście na 64-bitowy sprzęt, 64-bitowy system operacyjny i 64-bitowy program Scan Tailor. + + + + Save Project + Zapisz projekt + + + + Save Project As ... + Zapisz projekt jako... + + + + Don't Save + Nie zapisuj + + + + Project Saved Successfully + Projekt zapisany pomyślnie + + + + Please note that while Scan Tailor tries to catch out-of-memory situations and give you the opportunity to save your project, it's not always possible. This time it succeeded, but the next time it might just crash. + Pamiętaj, że chociaż program Scan Tailor próbuje poradzić sobie z sytuacjami braku pamięci, aby umożliwić Ci zapisanie projektu, nie zawsze jest to możliwe. Tym razem wszystko się udało, ale następnym razem program może po prostu ulec awarii. + + + + Scan Tailor Projects + Projekty Scan Tailor + + + + Error + Błąd + + + + Error saving the project file! + Błąd podczas zapisywania projektu! + + + + ProjectFilesDialog + + + Project Files + Pliki projektu + + + + + Input Directory + Katalog wejściowy + + + + + Browse + Przeglądaj + + + + + Output Directory + Katalog wyjściowy + + + + Files Not In Project + Pliki poza projektem + + + + + Select All + Wybierz wszystko + + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Add selected files to project.</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dodaj wybrane pliki do projektu.</p></body></html> + + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Remove selected files from project.</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Usuń wybrane pliki z projektu.</p></body></html> + + + + Files In Project + Pliki w projekcie + + + + Right to left layout (for Hebrew and Arabic) + System pisania od prawej do lewej (dla języka hebrajskiego lub arabskiego) + + + + Fix DPIs, even if they look OK + Napraw DPI, nawet jeśli wygląda normalnie + + + + + + + + + Error + Błąd + + + + No files in project! + Brak plików w projekcie! + + + + Input directory is not set or doesn't exist. + Katalog wejściowy nie jest ustawiony lub nie istnieje. + + + + Input and output directories can't be the same. + Katalogi wejściowe i wyjściowe nie mogą być identyczne. + + + + Create Directory? + Utworzyć katalog? + + + + Output directory doesn't exist. Create it? + Katalog wyjściowy nie istnieje. Utworzyć go? + + + + Unable to create output directory. + Nie można utworzyć katalogu wyjściowego. + + + + Output directory is not set or doesn't exist. + Katalog wyjściowy nie jest ustawiony lub nie istnieje. + + + + Some of the files failed to load. +Either we don't support their format, or they are broken. +You should remove them from the project. + Niektóre pliki nie zostały załadowane. +Albo program nie obsługuje ich formatu, albo są uszkodzone. +Powinieneś usunąć je z projektu. + + + + ProjectOpeningContext + + + + Error + Błąd + + + + The project file is not compatible with the current application version. + Plik projektu nie jest zgodny z bieżącą wersją aplikacji. + + + + Unable to interpret the project file. + Nie można zinterpretować pliku projektu. + + + + QObject + + + px + + + + + mm + + + + + cm + + + + + in + + + + + RelinkingDialog + + + Relinking + Relinking + + + + Undo + Cofnij + + + + ... + + + + + Substitution File for %1 + Plik zastępczy dla %1 + + + + Substitution Directory for %1 + Katalog zastępczy dla %1 + + + + This change would merge several files into one. + Ta zmiana połączy kilka plików w jeden. + + + + RemovePagesDialog + + + Remove Pages + Usuń strony + + + + Remove %1 page(s) from project? + Usunąć %1 stronę(y) z projektu? + + + + Corresponding output files will be deleted, while input files will remain. + Odpowiednie pliki wyjściowe zostaną usunięte, a pliki źródłowe pozostaną na dysku. + + + + SettingsDialog + + + Settings + Ustawienia + + + + General + Ogólne + + + + Accelerate user interface with OpenGL + Użyj przyspieszenia OpenGL dla interfejsu + + + + Device: %1 + Urządzenie: %1 + + + + Auto-save the existing project + Automatyczne zapisywanie bieżącego projektu + + + + Processing + Przetwarzanie + + + + Deviation + Odchylenie + + + + Highlight the thumbnails of pages with high deviation + Podświetl strony z dużym odchyleniem + + + + Params + Parametry + + + + Select content: + Wybierz zawartość: + + + + + + Deviation multiplier: a higher value means lower sensivity. + Współczynnik odchylenia: wyższa wartość oznacza mniejszą czułość. + + + + Margins: + Marginesy: + + + + + + The minimum deviation to be highlighted. + Podkreśl minimalne odchylenie + + + + Color Scheme: + Motyw: + + + + Language: + Język: + + + + Saving + Zapisywanie + + + + B&W Compression: + Kompresja B&W: + + + + Color Compression: + Kompresja kolorów: + + + + Your hardware / driver don't provide the necessary features + Twój sprzęt / sterownik nie obsługuje tej funkcji. + + + + Dark + Ciemny + + + + Light + Jasny + + + + + None + Bez kompresji + + + + + LZW + + + + + + Deflate + + + + + CCITT G4 + + + + + JPEG + + + + + Information + Informacja + + + + ScanTailor need to be restarted to apply the color scheme changes. + Aby zastosować schemat kolorów, uruchom ponownie aplikację. + + + + User Interface + Interfejs + + + + Thumbnails + Miniatury + + + + Quality: + Jakość: + + + + The pixel size of the thumbnail image. The default value is 200. + Rozmiar miniatury (px). Wartość domyślna - 200. + + + + Size: + Rozmiar: + + + + The thumbnail size in the view. The default value is 250. + Rozmiar miniatury w widoku. Wartość domyślna - 250. + + + + White on black detection + Definicja bieli na czerni + + + + Auto detect pages with light content on dark background. The corrections to all the auto algorithms are made for such pages. + Automatycznie wykrywaj strony o jasnej zawartości na ciemnym tle, aby dostosować wszystkie automatyczne algorytmy. + + + + Auto detect light content on dark background + Automatyczne wykrywanie jasnej zawartości na ciemnym tle + + + + Whether to use auto detection at the output stage. The wrong result can be changed manually in the output filter options. + Określa, czy zastosować automatyczne wykrywanie na etapie wyjściowym. Zły wynik można zmienić ręcznie w opcjach filtra wyjściowego. + + + + Use auto detection at the output stage + Użyj automatycznego wykrywania na etapie wyjściowym + + + + Native + Orginalny + + + + Single column thumbnail display + Wyświetlanie miniatur w jednej kolumnie + + + + Deskew: + Obróć: + + + + StageListView + + + Launch batch processing + Uruchom przetwarzanie wsadowe + + + + StatusBarPanel + + + Form + Formularz + + + + Mouse position. + Pozycja kursora. + + + + Mouse position relative to page. + Pozycja myszy względem strony. + + + + Physical size. + Fizyczny rozmiar. + + + + Physical size of image. + Fizyczny rozmiar obrazu. + + + + Page number. + Numer strony. + + + + Position of the selected page in current order. + Pozycja wybranej strony w bieżącej kolejności. + + + + Page information. + Informacje o stronie. + + + + Page name and type. + Nazwa i typ strony. + + + + p. %1 / %2 + str. %1 / %2 + + + + [L] + + + + + [R] + + + + + SystemLoadWidget + + + Form + Formularz + + + + System load + Obciążenie systemu + + + + + ... + + + + + ThumbnailSequence + + + %1 (page %2) + %1 (strona %2) + + + + ZoneContextMenuInteraction + + + Delete + Usuń + + + + Properties + Właściwości + + + + ZoneCreationInteraction + + + Click to finish this rectangular zone. ESC to cancel. + Kliknij, aby zakończyć ten prostokątny obszar. ESC, aby anulować. + + + + Click to finish this zone. ESC to cancel. + Kliknij, aby zakończyć tę strefę. ESC, aby anulować. + + + + Connect first and last points to finish this zone. ESC to cancel. + Połącz pierwszy i ostatni punkt, aby ukończyć tę strefę. ESC, aby anulować. + + + + Hold Ctrl to create a rectangular zone or Shift+Alt+LMB to use lasso mode. ESC to cancel. + Przytrzymaj Ctrl, aby utworzyć prostokątną strefę lub Shift+Alt+LPM, aby użyć trybu lasso. ESC, aby anulować. + + + + ZoneDefaultInteraction + + + Drag the vertex. Hold Ctrl to make the vertex angle right. + Przeciągnij wierzchołek. Przytrzymaj Ctrl, aby utworzyć kąt prosty. + + + + Click to create a new vertex here. + Kliknij tutaj, aby utworzyć nowy wierzchołek. + + + + Right click to edit zone properties. Hold Shift to drag the zone or Shift+Ctrl to copy. Press Del to delete this zone. + Kliknij prawym przyciskiem myszy, aby edytować właściwości strefy. Przytrzymaj Shift, aby przeciągnąć strefę lub Shift+Ctrl, aby skopiować. Naciśnij Del, aby usunąć strefę. + + + + Hold left mouse button to drag the zone. + Przytrzymaj lewy przycisk myszy, aby przeciągnąć strefę. + + + + Hold left mouse button to copy and drag the zone. + Przytrzymaj lewy przycisk myszy, aby skopiować i przeciągnąć strefę. + + + + Click to start creating a new zone. Use Ctrl+Alt+Click to copy the latest created zone. + Kliknij, aby rozpocząć tworzenie nowej strefy. Użyj Ctrl+Alt+Kliknij, aby skopiować ostatnio utworzoną strefę. + + + + ZoneDragInteraction + + + Release left mouse button to finish dragging. + Zwolnij lewy przycisk myszy, aby zakończyć przeciąganie. + + + + ZoneVertexDragInteraction + + + Merge these two vertices. + Połącz te dwa wierzchołki. + + + + Move the vertex to one of its neighbors to merge them. + Przesuń wierzchołek do jednego z sąsiadów, aby je scalić. + + + + deskew::ApplyDialog + + + Apply to + Zastosuj do + + + + This page only (already applied) + Tylko ta strona (już wybrana) + + + + All pages + Wszystkie strony + + + + This page and the following ones + Ta strona i kolejne + + + + This page and the following every other page + All odd or even pages, depending on the current page being odd or even. + Wszystkie strony nieparzyste lub parzyste, w zależności od bieżącej strony nieparzystej lub parzystej. + Ta strona i następnie co druga strona + + + + Every other page + All odd or even pages, depending on the current page being odd or even. + Wszystkie strony nieparzyste lub parzyste, w zależności od bieżącej strony nieparzystej lub parzystej. + Co druga strona + + + + Selected pages + Wybrane strony + + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Użyj Ctrl+Kliknij / Shift+Kliknij, aby zaznaczyć wiele stron. + + + + Every other selected page + Co druga strona spośród zaznaczonych + + + + The current page will be included. + Obecna strona zostanie dołączona. + + + + deskew::Filter + + + Natural order + Kolejność standardowa + + + + Order by decreasing deviation + Sortuj według malejącego odchylenia + + + + Deskew + Obróć + + + + deskew::ImageView + + + Use Ctrl+Wheel to rotate or Ctrl+Shift+Wheel for finer rotation. + Użyj Ctrl+kółko_myszy, aby obracać lub Ctrl+Shift+kółko_myszy, aby uzyskać dokładniejsze obracanie. + + + + Drag this handle to rotate the image. + Pociągnij ten uchwyt, aby obrócić obraz. + + + + deskew::OptionsWidget + + + Apply Deskew + Zastosuj obrócenie + + + + Form + Formularz + + + + Deskew + Obróć + + + + Auto + Automatycznie + + + + Manual + Ręcznie + + + + Apply To ... + Zastosuj do... + + + + fix_orientation::ApplyDialog + + + Fix Orientation + Popraw orientację + + + + Apply to + Zastosuj do + + + + This page only (already applied) + Tylko ta strona (już wybrana) + + + + All pages + Wszystkie strony + + + + This page and the following ones + Ta strona i kolejne + + + + This page and the following every other page + All odd or even pages, depending on the current page being odd or even. + Wszystkie strony nieparzyste lub parzyste, w zależności od bieżącej strony nieparzystej lub parzystej. + Ta strona i następnie co druga strona + + + + Every other page + All odd or even pages, depending on the current page being odd or even. + Wszystkie strony nieparzyste lub parzyste, w zależności od bieżącej strony nieparzystej lub parzystej. + Co druga strona + + + + Selected pages + Wybrane strony + + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Użyj Ctrl+Kliknij / Shift+Kliknij, aby zaznaczyć wiele stron. + + + + Every other selected page + Co druga strona spośród zaznaczonych + + + + The current page will be included. + Obecna strona zostanie dołączona. + + + + fix_orientation::Filter + + + Fix Orientation + Popraw orientację + + + + fix_orientation::OptionsWidget + + + Form + Formularz + + + + Rotate + Obrót + + + + + ... + + + + + Reset + Przywróć ustawienia początkowe + + + + Apply to ... + Zastosuj do... + + + + output::ApplyColorsDialog + + + Apply Mode + Zastosuj tryb + + + + Apply to + Zastosuj do + + + + This page only (already applied) + Tylko ta strona (już wybrana) + + + + All pages + Wszystkie strony + + + + This page and the following ones + Ta strona i kolejne + + + + Selected pages + Wybrane strony + + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Użyj Ctrl+Kliknij / Shift+Kliknij, aby zaznaczyć wiele stron. + + + + output::ChangeDewarpingDialog + + + Apply Dewarping Mode + Zastosuj tryb prostowania + + + + Mode + Tryb + + + + Off + Wyłączone + + + + Auto (experimental) + Automatyczne (eksperymentalne) + + + + Marginal (experimental) + Wokół krawędzi (eksperymentalne) + + + + Manual + Ręcznie + + + + Options + Opcje + + + + Post deskew + Po rotacji + + + + Apply to + Zastosuj do + + + + This page only + Tylko ta strona + + + + All pages + Wszystkie strony + + + + This page and the following ones + Ta strona i kolejne + + + + Selected pages + Wybrane strony + + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Użyj Ctrl+Kliknij / Shift+Kliknij, aby zaznaczyć wiele stron. + + + + output::ChangeDpiDialog + + + Custom + Własne + + + + + + Error + Błąd + + + + DPI is not set. + DPI nie jest ustawione. + + + + DPI is too low! + DPI jest za niskie! + + + + DPI is too high! + DPI jest za wysokie! + + + + Apply Output Resolution + Zastosuj rozdzielczość wyjściową + + + + DPI + + + + + Apply to + Zastosuj do + + + + This page only + Tylko ta strona + + + + All pages + Wszystkie strony + + + + This page and the following ones + Ta strona i kolejne + + + + Selected pages + Wybrane strony + + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Użyj Ctrl+Kliknij / Shift+Kliknij, aby zaznaczyć wiele stron. + + + + output::FillZoneEditor + + + Pick color + Wybierz kolor + + + + output::Filter + + + Output + Wyjście + + + + Natural order + Kolejność standardowa + + + + Order by completeness + Sortuj według postępu + + + + output::OptionsWidget + + + Black and White + Czarno-biały + + + + Color / Grayscale + Kolor / szary + + + + Mixed + Mieszany + + + + Otsu + + + + + Sauvola + + + + + Wolf + + + + + Background + Tło + + + + White + Biały + + + + Free + Luźne + + + + Rectangular + Prostokątny + + + + Apply Splitting Settings + Zastosuj ustawienia podziału + + + + Apply Despeckling Level + Zastosuj poziom oczyszczania + + + + Apply Depth Perception + Zastosuj percepcję głębi + + + + + Off + Wyłączone + + + + Auto + Automatyczne + + + + Manual + Ręcznie + + + + Marginal + Wokół krawędzi + + + + deskew disabled + Obracanie wyłączone + + + + Apply Processing Settings + Zastosuj ustawienia przetwarzania + + + + Form + Formularz + + + + Output Resolution (DPI) + Rozdzielczość wyjściowa (DPI) + + + + 0 + + + + + + Change ... + Zmień... + + + + Mode + Tryb + + + + Options + Opcje + + + + Fill offcut + Wypełnij wycięcie + + + + Fill margins + Wypełnij marginesy + + + + Normalize illumination before binarization. + Normalizuj oświetlenie przed binaryzacją. + + + + Equalize illumination (B&&W) + Wyrównaj oświetlenie (B&&W) + + + + Normalize illumination in color mode / in picture zones in mixed mode. + Normalizuj oświetlenia w trybie kolorowym / w strefach obrazu w trybie mieszanym. + + + + Equalize illumination (Color) + Wyrównaj oświetlenie (kolor) + + + + Savitzky-Golay smoothing + Wygładzanie Savitzky-Golay + + + + Morphological smoothing + Wygładzanie morfologiczne + + + + Filling + Wypełnianie + + + + Color: + Kolor: + + + + Threshold + Próg + + + + Method: + Metoda: + + + + Color operations + Operacje kolorystyczne + + + + Split the image into color segments and colorize b&w mask. + Podziel obraz na segmenty kolorów i pokoloruj maskę B&W. + + + + Color segmentation + Segmentacja kolorów + + + + R + + + + + Red component adjustment. A negative value means the segmenter will be more sensitive to red and vice versa for a positive one. + Ustawienie czerwonego elementu. Wartości ujemne wskazują, że segment będzie bardziej wrażliwy na kolor czerwony i odwrotnie w przypadku wartości dodatnich. + + + + G + + + + + Green component adjustment. A negative value means the segmenter will be more sensitive to green and vice versa for a positive one. + Ustawienie zielonego elementu. Wartości ujemne wskazują, że segment będzie bardziej wrażliwy na kolor zielony i odwrotnie w przypadku wartości dodatnich. + + + + B + + + + + Blue component adjustment. A negative value means the segmenter will be more sensitive to blue and vice versa for a positive one. + Ustawienie niebieskiego elementu. Wartości ujemne wskazują, że segment będzie bardziej wrażliwy na kolor niebieski i odwrotnie w przypadku wartości dodatnich. + + + + Reduce noise: + Redukcja szumów: + + + + Reduce the number of colors of the output image by grouping similar colors. + Zmniejsz liczbę kolorów na obrazie wyjściowym, grupując podobne kolory. + + + + Posterize + Posteryzuj + + + + Level: + Poziom: + + + + Lower value means lower count of colors in the output image, values between 2 and 6 inclusive guarantee an indexed image. + Niższa wartość oznacza mniej kolorów na obrazie wyjściowym, wartości 2 i 6 włącznie gwarantują obraz indeksowany. + + + + Normalize + Normalizuj + + + + Make dark and light gray gradients black and white respectively. + Twórz odpowiednio ciemne i jasne odcienie szarości czerni i bieli. + + + + Force b&&w + Wymusz B&&W + + + + Picture Shape + Forma zdjęć + + + + Sensitivity (%): + Wrażliwość (%): + + + + Higher search sensitivity + Wyższa czułość wyszukiwania + + + + + + + + Apply To ... + Zastosuj do... + + + + Splitting + Podział + + + + Split output + Podział wyjścia + + + + B&&W foreground + Pierwszy plan B&&W + + + + Save the original background of the foreground layer. + Zapisz oryginalne tło pierwszego planu. + + + + Original background + Oryginalne tło + + + + Color foreground + Kolor pierwszego planu + + + + Despeckling + Usuwanie plam + + + + Despeckle + Usuń plamy + + + + Processing + Przetwarzanie + + + + This option should be enabled when the page has dark content on light background and disabled if vice versa in order to correct processing algorithms. + Tę opcję należy włączyć, jeśli strona ma ciemną zawartość na jasnym tle, i wyłączyć, jeśli konieczne jest odwrotność, aby poprawić algorytmy przetwarzania. + + + + Black on white mode + Czarno na białym + + + + Depth perception + Percepcja głębi + + + + Dewarping + Prostowanie + + + + deskew + Obróć + + + + output::OtsuBinarizationOptionsWidget + + + Form + Formularz + + + + 0 + + + + + Thinner + Cieńsze + + + + Thicker + Grubsze + + + + output::PictureZonePropDialog + + + Zone Properties + Właściwości strefy + + + + Subtract from all layers + Odejmij od wszystkich warstw + + + + Add to auto layer + Dodaj do automatycznej warstwy + + + + Subtract from auto layer + Odejmij od warstwy automatycznej + + + + output::SauvolaBinarizationOptionsWidget + + + Form + Formularz + + + + Coef: + Współczynnik: + + + + The dimensions of a pixel neighborhood to consider. + Rozmiar obszaru z sąsiadującymi pikselami do obliczeń. + + + + Default value is 0.34. + Wartość domyślna - 0.34. + + + + Window size: + Rozmiar okna: + + + + output::TabbedImageView + + + Use Ctrl+1..5 to switch the tabs. + Użyj Ctrl+1..5, aby przełączać karty. + + + + output::Task::UiUpdater + + + Picture zones are only available in Mixed mode. + Strefy obrazu są dostępne tylko w trybie mieszanym. + + + + Despeckling can't be done in Color / Grayscale mode. + Usuwanie plam nie odbywa się w trybie "Kolor / Szary". + + + + Output + Wyjście + + + + Picture Zones + Strefy obrazu + + + + Fill Zones + Strefy wypełnienia + + + + Dewarping + Prostowanie + + + + Despeckling + Usuwanie plam + + + + output::WolfBinarizationOptionsWidget + + + Form + Formularz + + + + The dimensions of a pixel neighborhood to consider. + Rozmiar obszaru z sąsiadującymi pikselami do obliczeń. + + + + Window size: + Rozmiar okna: + + + + The minimum possible gray level that can be made white. + Minimalny poziom szarości, który można zmienić na biały. + + + + Upper Bound: + Górna granica: + + + + Lower bound: + Dolna granica: + + + + The maximum possible gray level that can be made black. + Maksymalny poziom szarości, który można zmienić na czarny. + + + + Coeff: + Współczynnik: + + + + Default value is 0.3. + Wartość domyślna — 0.3. + + + + page_layout::ApplyDialog + + + Apply to + Zastosuj do + + + + This page only (already applied) + Tylko ta strona (już wybrana) + + + + All pages + Wszystkie strony + + + + This page and the following ones + Ta strona i kolejne + + + + This page and the following every other page + All odd or even pages, depending on the current page being odd or even. + Ta strona i następnie co druga strona + + + + Every other page + All odd or even pages, depending on the current page being odd or even. + Co druga strona + + + + Selected pages + Wybrane strony + + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Użyj Ctrl+Kliknij / Shift+Kliknij, aby zaznaczyć wiele stron. + + + + Every other selected page + Co druga strona spośród zaznaczonych + + + + The current page will be included. + Obecna strona zostanie dołączona. + + + + page_layout::Filter + + + Natural order + Kolejność standardowa + + + + Order by increasing width + Rosnąco według szerokości + + + + Order by increasing height + Rosnąco według wysokości + + + + Order by decreasing deviation + Sortuj według malejącego odchylenia + + + + Margins + Marginesy + + + + page_layout::ImageView + + + Resize margins by dragging any of the solid lines. + Zmień rozmiar marginesów, przeciągając dowolne linie ciągłe. + + + + Hold left mouse button to drag the page content. + Przytrzymaj lewy przycisk myszy, aby przeciągnąć zawartość strony. + + + + Release left mouse button to finish dragging. + Zwolnij lewy przycisk myszy, aby zakończyć przeciąganie. + + + + Add a horizontal guide + Dodaj poziomą prowadnicę + + + + Add a vertical guide + Dodaj pionową prowadnicę + + + + Remove all the guides + Usuń wszystkie prowadnice + + + + Remove this guide + Usuń wszystkie prowadnice + + + + Show hard margins rectangle + Pokaż prostokąt z twardymi margniesami + + + + Drag the guide. + Przesuń prowadnice. + + + + page_layout::OptionsWidget + + + Apply Margins + Zastosuj marginesy + + + + Apply Alignment + Zastosuj wyrównywanie + + + + Form + Formularz + + + + Margins + Marginesy + + + + Auto Margins + Automatyczne marginesy + + + + + + + + + + + + + + ... + + + + + Top + Górny + + + + Right + Prawy + + + + Left + Lewy + + + + Bottom + Dolny + + + + + Apply To ... + Zastosuj do... + + + + Alignment + Wyrównanie + + + + Match size with other pages + Dopasuj rozmiar do pozostałych stron + + + + Mode: + Tryb: + + + + Auto + auto + Automatyczny + + + + Manual + manual + Ręczny + + + + Original + original + Orginalnie + + + + Auto aligning + Automatyczne wyrównywanie + + + + Enable horizontal + Włącz poziome + + + + Enable vertical + Włącz pionowe + + + + Guides Help + Pomoc + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Right-click</span><span style=" font-size:7pt;"> to create/remove guides from the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> called.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Right-click</span><span style=" font-size:7pt;"> on a guide to delete that guide from the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> called.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Shift+LMB</span><span style=" font-size:7pt;"> - drag the guide under the cursor.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Shift/Ctrl+LMB</span><span style=" font-size:7pt;"> on the content rectangle - drag the page content. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;"> pressed to restrict moving along the horizontal axis only or </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> for the vertical one. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;"> for usual dragging.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Double-click</span><span style=" font-size:7pt;"> on content - automatically attach that content to the nearest guide. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;"> pressed to select vertical guides only or </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> for horizontal ones. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;"> to attach that to both the nearest vertical and horizontal guides.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣</span><span style=" font-size:7pt;"> Use the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> to enable/disable showing the hard margins rectangle.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ PPM</span><span style=" font-size:7pt;"> - utwórz / usuń prowadnice z </span><span style=" font-size:7pt; font-weight:600;">menu kontekstowego</span><span style=" font-size:7pt;">.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ PPM</span><span style=" font-size:7pt;"> - usuń prowadnicę z </span><span style=" font-size:7pt; font-weight:600;">menu kontekstowego</span><span style=" font-size:7pt;">.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Shift+LPM</span><span style=" font-size:7pt;"> - przeciągnij prowadnicę pod kursorem.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Shift/Ctrl+LPM</span><span style=" font-size:7pt;"> na prostokącie z zawartością - przeciągnij zawartość strony. Przytrzymaj </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;">, aby przeciągnąć wzdłuż osi poziomej lub </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> w pionie. Przytrzymaj </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;">, aby normalnie przeciągać i upuszczać.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Kliknij dwukrotnie</span><span style=" font-size:7pt;"> - automatycznie dołącz zawartość do najbliższego przewodnika. Przytrzymaj </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;">, aby wybrać tylko prowadnice pionowe lub </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> dla poziomego. Przytrzymaj </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;">, aby przyciągnąć do najbliższych prowadnic pionowych i poziomych.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣</span><span style=" font-size:7pt;"> Użyj </span><span style=" font-size:7pt; font-weight:600;">menu kontekstowego</span><span style=" font-size:7pt;">, aby włączyć / wyłączyć wyświetlanie prostokąta pól twardych.</span></p></body></html> + + + + page_split::Filter + + + Natural order + Kolejność standardowa + + + + Order by split type + Sortuj według typu cięcia + + + + Split Pages + Dziel strony + + + + page_split::ImageView + + + Drag the line or the handles. + Przeciągnij linię lub uchwyty. + + + + page_split::OptionsWidget + + + + + Set manually + Ustaw ręcznie + + + + + Auto detected + Wykryto automatycznie + + + + Form + Formularz + + + + Page Layout + Rodzaj cięcia + + + + ? + + + + + Change ... + Zmień... + + + + Split Line + Linia podziału + + + + Auto + Automatyczna + + + + Manual + Ręczna + + + + page_split::SplitModeDialog + + + Split Pages + Dziel strony + + + + Mode + Tryb + + + + Auto + Automatyczny + + + + Manual + Ręczny + + + + Options + Opcje + + + + Apply cut + Zastosuj cięcie + + + + Apply to + Zastosuj do + + + + This page only + Tylko ta strona + + + + All pages + Wszystkie strony + + + + This page and the following ones + Ta strona i kolejne + + + + This page and the following every other page + Ta strona i następnie co druga strona + + + + Every other page + Co druga strona + + + + Selected pages + Wybrane strony + + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Użyj Ctrl+Kliknij / Shift+Kliknij, aby zaznaczyć wiele stron. + + + + Every other selected page + Co druga strona spośród zaznaczonych + + + + The current page will be included. + Obecna strona zostanie dołączona. + + + + page_split::UnremoveButton + + + Restore removed page. + Przywróć usuniętą stronę. + + + + select_content::ApplyDialog + + + Select Content + Wybierz zawartość + + + + Options + Opcje + + + + Apply content box + Zastosuj obszar zawartości + + + + Apply page box + Zastosuj obszar strony + + + + Apply to + Zastosuj do + + + + This page only (already applied) + Tylko ta strona (już wybrana) + + + + All pages + Wszystkie strony + + + + This page and the following ones + Ta strona i kolejne + + + + This page and the following every other page + All odd or even pages, depending on the current page being odd or even. + Ta strona i następnie co druga strona + + + + Every other page + All odd or even pages, depending on the current page being odd or even. + Co druga strona + + + + Selected pages + Wybrane strony + + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Użyj Ctrl+Kliknij / Shift+Kliknij, aby zaznaczyć wiele stron. + + + + Every other selected page + Co druga strona spośród zaznaczonych + + + + The current page will be included. + Obecna strona zostanie dołączona. + + + + select_content::Filter + + + Natural order + Kolejność standardowa + + + + Order by increasing width + Rosnąco według szerokości + + + + Order by increasing height + Rosnąco według wysokości + + + + Order by decreasing deviation + Sortuj według malejącego odchylenia + + + + Select Content + Wybierz zawartość + + + + select_content::ImageView + + + Use the context menu to enable / disable the content box. Hold Shift to drag a box. Use double-click on content to automatically adjust the content area. + Użyj menu kontekstowego, aby włączyć / wyłączyć pole zawartości. Przytrzymaj Shift, aby przeciągnąć pole. Kliknij dwukrotnie zawartość, aby automatycznie dostosować obszar zawartości. + + + + Drag lines or corners to resize the content box. + Przeciągnij linie lub narożniki, aby zmienić rozmiar pola zawartości. + + + + Drag lines or corners to resize the page box. + Przeciągnij linie lub rogi, aby zmienić rozmiar obszaru strony. + + + + Hold left mouse button to drag the content box. + Przytrzymaj lewy przycisk myszy, aby przeciągnąć obszar zawartości. + + + + + Release left mouse button to finish dragging. + Zwolnij lewy przycisk myszy, aby zakończyć przeciąganie. + + + + Hold left mouse button to drag the page box. + Przytrzymaj lewy przycisk myszy, aby przeciągnąć obszar strony. + + + + Create Content Box + Stwórz obszar zawartości + + + + Remove Content Box + Usuń obszar zawartości + + + + select_content::OptionsWidget + + + Form + Formularz + + + + Page Box + Obszar strony + + + + + Disable + Wyłączony + + + + + Auto + Automatyczny + + + + + Manual + Ręczny + + + + Options + Opcje + + + + Shift with corners while they are in black. + Dopasuj krawędzie do czarnego obszaru. + + + + Fine Tune Page Corners + Dopasuj krawędzie strony + + + + Width + Szerokość + + + + Height + Wysokość + + + + Content Box + Obszar zawartości + + + + Apply to ... + Zastosuj do... + + + From e03960a29fd45dabc2f5a53d7bb2f39b04f7a42d Mon Sep 17 00:00:00 2001 From: Virgil Grigoras Date: Sat, 5 Feb 2022 12:21:52 +0100 Subject: [PATCH 04/25] Ignore build folder --- .gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..d16386367 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +build/ \ No newline at end of file From 595a1eeb3cc2b053f4f27d21704a959f1b1aa116 Mon Sep 17 00:00:00 2001 From: Virgil Grigoras Date: Sat, 5 Feb 2022 13:17:46 +0100 Subject: [PATCH 05/25] German translation added --- src/translations/scantailor_de.ts | 3575 +++++++++++++++++++++++++++++ 1 file changed, 3575 insertions(+) create mode 100644 src/translations/scantailor_de.ts diff --git a/src/translations/scantailor_de.ts b/src/translations/scantailor_de.ts new file mode 100644 index 000000000..1dd28990a --- /dev/null +++ b/src/translations/scantailor_de.ts @@ -0,0 +1,3575 @@ + + + + + AboutDialog + + + ScanTailor Advanced + + ScanTailor Advanced + + + + About + Über + + + + Scan Tailor is an interactive post-processing tool for scanned pages. It performs operations such as page splitting, skew correction, adding/removing margins, and others. You give it raw scans, and you get pages ready to be printed or assembled into a PDF or DJVU file. Scanning and optical character recognition is out of scope of this project. + Scan Tailor ist ein interaktives Nachbearbeitungswerkzeug für gescannte Seiten. Es führt Operationen wie Seitenteilung, Schräglagenkorrektur, Hinzufügen/Entfernen von Rändern und Weiteres. Sie geben dem Programm rohe Scans und erhalten Seiten, die gedruckt oder zu einer PDF- oder DJVU-Datei zusammengestellt werden können. Das Scannen und die optische Zeichenerkennung sind nicht Gegenstand dieses Projekts. + + + + Authors + Autoren + + + + Joseph Artsimovich + Joseph Artsimovich + + + + Contributors + Mitwirkende + + + + U235 - Picture auto-detection algorithm. + U235 - Algorithmus zur automatischen Bilderkennung. + + + + Robert B. - First generation dewarping algorithm. + Robert B. - Entzerren-Algorithmus der ersten Generation. + + + + Andrey Bergman - System load adjustment. + Andrey Bergman - Einstellung der Systemlast. + + + + Vadim Kuznetsov - ver. Plus + Vadim Kuznetsov - Version «Plus» + + + + monday2000 - ver. Featured + monday2000 - Version «Featured» + + + + Alexander Trufanov - ver. Universal + Alexander Trufanov - Version «Universal» + + + + License + Lizenz + + + + Lead Developer of original version + Hauptentwickler der ursprünglichen Version + + + + Lead Developer of Advanced version + Hauptentwickler der erweiterten Version + + + + 4lex4 + 4lex4 + + + + Petr Kovář - ver. Enhanced + Version «Enhanced» + + + + BatchProcessingLowerPanel + + + Form + + + + + Beep when finished + Signalton nach Beendigung + + + + ColorPickupInteraction + + + Click on an area to pick up its color, or ESC to cancel. + Klicken Sie auf einen Bereich, um dessen Farbe zu übernehmen, oder brechen Sie den Vorgang mit ESC ab. + + + + DefaultParamsDialog + + + Default parameters + Standardparameter + + + + Save + Speichern + + + + Delete + Löschen + + + + Units: + Einheiten: + + + + Fix Orientation + Ausrichtung korrigieren + + + + Rotate + Drehen + + + + + + + + + + + + + + + + ... + ... + + + + Reset + Zurücksetzen + + + + Split Pages + Seiten teilen + + + + + Mode + Modus + + + + Page Layout + Seitenlayout + + + + + Deskew + Begradigen + + + + + + + + Auto + Automatisch + + + + + + + Manual + Manuell + + + + Select Content + Inhalt auswählen + + + + Page Box + Seitenbereich + + + + + Disable + Deaktivieren + + + + + Options + Optionen + + + + Shift with corners while they are in black. + Ecken verschieben solange sie Schwarz sind. + + + + Fine Tune Page Corners + Feinabstimmung der Seitenecken + + + + Width + Breite + + + + Height + Höhe + + + + Content Box + Inhaltsbereich + + + + + Margins + Seitenränder + + + + Auto Margins + Automatische Seitenränder + + + + Top + Oben + + + + Right + Rechts + + + + Left + Links + + + + Bottom + Unten + + + + Alignment + Ausrichtung + + + + Auto + auto + Automatisch + + + + Manual + manual + Manuell + + + + Original + original + Original + + + + Auto aligning + Automatische Ausrichtung + + + + Enable horizontal + Horizontal aktivieren + + + + Enable vertical + Vertikal aktivieren + + + + Match size with other pages + Größe an andere Seiten angleichen + + + + Output + Ausgabe + + + + Normalize illumination before binarization. + Belichtung vor der Binarisierung normalisieren + + + + Equalize illumination (B&&W) + Beleuchtung ausgleichen (S/W) + + + + Normalize illumination in color mode / in picture zones in mixed mode. + Beleuchtung im Farbmodus ausgleichen / im Gemischtmodus in Bildzonen. + + + + Equalize illumination (Color) + Beleuchtung ausgleichen (Farbe) + + + + Savitzky-Golay smoothing + Savitzky-Golay Glättung + + + + Morphological smoothing + Morphologische Glättung + + + + Filling + Füllung + + + + Color: + Farbe: + + + + Color operations + Farbvorgänge + + + + Split the image into color segments and colorize b&w mask. + Aufteilen des Bildes in Farbsegmente und Einfärben der Schwarzweißmaske. + + + + Color segmentation + Farbsegmentierung + + + + R + R + + + + Red component adjustment. A negative value means the segmenter will be more sensitive to red and vice versa for a positive one. + Einstellung des Rotanteils. Ein negativer Wert bedeutet, dass der Segmentierer empfindlicher auf Rot reagiert, ein positiver Wert bedeutet das Gegenteil. + + + + G + G + + + + Green component adjustment. A negative value means the segmenter will be more sensitive to green and vice versa for a positive one. + Einstellung der Grünkomponente. Ein negativer Wert bedeutet, dass der Segmentierer empfindlicher auf Grün reagiert, ein positiver Wert bedeutet das Gegenteil. + + + + B + B + + + + Blue component adjustment. A negative value means the segmenter will be more sensitive to blue and vice versa for a positive one. + Einstellung des Blauanteils. Ein negativer Wert bedeutet, dass der Segmentierer empfindlicher auf Blau reagiert, ein positiver Wert bedeutet das Gegenteil. + + + + Reduce noise: + Rauschreduzierung: + + + + Reduce the number of colors of the output image by grouping similar colors. + Farben des Ausgabebildes reduzieren, indem ähnliche Farben gruppiert werden. + + + + Posterize + Tontrennung + + + + Level: + Stufe: + + + + Lower value means lower count of colors in the output image, values between 2 and 6 inclusive guarantee an indexed image. + Ein niedriger Wert bedeutet eine geringere Anzahl von Farben im Ausgabebild, Werte zwischen 2 und 6 garantieren ein indiziertes Bild. + + + + Normalize + Normalisierung + + + + Make dark and light gray gradients black and white respectively. + Dunkle und helle Grauverläufe schwarz bzw. weiß machen. + + + + Force b&&w + S/W erzwingen + + + + Threshold + Schwellwert + + + + Method: + Methode: + + + + 0 + 0 + + + + Thinner + Dünner + + + + Thicker + Dicker + + + + Coef: + Koeffizient: + + + + + The dimensions of a pixel neighborhood to consider. + Die Größe der Pixelumgebung die berücksichtigt werden soll. + + + + + Window size: + Fenstergröße: + + + + Default value is 0.34. + Standardwert ist 0,34. + + + + The minimum possible gray level that can be made white. + Der minimal mögliche Grauwert, der weiß gemacht werden kann. + + + + Upper Bound: + Oberer Grenzwert: + + + + Lower bound: + Unterer Grenzwert: + + + + The maximum possible gray level that can be made black. + Die maximal mögliche Graustufe, die schwarz gemacht werden kann. + + + + Coeff: + Koeffizient: + + + + Default value is 0.3. + Standardwert ist 0,3. + + + + Picture Shape + Bildform + + + + Sensitivity (%): + Empfindlichkeit (%): + + + + Higher search sensivity + Höhere Suchempfindlichkeit + + + + Output Resolution (DPI) + Ausgabeauflösung (DPI) + + + + Splitting + Aufteilung + + + + Split output + Geteilte Ausgabe + + + + B&&W foreground + Vordergrund S/W + + + + Save the original background of the foreground layer. + Ursprünglichen Hintergrund der Vordergrundebene speichern + + + + Original background + Original Hintergrund + + + + Color foreground + Vordergrundfarbe + + + + Despeckling + Flecken entfernen + + + + Dewarping + Entzerren + + + + Post deskew + Nachträgliches Geraderichten + + + + Depth perception + Tiefenwahrnehmung + + + + Black and White + Schwarz und Weiß + + + + Color / Grayscale + Farbe / Graustufen + + + + Mixed + Gemischt + + + + Background + Hintergrund + + + + White + Weiß + + + + Otsu + Otsu + + + + Sauvola + Sauvola + + + + Wolf + Wolf + + + + + Off + Deaktiviert + + + + Free + Frei + + + + Rectangular + Rechteckig + + + + + + Custom + Benutzerdefiniert + + + + Marginal + Geringfügig + + + + Default + Standard + + + + Source + Quelle + + + + + + + + Error + Fehler + + + + Error loading the profile. + Fehler beim Laden des Profils. + + + + The name conflicts with a default profile name. Please enter a different name. + Der Name steht im Widerspruch zu einem Standardprofilnamen. Bitte geben Sie einen anderen Namen ein. + + + + Error saving the profile. + Fehler beim Speichern des Profils. + + + + Error deleting the profile. + Fehler beim Löschen des Profils. + + + + Fill offcut + Reststück auffüllen + + + + Fill margins + Ränder ausfüllen + + + + Despeckle + Entflecken + + + + Mode: + Modus: + + + + The profile file is not compatible with the current application version. Remove? + Die Profildatei ist nicht mit der aktuellen Anwendungsversion kompatibel. Entfernen? + + + + DragHandler + + + Unrestricted dragging is possible by holding down the Shift key. + Durch Gedrückthalten der Umschalttaste ist ein uneingeschränktes Ziehen möglich. + + + + ErrorWidget + + + Form + Form + + + + FixDpiDialog + + + Fix DPI + DPI korrigieren + + + + Tab 1 + Tab 1 + + + + Tab 2 + Tab 2 + + + + DPI + DPI + + + + Custom + Benutzerdefiniert + + + + x + x + + + + Apply + Übernehmen + + + + Need Fixing + Korrektur nötig + + + + + All Pages + Alle Seiten + + + + DPI is too large and most likely wrong. + DPI ist zu groß und höchstwahrscheinnlich falsch. + + + + DPI is too small. Even if it's correct, you are not going to get acceptable results with it. + DPI ist zu klein. Selbst wenn der Wert korrekt ist, werden Sie keine akzeptablen Resultate erhalten. + + + + DPI is too small for this pixel size. Such combination would probably lead to out of memory errors. + DPI ist zu klein für diese Pixelgröße. Eine solche Kombination würde wahrscheinlich zu Fehlern führen, wenn der Speicher voll ist. + + + + %1 (page %2) + %1 (Seite %2) + + + + ImageViewBase + + + Use the mouse wheel or +/- to zoom. When zoomed, dragging is possible. + Verwenden Sie das Mausrad oder +/- zum Zoomen. Im gezoomten Zustand ist das Ziehen möglich. + + + + InteractiveXSpline + + + Click to create a new control point. + Klicken um einen neuen Kontrollpunkt zu erstellen. + + + + This point can be dragged. Hold Ctrl or Shift to drag along axes. + Dieser Punkt kann verschoben werden. Halten Sie die Strg- oder Umschalttaste gedrückt, um entlang der Achsen zu ziehen. + + + + Drag this point or delete it by pressing Del or D. + Ziehen Sie diesen Punkt oder löschen Sie ihn mit der Taste Entf oder D. + + + + LoadFileTask + + + The following file could not be loaded: +%1 + Die folgende Datei konnte nicht geladen werden: +%1 + + + + The following file doesn't exist:<br>%1<br><br>Use the <a href="#relink">Relinking Tool</a> to locate it. + Die folgende Datei existiert nicht:<br>%1<br><br>Benutzen Sie das <a href="#relink">Tool zum erneuten Verknüpfen</a> zur Lokalisierung. + + + + LoadFilesStatusDialog + + + Some files failed to load + Einige Dateien konnten nicht geladen werden + + + + Loaded successfully: %1 + Erfolgreich geladen %1 + + + + Failed to load: %1 + Laden fehlgeschlagen: %1 + + + + MainWindow + + + MainWindow + Hauptfenster + + + + Tools + Werkzeuge + + + + Units + Einheiten + + + + File + Datei + + + + Help + Hilfe + + + + Thumbnails + Miniaturansichten + + + + Keep current page in view. + Aktuelle Seite in Ansicht behalten. + + + + Filters + Arbeitsschritte + + + + Debug Mode + Debug-Modus + + + + + Save Project + Projekt speichern + + + + Save Project As ... + Projekt speichern unter... + + + + + Next Page + Nächste Seite + + + + + Previous Page + Vorherige Seite + + + + New Project ... + Neues Projekt... + + + + Open Project ... + Projekt öffnen... + + + + Close Project + Projekt schließen + + + + Quit + Beenden + + + + Settings ... + Einstellungen... + + + + First Page + Primera página + + + + Last Page + Erste Seite + + + + About + Über + + + + Fix DPI ... + DPI korrigieren... + + + + Relinking ... + Verknüpfen... + + + + + + + + + Switch filter to orientation + Filter umschalten zur Orientierung + + + + Switch filter to split pages + Filter umschalten für Seitenaufteilung + + + + Switch filter to deskew + Filter umschalten für Geraderichten + + + + Switch filter to select content + Filter umschalten für Inhaltsauswahl + + + + Switch filter to margins + Filter umschalten für Ränder + + + + Switch filter to output + Filter umschalten für Ausgabe + + + + Pixels + Pixel + + + + Millimetres + Millimeter + + + + Inches + Zoll + + + + Centimetres + Zentimeter + + + + Default parameters ... + Standardwerte... + + + + Stop batch processing + Stapelverarbeitung abbrechen + + + + Save the project? + Projekt speichern? + + + + Insert before ... + Einfügen vor... + + + + Insert after ... + Einfügen nach... + + + + Remove from project ... + Aus Projekt entfernen... + + + + Insert here ... + Hier einfügen... + + + + + Scan Tailor Projects + Scan Tailor Projekte + + + + Open Project + Projekt öffnen + + + + + + + Error + Fehler + + + + Unable to open the project file. + Die Projektdatei kann nicht geöffnet werden. + + + + The project file is broken. + Die Projektdatei ist beschädigt. + + + + version + Version + + + + Output is not yet possible, as the final size of pages is not yet known. +To determine it, run batch processing at "Select Content" or "Margins". + Die Ausgabe ist noch nicht möglich, da die endgültige Größe der Seiten noch nicht bekannt ist. +Um sie zu ermitteln, führen Sie die Stapelverarbeitung unter "Inhalt auswählen" oder "Ränder" aus. + + + + Unnamed + Unbenannt + + + + %2 - ScanTailor Advanced [%1bit] + %2 - Scan Tailor Advanced [%1bit] + + + + + Error saving the project file! + Fehler beim Speichern der Projektdatei! + + + + Files to insert + Dateien zum Einfügen + + + + Images not in project (%1) + Bilder nicht im Projekt (%1) + + + + Skip failed files + Fehlerhafte Dateien überspringen + + + + Remove + Entfernen + + + + Use Home, End, PgUp/Q, PgDown/W to navigate between pages or Shift+PgUp/Q and Shift+PgDown/W to navigate between selected ones. Alt+Wheel - scale thumbnails. + Verwenden Sie POS 1, Ende, BildAuf/Q, BildAb/W, um zwischen den Seiten zu navigieren oder Shift+BildAuf/Q und Shift+BildAb/W, um zwischen den ausgewählten Seiten zu navigieren. Alt+Mausrad - Skalieren der Miniaturbilder. + + + + + + + Previous Selected Page + Vorherige ausgewählte Seite + + + + + + + Next Selected Page + Nächste ausgewählte Seite + + + + Previous page. + Vorherige Seite + + + + Next page. + Nächste Seite + + + + Filter selected pages only. + Nur ausgewählte Seiten filtern. + + + + NewOpenProjectPanel + + + Form + Form + + + + New Project ... + Neues Projekt... + + + + Open Project ... + Projekt öffnen... + + + + Recent Projects + Kürzliche Projekte + + + + OutOfMemoryDialog + + + Out of memory + Nicht genügend Speicherplatz + + + + Out of Memory Situation in Scan Tailor + Speicherplatzmangel in Scan Tailor + + + + Possible reasons + Mögliche Gründe + + + + Did you have to fix the DPI of your source images? Are you sure the values you entered were correct? + Mussten Sie die DPI-Werte Ihrer Quellbilder korrigieren? Sind Sie sicher, dass die von Ihnen eingegebenen Werte korrekt waren? + + + + Sometimes your source images may have wrong DPI embedded into them. Scan Tailor tries to detect those, but it's not always easy to tell. You may need to check "Fix DPI even if they look normal" when creating a project and look into "All pages" tab in the "Fix DPI" dialog, which is also accessible from the Tools menu. + Manchmal sind in Ihren Quellbildern falsche DPI-Werte eingebettet. Scan Tailor versucht, diese zu erkennen, aber es ist nicht immer einfach, sie zu identifizieren. Möglicherweise müssen Sie beim Erstellen eines Projekts "DPI-Werte korrigieren, auch wenn sie in Ordnung scheinen" ankreuzen; Schauen Sie ebenfalls im Tab "Alle Seiten" im Dialog "DPI korrigieren" nach, welcher über das Menü Extras zugänglich ist. + + + + Is your output DPI set too high? Usually you don't need it higher than 600. + Ist Ihre DPI-Einstellung für die Ausgabe zu hoch eingestellt? Normalerweise brauchen Sie nicht mehr als 600. + + + + What can help + Was kann helfen + + + + Fix your DPIs. Learn how to <a href="http://vimeo.com/12524529">estimate unknown DPIs</a>. + Feel free to change the URL to a localized video / text tutorial. + DPI korrigieren. Anleitung: <a href="http://vimeo.com/12524529">unbekannte DPI-Werte schätzen</a>. + + + + If your hardware and operating system are 64-bit capable, consider switching to a 64-bit version of Scan Tailor. + Wenn Ihre Hardware und Ihr Betriebssystem 64-Bit-fähig sind, sollten Sie den Wechsel zu einer 64-Bit-Version von Scan Tailor in Betracht ziehen. + + + + When working with grayscale images, make sure they are really grayscale. If they are actually color images that just happen to look grayscale, convert them to grayscale using some kind of batch image converter. This will both save memory and increase performance. + Achten Sie bei der Arbeit mit Graustufenbildern darauf, dass es sich wirklich um Graustufenbilder handelt. Wenn es sich tatsächlich um Farbbilder handelt, die nur zufällig wie Graustufen aussehen, konvertieren Sie sie mit einem Stapelverarbeitungs-Bildkonverter in Graustufen. Dies spart Speicherplatz und erhöht die Leistung. + + + + As a last resort, you can save some memory by making sure thumbnails are pre-created rather than created on demand. This can be done by slowly scrolling the thumbnail list all the way from top to bottom before starting any real work. + Als letzten Ausweg können Sie etwas Speicherplatz sparen, indem Sie sicherstellen, dass die Miniaturansichten vorab erstellt werden und nicht erst bei Bedarf. Dazu müssen Sie die Liste der Miniaturansichten langsam von oben nach unten durchblättern, bevor Sie mit der eigentlichen Arbeit beginnen. + + + + What won't help + Was nicht hilft + + + + Surprisingly, upgrading your RAM won't help here. The lack of RAM is compensated by the swap mechanism, which makes things slow, but keeps programs running. An out of memory situation means we ran out of memory address space, which has nothing to do with the amount of RAM you have. The only way to increase the memory address space is to go 64-bit hardware, 64-bit operating system and 64-bit Scan Tailor. + Überraschenderweise hilft eine Aufrüstung des Arbeitsspeichers hier nicht weiter. Der fehlende Arbeitsspeicher wird durch den Swap-Mechanismus kompensiert, der die Dinge langsam macht, aber die Programme dennoch ausführen lässt. Wenn der Arbeitsspeicher nicht ausreicht, bedeutet dies, dass der Speicheradressraum erschöpft ist, was nichts mit der Menge des Arbeitsspeichers zu tun hat, den Sie haben. Die einzige Möglichkeit, den Speicheradressraum zu vergrößern, besteht darin, 64-Bit-Hardware, ein 64-Bit-Betriebssystem und 64-Bit-Scan Tailor einzusetzen. + + + + Save Project + Projekt speichern + + + + Save Project As ... + Projekt speichern unter... + + + + Don't Save + Nicht speichern + + + + Project Saved Successfully + Projekt erfolgreich gespeichert + + + + Please note that while Scan Tailor tries to catch out-of-memory situations and give you the opportunity to save your project, it's not always possible. This time it succeeded, but the next time it might just crash. + Bitte beachten Sie, dass Scan Tailor zwar versucht, Situationen, in denen der Speicher voll ist, abzufangen und Ihnen die Möglichkeit zu geben, Ihr Projekt zu speichern, aber das ist nicht immer möglich. Dieses Mal hat es geklappt, aber beim nächsten Mal könnte es einfach abstürzen. + + + + Scan Tailor Projects + Scan Tailor Projekte + + + + Error + Fehler + + + + Error saving the project file! + Fehler beim Speichern der Projektdatei! + + + + ProjectFilesDialog + + + Project Files + Projektdateien + + + + + Input Directory + Eingabeverzeichnis + + + + + Browse + Durchsuchen + + + + + Output Directory + Ausgabeverzeichnis + + + + Files Not In Project + Dateien nicht im Projekt + + + + + Select All + Alle auswählen + + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Add selected files to project.</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ausgewählte Dateien zum Projekt hinzufügen.</p></body></html> + + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Remove selected files from project.</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ausgewählte Dateien aus dem Projekt entfernen.</p></body></html> + + + + Files In Project + Dateien im Projekt + + + + Right to left layout (for Hebrew and Arabic) + Layout von rechts nach links (für Hebräisch und Arabisch) + + + + Fix DPIs, even if they look OK + DPI-Werte korrigieren, auch wenn sie in Ordnung scheinen + + + + + + + + + Error + Fehler + + + + No files in project! + Keine Dateien im Projekt! + + + + Input directory is not set or doesn't exist. + Eingabeverzeichnis ist nicht gesetzt oder existiert nicht. + + + + Input and output directories can't be the same. + Eingabe- und Ausgabeverzeichnisse können nicht identisch sein. + + + + Create Directory? + Verzeichnis erstellen? + + + + Output directory doesn't exist. Create it? + Das Ausgabeverzeichnis existiert nicht. Soll es erstellt werden? + + + + Unable to create output directory. + Ausgabeverzeichnis kann nicht erstellt werden. + + + + Output directory is not set or doesn't exist. + Das Ausgabeverzeichnis ist nicht festgelegt oder existiert nicht. + + + + Some of the files failed to load. +Either we don't support their format, or they are broken. +You should remove them from the project. + Einige der Dateien konnten nicht geladen werden. +Entweder werden sie nicht unterstützt, oder sie sind beschädigt. +Sie sollten sie aus dem Projekt entfernen. + + + + ProjectOpeningContext + + + + Error + Fehler + + + + The project file is not compatible with the current application version. + Die Projektdatei ist nicht mit der aktuellen Anwendungsversion kompatibel. + + + + Unable to interpret the project file. + Die Projektdatei kann nicht interpretiert werden. + + + + QObject + + + px + px + + + + mm + mm + + + + cm + cm + + + + in + in + + + + RelinkingDialog + + + Relinking + Verknüpfen + + + + Undo + Rückgängig + + + + ... + ... + + + + Substitution File for %1 + Ersetzungsdatei für %1 + + + + Substitution Directory for %1 + Ersetzungsverzeichnis für %1 + + + + This change would merge several files into one. + Diese Änderung würde mehrere Dateien zu einer einzigen zusammenführen. + + + + RemovePagesDialog + + + Remove Pages + Dateien entfernen + + + + Remove %1 page(s) from project? + %1 Seite(n) aus dem Projekt entfernen? + + + + Corresponding output files will be deleted, while input files will remain. + Die entsprechenden Ausgabedateien werden gelöscht, während die Eingabedateien erhalten bleiben. + + + + SettingsDialog + + + Settings + Einstellungen + + + + General + Allgemein + + + + Accelerate user interface with OpenGL + Beschleunigung der Benutzeroberfläche mit OpenGL + + + + Device: %1 + Gerät: %1 + + + + Auto-save the existing project + Automatisches Speichern des bestehenden Projekts + + + + Processing + Verarbeite + + + + Deviation + Abweichung + + + + Highlight the thumbnails of pages with high deviation + Markieren von Miniaturansichten von Seiten mit hoher Abweichung + + + + Params + Parameter + + + + Select content: + Inhalt auswählen: + + + + + + Deviation multiplier: a higher value means lower sensivity. + Abweichungsmultiplikator: ein höherer Wert bedeutet eine geringere Empfindlichkeit. + + + + Margins: + Ränder: + + + + + + The minimum deviation to be highlighted. + Die minimale Abweichung, die hervorgehoben werden soll. + + + + Color Scheme: + Farbschema: + + + + Language: + Sprache: + + + + Saving + Speichern + + + + B&W Compression: + S/W Kompression: + + + + Color Compression: + Farbkompression: + + + + Your hardware / driver don't provide the necessary features + Ihre Hardware/Treiber bieten nicht die erforderlichen Funktionen + + + + Dark + Dunkel + + + + Light + Hell + + + + + None + Keine + + + + + LZW + LZW + + + + + Deflate + Deflate + + + + CCITT G4 + CCITT G4 + + + + JPEG + JPEG + + + + Information + Information + + + + ScanTailor need to be restarted to apply the color scheme changes. + ScanTailor muss neu gestartet werden, um die Änderungen am Farbschema zu übernehmen. + + + + User Interface + Benutzeroberfläche + + + + Thumbnails + Vorschaubilder + + + + Quality: + Qualität + + + + The pixel size of the thumbnail image. The default value is 200. + Die Pixelgröße des Vorschaubildes. Der Standardwert ist 200. + + + + Size: + Größe: + + + + The thumbnail size in the view. The default value is 250. + Die Größe der Vorschaubilder in der Ansicht. Der Standardwert ist 250. + + + + White on black detection + Erkennung von Weiß auf Schwarz + + + + Auto detect pages with light content on dark background. The corrections to all the auto algorithms are made for such pages. + Automatische Erkennung von Seiten mit hellem Inhalt auf dunklem Hintergrund. Die Korrekturen an allen Auto-Algorithmen werden für solche Seiten vorgenommen. + + + + Auto detect light content on dark background + Helle Inhalte auf dunklem Hintergrund automatisch erkennen + + + + Whether to use auto detection at the output stage. The wrong result can be changed manually in the output filter options. + Ob die automatische Erkennung in der Ausgabestufe verwendet werden soll. Das falsche Ergebnis kann manuell in den Ausgabefilteroptionen geändert werden. + + + + Use auto detection at the output stage + Automatische erkennung in der Ausgabestufe verwenden + + + + Native + Nativ + + + + Single column thumbnail display + Einspaltige Ansicht der Vorschaubilder + + + + Deskew: + Geraderichten: + + + + StageListView + + + Launch batch processing + Stapelverarbeitung starten + + + + StatusBarPanel + + + Form + Form + + + + Mouse position. + Mausposition. + + + + Mouse position relative to page. + Mausposition relativ zur Seite. + + + + Physical size. + Physische Größe. + + + + Physical size of image. + Physische Größe des Bildes. + + + + Page number. + Seite. + + + + Position of the selected page in current order. + Position der ausgewählten Seite in aktueller Sortierung + + + + Page information. + Seiteninformation. + + + + Page name and type. + Seitenname und Typ. + + + + p. %1 / %2 + S. %1 / %2 + + + + [L] + [L] + + + + [R] + [R] + + + + SystemLoadWidget + + + Form + Form + + + + System load + Systemauslastung + + + + + ... + ... + + + + ThumbnailSequence + + + %1 (page %2) + %1 (Seite %2) + + + + ZoneContextMenuInteraction + + + Delete + Löschen + + + + Properties + Eigenschaften + + + + ZoneCreationInteraction + + + Click to finish this rectangular zone. ESC to cancel. + Klicken um diese Rechteckszone abzuschließen. ESC für Abbruch. + + + + Click to finish this zone. ESC to cancel. + Klicken um diese Zone zu beenden. ESC für Abbruch. + + + + Connect first and last points to finish this zone. ESC to cancel. + Verbinden Sie den ersten und den letzten Punkt, um diese Zone zu beenden. ESC für Abbruch. + + + + Hold Ctrl to create a rectangular zone or Shift+Alt+LMB to use lasso mode. ESC to cancel. + Halten Sie die Strg-Taste gedrückt, um eine rechteckige Zone zu erstellen, oder Shift+Alt+LMT, um den Lasso-Modus zu verwenden. ESC zum Abbrechen. + + + + ZoneDefaultInteraction + + + Drag the vertex. Hold Ctrl to make the vertex angle right. + Ziehen Sie den Scheitelpunkt. Halten Sie die Strg-Taste gedrückt, um den Scheitelpunktwinkel nach rechts zu verschieben. + + + + Click to create a new vertex here. + Klicken Sie hier, um einen neuen Scheitelpunkt zu erstellen. + + + + Right click to edit zone properties. Hold Shift to drag the zone or Shift+Ctrl to copy. Press Del to delete this zone. + Klicken Sie mit der rechten Maustaste, um die Zoneneigenschaften zu bearbeiten. Halten Sie die Umschalttaste gedrückt, um die Zone zu ziehen, oder drücken Sie Umschalt+Strg, um sie zu kopieren. Drücken Sie Entf, um diese Zone zu löschen. + + + + Hold left mouse button to drag the zone. + Halten Sie die linke Maustaste gedrückt, um den Bereich zu ziehen. + + + + Hold left mouse button to copy and drag the zone. + Halten Sie die linke Maustaste zum Kopieren gedrückt und ziehen Sie den Bereich. + + + + Click to start creating a new zone. Use Ctrl+Alt+Click to copy the latest created zone. + Klicken um eine neue Zone zu erstellen. Verwenden Sie Strg+Alt+LMT, um die zuletzt erstellte Zone zu kopieren. + + + + ZoneDragInteraction + + + Release left mouse button to finish dragging. + Lassen Sie die linke Maustaste los, um das Ziehen zu beenden. + + + + ZoneVertexDragInteraction + + + Merge these two vertices. + Diese zwei Scheitelpunkte verschmelzen. + + + + Move the vertex to one of its neighbors to merge them. + Ziehen Sie den Scheitelpunkt zu einem seiner Nachbarn um ihn mit diesen zu verschmelzen. + + + + deskew::ApplyDialog + + + Apply to + Übernehmen auf + + + + This page only (already applied) + Nur diese Seite (bereits angewendet) + + + + All pages + Alle Seiten + + + + This page and the following ones + Diese und darauffolgende Seiten + + + + This page and the following every other page + All odd or even pages, depending on the current page being odd or even. + Diese Seite und darauffolgend jede zweite Seite + + + + Every other page + All odd or even pages, depending on the current page being odd or even. + Jede zweite Seite + + + + Selected pages + Ausgewählte Seiten + + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Verwenden Sie Strg+LMT / Umschalt+LMT, um mehrere Seiten auszuwählen. + + + + Every other selected page + Jede andere ausgewählte Seite + + + + The current page will be included. + Die aktuelle Seite wird einbezogen. + + + + deskew::Filter + + + Natural order + Natürliche Sortierung + + + + Order by decreasing deviation + Nach absteigender Abweichung sortieren + + + + Deskew + Geraderichten + + + + deskew::ImageView + + + Use Ctrl+Wheel to rotate or Ctrl+Shift+Wheel for finer rotation. + Verwenden Sie Strg+Mausrad zum Drehen oder Strg+Umschalt+Mausrad für eine feinere Drehung. + + + + Drag this handle to rotate the image. + Ziehen Sie diesen Griff, um das Bild zu drehen. + + + + deskew::OptionsWidget + + + Apply Deskew + Geraderichten anwenden + + + + Form + Form + + + + Deskew + Geraderichten + + + + Auto + Automatisch + + + + Manual + Manuell + + + + Apply To ... + Anwenden auf... + + + + fix_orientation::ApplyDialog + + + Fix Orientation + Ausrichtung korrigieren + + + + Apply to + Anwenden auf + + + + This page only (already applied) + Nur diese Seite (bereits angewendet) + + + + All pages + Alle Seiten + + + + This page and the following ones + Diese und darauffolgende Seiten + + + + This page and the following every other page + All odd or even pages, depending on the current page being odd or even. + Diese Seite und darauffolgend jede zweite Seite + + + + Every other page + All odd or even pages, depending on the current page being odd or even. + Jede zweite Seite + + + + Selected pages + Ausgewählte Seiten + + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Verwenden Sie Strg+LMT / Umschalt+LMT, um mehrere Seiten auszuwählen. + + + + Every other selected page + Jede andere ausgewählte Seite + + + + The current page will be included. + Die aktuelle Seite wird einbezogen. + + + + fix_orientation::Filter + + + Fix Orientation + Ausrichtung korrigieren + + + + fix_orientation::OptionsWidget + + + Form + Form + + + + Rotate + Drehen + + + + + ... + ... + + + + Reset + Zurücksetzen + + + + Apply to ... + Anwenden auf... + + + + output::ApplyColorsDialog + + + Apply Mode + Anwenden-Modus + + + + Apply to + Anwenden auf + + + + This page only (already applied) + Nur diese Seite (bereits angewendet) + + + + All pages + Alle Seiten + + + + This page and the following ones + Diese und darauffolgende Seiten + + + + Selected pages + Ausgewählte Seiten + + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Verwenden Sie Strg+LMT / Umschalt+LMT, um mehrere Seiten auszuwählen. + + + + output::ChangeDewarpingDialog + + + Apply Dewarping Mode + Entzerrungsmodus anwenden + + + + Mode + Modus + + + + Off + Deaktiviert + + + + Auto (experimental) + Automatisch (experimentell) + + + + Marginal (experimental) + Marginal (experimentell) + + + + Manual + Manuell + + + + Options + Optionen + + + + Post deskew + Nachträgliches Geraderichten + + + + Apply to + Anwenden auf + + + + This page only + Nur diese Seite + + + + All pages + Alle Seiten + + + + This page and the following ones + Diese und darauffolgende Seiten + + + + Selected pages + Ausgewählte Seiten + + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Verwenden Sie Strg+LMT / Umschalt+LMT, um mehrere Seiten auszuwählen. + + + + output::ChangeDpiDialog + + + Custom + Benutzerdefiniert + + + + + + Error + Fehler + + + + DPI is not set. + DPI nicht gesetzt. + + + + DPI is too low! + DPI ist zu niedrig! + + + + DPI is too high! + DPI ist zu hoch! + + + + Apply Output Resolution + Ausgabeauflösung anwenden + + + + DPI + DPI + + + + Apply to + Anwenden auf + + + + This page only + Nur diese Seite + + + + All pages + Alle Seiten + + + + This page and the following ones + Diese und darauffolgende Seiten + + + + Selected pages + Ausgewählte Seiten + + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Verwenden Sie Strg+LMT / Umschalt+LMT, um mehrere Seiten auszuwählen. + + + + output::FillZoneEditor + + + Pick color + Farbe auswählen + + + + output::Filter + + + Output + Ausgabe + + + + Natural order + Natürliche Sortierung + + + + Order by completeness + Sortierung nach Vollständigkeit + + + + output::OptionsWidget + + + Black and White + Schwarz und Weiß + + + + Color / Grayscale + Farbe / Graustufen + + + + Mixed + Gemischt + + + + Otsu + Otsu + + + + Sauvola + Sauvola + + + + Wolf + Wolf + + + + Background + Hintergrund + + + + White + Weiß + + + + Free + Frei + + + + Rectangular + Rechteckig + + + + Apply Splitting Settings + Aufteilungseinstellungen anwenden + + + + Apply Despeckling Level + Level für Flecken entfernen anwenden + + + + Apply Depth Perception + Tiefenwahrnehmung anwenden + + + + + Off + Deaktiviert + + + + Auto + Automatisch + + + + Manual + Manuell + + + + Marginal + Marginal + + + + deskew disabled + Geraderichten deaktiviert + + + + Apply Processing Settings + Verarbeitungseinstellungen anwenden + + + + Form + Form + + + + Output Resolution (DPI) + Ausgabeauflösung (DPI) + + + + 0 + 0 + + + + + Change ... + Ändern... + + + + Mode + Modus + + + + Options + Optionen + + + + Fill offcut + Reststück füllen + + + + Fill margins + Ränder füllen + + + + Normalize illumination before binarization. + Belichtung vor der Binarisierung normalisieren + + + + Equalize illumination (B&&W) + Beleuchtung ausgleichen (S/W) + + + + Normalize illumination in color mode / in picture zones in mixed mode. + Beleuchtung im Farbmodus ausgleichen / im Gemischtmodus in Bildzonen. + + + + Equalize illumination (Color) + Beleuchtung ausgleichen (Farbe) + + + + Savitzky-Golay smoothing + Savitzky-Golay-Glättung + + + + Morphological smoothing + Morphologische Glättung + + + + Filling + Füllung + + + + Color: + Farbe: + + + + Threshold + Schwellwert + + + + Method: + Methode: + + + + Color operations + Farboperationen + + + + Split the image into color segments and colorize b&w mask. + Aufteilen des Bildes in Farbsegmente und Einfärben der Schwarzweißmaske. + + + + Color segmentation + Farbsegmentierung + + + + R + R + + + + Red component adjustment. A negative value means the segmenter will be more sensitive to red and vice versa for a positive one. + Einstellung des Rotanteils. Ein negativer Wert bedeutet, dass der Segmentierer empfindlicher auf Rot reagiert, ein positiver Wert bedeutet das Gegenteil. + + + + G + G + + + + Green component adjustment. A negative value means the segmenter will be more sensitive to green and vice versa for a positive one. + Einstellung der Grünkomponente. Ein negativer Wert bedeutet, dass der Segmentierer empfindlicher auf Grün reagiert, ein positiver Wert bedeutet das Gegenteil. + + + + B + B + + + + Blue component adjustment. A negative value means the segmenter will be more sensitive to blue and vice versa for a positive one. + Einstellung des Blauanteils. Ein negativer Wert bedeutet, dass der Segmentierer empfindlicher auf Blau reagiert, ein positiver Wert bedeutet das Gegenteil. + + + + Reduce noise: + Rauschreduzierung: + + + + Reduce the number of colors of the output image by grouping similar colors. + Reduce the number of colors of the output image by grouping similar colors. + + + + Posterize + Tontrennung + + + + Level: + Stufe: + + + + Lower value means lower count of colors in the output image, values between 2 and 6 inclusive guarantee an indexed image. + Ein niedriger Wert bedeutet eine geringere Anzahl von Farben im Ausgabebild, Werte zwischen 2 und 6 garantieren ein indiziertes Bild. + + + + Normalize + Normalisierung + + + + Make dark and light gray gradients black and white respectively. + Dunkle und helle Grauverläufe schwarz bzw. weiß machen. + + + + Force b&&w + S/W erzwingen + + + + Picture Shape + Bildform + + + + Sensitivity (%): + Empfindlichkeit (%): + + + + Higher search sensitivity + Höhere Suchempfindlichkeit + + + + + + + + Apply To ... + Anwenden auf... + + + + Splitting + Aufteilung + + + + Split output + Ausgabe aufteilen + + + + B&&W foreground + S/W Vordergrund + + + + Save the original background of the foreground layer. + Ursprünglichen Hintergrund der Vordergrundebene speichern + + + + Original background + Original Hintergrund + + + + Color foreground + Vordergrundfarbe + + + + Despeckling + Flecken entfernen + + + + Despeckle + Flecken entfernen + + + + Processing + Verarbeitung + + + + This option should be enabled when the page has dark content on light background and disabled if vice versa in order to correct processing algorithms. + Diese Option sollte aktiviert werden, wenn die Seite dunklen Inhalt auf hellem Hintergrund hat, und deaktiviert werden, wenn es umgekehrt ist, um die Verarbeitungsalgorithmen zu korrigieren. + + + + Black on white mode + Schwarz-auf-Weiß-Modus + + + + Depth perception + Tiefenwahrnehmung + + + + Dewarping + Entzerren + + + + deskew + Geraderichten + + + + output::OtsuBinarizationOptionsWidget + + + Form + Form + + + + 0 + 0 + + + + Thinner + Dünner + + + + Thicker + Dicker + + + + output::PictureZonePropDialog + + + Zone Properties + Zoneneinstellungen + + + + Subtract from all layers + Aus allen Ebenen entfernen + + + + Add to auto layer + Zur Auto-Ebene hinzufügen + + + + Subtract from auto layer + Aus Auto-Ebene substrahieren + + + + output::SauvolaBinarizationOptionsWidget + + + Form + Form + + + + Coef: + Koeffizient: + + + + The dimensions of a pixel neighborhood to consider. + Die Größe der Pixelumgebung die berücksichtigt werden soll. + + + + Default value is 0.34. + Standardwert ist 0,34. + + + + Window size: + Fenstergröße: + + + + output::TabbedImageView + + + Use Ctrl+1..5 to switch the tabs. + Benutzen Sie STRG+1..5 um zwischen den Tabs zu wechseln. + + + + output::Task::UiUpdater + + + Picture zones are only available in Mixed mode. + Bildzonen sind nur im Gemischtmodus verfügbar. + + + + Despeckling can't be done in Color / Grayscale mode. + Flecken können nicht im Farb / Graustufenmodus entfernt werden + + + + Output + Ausgabe + + + + Picture Zones + Bildzonen + + + + Fill Zones + Füllzonen + + + + Dewarping + Entzerren + + + + Despeckling + Fleckenentfernung + + + + output::WolfBinarizationOptionsWidget + + + Form + Form + + + + The dimensions of a pixel neighborhood to consider. + Die Größe der Pixelumgebung die berücksichtigt werden soll. + + + + Window size: + Fenstergröße: + + + + The minimum possible gray level that can be made white. + Der minimal mögliche Grauwert, der weiß gemacht werden kann. + + + + Upper Bound: + Oberer Grenzwert: + + + + Lower bound: + Unterer Grenzwert: + + + + The maximum possible gray level that can be made black. + Die maximal mögliche Graustufe, die schwarz gemacht werden kann. + + + + Coeff: + Koeffizient: + + + + Default value is 0.3. + Standardwert ist 0,3. + + + + page_layout::ApplyDialog + + + Apply to + Anwenden auf + + + + This page only (already applied) + Nur diese Seite (bereits angewendet) + + + + All pages + Alle Seiten + + + + This page and the following ones + Diese und darauffolgende Seiten + + + + This page and the following every other page + All odd or even pages, depending on the current page being odd or even. + Diese Seite und darauffolgend jede zweite Seite + + + + Every other page + All odd or even pages, depending on the current page being odd or even. + Jede zweite Seite + + + + Selected pages + Ausgewählte Seiten + + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Verwenden Sie Strg+LMT / Umschalt+LMT, um mehrere Seiten auszuwählen. + + + + Every other selected page + Jede andere ausgewählte Seite + + + + The current page will be included. + Die aktuelle Seite wird einbezogen. + + + + page_layout::Filter + + + Natural order + Natürliche Sortierung + + + + Order by increasing width + Sortierung nach aufsteigender Breite + + + + Order by increasing height + Sortierung nach aufsteigender Höhe + + + + Order by decreasing deviation + Nach absteigender Abweichung sortieren + + + + Margins + Ränder + + + + page_layout::ImageView + + + Resize margins by dragging any of the solid lines. + Ändern Sie die Größe der Ränder, indem Sie an einer der durchgezogenen Linien ziehen. + + + + Hold left mouse button to drag the page content. + Halten Sie die linke Maustaste gedrückt, um den Seiteninhalt zu ziehen. + + + + Release left mouse button to finish dragging. + Lassen Sie die linke Maustaste los, um das Ziehen zu beenden. + + + + Add a horizontal guide + Horizontale Hilfslinie hinzufügen + + + + Add a vertical guide + Vertikale Hilfslinie hinzufügen + + + + Remove all the guides + Alle Hilfslinien entfernen + + + + Remove this guide + Diese Hilfslinie entfernen + + + + Show hard margins rectangle + Rechteck mit harten Rändern anzeigen + + + + Drag the guide. + Hilfslinie ziehen + + + + page_layout::OptionsWidget + + + Apply Margins + Ränder anwenden + + + + Apply Alignment + Ausrichtung übernehmen + + + + Form + Form + + + + Margins + Ränder + + + + Auto Margins + Automatische Seitenränder + + + + + + + + + + + + + + ... + ... + + + + Top + Oben + + + + Right + Rechts + + + + Left + Links + + + + Bottom + Unten + + + + + Apply To ... + Anwenden auf... + + + + Alignment + Ausrichtung + + + + Match size with other pages + Größe an andere Seiten angleichen + + + + Mode: + Modus: + + + + Auto + auto + Automatich + + + + Manual + manual + Manuell + + + + Original + original + Original + + + + Auto aligning + Automatische Ausrichtung + + + + Enable horizontal + Horizontal aktivieren + + + + Enable vertical + Vertikal aktivieren + + + + Guides Help + Hilfe für Hilfslinien + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Right-click</span><span style=" font-size:7pt;"> to create/remove guides from the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> called.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Right-click</span><span style=" font-size:7pt;"> on a guide to delete that guide from the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> called.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Shift+LMB</span><span style=" font-size:7pt;"> - drag the guide under the cursor.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Shift/Ctrl+LMB</span><span style=" font-size:7pt;"> on the content rectangle - drag the page content. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;"> pressed to restrict moving along the horizontal axis only or </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> for the vertical one. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;"> for usual dragging.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Double-click</span><span style=" font-size:7pt;"> on content - automatically attach that content to the nearest guide. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;"> pressed to select vertical guides only or </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> for horizontal ones. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;"> to attach that to both the nearest vertical and horizontal guides.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣</span><span style=" font-size:7pt;"> Use the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> to enable/disable showing the hard margins rectangle.</span></p></body></html> + + + + + page_split::Filter + + + Natural order + Natürliche Sortierung + + + + Order by split type + Sortierung nach Teilungsart + + + + Split Pages + Seiten teilen + + + + page_split::ImageView + + + Drag the line or the handles. + Ziehen Sie die Linie oder die Griffe. + + + + page_split::OptionsWidget + + + + + Set manually + Manuell einstellen + + + + + Auto detected + Automatisch erkannt + + + + Form + Form + + + + Page Layout + Seitenlayout + + + + ? + ? + + + + Change ... + Ändern... + + + + Split Line + Trennungslinie + + + + Auto + Automatisch + + + + Manual + Manuell + + + + page_split::SplitModeDialog + + + Split Pages + Seiten trennen + + + + Mode + Modus + + + + Auto + Automatisch + + + + Manual + Manuell + + + + Options + Optionen + + + + Apply cut + Schnitt anwenden + + + + Apply to + Anwenden auf + + + + This page only + Nur diese Seite + + + + All pages + Alle Seiten + + + + This page and the following ones + Diese und darauffolgende Seiten + + + + This page and the following every other page + Diese Seite und darauffolgend jede zweite Seite + + + + Every other page + Jede zweite Seite + + + + Selected pages + Ausgewählte Seiten + + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Verwenden Sie Strg+LMT / Umschalt+LMT, um mehrere Seiten auszuwählen. + + + + Every other selected page + Todas las demás páginas seleccionadas + + + + The current page will be included. + Die aktuelle Seite wird einbezogen. + + + + page_split::UnremoveButton + + + Restore removed page. + Entfernte Seite wiederherstellen. + + + + select_content::ApplyDialog + + + Select Content + Inhalt auswählen + + + + Options + Optionen + + + + Apply content box + Inhaltsbereich anwenden + + + + Apply page box + Seitenbereich anwenden + + + + Apply to + Anwenden auf + + + + This page only (already applied) + Nur diese Seite (bereits angewendet) + + + + All pages + Alle Seiten + + + + This page and the following ones + Diese und darauffolgende Seiten + + + + This page and the following every other page + All odd or even pages, depending on the current page being odd or even. + Diese Seite und darauffolgend jede zweite Seite + + + + Every other page + All odd or even pages, depending on the current page being odd or even. + Jede zweite Seite + + + + Selected pages + Páginas seleccionadas + + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Verwenden Sie Strg+LMT / Umschalt+LMT, um mehrere Seiten auszuwählen. + + + + Every other selected page + Todas las demás páginas seleccionadas + + + + The current page will be included. + Die aktuelle Seite wird einbezogen. + + + + select_content::Filter + + + Natural order + Natürliche Sortierung + + + + Order by increasing width + Sortierung nach aufsteigender Breite + + + + Order by increasing height + Sortierung nach aufsteigender Höhe + + + + Order by decreasing deviation + Nach absteigender Abweichung sortieren + + + + Select Content + Inhalt auswählen + + + + select_content::ImageView + + + Use the context menu to enable / disable the content box. Hold Shift to drag a box. Use double-click on content to automatically adjust the content area. + Verwenden Sie das Kontextmenü, um den Inhaltsbereich zu aktivieren/deaktivieren. Halten Sie die Umschalttaste gedrückt, um einen Rahmen zu ziehen. Verwenden Sie einen Doppelklick auf den Inhalt, um den Inhaltsbereich automatisch anzupassen. + + + + Drag lines or corners to resize the content box. + Ziehen Sie Linien oder Ecken, um die Größe des Inhaltsbereichs zu ändern. + + + + Drag lines or corners to resize the page box. + Ziehen Sie Linien oder Ecken, um die Größe des Seitenbereichs zu ändern. + + + + Hold left mouse button to drag the content box. + Ziehen Sie Linien oder Ecken, um die Größe des Inhaltsbereichs zu ändern. + + + + + Release left mouse button to finish dragging. + Lassen Sie die linke Maustaste los, um das Ziehen zu beenden. + + + + Hold left mouse button to drag the page box. + Halten Sie die linke Maustaste gedrückt um den Seitenbereich zu ziehen + + + + Create Content Box + Inhaltsbereich erstellen + + + + Remove Content Box + Inhaltsbereich entfernen + + + + select_content::OptionsWidget + + + Form + Form + + + + Page Box + Seitenbereich + + + + + Disable + Deaktivieren + + + + + Auto + Automatich + + + + + Manual + Manuell + + + + Options + Optionen + + + + Shift with corners while they are in black. + Ecken verschieben solange sie Schwarz sind. + + + + Fine Tune Page Corners + Finetuning der Seitenecken + + + + Width + Breite + + + + Height + Höhe + + + + Content Box + Inhaltsbereich + + + + Apply to ... + Anwenden auf... + + + \ No newline at end of file From 87af48413b4a2357d36f685f2b7334d29d3b7848 Mon Sep 17 00:00:00 2001 From: Virgil Grigoras Date: Sat, 5 Feb 2022 21:01:30 +0100 Subject: [PATCH 06/25] Add option to use black as filling background color --- src/app/DefaultParamsDialog.cpp | 1 + src/core/filters/output/ColorCommonOptions.cpp | 14 ++++++++++---- src/core/filters/output/ColorCommonOptions.h | 2 +- src/core/filters/output/OptionsWidget.cpp | 1 + src/core/filters/output/OutputGenerator.cpp | 11 ++++++++++- 5 files changed, 23 insertions(+), 6 deletions(-) diff --git a/src/app/DefaultParamsDialog.cpp b/src/app/DefaultParamsDialog.cpp index d22353416..3836390b8 100644 --- a/src/app/DefaultParamsDialog.cpp +++ b/src/app/DefaultParamsDialog.cpp @@ -43,6 +43,7 @@ DefaultParamsDialog::DefaultParamsDialog(QWidget* parent) fillingColorBox->addItem(tr("Background"), FILL_BACKGROUND); fillingColorBox->addItem(tr("White"), FILL_WHITE); + fillingColorBox->addItem(tr("Black"), FILL_BLACK); thresholdMethodBox->addItem(tr("Otsu"), OTSU); thresholdMethodBox->addItem(tr("Sauvola"), SAUVOLA); diff --git a/src/core/filters/output/ColorCommonOptions.cpp b/src/core/filters/output/ColorCommonOptions.cpp index 1b77084a0..1cbb70a22 100644 --- a/src/core/filters/output/ColorCommonOptions.cpp +++ b/src/core/filters/output/ColorCommonOptions.cpp @@ -37,10 +37,13 @@ bool ColorCommonOptions::operator!=(const ColorCommonOptions& other) const { } FillingColor ColorCommonOptions::parseFillingColor(const QString& str) { - if (str == "white") { - return FILL_WHITE; - } else { - return FILL_BACKGROUND; + switch(str) { + case "white": + return FILL_WHITE; + case "black": + return FILL_BLACK; + default: + return FILL_BACKGROUND; } } @@ -50,6 +53,9 @@ QString ColorCommonOptions::formatFillingColor(FillingColor type) { case FILL_WHITE: str = "white"; break; + case FILL_BLACK: + str = "black"; + break; case FILL_BACKGROUND: str = "background"; break; diff --git a/src/core/filters/output/ColorCommonOptions.h b/src/core/filters/output/ColorCommonOptions.h index 7e181189d..9882ab81f 100644 --- a/src/core/filters/output/ColorCommonOptions.h +++ b/src/core/filters/output/ColorCommonOptions.h @@ -11,7 +11,7 @@ class QDomDocument; class QDomElement; namespace output { -enum FillingColor { FILL_BACKGROUND, FILL_WHITE }; +enum FillingColor { FILL_BACKGROUND, FILL_WHITE, FILL_BLACK }; class ColorCommonOptions { public: diff --git a/src/core/filters/output/OptionsWidget.cpp b/src/core/filters/output/OptionsWidget.cpp index 81859a4a9..663f92ded 100644 --- a/src/core/filters/output/OptionsWidget.cpp +++ b/src/core/filters/output/OptionsWidget.cpp @@ -45,6 +45,7 @@ OptionsWidget::OptionsWidget(std::shared_ptr settings, const PageSelec fillingColorBox->addItem(tr("Background"), FILL_BACKGROUND); fillingColorBox->addItem(tr("White"), FILL_WHITE); + fillingColorBox->addItem(tr("Black"), FILL_BLACK); QPointer otsuBinarizationOptionsWidget = new OtsuBinarizationOptionsWidget(m_settings); QPointer sauvolaBinarizationOptionsWidget diff --git a/src/core/filters/output/OutputGenerator.cpp b/src/core/filters/output/OutputGenerator.cpp index 48ce8bbc0..a59b7177f 100644 --- a/src/core/filters/output/OutputGenerator.cpp +++ b/src/core/filters/output/OutputGenerator.cpp @@ -1427,10 +1427,19 @@ std::unique_ptr OutputGenerator::Processor::processWithoutDewarping } if (m_renderParams.needBinarization() && !m_renderParams.originalBackground()) { - m_outsideBackgroundColor = Qt::white; + switch(m_colorParams.colorCommonOptions().getFillingColor()) { + case FILL_BLACK: + m_outsideBackgroundColor = Qt::black; + break; + default: + m_outsideBackgroundColor = Qt::white; + } } else if (m_colorParams.colorCommonOptions().getFillingColor() == FILL_WHITE) { m_outsideBackgroundColor = m_blackOnWhite ? Qt::white : Qt::black; + } else if (m_colorParams.colorCommonOptions().getFillingColor() == FILL_BLACK) { + m_outsideBackgroundColor = m_blackOnWhite ? Qt::black : Qt::white; } + fillMarginsInPlace(maybeNormalized, m_contentAreaInWorkingCs, m_outsideBackgroundColor); dst.fill(m_outsideBackgroundColor); From b83d557c02988e0f6b0fa95ded4ad5d63fa4901f Mon Sep 17 00:00:00 2001 From: Virgil Grigoras Date: Sat, 5 Feb 2022 21:29:48 +0100 Subject: [PATCH 07/25] Better translation --- src/translations/scantailor_de.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/translations/scantailor_de.ts b/src/translations/scantailor_de.ts index 1dd28990a..c3ea6c3f6 100644 --- a/src/translations/scantailor_de.ts +++ b/src/translations/scantailor_de.ts @@ -1581,12 +1581,12 @@ Sie sollten sie aus dem Projekt entfernen. Auto-save the existing project - Automatisches Speichern des bestehenden Projekts + Automatisches Speichern des offenen Projekts Processing - Verarbeite + Verarbeitung @@ -1713,7 +1713,7 @@ Sie sollten sie aus dem Projekt entfernen. Thumbnails - Vorschaubilder + Miniaturansichten @@ -1723,7 +1723,7 @@ Sie sollten sie aus dem Projekt entfernen. The pixel size of the thumbnail image. The default value is 200. - Die Pixelgröße des Vorschaubildes. Der Standardwert ist 200. + Die Pixelgröße der Miniaturansicht. Der Standardwert ist 200. @@ -1733,7 +1733,7 @@ Sie sollten sie aus dem Projekt entfernen. The thumbnail size in the view. The default value is 250. - Die Größe der Vorschaubilder in der Ansicht. Der Standardwert ist 250. + Größe der Miniaturansichten. Der Standardwert ist 250. @@ -1768,7 +1768,7 @@ Sie sollten sie aus dem Projekt entfernen. Single column thumbnail display - Einspaltige Ansicht der Vorschaubilder + Einspaltige Darstellung der Miniaturansichten From 7d4c4f36fc159b452961eebd13b531e83f24be3a Mon Sep 17 00:00:00 2001 From: Virgil Grigoras Date: Sat, 5 Feb 2022 22:44:30 +0100 Subject: [PATCH 08/25] Add 1200 DPI as option --- src/app/DefaultParamsDialog.cpp | 1 + src/app/FixDpiDialog.cpp | 1 + src/core/filters/output/ChangeDpiDialog.cpp | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/app/DefaultParamsDialog.cpp b/src/app/DefaultParamsDialog.cpp index 3836390b8..29018ffc8 100644 --- a/src/app/DefaultParamsDialog.cpp +++ b/src/app/DefaultParamsDialog.cpp @@ -56,6 +56,7 @@ DefaultParamsDialog::DefaultParamsDialog(QWidget* parent) dpiSelector->addItem("300", "300"); dpiSelector->addItem("400", "400"); dpiSelector->addItem("600", "600"); + dpiSelector->addItem("1200", "1200"); m_customDpiItemIdx = dpiSelector->count(); m_customDpiValue = "200"; dpiSelector->addItem(tr("Custom"), m_customDpiValue); diff --git a/src/app/FixDpiDialog.cpp b/src/app/FixDpiDialog.cpp index f9eb427f9..77cb01f0f 100644 --- a/src/app/FixDpiDialog.cpp +++ b/src/app/FixDpiDialog.cpp @@ -201,6 +201,7 @@ FixDpiDialog::FixDpiDialog(const std::vector& files, QWidget* par dpiCombo->addItem("300 x 300", QSize(300, 300)); dpiCombo->addItem("400 x 400", QSize(400, 400)); dpiCombo->addItem("600 x 600", QSize(600, 600)); + dpiCombo->addItem("1200 x 1200", QSize(1200, 1200)); tabWidget->setTabText(NEED_FIXING_TAB, tr("Need Fixing")); tabWidget->setTabText(ALL_PAGES_TAB, tr("All Pages")); diff --git a/src/core/filters/output/ChangeDpiDialog.cpp b/src/core/filters/output/ChangeDpiDialog.cpp index 376447902..47c4948da 100644 --- a/src/core/filters/output/ChangeDpiDialog.cpp +++ b/src/core/filters/output/ChangeDpiDialog.cpp @@ -29,7 +29,7 @@ ChangeDpiDialog::ChangeDpiDialog(QWidget* parent, dpiSelector->setValidator(new QIntValidator(dpiSelector)); - static const int common_dpis[] = {300, 400, 600}; + static const int common_dpis[] = {300, 400, 600, 1200}; const int requestedDpi = std::max(dpi.horizontal(), dpi.vertical()); m_customDpiString = QString::number(requestedDpi); From 692ffd8d2f90ae81dacf6d3215ba7c2f7db2883a Mon Sep 17 00:00:00 2001 From: Virgil Grigoras Date: Sat, 5 Feb 2022 23:11:48 +0100 Subject: [PATCH 09/25] Fix for #87af484 which broke the build --- src/core/filters/output/ColorCommonOptions.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/core/filters/output/ColorCommonOptions.cpp b/src/core/filters/output/ColorCommonOptions.cpp index 1cbb70a22..6e53bf14f 100644 --- a/src/core/filters/output/ColorCommonOptions.cpp +++ b/src/core/filters/output/ColorCommonOptions.cpp @@ -37,13 +37,12 @@ bool ColorCommonOptions::operator!=(const ColorCommonOptions& other) const { } FillingColor ColorCommonOptions::parseFillingColor(const QString& str) { - switch(str) { - case "white": - return FILL_WHITE; - case "black": - return FILL_BLACK; - default: - return FILL_BACKGROUND; + if (str == "white") { + return FILL_WHITE; + } else if (str == "black") { + return FILL_BLACK; + } else { + return FILL_BACKGROUND; } } From ca7d42361f48b0ee4e2690a9eac2daf6ee1e22a8 Mon Sep 17 00:00:00 2001 From: Virgil Grigoras Date: Sat, 5 Feb 2022 23:40:13 +0100 Subject: [PATCH 10/25] Update readme --- README.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/README.md b/README.md index dc3bd2a47..90f8c909c 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ brings new ones and fixes. #### Contents: +* [About this fork](#about-this-fork) * [Description](#description) * [Features](#features) * [**ScanTailor Enhanced**](#scantailor-enhanced) @@ -46,6 +47,21 @@ brings new ones and fixes. * [Guides](#guides) * [Building](#building) +About this fork +------------ + +Unfortunately, the [repository](https://github.com/4lex4/scantailor-advanced/releases) of @4lex4 seems to be no longer active. + +For this reason I have created this fork. It contains: +- German translation +- Polish translation (PR in the original repository, credit goes to @ukolaj-s) +- French translation (PR in the original repository, credit goes to @maltaisn) +- Korean translation (PR in the original repository, credit goes to @brendan-t) +- Beside 'background' and white you can now choose black as filling color +- 1200 DPI output option + +PRs are highly welcome ;-) + Description ------------ From b472a7aaff1eb72bb53c5d3d69f50fe33c9a7b0d Mon Sep 17 00:00:00 2001 From: Virgil Grigoras Date: Sun, 6 Feb 2022 13:12:06 +0100 Subject: [PATCH 11/25] German translation synced with project and translated missing phrases --- src/translations/scantailor_de.ts | 1069 ++++++++++++++++------------- 1 file changed, 608 insertions(+), 461 deletions(-) diff --git a/src/translations/scantailor_de.ts b/src/translations/scantailor_de.ts index c3ea6c3f6..7545602e3 100644 --- a/src/translations/scantailor_de.ts +++ b/src/translations/scantailor_de.ts @@ -6,7 +6,6 @@ ScanTailor Advanced - ScanTailor Advanced @@ -95,7 +94,7 @@ Form - + Formular @@ -106,7 +105,7 @@ ColorPickupInteraction - + Click on an area to pick up its color, or ESC to cancel. Klicken Sie auf einen Bereich, um dessen Farbe zu übernehmen, oder brechen Sie den Vorgang mit ESC ab. @@ -146,17 +145,17 @@ - - - - - - - - - - - + + + + + + + + + + + ... ... @@ -172,7 +171,7 @@ - + Mode Modus @@ -182,555 +181,569 @@ Seitenlayout - - + + Deskew Begradigen - - - - - + + + + + Auto Automatisch - - - - + + + + Manual Manuell - + Select Content Inhalt auswählen - + Page Box Seitenbereich - - + + Disable Deaktivieren - - + + Options Optionen - + Shift with corners while they are in black. Ecken verschieben solange sie Schwarz sind. - + Fine Tune Page Corners Feinabstimmung der Seitenecken - + Width Breite - + Height Höhe - + Content Box Inhaltsbereich - - + + Margins Seitenränder - + Auto Margins Automatische Seitenränder - + Top Oben - + Right Rechts - + Left Links - + Bottom Unten - + Alignment Ausrichtung - + + Auto auto Automatisch - + + Manual manual Manuell - + + Original original Original - Auto aligning - Automatische Ausrichtung + Automatische Ausrichtung - Enable horizontal - Horizontal aktivieren + Horizontal aktivieren - Enable vertical - Vertikal aktivieren + Vertikal aktivieren - + Match size with other pages Größe an andere Seiten angleichen - + + Horizontal mode: + Horizontal + + + + Vertical mode: + Vertikal + + + Output Ausgabe - + Normalize illumination before binarization. Belichtung vor der Binarisierung normalisieren - + Equalize illumination (B&&W) Beleuchtung ausgleichen (S/W) - + Normalize illumination in color mode / in picture zones in mixed mode. Beleuchtung im Farbmodus ausgleichen / im Gemischtmodus in Bildzonen. - + Equalize illumination (Color) Beleuchtung ausgleichen (Farbe) - + Savitzky-Golay smoothing Savitzky-Golay Glättung - + Morphological smoothing Morphologische Glättung - + Filling Füllung - + Color: Farbe: - + Color operations Farbvorgänge - + Split the image into color segments and colorize b&w mask. Aufteilen des Bildes in Farbsegmente und Einfärben der Schwarzweißmaske. - + Color segmentation Farbsegmentierung - + R R - + Red component adjustment. A negative value means the segmenter will be more sensitive to red and vice versa for a positive one. Einstellung des Rotanteils. Ein negativer Wert bedeutet, dass der Segmentierer empfindlicher auf Rot reagiert, ein positiver Wert bedeutet das Gegenteil. - + G G - + Green component adjustment. A negative value means the segmenter will be more sensitive to green and vice versa for a positive one. Einstellung der Grünkomponente. Ein negativer Wert bedeutet, dass der Segmentierer empfindlicher auf Grün reagiert, ein positiver Wert bedeutet das Gegenteil. - + B B - + Blue component adjustment. A negative value means the segmenter will be more sensitive to blue and vice versa for a positive one. Einstellung des Blauanteils. Ein negativer Wert bedeutet, dass der Segmentierer empfindlicher auf Blau reagiert, ein positiver Wert bedeutet das Gegenteil. - + Reduce noise: Rauschreduzierung: - + Reduce the number of colors of the output image by grouping similar colors. Farben des Ausgabebildes reduzieren, indem ähnliche Farben gruppiert werden. - + Posterize Tontrennung - + Level: Stufe: - + Lower value means lower count of colors in the output image, values between 2 and 6 inclusive guarantee an indexed image. Ein niedriger Wert bedeutet eine geringere Anzahl von Farben im Ausgabebild, Werte zwischen 2 und 6 garantieren ein indiziertes Bild. - + Normalize Normalisierung - + Make dark and light gray gradients black and white respectively. Dunkle und helle Grauverläufe schwarz bzw. weiß machen. - + Force b&&w S/W erzwingen - + Threshold Schwellwert - + Method: Methode: - + 0 0 - + Thinner Dünner - + Thicker Dicker - + Coef: Koeffizient: - - + + The dimensions of a pixel neighborhood to consider. Die Größe der Pixelumgebung die berücksichtigt werden soll. - - + + Window size: Fenstergröße: - + Default value is 0.34. Standardwert ist 0,34. - + The minimum possible gray level that can be made white. Der minimal mögliche Grauwert, der weiß gemacht werden kann. - + Upper Bound: Oberer Grenzwert: - + Lower bound: Unterer Grenzwert: - + The maximum possible gray level that can be made black. Die maximal mögliche Graustufe, die schwarz gemacht werden kann. - + Coeff: Koeffizient: - + Default value is 0.3. Standardwert ist 0,3. - + Picture Shape Bildform - + Sensitivity (%): Empfindlichkeit (%): - + Higher search sensivity Höhere Suchempfindlichkeit - + Output Resolution (DPI) Ausgabeauflösung (DPI) - + Splitting Aufteilung - + Split output Geteilte Ausgabe - + B&&W foreground Vordergrund S/W - + Save the original background of the foreground layer. Ursprünglichen Hintergrund der Vordergrundebene speichern - + Original background Original Hintergrund - + Color foreground Vordergrundfarbe - + Despeckling Flecken entfernen - + Dewarping Entzerren - + Post deskew Nachträgliches Geraderichten - + Depth perception Tiefenwahrnehmung - + Black and White Schwarz und Weiß - + Color / Grayscale Farbe / Graustufen - + Mixed Gemischt - + Background Hintergrund - + White Weiß + Black + Schwarz + + + Otsu Otsu - + Sauvola Sauvola - + Wolf Wolf - - + + Off Deaktiviert - + Free Frei - + Rectangular Rechteckig - - - + + + Custom Benutzerdefiniert - + Marginal Geringfügig - + Default Standard - + Source Quelle - - - - - + + + + + Error Fehler - + Error loading the profile. Fehler beim Laden des Profils. - + The name conflicts with a default profile name. Please enter a different name. Der Name steht im Widerspruch zu einem Standardprofilnamen. Bitte geben Sie einen anderen Namen ein. - + Error saving the profile. Fehler beim Speichern des Profils. - + Error deleting the profile. Fehler beim Löschen des Profils. - + Fill offcut Reststück auffüllen - + Fill margins Ränder ausfüllen - + Despeckle Entflecken - Mode: - Modus: + Modus: - + The profile file is not compatible with the current application version. Remove? Die Profildatei ist nicht mit der aktuellen Anwendungsversion kompatibel. Entfernen? @@ -738,7 +751,7 @@ DragHandler - + Unrestricted dragging is possible by holding down the Shift key. Durch Gedrückthalten der Umschalttaste ist ein uneingeschränktes Ziehen möglich. @@ -789,13 +802,13 @@ Übernehmen - + Need Fixing Korrektur nötig - - + + All Pages Alle Seiten @@ -815,7 +828,7 @@ DPI ist zu klein für diese Pixelgröße. Eine solche Kombination würde wahrscheinlich zu Fehlern führen, wenn der Speicher voll ist. - + %1 (page %2) %1 (Seite %2) @@ -823,7 +836,7 @@ ImageViewBase - + Use the mouse wheel or +/- to zoom. When zoomed, dragging is possible. Verwenden Sie das Mausrad oder +/- zum Zoomen. Im gezoomten Zustand ist das Ziehen möglich. @@ -831,32 +844,36 @@ InteractiveXSpline - + Click to create a new control point. Klicken um einen neuen Kontrollpunkt zu erstellen. - + This point can be dragged. Hold Ctrl or Shift to drag along axes. Dieser Punkt kann verschoben werden. Halten Sie die Strg- oder Umschalttaste gedrückt, um entlang der Achsen zu ziehen. - + + Drag this point or delete it by pressing D key. + Ziehen Sie diesen Punkt oder löschen Sie ihn, indem Sie die D-Taste drücken. + + Drag this point or delete it by pressing Del or D. - Ziehen Sie diesen Punkt oder löschen Sie ihn mit der Taste Entf oder D. + Ziehen Sie diesen Punkt oder löschen Sie ihn mit der Taste Entf oder D. LoadFileTask - + The following file could not be loaded: %1 Die folgende Datei konnte nicht geladen werden: %1 - + The following file doesn't exist:<br>%1<br><br>Use the <a href="#relink">Relinking Tool</a> to locate it. Die folgende Datei existiert nicht:<br>%1<br><br>Benutzen Sie das <a href="#relink">Tool zum erneuten Verknüpfen</a> zur Lokalisierung. @@ -917,204 +934,266 @@ Aktuelle Seite in Ansicht behalten. - + + Navigate through selected pages only. + Durch ausgewählte Seiten navigieren + + + + Magnify thumbnails. (Ctrl++) + Miniaturansichten vergrößern + + + + Diminish thumbnails. (Ctrl+-) + Miniaturansichten verkleinern + + + + Go To Page... (Ctrl+G) + Gehe zu Seite... + + + + Enable multi page selection mode. + Mehrfachauswahl für Seiten aktivieren + + + + Single/multi column display. + Einspaltige / Mehrspaltige Ansicht + + + + Sorting order. + Sortierreihenfolge + + + + Highlight deviation. + Abweichungen hervorheben + + + Filters Arbeitsschritte - + Debug Mode Debug-Modus - - + + Save Project Projekt speichern - + Save Project As ... Projekt speichern unter... - - + + Next Page Nächste Seite - - + + Previous Page Vorherige Seite - + New Project ... Neues Projekt... - + Open Project ... Projekt öffnen... - + Close Project Projekt schließen - + Quit Beenden - + Settings ... Einstellungen... - + First Page Primera página - + Last Page Erste Seite - + About Über - + Fix DPI ... DPI korrigieren... - + Relinking ... Verknüpfen... - - - - - - + + + + + + Switch filter to orientation Filter umschalten zur Orientierung - + Switch filter to split pages Filter umschalten für Seitenaufteilung - + Switch filter to deskew Filter umschalten für Geraderichten - + Switch filter to select content Filter umschalten für Inhaltsauswahl - + Switch filter to margins Filter umschalten für Ränder - + Switch filter to output Filter umschalten für Ausgabe - + Pixels Pixel - + Millimetres Millimeter - + Inches Zoll - + Centimetres Zentimeter - + Default parameters ... Standardwerte... - + + + Go To Page + Gehe zu Seite + + + + Magnify thumbnails + Miniaturansichten vergrößern + + + + Diminish thumbnails + Miniaturansichten verkleinern + + + + + Reload current page + Aktuelle Seite neu laden + + + Stop batch processing Stapelverarbeitung abbrechen - + Save the project? Projekt speichern? - + Insert before ... Einfügen vor... - + Insert after ... Einfügen nach... - + Remove from project ... Aus Projekt entfernen... - + Insert here ... Hier einfügen... - - + + Scan Tailor Projects Scan Tailor Projekte - + Open Project Projekt öffnen - - - - + + + + Error Fehler - + Unable to open the project file. Die Projektdatei kann nicht geöffnet werden. - + The project file is broken. Die Projektdatei ist beschädigt. @@ -1131,76 +1210,80 @@ To determine it, run batch processing at "Select Content" or "Mar Um sie zu ermitteln, führen Sie die Stapelverarbeitung unter "Inhalt auswählen" oder "Ränder" aus. - + Unnamed Unbenannt - + %2 - ScanTailor Advanced [%1bit] %2 - Scan Tailor Advanced [%1bit] - - + + Error saving the project file! Fehler beim Speichern der Projektdatei! - + Files to insert Dateien zum Einfügen - + Images not in project (%1) Bilder nicht im Projekt (%1) - + Skip failed files Fehlerhafte Dateien überspringen - + Remove Entfernen - + + Enter the page number: + Zielseite: + + + Use Home, End, PgUp/Q, PgDown/W to navigate between pages or Shift+PgUp/Q and Shift+PgDown/W to navigate between selected ones. Alt+Wheel - scale thumbnails. Verwenden Sie POS 1, Ende, BildAuf/Q, BildAb/W, um zwischen den Seiten zu navigieren oder Shift+BildAuf/Q und Shift+BildAb/W, um zwischen den ausgewählten Seiten zu navigieren. Alt+Mausrad - Skalieren der Miniaturbilder. - - - - + + + + Previous Selected Page Vorherige ausgewählte Seite - - - - + + + + Next Selected Page Nächste ausgewählte Seite - + Previous page. Vorherige Seite - + Next page. Nächste Seite - Filter selected pages only. - Nur ausgewählte Seiten filtern. + Nur ausgewählte Seiten filtern. @@ -1320,17 +1403,17 @@ Um sie zu ermitteln, führen Sie die Stapelverarbeitung unter "Inhalt ausw Bitte beachten Sie, dass Scan Tailor zwar versucht, Situationen, in denen der Speicher voll ist, abzufangen und Ihnen die Möglichkeit zu geben, Ihr Projekt zu speichern, aber das ist nicht immer möglich. Dieses Mal hat es geklappt, aber beim nächsten Mal könnte es einfach abstürzen. - + Scan Tailor Projects Scan Tailor Projekte - + Error Fehler - + Error saving the project file! Fehler beim Speichern der Projektdatei! @@ -1344,7 +1427,7 @@ Um sie zu ermitteln, führen Sie die Stapelverarbeitung unter "Inhalt ausw - + Input Directory Eingabeverzeichnis @@ -1356,7 +1439,7 @@ Um sie zu ermitteln, führen Sie die Stapelverarbeitung unter "Inhalt ausw - + Output Directory Ausgabeverzeichnis @@ -1367,12 +1450,12 @@ Um sie zu ermitteln, führen Sie die Stapelverarbeitung unter "Inhalt ausw - + Select All Alle auswählen - + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> @@ -1383,7 +1466,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ausgewählte Dateien zum Projekt hinzufügen.</p></body></html> - + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> @@ -1394,67 +1477,67 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ausgewählte Dateien aus dem Projekt entfernen.</p></body></html> - + Files In Project Dateien im Projekt - + Right to left layout (for Hebrew and Arabic) Layout von rechts nach links (für Hebräisch und Arabisch) - + Fix DPIs, even if they look OK DPI-Werte korrigieren, auch wenn sie in Ordnung scheinen - - - + + + + - - + Error Fehler - + No files in project! Keine Dateien im Projekt! - + Input directory is not set or doesn't exist. Eingabeverzeichnis ist nicht gesetzt oder existiert nicht. - + Input and output directories can't be the same. Eingabe- und Ausgabeverzeichnisse können nicht identisch sein. - + Create Directory? Verzeichnis erstellen? - + Output directory doesn't exist. Create it? Das Ausgabeverzeichnis existiert nicht. Soll es erstellt werden? - + Unable to create output directory. Ausgabeverzeichnis kann nicht erstellt werden. - + Output directory is not set or doesn't exist. Das Ausgabeverzeichnis ist nicht festgelegt oder existiert nicht. - + Some of the files failed to load. Either we don't support their format, or they are broken. You should remove them from the project. @@ -1466,18 +1549,18 @@ Sie sollten sie aus dem Projekt entfernen. ProjectOpeningContext - - + + Error Fehler - + The project file is not compatible with the current application version. Die Projektdatei ist nicht mit der aktuellen Anwendungsversion kompatibel. - + Unable to interpret the project file. Die Projektdatei kann nicht interpretiert werden. @@ -1504,6 +1587,21 @@ Sie sollten sie aus dem Projekt entfernen. in in + + + Canceling multi page selection + Aufhebung der Mehrseitenauswahl + + + + %1 pages selection are going to be canceled. Continue? + Die Auswahl von %1 Seiten wird abgebrochen. Fortfahren? + + + + Don't show this message again. + Diese Meldung nicht mehr anzeigen. + RelinkingDialog @@ -1523,17 +1621,17 @@ Sie sollten sie aus dem Projekt entfernen. ... - + Substitution File for %1 Ersetzungsdatei für %1 - + Substitution Directory for %1 Ersetzungsverzeichnis für %1 - + This change would merge several files into one. Diese Änderung würde mehrere Dateien zu einer einzigen zusammenführen. @@ -1584,46 +1682,51 @@ Sie sollten sie aus dem Projekt entfernen. Automatisches Speichern des offenen Projekts - + + Show question on canceling multi page selection + Bei Aufhebung der Mehrseitenauswahl warnen + + + Processing Verarbeitung - + Deviation Abweichung - + Highlight the thumbnails of pages with high deviation Markieren von Miniaturansichten von Seiten mit hoher Abweichung - + Params Parameter - + Select content: Inhalt auswählen: - - - + + + Deviation multiplier: a higher value means lower sensivity. Abweichungsmultiplikator: ein höherer Wert bedeutet eine geringere Empfindlichkeit. - + Margins: Ränder: - - - + + + The minimum deviation to be highlighted. Die minimale Abweichung, die hervorgehoben werden soll. @@ -1638,70 +1741,70 @@ Sie sollten sie aus dem Projekt entfernen. Sprache: - + Saving Speichern - + B&W Compression: S/W Kompression: - + Color Compression: Farbkompression: - + Your hardware / driver don't provide the necessary features Ihre Hardware/Treiber bieten nicht die erforderlichen Funktionen - + Dark Dunkel - + Light Hell - - + + None Keine - - + + LZW LZW - - + + Deflate Deflate - + CCITT G4 CCITT G4 - + JPEG JPEG - + Information Information - + ScanTailor need to be restarted to apply the color scheme changes. ScanTailor muss neu gestartet werden, um die Änderungen am Farbschema zu übernehmen. @@ -1736,32 +1839,32 @@ Sie sollten sie aus dem Projekt entfernen. Größe der Miniaturansichten. Der Standardwert ist 250. - + White on black detection Erkennung von Weiß auf Schwarz - + Auto detect pages with light content on dark background. The corrections to all the auto algorithms are made for such pages. Automatische Erkennung von Seiten mit hellem Inhalt auf dunklem Hintergrund. Die Korrekturen an allen Auto-Algorithmen werden für solche Seiten vorgenommen. - + Auto detect light content on dark background Helle Inhalte auf dunklem Hintergrund automatisch erkennen - + Whether to use auto detection at the output stage. The wrong result can be changed manually in the output filter options. Ob die automatische Erkennung in der Ausgabestufe verwendet werden soll. Das falsche Ergebnis kann manuell in den Ausgabefilteroptionen geändert werden. - + Use auto detection at the output stage Automatische erkennung in der Ausgabestufe verwenden - + Native Nativ @@ -1771,7 +1874,7 @@ Sie sollten sie aus dem Projekt entfernen. Einspaltige Darstellung der Miniaturansichten - + Deskew: Geraderichten: @@ -1779,7 +1882,7 @@ Sie sollten sie aus dem Projekt entfernen. StageListView - + Launch batch processing Stapelverarbeitung starten @@ -1793,56 +1896,74 @@ Sie sollten sie aus dem Projekt entfernen. + Zone creation mode. + Zonenerstellungsmodus + + + + The type of a new zone created. + Typ der neu erstellten Zone + + + Mouse position. Mausposition. - + Mouse position relative to page. Mausposition relativ zur Seite. - + + Image size. + Bildgröße + + + + Image size in current units. + Bildgröße in derzeitiger Einheit + + Physical size. - Physische Größe. + Physische Größe. - Physical size of image. - Physische Größe des Bildes. + Physische Größe des Bildes. - + Page number. Seite. - + Position of the selected page in current order. Position der ausgewählten Seite in aktueller Sortierung - + Page information. Seiteninformation. - + Page name and type. Seitenname und Typ. - + p. %1 / %2 S. %1 / %2 - + [L] [L] - + [R] [R] @@ -1869,7 +1990,7 @@ Sie sollten sie aus dem Projekt entfernen. ThumbnailSequence - + %1 (page %2) %1 (Seite %2) @@ -1877,12 +1998,12 @@ Sie sollten sie aus dem Projekt entfernen. ZoneContextMenuInteraction - + Delete Löschen - + Properties Eigenschaften @@ -1890,63 +2011,75 @@ Sie sollten sie aus dem Projekt entfernen. ZoneCreationInteraction - + Click to finish this rectangular zone. ESC to cancel. Klicken um diese Rechteckszone abzuschließen. ESC für Abbruch. - + Click to finish this zone. ESC to cancel. Klicken um diese Zone zu beenden. ESC für Abbruch. - + Connect first and last points to finish this zone. ESC to cancel. Verbinden Sie den ersten und den letzten Punkt, um diese Zone zu beenden. ESC für Abbruch. - + + Use Z and X keys to switch zone creation mode. ESC to cancel. + Verwenden Sie die Tasten Z und X, um den Modus für die Zonenerstellung zu wechseln. ESC zum Abbrechen. + + Hold Ctrl to create a rectangular zone or Shift+Alt+LMB to use lasso mode. ESC to cancel. - Halten Sie die Strg-Taste gedrückt, um eine rechteckige Zone zu erstellen, oder Shift+Alt+LMT, um den Lasso-Modus zu verwenden. ESC zum Abbrechen. + Halten Sie die Strg-Taste gedrückt, um eine rechteckige Zone zu erstellen, oder Shift+Alt+LMT, um den Lasso-Modus zu verwenden. ESC zum Abbrechen. ZoneDefaultInteraction - Drag the vertex. Hold Ctrl to make the vertex angle right. - Ziehen Sie den Scheitelpunkt. Halten Sie die Strg-Taste gedrückt, um den Scheitelpunktwinkel nach rechts zu verschieben. + Ziehen Sie den Scheitelpunkt. Halten Sie die Strg-Taste gedrückt, um den Scheitelpunktwinkel nach rechts zu verschieben. + + + + Drag the vertex. Hold Ctrl to make the vertex angle right. Press D to delete the vertex. + Ziehen Sie den Scheitelpunkt. Halten Sie die Strg-Taste gedrückt, um den Scheitelpunktwinkel nach rechts zu verschieben. Drücken Sie D, um den Scheitelpunkt zu löschen. - + Click to create a new vertex here. Klicken Sie hier, um einen neuen Scheitelpunkt zu erstellen. - + Right click to edit zone properties. Hold Shift to drag the zone or Shift+Ctrl to copy. Press Del to delete this zone. Klicken Sie mit der rechten Maustaste, um die Zoneneigenschaften zu bearbeiten. Halten Sie die Umschalttaste gedrückt, um die Zone zu ziehen, oder drücken Sie Umschalt+Strg, um sie zu kopieren. Drücken Sie Entf, um diese Zone zu löschen. - + Hold left mouse button to drag the zone. Halten Sie die linke Maustaste gedrückt, um den Bereich zu ziehen. - + Hold left mouse button to copy and drag the zone. Halten Sie die linke Maustaste zum Kopieren gedrückt und ziehen Sie den Bereich. - + + Click to start creating a new zone. Ctrl+Alt+Click to copy the latest created zone. Use Z, X and C keys to switch zone creation mode. + Klicken Sie, um eine neue Zone zu erstellen. Strg+Alt+Klicken, um die zuletzt erstellte Zone zu kopieren. Verwenden Sie die Tasten Z, X und C, um den Modus der Zonenerstellung zu wechseln. + + Click to start creating a new zone. Use Ctrl+Alt+Click to copy the latest created zone. - Klicken um eine neue Zone zu erstellen. Verwenden Sie Strg+Alt+LMT, um die zuletzt erstellte Zone zu kopieren. + Klicken um eine neue Zone zu erstellen. Verwenden Sie Strg+Alt+LMT, um die zuletzt erstellte Zone zu kopieren. ZoneDragInteraction - + Release left mouse button to finish dragging. Lassen Sie die linke Maustaste los, um das Ziehen zu beenden. @@ -1954,12 +2087,12 @@ Sie sollten sie aus dem Projekt entfernen. ZoneVertexDragInteraction - + Merge these two vertices. Diese zwei Scheitelpunkte verschmelzen. - + Move the vertex to one of its neighbors to merge them. Ziehen Sie den Scheitelpunkt zu einem seiner Nachbarn um ihn mit diesen zu verschmelzen. @@ -2022,17 +2155,17 @@ Sie sollten sie aus dem Projekt entfernen. deskew::Filter - + Natural order Natürliche Sortierung - + Order by decreasing deviation Nach absteigender Abweichung sortieren - + Deskew Geraderichten @@ -2040,12 +2173,12 @@ Sie sollten sie aus dem Projekt entfernen. deskew::ImageView - + Use Ctrl+Wheel to rotate or Ctrl+Shift+Wheel for finer rotation. Verwenden Sie Strg+Mausrad zum Drehen oder Strg+Umschalt+Mausrad für eine feinere Drehung. - + Drag this handle to rotate the image. Ziehen Sie diesen Griff, um das Bild zu drehen. @@ -2053,7 +2186,7 @@ Sie sollten sie aus dem Projekt entfernen. deskew::OptionsWidget - + Apply Deskew Geraderichten anwenden @@ -2146,7 +2279,7 @@ Sie sollten sie aus dem Projekt entfernen. fix_orientation::Filter - + Fix Orientation Ausrichtung korrigieren @@ -2167,7 +2300,7 @@ Sie sollten sie aus dem Projekt entfernen. ... - ... + ... @@ -2289,29 +2422,29 @@ Sie sollten sie aus dem Projekt entfernen. Use Ctrl+Click / Shift+Click to select multiple pages. Verwenden Sie Strg+LMT / Umschalt+LMT, um mehrere Seiten auszuwählen. - + output::ChangeDpiDialog - + Custom Benutzerdefiniert - - + + Error Fehler - + DPI is not set. DPI nicht gesetzt. - + DPI is too low! DPI ist zu niedrig! @@ -2364,7 +2497,7 @@ Sie sollten sie aus dem Projekt entfernen. output::FillZoneEditor - + Pick color Farbe auswählen @@ -2372,17 +2505,17 @@ Sie sollten sie aus dem Projekt entfernen. output::Filter - + Output Ausgabe - + Natural order Natürliche Sortierung - + Order by completeness Sortierung nach Vollständigkeit @@ -2390,52 +2523,57 @@ Sie sollten sie aus dem Projekt entfernen. output::OptionsWidget - + Black and White Schwarz und Weiß - + Color / Grayscale Farbe / Graustufen - + Mixed Gemischt - + Otsu Otsu - + Sauvola Sauvola - + Wolf Wolf - + Background Hintergrund - + White Weiß - + + Black + Schwarz + + + Free Frei - + Rectangular Rechteckig @@ -2455,33 +2593,33 @@ Sie sollten sie aus dem Projekt entfernen. Tiefenwahrnehmung anwenden - - + + Off Deaktiviert - + Auto Automatisch - + Manual Manuell - + Marginal Marginal - + deskew disabled Geraderichten deaktiviert - + Apply Processing Settings Verarbeitungseinstellungen anwenden @@ -2498,7 +2636,7 @@ Sie sollten sie aus dem Projekt entfernen. 0 - 0 + 0 @@ -2594,7 +2732,7 @@ Sie sollten sie aus dem Projekt entfernen. R - R + R @@ -2604,7 +2742,7 @@ Sie sollten sie aus dem Projekt entfernen. G - G + G @@ -2614,7 +2752,7 @@ Sie sollten sie aus dem Projekt entfernen. B - B + B @@ -2654,7 +2792,7 @@ Sie sollten sie aus dem Projekt entfernen. Make dark and light gray gradients black and white respectively. - Dunkle und helle Grauverläufe schwarz bzw. weiß machen. + Dunkle und helle Grauverläufe schwarz bzw. weiß machen. @@ -2683,7 +2821,7 @@ Sie sollten sie aus dem Projekt entfernen. Apply To ... - Anwenden auf... + Anwenden auf... @@ -2751,7 +2889,7 @@ Sie sollten sie aus dem Projekt entfernen. Entzerren - + deskew Geraderichten @@ -2766,7 +2904,7 @@ Sie sollten sie aus dem Projekt entfernen. 0 - 0 + 0 @@ -2833,7 +2971,7 @@ Sie sollten sie aus dem Projekt entfernen. output::TabbedImageView - + Use Ctrl+1..5 to switch the tabs. Benutzen Sie STRG+1..5 um zwischen den Tabs zu wechseln. @@ -2841,37 +2979,37 @@ Sie sollten sie aus dem Projekt entfernen. output::Task::UiUpdater - + Picture zones are only available in Mixed mode. Bildzonen sind nur im Gemischtmodus verfügbar. - + Despeckling can't be done in Color / Grayscale mode. Flecken können nicht im Farb / Graustufenmodus entfernt werden - + Output Ausgabe - + Picture Zones Bildzonen - + Fill Zones Füllzonen - + Dewarping Entzerren - + Despeckling Fleckenentfernung @@ -2982,27 +3120,27 @@ Sie sollten sie aus dem Projekt entfernen. page_layout::Filter - + Natural order Natürliche Sortierung - + Order by increasing width Sortierung nach aufsteigender Breite - + Order by increasing height Sortierung nach aufsteigender Höhe - + Order by decreasing deviation Nach absteigender Abweichung sortieren - + Margins Ränder @@ -3010,47 +3148,47 @@ Sie sollten sie aus dem Projekt entfernen. page_layout::ImageView - + Resize margins by dragging any of the solid lines. Ändern Sie die Größe der Ränder, indem Sie an einer der durchgezogenen Linien ziehen. - + Hold left mouse button to drag the page content. Halten Sie die linke Maustaste gedrückt, um den Seiteninhalt zu ziehen. - + Release left mouse button to finish dragging. Lassen Sie die linke Maustaste los, um das Ziehen zu beenden. - + Add a horizontal guide Horizontale Hilfslinie hinzufügen - + Add a vertical guide Vertikale Hilfslinie hinzufügen - + Remove all the guides Alle Hilfslinien entfernen - + Remove this guide Diese Hilfslinie entfernen - + Show hard margins rectangle Rechteck mit harten Rändern anzeigen - + Drag the guide. Hilfslinie ziehen @@ -3058,12 +3196,12 @@ Sie sollten sie aus dem Projekt entfernen. page_layout::OptionsWidget - + Apply Margins Ränder anwenden - + Apply Alignment Ausrichtung übernehmen @@ -3085,17 +3223,17 @@ Sie sollten sie aus dem Projekt entfernen. - - - - - - - - - + + + + + + + + + ... - ... + ... @@ -3119,7 +3257,7 @@ Sie sollten sie aus dem Projekt entfernen. - + Apply To ... Anwenden auf... @@ -3134,62 +3272,71 @@ Sie sollten sie aus dem Projekt entfernen. Größe an andere Seiten angleichen - + + Horizontal mode: + Horizontal: + + + + Vertical mode: + Vertikal: + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Right-click</span><span style=" font-size:7pt;"> to create/remove guides from the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> called.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Right-click</span><span style=" font-size:7pt;"> on a guide to delete that guide from the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> called.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Ctrl+Alt+LMB</span><span style=" font-size:7pt;"> - drag the guide under the cursor.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Shift/Ctrl+LMB</span><span style=" font-size:7pt;"> on the content rectangle - drag the page content. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;"> pressed to restrict moving along the horizontal axis only or </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> for the vertical one. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;"> for usual dragging.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Double-click</span><span style=" font-size:7pt;"> on content - automatically attach that content to the nearest guide. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;"> pressed to select vertical guides only or </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> for horizontal ones. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;"> to attach that to both the nearest vertical and horizontal guides.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣</span><span style=" font-size:7pt;"> Use the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> to enable/disable showing the hard margins rectangle.</span></p></body></html> + + + Mode: - Modus: + Modus: - + + Auto auto Automatich - + + Manual manual Manuell - + + Original original Original - Auto aligning - Automatische Ausrichtung + Automatische Ausrichtung - Enable horizontal - Horizontal aktivieren + Horizontal aktivieren - Enable vertical - Vertikal aktivieren + Vertikal aktivieren - + Guides Help Hilfe für Hilfslinien - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Right-click</span><span style=" font-size:7pt;"> to create/remove guides from the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> called.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Right-click</span><span style=" font-size:7pt;"> on a guide to delete that guide from the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> called.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Shift+LMB</span><span style=" font-size:7pt;"> - drag the guide under the cursor.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Shift/Ctrl+LMB</span><span style=" font-size:7pt;"> on the content rectangle - drag the page content. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;"> pressed to restrict moving along the horizontal axis only or </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> for the vertical one. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;"> for usual dragging.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Double-click</span><span style=" font-size:7pt;"> on content - automatically attach that content to the nearest guide. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;"> pressed to select vertical guides only or </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> for horizontal ones. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;"> to attach that to both the nearest vertical and horizontal guides.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣</span><span style=" font-size:7pt;"> Use the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> to enable/disable showing the hard margins rectangle.</span></p></body></html> - - page_split::Filter @@ -3212,7 +3359,7 @@ p, li { white-space: pre-wrap; } page_split::ImageView - + Drag the line or the handles. Ziehen Sie die Linie oder die Griffe. @@ -3220,15 +3367,15 @@ p, li { white-space: pre-wrap; } page_split::OptionsWidget - - - + + + Set manually Manuell einstellen - - + + Auto detected Automatisch erkannt @@ -3243,27 +3390,27 @@ p, li { white-space: pre-wrap; } Seitenlayout - + ? - ? + ? - + Change ... Ändern... - + Split Line Trennungslinie - + Auto Automatisch - + Manual Manuell @@ -3333,7 +3480,7 @@ p, li { white-space: pre-wrap; } Selected pages - Ausgewählte Seiten + Ausgewählte Seiten @@ -3343,7 +3490,7 @@ p, li { white-space: pre-wrap; } Every other selected page - Todas las demás páginas seleccionadas + Jede andere ausgewählte Seite @@ -3354,7 +3501,7 @@ p, li { white-space: pre-wrap; } page_split::UnremoveButton - + Restore removed page. Entfernte Seite wiederherstellen. @@ -3416,7 +3563,7 @@ p, li { white-space: pre-wrap; } Selected pages - Páginas seleccionadas + Ausgewählte Seiten @@ -3426,7 +3573,7 @@ p, li { white-space: pre-wrap; } Every other selected page - Todas las demás páginas seleccionadas + Jede andere ausgewählte Seite @@ -3437,27 +3584,27 @@ p, li { white-space: pre-wrap; } select_content::Filter - + Natural order Natürliche Sortierung - + Order by increasing width Sortierung nach aufsteigender Breite - + Order by increasing height Sortierung nach aufsteigender Höhe - + Order by decreasing deviation Nach absteigender Abweichung sortieren - + Select Content Inhalt auswählen @@ -3465,43 +3612,43 @@ p, li { white-space: pre-wrap; } select_content::ImageView - + Use the context menu to enable / disable the content box. Hold Shift to drag a box. Use double-click on content to automatically adjust the content area. Verwenden Sie das Kontextmenü, um den Inhaltsbereich zu aktivieren/deaktivieren. Halten Sie die Umschalttaste gedrückt, um einen Rahmen zu ziehen. Verwenden Sie einen Doppelklick auf den Inhalt, um den Inhaltsbereich automatisch anzupassen. - + Drag lines or corners to resize the content box. Ziehen Sie Linien oder Ecken, um die Größe des Inhaltsbereichs zu ändern. - + Drag lines or corners to resize the page box. Ziehen Sie Linien oder Ecken, um die Größe des Seitenbereichs zu ändern. - + Hold left mouse button to drag the content box. Ziehen Sie Linien oder Ecken, um die Größe des Inhaltsbereichs zu ändern. - - + + Release left mouse button to finish dragging. Lassen Sie die linke Maustaste los, um das Ziehen zu beenden. - + Hold left mouse button to drag the page box. Halten Sie die linke Maustaste gedrückt um den Seitenbereich zu ziehen - + Create Content Box Inhaltsbereich erstellen - + Remove Content Box Inhaltsbereich entfernen @@ -3572,4 +3719,4 @@ p, li { white-space: pre-wrap; } Anwenden auf... - \ No newline at end of file + From a07c6186d7cee348230f0e263a63558f5eafb692 Mon Sep 17 00:00:00 2001 From: Virgil Grigoras Date: Sun, 6 Feb 2022 13:17:56 +0100 Subject: [PATCH 12/25] Translations synced with project --- src/translations/scantailor_es.ts | 1030 ++++++------ src/translations/scantailor_fr.ts | 102 +- src/translations/scantailor_ko.ts | 1583 +++++++++++++++---- src/translations/scantailor_pl.ts | 1035 +++++++----- src/translations/scantailor_pt.ts | 1025 +++++++----- src/translations/scantailor_ru.ts | 1021 +++++++----- src/translations/scantailor_untranslated.ts | 1275 ++++----------- 7 files changed, 4018 insertions(+), 3053 deletions(-) diff --git a/src/translations/scantailor_es.ts b/src/translations/scantailor_es.ts index a9e124039..1b5ed7271 100644 --- a/src/translations/scantailor_es.ts +++ b/src/translations/scantailor_es.ts @@ -106,7 +106,7 @@ ColorPickupInteraction - + Click on an area to pick up its color, or ESC to cancel. Haga clic en un área para copiar su color, o ESC para cancelar. @@ -146,17 +146,17 @@ - - - - - - - - - - - + + + + + + + + + + + ... ... @@ -172,7 +172,7 @@ - + Mode Modo @@ -182,555 +182,565 @@ Diseño de página - - + + Deskew Enderezar - - - - - + + + + + Auto Automático - - - - + + + + Manual Manual - + Select Content Seleccionar contenido - + Page Box Caja de página - - + + Disable Inhabilitar - - + + Options Opciones - + Shift with corners while they are in black. Cambiar con las esquinas mientras estén en negro. - + Fine Tune Page Corners Ajuste fino de las esquinas de la página - + Width Ancho - + Height Alto - + Content Box Caja de contenido - - + + Margins Márgenes - + Auto Margins Márgenes automáticos - + Top Arriba - + Right Derecha - + Left Izquierda - + Bottom Abajo - + Alignment Alineación - + + Auto auto Automático - + + Manual manual Manual - + + Original original Original - Auto aligning - Alineación automática + Alineación automática - Enable horizontal - Habilitar en horizontal + Habilitar en horizontal - Enable vertical - Habilitar en vertical + Habilitar en vertical - + Match size with other pages Igualar el tamaño con otras páginas - + + Horizontal mode: + + + + + Vertical mode: + + + + Output Salida - + Normalize illumination before binarization. Noramalizar la iluminación antes de pasar a binario. - + Equalize illumination (B&&W) Igualar la iluminación (blanco y negro) - + Normalize illumination in color mode / in picture zones in mixed mode. Normalizar la iluminación en modo color / en zonas de imágenes en modo mixto. - + Equalize illumination (Color) Igualar la iluminación (Color) - + Savitzky-Golay smoothing Suavizado Savitzky-Golay - + Morphological smoothing Suavizado morfológico - + Filling Relleno - + Color: Color: - + Color operations Operaciones de color - + Split the image into color segments and colorize b&w mask. Divide la imagen en segmentos de color y colorea la máscara en blanco y negro. - + Color segmentation Segmentación de los colores - + R R - + Red component adjustment. A negative value means the segmenter will be more sensitive to red and vice versa for a positive one. Ajuste del componente rojo. Un valor negativo indica que el segmentador es más sensible al rojo y lo contrario para un valor positivo. - + G G - + Green component adjustment. A negative value means the segmenter will be more sensitive to green and vice versa for a positive one. Ajuste del componente verde. Un valor negativo indica que el segmentador es más sensible al verde y lo contrario para un valor positivo. - + B B - + Blue component adjustment. A negative value means the segmenter will be more sensitive to blue and vice versa for a positive one. Ajuste del componente azul. Un valor negativo indica que el segmentador es más sensible al azul y lo contrario para un valor positivo. - + Reduce noise: Reducir ruido: - + Reduce the number of colors of the output image by grouping similar colors. Reduce el número de colores de la imagen de salida agrupando los colores parecidos. - + Posterize Posterizar - + Level: Nivel: - + Lower value means lower count of colors in the output image, values between 2 and 6 inclusive guarantee an indexed image. Un valor más bajo significa un menor número de colores en la imagen de salida, valores entre 2 y 6 inclusive garantizan una imagen indexada. - + Normalize Normalizar - + Make dark and light gray gradients black and white respectively. Hacer los gradientes oscuros y gris oscuro negros y blancos respectivamente. - + Force b&&w Forzar blanco y negro - + Threshold Umbral - + Method: Método: - + 0 0 - + Thinner Más fino - + Thicker Más grueso - + Coef: Coef: - - + + The dimensions of a pixel neighborhood to consider. Las dimensiones de un vecindario de píxeles a considerar. - - + + Window size: Tamaño de ventana: - + Default value is 0.34. El valor por omisión es 0,34. - + The minimum possible gray level that can be made white. El menor nivel posible de gris que se puede hacer blanco. - + Upper Bound: Límite superior: - + Lower bound: Límite inferior: - + The maximum possible gray level that can be made black. El máximo nivel posible de gris que se puede hacer negro. - + Coeff: Coef: - + Default value is 0.3. El valor por omisión es 0,3. - + Picture Shape Forma de la imagen - + Sensitivity (%): Sensibilidad (%): - + Higher search sensivity Mayor sensibilidad de búsqueda - + Output Resolution (DPI) Resolución de salida (PPP) - + Splitting División - + Split output Dividir la salida - + B&&W foreground Fondo blanco y negro - + Save the original background of the foreground layer. Guardar el fondo original de la capa de frente. - + Original background Fondo original - + Color foreground Color de frente - + Despeckling Eliminar manchas - + Dewarping Antideformación - + Post deskew Antideformación posterior - + Depth perception Percepción de profundidad - + Black and White Blanco y negro - + Color / Grayscale Color / Escala de grises - + Mixed Mezclado - + Background Fondo - + White Blanco + Black + + + + Otsu Otsu - + Sauvola Sauvola - + Wolf Wolf - - + + Off Desactivado - + Free Libre - + Rectangular Rectangular - - - + + + Custom Personalizado - + Marginal Marginal - + Default Por omisión - + Source Origen - - - - - + + + + + Error Error - + Error loading the profile. Error al cargar el perfil. - + The name conflicts with a default profile name. Please enter a different name. El nombre entra en conflicto con un nombre de perfil predeterminado. Por favor, introduzca un nombre diferente. - + Error saving the profile. Error al guardar el perfil. - + Error deleting the profile. Error al borrar el perfil. - + Fill offcut - + Fill margins - + Despeckle - - Mode: - - - - + The profile file is not compatible with the current application version. Remove? @@ -738,7 +748,7 @@ DragHandler - + Unrestricted dragging is possible by holding down the Shift key. Es posible arrastrar sin restricciones manteniendo pulsada la tecla Mayúsculas. @@ -789,13 +799,13 @@ Aplicar - + Need Fixing Necesita corrección - - + + All Pages Todas las páginas @@ -815,7 +825,7 @@ DPI es demasiado pequeño para el tamaño de píxel. Tal combinación probablemente llevaría a errores de memoria. - + %1 (page %2) %1 (página %2) @@ -823,7 +833,7 @@ ImageViewBase - + Use the mouse wheel or +/- to zoom. When zoomed, dragging is possible. Use la rueda del ratón o +/- para hacer zum. Al hacer zum, es posible arrastrar. @@ -831,32 +841,36 @@ InteractiveXSpline - + Click to create a new control point. Haga clic para crear un nuevo punto de control. - + This point can be dragged. Hold Ctrl or Shift to drag along axes. Este punto se puede arrastrar. Mantenga pulsado Ctrl o Mayús. para arrastrar los ejes. - + + Drag this point or delete it by pressing D key. + + + Drag this point or delete it by pressing Del or D. - Arrastre este punto o bórrelo pulsando Supr. o D. + Arrastre este punto o bórrelo pulsando Supr. o D. LoadFileTask - + The following file could not be loaded: %1 El siguiente fichero no se ha podido cargar: %1 - + The following file doesn't exist:<br>%1<br><br>Use the <a href="#relink">Relinking Tool</a> to locate it. El siguiente fichero no existe:<br>%1<br><br>Use la <a href="#relink">Herramienta de reconexión</a> para localizarlo. @@ -917,204 +931,266 @@ Mantener la página actual a la vista. - + + Navigate through selected pages only. + + + + + Magnify thumbnails. (Ctrl++) + + + + + Diminish thumbnails. (Ctrl+-) + + + + + Go To Page... (Ctrl+G) + + + + + Enable multi page selection mode. + + + + + Single/multi column display. + + + + + Sorting order. + + + + + Highlight deviation. + + + + Filters Filtros - + Debug Mode Modo de depuración - - + + Save Project Guardar proyecto - + Save Project As ... Guardar proyecto como... - - + + Next Page Pagina siguiente - - + + Previous Page Página anterior - + New Project ... Proyecto nuevo... - + Open Project ... Abrir proyecto... - + Close Project Cerrar proyecto - + Quit Salir - + Settings ... Configuración... - + First Page Primera página - + Last Page Última página - + About Acerca de - + Fix DPI ... Corregir PPP... - + Relinking ... Reconexión... - - - - - - + + + + + + Switch filter to orientation Cambiar al filtro de orientación - + Switch filter to split pages Cambiar al filtro de dividir páginas - + Switch filter to deskew Cambiar al filtro de enderezar - + Switch filter to select content Cambiar al filtro de seleccionar contenido - + Switch filter to margins Cambiar al filtro de márgenes - + Switch filter to output Cambiar al filtro de salida - + Pixels Píxeles - + Millimetres Milímetros - + Inches Pulgadas - + Centimetres Centímetros - + Default parameters ... Parámetros por omisión... - + + + Go To Page + + + + + Magnify thumbnails + + + + + Diminish thumbnails + + + + + + Reload current page + + + + Stop batch processing Detener proceso por lotes - + Save the project? ¿Desea guardar el proyecto? - + Insert before ... Insertar antes... - + Insert after ... Insertar después... - + Remove from project ... Eliminar del proyecto... - + Insert here ... Insertar aquí... - - + + Scan Tailor Projects Proyectos de Scan Tailor - + Open Project Abrir proyecto - - - - + + + + Error Error - + Unable to open the project file. No es posible abrir el fichero de proyecto. - + The project file is broken. El fichero de proyecto está roto. @@ -1131,77 +1207,77 @@ To determine it, run batch processing at "Select Content" or "Mar Para determinarlo, ejecute el proceso por lotes en «Seleccionar contenido» o «Márgenes». - + Unnamed Sin nombre - + %2 - ScanTailor Advanced [%1bit] %2 - Scan Tailor Advanced [%1bit] - - + + Error saving the project file! ¡Error al guardar el fichero de proyecto! - + Files to insert Ficheros a insertar - + Images not in project (%1) Imágenes fuera del proyecto (%1) - + Skip failed files Saltar los ficheros fallidos - + Remove Eliminar - + + Enter the page number: + + + + Use Home, End, PgUp/Q, PgDown/W to navigate between pages or Shift+PgUp/Q and Shift+PgDown/W to navigate between selected ones. Alt+Wheel - scale thumbnails. - - - - + + + + Previous Selected Page - - - - + + + + Next Selected Page - + Previous page. - + Next page. - - - Filter selected pages only. - - NewOpenProjectPanel @@ -1320,17 +1396,17 @@ Para determinarlo, ejecute el proceso por lotes en «Seleccionar contenido» o Tenga en cuenta que aunque Scan Tailor intenta capturar las situaciones de memoria agotada y darle la oportunidad de guardar su proyecto, no siempre es posible. Esta vez tuvo éxito, pero la siguiente puede fallar. - + Scan Tailor Projects Proyectos de Scan Tailor - + Error Error - + Error saving the project file! ¡Error al guardar el fichero de proyecto! @@ -1344,7 +1420,7 @@ Para determinarlo, ejecute el proceso por lotes en «Seleccionar contenido» o - + Input Directory Directorio de entrada @@ -1356,7 +1432,7 @@ Para determinarlo, ejecute el proceso por lotes en «Seleccionar contenido» o - + Output Directory Directorio de salida @@ -1367,12 +1443,12 @@ Para determinarlo, ejecute el proceso por lotes en «Seleccionar contenido» o - + Select All Seleccionar todo - + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> @@ -1383,7 +1459,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Añadir los ficheros seleccionados al proyecto.</p></body></html> - + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> @@ -1394,67 +1470,67 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Borrar los ficheros seleccionados del proyecto.</p></body></html> - + Files In Project Ficheros en el proyecto - + Right to left layout (for Hebrew and Arabic) Diseño de derecha a izquierda (para hebreo y árabe) - + Fix DPIs, even if they look OK Corregir los PPP, incluso si parecen correctos - - - + + + + - - + Error Error - + No files in project! ¡No hay ficheros en el proyecto! - + Input directory is not set or doesn't exist. El directorio de entrada no se ha especificado o no existe. - + Input and output directories can't be the same. Los directorios de entrada y salida no pueden ser el mismo. - + Create Directory? ¿Desea crear el directorio? - + Output directory doesn't exist. Create it? El directorio de salida no existe. ¿Desea crearlo? - + Unable to create output directory. No es posible crear el directorio de salida. - + Output directory is not set or doesn't exist. El directorio de salida no se ha especificado o no existe. - + Some of the files failed to load. Either we don't support their format, or they are broken. You should remove them from the project. @@ -1466,18 +1542,18 @@ Debería elimnarlos del proyecto. ProjectOpeningContext - - + + Error Error - + The project file is not compatible with the current application version. El fichero de proyecto no es compatible con la versión actual de la aplicación. - + Unable to interpret the project file. No se puede interpretar el fichero de proyecto. @@ -1504,6 +1580,21 @@ Debería elimnarlos del proyecto. in in + + + Canceling multi page selection + + + + + %1 pages selection are going to be canceled. Continue? + + + + + Don't show this message again. + + RelinkingDialog @@ -1523,17 +1614,17 @@ Debería elimnarlos del proyecto. ... - + Substitution File for %1 Fichero de sustitución para %1 - + Substitution Directory for %1 Directorio de sustitución para %1 - + This change would merge several files into one. Este cambio puede fusionar varios ficheros en uno solo. @@ -1584,46 +1675,51 @@ Debería elimnarlos del proyecto. Guardar automáticamente el proyecto existente - + + Show question on canceling multi page selection + + + + Processing Procesando - + Deviation Desviación - + Highlight the thumbnails of pages with high deviation Resaltar las miniaturas de páginas con alta desviación - + Params Parámetros - + Select content: Selección de contenido: - - - + + + Deviation multiplier: a higher value means lower sensivity. Multiplicador de desvío: un valor más alto significa menor sensibilidad. - + Margins: Márgenes: - - - + + + The minimum deviation to be highlighted. La desviación mínima a resaltar. @@ -1638,70 +1734,70 @@ Debería elimnarlos del proyecto. Idioma: - + Saving Guardando - + B&W Compression: Compresión en blanco y negro: - + Color Compression: Compresión en color: - + Your hardware / driver don't provide the necessary features Su hardware / controlador no ofrece las características necesarias - + Dark Oscuro - + Light Claro - - + + None Ninguna - - + + LZW LZW - - + + Deflate Deflate - + CCITT G4 CCITT G4 - + JPEG JPEG - + Information Información - + ScanTailor need to be restarted to apply the color scheme changes. Es necesario reiniciar ScanTailor para aplicar los cambios del esquema de color. @@ -1736,32 +1832,32 @@ Debería elimnarlos del proyecto. - + White on black detection - + Auto detect pages with light content on dark background. The corrections to all the auto algorithms are made for such pages. - + Auto detect light content on dark background - + Whether to use auto detection at the output stage. The wrong result can be changed manually in the output filter options. - + Use auto detection at the output stage - + Native @@ -1771,7 +1867,7 @@ Debería elimnarlos del proyecto. - + Deskew: @@ -1779,7 +1875,7 @@ Debería elimnarlos del proyecto. StageListView - + Launch batch processing Lanzar el proceso por lotes @@ -1793,56 +1889,74 @@ Debería elimnarlos del proyecto. + Zone creation mode. + + + + + The type of a new zone created. + + + + Mouse position. Posición del ratón. - + Mouse position relative to page. Posición del ratón relativa a la página. - + + Image size. + + + + + Image size in current units. + + + Physical size. - Tamaño físico. + Tamaño físico. - Physical size of image. - Tamaño físico de la imagen. + Tamaño físico de la imagen. - + Page number. Número de página. - + Position of the selected page in current order. Posición de la página seleccionada en el orden actual. - + Page information. Información de la página. - + Page name and type. Nombre y tipo de la página. - + p. %1 / %2 p. %1 / %2 - + [L] [I] - + [R] [D] @@ -1869,7 +1983,7 @@ Debería elimnarlos del proyecto. ThumbnailSequence - + %1 (page %2) %1 (página %2) @@ -1877,12 +1991,12 @@ Debería elimnarlos del proyecto. ZoneContextMenuInteraction - + Delete Borrar - + Properties Propiedades @@ -1890,63 +2004,71 @@ Debería elimnarlos del proyecto. ZoneCreationInteraction - + Click to finish this rectangular zone. ESC to cancel. Haga clic para terminar esta zona rectangular. ESC para cancelar. - + Click to finish this zone. ESC to cancel. Haga clic para terminar esta zona. ESC para cancelar. - + Connect first and last points to finish this zone. ESC to cancel. Conectar el primer y el último punto para terminar esta zona. ESC para cancelar. - - Hold Ctrl to create a rectangular zone or Shift+Alt+LMB to use lasso mode. ESC to cancel. + + Use Z and X keys to switch zone creation mode. ESC to cancel. ZoneDefaultInteraction - Drag the vertex. Hold Ctrl to make the vertex angle right. - Arrastre el vértice. Mantenga pulsado Ctrl para hacer que el ángulo del vértice sea correcto. + Arrastre el vértice. Mantenga pulsado Ctrl para hacer que el ángulo del vértice sea correcto. - + + Drag the vertex. Hold Ctrl to make the vertex angle right. Press D to delete the vertex. + + + + Click to create a new vertex here. Haga clic para crear un nuevo vértice aquí. - + Right click to edit zone properties. Hold Shift to drag the zone or Shift+Ctrl to copy. Press Del to delete this zone. Clic derecho para editar las propiedades de la zona. Mantenga pulsado Mayúsculas para arrastrar la zona o Mayús+Ctrl para copiarla. Pulse Supr para borrar esta zona. - + Hold left mouse button to drag the zone. - + Hold left mouse button to copy and drag the zone. - + + Click to start creating a new zone. Ctrl+Alt+Click to copy the latest created zone. Use Z, X and C keys to switch zone creation mode. + + + Click to start creating a new zone. Use Ctrl+Alt+Click to copy the latest created zone. - Haga clic para empezar a crear una zona nueva. Use Ctrl+Alt+Click para copiar la última zona creada. + Haga clic para empezar a crear una zona nueva. Use Ctrl+Alt+Click para copiar la última zona creada. ZoneDragInteraction - + Release left mouse button to finish dragging. Suelte el botón izquierdo del ratón para finalizar el arrastre. @@ -1954,12 +2076,12 @@ Debería elimnarlos del proyecto. ZoneVertexDragInteraction - + Merge these two vertices. Fusionar esos dos vértices. - + Move the vertex to one of its neighbors to merge them. Mover el vértice hacia uno de sus vecions para fusionarlos. @@ -2022,17 +2144,17 @@ Debería elimnarlos del proyecto. deskew::Filter - + Natural order Orden natural - + Order by decreasing deviation Orden decreciente de desviación - + Deskew Enderezar @@ -2040,12 +2162,12 @@ Debería elimnarlos del proyecto. deskew::ImageView - + Use Ctrl+Wheel to rotate or Ctrl+Shift+Wheel for finer rotation. Use Ctrl+Rueda-del-ratón para rotar o Ctrl+Mayús+Rueda-del-ratón para rotación precisa. - + Drag this handle to rotate the image. Arrastre este asa para rotar la imagen. @@ -2053,7 +2175,7 @@ Debería elimnarlos del proyecto. deskew::OptionsWidget - + Apply Deskew Aplicar enderezado @@ -2146,7 +2268,7 @@ Debería elimnarlos del proyecto. fix_orientation::Filter - + Fix Orientation Corregir orientación @@ -2294,24 +2416,24 @@ Debería elimnarlos del proyecto. output::ChangeDpiDialog - + Custom Personalizado - - + + Error Error - + DPI is not set. No se han establecido los PPP. - + DPI is too low! ¡Valor de PPP demasiado bajo! @@ -2364,7 +2486,7 @@ Debería elimnarlos del proyecto. output::FillZoneEditor - + Pick color Seleccionar color @@ -2372,17 +2494,17 @@ Debería elimnarlos del proyecto. output::Filter - + Output Salida - + Natural order Orden natural - + Order by completeness @@ -2390,52 +2512,57 @@ Debería elimnarlos del proyecto. output::OptionsWidget - + Black and White Blanco y negro - + Color / Grayscale Color / Escala de grises - + Mixed Mezclado - + Otsu Otsu - + Sauvola Sauvola - + Wolf Wolf - + Background Fondo - + White Blanco - + + Black + + + + Free Libre - + Rectangular Rectangular @@ -2455,33 +2582,33 @@ Debería elimnarlos del proyecto. Aplicar la percepción de profundidad - - + + Off Desactivado - + Auto Automático - + Manual Manual - + Marginal Marginal - + deskew disabled Enderezar inhabilitado - + Apply Processing Settings @@ -2751,7 +2878,7 @@ Debería elimnarlos del proyecto. Antideformación - + deskew @@ -2833,7 +2960,7 @@ Debería elimnarlos del proyecto. output::TabbedImageView - + Use Ctrl+1..5 to switch the tabs. Use Ctrl+1..5 para cambiar de pestaña. @@ -2841,37 +2968,37 @@ Debería elimnarlos del proyecto. output::Task::UiUpdater - + Picture zones are only available in Mixed mode. Las zonas de imagen solo están disponibles en el modo Mixto. - + Despeckling can't be done in Color / Grayscale mode. La eliminación de manchas no se puede hacer en el modo Color / Escala de grises. - + Output Salida - + Picture Zones Zonas de imagen - + Fill Zones Rellenar zonas - + Dewarping Antideformación - + Despeckling Eliminar manchas @@ -2982,27 +3109,27 @@ Debería elimnarlos del proyecto. page_layout::Filter - + Natural order Orden natural - + Order by increasing width Orden creciente por ancho - + Order by increasing height Orden creciente por alto - + Order by decreasing deviation Orden decreciente de desviación - + Margins Márgenes @@ -3010,47 +3137,47 @@ Debería elimnarlos del proyecto. page_layout::ImageView - + Resize margins by dragging any of the solid lines. Cambiar el tamaño de los márgenes arrastrando cuaquiera de las líneas sólidas. - + Hold left mouse button to drag the page content. - + Release left mouse button to finish dragging. - + Add a horizontal guide - + Add a vertical guide - + Remove all the guides - + Remove this guide - + Show hard margins rectangle - + Drag the guide. @@ -3058,12 +3185,12 @@ Debería elimnarlos del proyecto. page_layout::OptionsWidget - + Apply Margins Aplicar márgenes - + Apply Alignment Aplicar alineación @@ -3085,15 +3212,15 @@ Debería elimnarlos del proyecto. - - - - - - - - - + + + + + + + + + ... ... @@ -3119,7 +3246,7 @@ Debería elimnarlos del proyecto. - + Apply To ... Aplicar a... @@ -3134,62 +3261,67 @@ Debería elimnarlos del proyecto. Igualar el tamaño con otras páginas - - Mode: + + Horizontal mode: - + + Vertical mode: + + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Right-click</span><span style=" font-size:7pt;"> to create/remove guides from the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> called.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Right-click</span><span style=" font-size:7pt;"> on a guide to delete that guide from the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> called.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Ctrl+Alt+LMB</span><span style=" font-size:7pt;"> - drag the guide under the cursor.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Shift/Ctrl+LMB</span><span style=" font-size:7pt;"> on the content rectangle - drag the page content. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;"> pressed to restrict moving along the horizontal axis only or </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> for the vertical one. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;"> for usual dragging.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Double-click</span><span style=" font-size:7pt;"> on content - automatically attach that content to the nearest guide. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;"> pressed to select vertical guides only or </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> for horizontal ones. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;"> to attach that to both the nearest vertical and horizontal guides.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣</span><span style=" font-size:7pt;"> Use the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> to enable/disable showing the hard margins rectangle.</span></p></body></html> + + + + + Auto auto Automático - + + Manual manual Manual - + + Original original Original - Auto aligning - Alineación automática + Alineación automática - Enable horizontal - Habilitar en horizontal + Habilitar en horizontal - Enable vertical - Habilitar en vertical + Habilitar en vertical - + Guides Help - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Right-click</span><span style=" font-size:7pt;"> to create/remove guides from the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> called.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Right-click</span><span style=" font-size:7pt;"> on a guide to delete that guide from the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> called.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Shift+LMB</span><span style=" font-size:7pt;"> - drag the guide under the cursor.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Shift/Ctrl+LMB</span><span style=" font-size:7pt;"> on the content rectangle - drag the page content. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;"> pressed to restrict moving along the horizontal axis only or </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> for the vertical one. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;"> for usual dragging.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Double-click</span><span style=" font-size:7pt;"> on content - automatically attach that content to the nearest guide. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;"> pressed to select vertical guides only or </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> for horizontal ones. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;"> to attach that to both the nearest vertical and horizontal guides.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣</span><span style=" font-size:7pt;"> Use the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> to enable/disable showing the hard margins rectangle.</span></p></body></html> - - page_split::Filter @@ -3212,7 +3344,7 @@ p, li { white-space: pre-wrap; } page_split::ImageView - + Drag the line or the handles. Arrastrar la línea o las asas. @@ -3220,15 +3352,15 @@ p, li { white-space: pre-wrap; } page_split::OptionsWidget - - - + + + Set manually Ajustar manualmente - - + + Auto detected Detección automática @@ -3243,27 +3375,27 @@ p, li { white-space: pre-wrap; } Diseño de página - + ? ? - + Change ... Cambiar... - + Split Line Dividir línea - + Auto Automático - + Manual Manual @@ -3354,7 +3486,7 @@ p, li { white-space: pre-wrap; } page_split::UnremoveButton - + Restore removed page. Restaurar la página eliminada. @@ -3437,27 +3569,27 @@ p, li { white-space: pre-wrap; } select_content::Filter - + Natural order Orden natural - + Order by increasing width Orden creciente por ancho - + Order by increasing height Orden creciente por alto - + Order by decreasing deviation Orden decreciente de desviación - + Select Content Seleccionar contenido @@ -3465,43 +3597,43 @@ p, li { white-space: pre-wrap; } select_content::ImageView - + Use the context menu to enable / disable the content box. Hold Shift to drag a box. Use double-click on content to automatically adjust the content area. Use el menú contextual para habilitar / inhabilitar la caja de contenido. Mantenga pulsado Mayús. para arrastrar una caja. Use doble clic en contenidos para ajustar automáticamente el área de contenido. - + Drag lines or corners to resize the content box. Arrastrar líneas o esquinas para cambiar el tamaño de la caja de contenido. - + Drag lines or corners to resize the page box. Arrastrar líneas o esquinas para cambiar el tamaño de la caja de página. - + Hold left mouse button to drag the content box. Mantener pulsado el botón izquierdo del ratón para arrastrar la caja de contenido. - - + + Release left mouse button to finish dragging. Soltar el botón izquierdo del ratón para finalizar el arrastre. - + Hold left mouse button to drag the page box. Mantener pulsado el botón izquierdo del ratón para arrastrar la caja de página. - + Create Content Box Crear caja de contenido - + Remove Content Box Eliminar caja de contenido diff --git a/src/translations/scantailor_fr.ts b/src/translations/scantailor_fr.ts index 214e2e777..da1d8cb0f 100644 --- a/src/translations/scantailor_fr.ts +++ b/src/translations/scantailor_fr.ts @@ -1,6 +1,6 @@ - + AboutDialog @@ -192,7 +192,7 @@ - + Auto Auto @@ -200,7 +200,7 @@ - + Manual Manuel @@ -626,84 +626,89 @@ Blanc - + + Black + Noir + + + Otsu Otsu - + Sauvola Sauvola - + Wolf Wolf - - + + Off Désactivé - + Free Libre - + Rectangular Rectangulaire - - - + + + Custom Personnalisé - + Marginal Marginal - + Default Par défaut - + Source Source - - - - - + + + + + Error Erreur - + Error loading the profile. Erreur lors du chargement du profil. - + The name conflicts with a default profile name. Please enter a different name. Le nom rentre en conflit avec un profil par défaut. Veuillez entrer un autre nom. - + Error saving the profile. Erreur lors de l'enregistrement du profil. - + Error deleting the profile. Erreur lors de la suppression du profil. @@ -723,7 +728,7 @@ Détacher - + The profile file is not compatible with the current application version. Remove? Le fichier de profil n'est pas compatible avec la version courante de l'application. Supprimer? @@ -782,33 +787,33 @@ Appliquer - + Need Fixing Correction nécessaire - - + + All Pages Toutes les pages - + DPI is too large and most likely wrong. Cette valeur de DPI est trop grande et probablement incorrecte. - + DPI is too small. Even if it's correct, you are not going to get acceptable results with it. Cette valeur de DPI est trop petite. Même si elle est correcte, le résultat final ne sera bon. - + DPI is too small for this pixel size. Such combination would probably lead to out of memory errors. Cette valeur de DPI est trop petite. Une telle combinaison risque probablement d'engendrer un manque de mémoire. - + %1 (page %2) %1 (page %2) @@ -2515,58 +2520,63 @@ Vous devriez les retirer du projet. Blanc - + + Black + Noir + + + Free Libre - + Rectangular Rectangulaire - + Apply Splitting Settings Appliquer les paramètres de séparation - + Apply Despeckling Level Appliquer le niveau de détachage - + Apply Depth Perception Appliquer la perception de la profondeur - - + + Off Désactivé - + Auto Auto - + Manual Manuel - + Marginal Marginal - + deskew disabled aucun redressement - + Apply Processing Settings Appliquer les paramètres de traitement @@ -2836,7 +2846,7 @@ Vous devriez les retirer du projet. Dégauchissement - + deskew redressement diff --git a/src/translations/scantailor_ko.ts b/src/translations/scantailor_ko.ts index 5550e6d51..53182600c 100644 --- a/src/translations/scantailor_ko.ts +++ b/src/translations/scantailor_ko.ts @@ -5,7 +5,7 @@ AboutDialog ScanTailor Advanced - 프로그램 제목이므로 번역 안함. + 프로그램 제목이므로 번역 안함. ScanTailor Advanced @@ -42,7 +42,7 @@ Petr Kovář - Command line interface, ver. Enhanced - Petr Kovář - 커맨드 라인 인터페이스(Enhanced 버전 제작) + Petr Kovář - 커맨드 라인 인터페이스(Enhanced 버전 제작) Vadim Kuznetsov - ver. Plus @@ -72,6 +72,10 @@ 4lex4 4lex4 + + Petr Kovář - ver. Enhanced + + BatchProcessingLowerPanel @@ -230,15 +234,15 @@ Auto aligning - 자동 위치 조정 + 자동 위치 조정 Enable horizontal - 수평 위치 조정 + 수평 위치 조정 Enable vertical - 수직 위치 조정 + 수직 위치 조정 Match size with other pages @@ -558,79 +562,91 @@ Mode: - 모드: + 모드: The profile file is not compatible with the current application version. Remove? 이 프로필은 현재 프로그램에 호환되지 않습니다. 삭제 하시겠습니까? + + Horizontal mode: + + + + Vertical mode: + + + + Black + + DeskewApplyDialog Apply to - 적용하기 + 적용하기 This page only (already applied) - 이 페이지만 (이미 적용되어 있음) + 이 페이지만 (이미 적용되어 있음) All pages - 모든 페이지 + 모든 페이지 This page and the following ones - 이 페이지와 다음 페이지 + 이 페이지와 다음 페이지 This page and the following every other page All odd or even pages, depending on the current page being odd or even. - 이 페이지와 모든 짝수(홀수) 페이지 + 이 페이지와 모든 짝수(홀수) 페이지 Every other page All odd or even pages, depending on the current page being odd or even. - 모든 짝수(홀수) 페이지 + 모든 짝수(홀수) 페이지 Selected pages - 선택된 페이지 + 선택된 페이지 Use Ctrl+Click / Shift+Click to select multiple pages. - Ctrl+Click / Shift+Click 으로 여러 페이지를 선택 가능합니다 + Ctrl+Click / Shift+Click 으로 여러 페이지를 선택 가능합니다 Every other selected page - 선택된 모든 짝수(홀수) 페이지 + 선택된 모든 짝수(홀수) 페이지 The current page will be included. - 현재 페이지도 포함됩니다. + 현재 페이지도 포함됩니다. DeskewOptionsWidget Form - + Deskew - 기울기 보정 + 기울기 보정 Auto - 자동 + 자동 Manual - 수동 + 수동 Apply To ... - 적용하기 + 적용하기 @@ -721,7 +737,11 @@ Drag this point or delete it by pressing Del or D. - 이 점을 드래그하거나 Del 또는 D를 눌러 삭제하세요. + 이 점을 드래그하거나 Del 또는 D를 눌러 삭제하세요. + + + Drag this point or delete it by pressing D key. + @@ -784,7 +804,7 @@ Follow page - 다음 페이지 + 다음 페이지 Filters @@ -998,7 +1018,59 @@ To determine it, run batch processing at "Select Content" or "Mar Filter selected pages only. - 선택된 페이지만 필터링하기 + 선택된 페이지만 필터링하기 + + + Navigate through selected pages only. + + + + Magnify thumbnails. (Ctrl++) + + + + Diminish thumbnails. (Ctrl+-) + + + + Go To Page... (Ctrl+G) + + + + Enable multi page selection mode. + + + + Single/multi column display. + + + + Sorting order. + + + + Highlight deviation. + + + + Go To Page + + + + Magnify thumbnails + + + + Diminish thumbnails + + + + Reload current page + + + + Enter the page number: + @@ -1024,91 +1096,91 @@ To determine it, run batch processing at "Select Content" or "Mar OrientationApplyDialog Fix Orientation - 방향 수정 + 방향 수정 Apply to - 적용하기 + 적용하기 This page only (already applied) - 이 페이지만 (이미 적용되어 있음) + 이 페이지만 (이미 적용되어 있음) All pages - 모든 페이지 + 모든 페이지 This page and the following ones - 이 페이지와 다음 페이지 + 이 페이지와 다음 페이지 This page and the following every other page All odd or even pages, depending on the current page being odd or even. - 이 페이지와 모든 짝수(홀수) 페이지 + 이 페이지와 모든 짝수(홀수) 페이지 Every other page All odd or even pages, depending on the current page being odd or even. - 모든 짝수(홀수) 페이지 + 모든 짝수(홀수) 페이지 Selected pages - 선택된 페이지 + 선택된 페이지 Use Ctrl+Click / Shift+Click to select multiple pages. - Ctrl+Click / Shift+Click 으로 여러 페이지를 선택 가능합니다 + Ctrl+Click / Shift+Click 으로 여러 페이지를 선택 가능합니다 Every other selected page - 선택된 모든 짝수(홀수) 페이지 + 선택된 모든 짝수(홀수) 페이지 The current page will be included. - 현재 페이지도 포함됩니다. + 현재 페이지도 포함됩니다. OrientationOptionsWidget Form - + Rotate - 회전 + 회전 ... - ... + ... Reset - 초기화 + 초기화 Apply to ... - 적용하기 + 적용하기 OtsuBinarizationOptionsWidget Form - + 0 - 0 + 0 Thinner - 가늘게 + 가늘게 Thicker - 두껍게 + 두껍게 @@ -1131,7 +1203,7 @@ To determine it, run batch processing at "Select Content" or "Mar Sometimes your source images may have wrong DPI embedded into them. Scan Tailor tries to detect those, but it's not always easy to tell. You may need to check "Fix DPI even if they look normal" when creating a project and look into "All pages" tab in the "Fix DPI" dialog, which is also accessible from the Tools menu. - 때때로 원본 이미지가 잘못된 DPI가 포함되어 있을수도 있습니다. Scan Tailor가 이를 감지할려 하지만, 쉬운 일이 아닙니다. 프로젝트를 새로 시작할 때 DPI가 정상적인 것 처럼 보여도 "도구 -> DPI 수정"을 이용해 확인해봐야 합니다. + 때때로 원본 이미지가 잘못된 DPI가 포함되어 있을수도 있습니다. Scan Tailor가 이를 감지할려 하지만, 쉬운 일이 아닙니다. 프로젝트를 새로 시작할 때 DPI가 정상적인 것 처럼 보여도 "도구 -> DPI 수정"을 이용해 확인해봐야 합니다. Is your output DPI set too high? Usually you don't need it higher than 600. @@ -1203,455 +1275,447 @@ To determine it, run batch processing at "Select Content" or "Mar OutputApplyColorsDialog Apply Mode - 적용 모드 + 적용 모드 Apply to - 적용하기 + 적용하기 This page only (already applied) - 이 페이지만 (이미 적용되어 있음) + 이 페이지만 (이미 적용되어 있음) All pages - 모든 페이지 + 모든 페이지 This page and the following ones - 이 페이지와 다음 페이지 + 이 페이지와 다음 페이지 Selected pages - 선택된 페이지 + 선택된 페이지 Use Ctrl+Click / Shift+Click to select multiple pages. - Ctrl+Click / Shift+Click 으로 여러 페이지를 선택 가능합니다 + Ctrl+Click / Shift+Click 으로 여러 페이지를 선택 가능합니다 OutputChangeDewarpingDialog Apply Dewarping Mode - 왜곡 보정 모드 적용 + 왜곡 보정 모드 적용 Mode - 모드 + 모드 Off - 끄기 + 끄기 Auto (experimental) - 자동 (실험적) + 자동 (실험적) Marginal (experimental) - 테두리 (실험적) + 테두리 (실험적) Manual - 수동 + 수동 Options - 옵션 + 옵션 Post deskew - 사전 기울기 보정 + 사전 기울기 보정 Apply to - 적용하기 + 적용하기 This page only - 이 페이지만 + 이 페이지만 All pages - 모든 페이지 + 모든 페이지 This page and the following ones - 이 페이지와 다음 페이지 + 이 페이지와 다음 페이지 Selected pages - 선택된 페이지 + 선택된 페이지 Use Ctrl+Click / Shift+Click to select multiple pages. - Ctrl+Click / Shift+Click 으로 여러 페이지를 선택 가능합니다 + Ctrl+Click / Shift+Click 으로 여러 페이지를 선택 가능합니다 OutputChangeDpiDialog Apply Output Resolution - 출력 해상도 적용 + 출력 해상도 적용 DPI - DPI + DPI Apply to - 적용하기 + 적용하기 This page only - 이 페이지만 + 이 페이지만 All pages - 모든 페이지 + 모든 페이지 This page and the following ones - 이 페이지와 다음 페이지 + 이 페이지와 다음 페이지 - + Selected pages - 선택된 페이지 + 선택된 페이지 Use Ctrl+Click / Shift+Click to select multiple pages. - Ctrl+Click / Shift+Click 으로 여러 페이지를 선택 가능합니다 + Ctrl+Click / Shift+Click 으로 여러 페이지를 선택 가능합니다 OutputOptionsWidget Form - + Output Resolution (DPI) - 출력 해상도 (DPI) + 출력 해상도 (DPI) 0 - 0 + 0 Change ... - 변경 + 변경 Mode - 모드 + 모드 Options - 옵션 + 옵션 Normalize illumination before binarization. - 이진화 이전에 조명을 통일시키세요. + 이진화 이전에 조명을 통일시키세요. Equalize illumination (B&&W) - 조명 통일 (흑백) + 조명 통일 (흑백) Normalize illumination in color mode / in picture zones in mixed mode. - 믹스 모드의 사진 영역과 컬러 모드에서 조명을 통일시킵니다. + 믹스 모드의 사진 영역과 컬러 모드에서 조명을 통일시킵니다. Equalize illumination (Color) - 조명 통일 (컬러) + 조명 통일 (컬러) Savitzky-Golay smoothing - Savitzky-Golay 스무딩 + Savitzky-Golay 스무딩 Morphological smoothing - Morphological(형태학적) 스무딩 + Morphological(형태학적) 스무딩 Filling - 채우기 + 채우기 Color: - 색상: + 색상: Threshold - 임계값 + 임계값 qk: - 방법 + 방법 Color operations - 색상 조정 + 색상 조정 Split the image into color segments and colorize b&w mask. - 이미지를 색상 조각으로 분할하고 흑백 마스크로 칠합니다. + 이미지를 색상 조각으로 분할하고 흑백 마스크로 칠합니다. Color segmentation - 색상 분할 + 색상 분할 R - R + R Red component adjustment. A negative value means the segmenter will be more sensitive to red and vice versa for a positive one. - 빨간색 요소 조정. 음수의 경우 빨간색에 더 민감하고 양수의 경우 덜 민감해집니다. - - - G - + 빨간색 요소 조정. 음수의 경우 빨간색에 더 민감하고 양수의 경우 덜 민감해집니다. Green component adjustment. A negative value means the segmenter will be more sensitive to green and vice versa for a positive one. - 초록색 요소 조정. 음수의 경우 초록색에 더 민감하고 양수의 경우 덜 민감해집니다. - - - B - + 초록색 요소 조정. 음수의 경우 초록색에 더 민감하고 양수의 경우 덜 민감해집니다. Blue component adjustment. A negative value means the segmenter will be more sensitive to blue and vice versa for a positive one. - 파란색 요소 조정. 음수의 경우 파란색에 더 민감하고 양수의 경우 덜 민감해집니다. + 파란색 요소 조정. 음수의 경우 파란색에 더 민감하고 양수의 경우 덜 민감해집니다. Reduce noise: - 노이즈 줄이기: + 노이즈 줄이기: Reduce the number of colors of the output image by grouping similar colors. - 유사한 색상을 그룹화해 출력 이미지의 색상 종류를 줄여줍니다. + 유사한 색상을 그룹화해 출력 이미지의 색상 종류를 줄여줍니다. Posterize - Posterize(명암 단위 제한) + Posterize(명암 단위 제한) Level: - 레벨: + 레벨: Lower value means lower count of colors in the output image, values between 2 and 6 inclusive guarantee an indexed image. - 값이 낮을수록 출력 이미지의 색상 수가 적어집니다. 2~6은 인덱스 이미지를 보장합니다. + 값이 낮을수록 출력 이미지의 색상 수가 적어집니다. 2~6은 인덱스 이미지를 보장합니다. Normalize - 일반화 + 일반화 Make dark and light gray gradients black and white respectively. - 어두은 회색, 밝은 회색 그라디언트를 각각 흑백으로 만듭니다. + 어두은 회색, 밝은 회색 그라디언트를 각각 흑백으로 만듭니다. Force b&&w - 강제 흑백화 + 강제 흑백화 Picture Shape - 사진 모양 + 사진 모양 Sensitivity (%): - 민감도 (%): + 민감도 (%): Higher search sensivity - 더 높은 검색 민감도 + 더 높은 검색 민감도 Apply To ... - 적용하기 + 적용하기 Splitting - 분할 + 분할 Split output - 분할 결과 + 분할 결과 B&&W foreground - 흑백 전경 + 흑백 전경 Save the original background of the foreground layer. - 전경 부분을 원본 배경으로 저장합니다. + 전경 부분을 원본 배경으로 저장합니다. Original background - 원본 배경 + 원본 배경 Color foreground - 색상 전경 + 색상 전경 Despeckling - 얼룩 제거 + 얼룩 제거 Dewarping - 왜곡 보정 + 왜곡 보정 Fill offcut - 오프컷 채우기 + 오프컷 채우기 Fill margins - 테두리 채우기 + 테두리 채우기 Despeckle - 얼룩 제거 + 얼룩 제거 Processing - 작업 + 작업 This option should be enabled when the page has dark content on light background and disabled if vice versa in order to correct processing algorithms. - 이 옵션은 밝은 배경에서 검은 내용이 있을 때 활성화 해야 하고, 반대의 경우에는 비활성화 해야 합니다. + 이 옵션은 밝은 배경에서 검은 내용이 있을 때 활성화 해야 하고, 반대의 경우에는 비활성화 해야 합니다. Black on white mode - 흰 종이 검은 글씨 모드 + 흰 종이 검은 글씨 모드 PageLayoutApplyDialog Apply to - 적용하기 + 적용하기 This page only (already applied) - 이 페이지만 (이미 적용되어 있음) + 이 페이지만 (이미 적용되어 있음) All pages - 모든 페이지 + 모든 페이지 This page and the following ones - 이 페이지와 다음 페이지 + 이 페이지와 다음 페이지 This page and the following every other page All odd or even pages, depending on the current page being odd or even. - 이 페이지와 모든 짝수(홀수) 페이지 + 이 페이지와 모든 짝수(홀수) 페이지 Every other page All odd or even pages, depending on the current page being odd or even. - 모든 짝수(홀수) 페이지 + 모든 짝수(홀수) 페이지 Selected pages - 선택된 페이지 + 선택된 페이지 Use Ctrl+Click / Shift+Click to select multiple pages. - Ctrl+Click / Shift+Click 으로 여러 페이지를 선택 가능합니다 + Ctrl+Click / Shift+Click 으로 여러 페이지를 선택 가능합니다 Every other selected page - 선택된 모든 짝수(홀수) 페이지 + 선택된 모든 짝수(홀수) 페이지 The current page will be included. - 현재 페이지도 포함됩니다. + 현재 페이지도 포함됩니다. PageLayoutOptionsWidget Form - + Margins - 테두리 + 테두리 Top - + ... - ... + ... Bottom - 아래 + 아래 Left - 왼쪽 + 왼쪽 Right - 오른쪽 + 오른쪽 Apply To ... - 테두리 + 테두리 Alignment - 위치 조정 + 위치 조정 Auto auto - 자동 + 자동 Manual manual - 수동 + 수동 Original original - 원래대로 + 원래대로 Auto Margins - 자동 테두리 + 자동 테두리 - + Auto aligning - 자동 위치 조정 + 자동 위치 조정 Enable horizontal - 수평 위치 조정 + 수평 위치 조정 Enable vertical - 수직 위치 조정 + 수직 위치 조정 Match size with other pages - 다른 페이지와 크기 같게 하기 + 다른 페이지와 크기 같게 하기 Guides Help - 가이드 도움말 + 가이드 도움말 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> @@ -1664,7 +1728,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Shift/Ctrl+LMB</span><span style=" font-size:7pt;"> on the content rectangle - drag the page content. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;"> pressed to restrict moving along the horizontal axis only or </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> for the vertical one. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;"> for usual dragging.</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Double-click</span><span style=" font-size:7pt;"> on content - automatically attach that content to the nearest guide. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;"> pressed to select vertical guides only or </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> for horizontal ones. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;"> to attach that to both the nearest vertical and horizontal guides.</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣</span><span style=" font-size:7pt;"> Use the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> to enable/disable showing the hard margins rectangle.</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> @@ -1677,124 +1741,112 @@ p, li { white-space: pre-wrap; } Mode: - 모드: + 모드: PageSplitModeDialog Split Pages - 페이지 분할 + 페이지 분할 Mode - 모드 + 모드 Auto - 자동 + 자동 Manual - 수동 + 수동 Options - 옵션 + 옵션 Apply cut - 잘라내기 적용 + 잘라내기 적용 Apply to - 적용하기 + 적용하기 This page only - 이 페이지만 + 이 페이지만 All pages - 모든 페이지 + 모든 페이지 This page and the following ones - 이 페이지와 다음 페이지 - - - This page and the following ones - 이 페이지와 다음 페이지 + 이 페이지와 다음 페이지 Every other page - 모든 짝수(홀수) 페이지 + 모든 짝수(홀수) 페이지 Selected pages - 선택된 페이지 + 선택된 페이지 Use Ctrl+Click / Shift+Click to select multiple pages. - Ctrl+Click / Shift+Click 으로 여러 페이지를 선택 가능합니다 + Ctrl+Click / Shift+Click 으로 여러 페이지를 선택 가능합니다 Every other selected page - 선택된 모든 짝수(홀수) 페이지 - + 선택된 모든 짝수(홀수) 페이지 + The current page will be included. - 현재 페이지도 포함됩니다. + 현재 페이지도 포함됩니다. PageSplitOptionsWidget Form - + Page Layout - 페이지 레이아웃 - - - ? - - - - Change ... - + 페이지 레이아웃 Split Line - 줄 나누기 + 줄 나누기 Auto - 자동 + 자동 Manual - 수동 + 수동 PictureZonePropDialog Zone Properties - 영역 속성 + 영역 속성 Subtract from all layers - 모든 레이어에서 빼기 + 모든 레이어에서 빼기 Add to auto layer - 자동 레이어에 더하기 + 자동 레이어에 더하기 Subtract from auto layer - 자동 레이어에 빼기 + 자동 레이어에 빼기 @@ -1929,6 +1981,18 @@ You should remove them from the project. in in + + Canceling multi page selection + + + + %1 pages selection are going to be canceled. Continue? + + + + Don't show this message again. + + RelinkingDialog @@ -1976,135 +2040,135 @@ You should remove them from the project. SauvolaBinarizationOptionsWidget Form - + Coef: - 계수 + 계수 The dimensions of a pixel neighborhood to consider. - 고려해야할 주변 픽셀수의 범위를 설정합니다. + 고려해야할 주변 픽셀수의 범위를 설정합니다. Window size: - 창 크기: + 창 크기: Default value is 0.34. - 기본값은 0.34입니다. + 기본값은 0.34입니다. SelectContentApplyDialog Select Content - 컨텐츠 선택 + 컨텐츠 선택 Options - 옵션 + 옵션 Apply content box - 컨텐츠 박스 적용 + 컨텐츠 박스 적용 Apply page box - 페이지 박스 적용 + 페이지 박스 적용 Apply to - 적용하기 + 적용하기 This page only (already applied) - 이 페이지만 (이미 적용되어 있음) + 이 페이지만 (이미 적용되어 있음) All pages - 모든 페이지 + 모든 페이지 This page and the following ones - 이 페이지와 다음 페이지 + 이 페이지와 다음 페이지 This page and the following every other page All odd or even pages, depending on the current page being odd or even. - 이 페이지와 모든 짝수(홀수) 페이지 + 이 페이지와 모든 짝수(홀수) 페이지 Every other page All odd or even pages, depending on the current page being odd or even. - 모든 짝수(홀수) 페이지 + 모든 짝수(홀수) 페이지 Selected pages - 선택된 페이지 + 선택된 페이지 Use Ctrl+Click / Shift+Click to select multiple pages. - Ctrl+Click / Shift+Click 으로 여러 페이지를 선택 가능합니다 + Ctrl+Click / Shift+Click 으로 여러 페이지를 선택 가능합니다 Every other selected page - 선택된 모든 짝수(홀수) 페이지 + 선택된 모든 짝수(홀수) 페이지 The current page will be included. - 현재 페이지도 포함됩니다. + 현재 페이지도 포함됩니다. SelectContentOptionsWidget Form - + Page Box - 페이지 박스 + 페이지 박스 Options - 옵션 + 옵션 Shift with corners while they are in black. - 검은색 테두리를 옮기기 + 검은색 테두리를 옮기기 Fine Tune Page Corners - 페이지 테두리 깔끔하게 자르기 + 페이지 테두리 깔끔하게 자르기 Disable - 비활성화 + 비활성화 Auto - 자동 + 자동 Content Box - 컨텐츠 박스 + 컨텐츠 박스 Manual - 수동 + 수동 Width - + Height - 높이 + 높이 Apply to ... - 적용하기 + 적용하기 @@ -2147,7 +2211,7 @@ You should remove them from the project. Deksew: - 기울기 보정: + 기울기 보정: Select content: @@ -2273,6 +2337,18 @@ You should remove them from the project. Native 네이티브 + + Single column thumbnail display + + + + Show question on canceling multi page selection + + + + Deskew: + + StageListView @@ -2297,11 +2373,11 @@ You should remove them from the project. Physical size. - 실제 크기. + 실제 크기. Physical size of image. - 이미지의 실제 크기. + 이미지의 실제 크기. Page number. @@ -2331,6 +2407,22 @@ You should remove them from the project. [R] [R] + + Zone creation mode. + + + + The type of a new zone created. + + + + Image size. + + + + Image size in current units. + + SystemLoadWidget @@ -2358,39 +2450,39 @@ You should remove them from the project. WolfBinarizationOptionsWidget Form - + The dimensions of a pixel neighborhood to consider. - 고려해야할 주변 픽셀수의 범위를 설정합니다. + 고려해야할 주변 픽셀수의 범위를 설정합니다. Window size: - 창 크기: + 창 크기: The minimum possible gray level that can be made white. - 흰색으로 만들 수 있는 회색 레벨의 최소값입니다. + 흰색으로 만들 수 있는 회색 레벨의 최소값입니다. Upper Bound: - 상한: + 상한: Lower bound: - 하한: + 하한: The maximum possible gray level that can be made black. - 흰색으로 만들 수 있는 회색 레벨의 최대값입니다. + 흰색으로 만들 수 있는 회색 레벨의 최대값입니다. Coeff: - 계수 + 계수 Default value is 0.3. - 기본값은 0.3입니다. + 기본값은 0.3입니다. @@ -2420,14 +2512,18 @@ You should remove them from the project. Hold Ctrl to create a rectangular zone or Shift+Alt+LMB to use lasso mode. ESC to cancel. - Ctrl을 눌러 사각형 영역을 만들거나 Shift+Alt+마우스 왼쪽 버튼을 눌러 올가미 모드를 이용하세요. ESC를 누르면 취소합니다. + Ctrl을 눌러 사각형 영역을 만들거나 Shift+Alt+마우스 왼쪽 버튼을 눌러 올가미 모드를 이용하세요. ESC를 누르면 취소합니다. + + + Use Z and X keys to switch zone creation mode. ESC to cancel. + ZoneDefaultInteraction Drag the vertex. Hold Ctrl to make the vertex angle right. - 꼭짓점을 드래그합니다. Ctrl을 누르고 있으면 꼭짓점을 오른쪽으로 만듭니다. + 꼭짓점을 드래그합니다. Ctrl을 누르고 있으면 꼭짓점을 오른쪽으로 만듭니다. Click to create a new vertex here. @@ -2439,7 +2535,23 @@ You should remove them from the project. Click to start creating a new zone. Use Ctrl+Alt+Click to copy the latest created zone. - 새 영역을 만들려면 클릭하세요. Ctrl+Alt+클릭으로 가장 최근에 생성된 영역 복사가 가능합니다. + 새 영역을 만들려면 클릭하세요. Ctrl+Alt+클릭으로 가장 최근에 생성된 영역 복사가 가능합니다. + + + Drag the vertex. Hold Ctrl to make the vertex angle right. Press D to delete the vertex. + + + + Hold left mouse button to drag the zone. + + + + Hold left mouse button to copy and drag the zone. + + + + Click to start creating a new zone. Ctrl+Alt+Click to copy the latest created zone. Use Z, X and C keys to switch zone creation mode. + @@ -2461,25 +2573,70 @@ You should remove them from the project. - deskew::Filter + deskew::ApplyDialog - Natural order - 일반적인 순서대로 정렬하기 + Apply to + 적용하기 - Order by decreasing deviation - 편차가 높은 순서대로 정렬하기 + This page only (already applied) + 이 페이지만 (이미 적용되어 있음) - Deskew - 기울기 보정 + All pages + 모든 페이지 - - - deskew::ImageView - Use Ctrl+Wheel to rotate or Ctrl+Shift+Wheel for finer rotation. - Ctrl+마우스 휠을 통해 회전하거나 Ctrl+Shift+마우스 휠을 통해 더 미세하게 회전 가능합니다. + This page and the following ones + 이 페이지와 다음 페이지 + + + This page and the following every other page + All odd or even pages, depending on the current page being odd or even. + 이 페이지와 모든 짝수(홀수) 페이지 + + + Every other page + All odd or even pages, depending on the current page being odd or even. + 모든 짝수(홀수) 페이지 + + + Selected pages + 선택된 페이지 + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Ctrl+Click / Shift+Click 으로 여러 페이지를 선택 가능합니다 + + + Every other selected page + 선택된 모든 짝수(홀수) 페이지 + + + The current page will be included. + 현재 페이지도 포함됩니다. + + + + deskew::Filter + + Natural order + 일반적인 순서대로 정렬하기 + + + Order by decreasing deviation + 편차가 높은 순서대로 정렬하기 + + + Deskew + 기울기 보정 + + + + deskew::ImageView + + Use Ctrl+Wheel to rotate or Ctrl+Shift+Wheel for finer rotation. + Ctrl+마우스 휠을 통해 회전하거나 Ctrl+Shift+마우스 휠을 통해 더 미세하게 회전 가능합니다. Drag this handle to rotate the image. @@ -2492,6 +2649,75 @@ You should remove them from the project. Apply Deskew 기울기 보정 적용하기 + + Form + + + + Deskew + 기울기 보정 + + + Auto + 자동 + + + Manual + 수동 + + + Apply To ... + + + + + fix_orientation::ApplyDialog + + Fix Orientation + 방향 수정 + + + Apply to + 적용하기 + + + This page only (already applied) + 이 페이지만 (이미 적용되어 있음) + + + All pages + 모든 페이지 + + + This page and the following ones + 이 페이지와 다음 페이지 + + + This page and the following every other page + All odd or even pages, depending on the current page being odd or even. + 이 페이지와 모든 짝수(홀수) 페이지 + + + Every other page + All odd or even pages, depending on the current page being odd or even. + 모든 짝수(홀수) 페이지 + + + Selected pages + 선택된 페이지 + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Ctrl+Click / Shift+Click 으로 여러 페이지를 선택 가능합니다 + + + Every other selected page + 선택된 모든 짝수(홀수) 페이지 + + + The current page will be included. + 현재 페이지도 포함됩니다. + fix_orientation::Filter @@ -2500,6 +2726,119 @@ You should remove them from the project. 방향 수정 + + fix_orientation::OptionsWidget + + Form + + + + Rotate + 회전 + + + ... + ... + + + Reset + 초기화 + + + Apply to ... + 적용하기 + + + + output::ApplyColorsDialog + + Apply Mode + 적용 모드 + + + Apply to + 적용하기 + + + This page only (already applied) + 이 페이지만 (이미 적용되어 있음) + + + All pages + 모든 페이지 + + + This page and the following ones + 이 페이지와 다음 페이지 + + + Selected pages + 선택된 페이지 + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Ctrl+Click / Shift+Click 으로 여러 페이지를 선택 가능합니다 + + + + output::ChangeDewarpingDialog + + Apply Dewarping Mode + 왜곡 보정 모드 적용 + + + Mode + 모드 + + + Off + 끄기 + + + Auto (experimental) + 자동 (실험적) + + + Marginal (experimental) + 테두리 (실험적) + + + Manual + 수동 + + + Options + 옵션 + + + Post deskew + 사전 기울기 보정 + + + Apply to + 적용하기 + + + This page only + 이 페이지만 + + + All pages + 모든 페이지 + + + This page and the following ones + 이 페이지와 다음 페이지 + + + Selected pages + 선택된 페이지 + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Ctrl+Click / Shift+Click 으로 여러 페이지를 선택 가능합니다 + + output::ChangeDpiDialog @@ -2522,6 +2861,38 @@ You should remove them from the project. DPI is too high! DPI가 너무 높습니다. + + Apply Output Resolution + 출력 해상도 적용 + + + DPI + DPI + + + Apply to + 적용하기 + + + This page only + 이 페이지만 + + + All pages + 모든 페이지 + + + This page and the following ones + 이 페이지와 다음 페이지 + + + Selected pages + 선택된 페이지 + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Ctrl+Click / Shift+Click 으로 여러 페이지를 선택 가능합니다 + output::FillZoneEditor @@ -2623,43 +2994,404 @@ You should remove them from the project. Apply Processing Settings 적용 작업 설정 - - - output::TabbedImageView - Use Ctrl+1..5 to switch the tabs. - Ctrl+1..5 를 통해 탭을 전환합니다. + Form + + + + Output Resolution (DPI) + 출력 해상도 (DPI) + + + 0 + 0 + + + Change ... + 변경 + + + Mode + 모드 + + + Options + 옵션 + + + Fill offcut + 오프컷 채우기 + + + Fill margins + 테두리 채우기 + + + Normalize illumination before binarization. + 이진화 이전에 조명을 통일시키세요. + + + Equalize illumination (B&&W) + 조명 통일 (흑백) + + + Normalize illumination in color mode / in picture zones in mixed mode. + 믹스 모드의 사진 영역과 컬러 모드에서 조명을 통일시킵니다. + + + Equalize illumination (Color) + 조명 통일 (컬러) + + + Savitzky-Golay smoothing + Savitzky-Golay 스무딩 + + + Morphological smoothing + Morphological(형태학적) 스무딩 + + + Filling + 채우기 + + + Color: + 색상: + + + Threshold + 임계값 + + + Method: + 방법 + + + Color operations + 색상 조정 + + + Split the image into color segments and colorize b&w mask. + 이미지를 색상 조각으로 분할하고 흑백 마스크로 칠합니다. + + + Color segmentation + 색상 분할 + + + R + R + + + Red component adjustment. A negative value means the segmenter will be more sensitive to red and vice versa for a positive one. + 빨간색 요소 조정. 음수의 경우 빨간색에 더 민감하고 양수의 경우 덜 민감해집니다. + + + G + + + + Green component adjustment. A negative value means the segmenter will be more sensitive to green and vice versa for a positive one. + 초록색 요소 조정. 음수의 경우 초록색에 더 민감하고 양수의 경우 덜 민감해집니다. + + + B + + + + Blue component adjustment. A negative value means the segmenter will be more sensitive to blue and vice versa for a positive one. + 파란색 요소 조정. 음수의 경우 파란색에 더 민감하고 양수의 경우 덜 민감해집니다. + + + Reduce noise: + 노이즈 줄이기: + + + Reduce the number of colors of the output image by grouping similar colors. + 유사한 색상을 그룹화해 출력 이미지의 색상 종류를 줄여줍니다. + + + Posterize + Posterize(명암 단위 제한) + + + Level: + 레벨: + + + Lower value means lower count of colors in the output image, values between 2 and 6 inclusive guarantee an indexed image. + 값이 낮을수록 출력 이미지의 색상 수가 적어집니다. 2~6은 인덱스 이미지를 보장합니다. + + + Normalize + 일반화 + + + Make dark and light gray gradients black and white respectively. + 어두은 회색, 밝은 회색 그라디언트를 각각 흑백으로 만듭니다. + + + Force b&&w + 강제 흑백화 + + + Picture Shape + 사진 모양 + + + Sensitivity (%): + 민감도 (%): + + + Higher search sensitivity + + + + Apply To ... + + + + Splitting + 분할 + + + Split output + 분할 결과 + + + B&&W foreground + 흑백 전경 + + + Save the original background of the foreground layer. + 전경 부분을 원본 배경으로 저장합니다. + + + Original background + 원본 배경 + + + Color foreground + 색상 전경 + + + Despeckling + 얼룩 제거 + + + Despeckle + 얼룩 제거 + + + Processing + 작업 + + + This option should be enabled when the page has dark content on light background and disabled if vice versa in order to correct processing algorithms. + 이 옵션은 밝은 배경에서 검은 내용이 있을 때 활성화 해야 하고, 반대의 경우에는 비활성화 해야 합니다. + + + Black on white mode + 흰 종이 검은 글씨 모드 + + + Depth perception + 깊이 인식 + + + Dewarping + 왜곡 보정 + + + Black + + + + deskew + + + + + output::OtsuBinarizationOptionsWidget + + Form + + + + 0 + 0 + + + Thinner + + + + Thicker + + + + + output::PictureZonePropDialog + + Zone Properties + 영역 속성 + + + Subtract from all layers + 모든 레이어에서 빼기 + + + Add to auto layer + 자동 레이어에 더하기 + + + Subtract from auto layer + 자동 레이어에 빼기 + + + + output::SauvolaBinarizationOptionsWidget + + Form + + + + Coef: + 계수 + + + The dimensions of a pixel neighborhood to consider. + 고려해야할 주변 픽셀수의 범위를 설정합니다. + + + Default value is 0.34. + 기본값은 0.34입니다. + + + Window size: + 창 크기: + + + + output::TabbedImageView + + Use Ctrl+1..5 to switch the tabs. + Ctrl+1..5 를 통해 탭을 전환합니다. + + + + output::Task::UiUpdater + + Picture zones are only available in Mixed mode. + 그림 영역은 혼합 모드에서만 사용 가능합니다. + + + Despeckling can't be done in Color / Grayscale mode. + 얼룩 제거는 컬러 / 회색조 모드에서 적용 불가능합니다. + + + Output + 출력 + + + Picture Zones + 사진 영역 + + + Fill Zones + 채우기 영역 + + + Dewarping + 왜곡 보정 + + + Despeckling + 얼룩 제거 + + + + output::WolfBinarizationOptionsWidget + + Form + + + + The dimensions of a pixel neighborhood to consider. + 고려해야할 주변 픽셀수의 범위를 설정합니다. + + + Window size: + 창 크기: + + + The minimum possible gray level that can be made white. + 흰색으로 만들 수 있는 회색 레벨의 최소값입니다. + + + Upper Bound: + 상한: + + + Lower bound: + 하한: + + + The maximum possible gray level that can be made black. + 흰색으로 만들 수 있는 회색 레벨의 최대값입니다. + + + Coeff: + 계수 + + + Default value is 0.3. + 기본값은 0.3입니다. + + + + page_layout::ApplyDialog + + Apply to + 적용하기 + + + This page only (already applied) + 이 페이지만 (이미 적용되어 있음) + + + All pages + 모든 페이지 - - - output::Task::UiUpdater - Picture zones are only available in Mixed mode. - 그림 영역은 혼합 모드에서만 사용 가능합니다. + This page and the following ones + 이 페이지와 다음 페이지 - Despeckling can't be done in Color / Grayscale mode. - 얼룩 제거는 컬러 / 회색조 모드에서 적용 불가능합니다. + This page and the following every other page + All odd or even pages, depending on the current page being odd or even. + 이 페이지와 모든 짝수(홀수) 페이지 - Output - 출력 + Every other page + All odd or even pages, depending on the current page being odd or even. + 모든 짝수(홀수) 페이지 - Picture Zones - 사진 영역 + Selected pages + 선택된 페이지 - Fill Zones - 채우기 영역 + Use Ctrl+Click / Shift+Click to select multiple pages. + Ctrl+Click / Shift+Click 으로 여러 페이지를 선택 가능합니다 - Dewarping - 왜곡 보정 + Every other selected page + 선택된 모든 짝수(홀수) 페이지 - Despeckling - 얼룩 제거 + The current page will be included. + 현재 페이지도 포함됩니다. @@ -2734,6 +3466,90 @@ You should remove them from the project. Apply Alignment 위치 조정 적용 + + Form + + + + Margins + 테두리 + + + Auto Margins + + + + ... + ... + + + Top + + + + Right + 오른쪽 + + + Left + 왼쪽 + + + Bottom + 아래 + + + Apply To ... + + + + Alignment + 위치 조정 + + + Match size with other pages + 다른 페이지와 크기 같게 하기 + + + Horizontal mode: + + + + Vertical mode: + + + + Auto + auto + 자동 + + + Manual + manual + 수동 + + + Original + original + 원래대로 + + + Guides Help + 가이드 도움말 + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Right-click</span><span style=" font-size:7pt;"> to create/remove guides from the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> called.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Right-click</span><span style=" font-size:7pt;"> on a guide to delete that guide from the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> called.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Ctrl+Alt+LMB</span><span style=" font-size:7pt;"> - drag the guide under the cursor.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Shift/Ctrl+LMB</span><span style=" font-size:7pt;"> on the content rectangle - drag the page content. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;"> pressed to restrict moving along the horizontal axis only or </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> for the vertical one. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;"> for usual dragging.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Double-click</span><span style=" font-size:7pt;"> on content - automatically attach that content to the nearest guide. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;"> pressed to select vertical guides only or </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> for horizontal ones. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;"> to attach that to both the nearest vertical and horizontal guides.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣</span><span style=" font-size:7pt;"> Use the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> to enable/disable showing the hard margins rectangle.</span></p></body></html> + + page_split::Filter @@ -2767,6 +3583,101 @@ You should remove them from the project. Auto detected 자동 인식 + + Form + + + + Page Layout + 페이지 레이아웃 + + + ? + + + + Change ... + 변경 + + + Split Line + 줄 나누기 + + + Auto + 자동 + + + Manual + 수동 + + + + page_split::SplitModeDialog + + Split Pages + 페이지 분할 + + + Mode + 모드 + + + Auto + 자동 + + + Manual + 수동 + + + Options + 옵션 + + + Apply cut + 잘라내기 적용 + + + Apply to + 적용하기 + + + This page only + 이 페이지만 + + + All pages + 모든 페이지 + + + This page and the following ones + 이 페이지와 다음 페이지 + + + This page and the following every other page + 이 페이지와 모든 짝수(홀수) 페이지 + + + Every other page + 모든 짝수(홀수) 페이지 + + + Selected pages + 선택된 페이지 + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Ctrl+Click / Shift+Click 으로 여러 페이지를 선택 가능합니다 + + + Every other selected page + 선택된 모든 짝수(홀수) 페이지 + + + The current page will be included. + 현재 페이지도 포함됩니다. + page_split::UnremoveButton @@ -2775,6 +3686,67 @@ You should remove them from the project. 삭제한 페이지 복구하기 + + select_content::ApplyDialog + + Select Content + 컨텐츠 선택 + + + Options + 옵션 + + + Apply page box + 페이지 박스 적용 + + + Apply content box + 컨텐츠 박스 적용 + + + Apply to + 적용하기 + + + This page only (already applied) + 이 페이지만 (이미 적용되어 있음) + + + All pages + 모든 페이지 + + + This page and the following ones + 이 페이지와 다음 페이지 + + + This page and the following every other page + All odd or even pages, depending on the current page being odd or even. + 이 페이지와 모든 짝수(홀수) 페이지 + + + Every other page + All odd or even pages, depending on the current page being odd or even. + 모든 짝수(홀수) 페이지 + + + Selected pages + 선택된 페이지 + + + Use Ctrl+Click / Shift+Click to select multiple pages. + Ctrl+Click / Shift+Click 으로 여러 페이지를 선택 가능합니다 + + + Every other selected page + 선택된 모든 짝수(홀수) 페이지 + + + The current page will be included. + 현재 페이지도 포함됩니다. + + select_content::Filter @@ -2833,4 +3805,55 @@ You should remove them from the project. 컨텐츠 박스 제거하기 + + select_content::OptionsWidget + + Form + + + + Page Box + 페이지 박스 + + + Disable + 비활성화 + + + Auto + 자동 + + + Manual + 수동 + + + Options + 옵션 + + + Shift with corners while they are in black. + 검은색 테두리를 옮기기 + + + Fine Tune Page Corners + 페이지 테두리 깔끔하게 자르기 + + + Width + + + + Height + 높이 + + + Content Box + 컨텐츠 박스 + + + Apply to ... + 적용하기 + + diff --git a/src/translations/scantailor_pl.ts b/src/translations/scantailor_pl.ts index 83ebf66bd..c335b3165 100644 --- a/src/translations/scantailor_pl.ts +++ b/src/translations/scantailor_pl.ts @@ -105,7 +105,7 @@ ColorPickupInteraction - + Click on an area to pick up its color, or ESC to cancel. Kliknij na obszar, aby pobrać jego kolor lub naciśnij klawisz ESC, aby to pominąć. @@ -145,17 +145,17 @@ - - - - - - - - - - - + + + + + + + + + + + ... @@ -171,7 +171,7 @@ - + Mode Tryb @@ -181,555 +181,573 @@ Układ strony - - + + Deskew Obróć - - - - - + + + + + Auto Automatyczny - - - - + + + + Manual Ręczny - + Select Content Wybierz zawartość - + Page Box Obszar strony - - + + Disable Wyłącz - - + + Options Opcje - + Shift with corners while they are in black. Dopasuj krawędzie do czarnego obszaru. - + Fine Tune Page Corners Dopasuj krawędzie strony - + Width Szerokość - + Height Wysokość - + Content Box Obszar zawartości - - + + Margins Marginesy - + Auto Margins Automatyczne marginesy - + Top Górny - + Right Prawy - + Left Lewy - + Bottom Dolny - + Alignment Wyrównanie - + + Horizontal mode: + + + + + Vertical mode: + + + + + Auto auto Automatyczny - + + Manual manual Ręczny - + + Original original Orginalnie - Auto aligning - Automatyczne wyrównywanie + Automatyczne wyrównywanie - Enable horizontal - Włącz poziome + Włącz poziome - Enable vertical - Włącz pionowe + Włącz pionowe - + Match size with other pages Dopasuj rozmiar do pozostałych stron - + Output Wyjście - + Normalize illumination before binarization. Normalizuj oświetlenie przed binaryzacją. - + Equalize illumination (B&&W) Wyrównaj oświetlenie (B&&W) - + Normalize illumination in color mode / in picture zones in mixed mode. Normalizuj oświetlenia w trybie kolorowym / w strefach obrazu w trybie mieszanym. - + Equalize illumination (Color) Wyrównaj oświetlenie (kolor) - + Savitzky-Golay smoothing Wygładzanie Savitzky-Golay - + Morphological smoothing Wygładzanie morfologiczne - + Filling Wypełnianie - + Color: Kolor: - + Color operations Operacje kolorystyczne - Split the image into color segments and colorize mask. - Podziel obraz na segmenty kolorów i pokoloruj maskę B&W. + Podziel obraz na segmenty kolorów i pokoloruj maskę B&W. - + Color segmentation Segmentacja kolorów - + R - + Red component adjustment. A negative value means the segmenter will be more sensitive to red and vice versa for a positive one. Ustawienie czerwonego elementu. Wartości ujemne wskazują, że segment będzie bardziej wrażliwy na kolor czerwony i odwrotnie w przypadku wartości dodatnich. - + G - + Green component adjustment. A negative value means the segmenter will be more sensitive to green and vice versa for a positive one. Ustawienie zielonego elementu. Wartości ujemne wskazują, że segment będzie bardziej wrażliwy na kolor zielony i odwrotnie w przypadku wartości dodatnich. - + B - + Blue component adjustment. A negative value means the segmenter will be more sensitive to blue and vice versa for a positive one. Ustawienie niebieskiego elementu. Wartości ujemne wskazują, że segment będzie bardziej wrażliwy na kolor niebieski i odwrotnie w przypadku wartości dodatnich. - + Reduce noise: Redukcja szumów: - + Reduce the number of colors of the output image by grouping similar colors. Zmniejsz liczbę kolorów na obrazie wyjściowym, grupując podobne kolory. - + Posterize Posteryzuj - + Level: Poziom: - + Lower value means lower count of colors in the output image, values between 2 and 6 inclusive guarantee an indexed image. Niższa wartość oznacza mniej kolorów na obrazie wyjściowym, wartości 2 i 6 włącznie gwarantują obraz indeksowany. - + Normalize Normalizuj - + Make dark and light gray gradients black and white respectively. Twórz odpowiednio ciemne i jasne odcienie szarości czerni i bieli. - + Force b&&w Wymusz B&&W - + Threshold Próg - + Method: Metoda: - + 0 - + Thinner Cieńsze - + Thicker Grubsze - + Coef: Współczynnik: - - + + The dimensions of a pixel neighborhood to consider. Rozmiar obszaru z sąsiadującymi pikselami do obliczeń. - - + + Window size: Rozmiar okna: - + Default value is 0.34. Wartość domyślna — 0.34. - + The minimum possible gray level that can be made white. Minimalny poziom szarości, który można zmienić na biały. - + Upper Bound: Górna granica: - + Lower bound: Dolna granica: - + The maximum possible gray level that can be made black. Maksymalny poziom szarości, który można zmienić na czarny. - + Coeff: Współczynnik: - + Default value is 0.3. Wartość domyślna — 0.3. - + Picture Shape Forma zdjęć - + Sensitivity (%): Wrażliwość (%): - + Higher search sensivity Wyższa czułość wyszukiwania - + Output Resolution (DPI) Rozdzielczość wyjściowa (DPI) - + Splitting Podział - + Split output Podział wyjścia - + B&&W foreground Pierwszy plan B&&W - + Save the original background of the foreground layer. Zapisz oryginalne tło pierwszego planu. - + Original background Oryginalne tło - + Color foreground Kolor pierwszego planu - - Despeckling + + Despeckling Usuwanie plam - + Dewarping Prostowanie - + Post deskew Po rotacji - + Depth perception Percepcja głębi - + Black and White Czarno-biały - + Color / Grayscale Kolor / szary - + Mixed Mieszany - + Background Tło - + White Biały + Black + + + + Otsu - + Sauvola - + Wolf - - + + Off Wyłączone - + Free Luźne - + Rectangular Prostokątny - - - + + + Custom Własne - + Marginal Wokół krawędzi - + Default Domyślne - + Source Źródło - - - - - + + + + + Error Błąd - + Error loading the profile. Błąd ładowania profilu. - + The name conflicts with a default profile name. Please enter a different name. Ta nazwa jest w konflikcie z domyślną nazwą profilu. Wpisz inną nazwę. - + Error saving the profile. Błąd podczas zapisywania profilu. - + Error deleting the profile. Błąd podczas usuwania profilu. - + Fill offcut Wypełnij wycięcie - + Fill margins Wypełnij marginesy - + + Split the image into color segments and colorize b&w mask. + Podziel obraz na segmenty kolorów i pokoloruj maskę B&W. + + + Despeckle Usuń plamy - Mode: - Tryb: + Tryb: - + The profile file is not compatible with the current application version. Remove? Plik profilu nie jest zgodny z bieżącą wersją aplikacji. Usunąć? @@ -737,7 +755,7 @@ DragHandler - + Unrestricted dragging is possible by holding down the Shift key. Swobodne przesuwanie jest dostępne poprzez przytrzymanie klawisza Shift. @@ -788,13 +806,13 @@ Zastosuj - + Need Fixing Wymagające naprawy - - + + All Pages Wszystkie strony @@ -814,7 +832,7 @@ DPI jest za małe dla tego rozmiaru piksela. Taka kombinacja może prowadzić do błędów przepełnienia pamięci. - + %1 (page %2) %1 (strona %2) @@ -822,7 +840,7 @@ ImageViewBase - + Use the mouse wheel or +/- to zoom. When zoomed, dragging is possible. Użyj kółka myszy lub +/-, aby powiększyć. W większym widoku dostępne jest przeciąganie i upuszczanie. @@ -830,31 +848,35 @@ InteractiveXSpline - + Click to create a new control point. Kliknij, aby utworzyć nowy punkt kontrolny. - + This point can be dragged. Hold Ctrl or Shift to drag along axes. Ten punkt można przesuwać. Przytrzymaj Ctrl lub Shift, aby przeciągać wzdłuż osi. - + + Drag this point or delete it by pressing D key. + + + Drag this point or delete it by pressing Del or D. - Przesuń ten punkt lub usuń go naciskając klawisz Del albo D. + Przesuń ten punkt lub usuń go naciskając klawisz Del albo D. LoadFileTask - + The following file could not be loaded: %1 Plik nie został załadowany: %1 - + The following file doesn't exist:<br>%1<br><br>Use the <a href="#relink">Relinking Tool</a> to locate it. Następujący plik nie istnieje:<br>%1<br><br>Użyj <a href="#relink">Relinking Tool</a>, aby go zlokalizować. @@ -915,204 +937,266 @@ Trzymaj bieżącą stronę w widoku. - + + Navigate through selected pages only. + + + + + Magnify thumbnails. (Ctrl++) + + + + + Diminish thumbnails. (Ctrl+-) + + + + + Go To Page... (Ctrl+G) + + + + + Enable multi page selection mode. + + + + + Single/multi column display. + + + + + Sorting order. + + + + + Highlight deviation. + + + + Filters Filtry - + Debug Mode Tryb debugowania - - + + Save Project Zapisz projekt - + Save Project As ... Zapisz projekt jako... - - + + Next Page Następna strona - - + + Previous Page Poprzednia strona - + New Project ... Nowy projekt... - + Open Project ... Otwórz projekt... - + Close Project Zamknij projekt - + Quit Wyjdź - + Settings ... Ustawienia... - + First Page Pierwsza strona - + Last Page Ostatnia strona - + About O programie - + Fix DPI ... Napraw DPI... - + Relinking ... Relinking... - - - - - - + + + + + + Switch filter to orientation Idź do orientacji - + Switch filter to split pages Przejdź do dzielenia stron - + Switch filter to deskew Przejdź do obracania - + Switch filter to select content Przejdź do wybierania zawartości - + Switch filter to margins Przejdź do marginesów - + Switch filter to output Przejdź do wyjścia - + Pixels Piksele - + Millimetres Milimetry - + Inches Cale - + Centimetres Centymetry - + Default parameters ... Wartości domyślne... - + + + Go To Page + + + + + Magnify thumbnails + + + + + Diminish thumbnails + + + + + + Reload current page + + + + Stop batch processing Zatrzymaj przetwarzanie wsadowe - + Save the project? Zapisać projekt? - + Insert before ... Wstaw przed... - + Insert after ... Wstaw po... - + Remove from project ... Usuń z projektu... - + Insert here ... Wstaw tutaj... - - + + Scan Tailor Projects Projekty Scan Tailor - + Open Project Otwórz projekt - - - - + + + + Error Błąd - + Unable to open the project file. Nie można otworzyć pliku projektu. - + The project file is broken. Plik projektu jest uszkodzony. @@ -1129,76 +1213,80 @@ To determine it, run batch processing at "Select Content" or "Mar Aby je zdefiniować, uruchom przetwarzanie wsadowe na "Wybierz zawartość' lub "Marginesy". - + Unnamed Bez nazwy - + %2 - ScanTailor Advanced [%1bit] - - + + Error saving the project file! Błąd podczas zapisywania pliku! - + Files to insert Pliki do dodania - + Images not in project (%1) Obrazy nie znajdujące się w projekcie (%1) - + Skip failed files Pomiń błędne pliki - + Remove Usuń - + + Enter the page number: + + + + Use Home, End, PgUp/Q, PgDown/W to navigate between pages or Shift+PgUp/Q and Shift+PgDown/W to navigate between selected ones. Alt+Wheel - scale thumbnails. Użyj klawiszy Home, End, PgUp/Q, PgDown/W, aby poruszać się między stronami lub Shift+PgUp/Q i Shift+PgDown/W dla zaznaczonych. Alt+kółko_myszy do skalowania miniatur. - - - - + + + + Previous Selected Page Poprzednia zanaczona strona - - - - + + + + Next Selected Page Następna zaznaczona strona - + Previous page. Poprzednia strona. - + Next page. Następna strona. - Filter selected pages only. - Tylko wybrane strony. + Tylko wybrane strony. @@ -1319,17 +1407,17 @@ Aby je zdefiniować, uruchom przetwarzanie wsadowe na "Wybierz zawartość& Pamiętaj, że chociaż program Scan Tailor próbuje poradzić sobie z sytuacjami braku pamięci, aby umożliwić Ci zapisanie projektu, nie zawsze jest to możliwe. Tym razem wszystko się udało, ale następnym razem program może po prostu ulec awarii. - + Scan Tailor Projects Projekty Scan Tailor - + Error Błąd - + Error saving the project file! Błąd podczas zapisywania projektu! @@ -1343,7 +1431,7 @@ Aby je zdefiniować, uruchom przetwarzanie wsadowe na "Wybierz zawartość& - + Input Directory Katalog wejściowy @@ -1355,7 +1443,7 @@ Aby je zdefiniować, uruchom przetwarzanie wsadowe na "Wybierz zawartość& - + Output Directory Katalog wyjściowy @@ -1366,12 +1454,12 @@ Aby je zdefiniować, uruchom przetwarzanie wsadowe na "Wybierz zawartość& - + Select All Wybierz wszystko - + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> @@ -1382,7 +1470,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dodaj wybrane pliki do projektu.</p></body></html> - + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> @@ -1393,67 +1481,67 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Usuń wybrane pliki z projektu.</p></body></html> - + Files In Project Pliki w projekcie - + Right to left layout (for Hebrew and Arabic) System pisania od prawej do lewej (dla języka hebrajskiego lub arabskiego) - + Fix DPIs, even if they look OK Napraw DPI, nawet jeśli wygląda normalnie - - - + + + + - - + Error Błąd - + No files in project! Brak plików w projekcie! - + Input directory is not set or doesn't exist. Katalog wejściowy nie jest ustawiony lub nie istnieje. - + Input and output directories can't be the same. Katalogi wejściowe i wyjściowe nie mogą być identyczne. - + Create Directory? Utworzyć katalog? - + Output directory doesn't exist. Create it? Katalog wyjściowy nie istnieje. Utworzyć go? - + Unable to create output directory. Nie można utworzyć katalogu wyjściowego. - + Output directory is not set or doesn't exist. Katalog wyjściowy nie jest ustawiony lub nie istnieje. - + Some of the files failed to load. Either we don't support their format, or they are broken. You should remove them from the project. @@ -1465,18 +1553,18 @@ Powinieneś usunąć je z projektu. ProjectOpeningContext - - + + Error Błąd - + The project file is not compatible with the current application version. Plik projektu nie jest zgodny z bieżącą wersją aplikacji. - + Unable to interpret the project file. Nie można zinterpretować pliku projektu. @@ -1503,6 +1591,21 @@ Powinieneś usunąć je z projektu. in + + + Canceling multi page selection + + + + + %1 pages selection are going to be canceled. Continue? + + + + + Don't show this message again. + + RelinkingDialog @@ -1522,17 +1625,17 @@ Powinieneś usunąć je z projektu. - + Substitution File for %1 Plik zastępczy dla %1 - + Substitution Directory for %1 Katalog zastępczy dla %1 - + This change would merge several files into one. Ta zmiana połączy kilka plików w jeden. @@ -1583,46 +1686,51 @@ Powinieneś usunąć je z projektu. Automatyczne zapisywanie bieżącego projektu - + + Show question on canceling multi page selection + + + + Processing Przetwarzanie - + Deviation Odchylenie - + Highlight the thumbnails of pages with high deviation Podświetl strony z dużym odchyleniem - + Params Parametry - + Select content: Wybierz zawartość: - - - + + + Deviation multiplier: a higher value means lower sensivity. Współczynnik odchylenia: wyższa wartość oznacza mniejszą czułość. - + Margins: Marginesy: - - - + + + The minimum deviation to be highlighted. Podkreśl minimalne odchylenie @@ -1637,70 +1745,70 @@ Powinieneś usunąć je z projektu. Język: - + Saving Zapisywanie - + B&W Compression: Kompresja B&W: - + Color Compression: Kompresja kolorów: - + Your hardware / driver don't provide the necessary features Twój sprzęt / sterownik nie obsługuje tej funkcji. - + Dark Ciemny - + Light Jasny - - + + None Bez kompresji - - + + LZW - - + + Deflate - + CCITT G4 - + JPEG - + Information Informacja - + ScanTailor need to be restarted to apply the color scheme changes. Aby zastosować schemat kolorów, uruchom ponownie aplikację. @@ -1735,32 +1843,32 @@ Powinieneś usunąć je z projektu. Rozmiar miniatury w widoku. Wartość domyślna - 250. - + White on black detection Definicja bieli na czerni - + Auto detect pages with light content on dark background. The corrections to all the auto algorithms are made for such pages. Automatycznie wykrywaj strony o jasnej zawartości na ciemnym tle, aby dostosować wszystkie automatyczne algorytmy. - + Auto detect light content on dark background Automatyczne wykrywanie jasnej zawartości na ciemnym tle - + Whether to use auto detection at the output stage. The wrong result can be changed manually in the output filter options. Określa, czy zastosować automatyczne wykrywanie na etapie wyjściowym. Zły wynik można zmienić ręcznie w opcjach filtra wyjściowego. - + Use auto detection at the output stage Użyj automatycznego wykrywania na etapie wyjściowym - + Native Orginalny @@ -1770,7 +1878,7 @@ Powinieneś usunąć je z projektu. Wyświetlanie miniatur w jednej kolumnie - + Deskew: Obróć: @@ -1778,7 +1886,7 @@ Powinieneś usunąć je z projektu. StageListView - + Launch batch processing Uruchom przetwarzanie wsadowe @@ -1792,56 +1900,74 @@ Powinieneś usunąć je z projektu. + Zone creation mode. + + + + + The type of a new zone created. + + + + Mouse position. Pozycja kursora. - + Mouse position relative to page. Pozycja myszy względem strony. - + + Image size. + + + + + Image size in current units. + + + Physical size. - Fizyczny rozmiar. + Fizyczny rozmiar. - Physical size of image. - Fizyczny rozmiar obrazu. + Fizyczny rozmiar obrazu. - + Page number. Numer strony. - + Position of the selected page in current order. Pozycja wybranej strony w bieżącej kolejności. - + Page information. Informacje o stronie. - + Page name and type. Nazwa i typ strony. - + p. %1 / %2 str. %1 / %2 - + [L] - + [R] @@ -1868,7 +1994,7 @@ Powinieneś usunąć je z projektu. ThumbnailSequence - + %1 (page %2) %1 (strona %2) @@ -1876,12 +2002,12 @@ Powinieneś usunąć je z projektu. ZoneContextMenuInteraction - + Delete Usuń - + Properties Właściwości @@ -1889,63 +2015,75 @@ Powinieneś usunąć je z projektu. ZoneCreationInteraction - + Click to finish this rectangular zone. ESC to cancel. Kliknij, aby zakończyć ten prostokątny obszar. ESC, aby anulować. - + Click to finish this zone. ESC to cancel. Kliknij, aby zakończyć tę strefę. ESC, aby anulować. - + Connect first and last points to finish this zone. ESC to cancel. Połącz pierwszy i ostatni punkt, aby ukończyć tę strefę. ESC, aby anulować. - + + Use Z and X keys to switch zone creation mode. ESC to cancel. + + + Hold Ctrl to create a rectangular zone or Shift+Alt+LMB to use lasso mode. ESC to cancel. - Przytrzymaj Ctrl, aby utworzyć prostokątną strefę lub Shift+Alt+LPM, aby użyć trybu lasso. ESC, aby anulować. + Przytrzymaj Ctrl, aby utworzyć prostokątną strefę lub Shift+Alt+LPM, aby użyć trybu lasso. ESC, aby anulować. ZoneDefaultInteraction - Drag the vertex. Hold Ctrl to make the vertex angle right. - Przeciągnij wierzchołek. Przytrzymaj Ctrl, aby utworzyć kąt prosty. + Przeciągnij wierzchołek. Przytrzymaj Ctrl, aby utworzyć kąt prosty. + + + + Drag the vertex. Hold Ctrl to make the vertex angle right. Press D to delete the vertex. + - + Click to create a new vertex here. Kliknij tutaj, aby utworzyć nowy wierzchołek. - + Right click to edit zone properties. Hold Shift to drag the zone or Shift+Ctrl to copy. Press Del to delete this zone. Kliknij prawym przyciskiem myszy, aby edytować właściwości strefy. Przytrzymaj Shift, aby przeciągnąć strefę lub Shift+Ctrl, aby skopiować. Naciśnij Del, aby usunąć strefę. - + Hold left mouse button to drag the zone. Przytrzymaj lewy przycisk myszy, aby przeciągnąć strefę. - + Hold left mouse button to copy and drag the zone. Przytrzymaj lewy przycisk myszy, aby skopiować i przeciągnąć strefę. - + + Click to start creating a new zone. Ctrl+Alt+Click to copy the latest created zone. Use Z, X and C keys to switch zone creation mode. + + + Click to start creating a new zone. Use Ctrl+Alt+Click to copy the latest created zone. - Kliknij, aby rozpocząć tworzenie nowej strefy. Użyj Ctrl+Alt+Kliknij, aby skopiować ostatnio utworzoną strefę. + Kliknij, aby rozpocząć tworzenie nowej strefy. Użyj Ctrl+Alt+Kliknij, aby skopiować ostatnio utworzoną strefę. ZoneDragInteraction - + Release left mouse button to finish dragging. Zwolnij lewy przycisk myszy, aby zakończyć przeciąganie. @@ -1953,12 +2091,12 @@ Powinieneś usunąć je z projektu. ZoneVertexDragInteraction - + Merge these two vertices. Połącz te dwa wierzchołki. - + Move the vertex to one of its neighbors to merge them. Przesuń wierzchołek do jednego z sąsiadów, aby je scalić. @@ -1996,7 +2134,7 @@ Powinieneś usunąć je z projektu. Every other page All odd or even pages, depending on the current page being odd or even. - Wszystkie strony nieparzyste lub parzyste, w zależności od bieżącej strony nieparzystej lub parzystej. + Wszystkie strony nieparzyste lub parzyste, w zależności od bieżącej strony nieparzystej lub parzystej. Co druga strona @@ -2023,17 +2161,17 @@ Powinieneś usunąć je z projektu. deskew::Filter - + Natural order Kolejność standardowa - + Order by decreasing deviation Sortuj według malejącego odchylenia - + Deskew Obróć @@ -2041,12 +2179,12 @@ Powinieneś usunąć je z projektu. deskew::ImageView - + Use Ctrl+Wheel to rotate or Ctrl+Shift+Wheel for finer rotation. Użyj Ctrl+kółko_myszy, aby obracać lub Ctrl+Shift+kółko_myszy, aby uzyskać dokładniejsze obracanie. - + Drag this handle to rotate the image. Pociągnij ten uchwyt, aby obrócić obraz. @@ -2054,7 +2192,7 @@ Powinieneś usunąć je z projektu. deskew::OptionsWidget - + Apply Deskew Zastosuj obrócenie @@ -2149,7 +2287,7 @@ Powinieneś usunąć je z projektu. fix_orientation::Filter - + Fix Orientation Popraw orientację @@ -2297,24 +2435,24 @@ Powinieneś usunąć je z projektu. output::ChangeDpiDialog - + Custom Własne - - + + Error Błąd - + DPI is not set. DPI nie jest ustawione. - + DPI is too low! DPI jest za niskie! @@ -2367,7 +2505,7 @@ Powinieneś usunąć je z projektu. output::FillZoneEditor - + Pick color Wybierz kolor @@ -2375,17 +2513,17 @@ Powinieneś usunąć je z projektu. output::Filter - + Output Wyjście - + Natural order Kolejność standardowa - + Order by completeness Sortuj według postępu @@ -2393,52 +2531,57 @@ Powinieneś usunąć je z projektu. output::OptionsWidget - + Black and White Czarno-biały - + Color / Grayscale Kolor / szary - + Mixed Mieszany - + Otsu - + Sauvola - + Wolf - + Background Tło - + White Biały - + + Black + + + + Free Luźne - + Rectangular Prostokątny @@ -2458,33 +2601,33 @@ Powinieneś usunąć je z projektu. Zastosuj percepcję głębi - - + + Off Wyłączone - + Auto Automatyczne - + Manual Ręcznie - + Marginal Wokół krawędzi - + deskew disabled Obracanie wyłączone - + Apply Processing Settings Zastosuj ustawienia przetwarzania @@ -2754,7 +2897,7 @@ Powinieneś usunąć je z projektu. Prostowanie - + deskew Obróć @@ -2836,7 +2979,7 @@ Powinieneś usunąć je z projektu. output::TabbedImageView - + Use Ctrl+1..5 to switch the tabs. Użyj Ctrl+1..5, aby przełączać karty. @@ -2844,37 +2987,37 @@ Powinieneś usunąć je z projektu. output::Task::UiUpdater - + Picture zones are only available in Mixed mode. Strefy obrazu są dostępne tylko w trybie mieszanym. - + Despeckling can't be done in Color / Grayscale mode. Usuwanie plam nie odbywa się w trybie "Kolor / Szary". - + Output Wyjście - + Picture Zones Strefy obrazu - + Fill Zones Strefy wypełnienia - + Dewarping Prostowanie - + Despeckling Usuwanie plam @@ -2894,7 +3037,7 @@ Powinieneś usunąć je z projektu. Window size: - Rozmiar okna: + Rozmiar okna: @@ -2985,27 +3128,27 @@ Powinieneś usunąć je z projektu. page_layout::Filter - + Natural order Kolejność standardowa - + Order by increasing width Rosnąco według szerokości - + Order by increasing height Rosnąco według wysokości - + Order by decreasing deviation Sortuj według malejącego odchylenia - + Margins Marginesy @@ -3013,47 +3156,47 @@ Powinieneś usunąć je z projektu. page_layout::ImageView - + Resize margins by dragging any of the solid lines. Zmień rozmiar marginesów, przeciągając dowolne linie ciągłe. - + Hold left mouse button to drag the page content. Przytrzymaj lewy przycisk myszy, aby przeciągnąć zawartość strony. - + Release left mouse button to finish dragging. Zwolnij lewy przycisk myszy, aby zakończyć przeciąganie. - + Add a horizontal guide Dodaj poziomą prowadnicę - + Add a vertical guide Dodaj pionową prowadnicę - + Remove all the guides Usuń wszystkie prowadnice - + Remove this guide Usuń wszystkie prowadnice - + Show hard margins rectangle Pokaż prostokąt z twardymi margniesami - + Drag the guide. Przesuń prowadnice. @@ -3061,12 +3204,12 @@ Powinieneś usunąć je z projektu. page_layout::OptionsWidget - + Apply Margins Zastosuj marginesy - + Apply Alignment Zastosuj wyrównywanie @@ -3088,15 +3231,15 @@ Powinieneś usunąć je z projektu. - - - - - - - - - + + + + + + + + + ... @@ -3122,7 +3265,7 @@ Powinieneś usunąć je z projektu. - + Apply To ... Zastosuj do... @@ -3137,50 +3280,72 @@ Powinieneś usunąć je z projektu. Dopasuj rozmiar do pozostałych stron - + + Horizontal mode: + + + + + Vertical mode: + + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Right-click</span><span style=" font-size:7pt;"> to create/remove guides from the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> called.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Right-click</span><span style=" font-size:7pt;"> on a guide to delete that guide from the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> called.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Ctrl+Alt+LMB</span><span style=" font-size:7pt;"> - drag the guide under the cursor.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Shift/Ctrl+LMB</span><span style=" font-size:7pt;"> on the content rectangle - drag the page content. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;"> pressed to restrict moving along the horizontal axis only or </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> for the vertical one. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;"> for usual dragging.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Double-click</span><span style=" font-size:7pt;"> on content - automatically attach that content to the nearest guide. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;"> pressed to select vertical guides only or </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> for horizontal ones. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;"> to attach that to both the nearest vertical and horizontal guides.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣</span><span style=" font-size:7pt;"> Use the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> to enable/disable showing the hard margins rectangle.</span></p></body></html> + + + Mode: - Tryb: + Tryb: - + + Auto auto Automatyczny - + + Manual manual Ręczny - + + Original original Orginalnie - Auto aligning - Automatyczne wyrównywanie + Automatyczne wyrównywanie - Enable horizontal - Włącz poziome + Włącz poziome - Enable vertical - Włącz pionowe + Włącz pionowe - + Guides Help Pomoc - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -3191,7 +3356,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Shift/Ctrl+LMB</span><span style=" font-size:7pt;"> on the content rectangle - drag the page content. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;"> pressed to restrict moving along the horizontal axis only or </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> for the vertical one. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;"> for usual dragging.</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Double-click</span><span style=" font-size:7pt;"> on content - automatically attach that content to the nearest guide. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;"> pressed to select vertical guides only or </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> for horizontal ones. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;"> to attach that to both the nearest vertical and horizontal guides.</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣</span><span style=" font-size:7pt;"> Use the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> to enable/disable showing the hard margins rectangle.</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> @@ -3224,7 +3389,7 @@ p, li { white-space: pre-wrap; } page_split::ImageView - + Drag the line or the handles. Przeciągnij linię lub uchwyty. @@ -3232,15 +3397,15 @@ p, li { white-space: pre-wrap; } page_split::OptionsWidget - - - + + + Set manually Ustaw ręcznie - - + + Auto detected Wykryto automatycznie @@ -3255,27 +3420,27 @@ p, li { white-space: pre-wrap; } Rodzaj cięcia - + ? - + Change ... Zmień... - + Split Line Linia podziału - + Auto Automatyczna - + Manual Ręczna @@ -3366,7 +3531,7 @@ p, li { white-space: pre-wrap; } page_split::UnremoveButton - + Restore removed page. Przywróć usuniętą stronę. @@ -3449,27 +3614,27 @@ p, li { white-space: pre-wrap; } select_content::Filter - + Natural order Kolejność standardowa - + Order by increasing width Rosnąco według szerokości - + Order by increasing height Rosnąco według wysokości - + Order by decreasing deviation Sortuj według malejącego odchylenia - + Select Content Wybierz zawartość @@ -3477,43 +3642,43 @@ p, li { white-space: pre-wrap; } select_content::ImageView - + Use the context menu to enable / disable the content box. Hold Shift to drag a box. Use double-click on content to automatically adjust the content area. Użyj menu kontekstowego, aby włączyć / wyłączyć pole zawartości. Przytrzymaj Shift, aby przeciągnąć pole. Kliknij dwukrotnie zawartość, aby automatycznie dostosować obszar zawartości. - + Drag lines or corners to resize the content box. Przeciągnij linie lub narożniki, aby zmienić rozmiar pola zawartości. - + Drag lines or corners to resize the page box. Przeciągnij linie lub rogi, aby zmienić rozmiar obszaru strony. - + Hold left mouse button to drag the content box. Przytrzymaj lewy przycisk myszy, aby przeciągnąć obszar zawartości. - - + + Release left mouse button to finish dragging. Zwolnij lewy przycisk myszy, aby zakończyć przeciąganie. - + Hold left mouse button to drag the page box. Przytrzymaj lewy przycisk myszy, aby przeciągnąć obszar strony. - + Create Content Box Stwórz obszar zawartości - + Remove Content Box Usuń obszar zawartości diff --git a/src/translations/scantailor_pt.ts b/src/translations/scantailor_pt.ts index bb512d95a..130c81b2d 100644 --- a/src/translations/scantailor_pt.ts +++ b/src/translations/scantailor_pt.ts @@ -105,7 +105,7 @@ ColorPickupInteraction - + Click on an area to pick up its color, or ESC to cancel. Clique numa área para copiar a sua cor ou carregue na tecla ESC para cancelar. @@ -145,17 +145,17 @@ - - - - - - - - - - - + + + + + + + + + + + ... ... @@ -171,7 +171,7 @@ - + Mode Modo @@ -181,555 +181,569 @@ Esquema da Página - - + + Deskew Desenviesar - - - - - + + + + + Auto Automático - - - - + + + + Manual Manual - + Select Content Seleccionar o conteúdo - + Page Box Caixa de Página - - + + Disable Desabilitar - - + + Options Opções - + Shift with corners while they are in black. Mudar com os cantos enquanto estão a preto. - + Fine Tune Page Corners Ajuste Fino dos Cantos da Página - + Width Largura - + Height Altura - + Content Box Caixa de conteúdo - - + + Margins Margens - + Auto Margins Margens Automáticas - + Top Topo - + Right Direita - + Left Esquerda - + Bottom Base - + Alignment Alinhamento - + + Auto auto Automático - + + Manual manual Manual - + + Original original Original - Auto aligning - Alinhamento automático + Alinhamento automático - Enable horizontal - Habilitar na horizontal + Habilitar na horizontal - Enable vertical - Habilitar na vertical + Habilitar na vertical - + Match size with other pages Fazer corresponder o tamanho com outras páginas - + + Horizontal mode: + + + + + Vertical mode: + + + + Output Resultado Final - + Normalize illumination before binarization. Normalizar a iluminação antes de fazer a binarização. - + Equalize illumination (B&&W) Equalizar a iluminação (Preto e Branco) - + Normalize illumination in color mode / in picture zones in mixed mode. Normalizar a iluminação em modo colorido / nas zonas de imagem em modo misto. - + Equalize illumination (Color) Equalizar a iluminação (Cor) - + Savitzky-Golay smoothing Suavização Savitzky-Golay - + Morphological smoothing Suavização morfológica - + Filling Preenchimento - + Color: Cor: - + Color operations Operações de cor - + Split the image into color segments and colorize b&w mask. Dividir a imagem em segmentos de cor e colorir a máscara preto e &branco. - + Color segmentation Segmentação de cores - + R R - + Red component adjustment. A negative value means the segmenter will be more sensitive to red and vice versa for a positive one. Ajuste da componente Vermelha. Um valor negativo fará com que que o segmentador seja mais sensível ao vermelho. Um valor positivo fará com que que o segmentador seja menos sensível ao vermelho. - + G G - + Green component adjustment. A negative value means the segmenter will be more sensitive to green and vice versa for a positive one. Ajuste da componente Verde. Um valor negativo fará com que que o segmentador seja mais sensível ao verde. Um valor positivo fará com que que o segmentador seja menos sensível ao verde. - + B B - + Blue component adjustment. A negative value means the segmenter will be more sensitive to blue and vice versa for a positive one. Ajuste da componente Azul. Um valor negativo fará com que que o segmentador seja mais sensível ao azul. Um valor positivo fará com que que o segmentador seja menos sensível ao azul. - + Reduce noise: Reduzir o ruído: - + Reduce the number of colors of the output image by grouping similar colors. Reduz o número de cores da imagem de saída, agrupando cores semelhantes. - + Posterize Posterizar - + Level: Nível: - + Lower value means lower count of colors in the output image, values between 2 and 6 inclusive guarantee an indexed image. Um valor inferior significa menor contagem de cores na imagem de saída, valores entre 2 e 6 inclusive garantem uma imagem indexada. - + Normalize Normalizar - + Make dark and light gray gradients black and white respectively. Fazer gradientes cinza escuro e cinza claro respectivamente a preto e branco. - + Force b&&w Forçar a Preto e Branco - + Threshold Limite - + Method: Método: - + 0 0 - + Thinner Mais Fino - + Thicker Mais Grosso - + Coef: Coef: - - + + The dimensions of a pixel neighborhood to consider. As dimensões de uma vizinhança de pixels a considerar. - - + + Window size: Tamanho da janela: - + Default value is 0.34. O valor padrão é 0.34. - + The minimum possible gray level that can be made white. O nível mínimo de cinzento que pode fazer branco. - + Upper Bound: Limite superior: - + Lower bound: Limite inferior: - + The maximum possible gray level that can be made black. O nível máximo de cinzento que pode fazer preto. - + Coeff: Coef: - + Default value is 0.3. O valor padrão é 0.3. - + Picture Shape Forma da Imagem - + Sensitivity (%): Sensibilidade (%): - + Higher search sensivity Maior sensibilidade de pesquisa - + Output Resolution (DPI) Resolução do Resultado Final (DPI) - + Splitting Divisão - + Split output Dividir o Resultado Final - + B&&W foreground Fundo Preto e Branco - + Save the original background of the foreground layer. Guardar o plano de fundo original da camada de primeiro plano. - + Original background Fundo original - + Color foreground Cor do primeiro plano - + Despeckling Desfocar selectivamente (Despeckling) - + Dewarping Anti-deformação - + Post deskew Desenviesar posteriormente - + Depth perception Percepção de profundidade - + Black and White Preto e Branco - + Color / Grayscale Cor / Escala de Cinzentos - + Mixed Misturado - + Background Fundo - + White Branco + Black + + + + Otsu Otsu - + Sauvola Sauvola - + Wolf Wolf - - + + Off Desligado - + Free Livre - + Rectangular Rectangular - - - + + + Custom Personalizado - + Marginal Marginal - + Default Padrão - + Source Origem - - - - - + + + + + Error Erro - + Error loading the profile. Erro ao carregar o perfil. - + The name conflicts with a default profile name. Please enter a different name. O nome entra em conflito com um nome de perfil padrão. Por favor, insira um nome diferente. - + Error saving the profile. Erro ao guardar o perfil. - + Error deleting the profile. Erro ao excluir o perfil. - + Fill offcut Preencher o recorte - + Fill margins Preencher as margens - + Despeckle Desfoque Seletivo (Despeckle) - Mode: - Modo: + Modo: - + The profile file is not compatible with the current application version. Remove? O arquivo de perfil não é compatível com a versão atual do aplicativo. Apagar? @@ -737,7 +751,7 @@ DragHandler - + Unrestricted dragging is possible by holding down the Shift key. É possível arrastar sem restrições mantendo pressionada a tecla Shift. @@ -788,13 +802,13 @@ Aplicar - + Need Fixing Necessita Correcção - - + + All Pages Todas as Páginas @@ -814,7 +828,7 @@ DPI muito pequeno para esse tamanho de pixel. Tal combinação provavelmente levaria a erros de falta de memória. - + %1 (page %2) %1 (página %2) @@ -822,7 +836,7 @@ ImageViewBase - + Use the mouse wheel or +/- to zoom. When zoomed, dragging is possible. Use a roda do rato ou as teclas +/- para ampliar/reduzir. Quando ampliado/reduzido, o arrasto é possível. @@ -830,32 +844,36 @@ InteractiveXSpline - + Click to create a new control point. Clique para criar um novo ponto de controlo. - + This point can be dragged. Hold Ctrl or Shift to drag along axes. Este ponto pode ser arrastado. Pressione a tecla Ctrl ou Shift para arrastar ao longo dos eixos. - + + Drag this point or delete it by pressing D key. + + + Drag this point or delete it by pressing Del or D. - Arraste este ponto ou exclua-o pressionando a tecla Del ou a tecla D. + Arraste este ponto ou exclua-o pressionando a tecla Del ou a tecla D. LoadFileTask - + The following file could not be loaded: %1 O seguinte ficheiro não pôde ser carregado: %1 - + The following file doesn't exist:<br>%1<br><br>Use the <a href="#relink">Relinking Tool</a> to locate it. O ficheiro a seguir não existe: <br>%1 <br> <br> Use a <a href="#relink"> Ferramenta de re-conexão </a> para localizá-lo. @@ -916,204 +934,266 @@ Manter a página atual na vista. - + + Navigate through selected pages only. + + + + + Magnify thumbnails. (Ctrl++) + + + + + Diminish thumbnails. (Ctrl+-) + + + + + Go To Page... (Ctrl+G) + + + + + Enable multi page selection mode. + + + + + Single/multi column display. + + + + + Sorting order. + + + + + Highlight deviation. + + + + Filters Filtros - + Debug Mode Modo de Depuração - - + + Save Project Guardar o Projecto - + Save Project As ... Guardar o Projecto Como... - - + + Next Page Página Seguinte - - + + Previous Page Página Anterior - + New Project ... Criar um Projecto... - + Open Project ... Abrir um Projecto... - + Close Project Fechar o Projecto - + Quit Sair - + Settings ... Configurações... - + First Page Primeira Página - + Last Page Última Página - + About Acerca de - + Fix DPI ... Corrigir DPI... - + Relinking ... Re-conexão... - - - - - - + + + + + + Switch filter to orientation Mudar filtro para orientação - + Switch filter to split pages Mudar filtro para dividir as páginas - + Switch filter to deskew Mudar filtro para desenviesar - + Switch filter to select content Mudar filtro para seleccionar o conteúdo - + Switch filter to margins Mudar filtro para margens - + Switch filter to output Mudar filtro para resultado final - + Pixels Pixels - + Millimetres Milímetros - + Inches Polegadas - + Centimetres Centímetros - + Default parameters ... Parâmetros padrão ... - + + + Go To Page + + + + + Magnify thumbnails + + + + + Diminish thumbnails + + + + + + Reload current page + + + + Stop batch processing Parar o processamento em lote - + Save the project? Salvar o projecto? - + Insert before ... Inserir antes... - + Insert after ... Inserir depois... - + Remove from project ... Remover do projecto... - + Insert here ... Inserir aqui ... - - + + Scan Tailor Projects Projectos de Scan Tailor - + Open Project Abrir Projecto - - - - + + + + Error Erro - + Unable to open the project file. Não é possível abrir o ficheiro de projecto. - + The project file is broken. O ficheiro do projecto está danificado. @@ -1130,76 +1210,80 @@ To determine it, run batch processing at "Select Content" or "Mar Para determinar o tamanho da páginas, execute o processamento em lote em "Selecionar Conteúdo" ou em "Margens". - + Unnamed Sem nome - + %2 - ScanTailor Advanced [%1bit] %2 - Scan Tailor Advanced [%1bit] - - + + Error saving the project file! Erro ao guardar o ficheiro do projecto! - + Files to insert Arquivos a inserir - + Images not in project (%1) Imagens que não pertencem ao projeto (%1) - + Skip failed files Ignorar arquivos com falha - + Remove Eliminar - + + Enter the page number: + + + + Use Home, End, PgUp/Q, PgDown/W to navigate between pages or Shift+PgUp/Q and Shift+PgDown/W to navigate between selected ones. Alt+Wheel - scale thumbnails. Use as teclas Home, End, Page Up / Q, Page Down / W para navegar entre as páginas ou Shift + Page Up / Q e Shift + Page Down / W para navegar entre as páginas selecionadas. Use a tecla Alt e a Roda do Rato para modifica o tamanho das miniaturas. - - - - + + + + Previous Selected Page Página Anterior Selecionada - - - - + + + + Next Selected Page Página Seguinte Seleccionada - + Previous page. Página anterior. - + Next page. Página Seguinte. - Filter selected pages only. - Filtrar apenas as páginas seleccionadas. + Filtrar apenas as páginas seleccionadas. @@ -1319,17 +1403,17 @@ Para determinar o tamanho da páginas, execute o processamento em lote em " Tenha em atenção que nem sempre é possível o Scan Tailor identificar situações de falta de memória e dar-lhe a oportunidade de salvar seu projeto. Desta vez teve sucesso, mas da próxima vez que pode falhar. - + Scan Tailor Projects - + Projectos de Scan Tailor - + Error Erro - + Error saving the project file! Erro ao guardar o ficheiro do projecto! @@ -1343,7 +1427,7 @@ Para determinar o tamanho da páginas, execute o processamento em lote em " - + Input Directory Pasta de Entrada @@ -1355,7 +1439,7 @@ Para determinar o tamanho da páginas, execute o processamento em lote em " - + Output Directory Pasta de Resultado Final @@ -1366,12 +1450,12 @@ Para determinar o tamanho da páginas, execute o processamento em lote em " - + Select All Seleccionar Tudo - + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> @@ -1382,7 +1466,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Juntar os ficheiros seleccionados ao projecto.</p></body></html> - + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> @@ -1393,67 +1477,67 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Remover os ficheiros seleccionados o projecto.</p></body></html> - + Files In Project Ficheiros no Projecto - + Right to left layout (for Hebrew and Arabic) Escrita da direita para a esquerda (para hebraico e árabe) - + Fix DPIs, even if they look OK Corrigir os DPI, mesmo que pareçam correctos - - - + + + + - - + Error Erro - + No files in project! Não há ficheiros no projecto! - + Input directory is not set or doesn't exist. A pasta de entrada não foi definida ou não existe. - + Input and output directories can't be the same. As pastas de entrada e de resultado final não podem ser a mesma. - + Create Directory? Criar Pasta? - + Output directory doesn't exist. Create it? A pasta de resultado final não existe. Deseja criá-la? - + Unable to create output directory. Não é possível criar a pasta de resultado final. - + Output directory is not set or doesn't exist. A pasta de resultado final não foi definida ou não existe. - + Some of the files failed to load. Either we don't support their format, or they are broken. You should remove them from the project. @@ -1465,18 +1549,18 @@ Deve removê-los do projeto. ProjectOpeningContext - - + + Error Erro - + The project file is not compatible with the current application version. O ficheiro de projecto não é compatível com a versão atual do aplicativo. - + Unable to interpret the project file. Não é possível interpretar o ficheiro do projecto. @@ -1503,6 +1587,21 @@ Deve removê-los do projeto. in in + + + Canceling multi page selection + + + + + %1 pages selection are going to be canceled. Continue? + + + + + Don't show this message again. + + RelinkingDialog @@ -1522,17 +1621,17 @@ Deve removê-los do projeto. ... - + Substitution File for %1 Ficheiro de substituição para %1 - + Substitution Directory for %1 Pasta de substituição para%1 - + This change would merge several files into one. Esta alteração poderá fundir vários ficheiros em apenas um. @@ -1583,46 +1682,51 @@ Deve removê-los do projeto. Salvar automaticamente o projecto existente - + + Show question on canceling multi page selection + + + + Processing Em processamento - + Deviation Desvio - + Highlight the thumbnails of pages with high deviation Destacar as miniaturas de páginas com elevado desvio - + Params Parâmetros - + Select content: Seleccionar o conteúdo: - - - + + + Deviation multiplier: a higher value means lower sensivity. Multiplicador de desvio: um valor mais alto significa menor sensibilidade. - + Margins: Margens: - - - + + + The minimum deviation to be highlighted. O desvio mínimo a ser destacado. @@ -1637,70 +1741,70 @@ Deve removê-los do projeto. Língua: - + Saving A Guardar - + B&W Compression: Compressão em Preto e &Branco: - + Color Compression: Compensação de Cor: - + Your hardware / driver don't provide the necessary features O seu hardware / driver não fornece os recursos necessários - + Dark Escuro - + Light Claro - - + + None Nunhum(a) - - + + LZW LZW - - + + Deflate Esvaziar - + CCITT G4 CCITT G4 - + JPEG JPEG - + Information Informação - + ScanTailor need to be restarted to apply the color scheme changes. O ScanTailor precisa ser reiniciado para aplicar as alterações no esquema de cores. @@ -1735,32 +1839,32 @@ Deve removê-los do projeto. O tamanho da miniatura na visualização. O valor padrão é 250. - + White on black detection Detecção de braco em preto - + Auto detect pages with light content on dark background. The corrections to all the auto algorithms are made for such pages. Detectar automaticamente páginas com conteúdo leve em fundo escuro. As correções para todos os algoritmos automáticos são feitas para tais páginas. - + Auto detect light content on dark background Detectar automaticamente o conteúdo de luz em fundo escuro - + Whether to use auto detection at the output stage. The wrong result can be changed manually in the output filter options. Se usar a detecção automática na etapa de finalização e o resultado não for o esperado, então pode alterado manualmente as opções do filtro de saída. - + Use auto detection at the output stage Use a detecção automática no estágio de finalização - + Native Nativo @@ -1770,7 +1874,7 @@ Deve removê-los do projeto. Ver miniaturas em coluna simples - + Deskew: Desenviesar: @@ -1778,7 +1882,7 @@ Deve removê-los do projeto. StageListView - + Launch batch processing Iniciar o processamento em lotes @@ -1792,56 +1896,74 @@ Deve removê-los do projeto. + Zone creation mode. + + + + + The type of a new zone created. + + + + Mouse position. Posição do rato. - + Mouse position relative to page. Posição do rato relativamente à página. - + + Image size. + + + + + Image size in current units. + + + Physical size. - Tamanho real. + Tamanho real. - Physical size of image. - Tamanho real da imagem. + Tamanho real da imagem. - + Page number. Número da página. - + Position of the selected page in current order. Posição da página selecionada na ordem atual. - + Page information. Informação da página. - + Page name and type. Nome e tipo da página. - + p. %1 / %2 p. %1 / %2 - + [L] [E] - + [R] [D] @@ -1868,7 +1990,7 @@ Deve removê-los do projeto. ThumbnailSequence - + %1 (page %2) %1 (página %2) @@ -1876,12 +1998,12 @@ Deve removê-los do projeto. ZoneContextMenuInteraction - + Delete Apagar - + Properties Propriedades @@ -1889,63 +2011,75 @@ Deve removê-los do projeto. ZoneCreationInteraction - + Click to finish this rectangular zone. ESC to cancel. Clique para terminar esta zona retangular. Pressione a tecla ESC para cancelar. - + Click to finish this zone. ESC to cancel. Clique para terminar esta zona. Pressione a tecla ESC para cancelar. - + Connect first and last points to finish this zone. ESC to cancel. Ligue o primeiro e último pontos para terminar esta zona.Pressione a tecla ESC para cancelar. - + + Use Z and X keys to switch zone creation mode. ESC to cancel. + + + Hold Ctrl to create a rectangular zone or Shift+Alt+LMB to use lasso mode. ESC to cancel. - Pressione a tecla Ctrl para criar uma zona retangular ou as teclas Shift + Alt + Tecla Esquerda do Rato para usar o modo de laço. Pressione a tecla ESC para cancelar. + Pressione a tecla Ctrl para criar uma zona retangular ou as teclas Shift + Alt + Tecla Esquerda do Rato para usar o modo de laço. Pressione a tecla ESC para cancelar. ZoneDefaultInteraction - Drag the vertex. Hold Ctrl to make the vertex angle right. - Arraste o vértice. Pressione a tecla Ctrl para fazer o ângulo do vértice direito. + Arraste o vértice. Pressione a tecla Ctrl para fazer o ângulo do vértice direito. + + + + Drag the vertex. Hold Ctrl to make the vertex angle right. Press D to delete the vertex. + - + Click to create a new vertex here. Clique para criar um novo vértice aqui. - + Right click to edit zone properties. Hold Shift to drag the zone or Shift+Ctrl to copy. Press Del to delete this zone. Clique com o botão direito do rato para editar as propriedades da zona. Pressione a tecla Shift para arrastar a zona ou as teclas Shift + Ctrl para copiar. Pressione a tecla Del para excluir esta zona. - + Hold left mouse button to drag the zone. - + Hold left mouse button to copy and drag the zone. - + + Click to start creating a new zone. Ctrl+Alt+Click to copy the latest created zone. Use Z, X and C keys to switch zone creation mode. + + + Click to start creating a new zone. Use Ctrl+Alt+Click to copy the latest created zone. - Clique para começar a criar uma nova zona. Use as teclas Ctrl + Alt + Tecla Esquerda do Rato para copiar a última zona criada. + Clique para começar a criar uma nova zona. Use as teclas Ctrl + Alt + Tecla Esquerda do Rato para copiar a última zona criada. ZoneDragInteraction - + Release left mouse button to finish dragging. Solte o botão esquerdo do rato para finalizar o arrasto. @@ -1953,12 +2087,12 @@ Deve removê-los do projeto. ZoneVertexDragInteraction - + Merge these two vertices. Unir esses dois vértices. - + Move the vertex to one of its neighbors to merge them. Mova o vértice para um de seus vizinhos para os unir. @@ -2021,17 +2155,17 @@ Deve removê-los do projeto. deskew::Filter - + Natural order Ordem natural - + Order by decreasing deviation Ordenar por diminuição do desvio - + Deskew Desenviesar @@ -2039,12 +2173,12 @@ Deve removê-los do projeto. deskew::ImageView - + Use Ctrl+Wheel to rotate or Ctrl+Shift+Wheel for finer rotation. Use Ctrl + Roda do rato para rodar ou Ctrl + Shift + Roda do rato para uma rotação mais precisa. - + Drag this handle to rotate the image. Arraste essa alça para rodar a imagem. @@ -2052,7 +2186,7 @@ Deve removê-los do projeto. deskew::OptionsWidget - + Apply Deskew Aplicar Desenviesar @@ -2145,7 +2279,7 @@ Deve removê-los do projeto. fix_orientation::Filter - + Fix Orientation Corrigir Orientação @@ -2293,24 +2427,24 @@ Deve removê-los do projeto. output::ChangeDpiDialog - + Custom Personalizado - - + + Error Erro - + DPI is not set. O valor DPI não está definido. - + DPI is too low! O valor DPI é demasiado pequeno! @@ -2363,7 +2497,7 @@ Deve removê-los do projeto. output::FillZoneEditor - + Pick color Seleccionar a cor @@ -2371,17 +2505,17 @@ Deve removê-los do projeto. output::Filter - + Output Resultado Final - + Natural order Ordem natural - + Order by completeness Ordenar por completude @@ -2389,52 +2523,57 @@ Deve removê-los do projeto. output::OptionsWidget - + Black and White Preto e Branco - + Color / Grayscale Cor / Escala de Cinzentos - + Mixed Misturado - + Otsu Otsu - + Sauvola Sauvola - + Wolf Wolf - + Background Fundo - + White Branco - + + Black + + + + Free Livre - + Rectangular Rectangular @@ -2454,33 +2593,33 @@ Deve removê-los do projeto. Aplicar a percepção de profundidade - - + + Off Desligado - + Auto Automático - + Manual Manual - + Marginal Marginal - + deskew disabled desenviesar desabilitado - + Apply Processing Settings Aplicar Configurações de Processamento @@ -2750,7 +2889,7 @@ Deve removê-los do projeto. Anti-deformação - + deskew desenviesar @@ -2832,7 +2971,7 @@ Deve removê-los do projeto. output::TabbedImageView - + Use Ctrl+1..5 to switch the tabs. Use Ctrl + 1..5 para alternar entre abas. @@ -2840,37 +2979,37 @@ Deve removê-los do projeto. output::Task::UiUpdater - + Picture zones are only available in Mixed mode. As zonas de imagem só estão disponíveis no modo misto. - + Despeckling can't be done in Color / Grayscale mode. O desfoque selectivo não pode ser feito no modo Colorido / Escala de cinza. - + Output Resultado Final - + Picture Zones Zonas de Imagem - + Fill Zones Preencher Zonas - + Dewarping Anti-deformação - + Despeckling Desfoque Seletivo (Despeckle) @@ -2981,27 +3120,27 @@ Deve removê-los do projeto. page_layout::Filter - + Natural order Ordem natural - + Order by increasing width Ordenar por crescimento em largura - + Order by increasing height Ordenar por crescimento em altura - + Order by decreasing deviation Ordenar por diminuição do desvio - + Margins Margens @@ -3009,47 +3148,47 @@ Deve removê-los do projeto. page_layout::ImageView - + Resize margins by dragging any of the solid lines. Redimensione as margens arrastando qualquer uma das linhas sólidas. - + Hold left mouse button to drag the page content. Segure o botão esquerdo do rato para arrastar o conteúdo da página. - + Release left mouse button to finish dragging. Solte o botão esquerdo do rato para terminar de arrastar. - + Add a horizontal guide Inserir uma guia horizontal - + Add a vertical guide Inserir uma guia vertical - + Remove all the guides Eliminar todas as guias - + Remove this guide Eliminar esta guia - + Show hard margins rectangle Mostrar rectângulo nas margens fortes - + Drag the guide. Arrastar a guia. @@ -3057,12 +3196,12 @@ Deve removê-los do projeto. page_layout::OptionsWidget - + Apply Margins Aplicar Margens - + Apply Alignment Aplicar Alinhamento @@ -3084,15 +3223,15 @@ Deve removê-los do projeto. - - - - - - - - - + + + + + + + + + ... ... @@ -3118,7 +3257,7 @@ Deve removê-los do projeto. - + Apply To ... Aplicar a... @@ -3133,50 +3272,72 @@ Deve removê-los do projeto. Fazer corresponder o tamanho com outras páginas - + + Horizontal mode: + + + + + Vertical mode: + + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Right-click</span><span style=" font-size:7pt;"> to create/remove guides from the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> called.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Right-click</span><span style=" font-size:7pt;"> on a guide to delete that guide from the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> called.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Ctrl+Alt+LMB</span><span style=" font-size:7pt;"> - drag the guide under the cursor.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Shift/Ctrl+LMB</span><span style=" font-size:7pt;"> on the content rectangle - drag the page content. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;"> pressed to restrict moving along the horizontal axis only or </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> for the vertical one. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;"> for usual dragging.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Double-click</span><span style=" font-size:7pt;"> on content - automatically attach that content to the nearest guide. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;"> pressed to select vertical guides only or </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> for horizontal ones. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;"> to attach that to both the nearest vertical and horizontal guides.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣</span><span style=" font-size:7pt;"> Use the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> to enable/disable showing the hard margins rectangle.</span></p></body></html> + + + Mode: - Modo: + Modo: - + + Auto auto Automático - + + Manual manual Manual - + + Original original Original - Auto aligning - Alinhamento automático + Alinhamento automático - Enable horizontal - Habilitar na horizontal + Habilitar na horizontal - Enable vertical - Habilitar na vertical + Habilitar na vertical - + Guides Help Guias de Ajuda - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -3187,7 +3348,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Shift/Ctrl+LMB</span><span style=" font-size:7pt;"> on the content rectangle - drag the page content. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;"> pressed to restrict moving along the horizontal axis only or </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> for the vertical one. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;"> for usual dragging.</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Double-click</span><span style=" font-size:7pt;"> on content - automatically attach that content to the nearest guide. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;"> pressed to select vertical guides only or </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> for horizontal ones. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;"> to attach that to both the nearest vertical and horizontal guides.</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣</span><span style=" font-size:7pt;"> Use the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> to enable/disable showing the hard margins rectangle.</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> @@ -3220,7 +3381,7 @@ p, li { white-space: pre-wrap; } page_split::ImageView - + Drag the line or the handles. Arraste a linha ou as alças. @@ -3228,15 +3389,15 @@ p, li { white-space: pre-wrap; } page_split::OptionsWidget - - - + + + Set manually Ajustar manualmente - - + + Auto detected Detecção automática @@ -3251,27 +3412,27 @@ p, li { white-space: pre-wrap; } Esquema da Página - + ? ? - + Change ... Mudar... - + Split Line Dividir Linha - + Auto Automático - + Manual Manual @@ -3362,7 +3523,7 @@ p, li { white-space: pre-wrap; } page_split::UnremoveButton - + Restore removed page. Restaurar a página eliminada. @@ -3445,27 +3606,27 @@ p, li { white-space: pre-wrap; } select_content::Filter - + Natural order Ordem natural - + Order by increasing width Ordenar por crescimento em largura - + Order by increasing height Ordenar por crescimento em altura - + Order by decreasing deviation Ordenar por diminuição do desvio - + Select Content Seleccionar Conteúdo @@ -3473,43 +3634,43 @@ p, li { white-space: pre-wrap; } select_content::ImageView - + Use the context menu to enable / disable the content box. Hold Shift to drag a box. Use double-click on content to automatically adjust the content area. Use o menu de contexto para ativar / desativar a caixa de conteúdo. Mantenha pressionada a tecla Shift para arrastar uma caixa. Clique duas vezes no conteúdo para ajustar automaticamente a área de conteúdo. - + Drag lines or corners to resize the content box. Arrastar linhas ou cantos para alterar o tamanho da caixa de conteúdo. - + Drag lines or corners to resize the page box. Arrastar linhas ou cantos para alterar o tamanho da caixa da página. - + Hold left mouse button to drag the content box. Manter pressionado o botão esquerdo do rato para arrastar a caixa de conteúdo. - - + + Release left mouse button to finish dragging. Solte o botão esquerdo do rato para finalizar o arrasto. - + Hold left mouse button to drag the page box. Manter pressionado o botão esquerdo do rato para arrastar a caixa de páginas. - + Create Content Box Criar caixa de conteúdo - + Remove Content Box Elimiar a caixa de conteúdo diff --git a/src/translations/scantailor_ru.ts b/src/translations/scantailor_ru.ts index 0dcaf844b..3128b8195 100644 --- a/src/translations/scantailor_ru.ts +++ b/src/translations/scantailor_ru.ts @@ -105,7 +105,7 @@ ColorPickupInteraction - + Click on an area to pick up its color, or ESC to cancel. Кликните на область, чтобы захватить ее цвет, или ESC для отмены. @@ -145,17 +145,17 @@ - - - - - - - - - - - + + + + + + + + + + + ... @@ -171,7 +171,7 @@ - + Mode Режим @@ -181,555 +181,569 @@ Тип разреза - - + + Deskew Компенс. накл. - - - - - + + + + + Auto Автоматически - - - - + + + + Manual Вручную - + Select Content Полезная обл. - + Page Box Зона распознавания - - + + Disable Выключить - - + + Options Настройки - + Shift with corners while they are in black. Скорректировать края по черной области. - + Fine Tune Page Corners Тонкая настройка краев страницы - + Width Ширина - + Height Высота - + Content Box Полезная область - - + + Margins Поля - + Auto Margins Автоматические поля - + Top Сверху - + Right Справа - + Left Слева - + Bottom Снизу - + Alignment Выравнивание - + + Auto auto Автоматически - + + Manual manual Вручную - + + Original original Оригинал - Auto aligning - Авто выравнивание + Авто выравнивание - Enable horizontal - Вкл. горизонтальное + Вкл. горизонтальное - Enable vertical - Вкл. вертикальное + Вкл. вертикальное - + Match size with other pages Выровнять размер с остальн. стр. - + + Horizontal mode: + + + + + Vertical mode: + + + + Output Вывод - + Normalize illumination before binarization. Нормализовать освещенность перед бинаризацией. - + Equalize illumination (B&&W) Выровнять освещение (ЧБ) - + Normalize illumination in color mode / in picture zones in mixed mode. Нормализовать освещенность в цветном режиме / в зонах картинок в смешанном режиме. - + Equalize illumination (Color) Выровнять освещение (Цвет.) - + Savitzky-Golay smoothing Сглаживание Савицкого-Голея - + Morphological smoothing Морфологическое сглаживание - + Filling Заливка - + Color: Цвет: - + Color operations Цветовые операции - + Split the image into color segments and colorize b&w mask. Поделить изображение на цветовые сегменты и раскрасить ЧБ маску. - + Color segmentation Цветовая сегментация - + R - + Red component adjustment. A negative value means the segmenter will be more sensitive to red and vice versa for a positive one. Настройка красного компонента. Отрицательные значения обозначают, что сегментер будет более чувствителен к красному и наоборот для положительных. - + G - + Green component adjustment. A negative value means the segmenter will be more sensitive to green and vice versa for a positive one. Настройка зеленого компонента. Отрицательные значения обозначают, что сегментер будет более чувствителен к зеленому и наоборот для положительных. - + B - + Blue component adjustment. A negative value means the segmenter will be more sensitive to blue and vice versa for a positive one. Настройка синего компонента. Отрицательные значения обозначают, что сегментер будет более чувствителен к синему и наоборот для положительных. - + Reduce noise: Уменьшить шум: - + Reduce the number of colors of the output image by grouping similar colors. Уменьшить количество цветов выходного изображения, группируя похожие цвета. - + Posterize Постеризовать - + Level: Уровень: - + Lower value means lower count of colors in the output image, values between 2 and 6 inclusive guarantee an indexed image. Меньшее значение обозначает меньшее кол-во цветов в выходном изображении, значения 2 и 6 включительно гарантируют индексированое изображение. - + Normalize Нормализовать - + Make dark and light gray gradients black and white respectively. Сделать темные и светлые оттенки серого черными и белыми соответственно. - + Force b&&w Принудительный ЧБ - + Threshold Порог - + Method: Метод: - + 0 - + Thinner Тоньше - + Thicker Жирнее - + Coef: Коэф.: - - + + The dimensions of a pixel neighborhood to consider. Размер области с соседними пикселями для расчета. - - + + Window size: Размер окна: - + Default value is 0.34. Значение по умолчанию - 0.34. - + The minimum possible gray level that can be made white. Минимальный уровень серого, который можно сделать белым. - + Upper Bound: Верхняя граница: - + Lower bound: Нижняя граница: - + The maximum possible gray level that can be made black. Максимальный уровень серого, который можно сделать черным. - + Coeff: Коэф.: - + Default value is 0.3. Значение по умолчанию — 0.3. - + Picture Shape Форма картинок - + Sensitivity (%): Чувствительность (%): - + Higher search sensivity Большая чувств. поиска - + Output Resolution (DPI) Разрешение на выходе (DPI) - + Splitting Разделение - + Split output Разделить выход - + B&&W foreground ЧБ передний слой - + Save the original background of the foreground layer. Сохранить оригинальный фон переднего слоя. - + Original background Оригинальный фон - + Color foreground Цветной передний слой - + Despeckling Удаление пятен - + Dewarping Выпрямление - + Post deskew Компенсировать поворот - + Depth perception Восприятие глубины - + Black and White Черно-белый - + Color / Grayscale Цветной / Серый - + Mixed Смешанный - + Background Фон - + White Белый + Black + + + + Otsu - + Sauvola - + Wolf - - + + Off Отключено - + Free Свободная - + Rectangular Прямоугольная - - - + + + Custom Выборочный - + Marginal По краям - + Default Стандартный - + Source Источник - - - - - + + + + + Error Ошибка - + Error loading the profile. Ошибка при загрузке профиля. - + The name conflicts with a default profile name. Please enter a different name. Это имя конфликтует со стандартным именем профиля. Введите другое имя. - + Error saving the profile. Ошибка при сохранении профиля. - + Error deleting the profile. Ошибка при удалении профиля. - + Fill offcut Залить отрезан. обл. - + Fill margins Залить поля - + Despeckle Удалить пятна - Mode: - Режим: + Режим: - + The profile file is not compatible with the current application version. Remove? Файл профиля несовместим с текущей версией приложения. Удалить? @@ -737,7 +751,7 @@ DragHandler - + Unrestricted dragging is possible by holding down the Shift key. Удерживая кнопку Shift, можно перетаскивать без ограничений. @@ -788,13 +802,13 @@ Применить - + Need Fixing Необх. испр. - - + + All Pages Все страницы @@ -814,7 +828,7 @@ DPI слишком мал для этого пиксельного размера. Такая комбинация, вероятно, приведет к ошибкам переполнения памяти. - + %1 (page %2) %1 (стр. %2) @@ -822,7 +836,7 @@ ImageViewBase - + Use the mouse wheel or +/- to zoom. When zoomed, dragging is possible. Используйте колесо мыши для увеличения. В увеличенном виде доступно перетаскивание. @@ -830,31 +844,35 @@ InteractiveXSpline - + Click to create a new control point. Кликните для создания новой контрольной точки. - + This point can be dragged. Hold Ctrl or Shift to drag along axes. Контрольная точка доступна для перетаскивания. Удерживайте Ctrl или Shift для перетаскивания вдоль осей. - + + Drag this point or delete it by pressing D key. + + + Drag this point or delete it by pressing Del or D. - Контрольная точка доступна для перетаскивания и для удаления через Del или D. + Контрольная точка доступна для перетаскивания и для удаления через Del или D. LoadFileTask - + The following file could not be loaded: %1 Файл не загрузился:%1 - + The following file doesn't exist:<br>%1<br><br>Use the <a href="#relink">Relinking Tool</a> to locate it. Следующий файл не существует:<br>%1<br><br>Используйте <a href="#relink">Relinking Tool</a> чтобы найти его. @@ -915,204 +933,266 @@ Держать текущую страницу в поле зрения. - + + Navigate through selected pages only. + + + + + Magnify thumbnails. (Ctrl++) + + + + + Diminish thumbnails. (Ctrl+-) + + + + + Go To Page... (Ctrl+G) + + + + + Enable multi page selection mode. + + + + + Single/multi column display. + + + + + Sorting order. + + + + + Highlight deviation. + + + + Filters Фильтры - + Debug Mode Режим отладки - - + + Save Project Сохранить проект - + Save Project As ... Сохранить проект как ... - - + + Next Page Следующая страница - - + + Previous Page Предыдущая страница - + New Project ... Новый проект ... - + Open Project ... Открыть проект ... - + Close Project Закрыть проект - + Quit Выход - + Settings ... Настройки ... - + First Page Первая страница - + Last Page Последняя страница - + About О программе - + Fix DPI ... Исправить DPI ... - + Relinking ... Пути в проекте ... - - - - - - + + + + + + Switch filter to orientation Перейти к ориентации - + Switch filter to split pages Перейти к разрезке страниц - + Switch filter to deskew Перейти к компенсации наклона - + Switch filter to select content Перейти к полезной области - + Switch filter to margins Перейти к полям - + Switch filter to output Перейти к выводу - + Pixels Пиксели - + Millimetres Миллиметры - + Inches Дюймы - + Centimetres Сантиметры - + Default parameters ... Параметры по умолчанию... - + + + Go To Page + + + + + Magnify thumbnails + + + + + Diminish thumbnails + + + + + + Reload current page + + + + Stop batch processing Остановить пакетную обработку - + Save the project? Сохранить этот проект? - + Insert before ... Вставить перед ... - + Insert after ... Вставить после ... - + Remove from project ... Удалить из проекта ... - + Insert here ... Вставить сюда ... - - + + Scan Tailor Projects Проекты Scan Tailor - + Open Project Открыть проект - - - - + + + + Error Ошибка - + Unable to open the project file. Не удалось открыть файл проекта. - + The project file is broken. Файл проекта поврежден. @@ -1129,76 +1209,80 @@ To determine it, run batch processing at "Select Content" or "Mar Для их определения, прогоните пакетную обработку на этапах "Полезная Область' или "Поля". - + Unnamed Без имени - + %2 - ScanTailor Advanced [%1bit] - - + + Error saving the project file! Ошибка при сохранении файла! - + Files to insert Файлы для вставки - + Images not in project (%1) Изображения не в проекте (%1) - + Skip failed files Пропустить файлы с ошибкой - + Remove Удалить - + + Enter the page number: + + + + Use Home, End, PgUp/Q, PgDown/W to navigate between pages or Shift+PgUp/Q and Shift+PgDown/W to navigate between selected ones. Alt+Wheel - scale thumbnails. Используйте Home, End, PgUp/Q, PgDown/W для навигации по страницам или Shift+PgUp/Q и Shift+PgDown/W - по выделенным. Alt+Колесо - масштабировать миниматюры. - - - - + + + + Previous Selected Page Предыдущая выделенная страница - - - - + + + + Next Selected Page Следующая выделенная страница - + Previous page. Предыдущая страница. - + Next page. Следующая страница. - Filter selected pages only. - Только выделенные страницы. + Только выделенные страницы. @@ -1319,17 +1403,17 @@ To determine it, run batch processing at "Select Content" or "Mar Обратите внимание на то, что хотя Scan Tailor и пытается обработать ситуации нехватки памяти, чтобы дать вам возможность сохранить проект, это не всегда бывает возможно. В этот раз все получилось, но в следующий раз программа может просто "упасть". - + Scan Tailor Projects Проекты Scan Tailor - + Error Ошибка - + Error saving the project file! Ошибка при сохранении файла! @@ -1343,7 +1427,7 @@ To determine it, run batch processing at "Select Content" or "Mar - + Input Directory Директория ввода @@ -1355,7 +1439,7 @@ To determine it, run batch processing at "Select Content" or "Mar - + Output Directory Директория вывода @@ -1366,12 +1450,12 @@ To determine it, run batch processing at "Select Content" or "Mar - + Select All Выбрать все - + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> @@ -1382,7 +1466,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Добавить выбранные файлы в проект.</p></body></html> - + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> @@ -1393,67 +1477,67 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Убрать выбранные файлы из проекта.</p></body></html> - + Files In Project Файлы в проекте - + Right to left layout (for Hebrew and Arabic) Система письменности справа-налево (для Иврита или Арабского) - + Fix DPIs, even if they look OK Исправить DPI, даже если он выглядят нормально - - - + + + + - - + Error Ошибка - + No files in project! В проекте нет файлов! - + Input directory is not set or doesn't exist. Директория ввода не задана или не существует. - + Input and output directories can't be the same. Директории ввода и вывода не могут совпадать. - + Create Directory? Создать директорию? - + Output directory doesn't exist. Create it? Директория вывода не существует. Создать ее? - + Unable to create output directory. Невозможно создать директорию вывода. - + Output directory is not set or doesn't exist. Директория вывода не задана или не существует. - + Some of the files failed to load. Either we don't support their format, or they are broken. You should remove them from the project. @@ -1465,18 +1549,18 @@ You should remove them from the project. ProjectOpeningContext - - + + Error Ошибка - + The project file is not compatible with the current application version. Файл проекта несовместим с текущей версией приложения. - + Unable to interpret the project file. Не удалось интерпретировать файл проекта. @@ -1503,6 +1587,21 @@ You should remove them from the project. in + + + Canceling multi page selection + + + + + %1 pages selection are going to be canceled. Continue? + + + + + Don't show this message again. + + RelinkingDialog @@ -1522,17 +1621,17 @@ You should remove them from the project. - + Substitution File for %1 Файл для %1 - + Substitution Directory for %1 Папка для %1 - + This change would merge several files into one. Это изменение объединит несколько файлов в один. @@ -1583,46 +1682,51 @@ You should remove them from the project. Автосохранение текущего проекта - + + Show question on canceling multi page selection + + + + Processing Обработка - + Deviation Отклонение - + Highlight the thumbnails of pages with high deviation Подсвечивать страницы с большим отклонением - + Params Параметры - + Select content: Полезн. обл.: - - - + + + Deviation multiplier: a higher value means lower sensivity. Множитель отклонения: большее значение обозначает меньшую чувствительность. - + Margins: Поля: - - - + + + The minimum deviation to be highlighted. Минимальное отклонение, которое будет подсвечено. @@ -1637,70 +1741,70 @@ You should remove them from the project. Язык: - + Saving Сохранение - + B&W Compression: ЧБ сжатие: - + Color Compression: Цветное сжатие: - + Your hardware / driver don't provide the necessary features Вашим оборудованием / драйвером эта функция не поддерживается - + Dark Темная - + Light Светлая - - + + None Без сжатия - - + + LZW - - + + Deflate - + CCITT G4 - + JPEG - + Information Информация - + ScanTailor need to be restarted to apply the color scheme changes. Для применения цветовой схемы перезапустите приложение. @@ -1735,32 +1839,32 @@ You should remove them from the project. Размер миниатюры при отображении. Значение по умолчанию - 250. - + White on black detection Определение белого на черном - + Auto detect pages with light content on dark background. The corrections to all the auto algorithms are made for such pages. Автоматически определять страницы со светлым контентом на темном фоне, чтобы откорректировать все автоматические алгоритмы. - + Auto detect light content on dark background Автом. определять светлый контент на темном фоне - + Whether to use auto detection at the output stage. The wrong result can be changed manually in the output filter options. Нужно ли использовать авто-определение на стадии выхода. Неверный результат может быть изменен вручную в опциях на стадии выхода. - + Use auto detection at the output stage Авто-определение на стадии выхода - + Native Нативная @@ -1770,7 +1874,7 @@ You should remove them from the project. Одноколоночное отображение миниатюр - + Deskew: Компенсация наклона: @@ -1778,7 +1882,7 @@ You should remove them from the project. StageListView - + Launch batch processing Запустить пакетную обработку @@ -1792,56 +1896,74 @@ You should remove them from the project. + Zone creation mode. + + + + + The type of a new zone created. + + + + Mouse position. Позиция курсора. - + Mouse position relative to page. Позиция курсора по отношению к странице. - + + Image size. + + + + + Image size in current units. + + + Physical size. - Физический размер. + Физический размер. - Physical size of image. - Физический размер изображения. + Физический размер изображения. - + Page number. Номер страницы. - + Position of the selected page in current order. Позиция выбранной страницы в текущем порядке. - + Page information. Информация о странице. - + Page name and type. Имя страницы и тип. - + p. %1 / %2 с. %1 / %2 - + [L] [Л] - + [R] [П] @@ -1868,7 +1990,7 @@ You should remove them from the project. ThumbnailSequence - + %1 (page %2) %1 (стр. %2) @@ -1876,12 +1998,12 @@ You should remove them from the project. ZoneContextMenuInteraction - + Delete Удалить - + Properties Свойства @@ -1889,63 +2011,71 @@ You should remove them from the project. ZoneCreationInteraction - + Click to finish this rectangular zone. ESC to cancel. Кликните для завершения этой прямоугольной зоны. ESC для отмены. - + Click to finish this zone. ESC to cancel. Кликните для завершения этой зоны. ESC для отмены. - + Connect first and last points to finish this zone. ESC to cancel. Соедините первую и последнюю точку для завершения этой зоны. ESC для отмены. - - Hold Ctrl to create a rectangular zone or Shift+Alt+LMB to use lasso mode. ESC to cancel. - + + Use Z and X keys to switch zone creation mode. ESC to cancel. + ZoneDefaultInteraction - Drag the vertex. Hold Ctrl to make the vertex angle right. - Перетаскивайте вершину. Удерживайте Ctrl, чтобы сделать угол при вершине прямым. + Перетаскивайте вершину. Удерживайте Ctrl, чтобы сделать угол при вершине прямым. - + + Drag the vertex. Hold Ctrl to make the vertex angle right. Press D to delete the vertex. + + + + Click to create a new vertex here. Кликните для создания новой вершины. - + Right click to edit zone properties. Hold Shift to drag the zone or Shift+Ctrl to copy. Press Del to delete this zone. ПКМ для редактирования свойств зоны. Удерживайте Shift для перетаскивания зоны или Shift+Ctrl для копирования. Нажмите Del, чтобы удалить зону. - + Hold left mouse button to drag the zone. Удерживайте ЛКМ для перетаскивания зоны. - + Hold left mouse button to copy and drag the zone. Удерживайте ЛКМ чтобы скопировать и перетащить зону. - + + Click to start creating a new zone. Ctrl+Alt+Click to copy the latest created zone. Use Z, X and C keys to switch zone creation mode. + + + Click to start creating a new zone. Use Ctrl+Alt+Click to copy the latest created zone. - Кликните, чтобы создать новую зону. Используйте Ctrl+Alt+Клик для копирования последней созданной зоны. + Кликните, чтобы создать новую зону. Используйте Ctrl+Alt+Клик для копирования последней созданной зоны. ZoneDragInteraction - + Release left mouse button to finish dragging. Отпустите левую кнопку мыши для завершения перетаскивания. @@ -1953,12 +2083,12 @@ You should remove them from the project. ZoneVertexDragInteraction - + Merge these two vertices. Объединить эти две вершины. - + Move the vertex to one of its neighbors to merge them. Придвиньте вершину к одной из соседних вершин, чтобы объединить их. @@ -2022,17 +2152,17 @@ You should remove them from the project. deskew::Filter - + Natural order Естественный порядок - + Order by decreasing deviation Сортировка по убывающему отклонению - + Deskew Компенсация наклона @@ -2040,12 +2170,12 @@ You should remove them from the project. deskew::ImageView - + Use Ctrl+Wheel to rotate or Ctrl+Shift+Wheel for finer rotation. Используйте Ctrl+Колесо мыши для вращения, или Ctrl+Shift+Колесо мыши для более точного вращения. - + Drag this handle to rotate the image. Тяните эту рукоятку чтобы повернуть изображение. @@ -2053,7 +2183,7 @@ You should remove them from the project. deskew::OptionsWidget - + Apply Deskew Область примененияомпенсацию наклона @@ -2148,7 +2278,7 @@ You should remove them from the project. fix_orientation::Filter - + Fix Orientation Исправление ориентации @@ -2296,24 +2426,24 @@ You should remove them from the project. output::ChangeDpiDialog - + Custom Особый - - + + Error Ошибка - + DPI is not set. DPI не указан. - + DPI is too low! DPI слишком маленький! @@ -2366,7 +2496,7 @@ You should remove them from the project. output::FillZoneEditor - + Pick color Выбрать цвет @@ -2374,17 +2504,17 @@ You should remove them from the project. output::Filter - + Output Вывод - + Natural order Естественный порядок - + Order by completeness Сортировка по завершенности @@ -2392,52 +2522,57 @@ You should remove them from the project. output::OptionsWidget - + Black and White Черно-белый - + Color / Grayscale Цветной / Серый - + Mixed Смешанный - + Otsu - + Sauvola - + Wolf - + Background Фон - + White Белый - + + Black + + + + Free Свободная - + Rectangular Прямоугольная @@ -2457,33 +2592,33 @@ You should remove them from the project. Применить восприятие глубины - - + + Off Отключено - + Auto Автоматически - + Manual Вручную - + Marginal По краям - + deskew disabled Выравнивание отключено - + Apply Processing Settings Применить настройки обработки @@ -2753,7 +2888,7 @@ You should remove them from the project. Выпрямление - + deskew компенс. наклона @@ -2835,7 +2970,7 @@ You should remove them from the project. output::TabbedImageView - + Use Ctrl+1..5 to switch the tabs. Используйте Ctrl+1..5 для переключения табов. @@ -2843,37 +2978,37 @@ You should remove them from the project. output::Task::UiUpdater - + Picture zones are only available in Mixed mode. Зоны картинок доступны только в режиме "Смешанный". - + Despeckling can't be done in Color / Grayscale mode. Удаление пятен не делается в режиме "Цветной / Серый". - + Output Вывод - + Picture Zones Зоны картинок - + Fill Zones Зоны заливки - + Dewarping Выпрямл. строк - + Despeckling Удаление пятен @@ -2984,27 +3119,27 @@ You should remove them from the project. page_layout::Filter - + Natural order Естественный порядок - + Order by increasing width Сортировка по возрастающей ширине - + Order by increasing height Сортировка по возрастающей высоте - + Order by decreasing deviation Сортировка по убывающему отклонению - + Margins Поля @@ -3012,47 +3147,47 @@ You should remove them from the project. page_layout::ImageView - + Resize margins by dragging any of the solid lines. Меняйте размеры полей, перетаскивая хоть внешние, хоть внутренние сплошные линии. - + Hold left mouse button to drag the page content. Удерживайте ЛКМ для перетаскивания области страницы. - + Release left mouse button to finish dragging. Отпустите левую кнопку мыши для завершения перетаскивания. - + Add a horizontal guide Добавить горизонтальн. направл. - + Add a vertical guide Добавить вертикальн. направл. - + Remove all the guides Удалить все направляющие - + Remove this guide Удалить направляющую - + Show hard margins rectangle Показывать жесткие поля - + Drag the guide. Перетаскивайте направляющую. @@ -3060,12 +3195,12 @@ You should remove them from the project. page_layout::OptionsWidget - + Apply Margins Применить поля - + Apply Alignment Применить выравнивание @@ -3087,15 +3222,15 @@ You should remove them from the project. - - - - - - - - - + + + + + + + + + ... @@ -3121,7 +3256,7 @@ You should remove them from the project. - + Apply To ... Применить... @@ -3136,50 +3271,72 @@ You should remove them from the project. Выровнять размер с остальн. стр. - + + Horizontal mode: + + + + + Vertical mode: + + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Right-click</span><span style=" font-size:7pt;"> to create/remove guides from the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> called.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Right-click</span><span style=" font-size:7pt;"> on a guide to delete that guide from the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> called.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Ctrl+Alt+LMB</span><span style=" font-size:7pt;"> - drag the guide under the cursor.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Shift/Ctrl+LMB</span><span style=" font-size:7pt;"> on the content rectangle - drag the page content. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;"> pressed to restrict moving along the horizontal axis only or </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> for the vertical one. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;"> for usual dragging.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Double-click</span><span style=" font-size:7pt;"> on content - automatically attach that content to the nearest guide. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;"> pressed to select vertical guides only or </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> for horizontal ones. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;"> to attach that to both the nearest vertical and horizontal guides.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣</span><span style=" font-size:7pt;"> Use the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> to enable/disable showing the hard margins rectangle.</span></p></body></html> + + + Mode: - Режим: + Режим: - + + Auto auto Автоматически - + + Manual manual Вручную - + + Original original Оригинал - Auto aligning - Авто выравнивание + Авто выравнивание - Enable horizontal - Вкл. горизонтальное + Вкл. горизонтальное - Enable vertical - Вкл. вертикальное + Вкл. вертикальное - + Guides Help Помощь по направляющим - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -3190,7 +3347,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Shift/Ctrl+LMB</span><span style=" font-size:7pt;"> on the content rectangle - drag the page content. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;"> pressed to restrict moving along the horizontal axis only or </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> for the vertical one. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;"> for usual dragging.</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Double-click</span><span style=" font-size:7pt;"> on content - automatically attach that content to the nearest guide. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;"> pressed to select vertical guides only or </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> for horizontal ones. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;"> to attach that to both the nearest vertical and horizontal guides.</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣</span><span style=" font-size:7pt;"> Use the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> to enable/disable showing the hard margins rectangle.</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> @@ -3223,7 +3380,7 @@ p, li { white-space: pre-wrap; } page_split::ImageView - + Drag the line or the handles. Тяните линию или рукоятки. @@ -3231,15 +3388,15 @@ p, li { white-space: pre-wrap; } page_split::OptionsWidget - - - + + + Set manually Установлено вручную - - + + Auto detected Определено автоматически @@ -3254,27 +3411,27 @@ p, li { white-space: pre-wrap; } Тип разреза - + ? - + Change ... Применить... - + Split Line Разделительная линия - + Auto Автоматически - + Manual Вручную @@ -3365,7 +3522,7 @@ p, li { white-space: pre-wrap; } page_split::UnremoveButton - + Restore removed page. Вернуть на место удаленную страницу. @@ -3448,27 +3605,27 @@ p, li { white-space: pre-wrap; } select_content::Filter - + Natural order Естественный порядок - + Order by increasing width Сортировка по возрастающей ширине - + Order by increasing height Сортировка по возрастающей высоте - + Order by decreasing deviation Сортировка по убывающему отклонению - + Select Content Полезная область @@ -3476,43 +3633,43 @@ p, li { white-space: pre-wrap; } select_content::ImageView - + Use the context menu to enable / disable the content box. Hold Shift to drag a box. Use double-click on content to automatically adjust the content area. Исп. контекстное меню для вкл. / выкл. полезной области. Удерж. Shift для перетаскивания области. Исп. двойной клик по контенту, чтобы автом. настроить полезную область. - + Drag lines or corners to resize the content box. Перетаскивайте линии или углы, чтобы изменить размеры полезной области. - + Drag lines or corners to resize the page box. Перетаскивайте стороны или углы для изменения размера области страницы. - + Hold left mouse button to drag the content box. Зажмите левую кнопку мыши для перетаскивания полезной области. - - + + Release left mouse button to finish dragging. Отпустите левую кнопку мыши для завершения перетаскивания. - + Hold left mouse button to drag the page box. Удерживайте левую кнопку мыши для перетаскивания области страницы. - + Create Content Box Создать полезную область - + Remove Content Box Убрать полезную область diff --git a/src/translations/scantailor_untranslated.ts b/src/translations/scantailor_untranslated.ts index 3a0f7d583..f3ecfb842 100644 --- a/src/translations/scantailor_untranslated.ts +++ b/src/translations/scantailor_untranslated.ts @@ -4,100 +4,81 @@ AboutDialog - ScanTailor Advanced - About - Scan Tailor is an interactive post-processing tool for scanned pages. It performs operations such as page splitting, skew correction, adding/removing margins, and others. You give it raw scans, and you get pages ready to be printed or assembled into a PDF or DJVU file. Scanning and optical character recognition is out of scope of this project. - Authors - - Joseph Artsimovich + Lead Developer of original version - - Contributors + Joseph Artsimovich - - U235 - Picture auto-detection algorithm. + Lead Developer of Advanced version - - Robert B. - First generation dewarping algorithm. + 4lex4 - - Andrey Bergman - System load adjustment. + Contributors - - Vadim Kuznetsov - ver. Plus + U235 - Picture auto-detection algorithm. - - monday2000 - ver. Featured + Robert B. - First generation dewarping algorithm. - - Alexander Trufanov - ver. Universal + Andrey Bergman - System load adjustment. - - License + Petr Kovář - ver. Enhanced - - Lead Developer of original version + Vadim Kuznetsov - ver. Plus - - Lead Developer of Advanced version + monday2000 - ver. Featured - - 4lex4 + Alexander Trufanov - ver. Universal - - Petr Kovář - ver. Enhanced + License BatchProcessingLowerPanel - Form - Beep when finished @@ -105,7 +86,6 @@ ColorPickupInteraction - Click on an area to pick up its color, or ESC to cancel. @@ -113,631 +93,476 @@ DefaultParamsDialog - Default parameters - Save - Delete - Units: - Fix Orientation - Rotate - - - - - - - - - - - - - ... - Reset - Split Pages - - Mode - Page Layout - - Deskew - - - - - Auto - - - - Manual - Select Content - Page Box - - Disable - - Options - Shift with corners while they are in black. - Fine Tune Page Corners - Width - Height - Content Box - - Margins - Auto Margins - Top - Right - Left - Bottom - Alignment - - Auto - auto + Match size with other pages - - Manual - manual + Horizontal mode: - - Original - original + Vertical mode: - - Auto aligning + Auto + auto - - Enable horizontal + Manual + manual - - Enable vertical + Original + original - - Match size with other pages + Output - - Output + Fill offcut + + + + Fill margins - Normalize illumination before binarization. - Equalize illumination (B&&W) - Normalize illumination in color mode / in picture zones in mixed mode. - Equalize illumination (Color) - Savitzky-Golay smoothing - Morphological smoothing - Filling - Color: - Color operations - Split the image into color segments and colorize b&w mask. - Color segmentation - R - Red component adjustment. A negative value means the segmenter will be more sensitive to red and vice versa for a positive one. - G - Green component adjustment. A negative value means the segmenter will be more sensitive to green and vice versa for a positive one. - B - Blue component adjustment. A negative value means the segmenter will be more sensitive to blue and vice versa for a positive one. - Reduce noise: - Reduce the number of colors of the output image by grouping similar colors. - Posterize - Level: - Lower value means lower count of colors in the output image, values between 2 and 6 inclusive guarantee an indexed image. - Normalize - Make dark and light gray gradients black and white respectively. - Force b&&w - Threshold - Method: - 0 - Thinner - Thicker - Coef: - - The dimensions of a pixel neighborhood to consider. - - Window size: - Default value is 0.34. - The minimum possible gray level that can be made white. - Upper Bound: - Lower bound: - The maximum possible gray level that can be made black. - Coeff: - Default value is 0.3. - Picture Shape - Sensitivity (%): - Higher search sensivity - Output Resolution (DPI) - Splitting - Split output - B&&W foreground - Save the original background of the foreground layer. - Original background - Color foreground - Despeckling - + Despeckle + + + Dewarping - Post deskew - Depth perception - Black and White - Color / Grayscale - Mixed - Background - White - + Black + + + Otsu - Sauvola - Wolf - - Off - Free - Rectangular - - - Custom - Marginal - Default - Source - - - - - Error - + The profile file is not compatible with the current application version. Remove? + + + Error loading the profile. - The name conflicts with a default profile name. Please enter a different name. - Error saving the profile. - Error deleting the profile. - - - Fill offcut - - - - - Fill margins - - - - - Despeckle - - - - - Mode: - - - - - The profile file is not compatible with the current application version. Remove? - - DragHandler - Unrestricted dragging is possible by holding down the Shift key. @@ -745,7 +570,6 @@ ErrorWidget - Form @@ -753,68 +577,54 @@ FixDpiDialog - Fix DPI - Tab 1 - Tab 2 - DPI - Custom - x - Apply - Need Fixing - - All Pages - DPI is too large and most likely wrong. - DPI is too small. Even if it's correct, you are not going to get acceptable results with it. - DPI is too small for this pixel size. Such combination would probably lead to out of memory errors. - %1 (page %2) @@ -822,7 +632,6 @@ ImageViewBase - Use the mouse wheel or +/- to zoom. When zoomed, dragging is possible. @@ -830,31 +639,26 @@ InteractiveXSpline - Click to create a new control point. - This point can be dragged. Hold Ctrl or Shift to drag along axes. - - Drag this point or delete it by pressing Del or D. + Drag this point or delete it by pressing D key. LoadFileTask - The following file could not be loaded: %1 - The following file doesn't exist:<br>%1<br><br>Use the <a href="#relink">Relinking Tool</a> to locate it. @@ -862,17 +666,14 @@ LoadFilesStatusDialog - Some files failed to load - Loaded successfully: %1 - Failed to load: %1 @@ -880,345 +681,310 @@ MainWindow - MainWindow - Tools - Units - File - Help - Thumbnails - Keep current page in view. - + Previous page. + + + + Next page. + + + + Navigate through selected pages only. + + + + Magnify thumbnails. (Ctrl++) + + + + Diminish thumbnails. (Ctrl+-) + + + + Go To Page... (Ctrl+G) + + + + Enable multi page selection mode. + + + + Single/multi column display. + + + + Sorting order. + + + + Highlight deviation. + + + + Use Home, End, PgUp/Q, PgDown/W to navigate between pages or Shift+PgUp/Q and Shift+PgDown/W to navigate between selected ones. Alt+Wheel - scale thumbnails. + + + Filters - Debug Mode - - Save Project - Save Project As ... - - Next Page - - Previous Page - New Project ... - Open Project ... - Close Project - Quit - Settings ... - First Page - Last Page - About - Fix DPI ... - Relinking ... - - - - - - Switch filter to orientation - Switch filter to split pages - Switch filter to deskew - Switch filter to select content - Switch filter to margins - Switch filter to output - Pixels - Millimetres - Inches - Centimetres - Default parameters ... - + Previous Selected Page + + + + Next Selected Page + + + + Go To Page + + + + Magnify thumbnails + + + + Diminish thumbnails + + + + Reload current page + + + Stop batch processing - Save the project? - Insert before ... - Insert after ... - Remove from project ... - Insert here ... - - Scan Tailor Projects - Open Project - - - - Error - Unable to open the project file. - The project file is broken. - version - Output is not yet possible, as the final size of pages is not yet known. To determine it, run batch processing at "Select Content" or "Margins". - Unnamed - %2 - ScanTailor Advanced [%1bit] - - Error saving the project file! - Files to insert - Images not in project (%1) - Skip failed files - Remove - - Use Home, End, PgUp/Q, PgDown/W to navigate between pages or Shift+PgUp/Q and Shift+PgDown/W to navigate between selected ones. Alt+Wheel - scale thumbnails. - - - - - - - - Previous Selected Page - - - - - - - - Next Selected Page - - - - - Previous page. - - - - - Next page. - - - - - Filter selected pages only. + Enter the page number: NewOpenProjectPanel - Form - New Project ... - Open Project ... - Recent Projects @@ -1226,108 +992,87 @@ To determine it, run batch processing at "Select Content" or "Mar OutOfMemoryDialog - Out of memory - Out of Memory Situation in Scan Tailor - Possible reasons - Did you have to fix the DPI of your source images? Are you sure the values you entered were correct? - Sometimes your source images may have wrong DPI embedded into them. Scan Tailor tries to detect those, but it's not always easy to tell. You may need to check "Fix DPI even if they look normal" when creating a project and look into "All pages" tab in the "Fix DPI" dialog, which is also accessible from the Tools menu. - Is your output DPI set too high? Usually you don't need it higher than 600. - What can help - Fix your DPIs. Learn how to <a href="http://vimeo.com/12524529">estimate unknown DPIs</a>. Feel free to change the URL to a localized video / text tutorial. - If your hardware and operating system are 64-bit capable, consider switching to a 64-bit version of Scan Tailor. - When working with grayscale images, make sure they are really grayscale. If they are actually color images that just happen to look grayscale, convert them to grayscale using some kind of batch image converter. This will both save memory and increase performance. - As a last resort, you can save some memory by making sure thumbnails are pre-created rather than created on demand. This can be done by slowly scrolling the thumbnail list all the way from top to bottom before starting any real work. - What won't help - Surprisingly, upgrading your RAM won't help here. The lack of RAM is compensated by the swap mechanism, which makes things slow, but keeps programs running. An out of memory situation means we ran out of memory address space, which has nothing to do with the amount of RAM you have. The only way to increase the memory address space is to go 64-bit hardware, 64-bit operating system and 64-bit Scan Tailor. - Save Project - Save Project As ... - Don't Save - Project Saved Successfully - Please note that while Scan Tailor tries to catch out-of-memory situations and give you the opportunity to save your project, it's not always possible. This time it succeeded, but the next time it might just crash. - Scan Tailor Projects - Error - Error saving the project file! @@ -1335,41 +1080,30 @@ To determine it, run batch processing at "Select Content" or "Mar ProjectFilesDialog - Project Files - - Input Directory - - Browse - - Output Directory - Files Not In Project - - Select All - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> @@ -1377,7 +1111,6 @@ p, li { white-space: pre-wrap; } - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> @@ -1385,67 +1118,50 @@ p, li { white-space: pre-wrap; } - Files In Project - Right to left layout (for Hebrew and Arabic) - Fix DPIs, even if they look OK - - - - - - Error - No files in project! - Input directory is not set or doesn't exist. - Input and output directories can't be the same. - Create Directory? - Output directory doesn't exist. Create it? - Unable to create output directory. - Output directory is not set or doesn't exist. - Some of the files failed to load. Either we don't support their format, or they are broken. You should remove them from the project. @@ -1455,18 +1171,14 @@ You should remove them from the project. ProjectOpeningContext - - Error - The project file is not compatible with the current application version. - Unable to interpret the project file. @@ -1474,22 +1186,30 @@ You should remove them from the project. QObject - + Canceling multi page selection + + + + %1 pages selection are going to be canceled. Continue? + + + + Don't show this message again. + + + px - mm - cm - in @@ -1497,32 +1217,26 @@ You should remove them from the project. RelinkingDialog - Relinking - Undo - ... - Substitution File for %1 - Substitution Directory for %1 - This change would merge several files into one. @@ -1530,17 +1244,14 @@ You should remove them from the project. RemovePagesDialog - Remove Pages - Remove %1 page(s) from project? - Corresponding output files will be deleted, while input files will remain. @@ -1548,227 +1259,181 @@ You should remove them from the project. SettingsDialog - Settings - General - - Accelerate user interface with OpenGL + User Interface - - Device: %1 + Accelerate user interface with OpenGL - - Auto-save the existing project + Device: %1 - - Processing + Auto-save the existing project - - Deviation + Color Scheme: - - Highlight the thumbnails of pages with high deviation + Language: - - Params + Thumbnails - - Select content: + Quality: - - - - Deviation multiplier: a higher value means lower sensivity. + The pixel size of the thumbnail image. The default value is 200. - - Margins: + Size: - - - - The minimum deviation to be highlighted. + The thumbnail size in the view. The default value is 250. - - Color Scheme: + Single column thumbnail display - - Language: + Show question on canceling multi page selection - Saving - B&W Compression: - Color Compression: - - Your hardware / driver don't provide the necessary features + Processing - - Dark + White on black detection - - Light + Auto detect pages with light content on dark background. The corrections to all the auto algorithms are made for such pages. - - - None + Auto detect light content on dark background - - - LZW + Whether to use auto detection at the output stage. The wrong result can be changed manually in the output filter options. - - - Deflate + Use auto detection at the output stage - - CCITT G4 + Deviation - - JPEG + Highlight the thumbnails of pages with high deviation - - Information + Params - - ScanTailor need to be restarted to apply the color scheme changes. + Deskew: - - User Interface + Select content: - - Thumbnails + Deviation multiplier: a higher value means lower sensivity. - - Quality: + Margins: - - The pixel size of the thumbnail image. The default value is 200. + The minimum deviation to be highlighted. - - Size: + Your hardware / driver don't provide the necessary features - - The thumbnail size in the view. The default value is 250. + Dark - - White on black detection + Light - - Auto detect pages with light content on dark background. The corrections to all the auto algorithms are made for such pages. + Native - - Auto detect light content on dark background + Information - - Whether to use auto detection at the output stage. The wrong result can be changed manually in the output filter options. + ScanTailor need to be restarted to apply the color scheme changes. - - Use auto detection at the output stage + None - - Native + LZW - - Single column thumbnail display + Deflate - - Deskew: + CCITT G4 + + + + JPEG StageListView - Launch batch processing @@ -1776,62 +1441,58 @@ You should remove them from the project. StatusBarPanel - Form - + Zone creation mode. + + + + The type of a new zone created. + + + Mouse position. - Mouse position relative to page. - - Physical size. + Image size. - - Physical size of image. + Image size in current units. - Page number. - Position of the selected page in current order. - Page information. - Page name and type. - p. %1 / %2 - [L] - [R] @@ -1839,18 +1500,14 @@ You should remove them from the project. SystemLoadWidget - Form - System load - - ... @@ -1858,7 +1515,6 @@ You should remove them from the project. ThumbnailSequence - %1 (page %2) @@ -1866,12 +1522,10 @@ You should remove them from the project. ZoneContextMenuInteraction - Delete - Properties @@ -1879,63 +1533,52 @@ You should remove them from the project. ZoneCreationInteraction - Click to finish this rectangular zone. ESC to cancel. - Click to finish this zone. ESC to cancel. - Connect first and last points to finish this zone. ESC to cancel. - - Hold Ctrl to create a rectangular zone or Shift+Alt+LMB to use lasso mode. ESC to cancel. + Use Z and X keys to switch zone creation mode. ESC to cancel. ZoneDefaultInteraction - - Drag the vertex. Hold Ctrl to make the vertex angle right. + Drag the vertex. Hold Ctrl to make the vertex angle right. Press D to delete the vertex. - Click to create a new vertex here. - Right click to edit zone properties. Hold Shift to drag the zone or Shift+Ctrl to copy. Press Del to delete this zone. - Hold left mouse button to drag the zone. - Hold left mouse button to copy and drag the zone. - - Click to start creating a new zone. Use Ctrl+Alt+Click to copy the latest created zone. + Click to start creating a new zone. Ctrl+Alt+Click to copy the latest created zone. Use Z, X and C keys to switch zone creation mode. ZoneDragInteraction - Release left mouse button to finish dragging. @@ -1943,12 +1586,10 @@ You should remove them from the project. ZoneVertexDragInteraction - Merge these two vertices. - Move the vertex to one of its neighbors to merge them. @@ -1956,54 +1597,44 @@ You should remove them from the project. deskew::ApplyDialog - Apply to - This page only (already applied) - All pages - This page and the following ones - This page and the following every other page All odd or even pages, depending on the current page being odd or even. - Every other page All odd or even pages, depending on the current page being odd or even. - Selected pages - Use Ctrl+Click / Shift+Click to select multiple pages. - Every other selected page - The current page will be included. @@ -2011,17 +1642,14 @@ You should remove them from the project. deskew::Filter - Natural order - Order by decreasing deviation - Deskew @@ -2029,12 +1657,10 @@ You should remove them from the project. deskew::ImageView - Use Ctrl+Wheel to rotate or Ctrl+Shift+Wheel for finer rotation. - Drag this handle to rotate the image. @@ -2042,92 +1668,75 @@ You should remove them from the project. deskew::OptionsWidget - - Apply Deskew - - - - Form - Deskew - Auto - Manual - Apply To ... + + Apply Deskew + + fix_orientation::ApplyDialog - Fix Orientation - Apply to - This page only (already applied) - All pages - This page and the following ones - This page and the following every other page All odd or even pages, depending on the current page being odd or even. - Every other page All odd or even pages, depending on the current page being odd or even. - Selected pages - Use Ctrl+Click / Shift+Click to select multiple pages. - Every other selected page - The current page will be included. @@ -2135,7 +1744,6 @@ You should remove them from the project. fix_orientation::Filter - Fix Orientation @@ -2143,28 +1751,22 @@ You should remove them from the project. fix_orientation::OptionsWidget - Form - Rotate - - ... - Reset - Apply to ... @@ -2172,37 +1774,30 @@ You should remove them from the project. output::ApplyColorsDialog - Apply Mode - Apply to - This page only (already applied) - All pages - This page and the following ones - Selected pages - Use Ctrl+Click / Shift+Click to select multiple pages. @@ -2210,72 +1805,58 @@ You should remove them from the project. output::ChangeDewarpingDialog - Apply Dewarping Mode - Mode - Off - Auto (experimental) - Marginal (experimental) - Manual - Options - Post deskew - Apply to - This page only - All pages - This page and the following ones - Selected pages - Use Ctrl+Click / Shift+Click to select multiple pages. @@ -2283,77 +1864,61 @@ You should remove them from the project. output::ChangeDpiDialog - - Custom + Apply Output Resolution - - - - Error + DPI - - DPI is not set. + Apply to - - DPI is too low! + This page only - - DPI is too high! + All pages - - Apply Output Resolution + This page and the following ones - - DPI + Selected pages - - Apply to + Use Ctrl+Click / Shift+Click to select multiple pages. - - This page only + Custom - - All pages + Error - - This page and the following ones + DPI is not set. - - Selected pages + DPI is too low! - - Use Ctrl+Click / Shift+Click to select multiple pages. + DPI is too high! output::FillZoneEditor - Pick color @@ -2361,409 +1926,328 @@ You should remove them from the project. output::Filter - - Output + Natural order - - Natural order + Order by completeness - - Order by completeness + Output output::OptionsWidget - - Black and White + Form - - Color / Grayscale + Output Resolution (DPI) - - Mixed + 0 - - Otsu + Change ... - - Sauvola + Mode - - Wolf + Options - - Background + Fill offcut - - White + Fill margins - - Free + Normalize illumination before binarization. - - Rectangular + Equalize illumination (B&&W) - - Apply Splitting Settings + Normalize illumination in color mode / in picture zones in mixed mode. - - Apply Despeckling Level + Equalize illumination (Color) - - Apply Depth Perception + Savitzky-Golay smoothing - - - Off + Morphological smoothing - - Auto + Filling - - Manual + Color: - - Marginal + Threshold - - deskew disabled + Method: - - Apply Processing Settings + Color operations - - Form + Split the image into color segments and colorize b&w mask. - - Output Resolution (DPI) + Color segmentation - - 0 + R - - - Change ... + Red component adjustment. A negative value means the segmenter will be more sensitive to red and vice versa for a positive one. - - Mode + G - - Options + Green component adjustment. A negative value means the segmenter will be more sensitive to green and vice versa for a positive one. - - Fill offcut + B - - Fill margins + Blue component adjustment. A negative value means the segmenter will be more sensitive to blue and vice versa for a positive one. - - Normalize illumination before binarization. + Reduce noise: - - Equalize illumination (B&&W) + Reduce the number of colors of the output image by grouping similar colors. - - Normalize illumination in color mode / in picture zones in mixed mode. + Posterize - - Equalize illumination (Color) + Level: - - Savitzky-Golay smoothing + Lower value means lower count of colors in the output image, values between 2 and 6 inclusive guarantee an indexed image. - - Morphological smoothing + Normalize - - Filling + Make dark and light gray gradients black and white respectively. - - Color: + Force b&&w - - Threshold + Picture Shape - - Method: + Sensitivity (%): - - Color operations + Higher search sensitivity - - Split the image into color segments and colorize b&w mask. + Apply To ... - - Color segmentation + Splitting - - R + Split output - - Red component adjustment. A negative value means the segmenter will be more sensitive to red and vice versa for a positive one. + B&&W foreground - - G + Save the original background of the foreground layer. - - Green component adjustment. A negative value means the segmenter will be more sensitive to green and vice versa for a positive one. + Original background - - B + Color foreground - - Blue component adjustment. A negative value means the segmenter will be more sensitive to blue and vice versa for a positive one. + Despeckling - - Reduce noise: + Despeckle - - Reduce the number of colors of the output image by grouping similar colors. + Processing - - Posterize + This option should be enabled when the page has dark content on light background and disabled if vice versa in order to correct processing algorithms. - - Level: + Black on white mode - - Lower value means lower count of colors in the output image, values between 2 and 6 inclusive guarantee an indexed image. + Depth perception - - Normalize + Dewarping - - Make dark and light gray gradients black and white respectively. + Black and White - - Force b&&w + Color / Grayscale - - Picture Shape + Mixed - - Sensitivity (%): + Otsu - - Higher search sensitivity + Sauvola - - - - - - Apply To ... + Wolf - - Splitting + Background - - Split output + White - - B&&W foreground + Black - - Save the original background of the foreground layer. + Off - - Original background + Free - - Color foreground + Rectangular - - Despeckling + Apply Splitting Settings - - Despeckle + Apply Despeckling Level - - Processing + Apply Depth Perception - - This option should be enabled when the page has dark content on light background and disabled if vice versa in order to correct processing algorithms. + Auto - - Black on white mode + Manual - - Depth perception + Marginal - - Dewarping + deskew - - deskew + deskew disabled + + + + Apply Processing Settings output::OtsuBinarizationOptionsWidget - Form - 0 - Thinner - Thicker @@ -2771,22 +2255,18 @@ You should remove them from the project. output::PictureZonePropDialog - Zone Properties - Subtract from all layers - Add to auto layer - Subtract from auto layer @@ -2794,27 +2274,22 @@ You should remove them from the project. output::SauvolaBinarizationOptionsWidget - Form - Coef: - The dimensions of a pixel neighborhood to consider. - Default value is 0.34. - Window size: @@ -2822,7 +2297,6 @@ You should remove them from the project. output::TabbedImageView - Use Ctrl+1..5 to switch the tabs. @@ -2830,37 +2304,30 @@ You should remove them from the project. output::Task::UiUpdater - Picture zones are only available in Mixed mode. - Despeckling can't be done in Color / Grayscale mode. - Output - Picture Zones - Fill Zones - Dewarping - Despeckling @@ -2868,47 +2335,38 @@ You should remove them from the project. output::WolfBinarizationOptionsWidget - Form - The dimensions of a pixel neighborhood to consider. - Window size: - The minimum possible gray level that can be made white. - Upper Bound: - Lower bound: - The maximum possible gray level that can be made black. - Coeff: - Default value is 0.3. @@ -2916,54 +2374,44 @@ You should remove them from the project. page_layout::ApplyDialog - Apply to - This page only (already applied) - All pages - This page and the following ones - This page and the following every other page All odd or even pages, depending on the current page being odd or even. - Every other page All odd or even pages, depending on the current page being odd or even. - Selected pages - Use Ctrl+Click / Shift+Click to select multiple pages. - Every other selected page - The current page will be included. @@ -2971,27 +2419,22 @@ You should remove them from the project. page_layout::Filter - Natural order - Order by increasing width - Order by increasing height - Order by decreasing deviation - Margins @@ -2999,47 +2442,38 @@ You should remove them from the project. page_layout::ImageView - Resize margins by dragging any of the solid lines. - Hold left mouse button to drag the page content. - Release left mouse button to finish dragging. - Add a horizontal guide - Add a vertical guide - Remove all the guides - Remove this guide - Show hard margins rectangle - Drag the guide. @@ -3047,153 +2481,109 @@ You should remove them from the project. page_layout::OptionsWidget - - Apply Margins - - - - - Apply Alignment - - - - Form - Margins - Auto Margins - - - - - - - - - - - ... - Top - Right - Left - Bottom - - Apply To ... - Alignment - Match size with other pages - - Mode: + Horizontal mode: + + + + Vertical mode: - Auto auto - Manual manual - Original original - - Auto aligning - - - - - Enable horizontal - - - - - Enable vertical - - - - Guides Help - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Right-click</span><span style=" font-size:7pt;"> to create/remove guides from the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> called.</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Right-click</span><span style=" font-size:7pt;"> on a guide to delete that guide from the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> called.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Shift+LMB</span><span style=" font-size:7pt;"> - drag the guide under the cursor.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Ctrl+Alt+LMB</span><span style=" font-size:7pt;"> - drag the guide under the cursor.</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Shift/Ctrl+LMB</span><span style=" font-size:7pt;"> on the content rectangle - drag the page content. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;"> pressed to restrict moving along the horizontal axis only or </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> for the vertical one. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;"> for usual dragging.</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣ Double-click</span><span style=" font-size:7pt;"> on content - automatically attach that content to the nearest guide. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift</span><span style=" font-size:7pt;"> pressed to select vertical guides only or </span><span style=" font-size:7pt; font-weight:600;">Ctrl</span><span style=" font-size:7pt;"> for horizontal ones. Hold </span><span style=" font-size:7pt; font-weight:600;">Shift+Ctrl</span><span style=" font-size:7pt;"> to attach that to both the nearest vertical and horizontal guides.</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-weight:600;">‣</span><span style=" font-size:7pt;"> Use the </span><span style=" font-size:7pt; font-weight:600;">context menu</span><span style=" font-size:7pt;"> to enable/disable showing the hard margins rectangle.</span></p></body></html> + + Apply Margins + + + + Apply Alignment + + page_split::Filter - Natural order - Order by split type - Split Pages @@ -3201,7 +2591,6 @@ p, li { white-space: pre-wrap; } page_split::ImageView - Drag the line or the handles. @@ -3209,133 +2598,105 @@ p, li { white-space: pre-wrap; } page_split::OptionsWidget - - - - Set manually - - - - - - Auto detected - - - - Form - Page Layout - ? - Change ... - Split Line - Auto - Manual + + Set manually + + + + Auto detected + + page_split::SplitModeDialog - Split Pages - Mode - Auto - Manual - Options - Apply cut - Apply to - This page only - All pages - This page and the following ones - This page and the following every other page - Every other page - Selected pages - Use Ctrl+Click / Shift+Click to select multiple pages. - Every other selected page - The current page will be included. @@ -3343,7 +2704,6 @@ p, li { white-space: pre-wrap; } page_split::UnremoveButton - Restore removed page. @@ -3351,74 +2711,60 @@ p, li { white-space: pre-wrap; } select_content::ApplyDialog - Select Content - Options - - Apply content box + Apply page box - - Apply page box + Apply content box - Apply to - This page only (already applied) - All pages - This page and the following ones - This page and the following every other page All odd or even pages, depending on the current page being odd or even. - Every other page All odd or even pages, depending on the current page being odd or even. - Selected pages - Use Ctrl+Click / Shift+Click to select multiple pages. - Every other selected page - The current page will be included. @@ -3426,27 +2772,22 @@ p, li { white-space: pre-wrap; } select_content::Filter - Natural order - Order by increasing width - Order by increasing height - Order by decreasing deviation - Select Content @@ -3454,43 +2795,34 @@ p, li { white-space: pre-wrap; } select_content::ImageView - Use the context menu to enable / disable the content box. Hold Shift to drag a box. Use double-click on content to automatically adjust the content area. - Drag lines or corners to resize the content box. - Drag lines or corners to resize the page box. - Hold left mouse button to drag the content box. - - Release left mouse button to finish dragging. - Hold left mouse button to drag the page box. - Create Content Box - Remove Content Box @@ -3498,65 +2830,50 @@ p, li { white-space: pre-wrap; } select_content::OptionsWidget - Form - Page Box - - Disable - - Auto - - Manual - Options - Shift with corners while they are in black. - Fine Tune Page Corners - Width - Height - Content Box - Apply to ... From f3fe586c4a98ad48d7a58f5a050c95be4e996069 Mon Sep 17 00:00:00 2001 From: Virgil Grigoras Date: Sun, 6 Feb 2022 16:13:59 +0100 Subject: [PATCH 13/25] Bump version --- version.h.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.h.in b/version.h.in index 8dd4cd621..dedaba2f5 100644 --- a/version.h.in +++ b/version.h.in @@ -3,7 +3,7 @@ #ifndef SCANTAILOR_VERSION_H_ #define SCANTAILOR_VERSION_H_ -#define VERSION "1.0.16" +#define VERSION "1.0.17" #define VERSION_QUAD "" // Must be "x.x.x.x" or an empty string. #define PROJECT_VERSION 3 From a2ad77619058dc26d5bc9e5afeb9fdcfc84067e3 Mon Sep 17 00:00:00 2001 From: kunzjacq Date: Tue, 15 Feb 2022 14:54:06 +0100 Subject: [PATCH 14/25] Qt6 port, warning suppression In addition to changes required to port to Qt6, warnings related to boost bind and to deprecated types in Tiff{Reader,Writer}.hpp were eliminated. --- CMakeLists.txt | 36 +++---- cmake/UpdateTranslations.cmake | 2 +- src/app/MainWindow.cpp | 1 + src/app/ProjectFilesDialog.cpp | 1 + src/app/RelinkablePathVisualization.cpp | 6 +- src/core/Application.cpp | 2 +- src/core/BackgroundTask.h | 4 +- src/core/CMakeLists.txt | 4 +- src/core/DefaultParamsProfileManager.cpp | 4 +- src/core/ImageViewBase.cpp | 18 +--- src/core/ImageViewBase.h | 2 +- src/core/ProjectPages.cpp | 2 +- src/core/ProjectReader.cpp | 4 +- src/core/ProjectWriter.cpp | 4 +- src/core/RelinkablePath.cpp | 2 +- src/core/SmartFilenameOrdering.cpp | 9 ++ src/core/SmartFilenameOrdering.h | 2 + src/core/TiffReader.cpp | 62 ++++++------ src/core/TiffWriter.cpp | 42 ++++----- src/core/ZoneEditorBase.cpp | 2 +- src/core/filters/deskew/ImageView.cpp | 8 +- .../filters/output/ColorPickupInteraction.cpp | 4 +- src/core/filters/output/DewarpingView.cpp | 14 +-- src/core/filters/output/FillZoneEditor.cpp | 8 +- src/core/filters/output/OutputFileParams.cpp | 4 +- src/core/filters/output/OutputGenerator.cpp | 13 +-- src/core/filters/output/PictureZoneEditor.cpp | 6 +- src/core/filters/output/TabbedImageView.cpp | 8 +- src/core/filters/output/Task.cpp | 16 ++-- src/core/filters/page_layout/ImageView.cpp | 34 +++---- src/core/filters/page_split/ImageView.cpp | 24 ++--- src/core/filters/page_split/PageLayout.cpp | 4 +- .../filters/page_split/PageLayoutAdapter.cpp | 8 +- src/core/filters/select_content/ImageView.cpp | 16 ++-- .../filters/select_content/OptionsWidget.cpp | 4 +- src/core/interaction/DragHandler.cpp | 2 +- src/core/interaction/InteractiveXSpline.cpp | 4 +- src/core/interaction/ZoomHandler.cpp | 14 +-- src/core/zones/ZoneCreationInteraction.cpp | 6 +- src/core/zones/ZoneDefaultInteraction.cpp | 2 +- src/dewarping/Curve.cpp | 4 +- src/dewarping/CylindricalSurfaceDewarper.cpp | 7 +- src/dewarping/DetectVertContentBounds.cpp | 13 +-- src/dewarping/DistortionModelBuilder.cpp | 13 +-- src/dewarping/TextLineRefiner.cpp | 4 +- src/dewarping/TextLineTracer.cpp | 2 +- src/foundation/CMakeLists.txt | 2 +- src/foundation/Proximity.cpp | 94 +++++++++---------- src/foundation/VecNT.h | 16 ++++ src/imageproc/ColorInterpolation.cpp | 10 +- src/imageproc/Posterizer.cpp | 3 +- src/imageproc/tests/CMakeLists.txt | 2 +- src/math/PolylineIntersector.cpp | 2 +- 53 files changed, 301 insertions(+), 279 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ebcb6e2e0..76947aac9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -106,7 +106,7 @@ if (WIN32) set(ZLIB_INSTALL_PREFIX "${zlib_dir_assumed}" CACHE PATH "Prefix where zlib is installed") set(PNG_INSTALL_PREFIX "${png_dir_assumed}" CACHE PATH "Prefix where png is installed") set(TIFF_INSTALL_PREFIX "${tiff_dir_assumed}" CACHE PATH "Prefix where tiff is installed") - set(QT_INSTALL_PREFIX "${qt_dir_assumed}" CACHE PATH "Prefix where Qt5 is installed") + set(QT_INSTALL_PREFIX "${qt_dir_assumed}" CACHE PATH "Prefix where Qt6 is installed") set(BOOST_ROOT "${boost_dir_assumed}" CACHE PATH "Prefix where Boost is installed") macro(list_append_existing_path Var Path) @@ -204,8 +204,8 @@ endif() set(qt_min_version 5.6) find_package( - Qt5 ${qt_min_version} - COMPONENTS Core Gui Widgets Xml Network LinguistTools OpenGL Svg + Qt6 ${qt_min_version} + COMPONENTS Core Gui Widgets OpenGLWidgets Xml Network LinguistTools OpenGL Svg CONFIG REQUIRED) #=================================== Threads ===================================# @@ -293,7 +293,7 @@ finalize_translations(scantailor ${translation_files}) update_translations_target(update_translations scantailor) list(FILTER translation_files EXCLUDE REGEX ".*untranslated.ts") -qt5_add_translation(qm_files ${translation_files}) +Qt_add_translation(qm_files ${translation_files}) add_custom_target(compile_translations ALL DEPENDS ${qm_files}) if (WIN32) install(FILES ${qm_files} DESTINATION "${CMAKE_INSTALL_BINDIR}/translations") @@ -326,8 +326,8 @@ if (WIN32) # Install the DLLs of the dependencies. set(dep_libs JPEG::JPEG PNG::PNG ZLIB::ZLIB TIFF::TIFF - Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Xml - Qt5::Network Qt5::OpenGL Qt5::Svg) + Qt6::Core Qt6::Gui Qt6::Widgets Qt6::Xml + Qt6::Network Qt6::OpenGL Qt6::OpenGLWidgets Qt6::Svg) foreach (_target ${dep_libs}) get_target_property(target_type ${_target} TYPE) @@ -356,24 +356,24 @@ if (WIN32) set_if_undefined(debug_loc "${release_loc}") copy_to_build_dir("${release_loc}" SUBDIR ${SubDir} CONFIGURATIONS Release MinSizeRel RelWithDebInfo) - install(PROGRAMS "${release_loc}" - CONFIGURATIONS Release MinSizeRel RelWithDebInfo + install(PROGRAMS "${release_loc}" + CONFIGURATIONS Release MinSizeRel RelWithDebInfo DESTINATION "${CMAKE_INSTALL_BINDIR}/${SubDir}") copy_to_build_dir("${debug_loc}" SUBDIR ${SubDir} CONFIGURATIONS Debug) - install(PROGRAMS "${debug_loc}" - CONFIGURATIONS Debug + install(PROGRAMS "${debug_loc}" + CONFIGURATIONS Debug DESTINATION "${CMAKE_INSTALL_BINDIR}/${SubDir}") endif() endif() endmacro() - install_qt_plugin("platforms" Qt5::QWindowsIntegrationPlugin) - install_qt_plugin("styles" Qt5::QWindowsVistaStylePlugin) - install_qt_plugin("imageformats" Qt5::QJpegPlugin) - install_qt_plugin("accessible" Qt5::QAccessiblePlugin) - install_qt_plugin("iconengines" Qt5::QSvgIconPlugin) - install_qt_plugin("imageformats" Qt5::QSvgPlugin) - + install_qt_plugin("platforms" Qt6::QWindowsIntegrationPlugin) + install_qt_plugin("styles" Qt6::QWindowsVistaStylePlugin) + install_qt_plugin("imageformats" Qt6::QJpegPlugin) + install_qt_plugin("accessible" Qt6::QAccessiblePlugin) + install_qt_plugin("iconengines" Qt6::QSvgIconPlugin) + install_qt_plugin("imageformats" Qt6::QSvgPlugin) + # Install MinGW runtime components. if (MINGW) get_filename_component(_mingw_path ${CMAKE_CXX_COMPILER} PATH) @@ -453,4 +453,4 @@ if (NOT TARGET uninstall) add_custom_target( uninstall COMMAND "${CMAKE_COMMAND}" -P "${CMAKE_BINARY_DIR}/cmake_uninstall.cmake") -endif() \ No newline at end of file +endif() diff --git a/cmake/UpdateTranslations.cmake b/cmake/UpdateTranslations.cmake index a9c192ea6..7dc4f1733 100644 --- a/cmake/UpdateTranslations.cmake +++ b/cmake/UpdateTranslations.cmake @@ -72,7 +72,7 @@ macro (update_translations_target _update_target) #, _targets set(_commands "") foreach (_target ${ARGN}) list( - APPEND _commands COMMAND Qt5::lupdate -locations absolute -no-obsolete + APPEND _commands COMMAND Qt6::lupdate -locations absolute -no-obsolete -pro "${CMAKE_BINARY_DIR}/update_translations_${_target}.pro") endforeach() diff --git a/src/app/MainWindow.cpp b/src/app/MainWindow.cpp index 208e070b7..8971d0da6 100644 --- a/src/app/MainWindow.cpp +++ b/src/app/MainWindow.cpp @@ -15,6 +15,7 @@ #include #include #include +#include #include #include diff --git a/src/app/ProjectFilesDialog.cpp b/src/app/ProjectFilesDialog.cpp index 28b2ac9a2..87c5fbae4 100644 --- a/src/app/ProjectFilesDialog.cpp +++ b/src/app/ProjectFilesDialog.cpp @@ -9,6 +9,7 @@ #include #include #include +#include #include #include "ImageMetadataLoader.h" diff --git a/src/app/RelinkablePathVisualization.cpp b/src/app/RelinkablePathVisualization.cpp index 5ed335186..1ed7a1237 100644 --- a/src/app/RelinkablePathVisualization.cpp +++ b/src/app/RelinkablePathVisualization.cpp @@ -7,9 +7,10 @@ #include #include #include +#include #include #include -#include +#include #include "ColorSchemeManager.h" #include "RelinkablePath.h" @@ -38,7 +39,6 @@ class RelinkablePathVisualization::ComponentButton : public QPushButton { RelinkablePathVisualization::RelinkablePathVisualization(QWidget* parent) : QWidget(parent), m_layout(new QHBoxLayout(this)) { m_layout->setSpacing(0); - m_layout->setMargin(0); } void RelinkablePathVisualization::clear() { @@ -54,7 +54,7 @@ void RelinkablePathVisualization::clear() { void RelinkablePathVisualization::setPath(const RelinkablePath& path, bool clickable) { clear(); - QStringList components(path.normalizedPath().split(QChar('/'), QString::SkipEmptyParts)); + QStringList components(path.normalizedPath().split(QChar('/'), Qt::SkipEmptyParts)); if (components.empty()) { return; } diff --git a/src/core/Application.cpp b/src/core/Application.cpp index ebc40a9bf..582df00ca 100644 --- a/src/core/Application.cpp +++ b/src/core/Application.cpp @@ -58,7 +58,7 @@ std::list Application::getLanguagesList() const { } void Application::initTranslations() { - const QStringList translationDirs(QString::fromUtf8(TRANSLATION_DIRS).split(QChar(':'), QString::SkipEmptyParts)); + const QStringList translationDirs(QString::fromUtf8(TRANSLATION_DIRS).split(QChar(':'), Qt::SkipEmptyParts)); const QStringList languageFileFilter("scantailor_*.qm"); for (const QString& path : translationDirs) { diff --git a/src/core/BackgroundTask.h b/src/core/BackgroundTask.h index 5c3b4d0fa..f6c064c8a 100644 --- a/src/core/BackgroundTask.h +++ b/src/core/BackgroundTask.h @@ -26,9 +26,9 @@ class BackgroundTask : public AbstractCommand, public TaskStatu Type type() const { return m_type; } - void cancel() override { m_cancelFlag.store(1); } + void cancel() override { m_cancelFlag.storeRelaxed(1); } - bool isCancelled() const override { return m_cancelFlag.load() != 0; } + bool isCancelled() const override { return m_cancelFlag.loadRelaxed() != 0; } /** * \brief If cancelled, throws CancelledException. diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index 68e3a7292..22bde4f15 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -121,7 +121,7 @@ add_library(core STATIC ${common_sources} ${common_ui_files}) target_link_libraries( core PRIVATE TIFF::TIFF PNG::PNG ZLIB::ZLIB JPEG::JPEG - PUBLIC Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Xml Qt5::Network Qt5::OpenGL Qt5::Svg + PUBLIC Qt6::Core Qt6::Gui Qt6::Widgets Qt6::OpenGLWidgets Qt6::Xml Qt6::Network Qt6::OpenGL Qt6::Svg imageproc zones fix_orientation page_split deskew select_content page_layout output) target_include_directories(core PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") @@ -137,4 +137,4 @@ add_subdirectory(filters/page_split) add_subdirectory(filters/deskew) add_subdirectory(filters/select_content) add_subdirectory(filters/page_layout) -add_subdirectory(filters/output) \ No newline at end of file +add_subdirectory(filters/output) diff --git a/src/core/DefaultParamsProfileManager.cpp b/src/core/DefaultParamsProfileManager.cpp index 7bf0b1e9e..e80490f3f 100644 --- a/src/core/DefaultParamsProfileManager.cpp +++ b/src/core/DefaultParamsProfileManager.cpp @@ -46,7 +46,7 @@ std::unique_ptr DefaultParamsProfileManager::readProfile(const QS QDir dir(m_path); QFileInfo profile(dir.absoluteFilePath(name + ".stp")); if (!profile.exists()) { - profile = dir.absoluteFilePath(name + ".xml"); + profile = QFileInfo(dir.absoluteFilePath(name + ".xml")); if (!profile.exists()) { if (status) { *status = IO_ERROR; @@ -149,7 +149,7 @@ bool DefaultParamsProfileManager::deleteProfile(const QString& name) const { QDir dir(m_path); QFileInfo profile(dir.absoluteFilePath(name + ".stp")); if (!profile.exists()) { - profile = dir.absoluteFilePath(name + ".xml"); + profile = QFileInfo(dir.absoluteFilePath(name + ".xml")); if (!profile.exists()) { return false; } diff --git a/src/core/ImageViewBase.cpp b/src/core/ImageViewBase.cpp index dc8a3e785..1d787a248 100644 --- a/src/core/ImageViewBase.cpp +++ b/src/core/ImageViewBase.cpp @@ -7,7 +7,7 @@ #include #include -#include +#include #include #include #include @@ -149,17 +149,7 @@ ImageViewBase::ImageViewBase(const QImage& image, if (ApplicationSettings::getInstance().isOpenGlEnabled()) { if (OpenGLSupport::supported()) { - QGLFormat format; - format.setSampleBuffers(true); - format.setStencil(true); - format.setAlpha(true); - format.setRgba(true); - format.setDepth(false); - - // Most of hardware refuses to work for us with direct rendering enabled. - format.setDirectRendering(false); - - setViewport(new QGLWidget(format)); + setViewport(new QOpenGLWidget()); } } @@ -511,7 +501,7 @@ void ImageViewBase::mouseMoveEvent(QMouseEvent* event) { event->setAccepted(true); updateStatusTipAndCursor(); maybeQueueRedraw(); - updateCursorPos(event->localPos()); + updateCursorPos(event->position()); } void ImageViewBase::wheelEvent(QWheelEvent* event) { @@ -550,7 +540,7 @@ void ImageViewBase::resizeEvent(QResizeEvent* event) { } } -void ImageViewBase::enterEvent(QEvent* event) { +void ImageViewBase::enterEvent(QEnterEvent* event) { viewport()->setFocus(); QAbstractScrollArea::enterEvent(event); } diff --git a/src/core/ImageViewBase.h b/src/core/ImageViewBase.h index 34efe6600..2155de3f4 100644 --- a/src/core/ImageViewBase.h +++ b/src/core/ImageViewBase.h @@ -240,7 +240,7 @@ class ImageViewBase : public QAbstractScrollArea { void resizeEvent(QResizeEvent* event) override; - void enterEvent(QEvent* event) override; + void enterEvent(QEnterEvent *event) override; void leaveEvent(QEvent* event) override; diff --git a/src/core/ProjectPages.cpp b/src/core/ProjectPages.cpp index 4507ab916..1737f3d5a 100644 --- a/src/core/ProjectPages.cpp +++ b/src/core/ProjectPages.cpp @@ -273,7 +273,7 @@ struct File { explicit File(const QString& fname) : fileName(fname) {} - explicit operator ImageFileInfo() const { return ImageFileInfo(fileName, metadata); } + explicit operator ImageFileInfo() const { return ImageFileInfo(QFileInfo(fileName), metadata); } }; } // anonymous namespace diff --git a/src/core/ProjectReader.cpp b/src/core/ProjectReader.cpp index 6fe6a4fbc..69686f1b3 100644 --- a/src/core/ProjectReader.cpp +++ b/src/core/ProjectReader.cpp @@ -4,7 +4,7 @@ #include "ProjectReader.h" #include -#include +#include #include "AbstractFilter.h" #include "FileNameDisambiguator.h" @@ -54,7 +54,7 @@ ProjectReader::ProjectReader(const QDomDocument& doc) // Load naming disambiguator. This needs to be done after processing pages. const QDomElement disambigEl(projectEl.namedItem("file-name-disambiguation").toElement()); m_disambiguator - = std::make_shared(disambigEl, boost::bind(&ProjectReader::expandFilePath, this, _1)); + = std::make_shared(disambigEl, boost::bind(&ProjectReader::expandFilePath, this, boost::placeholders::_1)); } ProjectReader::~ProjectReader() = default; diff --git a/src/core/ProjectWriter.cpp b/src/core/ProjectWriter.cpp index f6178dc90..2f240d551 100644 --- a/src/core/ProjectWriter.cpp +++ b/src/core/ProjectWriter.cpp @@ -20,7 +20,7 @@ #ifndef Q_MOC_RUN -#include +#include #endif @@ -77,7 +77,7 @@ bool ProjectWriter::write(const QString& filePath, const std::vector& rootEl.appendChild(processImages(doc)); rootEl.appendChild(processPages(doc)); rootEl.appendChild(m_outFileNameGen.disambiguator()->toXml(doc, "file-name-disambiguation", - boost::bind(&ProjectWriter::packFilePath, this, _1))); + boost::bind(&ProjectWriter::packFilePath, this, boost::placeholders::_1))); QDomElement filtersEl(doc.createElement("filters")); rootEl.appendChild(filtersEl); diff --git a/src/core/RelinkablePath.cpp b/src/core/RelinkablePath.cpp index e63b94dfa..1b1cef54a 100644 --- a/src/core/RelinkablePath.cpp +++ b/src/core/RelinkablePath.cpp @@ -12,7 +12,7 @@ QString RelinkablePath::normalize(const QString& path) { frontSlashes.replace(QChar('\\'), QLatin1String("/")); QStringList newComponents; - for (const QString& comp : frontSlashes.split(QChar('/'), QString::KeepEmptyParts)) { + for (const QString& comp : frontSlashes.split(QChar('/'), Qt::KeepEmptyParts)) { if (comp.isEmpty()) { if (newComponents.isEmpty() #if _WIN32 diff --git a/src/core/SmartFilenameOrdering.cpp b/src/core/SmartFilenameOrdering.cpp index c784db442..77f9602e3 100644 --- a/src/core/SmartFilenameOrdering.cpp +++ b/src/core/SmartFilenameOrdering.cpp @@ -4,6 +4,7 @@ #include "SmartFilenameOrdering.h" #include +#include bool SmartFilenameOrdering::operator()(const QFileInfo& lhs, const QFileInfo& rhs) const { // First compare directories. @@ -62,3 +63,11 @@ bool SmartFilenameOrdering::operator()(const QFileInfo& lhs, const QFileInfo& rh // them as equal, so let's do a usual comparision now. return lhsFname < rhsFname; } // () + +bool SmartFilenameOrdering::operator()(QString const& lhs, QString const& rhs) const +{ + QFileInfo lhs_i(lhs); + QFileInfo rhs_i(rhs); + return this->operator()(lhs_i, rhs_i); +} + diff --git a/src/core/SmartFilenameOrdering.h b/src/core/SmartFilenameOrdering.h index bf06919b5..1f4104390 100644 --- a/src/core/SmartFilenameOrdering.h +++ b/src/core/SmartFilenameOrdering.h @@ -5,6 +5,7 @@ #define SCANTAILOR_CORE_SMARTFILENAMEORDERING_H_ class QFileInfo; +class QString; class SmartFilenameOrdering { public: @@ -21,6 +22,7 @@ class SmartFilenameOrdering { * \return true if \p lhs should go before \p rhs. */ bool operator()(const QFileInfo& lhs, const QFileInfo& rhs) const; + bool operator()(QString const& lhs, QString const& rhs) const; }; diff --git a/src/core/TiffReader.cpp b/src/core/TiffReader.cpp index ab935864e..ca245505f 100644 --- a/src/core/TiffReader.cpp +++ b/src/core/TiffReader.cpp @@ -83,10 +83,10 @@ class TiffReader::TiffBuffer { struct TiffReader::TiffInfo { int width; int height; - uint16 bitsPerSample; - uint16 samplesPerPixel; - uint16 sampleFormat; - uint16 photometric; + uint16_t bitsPerSample; + uint16_t samplesPerPixel; + uint16_t sampleFormat; + uint16_t photometric; bool hostBigEndian; bool fileBigEndian; @@ -105,7 +105,7 @@ TiffReader::TiffInfo::TiffInfo(const TiffHandle& tif, const TiffHeader& header) photometric(PHOTOMETRIC_MINISBLACK), hostBigEndian(QSysInfo::ByteOrder == QSysInfo::BigEndian), fileBigEndian(header.signature() == TiffHeader::TIFF_BIG_ENDIAN) { - uint16 compression = 1; + uint16_t compression = 1; TIFFGetField(tif.handle(), TIFFTAG_COMPRESSION, &compression); switch (compression) { case COMPRESSION_CCITTFAX3: @@ -230,10 +230,10 @@ ImageMetadataLoader::Status TiffReader::readMetadata(QIODevice& device, return ImageMetadataLoader::LOADED; } -static void convertAbgrToArgb(const uint32* src, uint32* dst, int count) { +static void convertAbgrToArgb(const uint32_t* src, uint32_t* dst, int count) { for (int i = 0; i < count; ++i) { - const uint32 srcWord = src[i]; - uint32 dstWord = srcWord & 0xFF000000; // A + const uint32_t srcWord = src[i]; + uint32_t dstWord = srcWord & 0xFF000000; // A dstWord |= (srcWord & 0x00FF0000) >> 16; // B dstWord |= srcWord & 0x0000FF00; // G dstWord |= (srcWord & 0x000000FF) << 16; // R @@ -261,7 +261,7 @@ QImage TiffReader::readImage(QIODevice& device, const int pageNum) { return QImage(); } - if (!TIFFSetDirectory(tif.handle(), (uint16) pageNum)) { + if (!TIFFSetDirectory(tif.handle(), (uint16_t) pageNum)) { return QImage(); } @@ -282,25 +282,25 @@ QImage TiffReader::readImage(QIODevice& device, const int pageNum) { } // For ABGR -> ARGB conversion. - TiffBuffer tmpBuffer; - const uint32* srcLine = nullptr; + TiffBuffer tmpBuffer; + const uint32_t* srcLine = nullptr; if (image.bytesPerLine() == 4 * info.width) { // We can avoid creating a temporary buffer in this case. - if (!TIFFReadRGBAImageOriented(tif.handle(), info.width, info.height, (uint32*) image.bits(), ORIENTATION_TOPLEFT, + if (!TIFFReadRGBAImageOriented(tif.handle(), info.width, info.height, (uint32_t*) image.bits(), ORIENTATION_TOPLEFT, 0)) { return QImage(); } - srcLine = (const uint32*) image.bits(); + srcLine = (const uint32_t*) image.bits(); } else { - TiffBuffer(info.width * info.height).swap(tmpBuffer); + TiffBuffer(info.width * info.height).swap(tmpBuffer); if (!TIFFReadRGBAImageOriented(tif.handle(), info.width, info.height, tmpBuffer.data(), ORIENTATION_TOPLEFT, 0)) { return QImage(); } srcLine = tmpBuffer.data(); } - auto* dstLine = (uint32*) image.bits(); + auto* dstLine = (uint32_t*) image.bits(); assert(image.bytesPerLine() % 4 == 0); const int dstStride = image.bytesPerLine() / 4; for (int y = 0; y < info.height; ++y) { @@ -324,14 +324,14 @@ TiffReader::TiffHeader TiffReader::readHeader(QIODevice& device) { return TiffHeader(); } - const uint16 versionByte0 = data[2]; - const uint16 versionByte1 = data[3]; + const uint16_t versionByte0 = data[2]; + const uint16_t versionByte1 = data[3]; if ((data[0] == 0x4d) && (data[1] == 0x4d)) { - const uint16 version = (versionByte0 << 8) + versionByte1; + const uint16_t version = (versionByte0 << 8) + versionByte1; return TiffHeader(TiffHeader::TIFF_BIG_ENDIAN, version); } else if ((data[0] == 0x49) && (data[1] == 0x49)) { - const uint16 version = (versionByte1 << 8) + versionByte0; + const uint16_t version = (versionByte1 << 8) + versionByte0; return TiffHeader(TiffHeader::TIFF_LITTLE_ENDIAN, version); } else { return TiffHeader(); @@ -349,9 +349,9 @@ bool TiffReader::checkHeader(const TiffHeader& header) { } ImageMetadata TiffReader::currentPageMetadata(const TiffHandle& tif) { - uint32 width = 0, height = 0; + uint32_t width = 0, height = 0; float xres = 0, yres = 0; - uint16 resUnit = 0; + uint16_t resUnit = 0; TIFFGetField(tif.handle(), TIFFTAG_IMAGEWIDTH, &width); TIFFGetField(tif.handle(), TIFFTAG_IMAGELENGTH, &height); TIFFGetField(tif.handle(), TIFFTAG_XRESOLUTION, &xres); @@ -389,9 +389,9 @@ QImage TiffReader::extractBinaryOrIndexed8Image(const TiffHandle& tif, const Tif image.setColorCount(numColors); if (info.photometric == PHOTOMETRIC_PALETTE) { - uint16* pr = nullptr; - uint16* pg = nullptr; - uint16* pb = nullptr; + uint16_t* pr = nullptr; + uint16_t* pg = nullptr; + uint16_t* pb = nullptr; TIFFGetField(tif.handle(), TIFFTAG_COLORMAP, &pr, &pg, &pb); if (!pr || !pg || !pb) { return QImage(); @@ -403,10 +403,10 @@ QImage TiffReader::extractBinaryOrIndexed8Image(const TiffHandle& tif, const Tif } const double f = 255.0 / 65535.0; for (int i = 0; i < numColors; ++i) { - const auto r = (uint32) std::lround(pr[i] * f); - const auto g = (uint32) std::lround(pg[i] * f); - const auto b = (uint32) std::lround(pb[i] * f); - const uint32 a = 0xFF000000; + const auto r = (uint32_t) std::lround(pr[i] * f); + const auto g = (uint32_t) std::lround(pg[i] * f); + const auto b = (uint32_t) std::lround(pb[i] * f); + const uint32_t a = 0xFF000000; image.setColor(i, a | (r << 16) | (g << 8) | b); } } else if (info.photometric == PHOTOMETRIC_MINISBLACK) { @@ -442,7 +442,7 @@ void TiffReader::readLines(const TiffHandle& tif, QImage& image) { } void TiffReader::readAndUnpackLines(const TiffHandle& tif, const TiffInfo& info, QImage& image) { - TiffBuffer buf(TIFFScanlineSize(tif.handle())); + TiffBuffer buf(TIFFScanlineSize(tif.handle())); const int width = image.width(); const int height = image.height(); @@ -455,7 +455,7 @@ void TiffReader::readAndUnpackLines(const TiffHandle& tif, const TiffInfo& info, unsigned accum = 0; int bitsInAccum = 0; - const uint8* src = buf.data(); + const uint8_t* src = buf.data(); auto* dst = image.scanLine(y); for (int i = width; i > 0; --i, ++dst) { @@ -466,7 +466,7 @@ void TiffReader::readAndUnpackLines(const TiffHandle& tif, const TiffInfo& info, ++src; } bitsInAccum -= bitsPerSample; - *dst = static_cast((accum >> bitsInAccum) & dstMask); + *dst = static_cast((accum >> bitsInAccum) & dstMask); } } } diff --git a/src/core/TiffWriter.cpp b/src/core/TiffWriter.cpp index 0713e05ad..00fea4607 100644 --- a/src/core/TiffWriter.cpp +++ b/src/core/TiffWriter.cpp @@ -139,8 +139,8 @@ bool TiffWriter::writeImage(QIODevice& device, const QImage& image) { return false; } - TIFFSetField(tif.handle(), TIFFTAG_IMAGEWIDTH, uint32(image.width())); - TIFFSetField(tif.handle(), TIFFTAG_IMAGELENGTH, uint32(image.height())); + TIFFSetField(tif.handle(), TIFFTAG_IMAGEWIDTH, uint32_t(image.width())); + TIFFSetField(tif.handle(), TIFFTAG_IMAGELENGTH, uint32_t(image.height())); TIFFSetField(tif.handle(), TIFFTAG_SAMPLEFORMAT, SAMPLEFORMAT_UINT); TIFFSetField(tif.handle(), TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG); setDpm(tif, Dpm(image)); @@ -169,9 +169,9 @@ void TiffWriter::setDpm(const TiffHandle& tif, const Dpm& dpm) { return; } - auto xres = static_cast(0.01 * dpm.horizontal()); // cm - auto yres = static_cast(0.01 * dpm.vertical()); // cm - uint16 unit = RESUNIT_CENTIMETER; + auto xres = 0.01 * dpm.horizontal(); // cm + auto yres = 0.01 * dpm.vertical(); // cm + uint16_t unit = RESUNIT_CENTIMETER; // If we have a round (or almost round) DPI, then // write it as DPI rather than dots per cm. @@ -180,8 +180,8 @@ void TiffWriter::setDpm(const TiffHandle& tif, const Dpm& dpm) { const double roundedXdpi = std::floor(xdpi + 0.5); const double roundedYdpi = std::floor(ydpi + 0.5); if ((std::fabs(xdpi - roundedXdpi) < 0.02) && (std::fabs(ydpi - roundedYdpi) < 0.02)) { - xres = (float) roundedXdpi; - yres = (float) roundedYdpi; + xres = roundedXdpi; + yres = roundedYdpi; unit = RESUNIT_INCH; } @@ -191,10 +191,10 @@ void TiffWriter::setDpm(const TiffHandle& tif, const Dpm& dpm) { } bool TiffWriter::writeBitonalOrIndexed8Image(const TiffHandle& tif, const QImage& image) { - TIFFSetField(tif.handle(), TIFFTAG_SAMPLESPERPIXEL, uint16(1)); + TIFFSetField(tif.handle(), TIFFTAG_SAMPLESPERPIXEL, uint16_t(1)); - uint16 bitsPerSample = 8; - uint16 photometric = PHOTOMETRIC_PALETTE; + uint16_t bitsPerSample = 8; + uint16_t photometric = PHOTOMETRIC_PALETTE; if (image.isGrayscale()) { photometric = PHOTOMETRIC_MINISBLACK; } @@ -223,9 +223,9 @@ bool TiffWriter::writeBitonalOrIndexed8Image(const TiffHandle& tif, const QImage if (image.format() == QImage::Format_Indexed8) { TIFFSetField(tif.handle(), TIFFTAG_COMPRESSION, - uint16(ApplicationSettings::getInstance().getTiffColorCompression())); + uint16_t(ApplicationSettings::getInstance().getTiffColorCompression())); } else { - TIFFSetField(tif.handle(), TIFFTAG_COMPRESSION, uint16(ApplicationSettings::getInstance().getTiffBwCompression())); + TIFFSetField(tif.handle(), TIFFTAG_COMPRESSION, uint16_t(ApplicationSettings::getInstance().getTiffBwCompression())); } TIFFSetField(tif.handle(), TIFFTAG_BITSPERSAMPLE, bitsPerSample); @@ -237,9 +237,9 @@ bool TiffWriter::writeBitonalOrIndexed8Image(const TiffHandle& tif, const QImage if (colorTable.size() > numColors) { colorTable.resize(numColors); } - std::vector pr(numColors, 0); - std::vector pg(numColors, 0); - std::vector pb(numColors, 0); + std::vector pr(numColors, 0); + std::vector pg(numColors, 0); + std::vector pb(numColors, 0); for (int i = 0; i < colorTable.size(); ++i) { const QRgb rgb = colorTable[i]; pr[i] = static_cast((0xFFFF * qRed(rgb) + 128) / 255); @@ -263,9 +263,9 @@ bool TiffWriter::writeBitonalOrIndexed8Image(const TiffHandle& tif, const QImage bool TiffWriter::writeRGB32Image(const TiffHandle& tif, const QImage& image) { assert(image.format() == QImage::Format_RGB32); - TIFFSetField(tif.handle(), TIFFTAG_SAMPLESPERPIXEL, uint16(3)); - TIFFSetField(tif.handle(), TIFFTAG_COMPRESSION, uint16(ApplicationSettings::getInstance().getTiffColorCompression())); - TIFFSetField(tif.handle(), TIFFTAG_BITSPERSAMPLE, uint16(8)); + TIFFSetField(tif.handle(), TIFFTAG_SAMPLESPERPIXEL, uint16_t(3)); + TIFFSetField(tif.handle(), TIFFTAG_COMPRESSION, uint16_t(ApplicationSettings::getInstance().getTiffColorCompression())); + TIFFSetField(tif.handle(), TIFFTAG_BITSPERSAMPLE, uint16_t(8)); TIFFSetField(tif.handle(), TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_RGB); const int width = image.width(); @@ -296,9 +296,9 @@ bool TiffWriter::writeRGB32Image(const TiffHandle& tif, const QImage& image) { bool TiffWriter::writeARGB32Image(const TiffHandle& tif, const QImage& image) { assert(image.format() == QImage::Format_ARGB32); - TIFFSetField(tif.handle(), TIFFTAG_SAMPLESPERPIXEL, uint16(4)); - TIFFSetField(tif.handle(), TIFFTAG_COMPRESSION, uint16(ApplicationSettings::getInstance().getTiffColorCompression())); - TIFFSetField(tif.handle(), TIFFTAG_BITSPERSAMPLE, uint16(8)); + TIFFSetField(tif.handle(), TIFFTAG_SAMPLESPERPIXEL, uint16_t(4)); + TIFFSetField(tif.handle(), TIFFTAG_COMPRESSION, uint16_t(ApplicationSettings::getInstance().getTiffColorCompression())); + TIFFSetField(tif.handle(), TIFFTAG_BITSPERSAMPLE, uint16_t(8)); TIFFSetField(tif.handle(), TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_RGB); const int width = image.width(); diff --git a/src/core/ZoneEditorBase.cpp b/src/core/ZoneEditorBase.cpp index 9814ed0ed..9cc23ff47 100644 --- a/src/core/ZoneEditorBase.cpp +++ b/src/core/ZoneEditorBase.cpp @@ -5,7 +5,7 @@ #include #include -#include +#include #include #include "Utils.h" diff --git a/src/core/filters/deskew/ImageView.cpp b/src/core/filters/deskew/ImageView.cpp index a3c42c7cf..70c7d3672 100644 --- a/src/core/filters/deskew/ImageView.cpp +++ b/src/core/filters/deskew/ImageView.cpp @@ -11,7 +11,7 @@ #include #include #include -#include +#include #include "ImagePresentation.h" @@ -35,7 +35,7 @@ ImageView::ImageView(const QImage& image, const QImage& downscaledImage, const I for (int i = 0; i < 2; ++i) { m_handles[i].setHitRadius(hitRadius); m_handles[i].setPositionCallback(boost::bind(&ImageView::handlePosition, this, i)); - m_handles[i].setMoveRequestCallback(boost::bind(&ImageView::handleMoveRequest, this, i, _1)); + m_handles[i].setMoveRequestCallback(boost::bind(&ImageView::handleMoveRequest, this, i, boost::placeholders::_1)); m_handles[i].setDragFinishedCallback(boost::bind(&ImageView::dragFinished, this)); m_handleInteractors[i].setProximityStatusTip(tip); @@ -155,7 +155,7 @@ void ImageView::onWheelEvent(QWheelEvent* event, InteractionState& interaction) } event->accept(); - const double delta = degreeFraction * event->delta() / 120; + const double delta = degreeFraction * event->angleDelta().y() / 120; double angleDeg = m_xform.postRotation() - delta; angleDeg = qBound(-m_maxRotationDeg, angleDeg, m_maxRotationDeg); if (angleDeg == m_xform.postRotation()) { @@ -244,4 +244,4 @@ std::pair ImageView::getRotationHandles(const QRectF& arcSquar rightHandle += arcCenter; return std::make_pair(leftHandle, rightHandle); } -} // namespace deskew \ No newline at end of file +} // namespace deskew diff --git a/src/core/filters/output/ColorPickupInteraction.cpp b/src/core/filters/output/ColorPickupInteraction.cpp index 1b7f36441..6e3c41d77 100644 --- a/src/core/filters/output/ColorPickupInteraction.cpp +++ b/src/core/filters/output/ColorPickupInteraction.cpp @@ -5,7 +5,7 @@ #include #include -#include +#include #include "ImageViewBase.h" #include "ScopedIncDec.h" @@ -358,4 +358,4 @@ const uint32_t ColorPickupInteraction::m_sBitUnmixingLUT[3][256] 0x00020506, 0x00020507, 0x00030406, 0x00030407, 0x00030506, 0x00030507, 0x00020604, 0x00020605, 0x00020704, 0x00020705, 0x00030604, 0x00030605, 0x00030704, 0x00030705, 0x00020606, 0x00020607, 0x00020706, 0x00020707, 0x00030606, 0x00030607, 0x00030706, 0x00030707}}; -} // namespace output \ No newline at end of file +} // namespace output diff --git a/src/core/filters/output/DewarpingView.cpp b/src/core/filters/output/DewarpingView.cpp index 646977b78..4785e8d60 100644 --- a/src/core/filters/output/DewarpingView.cpp +++ b/src/core/filters/output/DewarpingView.cpp @@ -7,8 +7,8 @@ #include #include -#include -#include +#include +#include #include "ImagePresentation.h" #include "ToLineProjector.h" @@ -79,8 +79,8 @@ DewarpingView::DewarpingView(const QImage& image, ++curveIdx; spline->setModifiedCallback(boost::bind(&DewarpingView::curveModified, this, curveIdx)); spline->setDragFinishedCallback(boost::bind(&DewarpingView::dragFinished, this)); - spline->setStorageTransform(boost::bind(&DewarpingView::sourceToWidget, this, _1), - boost::bind(&DewarpingView::widgetToSource, this, _1)); + spline->setStorageTransform(boost::bind(&DewarpingView::sourceToWidget, this, boost::placeholders::_1), + boost::bind(&DewarpingView::widgetToSource, this, boost::placeholders::_1)); makeLastFollower(*spline); } @@ -214,8 +214,8 @@ void DewarpingView::onPaint(QPainter& painter, const InteractionState& interacti const dewarping::Curve& bottomCurve = m_distortionModel.bottomCurve(); painter.drawLine(topCurve.polyline().front(), bottomCurve.polyline().front()); painter.drawLine(topCurve.polyline().back(), bottomCurve.polyline().back()); - painter.drawPolyline(QVector::fromStdVector(topCurve.polyline())); - painter.drawPolyline(QVector::fromStdVector(bottomCurve.polyline())); + painter.drawPolyline(QVector(topCurve.polyline().begin(), topCurve.polyline().end())); + painter.drawPolyline(QVector(bottomCurve.polyline().begin(), bottomCurve.polyline().end())); } paintXSpline(painter, interaction, m_topSpline); @@ -348,4 +348,4 @@ QPolygonF DewarpingView::virtMarginArea(int marginIdx) const { poly << vertBoundary.pointAt(min) + normal.pointAt(normalMax) - normal.p1(); return m_virtDisplayArea.intersected(poly); } // DewarpingView::virtMarginArea -} // namespace output \ No newline at end of file +} // namespace output diff --git a/src/core/filters/output/FillZoneEditor.cpp b/src/core/filters/output/FillZoneEditor.cpp index e241071b0..d85bcba29 100644 --- a/src/core/filters/output/FillZoneEditor.cpp +++ b/src/core/filters/output/FillZoneEditor.cpp @@ -5,7 +5,7 @@ #include #include -#include +#include #include #include "ImagePresentation.h" @@ -50,7 +50,7 @@ FillZoneEditor::FillZoneEditor(const QImage& image, setMouseTracking(true); - context().setContextMenuInteractionCreator(boost::bind(&FillZoneEditor::createContextMenuInteraction, this, _1)); + context().setContextMenuInteractionCreator(boost::bind(&FillZoneEditor::createContextMenuInteraction, this, boost::placeholders::_1)); connect(&zones(), SIGNAL(committed()), SLOT(commitZones())); @@ -158,8 +158,8 @@ std::vector FillZoneEditor::MenuCustomizer::operator()(cons const StdMenuItems& stdItems) { std::vector items; items.reserve(2); - items.emplace_back(tr("Pick color"), boost::bind(&FillZoneEditor::createColorPickupInteraction, m_editor, zone, _1)); + items.emplace_back(tr("Pick color"), boost::bind(&FillZoneEditor::createColorPickupInteraction, m_editor, zone, boost::placeholders::_1)); items.push_back(stdItems.deleteItem); return items; } -} // namespace output \ No newline at end of file +} // namespace output diff --git a/src/core/filters/output/OutputFileParams.cpp b/src/core/filters/output/OutputFileParams.cpp index ccf0002ed..b054695af 100644 --- a/src/core/filters/output/OutputFileParams.cpp +++ b/src/core/filters/output/OutputFileParams.cpp @@ -13,7 +13,7 @@ OutputFileParams::OutputFileParams() : m_size(-1), m_modifiedTime(0) {} OutputFileParams::OutputFileParams(const QFileInfo& fileInfo) : m_size(-1), m_modifiedTime(0) { if (fileInfo.exists()) { m_size = fileInfo.size(); - m_modifiedTime = fileInfo.lastModified().toTime_t(); + m_modifiedTime = fileInfo.lastModified().toSecsSinceEpoch(); } } @@ -36,4 +36,4 @@ QDomElement OutputFileParams::toXml(QDomDocument& doc, const QString& name) cons return QDomElement(); } } -} // namespace output \ No newline at end of file +} // namespace output diff --git a/src/core/filters/output/OutputGenerator.cpp b/src/core/filters/output/OutputGenerator.cpp index 48ce8bbc0..a011b56d7 100644 --- a/src/core/filters/output/OutputGenerator.cpp +++ b/src/core/filters/output/OutputGenerator.cpp @@ -46,7 +46,7 @@ #include #include #include -#include +#include #include #include @@ -645,7 +645,7 @@ void applyFillZonesInPlace(QImage& img, using MapPointFunc = QPointF (QTransform::*)(const QPointF&) const; void applyFillZonesInPlace(QImage& img, const ZoneSet& zones, const QTransform& transform, bool antialiasing = true) { - applyFillZonesInPlace(img, zones, boost::bind(static_cast(&QTransform::map), transform, _1), + applyFillZonesInPlace(img, zones, boost::bind(static_cast(&QTransform::map), transform, boost::placeholders::_1), antialiasing); } @@ -665,7 +665,7 @@ void applyFillZonesInPlace(BinaryImage& img, } void applyFillZonesInPlace(BinaryImage& img, const ZoneSet& zones, const QTransform& transform) { - applyFillZonesInPlace(img, zones, boost::bind(static_cast(&QTransform::map), transform, _1)); + applyFillZonesInPlace(img, zones, boost::bind(static_cast(&QTransform::map), transform, boost::placeholders::_1)); } void applyFillZonesToMixedInPlace(QImage& img, @@ -692,7 +692,7 @@ void applyFillZonesToMixedInPlace(QImage& img, const QTransform& transform, const BinaryImage& pictureMask, bool binaryMode) { - applyFillZonesToMixedInPlace(img, zones, boost::bind(static_cast(&QTransform::map), transform, _1), + applyFillZonesToMixedInPlace(img, zones, boost::bind(static_cast(&QTransform::map), transform, boost::placeholders::_1), pictureMask, binaryMode); } @@ -714,7 +714,8 @@ void applyFillZonesToMask(BinaryImage& mask, const ZoneSet& zones, const QTransform& transform, const BWColor fillColor = BLACK) { - applyFillZonesToMask(mask, zones, boost::bind((MapPointFunc) &QTransform::map, transform, _1), fillColor); + applyFillZonesToMask(mask, zones, boost::bind((MapPointFunc) &QTransform::map, transform, + boost::placeholders::_1), fillColor); } const int MultiplyDeBruijnBitPosition[32] = {0, 1, 28, 2, 29, 14, 24, 3, 30, 22, 20, 15, 25, 17, 4, 8, @@ -1583,7 +1584,7 @@ std::unique_ptr OutputGenerator::Processor::processWithDewarping(Zo auto mapper = std::make_shared(distortionModel, depthPerception.value(), m_xform.transform(), m_croppedContentRect, rotateXform); const boost::function origToOutput( - boost::bind(&DewarpingPointMapper::mapToDewarpedSpace, mapper, _1)); + boost::bind(&DewarpingPointMapper::mapToDewarpedSpace, mapper, boost::placeholders::_1)); BinaryImage dewarpingContentAreaMask(m_inputGrayImage.size(), BLACK); { diff --git a/src/core/filters/output/PictureZoneEditor.cpp b/src/core/filters/output/PictureZoneEditor.cpp index 529abb52b..78623f611 100644 --- a/src/core/filters/output/PictureZoneEditor.cpp +++ b/src/core/filters/output/PictureZoneEditor.cpp @@ -9,7 +9,7 @@ #include #include -#include +#include #include #include "BackgroundExecutor.h" @@ -90,7 +90,7 @@ PictureZoneEditor::PictureZoneEditor(const QImage& image, setMouseTracking(true); - context().setShowPropertiesCommand(boost::bind(&PictureZoneEditor::showPropertiesDialog, this, _1)); + context().setShowPropertiesCommand(boost::bind(&PictureZoneEditor::showPropertiesDialog, this, boost::placeholders::_1)); connect(&zones(), SIGNAL(committed()), SLOT(commitZones())); @@ -318,4 +318,4 @@ void PictureZoneEditor::MaskTransformTask::Result::operator()() { m_zoneEditor->screenPictureMaskBuilt(m_origin, m_mask); } } -} // namespace output \ No newline at end of file +} // namespace output diff --git a/src/core/filters/output/TabbedImageView.cpp b/src/core/filters/output/TabbedImageView.cpp index daae84672..c32fdd0e5 100644 --- a/src/core/filters/output/TabbedImageView.cpp +++ b/src/core/filters/output/TabbedImageView.cpp @@ -4,7 +4,7 @@ #include #include -#include +#include #include "../../Utils.h" #include "DespeckleView.h" @@ -16,8 +16,12 @@ TabbedImageView::TabbedImageView(QWidget* parent) : QTabWidget(parent), m_prevIm connect(this, SIGNAL(currentChanged(int)), SLOT(tabChangedSlot(int))); setStatusTip(tr("Use Ctrl+1..5 to switch the tabs.")); + m_tabShortcuts[0] = new QShortcut(Qt::CTRL | Qt::Key_1, this); + m_tabShortcuts[1] = new QShortcut(Qt::CTRL | Qt::Key_2, this); + m_tabShortcuts[2] = new QShortcut(Qt::CTRL | Qt::Key_3, this); + m_tabShortcuts[3] = new QShortcut(Qt::CTRL | Qt::Key_4, this); + m_tabShortcuts[4] = new QShortcut(Qt::CTRL | Qt::Key_5, this); for (int i = 0; i < 5; ++i) { - m_tabShortcuts[i] = new QShortcut(static_cast(Qt::CTRL + (Qt::Key_1 + i)), this); m_tabShortcuts[i]->setAutoRepeat(false); connect(m_tabShortcuts[i], &QShortcut::activated, std::bind(&QTabWidget::setCurrentIndex, this, i)); } diff --git a/src/core/filters/output/Task.cpp b/src/core/filters/output/Task.cpp index 276747df0..e4dbfb217 100644 --- a/src/core/filters/output/Task.cpp +++ b/src/core/filters/output/Task.cpp @@ -9,7 +9,7 @@ #include #include -#include +#include #include #include "DebugImagesImpl.h" @@ -505,10 +505,10 @@ void Task::UiUpdater::updateUI(FilterUiInterface* ui) { auto imageView = std::make_unique(m_outputImage, m_downscaledOutputImage); const QPixmap downscaledOutputPixmap(imageView->downscaledPixmap()); tabImageRectMap->insert(std::pair(TAB_OUTPUT, m_xform.resultingRect())); - + QList tmp_list(m_xform.resultingPreCropArea()); auto dewarpingView = std::make_unique( m_origImage, m_downscaledOrigImage, m_xform.transform(), - PolygonUtils::convexHull(m_xform.resultingPreCropArea().toStdVector()), m_virtContentRect, m_pageId, + PolygonUtils::convexHull(std::vector(tmp_list.begin(), tmp_list.end())), m_virtContentRect, m_pageId, m_params.dewarpingOptions(), m_params.distortionModel(), optWidget->depthPerception()); const QPixmap downscaledOrigPixmap(dewarpingView->downscaledPixmap()); QObject::connect(optWidget, SIGNAL(depthPerceptionChanged(double)), dewarpingView.get(), @@ -543,12 +543,12 @@ void Task::UiUpdater::updateUI(FilterUiInterface* ui) { = Utils::rotate(m_params.dewarpingOptions().getPostDeskewAngle(), m_xform.resultingRect().toRect()); auto mapper = std::make_shared(m_params.distortionModel(), m_params.depthPerception().value(), m_xform.transform(), m_virtContentRect, rotateXform); - origToOutput = boost::bind(&DewarpingPointMapper::mapToDewarpedSpace, mapper, _1); - outputToOrig = boost::bind(&DewarpingPointMapper::mapToWarpedSpace, mapper, _1); + origToOutput = boost::bind(&DewarpingPointMapper::mapToDewarpedSpace, mapper, boost::placeholders::_1); + outputToOrig = boost::bind(&DewarpingPointMapper::mapToWarpedSpace, mapper, boost::placeholders::_1); } else { using MapPointFunc = QPointF (QTransform::*)(const QPointF&) const; - origToOutput = boost::bind((MapPointFunc) &QTransform::map, m_xform.transform(), _1); - outputToOrig = boost::bind((MapPointFunc) &QTransform::map, m_xform.transformBack(), _1); + origToOutput = boost::bind((MapPointFunc) &QTransform::map, m_xform.transform(), boost::placeholders::_1); + outputToOrig = boost::bind((MapPointFunc) &QTransform::map, m_xform.transformBack(), boost::placeholders::_1); } auto fillZoneEditor = std::make_unique(m_outputImage, downscaledOutputPixmap, origToOutput, @@ -582,4 +582,4 @@ void Task::UiUpdater::updateUI(FilterUiInterface* ui) { ui->setImageWidget(tabWidget.release(), ui->TRANSFER_OWNERSHIP, m_dbg.get()); } // Task::UiUpdater::updateUI -} // namespace output \ No newline at end of file +} // namespace output diff --git a/src/core/filters/page_layout/ImageView.cpp b/src/core/filters/page_layout/ImageView.cpp index 586026ded..8a65d047f 100644 --- a/src/core/filters/page_layout/ImageView.cpp +++ b/src/core/filters/page_layout/ImageView.cpp @@ -12,7 +12,7 @@ #include #include #include -#include +#include #include #include "ImagePresentation.h" @@ -72,28 +72,28 @@ ImageView::ImageView(const std::shared_ptr& settings, // Proximity. m_innerCorners[i].setProximityCallback( - boost::bind(&ImageView::cornerProximity, this, masks_by_corner[i], &m_innerRect, _1)); + boost::bind(&ImageView::cornerProximity, this, masks_by_corner[i], &m_innerRect, boost::placeholders::_1)); m_middleCorners[i].setProximityCallback( - boost::bind(&ImageView::cornerProximity, this, masks_by_corner[i], &m_middleRect, _1)); + boost::bind(&ImageView::cornerProximity, this, masks_by_corner[i], &m_middleRect, boost::placeholders::_1)); m_innerEdges[i].setProximityCallback( - boost::bind(&ImageView::edgeProximity, this, masks_by_edge[i], &m_innerRect, _1)); + boost::bind(&ImageView::edgeProximity, this, masks_by_edge[i], &m_innerRect, boost::placeholders::_1)); m_middleEdges[i].setProximityCallback( - boost::bind(&ImageView::edgeProximity, this, masks_by_edge[i], &m_middleRect, _1)); + boost::bind(&ImageView::edgeProximity, this, masks_by_edge[i], &m_middleRect, boost::placeholders::_1)); // Drag initiation. - m_innerCorners[i].setDragInitiatedCallback(boost::bind(&ImageView::dragInitiated, this, _1)); - m_middleCorners[i].setDragInitiatedCallback(boost::bind(&ImageView::dragInitiated, this, _1)); - m_innerEdges[i].setDragInitiatedCallback(boost::bind(&ImageView::dragInitiated, this, _1)); - m_middleEdges[i].setDragInitiatedCallback(boost::bind(&ImageView::dragInitiated, this, _1)); + m_innerCorners[i].setDragInitiatedCallback(boost::bind(&ImageView::dragInitiated, this, boost::placeholders::_1)); + m_middleCorners[i].setDragInitiatedCallback(boost::bind(&ImageView::dragInitiated, this, boost::placeholders::_1)); + m_innerEdges[i].setDragInitiatedCallback(boost::bind(&ImageView::dragInitiated, this, boost::placeholders::_1)); + m_middleEdges[i].setDragInitiatedCallback(boost::bind(&ImageView::dragInitiated, this, boost::placeholders::_1)); // Drag continuation. m_innerCorners[i].setDragContinuationCallback( - boost::bind(&ImageView::innerRectDragContinuation, this, masks_by_corner[i], _1)); + boost::bind(&ImageView::innerRectDragContinuation, this, masks_by_corner[i], boost::placeholders::_1)); m_middleCorners[i].setDragContinuationCallback( - boost::bind(&ImageView::middleRectDragContinuation, this, masks_by_corner[i], _1)); + boost::bind(&ImageView::middleRectDragContinuation, this, masks_by_corner[i], boost::placeholders::_1)); m_innerEdges[i].setDragContinuationCallback( - boost::bind(&ImageView::innerRectDragContinuation, this, masks_by_edge[i], _1)); + boost::bind(&ImageView::innerRectDragContinuation, this, masks_by_edge[i], boost::placeholders::_1)); m_middleEdges[i].setDragContinuationCallback( - boost::bind(&ImageView::middleRectDragContinuation, this, masks_by_edge[i], _1)); + boost::bind(&ImageView::middleRectDragContinuation, this, masks_by_edge[i], boost::placeholders::_1)); // Drag finishing. m_innerCorners[i].setDragFinishedCallback(boost::bind(&ImageView::dragFinished, this)); m_middleCorners[i].setDragFinishedCallback(boost::bind(&ImageView::dragFinished, this)); @@ -128,9 +128,9 @@ ImageView::ImageView(const std::shared_ptr& settings, } { - m_innerRectArea.setProximityCallback(boost::bind(&ImageView::rectProximity, this, boost::ref(m_innerRect), _1)); - m_innerRectArea.setDragInitiatedCallback(boost::bind(&ImageView::dragInitiated, this, _1)); - m_innerRectArea.setDragContinuationCallback(boost::bind(&ImageView::innerRectMoveRequest, this, _1, _2)); + m_innerRectArea.setProximityCallback(boost::bind(&ImageView::rectProximity, this, boost::ref(m_innerRect), boost::placeholders::_1)); + m_innerRectArea.setDragInitiatedCallback(boost::bind(&ImageView::dragInitiated, this, boost::placeholders::_1)); + m_innerRectArea.setDragContinuationCallback(boost::bind(&ImageView::innerRectMoveRequest, this, boost::placeholders::_1, boost::placeholders::_2)); m_innerRectArea.setDragFinishedCallback(boost::bind(&ImageView::dragFinished, this)); m_innerRectAreaHandler.setObject(&m_innerRectArea); m_innerRectAreaHandler.setProximityStatusTip(tr("Hold left mouse button to drag the page content.")); @@ -790,7 +790,7 @@ void ImageView::syncGuidesSettings() { void ImageView::setupGuideInteraction(const int index) { m_draggableGuides[index].setProximityPriority(1); m_draggableGuides[index].setPositionCallback(boost::bind(&ImageView::guidePosition, this, index)); - m_draggableGuides[index].setMoveRequestCallback(boost::bind(&ImageView::guideMoveRequest, this, index, _1)); + m_draggableGuides[index].setMoveRequestCallback(boost::bind(&ImageView::guideMoveRequest, this, index, boost::placeholders::_1)); m_draggableGuides[index].setDragFinishedCallback(boost::bind(&ImageView::guideDragFinished, this)); const Qt::CursorShape cursorShape diff --git a/src/core/filters/page_split/ImageView.cpp b/src/core/filters/page_split/ImageView.cpp index a8d76885e..4e83cc498 100644 --- a/src/core/filters/page_split/ImageView.cpp +++ b/src/core/filters/page_split/ImageView.cpp @@ -7,7 +7,7 @@ #include #include -#include +#include #include #include @@ -66,7 +66,7 @@ void ImageView::setupCuttersInteraction() { for (int j = 0; j < 2; ++j) { // Loop over handles. m_handles[i][j].setHitRadius(hitRadius); m_handles[i][j].setPositionCallback(boost::bind(&ImageView::handlePosition, this, i, j)); - m_handles[i][j].setMoveRequestCallback(boost::bind(&ImageView::handleMoveRequest, this, i, j, _1)); + m_handles[i][j].setMoveRequestCallback(boost::bind(&ImageView::handleMoveRequest, this, i, j, boost::placeholders::_1)); m_handles[i][j].setDragFinishedCallback(boost::bind(&ImageView::dragFinished, this)); m_handleInteractors[i][j].setObject(&m_handles[i][j]); @@ -75,7 +75,7 @@ void ImageView::setupCuttersInteraction() { } m_lineSegments[i].setPositionCallback(boost::bind(&ImageView::linePosition, this, i)); - m_lineSegments[i].setMoveRequestCallback(boost::bind(&ImageView::lineMoveRequest, this, i, _1)); + m_lineSegments[i].setMoveRequestCallback(boost::bind(&ImageView::lineMoveRequest, this, i, boost::placeholders::_1)); m_lineSegments[i].setDragFinishedCallback(boost::bind(&ImageView::dragFinished, this)); m_lineInteractors[i].setObject(&m_lineSegments[i]); @@ -207,8 +207,8 @@ QLineF ImageView::customInscribedCutterLine(const QLineF& line, const QRectF& re QPointF topPt; QPointF bottomPt; - line.intersect(QLineF(rect.topLeft(), rect.topRight()), &topPt); - line.intersect(QLineF(rect.bottomLeft(), rect.bottomRight()), &bottomPt); + line.intersects(QLineF(rect.topLeft(), rect.topRight()), &topPt); + line.intersects(QLineF(rect.bottomLeft(), rect.bottomRight()), &bottomPt); const double topX = qBound(rect.left(), topPt.x(), rect.right()); const double bottomX = qBound(rect.left(), bottomPt.x(), rect.right()); @@ -234,8 +234,8 @@ void ImageView::handleMoveRequest(int lineIdx, int handleIdx, const QPointF& pos QPointF pTopI; QPointF pBottomI; QLineF anotherLine = virtualToWidget().map(m_virtLayout.cutterLine(i)); - anotherLine.intersect(QLineF(validArea.topLeft(), validArea.topRight()), &pTopI); - anotherLine.intersect(QLineF(validArea.bottomLeft(), validArea.bottomRight()), &pBottomI); + anotherLine.intersects(QLineF(validArea.topLeft(), validArea.topRight()), &pTopI); + anotherLine.intersects(QLineF(validArea.bottomLeft(), validArea.bottomRight()), &pBottomI); if ((pTopI.x() < minXTop) || (pTopI.x() > maxXTop) || (pBottomI.x() < minXBottom) || (pBottomI.x() > maxXBottom)) { @@ -274,8 +274,8 @@ void ImageView::lineMoveRequest(int lineIdx, QLineF line) { const QRectF validArea(getOccupiedWidgetRect()); QPointF pTop; QPointF pBottom; - line.intersect(QLineF(validArea.topLeft(), validArea.topRight()), &pTop); - line.intersect(QLineF(validArea.bottomLeft(), validArea.bottomRight()), &pBottom); + line.intersects(QLineF(validArea.topLeft(), validArea.topRight()), &pTop); + line.intersects(QLineF(validArea.bottomLeft(), validArea.bottomRight()), &pBottom); qreal minXTop = validArea.left(); qreal maxXTop = validArea.right(); @@ -288,8 +288,8 @@ void ImageView::lineMoveRequest(int lineIdx, QLineF line) { QPointF pTopI; QPointF pBottomI; QLineF anotherLine = virtualToWidget().map(m_virtLayout.cutterLine(i)); - anotherLine.intersect(QLineF(validArea.topLeft(), validArea.topRight()), &pTopI); - anotherLine.intersect(QLineF(validArea.bottomLeft(), validArea.bottomRight()), &pBottomI); + anotherLine.intersects(QLineF(validArea.topLeft(), validArea.topRight()), &pTopI); + anotherLine.intersects(QLineF(validArea.bottomLeft(), validArea.bottomRight()), &pBottomI); if ((pTopI.x() < minXTop) || (pTopI.x() > maxXTop) || (pBottomI.x() < minXBottom) || (pBottomI.x() > maxXBottom)) { @@ -374,4 +374,4 @@ void ImageView::unremoveRightPage() { pageInfo.setId(PageId(m_imageId, PageId::SINGLE_PAGE)); emit invalidateThumbnail(pageInfo); } -} // namespace page_split \ No newline at end of file +} // namespace page_split diff --git a/src/core/filters/page_split/PageLayout.cpp b/src/core/filters/page_split/PageLayout.cpp index 2b7c35a38..dd81a98d4 100644 --- a/src/core/filters/page_split/PageLayout.cpp +++ b/src/core/filters/page_split/PageLayout.cpp @@ -114,7 +114,7 @@ QLineF PageLayout::inscribedCutterLine(int idx) const { for (int i = 0; i < 4; ++i) { const QLineF polySegment(m_uncutOutline[i], m_uncutOutline[(i + 1) & 3]); QPointF intersection; - if (polySegment.intersect(rawLine, &intersection) == QLineF::NoIntersection) { + if (polySegment.intersects(rawLine, &intersection) == QLineF::NoIntersection) { continue; } @@ -346,7 +346,7 @@ void PageLayout::ensureSameDirection(const QLineF& line1, QLineF& line2) { */ void PageLayout::maybeAddIntersectionPoint(QPolygonF& poly, const QLineF& line1, const QLineF& line2) { QPointF intersection; - if (line1.intersect(line2, &intersection) == QLineF::NoIntersection) { + if (line1.intersects(line2, &intersection) == QLineF::NoIntersection) { return; } diff --git a/src/core/filters/page_split/PageLayoutAdapter.cpp b/src/core/filters/page_split/PageLayoutAdapter.cpp index 674efe1b2..5a0876b37 100644 --- a/src/core/filters/page_split/PageLayoutAdapter.cpp +++ b/src/core/filters/page_split/PageLayoutAdapter.cpp @@ -12,7 +12,7 @@ QLineF PageLayoutAdapter::adaptCutter(const QLineF& cutterLine, const QRectF& ne QLineF upperBorder(newRect.topLeft(), newRect.topRight()); QPointF upperIntersection; - if (upperBorder.intersect(cutterLine, &upperIntersection) == QLineF::NoIntersection) { + if (upperBorder.intersects(cutterLine, &upperIntersection) == QLineF::NoIntersection) { return cutterLine; } // if intersection is outside the rect @@ -24,7 +24,7 @@ QLineF PageLayoutAdapter::adaptCutter(const QLineF& cutterLine, const QRectF& ne QLineF lowerBorder(newRect.bottomLeft(), newRect.bottomRight()); QPointF lowerIntersection; - if (lowerBorder.intersect(cutterLine, &lowerIntersection) == QLineF::NoIntersection) { + if (lowerBorder.intersects(cutterLine, &lowerIntersection) == QLineF::NoIntersection) { return cutterLine; } // if intersection is outside the rect @@ -55,7 +55,7 @@ QVector PageLayoutAdapter::adaptCutters(const QVector& cuttersLi QLineF cutterLeft = adaptedCutters.at(i - 1); QLineF cutterRight = adaptedCutters.at(i); - if (cutterLeft.intersect(cutterRight, &intersection) == QLineF::NoIntersection) { + if (cutterLeft.intersects(cutterRight, &intersection) == QLineF::NoIntersection) { continue; } @@ -93,7 +93,7 @@ void PageLayoutAdapter::correctPageLayoutType(PageLayout* layout) { // if cutter lines match or intersect inside outline (not valid) QPointF intersection; - QLineF::IntersectType intersectType = cutterLine1.intersect(cutterLine2, &intersection); + QLineF::IntersectType intersectType = cutterLine1.intersects(cutterLine2, &intersection); if (((intersectType != QLineF::NoIntersection) && (((intersection.y() > outline.top()) && (intersection.y() < outline.bottom())))) || ((intersectType == QLineF::NoIntersection) && (cutterLine1.pointAt(0) == cutterLine2.pointAt(0)))) { diff --git a/src/core/filters/select_content/ImageView.cpp b/src/core/filters/select_content/ImageView.cpp index 14e557784..af9fa2e0f 100644 --- a/src/core/filters/select_content/ImageView.cpp +++ b/src/core/filters/select_content/ImageView.cpp @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include #include @@ -60,13 +60,13 @@ ImageView::ImageView(const QImage& image, m_contentRectCorners[i].setPositionCallback( boost::bind(&ImageView::contentRectCornerPosition, this, masks_by_corner[i])); m_contentRectCorners[i].setMoveRequestCallback( - boost::bind(&ImageView::contentRectCornerMoveRequest, this, masks_by_corner[i], _1)); + boost::bind(&ImageView::contentRectCornerMoveRequest, this, masks_by_corner[i], boost::placeholders::_1)); m_contentRectCorners[i].setDragFinishedCallback(boost::bind(&ImageView::contentRectDragFinished, this)); m_contentRectCornerHandlers[i].setObject(&m_contentRectCorners[i]); m_contentRectCornerHandlers[i].setProximityStatusTip(contentRectDragTip); m_pageRectCorners[i].setPositionCallback(boost::bind(&ImageView::pageRectCornerPosition, this, masks_by_corner[i])); m_pageRectCorners[i].setMoveRequestCallback( - boost::bind(&ImageView::pageRectCornerMoveRequest, this, masks_by_corner[i], _1)); + boost::bind(&ImageView::pageRectCornerMoveRequest, this, masks_by_corner[i], boost::placeholders::_1)); m_pageRectCorners[i].setDragFinishedCallback(boost::bind(&ImageView::pageRectDragFinished, this)); m_pageRectCornerHandlers[i].setObject(&m_pageRectCorners[i]); m_pageRectCornerHandlers[i].setProximityStatusTip(pageRectDragTip); @@ -74,13 +74,13 @@ ImageView::ImageView(const QImage& image, // Setup edge drag handlers. m_contentRectEdges[i].setPositionCallback(boost::bind(&ImageView::contentRectEdgePosition, this, masks_by_edge[i])); m_contentRectEdges[i].setMoveRequestCallback( - boost::bind(&ImageView::contentRectEdgeMoveRequest, this, masks_by_edge[i], _1)); + boost::bind(&ImageView::contentRectEdgeMoveRequest, this, masks_by_edge[i], boost::placeholders::_1)); m_contentRectEdges[i].setDragFinishedCallback(boost::bind(&ImageView::contentRectDragFinished, this)); m_contentRectEdgeHandlers[i].setObject(&m_contentRectEdges[i]); m_contentRectEdgeHandlers[i].setProximityStatusTip(contentRectDragTip); m_pageRectEdges[i].setPositionCallback(boost::bind(&ImageView::pageRectEdgePosition, this, masks_by_edge[i])); m_pageRectEdges[i].setMoveRequestCallback( - boost::bind(&ImageView::pageRectEdgeMoveRequest, this, masks_by_edge[i], _1)); + boost::bind(&ImageView::pageRectEdgeMoveRequest, this, masks_by_edge[i], boost::placeholders::_1)); m_pageRectEdges[i].setDragFinishedCallback(boost::bind(&ImageView::pageRectDragFinished, this)); m_pageRectEdgeHandlers[i].setObject(&m_pageRectEdges[i]); m_pageRectEdgeHandlers[i].setProximityStatusTip(pageRectDragTip); @@ -114,13 +114,13 @@ ImageView::ImageView(const QImage& image, // Setup rectangle drag interaction m_contentRectArea.setPositionCallback(boost::bind(&ImageView::contentRectPosition, this)); - m_contentRectArea.setMoveRequestCallback(boost::bind(&ImageView::contentRectMoveRequest, this, _1)); + m_contentRectArea.setMoveRequestCallback(boost::bind(&ImageView::contentRectMoveRequest, this, boost::placeholders::_1)); m_contentRectArea.setDragFinishedCallback(boost::bind(&ImageView::contentRectDragFinished, this)); m_contentRectAreaHandler.setObject(&m_contentRectArea); m_contentRectAreaHandler.setProximityStatusTip(tr("Hold left mouse button to drag the content box.")); m_contentRectAreaHandler.setInteractionStatusTip(tr("Release left mouse button to finish dragging.")); m_pageRectArea.setPositionCallback(boost::bind(&ImageView::pageRectPosition, this)); - m_pageRectArea.setMoveRequestCallback(boost::bind(&ImageView::pageRectMoveRequest, this, _1)); + m_pageRectArea.setMoveRequestCallback(boost::bind(&ImageView::pageRectMoveRequest, this, boost::placeholders::_1)); m_pageRectArea.setDragFinishedCallback(boost::bind(&ImageView::pageRectDragFinished, this)); m_pageRectAreaHandler.setObject(&m_pageRectArea); m_pageRectAreaHandler.setProximityStatusTip(tr("Hold left mouse button to drag the page box.")); @@ -591,4 +591,4 @@ void ImageView::enablePageRectInteraction(const bool state) { m_pageRectAreaHandler.unlink(); } } -} // namespace select_content \ No newline at end of file +} // namespace select_content diff --git a/src/core/filters/select_content/OptionsWidget.cpp b/src/core/filters/select_content/OptionsWidget.cpp index 150d3d1ba..58afd5a84 100644 --- a/src/core/filters/select_content/OptionsWidget.cpp +++ b/src/core/filters/select_content/OptionsWidget.cpp @@ -5,7 +5,7 @@ #include -#include +#include #include #include "ApplyDialog.h" @@ -312,4 +312,4 @@ OptionsWidget::UiData::UiData() : m_contentDetectionMode(MODE_AUTO), m_pageDetectionMode(MODE_DISABLED), m_fineTuneCornersEnabled(false) {} OptionsWidget::UiData::~UiData() = default; -} // namespace select_content \ No newline at end of file +} // namespace select_content diff --git a/src/core/interaction/DragHandler.cpp b/src/core/interaction/DragHandler.cpp index ff2b6a1ec..fb087dee8 100644 --- a/src/core/interaction/DragHandler.cpp +++ b/src/core/interaction/DragHandler.cpp @@ -29,7 +29,7 @@ bool DragHandler::isActive() const { void DragHandler::onMousePressEvent(QMouseEvent* event, InteractionState& interaction) { m_lastMousePos = event->pos(); - if ((event->buttons() & (Qt::LeftButton | Qt::MidButton)) && !interaction.capturedBy(m_interaction) + if ((event->buttons() & (Qt::LeftButton | Qt::MiddleButton)) && !interaction.capturedBy(m_interaction) && m_interactionPermitter(interaction)) { interaction.capture(m_interaction); } diff --git a/src/core/interaction/InteractiveXSpline.cpp b/src/core/interaction/InteractiveXSpline.cpp index 551ea649f..95f0dc804 100644 --- a/src/core/interaction/InteractiveXSpline.cpp +++ b/src/core/interaction/InteractiveXSpline.cpp @@ -14,7 +14,7 @@ #ifndef Q_MOC_RUN -#include +#include #endif @@ -47,7 +47,7 @@ void InteractiveXSpline::setSpline(const XSpline& spline) { for (int i = 0; i < numControlPoints; ++i) { newControlPoints[i].point.setPositionCallback(boost::bind(&InteractiveXSpline::controlPointPosition, this, i)); newControlPoints[i].point.setMoveRequestCallback( - boost::bind(&InteractiveXSpline::controlPointMoveRequest, this, i, _1, _2)); + boost::bind(&InteractiveXSpline::controlPointMoveRequest, this, i, boost::placeholders::_1, boost::placeholders::_2)); newControlPoints[i].point.setDragFinishedCallback(boost::bind(&InteractiveXSpline::dragFinished, this)); if ((i == 0) || (i == numControlPoints - 1)) { diff --git a/src/core/interaction/ZoomHandler.cpp b/src/core/interaction/ZoomHandler.cpp index dd6bca39e..dc76a8f2f 100644 --- a/src/core/interaction/ZoomHandler.cpp +++ b/src/core/interaction/ZoomHandler.cpp @@ -4,7 +4,7 @@ #include "ZoomHandler.h" #include -#include +#include #include #include "ImageViewBase.h" @@ -26,10 +26,6 @@ ZoomHandler::ZoomHandler(ImageViewBase& imageView, ZoomHandler::~ZoomHandler() = default; void ZoomHandler::onWheelEvent(QWheelEvent* event, InteractionState& interaction) { - if (event->orientation() != Qt::Vertical) { - return; - } - if (!m_interactionPermitter(interaction)) { return; } @@ -37,15 +33,15 @@ void ZoomHandler::onWheelEvent(QWheelEvent* event, InteractionState& interaction event->accept(); double zoom = m_imageView.zoomLevel(); - if ((zoom == 1.0) && (event->delta() < 0)) { + if ((zoom == 1.0) && (event->angleDelta().y() < 0)) { // Already zoomed out and trying to zoom out more. // Scroll amount in terms of typical mouse wheel "clicks". - const double deltaClicks = event->delta() / 120; + const double deltaClicks = event->angleDelta().y() / 120; const double dist = -deltaClicks * 30; // 30px per "click" m_imageView.moveTowardsIdealPosition(dist); return; } - const double degrees = event->delta() / 8.0; + const double degrees = event->angleDelta().y() / 8.0; zoom *= std::pow(2.0, degrees / 60.0); // 2 times zoom for every 60 degrees if (zoom < 1.0) { zoom = 1.0; @@ -57,7 +53,7 @@ void ZoomHandler::onWheelEvent(QWheelEvent* event, InteractionState& interaction focusPoint = QRectF(m_imageView.rect()).center(); break; case CURSOR: - focusPoint = event->pos() + QPointF(0.5, 0.5); + focusPoint = event->position() + QPointF(0.5, 0.5); break; } m_imageView.setWidgetFocalPointWithoutMoving(focusPoint); diff --git a/src/core/zones/ZoneCreationInteraction.cpp b/src/core/zones/ZoneCreationInteraction.cpp index aa7732205..59a549ebd 100644 --- a/src/core/zones/ZoneCreationInteraction.cpp +++ b/src/core/zones/ZoneCreationInteraction.cpp @@ -6,8 +6,8 @@ #include #include #include -#include -#include +#include +#include #include #include "ImageViewBase.h" @@ -15,7 +15,7 @@ ZoneCreationInteraction::ZoneCreationInteraction(ZoneInteractionContext& context, InteractionState& interaction) : m_context(context), - m_dragHandler(context.imageView(), boost::bind(&ZoneCreationInteraction::isDragHandlerPermitted, this, _1)), + m_dragHandler(context.imageView(), boost::bind(&ZoneCreationInteraction::isDragHandlerPermitted, this, boost::placeholders::_1)), m_dragWatcher(m_dragHandler), m_zoomHandler(context.imageView(), boost::lambda::constant(true)), m_spline(std::make_shared()), diff --git a/src/core/zones/ZoneDefaultInteraction.cpp b/src/core/zones/ZoneDefaultInteraction.cpp index 68e015d62..8880070cf 100644 --- a/src/core/zones/ZoneDefaultInteraction.cpp +++ b/src/core/zones/ZoneDefaultInteraction.cpp @@ -5,7 +5,7 @@ #include #include -#include +#include #include "ImageViewBase.h" #include "SerializableSpline.h" diff --git a/src/dewarping/Curve.cpp b/src/dewarping/Curve.cpp index b656a8b6b..6338aec6f 100644 --- a/src/dewarping/Curve.cpp +++ b/src/dewarping/Curve.cpp @@ -48,7 +48,7 @@ bool Curve::matches(const Curve& other) const { std::vector Curve::deserializePolyline(const QDomElement& el) { QByteArray ba(QByteArray::fromBase64(el.text().trimmed().toLatin1())); - QDataStream strm(&ba, QIODevice::ReadOnly); + QDataStream strm(&ba, QIODeviceBase::ReadOnly); strm.setVersion(QDataStream::Qt_4_4); strm.setByteOrder(QDataStream::LittleEndian); @@ -71,7 +71,7 @@ QDomElement Curve::serializePolyline(const std::vector& polyline, QDomD QByteArray ba; ba.reserve(static_cast(8 * polyline.size())); - QDataStream strm(&ba, QIODevice::WriteOnly); + QDataStream strm(&ba, QIODeviceBase::WriteOnly); strm.setVersion(QDataStream::Qt_4_4); strm.setByteOrder(QDataStream::LittleEndian); diff --git a/src/dewarping/CylindricalSurfaceDewarper.cpp b/src/dewarping/CylindricalSurfaceDewarper.cpp index d2bbbd34a..a5530323f 100644 --- a/src/dewarping/CylindricalSurfaceDewarper.cpp +++ b/src/dewarping/CylindricalSurfaceDewarper.cpp @@ -195,7 +195,6 @@ HomographicTransform<2, double> CylindricalSurfaceDewarper::fourPoint2DHomograph VecNT<8, double> B; double* pa = A.data(); double* pb = B.data(); - int i = 0; using Pair = std::pair; for (const Pair& pair : pairs) { @@ -343,7 +342,7 @@ void CylindricalSurfaceDewarper::CoupledPolylinesIterator::next1(QPointF& imgPt1 const Vec2d plnPtx(plnPt1[0], plnPt1[1] + 1); const Vec2d imgPtx(m_pln2img(plnPtx)); - if (QLineF(imgPt1, imgPtx).intersect(QLineF(m_nextImgPt2, m_prevImgPt2), &imgPt2) == QLineF::NoIntersection) { + if (QLineF(imgPt1, imgPtx).intersects(QLineF(m_nextImgPt2, m_prevImgPt2), &imgPt2) == QLineF::NoIntersection) { imgPt2 = m_nextImgPt2; } @@ -361,7 +360,7 @@ void CylindricalSurfaceDewarper::CoupledPolylinesIterator::next2(QPointF& imgPt1 const Vec2d plnPtx(plnPt2[0], plnPt2[1] + 1); const Vec2d imgPtx(m_pln2img(plnPtx)); - if (QLineF(imgPt2, imgPtx).intersect(QLineF(m_nextImgPt1, m_prevImgPt1), &imgPt1) == QLineF::NoIntersection) { + if (QLineF(imgPt2, imgPtx).intersects(QLineF(m_nextImgPt1, m_prevImgPt1), &imgPt1) == QLineF::NoIntersection) { imgPt1 = m_nextImgPt1; } @@ -390,4 +389,4 @@ void CylindricalSurfaceDewarper::CoupledPolylinesIterator::advance2() { m_nextImgPt2 = *m_seq2It; m_nextPlnX2 = m_img2pln(m_nextImgPt2)[0]; } -} // namespace dewarping \ No newline at end of file +} // namespace dewarping diff --git a/src/dewarping/DetectVertContentBounds.cpp b/src/dewarping/DetectVertContentBounds.cpp index 60d2d8052..124b4b218 100644 --- a/src/dewarping/DetectVertContentBounds.cpp +++ b/src/dewarping/DetectVertContentBounds.cpp @@ -8,6 +8,7 @@ #include #include +#include #include #include #include @@ -244,7 +245,7 @@ QLineF SequentialColumnProcessor::approximateWithLine(std::vector* dbgS // Run RANSAC on the segments. RansacAlgo ransac(segments); - qsrand(0); // Repeatablity is important. + QRandomGenerator prng(0); // Repeatablity is important. // We want to make sure we do pick a few segments closest // to the edge, so let's sort segments appropriately @@ -259,7 +260,7 @@ QLineF SequentialColumnProcessor::approximateWithLine(std::vector* dbgS // Continue with random samples. const int ransacIterations = segments.empty() ? 0 : 200; for (int i = 0; i < ransacIterations; ++i) { - ransac.buildAndAssessModel(segments[qrand() % segments.size()]); + ransac.buildAndAssessModel(segments[prng.generate() % segments.size()]); } if (ransac.bestModel().segments.empty()) { @@ -291,7 +292,7 @@ QLineF SequentialColumnProcessor::interpolateSegments(const std::vector assert(accumWeight != 0); accumVec /= accumWeight; - QLineF line(m_path.front(), m_path.front() + accumVec); + QLineF line(QPointF(m_path.front()), QPointF(m_path.front()) + accumVec); Vec2d normal(-accumVec[1], accumVec[0]); if ((m_leftOrRight == RIGHT) != (normal[0] < 0)) { normal = -normal; @@ -392,8 +393,8 @@ QLineF extendLine(const QLineF& line, int height) { const QLineF topLine(QPointF(0, 0), QPointF(1, 0)); const QLineF bottomLine(QPointF(0, height), QPointF(1, height)); - line.intersect(topLine, &topIntersection); - line.intersect(bottomLine, &bottomIntersection); + line.intersects(topLine, &topIntersection); + line.intersects(bottomLine, &bottomIntersection); return QLineF(topIntersection, bottomIntersection); } } // namespace @@ -441,4 +442,4 @@ std::pair detectVertContentBounds(const imageproc::BinaryImage& } return bounds; } // detectVertContentBounds -} // namespace dewarping \ No newline at end of file +} // namespace dewarping diff --git a/src/dewarping/DistortionModelBuilder.cpp b/src/dewarping/DistortionModelBuilder.cpp index 97aa5c6d6..7f3e8445a 100644 --- a/src/dewarping/DistortionModelBuilder.cpp +++ b/src/dewarping/DistortionModelBuilder.cpp @@ -6,6 +6,7 @@ #include #include #include +#include #include #include "CylindricalSurfaceDewarper.h" @@ -156,11 +157,11 @@ DistortionModel DistortionModelBuilder::tryBuildModel(DebugImages* dbg, const QI } } // Continue by throwing in some random pairs of lines. - qsrand(0); // Repeatablity is important. + QRandomGenerator prng(0); // Repeatablity is important. int randomPairsRemaining = 10; while (randomPairsRemaining-- > 0) { - int i = qrand() % numCurves; - int j = qrand() % numCurves; + int i = prng.generate() % numCurves; + int j = prng.generate() % numCurves; if (i > j) { std::swap(i, j); } @@ -284,7 +285,7 @@ void DistortionModelBuilder::intersectFront(std::deque& polyline, const const QLineF frontSegment(polyline.front(), polyline[1]); QPointF intersection; - if (bound.intersect(frontSegment, &intersection) != QLineF::NoIntersection) { + if (bound.intersects(frontSegment, &intersection) != QLineF::NoIntersection) { polyline.front() = intersection; } } @@ -294,7 +295,7 @@ void DistortionModelBuilder::intersectBack(std::deque& polyline, const const QLineF backSegment(polyline[polyline.size() - 2], polyline.back()); QPointF intersection; - if (bound.intersect(backSegment, &intersection) != QLineF::NoIntersection) { + if (bound.intersects(backSegment, &intersection) != QLineF::NoIntersection) { polyline.back() = intersection; } } @@ -636,4 +637,4 @@ QImage DistortionModelBuilder::visualizeModel(const QImage& background, } return canvas; } // DistortionModelBuilder::visualizeModel -} // namespace dewarping \ No newline at end of file +} // namespace dewarping diff --git a/src/dewarping/TextLineRefiner.cpp b/src/dewarping/TextLineRefiner.cpp index b5289699f..6e3ba15c2 100644 --- a/src/dewarping/TextLineRefiner.cpp +++ b/src/dewarping/TextLineRefiner.cpp @@ -235,7 +235,7 @@ void TextLineRefiner::calcFrenetFrames(std::vector& frenetFrames, nextSegment /= nextSegmentLen; } - Vec2f tangentVec(0.5 * (prevSegment + nextSegment)); + Vec2f tangentVec(0.5f * (prevSegment + nextSegment)); const auto len = static_cast(std::sqrt(tangentVec.squaredNorm())); if (len > std::numeric_limits::epsilon()) { tangentVec /= len; @@ -729,4 +729,4 @@ float TextLineRefiner::Optimizer::calcBendingEnergy(const SnakeNode& node, const Vec2f bendVec(vec / vecLen - prevVec / prevVecLen); return m_bendingWeight * bendVec.squaredNorm(); } -} // namespace dewarping \ No newline at end of file +} // namespace dewarping diff --git a/src/dewarping/TextLineTracer.cpp b/src/dewarping/TextLineTracer.cpp index 6e1bb35d5..35c4830bc 100644 --- a/src/dewarping/TextLineTracer.cpp +++ b/src/dewarping/TextLineTracer.cpp @@ -440,7 +440,7 @@ void TextLineTracer::findMidLineSeeds(const SEDM& sedm, QLineF midLine, std::vec QLineF TextLineTracer::calcMidLine(const QLineF& line1, const QLineF& line2) { QPointF intersection; - if (line1.intersect(line2, &intersection) == QLineF::NoIntersection) { + if (line1.intersects(line2, &intersection) == QLineF::NoIntersection) { // Lines are parallel. const QPointF p1(line2.p1()); const QPointF p2(ToLineProjector(line1).projectionPoint(p1)); diff --git a/src/foundation/CMakeLists.txt b/src/foundation/CMakeLists.txt index fc130b2aa..f2b99e526 100644 --- a/src/foundation/CMakeLists.txt +++ b/src/foundation/CMakeLists.txt @@ -31,5 +31,5 @@ set(sources Utils.cpp Utils.h) add_library(foundation STATIC ${sources}) -target_link_libraries(foundation PUBLIC Qt5::Core Qt5::Xml Qt5::Gui) +target_link_libraries(foundation PUBLIC Qt6::Core Qt6::Xml Qt6::Gui) target_include_directories(foundation PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") \ No newline at end of file diff --git a/src/foundation/Proximity.cpp b/src/foundation/Proximity.cpp index 19bdafe85..11d7e011b 100644 --- a/src/foundation/Proximity.cpp +++ b/src/foundation/Proximity.cpp @@ -7,54 +7,54 @@ #include Proximity::Proximity(const QPointF& p1, const QPointF& p2) { - const double dx = p1.x() - p2.x(); - const double dy = p1.y() - p2.y(); - m_sqDist = dx * dx + dy * dy; // dx * dy; + const double dx = p1.x() - p2.x(); + const double dy = p1.y() - p2.y(); + m_sqDist = dx * dx + dy * dy; // dx * dy; } Proximity Proximity::pointAndLineSegment(const QPointF& pt, const QLineF& segment, QPointF* pointOnSegment) { - if (segment.p1() == segment.p2()) { - // Line segment is zero length. - if (pointOnSegment) { - *pointOnSegment = segment.p1(); - } - return Proximity(pt, segment.p1()); - } - - QLineF perpendicular(segment.normalVector()); - - // Make the perpendicular pass through pt. - perpendicular.translate(-perpendicular.p1()); - perpendicular.translate(pt); - // Calculate intersection. - QPointF intersection; - segment.intersect(perpendicular, &intersection); - - const double dx1 = segment.p1().x() - intersection.x(); - const double dy1 = segment.p1().y() - intersection.y(); - const double dx2 = segment.p2().x() - intersection.x(); - const double dy2 = segment.p2().y() - intersection.y(); - const double dx12 = dx1 * dx2; - const double dy12 = dy1 * dy2; - if ((dx12 < 0.0) || (dy12 < 0.0) || ((dx12 == 0.0) && (dy12 == 0.0))) { - // Intersection is on the segment. - if (pointOnSegment) { - *pointOnSegment = intersection; - } - return Proximity(intersection, pt); - } - - Proximity prx[2]; - QPointF pts[2]; - - prx[0] = Proximity(segment.p1(), pt); - prx[1] = Proximity(segment.p2(), pt); - pts[0] = segment.p1(); - pts[1] = segment.p2(); - - const Proximity* minPrx = std::min_element(prx, prx + 2); - if (pointOnSegment) { - *pointOnSegment = pts[minPrx - prx]; - } - return *minPrx; + if (segment.p1() == segment.p2()) { + // Line segment is zero length. + if (pointOnSegment) { + *pointOnSegment = segment.p1(); + } + return Proximity(pt, segment.p1()); + } + + QLineF perpendicular(segment.normalVector()); + + // Make the perpendicular pass through pt. + perpendicular.translate(-perpendicular.p1()); + perpendicular.translate(pt); + // Calculate intersection. + QPointF intersection; + segment.intersects(perpendicular, &intersection); + + const double dx1 = segment.p1().x() - intersection.x(); + const double dy1 = segment.p1().y() - intersection.y(); + const double dx2 = segment.p2().x() - intersection.x(); + const double dy2 = segment.p2().y() - intersection.y(); + const double dx12 = dx1 * dx2; + const double dy12 = dy1 * dy2; + if ((dx12 < 0.0) || (dy12 < 0.0) || ((dx12 == 0.0) && (dy12 == 0.0))) { + // Intersection is on the segment. + if (pointOnSegment) { + *pointOnSegment = intersection; + } + return Proximity(intersection, pt); + } + + Proximity prx[2]; + QPointF pts[2]; + + prx[0] = Proximity(segment.p1(), pt); + prx[1] = Proximity(segment.p2(), pt); + pts[0] = segment.p1(); + pts[1] = segment.p2(); + + const Proximity* minPrx = std::min_element(prx, prx + 2); + if (pointOnSegment) { + *pointOnSegment = pts[minPrx - prx]; + } + return *minPrx; } // Proximity::pointAndLineSegment diff --git a/src/foundation/VecNT.h b/src/foundation/VecNT.h index bf5473509..6379eacab 100644 --- a/src/foundation/VecNT.h +++ b/src/foundation/VecNT.h @@ -354,4 +354,20 @@ VecNT operator*(T scalar, const VecNT& vec) { return res; } +template +VecNT operator/(VecNT const& vec, T scalar) +{ + VecNT res(vec); + res /= scalar; + return res; +} + +template +VecNT operator/(T scalar, VecNT const& vec) +{ + VecNT res(vec); + res /= scalar; + return res; +} + #endif // ifndef SCANTAILOR_FOUNDATION_VECNT_H_ diff --git a/src/imageproc/ColorInterpolation.cpp b/src/imageproc/ColorInterpolation.cpp index da0cce3be..ddbb79db7 100644 --- a/src/imageproc/ColorInterpolation.cpp +++ b/src/imageproc/ColorInterpolation.cpp @@ -7,14 +7,14 @@ namespace imageproc { QColor colorInterpolation(const QColor& from, const QColor& to, double dist) { dist = qBound(0.0, dist, 1.0); - qreal r1, g1, b1, a1, r2, g2, b2, a2; + float r1, g1, b1, a1, r2, g2, b2, a2; from.getRgbF(&r1, &g1, &b1, &a1); to.getRgbF(&r2, &g2, &b2, &a2); - const qreal r = r1 + (r2 - r1) * dist; - const qreal g = g1 + (g2 - g1) * dist; - const qreal b = b1 + (b2 - b1) * dist; - const qreal a = a1 + (a2 - a1) * dist; + const float r = r1 + (r2 - r1) * dist; + const float g = g1 + (g2 - g1) * dist; + const float b = b1 + (b2 - b1) * dist; + const float a = a1 + (a2 - a1) * dist; return QColor::fromRgbF(r, g, b, a); } } // namespace imageproc diff --git a/src/imageproc/Posterizer.cpp b/src/imageproc/Posterizer.cpp index 6d5a4e9ad..4de86d051 100644 --- a/src/imageproc/Posterizer.cpp +++ b/src/imageproc/Posterizer.cpp @@ -6,6 +6,7 @@ #include #include #include +#include #include "BinaryImage.h" @@ -394,4 +395,4 @@ QImage Posterizer::posterize(const QImage& image) const { } return dst; } -} // namespace imageproc \ No newline at end of file +} // namespace imageproc diff --git a/src/imageproc/tests/CMakeLists.txt b/src/imageproc/tests/CMakeLists.txt index f4bf457a2..24e927e14 100644 --- a/src/imageproc/tests/CMakeLists.txt +++ b/src/imageproc/tests/CMakeLists.txt @@ -21,7 +21,7 @@ remove_definitions(-DBUILDING_IMAGEPROC) add_executable(imageproc_tests ${sources}) target_link_libraries( imageproc_tests - PRIVATE imageproc math foundation Qt5::Widgets Qt5::Xml + PRIVATE imageproc math foundation Qt6::Widgets Qt6::Xml Boost::unit_test_framework Boost::prg_exec_monitor ${EXTRA_LIBS}) add_test(NAME imageproc_tests COMMAND imageproc_tests --log_level=message) \ No newline at end of file diff --git a/src/math/PolylineIntersector.cpp b/src/math/PolylineIntersector.cpp index 33a603845..f846d9b56 100644 --- a/src/math/PolylineIntersector.cpp +++ b/src/math/PolylineIntersector.cpp @@ -87,7 +87,7 @@ bool PolylineIntersector::intersectsSpan(const QLineF& normal, const QLineF& spa QPointF PolylineIntersector::intersectWithSegment(const QLineF& line, int segment) const { const QLineF segLine(m_polyline[segment], m_polyline[segment + 1]); QPointF intersection; - if (line.intersect(segLine, &intersection) == QLineF::NoIntersection) { + if (line.intersects(segLine, &intersection) == QLineF::NoIntersection) { // Considering we were called for a reason, the segment must // be on the same line as our subject line. Just return segment // midpoint in this case. From f8be7149b2809e1410cc0132816d3ebd25cee2cd Mon Sep 17 00:00:00 2001 From: kunzjacq Date: Wed, 16 Feb 2022 23:30:09 +0100 Subject: [PATCH 15/25] Enable compilation with both Qt5 and Qt6 Tested with Qt 5.15.2 and 6.2.3. --- CMakeLists.txt | 71 +++++++++++-------- src/app/CMakeLists.txt | 13 +++- src/app/main.cpp | 3 +- src/core/CMakeLists.txt | 7 +- src/core/ImageViewBase.cpp | 13 ++++ src/core/ImageViewBase.h | 5 +- src/core/filters/output/Task.cpp | 8 ++- src/core/zones/ZoneContextMenuInteraction.cpp | 9 +-- src/core/zones/ZoneInteractionContext.cpp | 14 ++-- src/dewarping/Curve.cpp | 8 +++ src/foundation/CMakeLists.txt | 4 +- src/imageproc/ColorInterpolation.cpp | 13 ++-- src/imageproc/tests/CMakeLists.txt | 4 +- 13 files changed, 119 insertions(+), 53 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 76947aac9..277776c8d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -106,7 +106,7 @@ if (WIN32) set(ZLIB_INSTALL_PREFIX "${zlib_dir_assumed}" CACHE PATH "Prefix where zlib is installed") set(PNG_INSTALL_PREFIX "${png_dir_assumed}" CACHE PATH "Prefix where png is installed") set(TIFF_INSTALL_PREFIX "${tiff_dir_assumed}" CACHE PATH "Prefix where tiff is installed") - set(QT_INSTALL_PREFIX "${qt_dir_assumed}" CACHE PATH "Prefix where Qt6 is installed") + set(QT_INSTALL_PREFIX "${qt_dir_assumed}" CACHE PATH "Prefix where Qt is installed") set(BOOST_ROOT "${boost_dir_assumed}" CACHE PATH "Prefix where Boost is installed") macro(list_append_existing_path Var Path) @@ -172,10 +172,11 @@ if (WIN32) endif() set(Boost_ARCHITECTURE ${_boost_architecture} CACHE STRING "") + #set(Boost_DEBUG ON) string(REGEX MATCHALL "[0-9]+" _boost_compiler_version ${CMAKE_CXX_COMPILER_VERSION}) list(GET _boost_compiler_version 0 _boost_compiler_version_major) list(GET _boost_compiler_version 1 _boost_compiler_version_minor) - set(Boost_COMPILER "mgw${_boost_compiler_version_major}${_boost_compiler_version_minor}" CACHE STRING "") + set(Boost_COMPILER "-mgw${_boost_compiler_version_major}" CACHE STRING "") endif() real_path_find_glob(boost_include_dir_hints "${BOOST_ROOT}/include/boost-[_0-9]*/boost") @@ -203,10 +204,18 @@ endif() #=================================== Qt ===================================# set(qt_min_version 5.6) + find_package( - Qt6 ${qt_min_version} - COMPONENTS Core Gui Widgets OpenGLWidgets Xml Network LinguistTools OpenGL Svg + Qt6 + COMPONENTS Core Gui Widgets Xml Network LinguistTools OpenGL Svg OpenGLWidgets + CONFIG) +if (NOT Qt6_FOUND) + find_package(Qt5 ${qt_min_version} + COMPONENTS Core Gui Widgets Xml Network LinguistTools OpenGL Svg CONFIG REQUIRED) +endif() + +get_filename_component(QT_BINDIR ${QT_QMAKE_EXECUTABLE} DIRECTORY) #=================================== Threads ===================================# @@ -326,8 +335,11 @@ if (WIN32) # Install the DLLs of the dependencies. set(dep_libs JPEG::JPEG PNG::PNG ZLIB::ZLIB TIFF::TIFF - Qt6::Core Qt6::Gui Qt6::Widgets Qt6::Xml - Qt6::Network Qt6::OpenGL Qt6::OpenGLWidgets Qt6::Svg) + Qt::Core Qt::Gui Qt::Widgets Qt::Xml + Qt::Network Qt::OpenGL Qt::Svg) + if(Qt6_FOUND) + list(APPEND dep_libs Qt6::OpenGLWidgets) + endif() foreach (_target ${dep_libs}) get_target_property(target_type ${_target} TYPE) @@ -346,33 +358,36 @@ if (WIN32) add_runtime_libs_to_install(DEBUG "${debug_loc}") endforeach() - # Install Qt's plugins. - macro (install_qt_plugin SubDir Target) - if (TARGET ${Target}) - get_target_property(target_type ${Target} TYPE) - if (target_type STREQUAL "MODULE_LIBRARY") - get_target_property(release_loc ${Target} LOCATION_RELEASE) - get_target_property(debug_loc ${Target} LOCATION_DEBUG) - set_if_undefined(debug_loc "${release_loc}") - - copy_to_build_dir("${release_loc}" SUBDIR ${SubDir} CONFIGURATIONS Release MinSizeRel RelWithDebInfo) - install(PROGRAMS "${release_loc}" + #with Qt6, winqtdeploy is used to deploy plugins; the method below does not work anymore. + if (NOT Qt6_FOUND) + # Install Qt plugins. + macro (install_qt_plugin SubDir Target) + if (TARGET ${Target}) + get_target_property(target_type ${Target} TYPE) + if (target_type STREQUAL "MODULE_LIBRARY") + get_target_property(release_loc ${Target} LOCATION_RELEASE) + get_target_property(debug_loc ${Target} LOCATION_DEBUG) + set_if_undefined(debug_loc "${release_loc}") + + copy_to_build_dir("${release_loc}" SUBDIR ${SubDir} CONFIGURATIONS Release MinSizeRel RelWithDebInfo) + install(PROGRAMS "${release_loc}" CONFIGURATIONS Release MinSizeRel RelWithDebInfo DESTINATION "${CMAKE_INSTALL_BINDIR}/${SubDir}") - copy_to_build_dir("${debug_loc}" SUBDIR ${SubDir} CONFIGURATIONS Debug) - install(PROGRAMS "${debug_loc}" + copy_to_build_dir("${debug_loc}" SUBDIR ${SubDir} CONFIGURATIONS Debug) + install(PROGRAMS "${debug_loc}" CONFIGURATIONS Debug DESTINATION "${CMAKE_INSTALL_BINDIR}/${SubDir}") + endif() endif() - endif() - endmacro() - - install_qt_plugin("platforms" Qt6::QWindowsIntegrationPlugin) - install_qt_plugin("styles" Qt6::QWindowsVistaStylePlugin) - install_qt_plugin("imageformats" Qt6::QJpegPlugin) - install_qt_plugin("accessible" Qt6::QAccessiblePlugin) - install_qt_plugin("iconengines" Qt6::QSvgIconPlugin) - install_qt_plugin("imageformats" Qt6::QSvgPlugin) + endmacro() + + install_qt_plugin("platforms" Qt::QWindowsIntegrationPlugin) + install_qt_plugin("styles" Qt::QWindowsVistaStylePlugin) + install_qt_plugin("imageformats" Qt::QJpegPlugin) + install_qt_plugin("accessible" Qt::QAccessiblePlugin) + install_qt_plugin("iconengines" Qt::QSvgIconPlugin) + install_qt_plugin("imageformats" Qt::QSvgPlugin) + endif() # Install MinGW runtime components. if (MINGW) diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt index acacb1174..1d5b17094 100644 --- a/src/app/CMakeLists.txt +++ b/src/app/CMakeLists.txt @@ -79,4 +79,15 @@ target_include_directories( "$") install(TARGETS scantailor RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") -translation_sources(scantailor ${gui_only_sources} ${gui_only_ui_files}) \ No newline at end of file +if (Qt6_FOUND AND WIN32) + #manage plugins with windeployqt. + add_custom_command( + TARGET scantailor + POST_BUILD + COMMAND ${QT_BINDIR}/windeployqt ${CMAKE_BINARY_DIR} + COMMENT "deploy qt files alongside binary (e.g. plugins)" + ) + install(CODE "execute_process(COMMAND ${QT_BINDIR}/windeployqt ${CMAKE_INSTALL_PREFIX})") +endif() + +translation_sources(scantailor ${gui_only_sources} ${gui_only_ui_files}) diff --git a/src/app/main.cpp b/src/app/main.cpp index aecdcf3da..05e1cba95 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -16,9 +16,10 @@ #include "MainWindow.h" int main(int argc, char* argv[]) { +#if QT_VERSION_MAJOR == 5 QApplication::setAttribute(Qt::AA_EnableHighDpiScaling); QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); - +#endif Application app(argc, argv); #ifdef _WIN32 diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index 22bde4f15..6f50fbb06 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -121,9 +121,14 @@ add_library(core STATIC ${common_sources} ${common_ui_files}) target_link_libraries( core PRIVATE TIFF::TIFF PNG::PNG ZLIB::ZLIB JPEG::JPEG - PUBLIC Qt6::Core Qt6::Gui Qt6::Widgets Qt6::OpenGLWidgets Qt6::Xml Qt6::Network Qt6::OpenGL Qt6::Svg + PUBLIC Qt::Core Qt::Gui Qt::Widgets Qt::Xml Qt::Network Qt::OpenGL Qt::Svg imageproc zones fix_orientation page_split deskew select_content page_layout output) + if(Qt6_FOUND) + target_link_libraries( + core + PUBLIC Qt::OpenGLWidgets) + endif() target_include_directories(core PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") set_target_properties(core PROPERTIES AUTOUIC ON) diff --git a/src/core/ImageViewBase.cpp b/src/core/ImageViewBase.cpp index 1d787a248..a7129db14 100644 --- a/src/core/ImageViewBase.cpp +++ b/src/core/ImageViewBase.cpp @@ -7,7 +7,12 @@ #include #include +#if QT_VERSION_MAJOR == 5 +#include +#define QOpenGLWidget QGLWidget +#else #include +#endif #include #include #include @@ -501,7 +506,11 @@ void ImageViewBase::mouseMoveEvent(QMouseEvent* event) { event->setAccepted(true); updateStatusTipAndCursor(); maybeQueueRedraw(); +#if QT_VERSION_MAJOR == 5 + updateCursorPos(event->localPos()); +#else updateCursorPos(event->position()); +#endif } void ImageViewBase::wheelEvent(QWheelEvent* event) { @@ -540,7 +549,11 @@ void ImageViewBase::resizeEvent(QResizeEvent* event) { } } +#if QT_VERSION_MAJOR == 5 +void ImageViewBase::enterEvent(QEvent* event) { +#else void ImageViewBase::enterEvent(QEnterEvent* event) { +#endif viewport()->setFocus(); QAbstractScrollArea::enterEvent(event); } diff --git a/src/core/ImageViewBase.h b/src/core/ImageViewBase.h index 2155de3f4..1ad71952e 100644 --- a/src/core/ImageViewBase.h +++ b/src/core/ImageViewBase.h @@ -240,8 +240,11 @@ class ImageViewBase : public QAbstractScrollArea { void resizeEvent(QResizeEvent* event) override; +#if QT_VERSION_MAJOR == 5 + void enterEvent(QEvent *event) override; +#else void enterEvent(QEnterEvent *event) override; - +#endif void leaveEvent(QEvent* event) override; void showEvent(QShowEvent* event) override; diff --git a/src/core/filters/output/Task.cpp b/src/core/filters/output/Task.cpp index e4dbfb217..272fcc567 100644 --- a/src/core/filters/output/Task.cpp +++ b/src/core/filters/output/Task.cpp @@ -505,11 +505,13 @@ void Task::UiUpdater::updateUI(FilterUiInterface* ui) { auto imageView = std::make_unique(m_outputImage, m_downscaledOutputImage); const QPixmap downscaledOutputPixmap(imageView->downscaledPixmap()); tabImageRectMap->insert(std::pair(TAB_OUTPUT, m_xform.resultingRect())); - QList tmp_list(m_xform.resultingPreCropArea()); auto dewarpingView = std::make_unique( m_origImage, m_downscaledOrigImage, m_xform.transform(), - PolygonUtils::convexHull(std::vector(tmp_list.begin(), tmp_list.end())), m_virtContentRect, m_pageId, - m_params.dewarpingOptions(), m_params.distortionModel(), optWidget->depthPerception()); + PolygonUtils::convexHull( + std::vector( + m_xform.resultingPreCropArea().begin(), m_xform.resultingPreCropArea().end())), + m_virtContentRect, m_pageId, m_params.dewarpingOptions(), m_params.distortionModel(), + optWidget->depthPerception()); const QPixmap downscaledOrigPixmap(dewarpingView->downscaledPixmap()); QObject::connect(optWidget, SIGNAL(depthPerceptionChanged(double)), dewarpingView.get(), SLOT(depthPerceptionChanged(double))); diff --git a/src/core/zones/ZoneContextMenuInteraction.cpp b/src/core/zones/ZoneContextMenuInteraction.cpp index a36cc0b9e..e79642c98 100644 --- a/src/core/zones/ZoneContextMenuInteraction.cpp +++ b/src/core/zones/ZoneContextMenuInteraction.cpp @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include "ImageViewBase.h" #include "ZoneInteractionContext.h" @@ -27,7 +27,8 @@ class ZoneContextMenuInteraction::OrderByArea { ZoneContextMenuInteraction* ZoneContextMenuInteraction::create(ZoneInteractionContext& context, InteractionState& interaction) { - return create(context, interaction, boost::bind(&ZoneContextMenuInteraction::defaultMenuCustomizer, _1, _2)); + return create(context, interaction, boost::bind(&ZoneContextMenuInteraction::defaultMenuCustomizer, + boost::placeholders::_1, boost::placeholders::_2)); } ZoneContextMenuInteraction* ZoneContextMenuInteraction::create(ZoneInteractionContext& context, @@ -199,8 +200,8 @@ void ZoneContextMenuInteraction::highlightItem(const int zoneIdx) { m_context.imageView().update(); } -std::vector ZoneContextMenuInteraction::defaultMenuCustomizer(const EditableZoneSet::Zone& zone, - const StandardMenuItems& stdItems) { +std::vector ZoneContextMenuInteraction::defaultMenuCustomizer( + const EditableZoneSet::Zone& /*zone*/, const StandardMenuItems& stdItems) { std::vector items; items.reserve(2); items.push_back(stdItems.propertiesItem); diff --git a/src/core/zones/ZoneInteractionContext.cpp b/src/core/zones/ZoneInteractionContext.cpp index 1f04b37ec..9026ad44d 100644 --- a/src/core/zones/ZoneInteractionContext.cpp +++ b/src/core/zones/ZoneInteractionContext.cpp @@ -3,7 +3,7 @@ #include "ZoneInteractionContext.h" -#include +#include #include "ZoneContextMenuInteraction.h" #include "ZoneCreationInteraction.h" @@ -16,11 +16,15 @@ ZoneInteractionContext::ZoneInteractionContext(ImageViewBase& imageView, Editabl m_zones(zones), m_defaultInteractionCreator(boost::bind(&ZoneInteractionContext::createStdDefaultInteraction, this)), m_zoneCreationInteractionCreator( - boost::bind(&ZoneInteractionContext::createStdZoneCreationInteraction, this, _1)), + boost::bind(&ZoneInteractionContext::createStdZoneCreationInteraction, this, + boost::placeholders::_1)), m_vertexDragInteractionCreator( - boost::bind(&ZoneInteractionContext::createStdVertexDragInteraction, this, _1, _2, _3)), - m_zoneDragInteractionCreator(boost::bind(&ZoneInteractionContext::createStdZoneDragInteraction, this, _1, _2)), - m_contextMenuInteractionCreator(boost::bind(&ZoneInteractionContext::createStdContextMenuInteraction, this, _1)), + boost::bind(&ZoneInteractionContext::createStdVertexDragInteraction, this, + boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3)), + m_zoneDragInteractionCreator(boost::bind(&ZoneInteractionContext::createStdZoneDragInteraction, + this, boost::placeholders::_1, boost::placeholders::_2)), + m_contextMenuInteractionCreator(boost::bind(&ZoneInteractionContext::createStdContextMenuInteraction, + this, boost::placeholders::_1)), m_showPropertiesCommand(&ZoneInteractionContext::showPropertiesStub), m_zoneCreationMode(ZoneCreationMode::POLYGONAL) {} diff --git a/src/dewarping/Curve.cpp b/src/dewarping/Curve.cpp index 6338aec6f..47de2afab 100644 --- a/src/dewarping/Curve.cpp +++ b/src/dewarping/Curve.cpp @@ -48,7 +48,11 @@ bool Curve::matches(const Curve& other) const { std::vector Curve::deserializePolyline(const QDomElement& el) { QByteArray ba(QByteArray::fromBase64(el.text().trimmed().toLatin1())); +#if QT_VERSION_MAJOR == 5 + QDataStream strm(&ba, QIODevice::ReadOnly); +#else QDataStream strm(&ba, QIODeviceBase::ReadOnly); +#endif strm.setVersion(QDataStream::Qt_4_4); strm.setByteOrder(QDataStream::LittleEndian); @@ -71,7 +75,11 @@ QDomElement Curve::serializePolyline(const std::vector& polyline, QDomD QByteArray ba; ba.reserve(static_cast(8 * polyline.size())); +#if QT_VERSION_MAJOR == 5 + QDataStream strm(&ba, QIODevice::WriteOnly); +#else QDataStream strm(&ba, QIODeviceBase::WriteOnly); +#endif strm.setVersion(QDataStream::Qt_4_4); strm.setByteOrder(QDataStream::LittleEndian); diff --git a/src/foundation/CMakeLists.txt b/src/foundation/CMakeLists.txt index f2b99e526..87e205baa 100644 --- a/src/foundation/CMakeLists.txt +++ b/src/foundation/CMakeLists.txt @@ -31,5 +31,5 @@ set(sources Utils.cpp Utils.h) add_library(foundation STATIC ${sources}) -target_link_libraries(foundation PUBLIC Qt6::Core Qt6::Xml Qt6::Gui) -target_include_directories(foundation PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") \ No newline at end of file +target_link_libraries(foundation PUBLIC Qt::Core Qt::Xml Qt::Gui) +target_include_directories(foundation PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/src/imageproc/ColorInterpolation.cpp b/src/imageproc/ColorInterpolation.cpp index ddbb79db7..6651d0883 100644 --- a/src/imageproc/ColorInterpolation.cpp +++ b/src/imageproc/ColorInterpolation.cpp @@ -3,18 +3,21 @@ #include "ColorInterpolation.h" + namespace imageproc { QColor colorInterpolation(const QColor& from, const QColor& to, double dist) { dist = qBound(0.0, dist, 1.0); - float r1, g1, b1, a1, r2, g2, b2, a2; + typedef decltype(from.redF()) color_float; + + color_float r1, g1, b1, a1, r2, g2, b2, a2; from.getRgbF(&r1, &g1, &b1, &a1); to.getRgbF(&r2, &g2, &b2, &a2); - const float r = r1 + (r2 - r1) * dist; - const float g = g1 + (g2 - g1) * dist; - const float b = b1 + (b2 - b1) * dist; - const float a = a1 + (a2 - a1) * dist; + const color_float r = r1 + (r2 - r1) * dist; + const color_float g = g1 + (g2 - g1) * dist; + const color_float b = b1 + (b2 - b1) * dist; + const color_float a = a1 + (a2 - a1) * dist; return QColor::fromRgbF(r, g, b, a); } } // namespace imageproc diff --git a/src/imageproc/tests/CMakeLists.txt b/src/imageproc/tests/CMakeLists.txt index 24e927e14..6941c8e2d 100644 --- a/src/imageproc/tests/CMakeLists.txt +++ b/src/imageproc/tests/CMakeLists.txt @@ -21,7 +21,7 @@ remove_definitions(-DBUILDING_IMAGEPROC) add_executable(imageproc_tests ${sources}) target_link_libraries( imageproc_tests - PRIVATE imageproc math foundation Qt6::Widgets Qt6::Xml + PRIVATE imageproc math foundation Qt::Widgets Qt::Xml Boost::unit_test_framework Boost::prg_exec_monitor ${EXTRA_LIBS}) -add_test(NAME imageproc_tests COMMAND imageproc_tests --log_level=message) \ No newline at end of file +add_test(NAME imageproc_tests COMMAND imageproc_tests --log_level=message) From 06238ee63459932269a05bc8ffbf73b7781468bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Kunz-Jacques?= Date: Wed, 16 Feb 2022 23:54:35 +0100 Subject: [PATCH 16/25] Require at least Qt 5.15 --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 277776c8d..a7003f1b3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -203,7 +203,7 @@ endif() #=================================== Qt ===================================# -set(qt_min_version 5.6) +set(qt_min_version 5.15) find_package( Qt6 From 1359b27fd35ddd8e2ceada427535e9d6f2165b11 Mon Sep 17 00:00:00 2001 From: kunzjacq Date: Thu, 17 Feb 2022 15:59:44 +0100 Subject: [PATCH 17/25] Enable compilation with Qt5 starting from version 5.9 --- CMakeLists.txt | 43 ++++++-- src/app/RelinkablePathVisualization.cpp | 8 +- src/core/Application.cpp | 7 +- src/core/BackgroundTask.h | 18 +++- src/core/CMakeLists.txt | 19 ++-- src/core/RelinkablePath.cpp | 7 +- src/core/filters/output/DewarpingView.cpp | 6 ++ src/core/filters/page_split/ImageView.cpp | 21 ++++ src/core/filters/page_split/PageLayout.cpp | 16 ++- .../filters/page_split/PageLayoutAdapter.cpp | 36 +++++-- src/core/interaction/ZoomHandler.cpp | 6 +- src/dewarping/CylindricalSurfaceDewarper.cpp | 15 ++- src/dewarping/DetectVertContentBounds.cpp | 20 +++- src/dewarping/DistortionModelBuilder.cpp | 25 ++++- src/dewarping/TextLineTracer.cpp | 9 +- src/foundation/CMakeLists.txt | 2 +- src/foundation/Proximity.cpp | 98 ++++++++++--------- src/imageproc/tests/CMakeLists.txt | 4 +- src/math/PolylineIntersector.cpp | 7 +- 19 files changed, 274 insertions(+), 93 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a7003f1b3..5c7aec8e9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,6 +42,7 @@ if (NOT DEFAULT_COMPILER_FLAGS_IS_SET) if (CMAKE_COMPILER_IS_GNUCC AND CMAKE_COMPILER_IS_GNUCXX) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wpedantic -Werror=return-type -Wno-unused") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wpedantic -Werror=return-type -Wno-unused") + add_compile_options("$<$:-march=native;-mtune=native>") endif() set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}" @@ -203,7 +204,7 @@ endif() #=================================== Qt ===================================# -set(qt_min_version 5.15) +set(qt_min_version 5.9) find_package( Qt6 @@ -217,6 +218,26 @@ endif() get_filename_component(QT_BINDIR ${QT_QMAKE_EXECUTABLE} DIRECTORY) +if(Qt6_FOUND) + set(Qt_Core_lib Qt::Core) + set(Qt_Gui_lib Qt::Gui) + set(Qt_Network_lib Qt::Network) + set(Qt_OpenGL_lib Qt::OpenGL) + set(Qt_Svg_lib Qt::Svg) + set(Qt_Widgets_lib Qt::Widgets) + set(Qt_Xml_lib Qt::Xml) + set(Qt_OpenGLWidgets_lib Qt::OpenGLWidgets) +else() + set(Qt_Core_lib Qt5::Core) + set(Qt_Gui_lib Qt5::Gui) + set(Qt_Network_lib Qt5::Network) + set(Qt_OpenGL_lib Qt5::OpenGL) + set(Qt_Svg_lib Qt5::Svg) + set(Qt_Widgets_lib Qt5::Widgets) + set(Qt_Xml_lib Qt5::Xml) +endif() + + #=================================== Threads ===================================# if (UNIX) @@ -302,7 +323,11 @@ finalize_translations(scantailor ${translation_files}) update_translations_target(update_translations scantailor) list(FILTER translation_files EXCLUDE REGEX ".*untranslated.ts") -Qt_add_translation(qm_files ${translation_files}) +if(Qt6_FOUND) + Qt_add_translation(qm_files ${translation_files}) +else() + Qt5_add_translation(qm_files ${translation_files}) +endif() add_custom_target(compile_translations ALL DEPENDS ${qm_files}) if (WIN32) install(FILES ${qm_files} DESTINATION "${CMAKE_INSTALL_BINDIR}/translations") @@ -333,12 +358,16 @@ if (WIN32) endmacro() # Install the DLLs of the dependencies. - set(dep_libs - JPEG::JPEG PNG::PNG ZLIB::ZLIB TIFF::TIFF - Qt::Core Qt::Gui Qt::Widgets Qt::Xml - Qt::Network Qt::OpenGL Qt::Svg) if(Qt6_FOUND) - list(APPEND dep_libs Qt6::OpenGLWidgets) + set(dep_libs + JPEG::JPEG PNG::PNG ZLIB::ZLIB TIFF::TIFF + Qt::Core Qt::Gui Qt::Widgets Qt::Xml + Qt::Network Qt::OpenGL Qt::Svg Qt6::OpenGLWidgets) + else() + set(dep_libs + JPEG::JPEG PNG::PNG ZLIB::ZLIB TIFF::TIFF + Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Xml + Qt5::Network Qt5::OpenGL Qt5::Svg) endif() foreach (_target ${dep_libs}) diff --git a/src/app/RelinkablePathVisualization.cpp b/src/app/RelinkablePathVisualization.cpp index 1ed7a1237..2f8923b60 100644 --- a/src/app/RelinkablePathVisualization.cpp +++ b/src/app/RelinkablePathVisualization.cpp @@ -53,8 +53,12 @@ void RelinkablePathVisualization::clear() { void RelinkablePathVisualization::setPath(const RelinkablePath& path, bool clickable) { clear(); - - QStringList components(path.normalizedPath().split(QChar('/'), Qt::SkipEmptyParts)); +#if QT_VERSION_MAJOR == 5 and QT_VERSION_MINOR < 14 + auto opt = QString::SkipEmptyParts; +#else + auto opt = Qt::SkipEmptyParts; +#endif + QStringList components(path.normalizedPath().split(QChar('/'), opt)); if (components.empty()) { return; } diff --git a/src/core/Application.cpp b/src/core/Application.cpp index 582df00ca..c3446018c 100644 --- a/src/core/Application.cpp +++ b/src/core/Application.cpp @@ -58,7 +58,12 @@ std::list Application::getLanguagesList() const { } void Application::initTranslations() { - const QStringList translationDirs(QString::fromUtf8(TRANSLATION_DIRS).split(QChar(':'), Qt::SkipEmptyParts)); +#if QT_VERSION_MAJOR == 5 and QT_VERSION_MINOR < 14 + auto opt = QString::SkipEmptyParts; +#else + auto opt = Qt::SkipEmptyParts; +#endif + const QStringList translationDirs(QString::fromUtf8(TRANSLATION_DIRS).split(QChar(':'), opt)); const QStringList languageFileFilter("scantailor_*.qm"); for (const QString& path : translationDirs) { diff --git a/src/core/BackgroundTask.h b/src/core/BackgroundTask.h index f6c064c8a..0b9ac8c51 100644 --- a/src/core/BackgroundTask.h +++ b/src/core/BackgroundTask.h @@ -26,9 +26,21 @@ class BackgroundTask : public AbstractCommand, public TaskStatu Type type() const { return m_type; } - void cancel() override { m_cancelFlag.storeRelaxed(1); } - - bool isCancelled() const override { return m_cancelFlag.loadRelaxed() != 0; } + void cancel() override { +#if QT_VERSION_MAJOR == 5 and QT_VERSION_MINOR < 14 + m_cancelFlag.store(1); +#else + m_cancelFlag.storeRelaxed(1); +#endif + } + + bool isCancelled() const override { +#if QT_VERSION_MAJOR == 5 and QT_VERSION_MINOR < 14 + return m_cancelFlag.load() != 0; +#else + return m_cancelFlag.loadRelaxed() != 0; +#endif + } /** * \brief If cancelled, throws CancelledException. diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index 6f50fbb06..b701c1052 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -118,17 +118,22 @@ set(common_sources ContentMask.cpp ContentMask.h) add_library(core STATIC ${common_sources} ${common_ui_files}) -target_link_libraries( + +if(Qt6_FOUND) + target_link_libraries( + core + PRIVATE TIFF::TIFF PNG::PNG ZLIB::ZLIB JPEG::JPEG + PUBLIC Qt::Core Qt::Gui Qt::Widgets Qt::Xml Qt::Network Qt::OpenGL Qt::Svg Qt::OpenGLWidgets + imageproc zones + fix_orientation page_split deskew select_content page_layout output) +else() + target_link_libraries( core PRIVATE TIFF::TIFF PNG::PNG ZLIB::ZLIB JPEG::JPEG - PUBLIC Qt::Core Qt::Gui Qt::Widgets Qt::Xml Qt::Network Qt::OpenGL Qt::Svg + PUBLIC Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Xml Qt5::Network Qt5::OpenGL Qt5::Svg imageproc zones fix_orientation page_split deskew select_content page_layout output) - if(Qt6_FOUND) - target_link_libraries( - core - PUBLIC Qt::OpenGLWidgets) - endif() +endif() target_include_directories(core PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") set_target_properties(core PROPERTIES AUTOUIC ON) diff --git a/src/core/RelinkablePath.cpp b/src/core/RelinkablePath.cpp index 1b1cef54a..6950525d0 100644 --- a/src/core/RelinkablePath.cpp +++ b/src/core/RelinkablePath.cpp @@ -12,7 +12,12 @@ QString RelinkablePath::normalize(const QString& path) { frontSlashes.replace(QChar('\\'), QLatin1String("/")); QStringList newComponents; - for (const QString& comp : frontSlashes.split(QChar('/'), Qt::KeepEmptyParts)) { +#if QT_VERSION_MAJOR == 5 and QT_VERSION_MINOR < 14 + auto opt = QString::KeepEmptyParts; +#else + auto opt = Qt::KeepEmptyParts; +#endif + for (const QString& comp : frontSlashes.split(QChar('/'), opt)) { if (comp.isEmpty()) { if (newComponents.isEmpty() #if _WIN32 diff --git a/src/core/filters/output/DewarpingView.cpp b/src/core/filters/output/DewarpingView.cpp index 4785e8d60..fdb893451 100644 --- a/src/core/filters/output/DewarpingView.cpp +++ b/src/core/filters/output/DewarpingView.cpp @@ -214,8 +214,14 @@ void DewarpingView::onPaint(QPainter& painter, const InteractionState& interacti const dewarping::Curve& bottomCurve = m_distortionModel.bottomCurve(); painter.drawLine(topCurve.polyline().front(), bottomCurve.polyline().front()); painter.drawLine(topCurve.polyline().back(), bottomCurve.polyline().back()); +#if QT_VERSION_MAJOR == 5 and QT_VERSION_MINOR < 14 + painter.drawPolyline(QVector::fromStdVector(topCurve.polyline())); + painter.drawPolyline(QVector::fromStdVector(bottomCurve.polyline())); +#else painter.drawPolyline(QVector(topCurve.polyline().begin(), topCurve.polyline().end())); painter.drawPolyline(QVector(bottomCurve.polyline().begin(), bottomCurve.polyline().end())); +#endif + } paintXSpline(painter, interaction, m_topSpline); diff --git a/src/core/filters/page_split/ImageView.cpp b/src/core/filters/page_split/ImageView.cpp index 4e83cc498..3847994b9 100644 --- a/src/core/filters/page_split/ImageView.cpp +++ b/src/core/filters/page_split/ImageView.cpp @@ -207,8 +207,13 @@ QLineF ImageView::customInscribedCutterLine(const QLineF& line, const QRectF& re QPointF topPt; QPointF bottomPt; +#if QT_VERSION_MAJOR == 5 and QT_VERSION_MINOR < 14 + line.intersect(QLineF(rect.topLeft(), rect.topRight()), &topPt); + line.intersect(QLineF(rect.bottomLeft(), rect.bottomRight()), &bottomPt); +#else line.intersects(QLineF(rect.topLeft(), rect.topRight()), &topPt); line.intersects(QLineF(rect.bottomLeft(), rect.bottomRight()), &bottomPt); +#endif const double topX = qBound(rect.left(), topPt.x(), rect.right()); const double bottomX = qBound(rect.left(), bottomPt.x(), rect.right()); @@ -234,8 +239,13 @@ void ImageView::handleMoveRequest(int lineIdx, int handleIdx, const QPointF& pos QPointF pTopI; QPointF pBottomI; QLineF anotherLine = virtualToWidget().map(m_virtLayout.cutterLine(i)); +#if QT_VERSION_MAJOR == 5 and QT_VERSION_MINOR < 14 + anotherLine.intersect(QLineF(validArea.topLeft(), validArea.topRight()), &pTopI); + anotherLine.intersect(QLineF(validArea.bottomLeft(), validArea.bottomRight()), &pBottomI); +#else anotherLine.intersects(QLineF(validArea.topLeft(), validArea.topRight()), &pTopI); anotherLine.intersects(QLineF(validArea.bottomLeft(), validArea.bottomRight()), &pBottomI); +#endif if ((pTopI.x() < minXTop) || (pTopI.x() > maxXTop) || (pBottomI.x() < minXBottom) || (pBottomI.x() > maxXBottom)) { @@ -274,8 +284,14 @@ void ImageView::lineMoveRequest(int lineIdx, QLineF line) { const QRectF validArea(getOccupiedWidgetRect()); QPointF pTop; QPointF pBottom; + +#if QT_VERSION_MAJOR == 5 and QT_VERSION_MINOR < 14 + line.intersect(QLineF(validArea.topLeft(), validArea.topRight()), &pTop); + line.intersect(QLineF(validArea.bottomLeft(), validArea.bottomRight()), &pBottom); +#else line.intersects(QLineF(validArea.topLeft(), validArea.topRight()), &pTop); line.intersects(QLineF(validArea.bottomLeft(), validArea.bottomRight()), &pBottom); +#endif qreal minXTop = validArea.left(); qreal maxXTop = validArea.right(); @@ -288,8 +304,13 @@ void ImageView::lineMoveRequest(int lineIdx, QLineF line) { QPointF pTopI; QPointF pBottomI; QLineF anotherLine = virtualToWidget().map(m_virtLayout.cutterLine(i)); +#if QT_VERSION_MAJOR == 5 and QT_VERSION_MINOR < 14 + anotherLine.intersect(QLineF(validArea.topLeft(), validArea.topRight()), &pTopI); + anotherLine.intersect(QLineF(validArea.bottomLeft(), validArea.bottomRight()), &pBottomI); +#else anotherLine.intersects(QLineF(validArea.topLeft(), validArea.topRight()), &pTopI); anotherLine.intersects(QLineF(validArea.bottomLeft(), validArea.bottomRight()), &pBottomI); +#endif if ((pTopI.x() < minXTop) || (pTopI.x() > maxXTop) || (pBottomI.x() < minXBottom) || (pBottomI.x() > maxXBottom)) { diff --git a/src/core/filters/page_split/PageLayout.cpp b/src/core/filters/page_split/PageLayout.cpp index dd81a98d4..bf4819b4d 100644 --- a/src/core/filters/page_split/PageLayout.cpp +++ b/src/core/filters/page_split/PageLayout.cpp @@ -114,7 +114,12 @@ QLineF PageLayout::inscribedCutterLine(int idx) const { for (int i = 0; i < 4; ++i) { const QLineF polySegment(m_uncutOutline[i], m_uncutOutline[(i + 1) & 3]); QPointF intersection; - if (polySegment.intersects(rawLine, &intersection) == QLineF::NoIntersection) { +#if QT_VERSION_MAJOR == 5 and QT_VERSION_MINOR < 14 + auto is = polySegment.intersect(rawLine, &intersection); +#else + auto is = polySegment.intersects(rawLine, &intersection); +#endif + if (is == QLineF::NoIntersection) { continue; } @@ -346,7 +351,12 @@ void PageLayout::ensureSameDirection(const QLineF& line1, QLineF& line2) { */ void PageLayout::maybeAddIntersectionPoint(QPolygonF& poly, const QLineF& line1, const QLineF& line2) { QPointF intersection; - if (line1.intersects(line2, &intersection) == QLineF::NoIntersection) { +#if QT_VERSION_MAJOR == 5 + auto is = line1.intersect(line2, &intersection); +#else + auto is = line1.intersects(line2, &intersection); +#endif + if (is == QLineF::NoIntersection) { return; } @@ -360,4 +370,4 @@ void PageLayout::maybeAddIntersectionPoint(QPolygonF& poly, const QLineF& line1, bool PageLayout::isNull() const { return m_uncutOutline.isEmpty(); } -} // namespace page_split \ No newline at end of file +} // namespace page_split diff --git a/src/core/filters/page_split/PageLayoutAdapter.cpp b/src/core/filters/page_split/PageLayoutAdapter.cpp index 5a0876b37..897308a30 100644 --- a/src/core/filters/page_split/PageLayoutAdapter.cpp +++ b/src/core/filters/page_split/PageLayoutAdapter.cpp @@ -12,8 +12,15 @@ QLineF PageLayoutAdapter::adaptCutter(const QLineF& cutterLine, const QRectF& ne QLineF upperBorder(newRect.topLeft(), newRect.topRight()); QPointF upperIntersection; - if (upperBorder.intersects(cutterLine, &upperIntersection) == QLineF::NoIntersection) { - return cutterLine; + { +#if QT_VERSION_MAJOR == 5 and QT_VERSION_MINOR < 14 + auto is = upperBorder.intersect(cutterLine, &upperIntersection); +#else + auto is = upperBorder.intersects(cutterLine, &upperIntersection); +#endif + if (is == QLineF::NoIntersection) { + return cutterLine; + } } // if intersection is outside the rect if (upperIntersection.x() < newRect.topLeft().x()) { @@ -24,8 +31,15 @@ QLineF PageLayoutAdapter::adaptCutter(const QLineF& cutterLine, const QRectF& ne QLineF lowerBorder(newRect.bottomLeft(), newRect.bottomRight()); QPointF lowerIntersection; - if (lowerBorder.intersects(cutterLine, &lowerIntersection) == QLineF::NoIntersection) { - return cutterLine; + { +#if QT_VERSION_MAJOR == 5 and QT_VERSION_MINOR < 14 + auto is = lowerBorder.intersect(cutterLine, &lowerIntersection); +#else + auto is = lowerBorder.intersects(cutterLine, &lowerIntersection); +#endif + if (is == QLineF::NoIntersection) { + return cutterLine; + } } // if intersection is outside the rect if (lowerIntersection.x() < newRect.bottomLeft().x()) { @@ -54,8 +68,12 @@ QVector PageLayoutAdapter::adaptCutters(const QVector& cuttersLi QPointF intersection; QLineF cutterLeft = adaptedCutters.at(i - 1); QLineF cutterRight = adaptedCutters.at(i); - - if (cutterLeft.intersects(cutterRight, &intersection) == QLineF::NoIntersection) { +#if QT_VERSION_MAJOR == 5 and QT_VERSION_MINOR < 14 + auto is = cutterLeft.intersect(cutterRight, &intersection); +#else + auto is = cutterLeft.intersects(cutterRight, &intersection); +#endif + if (is == QLineF::NoIntersection) { continue; } @@ -93,7 +111,11 @@ void PageLayoutAdapter::correctPageLayoutType(PageLayout* layout) { // if cutter lines match or intersect inside outline (not valid) QPointF intersection; +#if QT_VERSION_MAJOR == 5 and QT_VERSION_MINOR < 14 + QLineF::IntersectType intersectType = cutterLine1.intersect(cutterLine2, &intersection); +#else QLineF::IntersectType intersectType = cutterLine1.intersects(cutterLine2, &intersection); +#endif if (((intersectType != QLineF::NoIntersection) && (((intersection.y() > outline.top()) && (intersection.y() < outline.bottom())))) || ((intersectType == QLineF::NoIntersection) && (cutterLine1.pointAt(0) == cutterLine2.pointAt(0)))) { @@ -133,4 +155,4 @@ PageLayout PageLayoutAdapter::adaptPageLayout(const PageLayout& pageLayout, cons } return newPageLayout; } -} // namespace page_split \ No newline at end of file +} // namespace page_split diff --git a/src/core/interaction/ZoomHandler.cpp b/src/core/interaction/ZoomHandler.cpp index dc76a8f2f..b10b52266 100644 --- a/src/core/interaction/ZoomHandler.cpp +++ b/src/core/interaction/ZoomHandler.cpp @@ -53,7 +53,11 @@ void ZoomHandler::onWheelEvent(QWheelEvent* event, InteractionState& interaction focusPoint = QRectF(m_imageView.rect()).center(); break; case CURSOR: - focusPoint = event->position() + QPointF(0.5, 0.5); +#if QT_VERSION_MAJOR == 5 and QT_VERSION_MINOR < 14 + focusPoint = event->pos() + QPointF(0.5, 0.5); +#else + focusPoint = event->position() + QPointF(0.5, 0.5); +#endif break; } m_imageView.setWidgetFocalPointWithoutMoving(focusPoint); diff --git a/src/dewarping/CylindricalSurfaceDewarper.cpp b/src/dewarping/CylindricalSurfaceDewarper.cpp index a5530323f..0f0fc66b8 100644 --- a/src/dewarping/CylindricalSurfaceDewarper.cpp +++ b/src/dewarping/CylindricalSurfaceDewarper.cpp @@ -341,8 +341,12 @@ void CylindricalSurfaceDewarper::CoupledPolylinesIterator::next1(QPointF& imgPt1 const Vec2d plnPtx(plnPt1[0], plnPt1[1] + 1); const Vec2d imgPtx(m_pln2img(plnPtx)); - - if (QLineF(imgPt1, imgPtx).intersects(QLineF(m_nextImgPt2, m_prevImgPt2), &imgPt2) == QLineF::NoIntersection) { +#if QT_VERSION_MAJOR == 5 and QT_VERSION_MINOR < 14 + auto intersect = QLineF(imgPt1, imgPtx).intersect(QLineF(m_nextImgPt2, m_prevImgPt2), &imgPt2); +#else + auto intersect = QLineF(imgPt1, imgPtx).intersects(QLineF(m_nextImgPt2, m_prevImgPt2), &imgPt2); +#endif + if (intersect == QLineF::NoIntersection) { imgPt2 = m_nextImgPt2; } @@ -360,7 +364,12 @@ void CylindricalSurfaceDewarper::CoupledPolylinesIterator::next2(QPointF& imgPt1 const Vec2d plnPtx(plnPt2[0], plnPt2[1] + 1); const Vec2d imgPtx(m_pln2img(plnPtx)); - if (QLineF(imgPt2, imgPtx).intersects(QLineF(m_nextImgPt1, m_prevImgPt1), &imgPt1) == QLineF::NoIntersection) { +#if QT_VERSION_MAJOR == 5 and QT_VERSION_MINOR < 14 + auto intersect = QLineF(imgPt2, imgPtx).intersect(QLineF(m_nextImgPt1, m_prevImgPt1), &imgPt1); +#else + auto intersect = QLineF(imgPt2, imgPtx).intersects(QLineF(m_nextImgPt1, m_prevImgPt1), &imgPt1); +#endif + if (intersect == QLineF::NoIntersection) { imgPt1 = m_nextImgPt1; } diff --git a/src/dewarping/DetectVertContentBounds.cpp b/src/dewarping/DetectVertContentBounds.cpp index 124b4b218..58e5d83ac 100644 --- a/src/dewarping/DetectVertContentBounds.cpp +++ b/src/dewarping/DetectVertContentBounds.cpp @@ -8,7 +8,9 @@ #include #include +#if QT_VERSION_MAJOR > 5 or QT_VERSION_MINOR > 9 #include +#endif #include #include #include @@ -245,8 +247,11 @@ QLineF SequentialColumnProcessor::approximateWithLine(std::vector* dbgS // Run RANSAC on the segments. RansacAlgo ransac(segments); +#if QT_VERSION_MAJOR == 5 and QT_VERSION_MINOR < 14 + qsrand(0); // Repeatablity is important. +#else QRandomGenerator prng(0); // Repeatablity is important. - +#endif // We want to make sure we do pick a few segments closest // to the edge, so let's sort segments appropriately // and manually feed the best ones to RANSAC. @@ -260,7 +265,12 @@ QLineF SequentialColumnProcessor::approximateWithLine(std::vector* dbgS // Continue with random samples. const int ransacIterations = segments.empty() ? 0 : 200; for (int i = 0; i < ransacIterations; ++i) { - ransac.buildAndAssessModel(segments[prng.generate() % segments.size()]); +#if QT_VERSION_MAJOR == 5 and QT_VERSION_MINOR <= 9 + auto r = qrand(); +#else + auto r = prng.generate(); +#endif + ransac.buildAndAssessModel(segments[r % segments.size()]); } if (ransac.bestModel().segments.empty()) { @@ -392,9 +402,13 @@ QLineF extendLine(const QLineF& line, int height) { const QLineF topLine(QPointF(0, 0), QPointF(1, 0)); const QLineF bottomLine(QPointF(0, height), QPointF(1, height)); - +#if QT_VERSION_MAJOR == 5 and QT_VERSION_MINOR < 14 + line.intersect(topLine, &topIntersection); + line.intersect(bottomLine, &bottomIntersection); +#else line.intersects(topLine, &topIntersection); line.intersects(bottomLine, &bottomIntersection); +#endif return QLineF(topIntersection, bottomIntersection); } } // namespace diff --git a/src/dewarping/DistortionModelBuilder.cpp b/src/dewarping/DistortionModelBuilder.cpp index 7f3e8445a..0b77b37e0 100644 --- a/src/dewarping/DistortionModelBuilder.cpp +++ b/src/dewarping/DistortionModelBuilder.cpp @@ -6,7 +6,9 @@ #include #include #include +#if QT_VERSION_MAJOR > 5 or QT_VERSION_MINOR > 9 #include +#endif #include #include "CylindricalSurfaceDewarper.h" @@ -157,11 +159,20 @@ DistortionModel DistortionModelBuilder::tryBuildModel(DebugImages* dbg, const QI } } // Continue by throwing in some random pairs of lines. +#if QT_VERSION_MAJOR == 5 and QT_VERSION_MINOR <= 9 + qsrand(0); // Repeatablity is important. +#else QRandomGenerator prng(0); // Repeatablity is important. +#endif int randomPairsRemaining = 10; while (randomPairsRemaining-- > 0) { +#if QT_VERSION_MAJOR == 5 and QT_VERSION_MINOR <= 9 + int i = qrand() % numCurves; + int j = qrand() % numCurves; +#else int i = prng.generate() % numCurves; int j = prng.generate() % numCurves; +#endif if (i > j) { std::swap(i, j); } @@ -285,7 +296,12 @@ void DistortionModelBuilder::intersectFront(std::deque& polyline, const const QLineF frontSegment(polyline.front(), polyline[1]); QPointF intersection; - if (bound.intersects(frontSegment, &intersection) != QLineF::NoIntersection) { +#if QT_VERSION_MAJOR == 5 and QT_VERSION_MINOR < 14 + auto intersect = bound.intersect(frontSegment, &intersection) ; +#else + auto intersect = bound.intersects(frontSegment, &intersection) ; +#endif + if (intersect != QLineF::NoIntersection) { polyline.front() = intersection; } } @@ -295,7 +311,12 @@ void DistortionModelBuilder::intersectBack(std::deque& polyline, const const QLineF backSegment(polyline[polyline.size() - 2], polyline.back()); QPointF intersection; - if (bound.intersects(backSegment, &intersection) != QLineF::NoIntersection) { +#if QT_VERSION_MAJOR == 5 and QT_VERSION_MINOR < 14 + auto intersect = bound.intersect(backSegment, &intersection) ; +#else + auto intersect = bound.intersects(backSegment, &intersection) ; +#endif + if (intersect != QLineF::NoIntersection) { polyline.back() = intersection; } } diff --git a/src/dewarping/TextLineTracer.cpp b/src/dewarping/TextLineTracer.cpp index 35c4830bc..6316707ac 100644 --- a/src/dewarping/TextLineTracer.cpp +++ b/src/dewarping/TextLineTracer.cpp @@ -440,7 +440,12 @@ void TextLineTracer::findMidLineSeeds(const SEDM& sedm, QLineF midLine, std::vec QLineF TextLineTracer::calcMidLine(const QLineF& line1, const QLineF& line2) { QPointF intersection; - if (line1.intersects(line2, &intersection) == QLineF::NoIntersection) { +#if QT_VERSION_MAJOR == 5 and QT_VERSION_MINOR < 14 + auto is = line1.intersect(line2, &intersection); +#else + auto is = line1.intersects(line2, &intersection); +#endif + if (is == QLineF::NoIntersection) { // Lines are parallel. const QPointF p1(line2.p1()); const QPointF p2(ToLineProjector(line1).projectionPoint(p1)); @@ -580,4 +585,4 @@ QImage TextLineTracer::visualizePolylines(const QImage& background, } return canvas; } -} // namespace dewarping \ No newline at end of file +} // namespace dewarping diff --git a/src/foundation/CMakeLists.txt b/src/foundation/CMakeLists.txt index 87e205baa..9af3587c4 100644 --- a/src/foundation/CMakeLists.txt +++ b/src/foundation/CMakeLists.txt @@ -31,5 +31,5 @@ set(sources Utils.cpp Utils.h) add_library(foundation STATIC ${sources}) -target_link_libraries(foundation PUBLIC Qt::Core Qt::Xml Qt::Gui) +target_link_libraries(foundation PUBLIC ${Qt_Core_lib} ${Qt_Xml_lib} ${Qt_Gui_lib}) target_include_directories(foundation PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/src/foundation/Proximity.cpp b/src/foundation/Proximity.cpp index 11d7e011b..c49eabb2c 100644 --- a/src/foundation/Proximity.cpp +++ b/src/foundation/Proximity.cpp @@ -7,54 +7,58 @@ #include Proximity::Proximity(const QPointF& p1, const QPointF& p2) { - const double dx = p1.x() - p2.x(); - const double dy = p1.y() - p2.y(); - m_sqDist = dx * dx + dy * dy; // dx * dy; + const double dx = p1.x() - p2.x(); + const double dy = p1.y() - p2.y(); + m_sqDist = dx * dx + dy * dy; // dx * dy; } Proximity Proximity::pointAndLineSegment(const QPointF& pt, const QLineF& segment, QPointF* pointOnSegment) { - if (segment.p1() == segment.p2()) { - // Line segment is zero length. - if (pointOnSegment) { - *pointOnSegment = segment.p1(); - } - return Proximity(pt, segment.p1()); - } - - QLineF perpendicular(segment.normalVector()); - - // Make the perpendicular pass through pt. - perpendicular.translate(-perpendicular.p1()); - perpendicular.translate(pt); - // Calculate intersection. - QPointF intersection; - segment.intersects(perpendicular, &intersection); - - const double dx1 = segment.p1().x() - intersection.x(); - const double dy1 = segment.p1().y() - intersection.y(); - const double dx2 = segment.p2().x() - intersection.x(); - const double dy2 = segment.p2().y() - intersection.y(); - const double dx12 = dx1 * dx2; - const double dy12 = dy1 * dy2; - if ((dx12 < 0.0) || (dy12 < 0.0) || ((dx12 == 0.0) && (dy12 == 0.0))) { - // Intersection is on the segment. - if (pointOnSegment) { - *pointOnSegment = intersection; - } - return Proximity(intersection, pt); - } - - Proximity prx[2]; - QPointF pts[2]; - - prx[0] = Proximity(segment.p1(), pt); - prx[1] = Proximity(segment.p2(), pt); - pts[0] = segment.p1(); - pts[1] = segment.p2(); - - const Proximity* minPrx = std::min_element(prx, prx + 2); - if (pointOnSegment) { - *pointOnSegment = pts[minPrx - prx]; - } - return *minPrx; + if (segment.p1() == segment.p2()) { + // Line segment is zero length. + if (pointOnSegment) { + *pointOnSegment = segment.p1(); + } + return Proximity(pt, segment.p1()); + } + + QLineF perpendicular(segment.normalVector()); + + // Make the perpendicular pass through pt. + perpendicular.translate(-perpendicular.p1()); + perpendicular.translate(pt); + // Calculate intersection. + QPointF intersection; +#if QT_VERSION_MAJOR == 5 + segment.intersect(perpendicular, &intersection); +#else + segment.intersects(perpendicular, &intersection); +#endif + + const double dx1 = segment.p1().x() - intersection.x(); + const double dy1 = segment.p1().y() - intersection.y(); + const double dx2 = segment.p2().x() - intersection.x(); + const double dy2 = segment.p2().y() - intersection.y(); + const double dx12 = dx1 * dx2; + const double dy12 = dy1 * dy2; + if ((dx12 < 0.0) || (dy12 < 0.0) || ((dx12 == 0.0) && (dy12 == 0.0))) { + // Intersection is on the segment. + if (pointOnSegment) { + *pointOnSegment = intersection; + } + return Proximity(intersection, pt); + } + + Proximity prx[2]; + QPointF pts[2]; + + prx[0] = Proximity(segment.p1(), pt); + prx[1] = Proximity(segment.p2(), pt); + pts[0] = segment.p1(); + pts[1] = segment.p2(); + + const Proximity* minPrx = std::min_element(prx, prx + 2); + if (pointOnSegment) { + *pointOnSegment = pts[minPrx - prx]; + } + return *minPrx; } // Proximity::pointAndLineSegment diff --git a/src/imageproc/tests/CMakeLists.txt b/src/imageproc/tests/CMakeLists.txt index 6941c8e2d..c3dbb08bb 100644 --- a/src/imageproc/tests/CMakeLists.txt +++ b/src/imageproc/tests/CMakeLists.txt @@ -20,8 +20,8 @@ set(sources remove_definitions(-DBUILDING_IMAGEPROC) add_executable(imageproc_tests ${sources}) target_link_libraries( - imageproc_tests - PRIVATE imageproc math foundation Qt::Widgets Qt::Xml + imageproc_tests + PRIVATE imageproc math foundation ${Qt_Widgets_lib} ${Qt_Xml_lib} Boost::unit_test_framework Boost::prg_exec_monitor ${EXTRA_LIBS}) add_test(NAME imageproc_tests COMMAND imageproc_tests --log_level=message) diff --git a/src/math/PolylineIntersector.cpp b/src/math/PolylineIntersector.cpp index f846d9b56..819c7c4db 100644 --- a/src/math/PolylineIntersector.cpp +++ b/src/math/PolylineIntersector.cpp @@ -87,7 +87,12 @@ bool PolylineIntersector::intersectsSpan(const QLineF& normal, const QLineF& spa QPointF PolylineIntersector::intersectWithSegment(const QLineF& line, int segment) const { const QLineF segLine(m_polyline[segment], m_polyline[segment + 1]); QPointF intersection; - if (line.intersects(segLine, &intersection) == QLineF::NoIntersection) { +#if QT_VERSION_MAJOR == 5 + auto intersect = line.intersect(segLine, &intersection); +#else + auto intersect = line.intersects(segLine, &intersection); +#endif + if (intersect == QLineF::NoIntersection) { // Considering we were called for a reason, the segment must // be on the same line as our subject line. Just return segment // midpoint in this case. From 8ad0ec2827209ed8cf5464a7fd6213bceb0360cd Mon Sep 17 00:00:00 2001 From: kunzjacq Date: Fri, 18 Feb 2022 22:57:44 +0100 Subject: [PATCH 18/25] misc fix regarding the use of a deprecated function --- src/math/PolylineIntersector.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/math/PolylineIntersector.cpp b/src/math/PolylineIntersector.cpp index 819c7c4db..cfbbd1347 100644 --- a/src/math/PolylineIntersector.cpp +++ b/src/math/PolylineIntersector.cpp @@ -87,7 +87,7 @@ bool PolylineIntersector::intersectsSpan(const QLineF& normal, const QLineF& spa QPointF PolylineIntersector::intersectWithSegment(const QLineF& line, int segment) const { const QLineF segLine(m_polyline[segment], m_polyline[segment + 1]); QPointF intersection; -#if QT_VERSION_MAJOR == 5 +#if QT_VERSION_MAJOR == 5 and QT_VERSION_MINOR < 14 auto intersect = line.intersect(segLine, &intersection); #else auto intersect = line.intersects(segLine, &intersection); From a4c655fb23fafffc0e331bbe1047893851121b3f Mon Sep 17 00:00:00 2001 From: kunzjacq Date: Fri, 18 Feb 2022 23:02:46 +0100 Subject: [PATCH 19/25] misc fix regarding the use of a deprecated function (take two) --- src/core/filters/page_split/PageLayout.cpp | 2 +- src/foundation/Proximity.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/filters/page_split/PageLayout.cpp b/src/core/filters/page_split/PageLayout.cpp index bf4819b4d..bbc72c99c 100644 --- a/src/core/filters/page_split/PageLayout.cpp +++ b/src/core/filters/page_split/PageLayout.cpp @@ -351,7 +351,7 @@ void PageLayout::ensureSameDirection(const QLineF& line1, QLineF& line2) { */ void PageLayout::maybeAddIntersectionPoint(QPolygonF& poly, const QLineF& line1, const QLineF& line2) { QPointF intersection; -#if QT_VERSION_MAJOR == 5 +#if QT_VERSION_MAJOR == 5 and QT_VERSION_MINOR < 14 auto is = line1.intersect(line2, &intersection); #else auto is = line1.intersects(line2, &intersection); diff --git a/src/foundation/Proximity.cpp b/src/foundation/Proximity.cpp index c49eabb2c..3e2bbe6c4 100644 --- a/src/foundation/Proximity.cpp +++ b/src/foundation/Proximity.cpp @@ -28,7 +28,7 @@ Proximity Proximity::pointAndLineSegment(const QPointF& pt, const QLineF& segmen perpendicular.translate(pt); // Calculate intersection. QPointF intersection; -#if QT_VERSION_MAJOR == 5 +#if QT_VERSION_MAJOR == 5 and QT_VERSION_MINOR < 14 segment.intersect(perpendicular, &intersection); #else segment.intersects(perpendicular, &intersection); From e1218c5e09db2d29ab52596093c1f00697f5cf3e Mon Sep 17 00:00:00 2001 From: Virgil Grigoras <2580723+vigri@users.noreply.github.com> Date: Thu, 24 Feb 2022 22:40:29 +0100 Subject: [PATCH 20/25] Update README.md Links updated --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 90f8c909c..320e92f21 100644 --- a/README.md +++ b/README.md @@ -413,4 +413,4 @@ has't been moved due to dirty realization. Their functionality is fully covered Building ---------- -Go to [this repository](https://github.com/4lex4/scantailor-libs-build) and follow the instructions given there. \ No newline at end of file +Go to [this repository](https://github.com/vigri/scantailor-libs-build) and follow the instructions given there. From 4df65ca8441bb6b62c6689f5a03ae5149845701d Mon Sep 17 00:00:00 2001 From: kunzjacq Date: Fri, 25 Feb 2022 08:26:31 +0100 Subject: [PATCH 21/25] Enable compilation with Qt6 and MSVC Add missing headers, account for the different target path, change the Qt binary dir determination method. --- CMakeLists.txt | 7 ++++--- src/app/CMakeLists.txt | 2 +- src/core/BlackOnWhiteEstimator.cpp | 2 ++ src/core/filters/output/OutputGenerator.cpp | 1 + src/core/filters/output/OutputImageBuilder.cpp | 4 +++- src/dewarping/RasterDewarper.cpp | 3 ++- src/imageproc/AdjustBrightness.cpp | 3 ++- src/imageproc/BackgroundColorCalculator.cpp | 3 ++- src/imageproc/Binarize.cpp | 3 ++- src/imageproc/BinaryImage.cpp | 2 +- src/imageproc/BinaryThreshold.cpp | 3 ++- src/imageproc/ColorSegmenter.cpp | 3 ++- src/imageproc/ConnectivityMap.cpp | 3 ++- src/imageproc/DrawOver.cpp | 3 ++- src/imageproc/Grayscale.cpp | 4 +++- src/imageproc/ImageCombination.cpp | 4 +++- src/imageproc/InfluenceMap.cpp | 3 ++- src/imageproc/Morphology.cpp | 3 ++- src/imageproc/OrthogonalRotation.cpp | 4 +++- src/imageproc/PolygonRasterizer.cpp | 1 + src/imageproc/PolynomialSurface.cpp | 2 ++ src/imageproc/Posterizer.cpp | 1 + src/imageproc/RastLineFinder.cpp | 1 + src/imageproc/RastLineFinder.h | 1 + src/imageproc/ReduceThreshold.cpp | 3 ++- src/imageproc/SavGolFilter.cpp | 4 +++- src/imageproc/Scale.cpp | 3 ++- src/imageproc/SeedFill.cpp | 3 ++- src/imageproc/Shear.cpp | 3 ++- src/imageproc/SkewFinder.cpp | 3 ++- src/imageproc/SlicedHistogram.cpp | 4 +++- src/imageproc/SlicedHistogram.h | 1 + src/imageproc/Transform.cpp | 3 ++- src/imageproc/UpscaleIntegerTimes.cpp | 4 +++- src/math/spfit/PolylineModelShape.cpp | 4 +++- 35 files changed, 72 insertions(+), 29 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5c7aec8e9..1b537055e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -210,14 +210,15 @@ find_package( Qt6 COMPONENTS Core Gui Widgets Xml Network LinguistTools OpenGL Svg OpenGLWidgets CONFIG) -if (NOT Qt6_FOUND) +if (Qt6_FOUND) + set(QT_BINDIR "${QT6_INSTALL_PREFIX}/bin") +else() find_package(Qt5 ${qt_min_version} COMPONENTS Core Gui Widgets Xml Network LinguistTools OpenGL Svg CONFIG REQUIRED) + set(QT_BINDIR "${QT5_INSTALL_PREFIX}/bin") endif() -get_filename_component(QT_BINDIR ${QT_QMAKE_EXECUTABLE} DIRECTORY) - if(Qt6_FOUND) set(Qt_Core_lib Qt::Core) set(Qt_Gui_lib Qt::Gui) diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt index 1d5b17094..d4314bd44 100644 --- a/src/app/CMakeLists.txt +++ b/src/app/CMakeLists.txt @@ -84,7 +84,7 @@ if (Qt6_FOUND AND WIN32) add_custom_command( TARGET scantailor POST_BUILD - COMMAND ${QT_BINDIR}/windeployqt ${CMAKE_BINARY_DIR} + COMMAND ${QT_BINDIR}/windeployqt $ COMMENT "deploy qt files alongside binary (e.g. plugins)" ) install(CODE "execute_process(COMMAND ${QT_BINDIR}/windeployqt ${CMAKE_INSTALL_PREFIX})") diff --git a/src/core/BlackOnWhiteEstimator.cpp b/src/core/BlackOnWhiteEstimator.cpp index 40d995648..a3cda9b21 100644 --- a/src/core/BlackOnWhiteEstimator.cpp +++ b/src/core/BlackOnWhiteEstimator.cpp @@ -3,6 +3,8 @@ #include "BlackOnWhiteEstimator.h" +#include + #include #include #include diff --git a/src/core/filters/output/OutputGenerator.cpp b/src/core/filters/output/OutputGenerator.cpp index a011b56d7..4fb619484 100644 --- a/src/core/filters/output/OutputGenerator.cpp +++ b/src/core/filters/output/OutputGenerator.cpp @@ -49,6 +49,7 @@ #include #include #include +#include #include "ColorParams.h" #include "DebugImages.h" diff --git a/src/core/filters/output/OutputImageBuilder.cpp b/src/core/filters/output/OutputImageBuilder.cpp index 61b80a91e..828b33b12 100644 --- a/src/core/filters/output/OutputImageBuilder.cpp +++ b/src/core/filters/output/OutputImageBuilder.cpp @@ -3,6 +3,8 @@ #include "OutputImageBuilder.h" +#include + #include #include "ForegroundType.h" @@ -69,4 +71,4 @@ OutputImageBuilder& OutputImageBuilder::setForegroundType(const ForegroundType& m_foregroundType = std::make_unique(foregroundImage); return *this; } -} // namespace output \ No newline at end of file +} // namespace output diff --git a/src/dewarping/RasterDewarper.cpp b/src/dewarping/RasterDewarper.cpp index dde9e2f20..41bb8a2b0 100644 --- a/src/dewarping/RasterDewarper.cpp +++ b/src/dewarping/RasterDewarper.cpp @@ -8,6 +8,7 @@ #include #include +#include #include "CylindricalSurfaceDewarper.h" @@ -527,4 +528,4 @@ QImage RasterDewarper::dewarp(const QImage& src, return dewarpRgb(src.convertToFormat(QImage::Format_RGB32), dstSize, distortionModel, modelDomain, bgColor); } } // RasterDewarper::dewarp -} // namespace dewarping \ No newline at end of file +} // namespace dewarping diff --git a/src/imageproc/AdjustBrightness.cpp b/src/imageproc/AdjustBrightness.cpp index 4398ea4e5..e35e54c8c 100644 --- a/src/imageproc/AdjustBrightness.cpp +++ b/src/imageproc/AdjustBrightness.cpp @@ -4,6 +4,7 @@ #include "AdjustBrightness.h" #include +#include namespace imageproc { void adjustBrightness(QImage& rgbImage, const QImage& brightness, const double wr, const double wb) { @@ -73,4 +74,4 @@ void adjustBrightnessYUV(QImage& rgbImage, const QImage& brightness) { void adjustBrightnessGrayscale(QImage& rgbImage, const QImage& brightness) { adjustBrightness(rgbImage, brightness, 11.0 / 32.0, 5.0 / 32.0); } -} // namespace imageproc \ No newline at end of file +} // namespace imageproc diff --git a/src/imageproc/BackgroundColorCalculator.cpp b/src/imageproc/BackgroundColorCalculator.cpp index cfab54388..780e860c2 100644 --- a/src/imageproc/BackgroundColorCalculator.cpp +++ b/src/imageproc/BackgroundColorCalculator.cpp @@ -4,6 +4,7 @@ #include "BackgroundColorCalculator.h" #include +#include #include "Binarize.h" #include "BinaryImage.h" @@ -197,4 +198,4 @@ QColor BackgroundColorCalculator::calcDominantColor(const QImage& img, const Bin return QColor(dominantRed, dominantGreen, dominantBlue); } } -} // namespace imageproc \ No newline at end of file +} // namespace imageproc diff --git a/src/imageproc/Binarize.cpp b/src/imageproc/Binarize.cpp index 0a10d65c6..4a5ce679b 100644 --- a/src/imageproc/Binarize.cpp +++ b/src/imageproc/Binarize.cpp @@ -6,6 +6,7 @@ #include #include #include +#include #include "BinaryImage.h" #include "Grayscale.h" @@ -199,4 +200,4 @@ BinaryImage binarizeWolf(const QImage& src, BinaryImage peakThreshold(const QImage& image) { return BinaryImage(image, BinaryThreshold::peakThreshold(image)); } -} // namespace imageproc \ No newline at end of file +} // namespace imageproc diff --git a/src/imageproc/BinaryImage.cpp b/src/imageproc/BinaryImage.cpp index d7533870c..0f676aba1 100644 --- a/src/imageproc/BinaryImage.cpp +++ b/src/imageproc/BinaryImage.cpp @@ -1051,4 +1051,4 @@ void* BinaryImage::SharedData::operator new(size_t, const NumWords numWords) { void BinaryImage::SharedData::operator delete(void* addr, NumWords) { free(addr); } -} // namespace imageproc \ No newline at end of file +} // namespace imageproc diff --git a/src/imageproc/BinaryThreshold.cpp b/src/imageproc/BinaryThreshold.cpp index 70e6e9a67..096386871 100644 --- a/src/imageproc/BinaryThreshold.cpp +++ b/src/imageproc/BinaryThreshold.cpp @@ -6,6 +6,7 @@ #include #include #include +#include #include "Grayscale.h" #include "Morphology.h" @@ -171,4 +172,4 @@ BinaryThreshold BinaryThreshold::mokjiThreshold(const QImage& image, const double threshold = 0.5 * nominator / denominator; return BinaryThreshold((int) (threshold + 0.5)); } // BinaryThreshold::mokjiThreshold -} // namespace imageproc \ No newline at end of file +} // namespace imageproc diff --git a/src/imageproc/ColorSegmenter.cpp b/src/imageproc/ColorSegmenter.cpp index 82e4274e4..597ee6e02 100644 --- a/src/imageproc/ColorSegmenter.cpp +++ b/src/imageproc/ColorSegmenter.cpp @@ -5,6 +5,7 @@ #include #include +#include #include "BinaryImage.h" #include "BinaryThreshold.h" @@ -404,4 +405,4 @@ GrayImage ColorSegmenter::segment(const BinaryImage& image, const GrayImage& gra ConnectivityMap segmentsMap = buildMapFromGrayscale(image); return buildGrayImage(segmentsMap, grayImage); } -} // namespace imageproc \ No newline at end of file +} // namespace imageproc diff --git a/src/imageproc/ConnectivityMap.cpp b/src/imageproc/ConnectivityMap.cpp index 841003115..fab86d864 100644 --- a/src/imageproc/ConnectivityMap.cpp +++ b/src/imageproc/ConnectivityMap.cpp @@ -5,6 +5,7 @@ #include #include +#include #include "BinaryImage.h" #include "BitOps.h" @@ -571,4 +572,4 @@ void ConnectivityMap::remapIds(const std::vector& map) { } } } -} // namespace imageproc \ No newline at end of file +} // namespace imageproc diff --git a/src/imageproc/DrawOver.cpp b/src/imageproc/DrawOver.cpp index 9309199a0..a44a3a097 100644 --- a/src/imageproc/DrawOver.cpp +++ b/src/imageproc/DrawOver.cpp @@ -5,6 +5,7 @@ #include #include +#include #include "BinaryImage.h" #include "RasterOp.h" @@ -52,4 +53,4 @@ void drawOver(QImage& dst, const QRect& dstRect, const QImage& src, const QRect& srcLine += srcBpl; } } // drawOver -} // namespace imageproc \ No newline at end of file +} // namespace imageproc diff --git a/src/imageproc/Grayscale.cpp b/src/imageproc/Grayscale.cpp index 065c90c70..b3bb3b20d 100644 --- a/src/imageproc/Grayscale.cpp +++ b/src/imageproc/Grayscale.cpp @@ -3,6 +3,8 @@ #include "Grayscale.h" +#include + #include "BinaryImage.h" #include "BitOps.h" @@ -443,4 +445,4 @@ void GrayscaleHistogram::fromAnyImage(const QImage& img, const BinaryImage& mask } } } -} // namespace imageproc \ No newline at end of file +} // namespace imageproc diff --git a/src/imageproc/ImageCombination.cpp b/src/imageproc/ImageCombination.cpp index 226dbb59f..45d101b1d 100644 --- a/src/imageproc/ImageCombination.cpp +++ b/src/imageproc/ImageCombination.cpp @@ -1,11 +1,13 @@ // Copyright (C) 2019 Joseph Artsimovich , 4lex4 <4lex49@zoho.com> // Use of this source code is governed by the GNU GPLv3 license that can be found in the LICENSE file. + #include "ImageCombination.h" #include #include #include +#include #include "BinaryImage.h" @@ -403,4 +405,4 @@ void applyMask(QImage& image, const BinaryImage& bwMask, const BWColor fillingCo impl::applyMask(image, bwMask, fillingColor); } -} // namespace imageproc \ No newline at end of file +} // namespace imageproc diff --git a/src/imageproc/InfluenceMap.cpp b/src/imageproc/InfluenceMap.cpp index faed6a624..15ec20ce3 100644 --- a/src/imageproc/InfluenceMap.cpp +++ b/src/imageproc/InfluenceMap.cpp @@ -4,6 +4,7 @@ #include "InfluenceMap.h" #include +#include #include "BinaryImage.h" #include "BitOps.h" @@ -254,4 +255,4 @@ QImage InfluenceMap::visualized() const { } return dst; } // InfluenceMap::visualized -} // namespace imageproc \ No newline at end of file +} // namespace imageproc diff --git a/src/imageproc/Morphology.cpp b/src/imageproc/Morphology.cpp index e9d64a62e..0cf545ee1 100644 --- a/src/imageproc/Morphology.cpp +++ b/src/imageproc/Morphology.cpp @@ -6,6 +6,7 @@ #include #include #include +#include #include "BinaryImage.h" #include "GrayImage.h" @@ -1110,4 +1111,4 @@ BinaryImage blackTopHatTransform(const BinaryImage& src, BinaryImage blackTopHatTransform(const BinaryImage& src, const QSize& brick, BWColor srcSurroundings) { return blackTopHatTransform(src, brick, src.rect(), srcSurroundings); } -} // namespace imageproc \ No newline at end of file +} // namespace imageproc diff --git a/src/imageproc/OrthogonalRotation.cpp b/src/imageproc/OrthogonalRotation.cpp index 32e8690ba..d43ac069b 100644 --- a/src/imageproc/OrthogonalRotation.cpp +++ b/src/imageproc/OrthogonalRotation.cpp @@ -3,6 +3,8 @@ #include "OrthogonalRotation.h" +#include + #include "BinaryImage.h" #include "RasterOp.h" @@ -151,4 +153,4 @@ BinaryImage orthogonalRotation(const BinaryImage& src, const QRect& srcRect, con BinaryImage orthogonalRotation(const BinaryImage& src, const int degrees) { return orthogonalRotation(src, src.rect(), degrees); } -} // namespace imageproc \ No newline at end of file +} // namespace imageproc diff --git a/src/imageproc/PolygonRasterizer.cpp b/src/imageproc/PolygonRasterizer.cpp index c4224707d..ea35770c6 100644 --- a/src/imageproc/PolygonRasterizer.cpp +++ b/src/imageproc/PolygonRasterizer.cpp @@ -8,6 +8,7 @@ #include #include #include +#include #include "BinaryImage.h" #include "PolygonUtils.h" diff --git a/src/imageproc/PolynomialSurface.cpp b/src/imageproc/PolynomialSurface.cpp index 3df3b77dd..819545347 100644 --- a/src/imageproc/PolynomialSurface.cpp +++ b/src/imageproc/PolynomialSurface.cpp @@ -1,6 +1,8 @@ // Copyright (C) 2019 Joseph Artsimovich , 4lex4 <4lex49@zoho.com> // Use of this source code is governed by the GNU GPLv3 license that can be found in the LICENSE file. +#include + #include "PolynomialSurface.h" #include diff --git a/src/imageproc/Posterizer.cpp b/src/imageproc/Posterizer.cpp index 4de86d051..16c2ec0f4 100644 --- a/src/imageproc/Posterizer.cpp +++ b/src/imageproc/Posterizer.cpp @@ -3,6 +3,7 @@ #include "Posterizer.h" +#include #include #include #include diff --git a/src/imageproc/RastLineFinder.cpp b/src/imageproc/RastLineFinder.cpp index 956376824..e8b9348ae 100644 --- a/src/imageproc/RastLineFinder.cpp +++ b/src/imageproc/RastLineFinder.cpp @@ -3,6 +3,7 @@ #include "RastLineFinder.h" +#include #include #include #include diff --git a/src/imageproc/RastLineFinder.h b/src/imageproc/RastLineFinder.h index 1397f2f23..c204fbfcc 100644 --- a/src/imageproc/RastLineFinder.h +++ b/src/imageproc/RastLineFinder.h @@ -6,6 +6,7 @@ #include #include +#include #include #include #include diff --git a/src/imageproc/ReduceThreshold.cpp b/src/imageproc/ReduceThreshold.cpp index 7eaf5be01..af66c474e 100644 --- a/src/imageproc/ReduceThreshold.cpp +++ b/src/imageproc/ReduceThreshold.cpp @@ -3,6 +3,7 @@ #include "ReduceThreshold.h" +#include #include namespace imageproc { @@ -272,4 +273,4 @@ void ReduceThreshold::reduceVertLine(const int threshold) { m_image = dst; } // ReduceThreshold::reduceVertLine -} // namespace imageproc \ No newline at end of file +} // namespace imageproc diff --git a/src/imageproc/SavGolFilter.cpp b/src/imageproc/SavGolFilter.cpp index 5013b4c22..aad50e932 100644 --- a/src/imageproc/SavGolFilter.cpp +++ b/src/imageproc/SavGolFilter.cpp @@ -3,6 +3,8 @@ #include "SavGolFilter.h" +#include + #include "Grayscale.h" #include "SavGolKernel.h" @@ -274,4 +276,4 @@ QImage savGolFilter(const QImage& src, const QSize& windowSize, const int horDeg } return savGolFilterGrayToGray(toGrayscale(src), windowSize, horDegree, vertDegree); } -} // namespace imageproc \ No newline at end of file +} // namespace imageproc diff --git a/src/imageproc/Scale.cpp b/src/imageproc/Scale.cpp index a97c99c8e..7f5e3c5be 100644 --- a/src/imageproc/Scale.cpp +++ b/src/imageproc/Scale.cpp @@ -3,6 +3,7 @@ #include "Scale.h" +#include #include #include "GrayImage.h" @@ -355,4 +356,4 @@ GrayImage scaleToGray(const GrayImage& src, const QSize& dstSize) { } return scaleGrayToGray(src, dstSize); } -} // namespace imageproc \ No newline at end of file +} // namespace imageproc diff --git a/src/imageproc/SeedFill.cpp b/src/imageproc/SeedFill.cpp index c6ff52f4b..e5a94a65a 100644 --- a/src/imageproc/SeedFill.cpp +++ b/src/imageproc/SeedFill.cpp @@ -4,6 +4,7 @@ #include "SeedFill.h" #include +#include #include "GrayImage.h" #include "SeedFillGeneric.h" @@ -448,4 +449,4 @@ GrayImage seedFillGraySlow(const GrayImage& seed, const GrayImage& mask, const C } return img; } -} // namespace imageproc \ No newline at end of file +} // namespace imageproc diff --git a/src/imageproc/Shear.cpp b/src/imageproc/Shear.cpp index 0b7a33970..e7a5b3a08 100644 --- a/src/imageproc/Shear.cpp +++ b/src/imageproc/Shear.cpp @@ -3,6 +3,7 @@ #include "Shear.h" +#include #include #include @@ -168,4 +169,4 @@ void hShearInPlace(BinaryImage& image, const double shear, const double yOrigin, void vShearInPlace(BinaryImage& image, const double shear, const double xOrigin, const BWColor backgroundColor) { vShearFromTo(image, image, shear, xOrigin, backgroundColor); } -} // namespace imageproc \ No newline at end of file +} // namespace imageproc diff --git a/src/imageproc/SkewFinder.cpp b/src/imageproc/SkewFinder.cpp index dd462a139..fa9d62411 100644 --- a/src/imageproc/SkewFinder.cpp +++ b/src/imageproc/SkewFinder.cpp @@ -5,6 +5,7 @@ #include #include +#include #include "BinaryImage.h" #include "BitOps.h" @@ -207,4 +208,4 @@ double SkewFinder::calcScore(const BinaryImage& image) { } return score; } -} // namespace imageproc \ No newline at end of file +} // namespace imageproc diff --git a/src/imageproc/SlicedHistogram.cpp b/src/imageproc/SlicedHistogram.cpp index a3bc1555d..0d8eae928 100644 --- a/src/imageproc/SlicedHistogram.cpp +++ b/src/imageproc/SlicedHistogram.cpp @@ -3,6 +3,8 @@ #include "SlicedHistogram.h" +#include + #include "BinaryImage.h" #include "BitOps.h" @@ -85,4 +87,4 @@ void SlicedHistogram::processVerticalLines(const BinaryImage& image, const QRect m_data.push_back(count); } } -} // namespace imageproc \ No newline at end of file +} // namespace imageproc diff --git a/src/imageproc/SlicedHistogram.h b/src/imageproc/SlicedHistogram.h index 2f830e594..29f29bd24 100644 --- a/src/imageproc/SlicedHistogram.h +++ b/src/imageproc/SlicedHistogram.h @@ -6,6 +6,7 @@ #include #include +#include class QRect; diff --git a/src/imageproc/Transform.cpp b/src/imageproc/Transform.cpp index a0be0ff90..e8da11ac7 100644 --- a/src/imageproc/Transform.cpp +++ b/src/imageproc/Transform.cpp @@ -5,6 +5,7 @@ #include #include +#include #include "BadAllocIfNull.h" #include "ColorMixer.h" @@ -383,4 +384,4 @@ GrayImage transformToGray(const QImage& src, fixDpiInPlace(dst, src, xform); return dst; } -} // namespace imageproc \ No newline at end of file +} // namespace imageproc diff --git a/src/imageproc/UpscaleIntegerTimes.cpp b/src/imageproc/UpscaleIntegerTimes.cpp index aa977c19a..7df04813d 100644 --- a/src/imageproc/UpscaleIntegerTimes.cpp +++ b/src/imageproc/UpscaleIntegerTimes.cpp @@ -5,6 +5,8 @@ #include "BinaryImage.h" +#include + namespace imageproc { namespace { inline uint32_t multiplyBit(uint32_t bit, int times) { @@ -91,4 +93,4 @@ BinaryImage upscaleIntegerTimes(const BinaryImage& src, const QSize& dstSize, co dst.fillExcept(rect, padding); return dst; } -} // namespace imageproc \ No newline at end of file +} // namespace imageproc diff --git a/src/math/spfit/PolylineModelShape.cpp b/src/math/spfit/PolylineModelShape.cpp index 683f60990..a26546517 100644 --- a/src/math/spfit/PolylineModelShape.cpp +++ b/src/math/spfit/PolylineModelShape.cpp @@ -5,6 +5,8 @@ #include +#include + #include "FrenetFrame.h" #include "ToLineProjector.h" @@ -116,4 +118,4 @@ SqDistApproximant PolylineModelShape::calcApproximant(const QPointF& pt, return SqDistApproximant::curveDistance(pt, frenetFrame, signedCurvature); } } -} // namespace spfit \ No newline at end of file +} // namespace spfit From a0112f990621da4ea7c64b49a29ee22f3b045e86 Mon Sep 17 00:00:00 2001 From: kunzjacq Date: Sat, 5 Mar 2022 19:02:31 +0100 Subject: [PATCH 22/25] fix install with MinGW GCC from command-line --- src/app/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt index d4314bd44..6d020310a 100644 --- a/src/app/CMakeLists.txt +++ b/src/app/CMakeLists.txt @@ -84,10 +84,10 @@ if (Qt6_FOUND AND WIN32) add_custom_command( TARGET scantailor POST_BUILD - COMMAND ${QT_BINDIR}/windeployqt $ + COMMAND ${QT_BINDIR}/windeployqt $ COMMENT "deploy qt files alongside binary (e.g. plugins)" ) - install(CODE "execute_process(COMMAND ${QT_BINDIR}/windeployqt ${CMAKE_INSTALL_PREFIX})") + install(CODE "execute_process(COMMAND \"${QT_BINDIR}/windeployqt\" \"\$\{CMAKE_INSTALL_PREFIX\}\")") endif() translation_sources(scantailor ${gui_only_sources} ${gui_only_ui_files}) From 5442e128159d22a74dcef1d11762bbbc2b5e3d74 Mon Sep 17 00:00:00 2001 From: kunzjacq Date: Sat, 5 Mar 2022 22:11:30 +0100 Subject: [PATCH 23/25] ignore CMake user settings --- .gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..01e00f3af --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +CMakeLists.txt.user From 4e3d89b32720ca786a2a48c750ba7d8b357954c0 Mon Sep 17 00:00:00 2001 From: kunzjacq Date: Sun, 6 Mar 2022 15:08:50 +0100 Subject: [PATCH 24/25] Enable the installation of scantailor-advanced with libjpeg-turbo under Windows Enable the CMake install step to find the libjpeg-turbo dll, which has version number (libjpeg-62.dll) --- CMakeLists.txt | 6 ++++-- cmake/AddDynamicLibraryLocations.cmake | 13 ++++++++++--- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1b537055e..2b17c3648 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -132,7 +132,7 @@ endif() find_package(JPEG REQUIRED) if (WIN32) - add_dynamic_library_locations(JPEG::JPEG) + add_dynamic_library_locations(JPEG::JPEG "libjpeg-62.dll") endif() #=================================== ZLIB ===================================# @@ -148,7 +148,7 @@ endif() find_package(PNG REQUIRED) if (WIN32) - add_dynamic_library_locations(PNG::PNG) + add_dynamic_library_locations(PNG::PNG "libpng16.dll") endif() #=================================== TIFF ===================================# @@ -164,6 +164,8 @@ endif() #================================= Boost ================================# +#set(Boost_NO_WARN_NEW_VERSIONS ON) + if (WIN32) if (MINGW) if (CMAKE_SIZEOF_VOID_P EQUAL 8) diff --git a/cmake/AddDynamicLibraryLocations.cmake b/cmake/AddDynamicLibraryLocations.cmake index 47463f23d..65e38ef7c 100644 --- a/cmake/AddDynamicLibraryLocations.cmake +++ b/cmake/AddDynamicLibraryLocations.cmake @@ -14,6 +14,7 @@ # appropriate _DYNAMIC_LIBRARY_ cache variables should be set # or the locations should be added to CMAKE_PROGRAM_PATH or CMAKE_PREFIX_PATH variables. # +# An optional argument can be used to specify a non-standard name for the dynamic library. function(add_dynamic_library_locations Targets) foreach(_target ${Targets}) @@ -38,10 +39,16 @@ function(add_dynamic_library_locations Targets) get_filename_component(imp_loc_ext ${imp_loc} EXT) if (imp_loc_ext STREQUAL CMAKE_IMPORT_LIBRARY_SUFFIX) get_filename_component(lib_name_we ${imp_loc} NAME_WE) + set(candidate_names + "${lib_name_we}${CMAKE_SHARED_LIBRARY_SUFFIX}") + if(DEFINED ARGV1) + list(APPEND candidate_names ${ARGV1}) + endif() find_program( ${_target}_${dynamic_lib} - NAMES ${lib_name_we}${CMAKE_SHARED_LIBRARY_SUFFIX} - DOC Path to the dynamic library of the shared target \(skip it if the target is not shared\).) + NAMES ${candidate_names} + DOC Path to the dynamic library of the shared target \(skip it if the target is not shared\). + NO_CACHE) if (${_target}_${dynamic_lib}) set_target_properties( ${_target} PROPERTIES @@ -50,4 +57,4 @@ function(add_dynamic_library_locations Targets) endif() endforeach() endforeach() -endfunction() \ No newline at end of file +endfunction() From 6bc208f83c644c8085ad279dfb6b5de99dd53260 Mon Sep 17 00:00:00 2001 From: kunzjacq Date: Sun, 17 Apr 2022 14:43:09 +0200 Subject: [PATCH 25/25] Add missing include for Qt 6.3.0 compatibility --- src/foundation/Proximity.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/foundation/Proximity.cpp b/src/foundation/Proximity.cpp index 3e2bbe6c4..7435be0a9 100644 --- a/src/foundation/Proximity.cpp +++ b/src/foundation/Proximity.cpp @@ -6,6 +6,8 @@ #include #include +#include + Proximity::Proximity(const QPointF& p1, const QPointF& p2) { const double dx = p1.x() - p2.x(); const double dy = p1.y() - p2.y();