diff -Nru ocrfeeder-0.7.6/aclocal.m4 ocrfeeder-0.7.7/aclocal.m4 --- ocrfeeder-0.7.6/aclocal.m4 2011-08-04 15:53:09.000000000 +0000 +++ ocrfeeder-0.7.7/aclocal.m4 2011-12-10 13:08:14.000000000 +0000 @@ -260,6 +260,10 @@ [CATOBJEXT=.mo DATADIRNAME=lib]) ;; + *-*-openbsd*) + CATOBJEXT=.mo + DATADIRNAME=share + ;; *) CATOBJEXT=.mo DATADIRNAME=lib @@ -513,7 +517,8 @@ # ---------------------------------- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) -m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) +m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) +m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) @@ -559,7 +564,8 @@ pkg_cv_[]$1="$$1" elif test -n "$PKG_CONFIG"; then PKG_CHECK_EXISTS([$3], - [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) else pkg_failed=untried @@ -607,9 +613,9 @@ AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then - $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1` + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` else - $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1` + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD @@ -622,7 +628,7 @@ Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. -_PKG_TEXT]) +_PKG_TEXT])[]dnl ]) elif test $pkg_failed = untried; then AC_MSG_RESULT([no]) @@ -633,7 +639,7 @@ _PKG_TEXT -To get pkg-config, see .]) +To get pkg-config, see .])[]dnl ]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS diff -Nru ocrfeeder-0.7.6/bin/ocrfeeder-cli.in ocrfeeder-0.7.7/bin/ocrfeeder-cli.in --- ocrfeeder-0.7.6/bin/ocrfeeder-cli.in 2011-03-11 21:40:40.000000000 +0000 +++ ocrfeeder-0.7.7/bin/ocrfeeder-cli.in 2011-12-09 08:31:41.000000000 +0000 @@ -21,7 +21,7 @@ import sys import os -local_src = os.path.dirname(os.path.abspath(__file__)) + '../src' +local_src = os.path.dirname(os.path.abspath(__file__)) + '/../src' if os.path.exists(local_src): sys.path = [local_src] + sys.path installed_src = os.path.join('@prefix@', 'lib', 'python@PYTHON_VERSION@', @@ -29,11 +29,11 @@ if os.path.exists(installed_src): sys.path.insert(1, installed_src) -import Image +from PIL import Image from ocrfeeder.util.constants import OCRFEEDER_STUDIO_VERSION from ocrfeeder.util.graphics import getImageResolution +from ocrfeeder.util.configuration import ConfigurationManager from ocrfeeder.feeder.ocrEngines import OcrEnginesManager -from ocrfeeder.studio.configuration import ConfigurationManager from ocrfeeder.studio.dataHolder import PageData from ocrfeeder.feeder.layoutAnalysis import LayoutAnalysis from ocrfeeder.feeder.documentGeneration import OdtGenerator, HtmlGenerator @@ -114,3 +114,5 @@ for page in pages: document_generator.addPage(page) document_generator.save() + +configuration_manager.removeTemporaryFolder() diff -Nru ocrfeeder-0.7.6/ChangeLog ocrfeeder-0.7.7/ChangeLog --- ocrfeeder-0.7.6/ChangeLog 2011-03-11 21:40:40.000000000 +0000 +++ ocrfeeder-0.7.7/ChangeLog 2011-12-10 13:08:36.000000000 +0000 @@ -1 +1,5326 @@ -git log +commit 9f3831f2ba6e191b0722c43efcad545f342c4de7 +Author: Joaquim Rocha +Date: Sat Dec 10 14:00:35 2011 +0100 + + Update for release 0.7.7 + + NEWS | 39 +++++++++++++++++++++++++++++++++++++++ + configure.ac | 2 +- + 2 files changed, 40 insertions(+), 1 deletions(-) + +commit b68262030d1bb79b14fc3f3aef76f3ba35171fd4 +Author: Joaquim Rocha +Date: Sat Dec 10 14:03:04 2011 +0100 + + Update year in the copyright notice + + src/ocrfeeder/util/constants.py.in | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +commit 592580bd4c2f0e9103e488cb10b3a51d6f422031 +Author: Joaquim Rocha +Date: Fri Dec 9 17:29:11 2011 +0100 + + Fix missing dependency check for reportlab (gb#656574) + + configure.ac | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +commit ad6076655e58ee377befcfdef4717b4817e00682 +Author: Daniel Korostil +Date: Sun Dec 4 21:41:08 2011 +0200 + + Uploaded Ukranian + + po/uk.po | 6 +++--- + 1 files changed, 3 insertions(+), 3 deletions(-) + +commit 3bbf88e43768bafda8c13c6cfb5515b9f6381914 +Author: Daniel Korostil +Date: Sun Dec 4 09:58:21 2011 +0200 + + Uploaded Ukranian + + po/uk.po | 698 ++++++++++++++++++++++++++++++++++++-------------------------- + 1 files changed, 405 insertions(+), 293 deletions(-) + +commit 6010b853aee79936c2deca5abafedc5e5934d1e5 +Author: Joaquim Rocha +Date: Sat Dec 3 13:48:02 2011 +0100 + + Fix the letter and line spacing persistency when selecting different areas + + The areas' editor would maintain the last values of the letter and line + spacing that were set. These changes will make it show those values from + the data boxes. + + src/ocrfeeder/studio/dataHolder.py | 6 ++++++ + src/ocrfeeder/studio/widgetModeler.py | 2 ++ + src/ocrfeeder/studio/widgetPresenter.py | 3 +++ + 3 files changed, 11 insertions(+), 0 deletions(-) + +commit c314b32492cd491990ea398b61f72f6dd7273732 +Author: Joaquim Rocha +Date: Sat Dec 3 13:41:19 2011 +0100 + + Fix the generation of distinct names for images with the same path + + src/ocrfeeder/studio/widgetModeler.py | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +commit c47b3a0be1ba0f9e1e7c9accd0427de306f26eb3 +Author: Joaquim Rocha +Date: Sat Dec 3 13:31:02 2011 +0100 + + Fix the recognition of selected areas + + The recognition was broken when a single Editor instance started + being used. These changes fix that and pass the logic of recognizing + the areas into the ImageReviewer. + + src/ocrfeeder/studio/widgetModeler.py | 66 ++++++++++++++++++--------------- + 1 files changed, 36 insertions(+), 30 deletions(-) + +commit 80838ff2cfffdd5b3d80be572592904d84b19f4c +Author: Joaquim Rocha +Date: Sat Dec 3 03:13:01 2011 +0100 + + Stop using ImageReviewer instances and use PageData ones for remaining actions + + ImageReviewer instances were still being used when trying to export + a page or when recognizing the document. These changes drop what + was still left from the ImageReviewer regular usage from the + previous commit and use the PageData ones instead. + + src/ocrfeeder/studio/widgetModeler.py | 174 ++++++++++++++++++--------------- + 1 files changed, 96 insertions(+), 78 deletions(-) + +commit fc39dc36feebcc1561fce1fd177cfd48a603046e +Author: Joaquim Rocha +Date: Sat Dec 3 01:28:09 2011 +0100 + + Use a limited number of ImageReviewer instances at the same time + + These changes establish a limit to the number of ImageReviewer + instances used at the same time on the main window's notebook. + The reason behind these changes is so it does not consume so much + memory and allow using many images at a time. + + src/ocrfeeder/studio/widgetModeler.py | 100 +++++++++++++++++---------------- + 1 files changed, 52 insertions(+), 48 deletions(-) + +commit cb87a637d88a19807eb3b3c5a0a68d59ff992e16 +Author: Joaquim Rocha +Date: Sat Dec 3 00:04:46 2011 +0100 + + Make the ImageReviewer a subclass of gtk.HPaned + + This is so it is used directly when adding it to the window, + avoiding having to do it from an instance. + + src/ocrfeeder/studio/widgetModeler.py | 23 +++++++++++------------ + 1 files changed, 11 insertions(+), 12 deletions(-) + +commit 34f97a3ffe76e921debcbd32fb32bfa2ce814f05 +Author: Joaquim Rocha +Date: Fri Dec 2 15:42:17 2011 +0100 + + Use subclasses of gtk.ListStore and gtk.IconView instead of generic objects + + Those classes were being used as variables of the generic objects + which complicated the code and had no real advantage. + + src/ocrfeeder/studio/studioBuilder.py | 22 ++++------ + src/ocrfeeder/studio/widgetModeler.py | 66 ++++++++++++-------------------- + 2 files changed, 34 insertions(+), 54 deletions(-) + +commit 01eb69b97ad985de726af68e3f18e5ca5cfebd8c +Author: Joaquim Rocha +Date: Sat Nov 12 18:36:11 2011 +0100 + + Remove lone reference of a variable (mistakenly left in the code) + + src/ocrfeeder/studio/widgetPresenter.py | 1 - + 1 files changed, 0 insertions(+), 1 deletions(-) + +commit 3807032d4301097b9e086f00625de25ef8531c27 +Author: Joaquim Rocha +Date: Sat Nov 12 18:35:25 2011 +0100 + + Remove setting the stroke color of the areas from the editor + + This is so we don't lose visual the feedback about which area is + selected. + + src/ocrfeeder/studio/widgetModeler.py | 2 -- + 1 files changed, 0 insertions(+), 2 deletions(-) + +commit 9941f482f108267a3db16b53ecfd46535075eed8 +Author: Joaquim Rocha +Date: Sat Nov 12 18:31:21 2011 +0100 + + Changes the way the editor of the content areas is implemented + + These are big changes that remove the usage of a GtkNotebook that + stores every editor instance and instead use just one instance to + handle the the currently selected area. + + With these changes, the settings of the line and letter spacing of + an area are lost when selecting a different area. This is supposed + to be fixed later. + + src/ocrfeeder/studio/dataHolder.py | 9 ++ + src/ocrfeeder/studio/widgetModeler.py | 203 ++++++++++++++++----------------- + 2 files changed, 106 insertions(+), 106 deletions(-) + +commit 849a079923b6c1e1c502b6d27169c99e2c3b496b +Author: Joaquim Rocha +Date: Sat Nov 12 18:13:54 2011 +0100 + + Reset the mouse cursor (to be the normal one) when deleting areas + + This needs to be done because if the current cursor was not the normal + one (i.e. the mouse if over the edges of the area) and the area was + deleted, the cursor would stay that way until it was over the edges of + an area again. + + src/ocrfeeder/studio/customWidgets.py | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +commit af3c4d7e85a2bc6491fb2293463896f27459e185 +Author: Joaquim Rocha +Date: Sat Nov 12 17:58:43 2011 +0100 + + Change the way the areas are removed to make it more secure + + Since the removal of the areas acted on the list of selected areas + directly, if that list was meanwhile changed, it could end up + mistakenly removing areas. This could occur, for example, if some + area was selected from the callback that is called when another area + is removed. + + src/ocrfeeder/studio/customWidgets.py | 5 ++++- + 1 files changed, 4 insertions(+), 1 deletions(-) + +commit f3a94a821c9bc6465f4ae23a16f563f97d7f2629 +Author: Kristjan SCHMIDT +Date: Thu Nov 17 16:51:53 2011 +0100 + + Add Esperanto translation + + po/LINGUAS | 1 + + po/eo.po | 1082 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 1083 insertions(+), 0 deletions(-) + +commit 71fa6377ab1784a8ad890bbd7eb4a066f8cbdb81 +Author: Piotr Drąg +Date: Sat Oct 29 00:46:27 2011 +0200 + + Updated POTFILES.in + + po/POTFILES.in | 9 ++++----- + 1 files changed, 4 insertions(+), 5 deletions(-) + +commit 97caf00b23a81e66874a140f559f02501477d899 +Author: Joaquim Rocha +Date: Fri Oct 28 19:23:52 2011 +0200 + + Add forgotten configuration.py + + It had been moved before and should have been added to + commit 05cee9eb4557a9d2dd4a1ee12a60a02bfc848024 + + src/ocrfeeder/util/configuration.py | 385 +++++++++++++++++++++++++++++++++++ + 1 files changed, 385 insertions(+), 0 deletions(-) + +commit 3f891e30c2cfe17e36fa9b86f69c8f0509d91c8e +Author: Joaquim Rocha +Date: Fri Oct 28 19:17:17 2011 +0200 + + Fix the sys path for the CLI + + bin/ocrfeeder-cli.in | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 0b6d832761f99571ab69ba374108fc0278616fe8 +Author: Joaquim Rocha +Date: Fri Oct 28 19:16:59 2011 +0200 + + Import the Image module from PIL to avoid issues + + bin/ocrfeeder-cli.in | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 248b1c3971d839fe584fc5eb1ae73e83cb03d56f +Author: Joaquim Rocha +Date: Fri Oct 28 18:58:03 2011 +0200 + + Create a temporary directory correctly for the PDF conversion + + It was generating a temporary file, removing it and creating + a temporary directory instead of using the function that directly + creates the temporary folder (tempfile.mkdtemp). + + src/ocrfeeder/util/lib.py | 7 +------ + 1 files changed, 1 insertions(+), 6 deletions(-) + +commit 545617acab59ea221ccba90a8d01524c0945fddd +Author: Joaquim Rocha +Date: Fri Oct 28 18:57:02 2011 +0200 + + Remove the temporary folder setting from the preferences dialog + + src/ocrfeeder/studio/widgetPresenter.py | 29 +---------------------------- + 1 files changed, 1 insertions(+), 28 deletions(-) + +commit f7998cd314369036c4d4843aa88107f274e994e7 +Author: Joaquim Rocha +Date: Fri Oct 21 22:39:11 2011 +0200 + + Use the dedicated temporary folder consistently + + Some parts where honoring the configured temporary folder + while others simply used the one default one provided by + the tempfile module's functions. + + Also it deletes that temporary folder so no temporary files + will be left undeleted. + + bin/ocrfeeder-cli.in | 2 ++ + src/ocrfeeder/feeder/documentGeneration.py | 7 +++++-- + src/ocrfeeder/feeder/ocrEngines.py | 12 +++++++++--- + src/ocrfeeder/studio/project.py | 4 ++-- + src/ocrfeeder/studio/studioBuilder.py | 6 ++++-- + src/ocrfeeder/studio/widgetModeler.py | 6 ++++-- + src/ocrfeeder/studio/widgetPresenter.py | 4 ++-- + 7 files changed, 28 insertions(+), 13 deletions(-) + +commit 05cee9eb4557a9d2dd4a1ee12a60a02bfc848024 +Author: Joaquim Rocha +Date: Fri Oct 21 22:30:19 2011 +0200 + + Separate the ConfigurationManager and ProjectSaver/Loader + + These changes separate the referred classes into different + files and move the configuration one to the util package + for a better organization. + + It also drops the need for providing the temporary folder as + an argument to the ProjectSaver/Loader functions. + + bin/ocrfeeder-cli.in | 2 +- + src/ocrfeeder/studio/Makefile.am | 2 +- + src/ocrfeeder/studio/configuration.py | 600 ------------------------------- + src/ocrfeeder/studio/project.py | 240 ++++++++++++ + src/ocrfeeder/studio/studioBuilder.py | 2 +- + src/ocrfeeder/studio/widgetModeler.py | 5 +- + src/ocrfeeder/studio/widgetPresenter.py | 2 +- + src/ocrfeeder/util/Makefile.am | 1 + + 8 files changed, 248 insertions(+), 606 deletions(-) + +commit 1dfd892d16447007d15e124dd473148c465d35ed +Author: Joaquim Rocha +Date: Fri Oct 21 22:35:30 2011 +0200 + + Remove unused class Slicer + + src/ocrfeeder/feeder/imageManipulation.py | 21 --------------------- + 1 files changed, 0 insertions(+), 21 deletions(-) + +commit 699adc03f7543d3f02ea122d4500e4ff2c0de033 +Author: Joaquim Rocha +Date: Wed Oct 26 18:03:15 2011 +0200 + + Fix single recognition of a content area + + The issue was that the image used for getting the text size was + not ensured to be grayscale. + + src/ocrfeeder/feeder/layoutAnalysis.py | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +commit 64123029b91910523814553046bc26451afeecfc +Author: György Balló +Date: Thu Oct 6 19:25:33 2011 +0200 + + Remove libgnome dependency + + src/ocrfeeder/studio/studioBuilder.py | 2 -- + src/ocrfeeder/util/lib.py | 4 ---- + 2 files changed, 0 insertions(+), 6 deletions(-) + +commit 3060f49b46fc894f66ac3777785a2c43c2b489d0 +Author: Joe Hansen +Date: Fri Sep 30 09:59:47 2011 +0200 + + Updated Danish translation + + po/da.po | 593 ++++++++++++++++++++++++++++++++------------------------------ + 1 files changed, 310 insertions(+), 283 deletions(-) + +commit a8ee75220a4a848e01d9975eeed1e9aca7dc9112 +Author: Alberto Garcia +Date: Sun Aug 7 12:25:31 2011 +0200 + + Generate a ChangeLog file from git when running make dist + + Makefile.am | 13 +++++++++++++ + 1 files changed, 13 insertions(+), 0 deletions(-) + +commit 0431db938bdd6a0d4f2f20a2fed9a23cd965e980 +Author: Matej Urbančič +Date: Wed Sep 7 15:41:29 2011 +0200 + + Updated Slovenian translation + + po/sl.po | 567 ++++++++++++++++++++++++++++++++------------------------------ + 1 files changed, 296 insertions(+), 271 deletions(-) + +commit 190eaec01f5f10264fcbec8d533ca4ee1eabcdb4 +Author: Mario Blättermann +Date: Fri Aug 19 14:05:03 2011 +0200 + + [l10n] Updated German translation + + po/de.po | 559 ++++++++++++++++++++++++++++++++----------------------------- + 1 files changed, 293 insertions(+), 266 deletions(-) + +commit ee2e589e8a34183c3cb1c68acb3f691d8f65dc1e +Author: Marek Černocký +Date: Tue Aug 9 20:49:57 2011 +0200 + + Updated Czech translation + + po/cs.po | 561 ++++++++++++++++++++++++++++++++------------------------------ + 1 files changed, 292 insertions(+), 269 deletions(-) + +commit fcb3f31ec1a80d6d281b1f99948f62f24581b0b0 +Author: Joaquim Rocha +Date: Thu Aug 4 17:54:04 2011 +0200 + + update for release 0.7.6 + + NEWS | 33 +++++++++++++++++++++++++++++++++ + configure.ac | 2 +- + 2 files changed, 34 insertions(+), 1 deletions(-) + +commit fdedb427dcc1606a1d75bc81757f8129ccb3c0e4 +Author: Daniel Mustieles +Date: Thu Aug 4 09:47:53 2011 +0200 + + Updated Spanish translation + + po/es.po | 561 ++++++++++++++++++++++++++++++++------------------------------ + 1 files changed, 292 insertions(+), 269 deletions(-) + +commit 534c857aec5ffaa8666a6f402195ded7b2b4926d +Author: Joaquim Rocha +Date: Wed Aug 3 23:59:08 2011 +0200 + + Make ODT the first exportation format in the list + + Due to a mistake, HTML was being shown as the first format in the list. + + src/ocrfeeder/studio/studioBuilder.py | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +commit 50bbf2bee670828ce4fc5fac4aa8e267b07af3a3 +Author: Joaquim Rocha +Date: Wed Aug 3 23:45:49 2011 +0200 + + Fix the switching of the mouse cursor on the page's right border + + It was being changed to the "left side" cursor. + + src/ocrfeeder/studio/customWidgets.py | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit ad94cc05a8d56f1e8ba617dc5b832ca8300defda +Author: Joaquim Rocha +Date: Tue Aug 2 23:37:56 2011 +0200 + + Add the searchable PDF option to the exportation formats + + Allows choosing the type of the PDF to be exported: from scratch or + a searchable PDF. + + src/ocrfeeder/feeder/documentGeneration.py | 21 +++++++++++++++-- + src/ocrfeeder/studio/studioBuilder.py | 32 +++++++++++++++++++++++++++- + src/ocrfeeder/studio/widgetModeler.py | 4 +- + 3 files changed, 51 insertions(+), 6 deletions(-) + +commit d73ebc447451da8816a80ad14e316ab9d6cdda06 +Author: Joaquim Rocha +Date: Wed Jul 27 15:33:01 2011 +0200 + + Add PDF exportation + + Exports to a PDF from scratch. Might not respect some of + configurations like the fonts and letter spacing which should be + fine-tuned in the future. + + src/ocrfeeder/feeder/documentGeneration.py | 47 ++++++++++++++++++++++++++++ + src/ocrfeeder/studio/studioBuilder.py | 6 +++- + src/ocrfeeder/studio/widgetModeler.py | 14 ++++++++- + 3 files changed, 65 insertions(+), 2 deletions(-) + +commit c2df80902f9c7fe487b8463a7fb346f3438a290f +Author: Joaquim Rocha +Date: Mon Jul 25 19:32:05 2011 +0200 + + Remove a trailing space + + src/ocrfeeder/feeder/documentGeneration.py | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 8793d5a550e2343405f3d3f88c3ff7ad1b2cf26e +Author: Joaquim Rocha +Date: Fri Jul 22 20:53:49 2011 +0200 + + Fix the recognition for grayscale images + + There were some errors when trying to recognize grayscale images + and those had to do with the colors being integers instead of + lists of integers. + + src/ocrfeeder/feeder/layoutAnalysis.py | 7 ++++++- + src/ocrfeeder/util/graphics.py | 31 ++++++++++++++----------------- + 2 files changed, 20 insertions(+), 18 deletions(-) + +commit ede193b1c6855734223d9aa254af2a58eae1f16d +Author: Bruno Brouard +Date: Sun Jul 31 17:15:41 2011 +0200 + + Updated French translation + + po/fr.po | 26 ++++++++++++++------------ + 1 files changed, 14 insertions(+), 12 deletions(-) + +commit 206fd0269f7a5c6ccd9ac697e995fa89f20519ea +Author: Gabriel Speckhahn +Date: Wed Jul 27 12:28:34 2011 -0300 + + Updated Brazilian Portuguese translation + + po/pt_BR.po | 807 +++++++++++++++++++++++++++++------------------------------ + 1 files changed, 400 insertions(+), 407 deletions(-) + +commit d42a5c801533245310c1dd41d50f21358135d8c0 +Author: Joaquim Rocha +Date: Thu Jul 21 13:14:46 2011 +0200 + + Add separators to the Document submenus + + src/ocrfeeder/studio/widgetPresenter.py | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +commit e188eeea662b30e2e0623af66f36fde85ba20be6 +Author: Kjartan Maraas +Date: Tue Jul 19 12:18:10 2011 +0200 + + Updated Norwegian bokmål translation + + po/nb.po | 578 ++++++++++++++++++++++++++++++++------------------------------ + 1 files changed, 301 insertions(+), 277 deletions(-) + +commit ede7667d7747dab4d6458d223f05738cae655556 +Author: Gil Forcada +Date: Thu Jul 7 23:43:11 2011 +0200 + + [l10n]Added Catalan (Valencian) translation + + po/LINGUAS | 1 + + po/ca@valencia.po | 1155 +++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 1156 insertions(+), 0 deletions(-) + +commit 3678d3ba77ff253e1f255374af037712c25cbf37 +Author: Pau Iranzo +Date: Thu Jul 7 23:42:36 2011 +0200 + + [l10n]Added Catalan translation + + po/LINGUAS | 1 + + po/ca.po | 1155 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 1156 insertions(+), 0 deletions(-) + +commit c0c424689139c25797fc2e075de19bea81be5f6b +Author: Evangelos Vafeiadis +Date: Thu May 26 17:15:17 2011 +0300 + + l10n: Added Greek translation for ocrfeeder + + po/LINGUAS | 1 + + po/el.po | 1077 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 1078 insertions(+), 0 deletions(-) + +commit bce46e56309b788a8c8fc4794ff76061e78b8978 +Author: Mario Blättermann +Date: Sun May 22 15:50:18 2011 +0200 + + [l10n] Updated German doc translation, added screenshots + + help/de/de.po | 223 +++++++++++++++++++++++++++++++++++-- + help/de/figures/areas-edition.png | Bin 0 -> 16851 bytes + help/de/figures/content-areas.png | Bin 0 -> 23481 bytes + 3 files changed, 211 insertions(+), 12 deletions(-) + +commit f10e98fd0521eb0676a52c7bcab47fa678c1acf7 +Author: Mario Blättermann +Date: Sun May 22 15:19:50 2011 +0200 + + [l10n] Fixed some typos in German translation + + po/de.po | 8 ++++---- + 1 files changed, 4 insertions(+), 4 deletions(-) + +commit ed4e086948c4dad42dba0e4db8ad6c8ddbb41b48 +Author: Mario Blättermann +Date: Sat May 21 18:47:34 2011 +0200 + + [l10n] Updated German translation + + po/de.po | 27 +++++++++++++++------------ + 1 files changed, 15 insertions(+), 12 deletions(-) + +commit 5df249a26fa872a8f6c585023d144a7c84a211ff +Author: Joaquim Rocha +Date: Tue May 17 22:51:02 2011 +0200 + + Update for release 0.7.5 + + NEWS | 40 ++++++++++++++++++++++++++++++++++++++++ + configure.ac | 2 +- + 2 files changed, 41 insertions(+), 1 deletions(-) + +commit e1a4301ebb76cbebca0d9f5c708c07d24dcec04e +Author: Joaquim Rocha +Date: Tue May 17 21:04:38 2011 +0200 + + Clarify the help output about the --images option + + src/ocrfeeder/studio/studioBuilder.py | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +commit 82bb138b85bec9f4aaaf1bc523c007acb704a458 +Author: Joaquim Rocha +Date: Tue May 17 01:29:30 2011 +0200 + + Prevent errors when adding unexisting images + + If the images do not exist, prints a debug message to the stdout + and continues with the normal execution. + + src/ocrfeeder/studio/widgetModeler.py | 18 +++++++++++------- + 1 files changed, 11 insertions(+), 7 deletions(-) + +commit 651db69b19b191d895f29b8f8768452dba139f7a +Author: Marek Černocký +Date: Sun May 15 22:08:25 2011 +0200 + + Updated Czech translation + + po/cs.po | 34 ++++++++++++++++++---------------- + 1 files changed, 18 insertions(+), 16 deletions(-) + +commit 17566027ab193bd4ecf6e4fc00e18e00baef1753 +Author: Joaquim Rocha +Date: Wed May 11 17:38:34 2011 +0200 + + Resets the favorite engine when it does not exist + + When the favorite engine does not exist then the OCR is not performed + in the automatic recognition. These changes check if the favorite engine + exists and if not, set it to the first engine of the configured list. + + src/ocrfeeder/feeder/ocrEngines.py | 9 ++++++++- + src/ocrfeeder/studio/studioBuilder.py | 2 +- + 2 files changed, 9 insertions(+), 2 deletions(-) + +commit 2381f9d44d341d51301de2ddf10462a8b6ac36a4 +Author: Joaquim Rocha +Date: Wed May 11 12:09:53 2011 +0200 + + Focus box's editor text area automatically (gb#635308) + + When selecting the next or previous area/box, now its text area gets + automatically focused. This change should improve the usability + especially for visually impaired users who are now able to quickly + check what is the text assigned to a text area. + + src/ocrfeeder/studio/widgetModeler.py | 9 +++++++++ + 1 files changed, 9 insertions(+), 0 deletions(-) + +commit 76b79545734efeed77f38009fb9d073d50e89174 +Author: Marek Černocký +Date: Wed May 11 09:13:56 2011 +0200 + + Updated Czech translation + + help/cs/cs.po | 351 +++++++++++++++++++++++++++++++++++++++++++++++++-------- + 1 files changed, 301 insertions(+), 50 deletions(-) + +commit 9f35540fb2fef6b109a92b1beed1eec88c988c7a +Author: Matej Urbančič +Date: Mon May 9 20:23:45 2011 +0200 + + Updated Slovenian translation + + po/sl.po | 29 ++++++++++++++++------------- + 1 files changed, 16 insertions(+), 13 deletions(-) + +commit 73d5f33de7df0d192224d929779fc0559db630f7 +Author: Daniel Mustieles +Date: Sun May 8 22:47:35 2011 +0200 + + Updated Spanish translation + + po/es.po | 38 ++++++++++++++++++++------------------ + 1 files changed, 20 insertions(+), 18 deletions(-) + +commit fe75998e66e2baf5f0b4e1ad667c505b2ccb5026 +Author: Łukasz Jernaś +Date: Mon Mar 28 19:22:11 2011 +0200 + + Change some mnemonics in the menu to avoid clashes (fixes gb#645983) + + src/ocrfeeder/studio/widgetPresenter.py | 6 +++--- + 1 files changed, 3 insertions(+), 3 deletions(-) + +commit e1f8910adc3d0ef21d047ba88ec621859dc0b7b0 +Author: Joaquim Rocha +Date: Mon May 2 08:11:04 2011 +0200 + + Implement the update of the selectable areas' bounds by dragging their limits + + Now, when the mouse approaches the limits of the areas, the cursor + will change and it is possible to update the bounds by dragging the + limits of the areas. + + src/ocrfeeder/studio/customWidgets.py | 235 ++++++++++++++++++++++++++++----- + src/ocrfeeder/studio/studioBuilder.py | 4 +- + 2 files changed, 202 insertions(+), 37 deletions(-) + +commit b31c615e46b8bf3065bfc2e4528d6ace757528c5 +Author: Joaquim Rocha +Date: Sat May 7 15:05:49 2011 +0200 + + Add "sane" missing dependency + + configure.ac | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +commit fed2d05479c40020d95aaf3e9fa173d6d88d3cd4 +Author: Djavan Fagundes +Date: Tue May 3 10:14:59 2011 -0300 + + Added Brazilian Portuguese translation by Albino Biasutti Neto and myself. + + po/LINGUAS | 1 + + po/pt_BR.po | 1099 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 1100 insertions(+), 0 deletions(-) + +commit 1e9d59f5e77d653a604ce46a7f89d4344c0f32e9 +Author: Marek Černocký +Date: Sun May 1 08:18:41 2011 +0200 + + Updated Czech translation + + po/cs.po | 6 +++--- + 1 files changed, 3 insertions(+), 3 deletions(-) + +commit 7ec1eeb0c552f0f7bcc0274d37c2e01000d2971e +Author: Marek Černocký +Date: Sun May 1 00:54:02 2011 +0200 + + Updated Czech screenshot + + help/cs/figures/content-areas.png | Bin 171683 -> 169874 bytes + 1 files changed, 0 insertions(+), 0 deletions(-) + +commit d3144a07a0272d72251d445937c4b09c0a439715 +Author: Marek Černocký +Date: Sun May 1 00:07:47 2011 +0200 + + Updated Czech translation + + po/cs.po | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +commit f0cf59e7e832e7fec15d103b582710b04753ad2f +Author: Marek Černocký +Date: Sat Apr 30 23:46:46 2011 +0200 + + Updated Czech translation + + po/cs.po | 6 +++--- + 1 files changed, 3 insertions(+), 3 deletions(-) + +commit 1a3534dbc3b5e93b1068670ac3b59d420ea29a4a +Author: Marek Černocký +Date: Sat Apr 30 18:13:53 2011 +0200 + + Updated Czech translation + + po/cs.po | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit a2462dcdd07028cfc75585124a5fa4ebd5872e14 +Author: Marek Černocký +Date: Sat Apr 30 18:00:14 2011 +0200 + + Updated Czech translation + + po/cs.po | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 117b70b02c3c7ad800572c126c13eb601078ffa4 +Author: Marek Černocký +Date: Sat Apr 30 17:56:39 2011 +0200 + + Updated Czech translation + + po/cs.po | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit ffee8fb981f1534547d3a2f40b2a5a36b954920b +Author: Marek Černocký +Date: Sat Apr 30 16:29:54 2011 +0200 + + Updated Czech translation + + po/cs.po | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 33c142ee10522fc2b8fd61cea578cd3fd9934b2f +Author: Marek Černocký +Date: Sun Apr 24 19:35:51 2011 +0200 + + Czech screenshot + + help/cs/figures/content-areas.png | Bin 0 -> 171683 bytes + 1 files changed, 0 insertions(+), 0 deletions(-) + +commit bfb1445a08046ac24d525d67ef85d850076cd118 +Author: Marek Černocký +Date: Sun Apr 24 19:35:43 2011 +0200 + + Czech screenshot + + help/cs/figures/areas-edition.png | Bin 0 -> 26525 bytes + 1 files changed, 0 insertions(+), 0 deletions(-) + +commit b0c7d0c41877750e975f034617b60cb8c23469a1 +Author: Marek Černocký +Date: Sun Apr 24 19:35:29 2011 +0200 + + Czech help translation + + help/cs/cs.po | 766 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 files changed, 766 insertions(+), 0 deletions(-) + +commit e602b8789f9b1de774e30779055c039880eecc7e +Author: Marek Černocký +Date: Sun Apr 24 19:35:20 2011 +0200 + + Added Czech language + + help/Makefile.am | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit f35be049f8712bc3d45df18f21cb70500a83aa3b +Author: Claude Paroz +Date: Thu Apr 21 17:02:01 2011 +0200 + + Updated French translation + + po/fr.po | 563 +++++++++++++++++++++++++++++++++++--------------------------- + 1 files changed, 316 insertions(+), 247 deletions(-) + +commit b95638d5b375b4408e94a3aa164c583dd8cb89bd +Author: Joe Hansen +Date: Wed Apr 6 22:49:38 2011 +0200 + + Updated Danish translation + + po/da.po | 572 ++++++++++++++++++++++++++++++++++--------------------------- + 1 files changed, 319 insertions(+), 253 deletions(-) + +commit 5857a9d3839415ce91acaf9da5f9a71cbb9d198b +Author: Daniel Mustieles +Date: Sun Apr 3 16:31:26 2011 +0200 + + Updated Spanish translation + + help/es/es.po | 15 ++++++--------- + 1 files changed, 6 insertions(+), 9 deletions(-) + +commit addac687c8fdc04229b1b9d301ee2bf618268f3d +Author: Łukasz Jernaś +Date: Thu Mar 31 19:30:51 2011 +0200 + + Added Polish translation + + po/LINGUAS | 1 + + po/pl.po | 1091 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 1092 insertions(+), 0 deletions(-) + +commit 286ce39f0a57d6e4af6475cc0b26bc8e74870493 +Author: Mario Blättermann +Date: Thu Mar 31 18:16:26 2011 +0200 + + [l10n] Updated German translation + + po/de.po | 527 +++++++++++++++++++++++++++++++++----------------------------- + 1 files changed, 277 insertions(+), 250 deletions(-) + +commit 02ae4050cbbd977e34ea6ec2d5b9fe6e9e03f0fa +Author: Aron Xu +Date: Wed Mar 30 01:01:02 2011 +0800 + + Update Simplified Chinese translation. + + po/zh_CN.po | 690 ++++++++++++++++++++++++++++++++++------------------------- + 1 files changed, 395 insertions(+), 295 deletions(-) + +commit 086deed889dd438bc8bf324bc5ffc7d3cfbeada7 +Author: Marek Černocký +Date: Sat Mar 26 20:08:52 2011 +0100 + + Updated Czech translation + + po/cs.po | 525 +++++++++++++++++++++++++++++++++----------------------------- + 1 files changed, 277 insertions(+), 248 deletions(-) + +commit f91cc4aea6d134213177546290fe5602a592068a +Author: Gianvito Cavasoli +Date: Tue Mar 22 23:08:35 2011 +0100 + + Updated Italian translation + + po/it.po | 1104 ++++++++++++++++++++++++++++++++++++++++++++------------------ + 1 files changed, 794 insertions(+), 310 deletions(-) + +commit 67c05905e0a1dc6ba702d3cbddd6f3aea63431e1 +Author: Joaquim Rocha +Date: Sat Mar 19 18:52:02 2011 +0100 + + Update for release 0.7.4 + + NEWS | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ + configure.ac | 2 +- + 2 files changed, 52 insertions(+), 1 deletions(-) + +commit e8e8597b7b942ced46f787c05a61822a4e644db9 +Author: Joaquim Rocha +Date: Sat Mar 19 17:44:59 2011 +0100 + + Fix selection of multiple areas + + src/ocrfeeder/studio/customWidgets.py | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 58c280394af4e6aa780c17cf4fd84a8d50857e10 +Author: Juanje Ojeda +Date: Wed Mar 9 16:53:14 2011 +0100 + + Added some missed Pythn dependencies to the configure.ac file + + Removed the library pygtk-2.0-dev from the dependencies because + there is nothing to compile and added the missing Python modules: + - gtk + - pygtk + - gtkspell + - goocanvas + - enchant + + configure.ac | 13 +++++------ + m4/m4_ax_python_module.m4 | 49 +++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 55 insertions(+), 7 deletions(-) + +commit 4072249eb3eda195d16869dfaa162b9c09124721 +Author: Joaquim Rocha +Date: Sat Mar 19 17:13:18 2011 +0100 + + Add missing dependencies to README + + README | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +commit 7e235a9d32040dc8011b9eae17630729473c35cc +Author: Daniel Mustieles +Date: Sat Mar 19 12:17:45 2011 +0100 + + Updated Spanish translation + + po/es.po | 526 +++++++++++++++++++++++++++++++++----------------------------- + 1 files changed, 278 insertions(+), 248 deletions(-) + +commit daa7eb387e14b30f680e55ff7eaf77f1ffe5edcb +Author: Matej Urbančič +Date: Fri Mar 18 18:46:47 2011 +0100 + + Updated Slovenian translation + + po/sl.po | 532 +++++++++++++++++++++++++++++++++----------------------------- + 1 files changed, 284 insertions(+), 248 deletions(-) + +commit 045bcf0cfe9d5e4f57fcbbd7a1ad175b18c79f82 +Author: Gabor Kelemen +Date: Fri Mar 18 10:36:16 2011 +0100 + + Updated Hungarian translation + + po/hu.po | 532 ++++++++++++++++++++++++++++++++------------------------------ + 1 files changed, 277 insertions(+), 255 deletions(-) + +commit 83e3007e0cfcc0dec1b2949e3abd65d4f6e9356e +Author: Joaquim Rocha +Date: Fri Mar 18 08:33:55 2011 +0100 + + Ask for confirmation when recognizing the document or the current page + + This is to prevent overwriting the current changes if a user mistakenly + chooses the recognize document or page actions. Maybe it should be + removed when the Undo/Redo is implemented. + + src/ocrfeeder/studio/widgetModeler.py | 20 ++++++++++++++++++++ + 1 files changed, 20 insertions(+), 0 deletions(-) + +commit 4e314dbdb60ccbab74719c4047e727d39bcf2675 +Author: Joaquim Rocha +Date: Thu Mar 17 23:16:40 2011 +0100 + + Add option to recognize current page or the whole document (gb#635306) + + src/ocrfeeder/studio/studioBuilder.py | 10 +++++++--- + src/ocrfeeder/studio/widgetModeler.py | 30 ++++++++++++++++++++++++++---- + src/ocrfeeder/studio/widgetPresenter.py | 21 +++++++++++++-------- + 3 files changed, 46 insertions(+), 15 deletions(-) + +commit 5a26d02d2cf4546095eb60567566f28e45f66e6d +Author: Gabor Kelemen +Date: Fri Mar 18 01:35:50 2011 +0100 + + Added hu to LINGUAS + + po/LINGUAS | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +commit 4b7a1de3dd6117b43184312accd0a4e5155fa359 +Author: Gabor Kelemen +Date: Fri Mar 18 01:35:42 2011 +0100 + + Added Hungarian translation by Gyorgy Ballo + + po/hu.po | 1063 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 files changed, 1063 insertions(+), 0 deletions(-) + +commit feafbf584aeed96a6ce1bdaf70f72eb0fdaf00aa +Author: Mario Blättermann +Date: Thu Mar 17 17:41:08 2011 +0100 + + [l10n] Updated German translation + + po/de.po | 513 ++++++++++++++++++++++++++++++++------------------------------ + 1 files changed, 267 insertions(+), 246 deletions(-) + +commit b20322a3e1c8f937fbbd0805c3251b5110884418 +Author: Marek Černocký +Date: Thu Mar 17 06:59:30 2011 +0100 + + Updated Czech translation + + po/cs.po | 393 ++++++++++++++++++++++++++++++++++---------------------------- + 1 files changed, 217 insertions(+), 176 deletions(-) + +commit fff57591899430851467a66f43af9628f25f9dee +Author: Juanje Ojeda +Date: Tue Mar 15 00:32:08 2011 +0100 + + Moved advanced options into a gtk.Expander for cleaning up the UI + + src/ocrfeeder/studio/customWidgets.py | 15 +++++++++++++++ + src/ocrfeeder/studio/widgetPresenter.py | 4 ++-- + 2 files changed, 17 insertions(+), 2 deletions(-) + +commit 08a038f4b2b6402c94e4497a420763606767c56e +Author: Daniel Mustieles +Date: Wed Mar 16 19:38:55 2011 +0100 + + Updated Spanish translation + + po/es.po | 393 ++++++++++++++++++++++++++++++++++---------------------------- + 1 files changed, 217 insertions(+), 176 deletions(-) + +commit d46a57314a2c012e078f18f27dc388fcf1369bef +Author: Matej Urbančič +Date: Tue Mar 15 21:22:32 2011 +0100 + + Updated Slovenian translation + + po/sl.po | 478 +++++++++++++++++++++++++++++++++++--------------------------- + 1 files changed, 267 insertions(+), 211 deletions(-) + +commit 4a666ade7d7e9d86eff96640380b3a925dcf4b4a +Author: Kjartan Maraas +Date: Mon Mar 14 19:14:07 2011 +0100 + + Annotate .ui file to ensure strings are extracted. + + po/POTFILES.in | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit cc45d573ce61781bdc491bde69665be16385423c +Author: Kjartan Maraas +Date: Mon Mar 14 19:13:54 2011 +0100 + + Updated Norwegian bokmål translation + + po/nb.po | 488 ++++++++++++++++++++++++++++++++++---------------------------- + 1 files changed, 271 insertions(+), 217 deletions(-) + +commit 3c8997b347aea706e3949865c626f386cbc47c92 +Author: Juanje Ojeda +Date: Thu Mar 10 00:37:23 2011 +0100 + + Added missed keystrokes and reordered some for improving the consistency. + + Added for 'Recognize Document' and 'Recognize Selected Areas' and + changed for 'Spell checker'. Fixes gb#644381 + + src/ocrfeeder/studio/widgetPresenter.py | 12 +++++++++--- + 1 files changed, 9 insertions(+), 3 deletions(-) + +commit 1e5f85e66acc26f873772367af48a3f32861b215 +Author: Daniel Mustieles +Date: Sun Mar 13 13:40:57 2011 +0100 + + Updated Spanish translation + + po/es.po | 96 +++++++++++++++++++++++++++++++++++-------------------------- + 1 files changed, 55 insertions(+), 41 deletions(-) + +commit 14109011eb4808478fbad1ee0c5710fa7931dba4 +Author: Joe Hansen +Date: Sun Mar 13 12:14:00 2011 +0100 + + Updated Danish translation + + po/da.po | 562 +++++++++++++++++++++++++++++++++----------------------------- + 1 files changed, 301 insertions(+), 261 deletions(-) + +commit ce60b79f41fc43977434b13fb70824b45f6e63e2 +Author: Daniel Mustieles +Date: Sun Mar 13 11:43:32 2011 +0100 + + Updated Spanish translation + + help/es/es.po | 15 +++++++++------ + 1 files changed, 9 insertions(+), 6 deletions(-) + +commit 0c819a4c323ff0c36b815234051527dfe8a2183d +Author: Daniel Nylander +Date: Sun Mar 13 09:16:41 2011 +0100 + + Updated Swedish translation + + po/sv.po | 638 ++++++++++++++++++++++++++++++++------------------------------ + 1 files changed, 332 insertions(+), 306 deletions(-) + +commit 371f3e3f1f6fe6aea33eea7efa274a470040dfca +Author: Claude Paroz +Date: Sat Mar 12 22:33:49 2011 +0100 + + Updated French translation + + po/fr.po | 552 +++++++++++++++++++++++++++++++++----------------------------- + 1 files changed, 291 insertions(+), 261 deletions(-) + +commit 84024b50e53ca1dde3d9f265c63ded344b153b4a +Author: Marek Černocký +Date: Sat Mar 12 16:13:14 2011 +0100 + + Updated Czech translation + + po/cs.po | 96 +++++++++++++++++++++++++++++++++++-------------------------- + 1 files changed, 55 insertions(+), 41 deletions(-) + +commit d85c0342663102f621e8978624c28815827555d3 +Author: Krzysztof Chojnowski +Date: Sat Mar 12 13:54:48 2011 +0100 + + Fix unicode strings translation (gb#644009) + + src/ocrfeeder/studio/studioBuilder.py | 6 +++--- + src/ocrfeeder/studio/widgetModeler.py | 8 ++++---- + src/ocrfeeder/studio/widgetPresenter.py | 8 ++++---- + 3 files changed, 11 insertions(+), 11 deletions(-) + +commit 9937c77364fb836ab3069f41bca937c1cd1adad8 +Author: Joaquim Rocha +Date: Fri Mar 11 22:45:22 2011 +0100 + + Replace unimplemented dialog by a message dialog (fixes gb#643919) + + src/ocrfeeder/studio/widgetPresenter.py | 10 ++++++---- + 1 files changed, 6 insertions(+), 4 deletions(-) + +commit a1f6ae243d124291d44eea641ad9918bff7e3615 +Author: Joaquim Rocha +Date: Sat Mar 12 13:15:01 2011 +0100 + + Add support for translatable exportation formats' names + + src/ocrfeeder/studio/studioBuilder.py | 16 ++++++++++++---- + src/ocrfeeder/studio/widgetPresenter.py | 2 +- + 2 files changed, 13 insertions(+), 5 deletions(-) + +commit 23e94986f4093730140c30a7360a30484878f7d6 +Author: Joaquim Rocha +Date: Sat Mar 12 12:48:44 2011 +0100 + + Make the getTextFromBoxes function consider text type boxes only + + src/ocrfeeder/studio/widgetModeler.py | 8 ++++++-- + 1 files changed, 6 insertions(+), 2 deletions(-) + +commit 98d400ae2a0a9172de0d825d47f9e36a0506b557 +Author: Andrew McGrath +Date: Mon Feb 21 02:15:53 2011 -0500 + + Add a support for plain text exportation + + help/C/documentgeneration.page | 4 +- + src/ocrfeeder/feeder/documentGeneration.py | 20 +++++++++++++++++ + src/ocrfeeder/studio/studioBuilder.py | 5 +++- + src/ocrfeeder/studio/widgetModeler.py | 33 ++++++++++++++++++++++------ + 4 files changed, 52 insertions(+), 10 deletions(-) + +commit 5afab85384331360e4ff013001c60415f7478155 +Author: Mario Blättermann +Date: Sat Feb 26 22:13:04 2011 +0100 + + [l10n] Updated German translation + + po/de.po | 506 ++++++++++++++++++++++++++++++++------------------------------ + 1 files changed, 263 insertions(+), 243 deletions(-) + +commit b2a0a5c13012b966f7b7e1cb52356011558c1ec9 +Author: Kjartan Maraas +Date: Thu Feb 24 10:27:49 2011 +0100 + + Updated Norwegian bokmål translation. + + po/nb.po | 547 +++++++++++++++++++++++++++++++++----------------------------- + 1 files changed, 292 insertions(+), 255 deletions(-) + +commit d21f5dbac0922ff92c5bdbc22e9c594ae6638881 +Author: Daniel Mustieles +Date: Mon Feb 21 19:39:29 2011 +0100 + + Updated Spanish translation + + help/es/es.po | 12 ++++++------ + 1 files changed, 6 insertions(+), 6 deletions(-) + +commit 3a54e8dd5b76ffce603c1ac8b2595cf2002c9282 +Author: Matej Urbančič +Date: Sun Feb 20 13:52:58 2011 +0100 + + Updated Slovenian translation + + po/sl.po | 503 ++++++++++++++++++++++++++++++++------------------------------ + 1 files changed, 260 insertions(+), 243 deletions(-) + +commit 5a3d631d7a5bef35e05c30a537e78bf100cdec04 +Author: Daniel Korostil +Date: Tue Feb 15 12:42:41 2011 +0200 + + Added uk translation + + po/LINGUAS | 1 + + po/uk.po | 995 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 996 insertions(+), 0 deletions(-) + +commit 007d16fa4bcbdec41f71be6d11057d558f7cb1e0 +Author: Marek Černocký +Date: Tue Feb 15 11:16:10 2011 +0100 + + Updated Czech translation + + po/cs.po | 506 ++++++++++++++++++++++++++++++++------------------------------ + 1 files changed, 263 insertions(+), 243 deletions(-) + +commit 0a0548d5032f52b28decf27b755a460fdb7876dc +Author: Daniel Mustieles +Date: Sun Feb 13 21:17:57 2011 +0100 + + Updated Spanish translation + + po/es.po | 506 ++++++++++++++++++++++++++++++++------------------------------ + 1 files changed, 263 insertions(+), 243 deletions(-) + +commit 0da265e6d4f46ff0f424ac92c1d471fe09c87bfc +Author: Joaquim Rocha +Date: Sun Feb 13 16:13:33 2011 +0100 + + Add confirmation dialog when clearing a project + + src/ocrfeeder/studio/studioBuilder.py | 7 ++++++- + 1 files changed, 6 insertions(+), 1 deletions(-) + +commit 752d98dc81587467cedff4a25e770b0f8d03788a +Author: Joaquim Rocha +Date: Sun Feb 13 16:08:34 2011 +0100 + + Use one status bar instead of three (gb#635219) + + src/ocrfeeder/studio/customWidgets.py | 33 ------------------------------- + src/ocrfeeder/studio/widgetModeler.py | 31 +++++++++++++++++++++++----- + src/ocrfeeder/studio/widgetPresenter.py | 7 +++-- + 3 files changed, 29 insertions(+), 42 deletions(-) + +commit 396df7c4bdd457838f244f38340344749688b59e +Author: Joaquim Rocha +Date: Sun Feb 13 13:33:17 2011 +0100 + + Fix usage of Preferences dialog when Unpaper is not installed + + When Unpaper is not installed, the related configuration options + are not instatiated but it was querying then anyway when quitting + the dialog. + + src/ocrfeeder/studio/widgetPresenter.py | 5 +++-- + 1 files changed, 3 insertions(+), 2 deletions(-) + +commit 33d0e1e7ff8432cbabed3da39c93050dcd187355 +Author: Joaquim Rocha +Date: Sun Feb 13 13:30:35 2011 +0100 + + Fix using local source directory + + bin/ocrfeeder.in | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit e5348d1a9228661bf6fdf3138fc2df8e9cd1ce73 +Author: Joaquim Rocha +Date: Tue Feb 8 16:45:15 2011 +0100 + + Catch exceptions when creating the GTKSpell + + GTKSpell will raise an exception when it can't find the given locale. + + src/ocrfeeder/studio/widgetPresenter.py | 5 ++++- + 1 files changed, 4 insertions(+), 1 deletions(-) + +commit 6b89768cd8d9c4039e0b55534d4e85b7172c8fe0 +Author: Joaquim Rocha +Date: Tue Feb 8 16:31:05 2011 +0100 + + Fix Unpaper's configured path + + When Unpaper was not installed, it would set None as its path which + would make the preferences dialog fail when OCRFeeder was run with + no existing configurations. + + src/ocrfeeder/studio/configuration.py | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 122994f13d3d74b6f9837bcc29f077e2fc081345 +Author: Daniel Mustieles +Date: Wed Feb 2 19:31:33 2011 +0100 + + Updated Spanish translation + + help/es/es.po | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- + 1 files changed, 70 insertions(+), 4 deletions(-) + +commit be578f23c10e6a95a9441241300e01c08692c677 +Author: Daniel Mustieles +Date: Mon Jan 31 19:32:41 2011 +0100 + + Updated Spanish translation + + help/es/es.po | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- + 1 files changed, 53 insertions(+), 3 deletions(-) + +commit a507a1fd51cc203db9cf2867ab3f8bbb55c7e0dc +Author: Daniel Mustieles +Date: Sat Jan 29 18:21:50 2011 +0100 + + Updated Spanish translation + + help/es/es.po | 102 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- + 1 files changed, 96 insertions(+), 6 deletions(-) + +commit e094a7f1fc9c705cfadde86b2fd68b818760accd +Author: Olav Vitters +Date: Sat Jan 29 16:11:15 2011 +0100 + + DOAP: Change spam address protection + + ocrfeeder.doap | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +commit 9e67a6bf254d8ebce8b23e1da5dcd7ea6c67934c +Author: Daniel Mustieles +Date: Mon Jan 24 21:20:26 2011 +0100 + + Updated Spanish translation + + help/es/es.po | 40 ++++++++++++++++++++++++++++++++++------ + 1 files changed, 34 insertions(+), 6 deletions(-) + +commit 5b32f224c4167feec10f7b8651923f3e1996e625 +Author: Daniel Mustieles +Date: Sat Jan 22 10:38:06 2011 +0100 + + Updated Spanish translation + + help/es/es.po | 39 +++++++++++++++++++++++++++++++-------- + 1 files changed, 31 insertions(+), 8 deletions(-) + +commit 27478ce77613d3510ba1c77474292f81ecacf17f +Author: Andrej Žnidaršič +Date: Thu Jan 20 15:44:26 2011 +0100 + + Updated Slovenian translation + + help/sl/sl.po | 8 ++++---- + 1 files changed, 4 insertions(+), 4 deletions(-) + +commit 81a1f1c3569406bba903badbabb67b2c23b364fe +Author: Andrej Žnidaršič +Date: Thu Jan 20 15:42:40 2011 +0100 + + Updated Slovenian translation + + help/sl/sl.po | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +commit 45fa4d9ff75af47f0319e245881484de6d6ceca9 +Author: Matej Urbančič +Date: Thu Jan 20 15:37:00 2011 +0100 + + Added sl for Slovenian translation + + help/Makefile.am | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit dcdcaa44574566c86323089c1f0c56277c253dcd +Author: Matej Urbančič +Date: Thu Jan 20 15:36:48 2011 +0100 + + Added Slovenian translation + + help/sl/sl.po | 527 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 files changed, 527 insertions(+), 0 deletions(-) + +commit 345c3f5df7eb65a1dd1448c18a7141cdac165b30 +Author: Daniel Mustieles +Date: Wed Jan 19 19:45:26 2011 +0100 + + Updated Spanish translation + + help/es/es.po | 25 ++++++++++++++++--------- + 1 files changed, 16 insertions(+), 9 deletions(-) + +commit 7577ff42b91c17ab0d4e50cda271edaffc9a450a +Author: Daniel Mustieles +Date: Sun Jan 16 21:27:32 2011 +0100 + + Updated Spanish translation + + help/es/es.po | 766 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 files changed, 766 insertions(+), 0 deletions(-) + +commit 0ee255886869e341a2b0407d6891de4cb7311e23 +Author: Daniel Mustieles +Date: Sun Jan 16 21:27:08 2011 +0100 + + Added Spanish translation + + help/Makefile.am | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 06d0275f0f7178943728cafed4128b83838c4c5e +Author: Aron Xu +Date: Thu Jan 13 22:21:13 2011 +0800 + + Update Simplified Chinese translation. + + po/zh_CN.po | 882 +++++++++++++++++++++++++++++++++++++++++------------------ + 1 files changed, 619 insertions(+), 263 deletions(-) + +commit d6a82377b57c89d22ed36ce111812f44e358d60c +Author: Daniel Nylander +Date: Tue Jan 11 07:55:57 2011 +0100 + + Updated Swedish translation + + po/sv.po | 857 ++++++++++++++++++++++++++++++++++++++++++++------------------ + 1 files changed, 614 insertions(+), 243 deletions(-) + +commit a489866e395770b58a98d1bca39d8eb8f4acd434 +Author: Matej Urbančič +Date: Fri Jan 7 22:03:58 2011 +0100 + + Updated Slovenian translation + + po/sl.po | 517 +++++++++++++++++++++++++++++++------------------------------- + 1 files changed, 261 insertions(+), 256 deletions(-) + +commit b5485b460edb803c49089ff387635760229414f1 +Author: Daniel Mustieles +Date: Thu Jan 6 11:02:31 2011 +0100 + + Updated Spanish translation + + po/es.po | 495 +++++++++++++++++++++++++++++++++----------------------------- + 1 files changed, 261 insertions(+), 234 deletions(-) + +commit 64cf795c82c5233125c75b43fcb2f6429c9074b3 +Author: Mario Blättermann +Date: Wed Jan 5 22:59:51 2011 +0100 + + [l10n] Added initial German doc translation + + help/Makefile.am | 2 +- + help/de/de.po | 842 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 843 insertions(+), 1 deletions(-) + +commit 800ada5d7ffa68e3278614ede4998b0882b76254 +Author: Bruno Brouard +Date: Wed Jan 5 20:07:43 2011 +0100 + + Updated French translation + + po/fr.po | 492 +++++++++++++++++++++++++++++++++----------------------------- + 1 files changed, 259 insertions(+), 233 deletions(-) + +commit 6ab8296c2b08f0444bc109e51f18711739695703 +Author: Marek Černocký +Date: Wed Jan 5 10:20:03 2011 +0100 + + Updated Czech translation + + po/cs.po | 495 +++++++++++++++++++++++++++++++++----------------------------- + 1 files changed, 261 insertions(+), 234 deletions(-) + +commit 3ca4083ad42f42d62ccc7aabceb48ff5f00d76b6 +Author: Mario Blättermann +Date: Tue Jan 4 16:55:41 2011 +0100 + + [l10n] Updated German translation + + po/de.po | 493 +++++++++++++++++++++++++++++++++----------------------------- + 1 files changed, 260 insertions(+), 233 deletions(-) + +commit 8940b769fee091ea6210331b1a0859f5736b87fb +Author: Claude Paroz +Date: Mon Jan 3 11:33:56 2011 +0100 + + Add empty DOC_LINGUAS to help/Makefile.am + + help/Makefile.am | 4 +++- + 1 files changed, 3 insertions(+), 1 deletions(-) + +commit 25eb6205ea8175f6f0da742ece5cf4f34bb97bd2 +Author: Joaquim Rocha +Date: Mon Jan 3 09:58:18 2011 +0100 + + Update for release 0.7.3 + + NEWS | 10 ++++++++++ + configure.ac | 2 +- + 2 files changed, 11 insertions(+), 1 deletions(-) + +commit bfb308b1c3e47cd7ffd39e5512381baa49a69cec +Author: Joaquim Rocha +Date: Mon Jan 3 09:56:22 2011 +0100 + + Fix missing extra dist in resources' Makefile.am + + resources/Makefile.am | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 8096248c555cfc4d864865f1517c922f4acc4eff +Author: Joaquim Rocha +Date: Mon Jan 3 09:55:48 2011 +0100 + + Add missing files to translation + + po/POTFILES.in | 7 ++++--- + 1 files changed, 4 insertions(+), 3 deletions(-) + +commit 1a2e9d8131d415811be80f4e4787617350aa5b93 +Author: Joaquim Rocha +Date: Mon Jan 3 09:14:39 2011 +0100 + + Update for release 0.7.2 + + NEWS | 28 ++++++++++++++++++++++++++++ + configure.ac | 2 +- + 2 files changed, 29 insertions(+), 1 deletions(-) + +commit f52d28add9aaf0979a7926d815fed1b149e196d2 +Author: Joaquim Rocha +Date: Mon Jan 3 09:06:57 2011 +0100 + + Fix menu items sensitiveness after recognizing a document (gb#635297) + + src/ocrfeeder/studio/widgetModeler.py | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +commit f75e4eda19e6d99d086c9406d8d15a1c18142f42 +Author: Alberto Garcia +Date: Fri Nov 19 17:35:10 2010 +0100 + + Update manpages to reflect all available command-line options + + resources/ocrfeeder-cli.1 | 24 +++++++++++++++++------- + resources/ocrfeeder.1 | 15 ++++++++++++--- + 2 files changed, 29 insertions(+), 10 deletions(-) + +commit c4519bf9bf20ea6659d23776fe59464245b2dddd +Author: Joaquim Rocha +Date: Mon Jan 3 08:51:39 2011 +0100 + + Add action to open help contents + + src/ocrfeeder/studio/studioBuilder.py | 8 +++++++- + src/ocrfeeder/studio/widgetPresenter.py | 2 ++ + 2 files changed, 9 insertions(+), 1 deletions(-) + +commit 114ab773e3135c7cb1e82c101810f5718456606c +Author: Joaquim Rocha +Date: Mon Jan 3 08:51:07 2011 +0100 + + Fix images in user documentation + + help/C/manualeditionandcorrection.page | 10 +++++----- + help/Makefile.am | 2 +- + 2 files changed, 6 insertions(+), 6 deletions(-) + +commit 17201492f4f1fb233bc75e35d5d7add2c7d7c126 +Author: Joaquim Rocha +Date: Sat Jan 1 17:25:49 2011 +0100 + + Removed setup.py and MANIFEST.in now that autotool are being used + + MANIFEST.in | 6 ------ + setup.py | 48 ------------------------------------------------ + 2 files changed, 0 insertions(+), 54 deletions(-) + +commit ad62e880fa94434d20147097b2c9a35d782dba7b +Author: Joaquim Rocha +Date: Sat Jan 1 17:15:10 2011 +0100 + + Added autotools + + Now the build is managed by autotools + + ChangeLog | 1 + + Makefile | 59 ---- + Makefile.am | 3 + + autogen.sh | 21 ++ + bin/Makefile.am | 6 + + bin/ocrfeeder-cli.in | 116 +++++++ + bin/ocrfeeder.in | 37 ++ + configure.ac | 55 +++ + gnome-doc-utils.make | 655 ++++++++++++++++++++++++++++++++++++ + help/Makefile.am | 24 ++ + m4/.gitignore | 1 + + ocrfeeder | 33 -- + ocrfeeder-cli | 112 ------ + resources/Makefile.am | 15 + + resources/icons/Makefile.am | 8 + + src/Makefile.am | 1 + + src/ocrfeeder/Makefile.am | 13 + + src/ocrfeeder/feeder/Makefile.am | 11 + + src/ocrfeeder/odf/Makefile.am | 37 ++ + src/ocrfeeder/studio/Makefile.am | 13 + + src/ocrfeeder/util/Makefile.am | 13 + + src/ocrfeeder/util/constants.py | 91 ----- + src/ocrfeeder/util/constants.py.in | 92 +++++ + 23 files changed, 1122 insertions(+), 295 deletions(-) + +commit 377173487825897e00b2d7f22fedf2a63992fc7a +Author: Joaquim Rocha +Date: Sat Dec 11 02:12:09 2010 +0100 + + Added the user documentation + + help/C/addingfolder.page | 17 ++++++ + help/C/addingimage.page | 41 +++++++++++++++ + help/C/automaticrecognition.page | 34 ++++++++++++ + help/C/deskewing.page | 29 +++++++++++ + help/C/documentgeneration.page | 27 ++++++++++ + help/C/figures/areas-edition.png | Bin 0 -> 64634 bytes + help/C/figures/content-areas.png | Bin 0 -> 75291 bytes + help/C/finetuning.page | 54 ++++++++++++++++++++ + help/C/importingfromscanner.page | 26 ++++++++++ + help/C/importingpdf.page | 27 ++++++++++ + help/C/index.page | 46 +++++++++++++++++ + help/C/legal.xml | 9 +++ + help/C/manualeditionandcorrection.page | 81 +++++++++++++++++++++++++++++ + help/C/ocrconfiguration.page | 87 ++++++++++++++++++++++++++++++++ + help/C/projects.page | 65 ++++++++++++++++++++++++ + help/C/unpaper.page | 45 ++++++++++++++++ + 16 files changed, 588 insertions(+), 0 deletions(-) + +commit f1bbf42e8c767d3fdb3fca3c625efd8ab0f6d8df +Author: Lucian Adrian Grijincu +Date: Mon Dec 6 16:53:32 2010 +0200 + + Updated Romanian translation + + po/LINGUAS | 1 + + po/ro.po | 987 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 988 insertions(+), 0 deletions(-) + +commit 10c98495859eff542dc781d4bf370235caad93dd +Author: Joe Hansen +Date: Tue Nov 16 23:39:45 2010 +0100 + + Updated Danish translation + + po/da.po | 595 +++++++++++++++++++++++++++++++++----------------------------- + 1 files changed, 317 insertions(+), 278 deletions(-) + +commit adc038422c2ab9574ad25b23f04501cd6732c5e3 +Author: Joaquim Rocha +Date: Tue Nov 9 18:17:35 2010 +0100 + + Update for release 0.7.1a + + NEWS | 9 +++++++++ + debian/changelog | 8 +++++++- + src/ocrfeeder/util/constants.py | 2 +- + 3 files changed, 17 insertions(+), 2 deletions(-) + +commit 30f1e24ce4816f27469cd82fd138fe67ae5dd325 +Author: Joaquim Rocha +Date: Tue Nov 9 08:36:39 2010 +0100 + + Install spell-checker.ui file + + setup.py | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +commit f1a9e5155303b609992256e7b63822b000d1aaae +Author: Joaquim Rocha +Date: Mon Nov 8 22:32:40 2010 +0100 + + Update for release 0.7.1 + + NEWS | 40 +++++++++++++++++++++++++++++++++++++++ + debian/changelog | 6 +++++ + src/ocrfeeder/util/constants.py | 2 +- + 3 files changed, 47 insertions(+), 1 deletions(-) + +commit bd72821c85ef9ab4f69b9b7b28e5818b6536273f +Author: Joaquim Rocha +Date: Mon Nov 8 22:11:10 2010 +0100 + + Remove Debian rules clean from general makefile + + Makefile | 1 - + 1 files changed, 0 insertions(+), 1 deletions(-) + +commit 445e1093a80f20aa4b766a3d74367e5f36ec8317 +Author: Joaquim Rocha +Date: Mon Nov 8 22:05:19 2010 +0100 + + Replace the usage of cliutils by OptParse in studioBuilder + + Also removed the cliutils module and adds the help and version + command line options. + + po/POTFILES.in | 1 - + src/ocrfeeder/studio/studioBuilder.py | 21 ++++++++--- + src/ocrfeeder/util/cliutils.py | 62 --------------------------------- + 3 files changed, 15 insertions(+), 69 deletions(-) + +commit 646523aa28eb93f9ecd950ac877d3290a87fb433 +Author: Joaquim Rocha +Date: Mon Nov 8 21:58:46 2010 +0100 + + Rewrite ocrfeeder-cli + + Replace the usage of the cliutils module by Python's OptParse; + Use LayoutAnalysis class to recognize the images; + Add missing help (fixes gb#630829). + + ocrfeeder-cli | 126 ++++++++++++++++++++++++++++++-------------------------- + 1 files changed, 67 insertions(+), 59 deletions(-) + +commit a9af3cea5437f7d1f895cf7f5232f6e068391a67 +Author: Joaquim Rocha +Date: Mon Nov 8 08:28:17 2010 +0100 + + Delete trailing spaces + + ocrfeeder-cli | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +commit 2e54217981f1c3d35492c485f55224cae30d0d45 +Author: Joaquim Rocha +Date: Mon Nov 8 08:23:55 2010 +0100 + + Remove unused code from util/graphics.py + + src/ocrfeeder/util/graphics.py | 4 ---- + 1 files changed, 0 insertions(+), 4 deletions(-) + +commit fd960c7f900df01315c766e936ef55b51cfc2745 +Author: Joaquim Rocha +Date: Mon Nov 8 08:23:35 2010 +0100 + + Fix different indentation usage in some if blocks + + src/ocrfeeder/feeder/layoutAnalysis.py | 4 ++-- + src/ocrfeeder/feeder/ocrEngines.py | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +commit 504e27070f441c4191215305d57e9da55abf67d7 +Author: Joaquim Rocha +Date: Fri Nov 5 15:57:38 2010 +0100 + + Change configuration defaults for actions after adition + + src/ocrfeeder/studio/configuration.py | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +commit 9842fd204566e57f4593648c43cbad8fd679be34 +Author: David Teyssiere Rubio +Date: Fri Aug 6 10:46:11 2010 +0200 + + Added spellchecker dialog UI file + + resources/spell-checker.ui | 327 ++++++++++++++++++++++++++++++++++++++++++++ + 1 files changed, 327 insertions(+), 0 deletions(-) + +commit 696006392c25c14574f708d92124443ca97e980e +Author: Joaquim Rocha +Date: Fri Nov 5 09:11:19 2010 +0100 + + Add missing module asyncworker + + src/ocrfeeder/studio/studioBuilder.py | 2 +- + src/ocrfeeder/util/asyncworker.py | 85 +++++++++++++++++++++++++++++++++ + 2 files changed, 86 insertions(+), 1 deletions(-) + +commit 8336508f99ee5b6192763b9b869faaedde7932cf +Author: Joaquim Rocha +Date: Thu Oct 28 08:21:10 2010 +0200 + + Add local source path for when in development environment + + ocrfeeder | 4 ++++ + ocrfeeder-cli | 4 ++++ + setup.py | 5 +++++ + 3 files changed, 13 insertions(+), 0 deletions(-) + +commit 92980f0e98bbb1d3be10d5b7ed56a27bc71de976 +Author: Joaquim Rocha +Date: Thu Oct 28 08:20:51 2010 +0200 + + Move OCRFeeder modules to src/ocrfeeder for a better organization of the source + + feeder/documentGeneration.py | 331 -- + feeder/imageManipulation.py | 264 - + feeder/layoutAnalysis.py | 545 -- + feeder/ocrEngines.py | 190 - + ocrfeeder | 6 +- + ocrfeeder-cli | 18 +- + odf/anim.py | 61 - + odf/attrconverters.py | 1441 ----- + odf/chart.py | 87 - + odf/config.py | 39 - + odf/dc.py | 72 - + odf/dr3d.py | 43 - + odf/draw.py | 182 - + odf/element.py | 249 - + odf/form.py | 115 - + odf/grammar.py | 8138 ---------------------------- + odf/load.py | 125 - + odf/manifest.py | 53 - + odf/math.py | 30 - + odf/meta.py | 66 - + odf/namespaces.py | 81 - + odf/number.py | 104 - + odf/odf2xhtml.py | 1124 ---- + odf/odfmanifest.py | 120 - + odf/office.py | 104 - + odf/ooostyles.py | 71 - + odf/opendocument.py | 357 -- + odf/presentation.py | 85 - + odf/script.py | 30 - + odf/style.py | 147 - + odf/svg.py | 52 - + odf/table.py | 307 -- + odf/text.py | 559 -- + odf/thumbnail.py | 433 -- + odf/userfield.py | 310 -- + odf/xforms.py | 29 - + po/POTFILES.in | 28 +- + setup.py | 9 +- + src/ocrfeeder/feeder/documentGeneration.py | 331 ++ + src/ocrfeeder/feeder/imageManipulation.py | 264 + + src/ocrfeeder/feeder/layoutAnalysis.py | 545 ++ + src/ocrfeeder/feeder/ocrEngines.py | 190 + + src/ocrfeeder/odf/anim.py | 61 + + src/ocrfeeder/odf/attrconverters.py | 1441 +++++ + src/ocrfeeder/odf/chart.py | 87 + + src/ocrfeeder/odf/config.py | 39 + + src/ocrfeeder/odf/dc.py | 72 + + src/ocrfeeder/odf/dr3d.py | 43 + + src/ocrfeeder/odf/draw.py | 182 + + src/ocrfeeder/odf/element.py | 249 + + src/ocrfeeder/odf/form.py | 115 + + src/ocrfeeder/odf/grammar.py | 8138 ++++++++++++++++++++++++++++ + src/ocrfeeder/odf/load.py | 125 + + src/ocrfeeder/odf/manifest.py | 53 + + src/ocrfeeder/odf/math.py | 30 + + src/ocrfeeder/odf/meta.py | 66 + + src/ocrfeeder/odf/namespaces.py | 81 + + src/ocrfeeder/odf/number.py | 104 + + src/ocrfeeder/odf/odf2xhtml.py | 1124 ++++ + src/ocrfeeder/odf/odfmanifest.py | 120 + + src/ocrfeeder/odf/office.py | 104 + + src/ocrfeeder/odf/ooostyles.py | 71 + + src/ocrfeeder/odf/opendocument.py | 357 ++ + src/ocrfeeder/odf/presentation.py | 85 + + src/ocrfeeder/odf/script.py | 30 + + src/ocrfeeder/odf/style.py | 147 + + src/ocrfeeder/odf/svg.py | 52 + + src/ocrfeeder/odf/table.py | 307 ++ + src/ocrfeeder/odf/text.py | 559 ++ + src/ocrfeeder/odf/thumbnail.py | 433 ++ + src/ocrfeeder/odf/userfield.py | 310 ++ + src/ocrfeeder/odf/xforms.py | 29 + + src/ocrfeeder/studio/configuration.py | 600 ++ + src/ocrfeeder/studio/customWidgets.py | 443 ++ + src/ocrfeeder/studio/dataHolder.py | 211 + + src/ocrfeeder/studio/studioBuilder.py | 397 ++ + src/ocrfeeder/studio/widgetModeler.py | 1010 ++++ + src/ocrfeeder/studio/widgetPresenter.py | 2043 +++++++ + src/ocrfeeder/util/__init__.py | 24 + + src/ocrfeeder/util/cliutils.py | 62 + + src/ocrfeeder/util/constants.py | 91 + + src/ocrfeeder/util/graphics.py | 174 + + src/ocrfeeder/util/lib.py | 174 + + studio/configuration.py | 600 -- + studio/customWidgets.py | 443 -- + studio/dataHolder.py | 211 - + studio/studioBuilder.py | 396 -- + studio/widgetModeler.py | 1010 ---- + studio/widgetPresenter.py | 2043 ------- + util/__init__.py | 24 - + util/asyncworker.py | 85 - + util/cliutils.py | 62 - + util/constants.py | 90 - + util/graphics.py | 174 - + util/lib.py | 174 - + 95 files changed, 21205 insertions(+), 21285 deletions(-) + +commit 544e740aa9db9f3a21caa7410862029ef87d26e5 +Author: Alberto Garcia +Date: Thu Oct 7 20:43:31 2010 +0200 + + Replace current freeware OpenOffice.org icon with a GPLed one + + odf/thumbnail.py | 826 +++++++++++++++++++++++++++--------------------------- + 1 files changed, 416 insertions(+), 410 deletions(-) + +commit 81d28cbe8af8d6a90786372b314318788dd50ec6 +Author: Kjartan Maraas +Date: Sat Oct 16 21:04:18 2010 +0200 + + Updated Norwegian bokmål translation + + po/nb.po | 793 ++++++++++++++++++++++++++++++++++++++++++++------------------ + 1 files changed, 564 insertions(+), 229 deletions(-) + +commit 19d8b47210c21728fb0927a16aaee571b34ed1ad +Author: Bruno Brouard +Date: Fri Oct 1 23:08:38 2010 +0200 + + Updated French translation + + po/fr.po | 468 ++++++++++++++++++++++++++++++++------------------------------ + 1 files changed, 241 insertions(+), 227 deletions(-) + +commit 848a4c67624124d5cb4de431df9e74f32e1549a1 +Author: Bruno Brouard +Date: Fri Oct 1 23:06:49 2010 +0200 + + Revert "Updated French translation" + + Wrong fr.po file commited + + This reverts commit 92cca3bb596af744fb3ec56c4728f5f358fb7e3b. + + po/fr.po | 1881 +++++++++++++++++++++++++------------------------------------- + 1 files changed, 765 insertions(+), 1116 deletions(-) + +commit 92cca3bb596af744fb3ec56c4728f5f358fb7e3b +Author: Bruno Brouard +Date: Fri Oct 1 23:03:46 2010 +0200 + + Updated French translation + + po/fr.po | 1881 +++++++++++++++++++++++++++++++++++++------------------------- + 1 files changed, 1116 insertions(+), 765 deletions(-) + +commit c835e526856818211100fcd9c8e0838c97aa3fea +Author: Joaquim Rocha +Date: Thu Sep 23 19:26:24 2010 +0200 + + Make Tesseract and Cuneiform engines remove temporary images + + studio/configuration.py | 6 ++++-- + 1 files changed, 4 insertions(+), 2 deletions(-) + +commit 8e55f77aba8345282e4f1bf3a1c7e585af0deeab +Author: Joaquim Rocha +Date: Thu Sep 23 19:08:26 2010 +0200 + + Add Cuneiform engine detection + + studio/configuration.py | 5 +++++ + 1 files changed, 5 insertions(+), 0 deletions(-) + +commit c4a8650c8284b2a4c13457cf01a11b0b3f2a556d +Author: Marek Černocký +Date: Sat Sep 18 22:19:11 2010 +0200 + + Updated Czech translation + + po/cs.po | 478 ++++++++++++++++++++++++++++++++------------------------------ + 1 files changed, 247 insertions(+), 231 deletions(-) + +commit f3414099ebbd6719c9982dadb8d09804fe9a3585 +Author: Mario Blättermann +Date: Sat Sep 18 13:29:05 2010 +0200 + + [i18n] Updated German translation + + po/de.po | 490 ++++++++++++++++++++++++++++++++++---------------------------- + 1 files changed, 266 insertions(+), 224 deletions(-) + +commit 61b1bc1eb211e38cc8e448788537d97d7af2eb38 +Author: Jorge González +Date: Fri Sep 17 20:20:44 2010 +0200 + + Updated Spanish translation + + po/es.po | 470 ++++++++++++++++++++++++++++++++------------------------------ + 1 files changed, 243 insertions(+), 227 deletions(-) + +commit 32b509d552516778e774d553c6bacede0d88cb5a +Author: Matej Urbančič +Date: Fri Sep 17 20:15:23 2010 +0200 + + Updated Slovenian translation + + po/sl.po | 508 ++++++++++++++++++++++++++++++++------------------------------ + 1 files changed, 262 insertions(+), 246 deletions(-) + +commit 333e49fbf1c0f88be30cbf7796a296a4d420f983 +Author: Joaquim Rocha +Date: Fri Sep 17 20:12:03 2010 +0200 + + Prevent invisible boxes creation + + Boxes with a width and height of 0 were being created when the user + did double or tripple click. + + studio/customWidgets.py | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +commit 389879fb519baa27689945bcc18a0280c964ca01 +Author: Joaquim Rocha +Date: Fri Sep 17 19:28:21 2010 +0200 + + Fix SpellChecker action's sensitiveness when there are no images + + studio/widgetPresenter.py | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +commit f193a5edf3e2fd6d8e81ce3fd45579a4c5aa92f1 +Author: David Teyssiere Rubio +Date: Wed Sep 1 16:21:26 2010 +0200 + + Added spell checker's functions toggle its menu sensitiveness + + widgetModeler.py: ImageReviewer_Controler, added spellCheck function and + activate/deactivate menu entry when no text in updateMainWindow. Editor, + added connection to signal for activate/deactivate spellcheck menu + entry when user editing text + + studio/widgetModeler.py | 12 +++++++++++- + 1 files changed, 11 insertions(+), 1 deletions(-) + +commit df3da8ae5461a9d5baaa47c7955638a8316a1b04 +Author: David Teyssiere Rubio +Date: Wed Sep 1 16:17:58 2010 +0200 + + studioBuilder.py: added spell checker function + + studio/studioBuilder.py | 6 +++++- + 1 files changed, 5 insertions(+), 1 deletions(-) + +commit e36db1f3764815f0a1004c388e41e7e9e4a020f9 +Author: David Teyssiere Rubio +Date: Wed Sep 1 16:17:22 2010 +0200 + + widgetPresenter.py: added SpellCheckerDialog and Spell checker menu entry + + studio/widgetPresenter.py | 138 +++++++++++++++++++++++++++++++++++++++++++++ + 1 files changed, 138 insertions(+), 0 deletions(-) + +commit 890c09340cd13c680e2fd47e2327a619777c520c +Author: David Teyssiere Rubio +Date: Wed Sep 1 16:14:59 2010 +0200 + + Adding OCRFEEDER_DEFAULT_LOCALE and OCRFFEEDER_SPELLCHECKER_UI constants needed + + util/constants.py | 5 +++++ + 1 files changed, 5 insertions(+), 0 deletions(-) + +commit 01b09fdc166db80e620a094508a3efd3736634b1 +Author: Joaquim Rocha +Date: Fri Sep 17 18:44:37 2010 +0200 + + Fix selecting all areas + + When one or more areas were selected and "select all areas" action is + performed, it would add all areas to the list of selected areas without + checking the ones already there. + + studio/customWidgets.py | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +commit 54f412245bde9e195a55e38596d7e7156334a094 +Author: Joaquim Rocha +Date: Fri Sep 17 18:39:59 2010 +0200 + + Separate the text from different boxes when copying it to clipboard + + Each paragraph is separated with two newline characters. + + studio/widgetModeler.py | 16 ++++++++++------ + 1 files changed, 10 insertions(+), 6 deletions(-) + +commit cb6d790237f417eabd893dbb154c65727eda4cb3 +Author: Joaquim Rocha +Date: Fri Sep 17 18:14:49 2010 +0200 + + Change the import from scanner and the copy to clipboard's shortcuts + + studio/widgetPresenter.py | 5 +++-- + 1 files changed, 3 insertions(+), 2 deletions(-) + +commit 7c06c972016375a0acd6d27765d2014f3282a993 +Author: David Teyssiere Rubio +Date: Thu Aug 5 18:57:56 2010 +0200 + + widgetModeler.py: preventing copy to clipboard menu activation when there are no text. This avoid user overwrite the clipboard buffer with nothing + + studio/widgetModeler.py | 16 +++++++++++++--- + 1 files changed, 13 insertions(+), 3 deletions(-) + +commit 9f00256f7903472a10a438a114a81ca1671d4409 +Author: David Teyssiere Rubio +Date: Thu Aug 5 18:55:05 2010 +0200 + + widgetPresenter.py: added BoxEditor signal emission when text_content TextBuffer changes + + studio/widgetPresenter.py | 13 ++++++++++++- + 1 files changed, 12 insertions(+), 1 deletions(-) + +commit 0982ea8f1cfb2ad42a5dd7c3557b23c11613a3e9 +Author: David Teyssiere Rubio +Date: Wed Aug 4 10:00:56 2010 +0200 + + widgetPresenter.py: added 'Copy to clipboard' menu entry + + studio/widgetPresenter.py | 10 +++++++++- + 1 files changed, 9 insertions(+), 1 deletions(-) + +commit 8925a769e59b04b8ac0e404b17668556f3d004d5 +Author: David Teyssiere Rubio +Date: Mon Aug 2 19:28:13 2010 +0200 + + widgetModeler.py: Image_Reviewer, added copyTextToClipboard function. ImageReviewer_Controler, added copyRecognizedTextToClipboard function. + + studio/widgetModeler.py | 22 ++++++++++++++++++++++ + 1 files changed, 22 insertions(+), 0 deletions(-) + +commit 668fa2625bb135ab52be7538e7f32cd3c01790f6 +Author: David Teyssiere Rubio +Date: Mon Aug 2 18:37:18 2010 +0200 + + studioBuilder.py: added copy to clipboard capability + + studio/studioBuilder.py | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +commit 09c6ad800bb8c7d39b0b1fc7a5dd772aed94d517 +Author: Bruno Brouard +Date: Tue Sep 14 12:16:43 2010 +0200 + + Updated French translation + + po/fr.po | 582 +++++++++++++++++++++++++++++++++++++++----------------------- + 1 files changed, 365 insertions(+), 217 deletions(-) + +commit 50ac5fd15c8c26fef49ab0cd9db17c286eb0a174 +Author: Joe Hansen +Date: Mon Aug 23 21:42:41 2010 +0200 + + Updated Danish translation + + po/da.po | 782 ++++++++++++++++++++++++++++++++++++++++++-------------------- + 1 files changed, 534 insertions(+), 248 deletions(-) + +commit 6608f2b7c0afe78d9ccb771dfbb64f029f95de59 +Author: Petr Kovar +Date: Mon Aug 23 20:00:36 2010 +0200 + + Update Czech translation by Marek Cernocky + + po/cs.po | 18 +++++++++--------- + 1 files changed, 9 insertions(+), 9 deletions(-) + +commit 27240793f0f2b8a8288802629bef76f088a44334 +Author: Matej Urbančič +Date: Wed Aug 4 14:45:16 2010 +0200 + + Updated Slovenian translation + + po/sl.po | 18 +++++------------- + 1 files changed, 5 insertions(+), 13 deletions(-) + +commit 98cd09982fbb14d8ee5ed9bf89942ce16963ceae +Author: Matej Urbančič +Date: Wed Aug 4 14:29:50 2010 +0200 + + Updated Slovenian translation + + po/sl.po | 560 ++++++++++++++++++++++++++++++++------------------------------ + 1 files changed, 289 insertions(+), 271 deletions(-) + +commit 1ac28318e01f367a1871fd717fe2ddb4ecb1045e +Author: Petr Kovar +Date: Wed Aug 4 08:48:22 2010 +0200 + + Update Czech translation by Marek Cernocky + + po/cs.po | 566 +++++++++++++++++++++++++++++++++++++++----------------------- + 1 files changed, 356 insertions(+), 210 deletions(-) + +commit 3083a8f6a3c58d8da413f45f381bfbe9e66fa855 +Author: Jorge González +Date: Tue Aug 3 07:11:06 2010 +0200 + + Updated Spanish translation + + po/es.po | 488 ++++++++++++++++++++++++++++++++------------------------------ + 1 files changed, 252 insertions(+), 236 deletions(-) + +commit df58f8f921a19787c9a49b5e23b5642f67a9f533 +Author: Joaquim Rocha +Date: Sun Aug 1 19:33:13 2010 +0200 + + Add a11y to the import page from scanner menu + + Also fix a long line. + + studio/widgetPresenter.py | 6 +++++- + 1 files changed, 5 insertions(+), 1 deletions(-) + +commit 222b07bc49a034d5b6c87b1c9a46920d58949ed4 +Author: Joaquim Rocha +Date: Sun Aug 1 19:32:40 2010 +0200 + + Fix ellipsis and title when using the queued events dialog + + studio/studioBuilder.py | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 6f60dc4f26e92d9c5a3e6ccdedc376018e057515 +Author: Joaquim Rocha +Date: Sun Aug 1 19:31:34 2010 +0200 + + Make ScannerChooserDialog accessible + + studio/widgetPresenter.py | 7 ++++--- + 1 files changed, 4 insertions(+), 3 deletions(-) + +commit 59e044f5d31d2bf8b7deaacc450ea150acc8236b +Author: Joaquim Rocha +Date: Sun Aug 1 19:31:10 2010 +0200 + + Correct dialog types when showing error messages for scanner things + + studio/studioBuilder.py | 6 +++--- + 1 files changed, 3 insertions(+), 3 deletions(-) + +commit b0dbc7a3f55be716343ee397c5c2d417d2230cef +Author: Joaquim Rocha +Date: Sun Aug 1 19:30:31 2010 +0200 + + Do not ask for scanners if only one is available + + studio/studioBuilder.py | 20 +++++++++++--------- + 1 files changed, 11 insertions(+), 9 deletions(-) + +commit 0e0316c728b6aae214bb7cb68c219118b8023fd5 +Author: Joaquim Rocha +Date: Sun Aug 1 19:29:30 2010 +0200 + + Use the new refactored ScannerChooserDialog to ask for the favorite scanner + + studio/studioBuilder.py | 10 +++++++--- + 1 files changed, 7 insertions(+), 3 deletions(-) + +commit 11c16ae454f76bbc7cb772f06d92aeb887227ddd +Author: Joaquim Rocha +Date: Sun Aug 1 19:26:22 2010 +0200 + + Refactor ScannerChooserDialog for simplicity + + studio/widgetPresenter.py | 27 +++++++++------------------ + 1 files changed, 9 insertions(+), 18 deletions(-) + +commit fd6a30bdf23121f09113b3c608f1c4212c6d41d8 +Author: David Teyssiere Rubio +Date: Thu Jul 29 21:14:59 2010 +0200 + + studioBuilder: adding import from scanner capability parallellized using asyncworker + + studio/studioBuilder.py | 53 +++++++++++++++++++++++++++++++++++++++++++++++ + 1 files changed, 53 insertions(+), 0 deletions(-) + +commit 6d9a139e17b8b37f14f12643d7bef21a8bc241f9 +Author: David Teyssiere Rubio +Date: Fri Jul 30 11:11:13 2010 +0200 + + lib.py: added scan functions + + util/lib.py | 19 +++++++++++++++++++ + 1 files changed, 19 insertions(+), 0 deletions(-) + +commit 5108342f6c7e5e49b1e3db6919c06f02552e9e7f +Author: David Teyssiere Rubio +Date: Thu Jul 29 21:13:15 2010 +0200 + + widgetPresenter: Adding menu entry 'Import from scanner' and ScannerChooserDialog class + + studio/widgetPresenter.py | 47 +++++++++++++++++++++++++++++++++++++++++++++ + 1 files changed, 47 insertions(+), 0 deletions(-) + +commit 998658701dcf53e394bd2e328b54cfe93325baea +Author: Jorge González +Date: Sat Jul 31 11:05:01 2010 +0200 + + Updated Spanish translation + + po/es.po | 541 ++++++++++++++++++++++++++++++++++++++------------------------ + 1 files changed, 334 insertions(+), 207 deletions(-) + +commit 7f1796d397acccda941991b1a06f0da9ab2ab190 +Author: Joaquim Rocha +Date: Fri Jul 30 15:35:37 2010 +0200 + + Update for release 0.7 + + NEWS | 40 ++++++++++++++++++++++++++++++++++++++++ + debian/changelog | 6 ++++++ + util/constants.py | 2 +- + 3 files changed, 47 insertions(+), 1 deletions(-) + +commit e3d5f11576c54be6400bb92261d6e0b9159909d7 +Author: Joaquim Rocha +Date: Fri Jul 30 11:27:29 2010 +0200 + + Fix removing the current boxes when automatically recognizing images + + studio/widgetModeler.py | 8 +++++++- + 1 files changed, 7 insertions(+), 1 deletions(-) + +commit d1ae03ecf20271a84bbbb0d978a50610b9c85fbb +Author: Matej Urbančič +Date: Thu Jul 29 14:05:37 2010 +0200 + + Updated Slovenian translation + + po/sl.po | 574 ++++++++++++++++++++++++++++++++++++++------------------------ + 1 files changed, 353 insertions(+), 221 deletions(-) + +commit dc17a7991436e4d8cdac76d80992132943155e40 +Author: Mario Blättermann +Date: Wed Jul 28 22:06:16 2010 +0200 + + [i18n] Updated German translation + + po/de.po | 527 ++++++++++++++++++++++++++++++++++++++------------------------ + 1 files changed, 323 insertions(+), 204 deletions(-) + +commit e2b30f011e3ff7698e450559ea4319bfc6f7daf2 +Author: Joaquim Rocha +Date: Fri Jul 23 11:27:39 2010 +0200 + + Add the unpaper preferences button to the preferences dialog + + studio/widgetPresenter.py | 15 ++++++++++++++- + 1 files changed, 14 insertions(+), 1 deletions(-) + +commit 218d64830108a35ad38c8fad22ca1de7721dd213 +Author: Joaquim Rocha +Date: Fri Jul 23 11:26:05 2010 +0200 + + Add the unpaper preferences dialog + + studio/widgetPresenter.py | 17 +++++++++++++++++ + 1 files changed, 17 insertions(+), 0 deletions(-) + +commit 2fece3500244089c1f20adc96c0c22e18ef07fa1 +Author: Joaquim Rocha +Date: Fri Jul 23 11:25:26 2010 +0200 + + Add the save method to the unpaper preferences + + studio/widgetPresenter.py | 20 ++++++++++++++++++++ + 1 files changed, 20 insertions(+), 0 deletions(-) + +commit 12172d4911483b2e54798319b91fc7de649cdc80 +Author: Joaquim Rocha +Date: Fri Jul 23 10:09:54 2010 +0200 + + Make the unpaper preferences dependent on the configuration + + studio/widgetPresenter.py | 31 ++++++++++++++++++++++++++++--- + 1 files changed, 28 insertions(+), 3 deletions(-) + +commit 049d9b866b75f22d6bf7ecefe4319cfe293d2c62 +Author: Joaquim Rocha +Date: Thu Jul 22 10:55:36 2010 +0200 + + Add unpaper to the pre-processor method + + Also, make it and the deskew dependent on the settings + + studio/widgetModeler.py | 36 ++++++++++++++++++++++++------------ + 1 files changed, 24 insertions(+), 12 deletions(-) + +commit 4c90c5c873761674480c6acc7ce408fd43707099 +Author: Joaquim Rocha +Date: Thu Jul 22 10:51:16 2010 +0200 + + Add the "unpaper images after addition" settings to the preferences dialog + + studio/widgetPresenter.py | 14 +++++++++++++- + 1 files changed, 13 insertions(+), 1 deletions(-) + +commit dee1efc4d9c4be5abc51322acfd9aacce18dece0 +Author: Joaquim Rocha +Date: Thu Jul 22 10:43:17 2010 +0200 + + Add the getUnpaperCommand and unpaperImage functions to lib + + util/lib.py | 36 ++++++++++++++++++++++++++++++++++++ + 1 files changed, 36 insertions(+), 0 deletions(-) + +commit 993c1310bad81f09cd04d5ff350600e63313a57f +Author: Joaquim Rocha +Date: Thu Jul 22 10:41:53 2010 +0200 + + Add the has_unpaper attribute to the configuration + + studio/configuration.py | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +commit a2898d6cc43ddb466c0b277272c4ef17eb3f4b12 +Author: Joaquim Rocha +Date: Thu Jul 22 10:40:52 2010 +0200 + + Find the unpaper executable path instead of using a hardcoded one + + The above is done for the configuration + + studio/configuration.py | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit dd1c949fce8cbbe63ea4753014ae66b297ed2409 +Author: Joaquim Rocha +Date: Thu Jul 22 10:40:11 2010 +0200 + + Add unpaper settings to configuration + + studio/configuration.py | 77 ++++++++++++++++++++++++++++++++++++++++++++++- + 1 files changed, 76 insertions(+), 1 deletions(-) + +commit d58c80ee0740114695f2d416d0df3b8eb547a05a +Author: Joaquim Rocha +Date: Wed Jul 21 12:53:23 2010 +0200 + + Extracted the unpaper preferences from the unpaper dialog + + studio/widgetPresenter.py | 187 +++++++++++++++++++++++++------------------- + 1 files changed, 106 insertions(+), 81 deletions(-) + +commit bb1c9fda77df2085e65b70d9686f4c44600aa188 +Author: Joaquim Rocha +Date: Tue Jul 20 18:31:46 2010 +0200 + + Add the deskew current image action to the UI + + studio/studioBuilder.py | 1 + + studio/widgetPresenter.py | 6 +++++- + 2 files changed, 6 insertions(+), 1 deletions(-) + +commit 8fd2d02541d813ae17eefb230350ef8e23e42819 +Author: Joaquim Rocha +Date: Tue Jul 20 18:31:25 2010 +0200 + + Add the deskew current image method + + studio/widgetModeler.py | 18 ++++++++++++++++++ + 1 files changed, 18 insertions(+), 0 deletions(-) + +commit a17d16ed497899f47c6c19441f3bf1046850b7fb +Author: Joaquim Rocha +Date: Tue Jul 20 17:48:58 2010 +0200 + + Add the deskew images option to the preferences dialog + + studio/widgetPresenter.py | 18 +++++++++++++++++- + 1 files changed, 17 insertions(+), 1 deletions(-) + +commit 5a931e81b18433da0a2761b397119861bf4d006f +Author: Joaquim Rocha +Date: Tue Jul 20 17:42:09 2010 +0200 + + Refactor the way to add an image and include an image pre-processor + + widgetModeler.ImageReviewer_Controler: Refactor the code to be simpler and + add an image pre-processing method with the image deskewer on it; + studio.StudioBuilder: Adapt to the new ImageReviewer_Controler way + of adding images. + + studio/studioBuilder.py | 18 ++++------- + studio/widgetModeler.py | 75 ++++++++++++++++++++++++++++++++++++++-------- + 2 files changed, 69 insertions(+), 24 deletions(-) + +commit 306e1b73a6a1ecdca10f9a3c07c748e1800bf204 +Author: Joaquim Rocha +Date: Tue Jul 20 17:35:58 2010 +0200 + + Add the deskew images setting to the configuration manager + + studio/configuration.py | 15 ++++++++++++++- + 1 files changed, 14 insertions(+), 1 deletions(-) + +commit 6b1b4550cf7b64619453085d9bd816c3b47040d1 +Author: Joaquim Rocha +Date: Fri Jul 16 11:39:11 2010 +0200 + + Add the ImageDeskewer class + + feeder/layoutAnalysis.py | 70 ++++++++++++++++++++++++++++++++++++++++++++++ + 1 files changed, 70 insertions(+), 0 deletions(-) + +commit 4bdb913c3eab882ce6af9351ba9da764cd4f7bad +Author: Joaquim Rocha +Date: Wed Jul 14 18:07:05 2010 +0200 + + Clear the reviewer's contents only after the recognition has finished + + widgetModeler.Reviewer_Controler: Move the clearance of the content + areas and editors from the method that calls the document's recognition + to the finish callback. + This avoids losing the contents if the user later decides to eventually + cancel the recognition operation. + + studio/widgetModeler.py | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +commit fb3564745eec99d9c688740548151588d75a5e93 +Author: Joaquim Rocha +Date: Wed Jul 14 11:03:55 2010 +0200 + + Pass the boxes adjustments settings to LayoutAnalysis when instantiating it + + studio/widgetModeler.py | 9 ++++++++- + 1 files changed, 8 insertions(+), 1 deletions(-) + +commit dcd85af5cdacd2325c2bb5be1d8d111c83685525 +Author: Joaquim Rocha +Date: Wed Jul 14 11:01:51 2010 +0200 + + Make the boxes adjustments dependent on the LayoutAnalysis's settings + + layoutAnalysis.LayoutAnalysis: Add the adjust_boxes_bounds and the + adjustment_size settings; Use the adjustment_size for the boxes' + adjustment and only perform this operation if the adjust_boxes_bounds + is set to True. + + feeder/layoutAnalysis.py | 13 +++++++++---- + 1 files changed, 9 insertions(+), 4 deletions(-) + +commit 67d0ab1db564cb6ca402651e1fd3504fe94d7cdd +Author: Joaquim Rocha +Date: Wed Jul 14 11:01:19 2010 +0200 + + Consider the boxes adjustments settings when saving the preferences + + studio/widgetPresenter.py | 4 ++++ + 1 files changed, 4 insertions(+), 0 deletions(-) + +commit 7e2d0075c891c1780a5fb2792083fb68d7fd3ab1 +Author: Joaquim Rocha +Date: Wed Jul 14 11:00:49 2010 +0200 + + Add the boxes adjustments' settings to the preferences dialog + + studio/widgetPresenter.py | 73 +++++++++++++++++++++++++++++++++++++++++++- + 1 files changed, 71 insertions(+), 2 deletions(-) + +commit e36ce9a0c24d4b1b8385a3c3800371329c171cc6 +Author: Joaquim Rocha +Date: Wed Jul 14 10:59:38 2010 +0200 + + Add the boxes bounds adjustment settings to the configuration + + studio/configuration.py | 32 +++++++++++++++++++++++++++++++- + 1 files changed, 31 insertions(+), 1 deletions(-) + +commit 3af152aa19b4d3587eecf9c06f22f208c214815e +Author: Joaquim Rocha +Date: Tue Jul 13 18:34:14 2010 +0200 + + Use the clean text setting when recognizing the text from the Editor + + studio/widgetModeler.py | 8 ++++++-- + 1 files changed, 6 insertions(+), 2 deletions(-) + +commit 02fe799a22e6f0e4b439396f9fd9c33803574557 +Author: Joaquim Rocha +Date: Tue Jul 13 18:33:00 2010 +0200 + + Convert the setting to bool method for the improve column detection + + studio/configuration.py | 7 +------ + 1 files changed, 1 insertions(+), 6 deletions(-) + +commit 1664ce7a67a356a60c56939613d5c9a68248cbb7 +Author: Joaquim Rocha +Date: Tue Jul 13 18:30:31 2010 +0200 + + Consider the clean text option when saving the configuration + + studio/widgetPresenter.py | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +commit 5185bf88c6c310a19473f1f0041e05fb829d2b40 +Author: Joaquim Rocha +Date: Tue Jul 13 18:29:39 2010 +0200 + + Add the text recognition preferences to the preferences dialog + + studio/widgetPresenter.py | 16 +++++++++++++++- + 1 files changed, 15 insertions(+), 1 deletions(-) + +commit 57c2828def3d0b38332e8bd59674d146e99e6489 +Author: Joaquim Rocha +Date: Tue Jul 13 18:26:19 2010 +0200 + + Add the clean text option to LayoutAnalysis in the ImageReviewer_Controler + + studio/widgetModeler.py | 4 +++- + 1 files changed, 3 insertions(+), 1 deletions(-) + +commit 8e068e68102687c9a02f3508b66a8aaffb0e0891 +Author: Joaquim Rocha +Date: Tue Jul 13 18:24:26 2010 +0200 + + Add the clean text variable to the LayoutAnalysis + + layoutAnalysis.LayoutAnalysis: Add the mentioned variable and set the + cleaning of the text dependent on it. + + feeder/layoutAnalysis.py | 7 +++++-- + 1 files changed, 5 insertions(+), 2 deletions(-) + +commit 09dfa6a6e20c0545b76b9322661224f5f5ca7e51 +Author: Joaquim Rocha +Date: Tue Jul 13 18:23:34 2010 +0200 + + Add the clean text configuration to the configuration manager + + studio/configuration.py | 22 +++++++++++++++++++++- + 1 files changed, 21 insertions(+), 1 deletions(-) + +commit 146d20bad0b861e5bd40a77e4cf521f7a44b8fdd +Author: Joaquim Rocha +Date: Tue Jul 13 16:59:32 2010 +0200 + + Set the columns' detection and width value dependent on the preferences + + widgetModeler.ImageReviewer_Controler: Use the configurations' + values to tell the LayoutAnalysis if it should perform the columns' + detection improvement algorithm + + studio/widgetModeler.py | 9 ++++++++- + 1 files changed, 8 insertions(+), 1 deletions(-) + +commit 2608067f2c9c1f4286bf3de27bf82672fd5b7c96 +Author: Joaquim Rocha +Date: Tue Jul 13 16:58:59 2010 +0200 + + Consider the columns' detection preferences when saving the preferences + + studio/widgetPresenter.py | 5 ++++- + 1 files changed, 4 insertions(+), 1 deletions(-) + +commit 2d0b88d461c0c141a84f0785fc8cb4c479d6fad7 +Author: Joaquim Rocha +Date: Tue Jul 13 16:55:42 2010 +0200 + + Add the columns' detection preferences to the preferences dialog + + widgetPresenter.PreferencesDialog: Add the mentioned preferences + and change the current preferences notebook tabs and respective + methods' names. + + studio/widgetPresenter.py | 9 +++++---- + 1 files changed, 5 insertions(+), 4 deletions(-) + +commit 394e52485a6039ff20305780beba4c22659014b6 +Author: Joaquim Rocha +Date: Tue Jul 13 16:53:17 2010 +0200 + + Create the columns' detection preferences + + widgetPresenter.PreferencesDialog: Add the method to create the + columns' detection preferences. + + studio/widgetPresenter.py | 66 +++++++++++++++++++++++++++++++++++++++++++++ + 1 files changed, 66 insertions(+), 0 deletions(-) + +commit 7f8ad5ac8f3861ce7c7df5754d0eb5bbc3363dec +Author: Joaquim Rocha +Date: Mon Jul 12 16:49:48 2010 +0200 + + Use the configuration variables directly instead of their get methods + + studio/studioBuilder.py | 4 ++-- + studio/widgetModeler.py | 16 ++++++++-------- + studio/widgetPresenter.py | 2 +- + 3 files changed, 11 insertions(+), 11 deletions(-) + +commit 5f030bdc0e13c3299dfc8efbd1e7d503828aaaf6 +Author: Joaquim Rocha +Date: Mon Jul 12 16:46:59 2010 +0200 + + Use the color values directly when creating color buttons for preferences + + widgetPresenter.PreferencesDialog: Adapt the color button generator + function so it uses the configured color values directly instead of + converting them from string to tuples. + + studio/widgetPresenter.py | 11 +++++------ + 1 files changed, 5 insertions(+), 6 deletions(-) + +commit 4a05e33bd60a3d8b0ed39f78ff97ec018034d74f +Author: Joaquim Rocha +Date: Tue Jul 13 16:51:48 2010 +0200 + + Add the columns' detections options improvements to the configuration + + studio/configuration.py | 39 ++++++++++++++++++++++++++++++++++++++- + 1 files changed, 38 insertions(+), 1 deletions(-) + +commit e62d5752e062a886221b8bd2baf9cc3a69bb0ff9 +Author: Joaquim Rocha +Date: Mon Jul 12 15:59:58 2010 +0200 + + Refactor ConfigurationManager + + configuration.ConfigurationManager: Changed the creation of vars + by evaluating/executing code and use a "static" dictionary-based + configuration which is more safe and clean. + + studio/configuration.py | 100 ++++++++++++++++++++++++++++++++-------------- + 1 files changed, 69 insertions(+), 31 deletions(-) + +commit 1749f30e6f412e1b68063aae148b2eab7b75a788 +Author: Joaquim Rocha +Date: Thu Jul 8 17:24:41 2010 +0200 + + Make the BoxEditor's text view's wrap the lines + + widgetPresenter.BoxEditor: Set the text view's wrap mode to be + WRAP_WORD because the text should now have less line breaks which + would result in long lines in the text view. + + studio/widgetPresenter.py | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +commit 57be6850d909e0cfcc8a8d19e8eea1dae772c9fd +Author: Joaquim Rocha +Date: Thu Jul 8 17:22:07 2010 +0200 + + Clean recognized text before returning it + + layoutAnalysis.LayoutAnalysis: Remove lines breaks in an attempt to + make the text more close to the original in the image since OCR + engines output the text line-by-line with a newline char after every + line. + + feeder/layoutAnalysis.py | 10 +++++++++- + 1 files changed, 9 insertions(+), 1 deletions(-) + +commit 990ec303f61ed8f27796a4399b0306be055080a4 +Author: Joaquim Rocha +Date: Thu Jul 8 11:19:12 2010 +0200 + + Fix wrong font size calculations when there are initial characters + + layoutAnalysis.LayoutAnalysis: Use only the right half of an image when + calculating the font size, this will prevent measuring eventual initial + characters which create the "illusion" of a much larger line. + + feeder/layoutAnalysis.py | 9 +++++++-- + 1 files changed, 7 insertions(+), 2 deletions(-) + +commit 1852ac7c45db2aab36ad53b5ab02212851a22da4 +Author: Joaquim Rocha +Date: Thu Jul 8 10:40:45 2010 +0200 + + Change the DataBox's text argument's default value to '' instead of NULL + + studio/dataHolder.py | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 140315effffa9d6931eb30c45fc984d8db46ede6 +Author: Joaquim Rocha +Date: Thu Jul 8 10:36:42 2010 +0200 + + Use the LayoutAnalysis to perform OCR and get the text size in the Editor + + widgetModeler.Editor: Replace the old way of using the OCR engines and the + graphics' methods directly and use the LayoutAnalysis's methods instead. + + studio/widgetModeler.py | 18 +++++++++--------- + 1 files changed, 9 insertions(+), 9 deletions(-) + +commit 5adaba962b85a9462da6d6520cda80a3a80277fb +Author: Joaquim Rocha +Date: Thu Jul 8 10:36:15 2010 +0200 + + Add the DeskTop Publishing Point (DTP) constant + + util/constants.py | 3 +++ + 1 files changed, 3 insertions(+), 0 deletions(-) + +commit 10e81b18b3ade31a446e61ff80bcf87f6b31a1b5 +Author: Joaquim Rocha +Date: Wed Jul 7 19:34:41 2010 +0200 + + Use the LayoutAnalysis class's methods to recognize the document + + studioBuilder.Studio: Update the detection action to use the new + recognition function + + widgetModeler.ImageReviewer_Controler: Change the detection methods + to use the new recognition methods from LayoutAnalysis. + + widgetModeler.Editor: Call setFontSize when updating the editor. + + studio/studioBuilder.py | 5 +++- + studio/widgetModeler.py | 60 +++++++++++++++-------------------------------- + 2 files changed, 23 insertions(+), 42 deletions(-) + +commit 6ff17ac2fd35baa796a31b90c961d59be4fd1872 +Author: Joaquim Rocha +Date: Wed Jul 7 19:12:03 2010 +0200 + + Add the LayoutAnalysis class that provides easy ways of recognizing images + + layoutAnalysis.LayoutAnalysis: This new class abstracts the usage of + the OCR engines' classes and the page segmentation methods. + + feeder/layoutAnalysis.py | 84 +++++++++++++++++++++++++++++++++++++++++++++- + 1 files changed, 83 insertions(+), 1 deletions(-) + +commit 26564eff6a7e4be46edda809a1ac01ff5e730aff +Author: Joaquim Rocha +Date: Thu Jul 8 10:41:50 2010 +0200 + + Force the DataBox x, y, width and height variables to be int + + studio/dataHolder.py | 8 ++++---- + 1 files changed, 4 insertions(+), 4 deletions(-) + +commit 2d9688eccaef70b7d1447421bee9924f745ef7e8 +Author: Joaquim Rocha +Date: Wed Jul 7 19:09:15 2010 +0200 + + Make the translateToUnits method return int values + + layoutAnalysis.Block: This method was returning float values + which would give warnings when used with some Python Imaging + Library methods. + + feeder/layoutAnalysis.py | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 9301f809fdd7152d69e850a4f43e889b2b449bd1 +Author: Joaquim Rocha +Date: Wed Jul 7 19:00:46 2010 +0200 + + Add the adjustImageClipMargins method + + imageManipulator.ImageProcessor: This method tries to shorten the + limits of the image specified by the "bounds" argument. + + feeder/imageManipulation.py | 62 +++++++++++++++++++++++++++++++++++++++++++ + 1 files changed, 62 insertions(+), 0 deletions(-) + +commit 01edf29ada2b7d862302f180152fb886253393bd +Author: Joaquim Rocha +Date: Wed Jul 7 18:48:46 2010 +0200 + + Add the divideImageClipInColumns method + + imageManipulator.ImageProcessor: Add the divideImageClipInColumns + method that gets a list of bounds and tries to divide the respective + contents columns. + + feeder/imageManipulation.py | 49 +++++++++++++++++++++++++++++++++++++++++++ + 1 files changed, 49 insertions(+), 0 deletions(-) + +commit 468166a17e25371ab26327694d18fe8cb454c5e3 +Author: Joaquim Rocha +Date: Wed Jul 7 18:45:59 2010 +0200 + + Add the page background color as an instance variable of ImageProcessor + + imageManipulator.ImageProcessor: Remove the hardcoded value of the + page's background color and set it as an instance variable. + (Although that variable is constant, it is likely it might be + changes in the future) + + feeder/imageManipulation.py | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +commit a8f05df66398df317ccb91c9faa3a38e73a1af3b +Author: Joaquim Rocha +Date: Wed Jul 7 18:41:20 2010 +0200 + + Add the contrast_tolerance as an instance variable of the ImageProcessor + + widgetModeler.ImageProcessor: Remove the contrast_tolerance + argument from a method and use the instance variable instead. + + feeder/imageManipulation.py | 12 +++++++++--- + 1 files changed, 9 insertions(+), 3 deletions(-) + +commit a807c7066a49fcf9cc683b9b101b9ddaf9a93b6d +Author: Matej Urbančič +Date: Tue Jul 27 14:33:47 2010 +0200 + + Updated Slovenian translation + + po/sl.po | 458 +++++++++++++++++++++++++++++++++----------------------------- + 1 files changed, 245 insertions(+), 213 deletions(-) + +commit 921b91572fbd0154ed7c93372d99bd813a4fe2d3 +Author: Joaquim Rocha +Date: Fri Jul 23 11:48:34 2010 +0200 + + Fix boxes' creation (gb#24793) + + There were exceptions being raised when creating a box dragging + the mouse over the limits of the image. + + studio/customWidgets.py | 4 ++++ + 1 files changed, 4 insertions(+), 0 deletions(-) + +commit 77cf5bd73ffdc7c283129d11e87ec3ffc02b8a09 +Author: Claude Paroz +Date: Tue Jul 20 20:49:52 2010 +0200 + + Updated French translation + + po/fr.po | 577 ++++++++++++++++++++++++++++++++++++++----------------------- + 1 files changed, 359 insertions(+), 218 deletions(-) + +commit ba8a6c222a868be98dca7d057a67f90739bb8785 +Author: Jorge González +Date: Sun Jul 18 11:28:58 2010 +0200 + + Updated Spanish translation + + po/es.po | 166 ++++++++++++++++++++++++++++++++----------------------------- + 1 files changed, 87 insertions(+), 79 deletions(-) + +commit 9cef54804ea548b0d32705f8a3ca347e8ea625d4 +Author: Petr Kovar +Date: Thu Jul 15 21:50:26 2010 +0200 + + Update Czech translation by Marek Cernocky + + po/cs.po | 313 ++++++++++++++++++++++++++----------------------------------- + 1 files changed, 133 insertions(+), 180 deletions(-) + +commit e330b6fe5e4a047a6a7cc8a0ad0d0f5d21f28057 +Author: Mario Blättermann +Date: Thu Jul 15 21:30:14 2010 +0200 + + [i18n] Updated German translation + + po/de.po | 160 +++++++++++++++++++++++++++++++++----------------------------- + 1 files changed, 85 insertions(+), 75 deletions(-) + +commit 2e61f3ee5f3c6c2a7c8e6d4d2af0a43b96cfd035 +Author: Joaquim Rocha +Date: Thu Jul 15 09:41:42 2010 +0200 + + Improve the a11y of the edit pages dialog + + widgetPresenter.PageSizeDialog: Set the mnemonic for the labels and + respective widgets; + + studio/widgetPresenter.py | 18 +++++++++++++----- + 1 files changed, 13 insertions(+), 5 deletions(-) + +commit 989282de62ca1b8121e014914b5c433322dcf67e +Author: Petr Kovar +Date: Sun Jul 11 17:43:23 2010 +0200 + + Update Czech translation by Marek Cernocky + + po/cs.po | 575 +++++++++++++++++++++++++++++++++++++++++--------------------- + 1 files changed, 379 insertions(+), 196 deletions(-) + +commit cd973278683a8aa5b477dbcb1fd88e0a8f6e5ccc +Author: Mario Blättermann +Date: Fri Jul 9 12:04:05 2010 +0200 + + [i18n] Updated German translation + + po/de.po | 382 ++++++++++++++++++++++++++++++++------------------------------ + 1 files changed, 195 insertions(+), 187 deletions(-) + +commit f8ad77e05ea4b353c18f725cc9649741ec949399 +Author: Jorge González +Date: Thu Jul 8 23:25:26 2010 +0200 + + Updated Spanish translation + + po/es.po | 406 ++++++++++++++++++++++++++++++++------------------------------ + 1 files changed, 207 insertions(+), 199 deletions(-) + +commit 38a0d16d00ef435b2247e8a62e21f253cd660d10 +Author: Joaquim Rocha +Date: Thu Jul 8 18:05:03 2010 +0200 + + Add the "delete selected areas" action + + studioBuilder.Studio: Add the delete_selected_areas callback. + widgetModeler.ImageReviewer_Controller: Add the deleteSelectedAreas + function that wrap's the SelectableBoxesArea's one. + widgetPresenter.MainWindow: Add the DeleteSelectedAreas action and + respective menu item. + + studio/studioBuilder.py | 1 + + studio/widgetModeler.py | 4 ++++ + studio/widgetPresenter.py | 7 ++++++- + 3 files changed, 11 insertions(+), 1 deletions(-) + +commit 9b15f8eca55e8502515d199db120f84f2f009d38 +Author: Joaquim Rocha +Date: Thu Jul 8 18:03:34 2010 +0200 + + Add the delete selected areas method + + customWidgets.SelectableBoxesArea: Add the method and remove the + current shortcut checking. + + studio/customWidgets.py | 11 ++++++----- + 1 files changed, 6 insertions(+), 5 deletions(-) + +commit 7ccf2fdcc826d74165daaf794c1a0406d0d7a737 +Author: Mario Blättermann +Date: Wed Jul 7 12:08:37 2010 +0200 + + [i18n] Updated German translation + + po/de.po | 382 ++++++++++++++++++++++++++++++++------------------------------ + 1 files changed, 199 insertions(+), 183 deletions(-) + +commit 6e1d2a904ce32398fbce456556eb3ca43c26f0d9 +Author: Joaquim Rocha +Date: Tue Jul 6 12:45:51 2010 +0200 + + widgetModeler: Fix adding an image the regular way + + Some code that was added for the PDF parallel importation + was not allowing an image to be added with the regular + Add Image action. + + studio/widgetModeler.py | 2 -- + 1 files changed, 0 insertions(+), 2 deletions(-) + +commit 2ffbad79e269ce8c8161ef993ca2e3cb867f744c +Author: Jorge González +Date: Tue Jul 6 05:18:15 2010 +0200 + + Updated Spanish translation + + po/es.po | 387 ++++++++++++++++++++++++++++++++------------------------------ + 1 files changed, 200 insertions(+), 187 deletions(-) + +commit 62bc796c6fac0623e492a00467260964cc8983be +Author: Joaquim Rocha +Date: Mon Jul 5 19:30:52 2010 +0200 + + widgetPresenter: Add shortcuts for the selecting areas actions + + studio/widgetPresenter.py | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +commit f4f091b58c5a714832e6ca145b2cbf82778b3f47 +Author: Joaquim Rocha +Date: Mon Jul 5 17:31:13 2010 +0200 + + widgetPresenter: Change "select all areas" action accelerator + + Use Control+Shift+A instead of Control+A to prevent + conflicts with the text area's shortcuts + + studio/widgetPresenter.py | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit a32b9f531f042fd8df496cd74a2fc3defc4494dd +Author: Joaquim Rocha +Date: Mon Jul 5 17:29:50 2010 +0200 + + customWidgets: Remove the keyboard shortcut for selecting all areas + + This is because this shortcut is already accomplished by the + respective action in the main window. + + studio/customWidgets.py | 2 -- + 1 files changed, 0 insertions(+), 2 deletions(-) + +commit fd9f73ed43df05ffe434f26c4846453a7d048999 +Author: Joaquim Rocha +Date: Mon Jul 5 12:52:35 2010 +0200 + + studioBuilder: Make page detection paralel + + Use a different thread to perform the + OCRFeeder detection so the GUI will not be blocked. + + studio/widgetModeler.py | 78 ++++++++++++++++++++++++++++----------------- + studio/widgetPresenter.py | 6 ++- + 2 files changed, 53 insertions(+), 31 deletions(-) + +commit 5a10c8a0f1c474d1c7b60f6e6016051b5eaa5169 +Author: Joaquim Rocha +Date: Mon Jul 5 17:01:52 2010 +0200 + + widgetPresenter: Change Queued Events Dialog's message on manual cancel only + + studio/widgetPresenter.py | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit f97da24e7d95809d45977ba3396da4f998db4546 +Author: Joaquim Rocha +Date: Mon Jul 5 10:49:27 2010 +0200 + + studioBuilder: Make PDF importation paralel + + Use a different thread to import the PDF so the + GUI will not be blocked. + + studio/studioBuilder.py | 21 ++++++++++++++++++--- + 1 files changed, 18 insertions(+), 3 deletions(-) + +commit 0e41408a941763763442aab35f9de72e5e4ac937 +Author: Joaquim Rocha +Date: Mon Jul 5 10:59:55 2010 +0200 + + widgetModeler: Make adding an image run only within a thread at a time + + studio/widgetModeler.py | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +commit b0d8ff2d0b2463a7552c75817fbd5649f29c2265 +Author: Joaquim Rocha +Date: Mon Jul 5 10:44:37 2010 +0200 + + widgetPresenter: Created queued events dialog + + This dialog manages an asynchronous worker + and shows a progress bar while the events + are being processed. + + For this, the asyncworker module was introduced, + it comes from the SeriesFinale project. + + studio/widgetPresenter.py | 78 +++++++++++++++++++++++++++++++++++++++++ + util/asyncworker.py | 85 +++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 163 insertions(+), 0 deletions(-) + +commit e35cb7028b86324c3d2c0a1e826eb6e184d4ad02 +Author: Joaquim Rocha +Date: Mon Jul 5 10:55:08 2010 +0200 + + studioBuilder: Init the threads before GTK's main + + studio/studioBuilder.py | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +commit 33e120ada23ee071597cc3c5e3c7d8b0c6118f06 +Author: Jorge González +Date: Sun Jul 4 13:50:25 2010 +0200 + + Updated Spanish translation + + po/es.po | 153 ++++++++++++++++++++++++++------------------------------------ + 1 files changed, 64 insertions(+), 89 deletions(-) + +commit 951d6d7f7c9e7be6d4715f143c640b911dc25491 +Author: Jorge González +Date: Sat Jul 3 13:41:00 2010 +0200 + + Updated Spanish translation + + po/es.po | 562 +++++++++++++++++++++++++++++++++++++++----------------------- + 1 files changed, 351 insertions(+), 211 deletions(-) + +commit 854552ecb6a15ac0891ed656f90d2fd690590838 +Author: Mario Blättermann +Date: Fri Jul 2 22:11:11 2010 +0200 + + [i18n] Updated German translation + + po/de.po | 536 +++++++++++++++++++++++++++++++++++++------------------------- + 1 files changed, 322 insertions(+), 214 deletions(-) + +commit aef2b2505a607f312cb3da01008dc10d5ae2b6dd +Author: Matej Urbančič +Date: Fri Jul 2 14:05:50 2010 +0200 + + Updated Slovenian translation + + po/sl.po | 560 ++++++++++++++++++++++++++++++++++++-------------------------- + 1 files changed, 327 insertions(+), 233 deletions(-) + +commit 9476d3340c244e05d047a6b95d2b69ed62f63105 +Author: Joaquim Rocha +Date: Thu Jul 1 15:35:24 2010 +0200 + + widgetPresenter: Prevent problems when getting the Unpaper image preview + + Check the image path for existence and catch eventual exceptions. + + studio/widgetPresenter.py | 8 +++++++- + 1 files changed, 7 insertions(+), 1 deletions(-) + +commit bc7b8bdf910d2475c2ff78232b84b10a529f8fbb +Author: Joaquim Rocha +Date: Thu Jul 1 15:26:53 2010 +0200 + + widgetModeler: Prevent problems when updating the background image + + Verify image's path and catch exceptions when updating the background image + + studio/widgetModeler.py | 8 +++++++- + 1 files changed, 7 insertions(+), 1 deletions(-) + +commit 80b3ae7eb607079a11b32996efeac0caaed1c5b6 +Author: Joaquim Rocha +Date: Thu Jul 1 10:58:15 2010 +0200 + + setup: Delete trailing whitespaces + + setup.py | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 9fcc57a7c2abfcb8f029df875bb2b939d94b86bf +Author: Joaquim Rocha +Date: Thu Jul 1 10:55:27 2010 +0200 + + ocrEngines: Delete trailing whitespaces + + feeder/ocrEngines.py | 40 ++++++++++++++++++++-------------------- + 1 files changed, 20 insertions(+), 20 deletions(-) + +commit e670f1117005ca30886255d3ab31a430c6eb5dd5 +Author: Joaquim Rocha +Date: Thu Jul 1 10:55:08 2010 +0200 + + layoutAnalysis: Delete trailing whitespaces + + feeder/layoutAnalysis.py | 82 +++++++++++++++++++++++----------------------- + 1 files changed, 41 insertions(+), 41 deletions(-) + +commit 0b488f5bc2e256f2f64214759aa880802848857b +Author: Joaquim Rocha +Date: Thu Jul 1 10:54:43 2010 +0200 + + imageManipulation: Delete trailing whitespaces + + feeder/imageManipulation.py | 38 +++++++++++++++++++------------------- + 1 files changed, 19 insertions(+), 19 deletions(-) + +commit 6812d0815b5b516f949347b890189bb8283cdf6d +Author: Joaquim Rocha +Date: Thu Jul 1 10:54:19 2010 +0200 + + documentGeneration: Delete trailing whitespaces + + feeder/documentGeneration.py | 76 +++++++++++++++++++++--------------------- + 1 files changed, 38 insertions(+), 38 deletions(-) + +commit 8cf75c93e03621a89a9238e03828dafbe74c4d82 +Author: Joaquim Rocha +Date: Thu Jul 1 10:53:44 2010 +0200 + + lib: Delete trailing whitespaces + + util/lib.py | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +commit 9546c8c075f57af14eb4516c68a729dce74cf624 +Author: Joaquim Rocha +Date: Thu Jul 1 10:53:21 2010 +0200 + + graphics: Delete trailing whitespaces + + util/graphics.py | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 6f44c64a590ebe98d09164171f96168ed9e63569 +Author: Joaquim Rocha +Date: Thu Jul 1 10:53:00 2010 +0200 + + constants: Delete trailing whitespaces + + util/constants.py | 6 +++--- + 1 files changed, 3 insertions(+), 3 deletions(-) + +commit 754e4714d108a3a503c1290d9869b327f2c0de5e +Author: Joaquim Rocha +Date: Thu Jul 1 10:52:39 2010 +0200 + + cliutils: Delete trailing whitespaces + + util/cliutils.py | 14 +++++++------- + 1 files changed, 7 insertions(+), 7 deletions(-) + +commit 6cf5943a423142080bc3b2d01b188ea126770de3 +Author: Joaquim Rocha +Date: Thu Jul 1 10:52:06 2010 +0200 + + dataHolder: Delete trailing whitespaces + + studio/dataHolder.py | 90 +++++++++++++++++++++++++------------------------- + 1 files changed, 45 insertions(+), 45 deletions(-) + +commit d88c21b6ab46b62fd0aafa47e6431f9622a5f72e +Author: Joaquim Rocha +Date: Thu Jul 1 10:51:43 2010 +0200 + + configuration: Delete trailing whitespaces + + studio/configuration.py | 80 +++++++++++++++++++++++----------------------- + 1 files changed, 40 insertions(+), 40 deletions(-) + +commit ad184f17cb3f314506f984cfbe66d393479b820c +Author: Joaquim Rocha +Date: Thu Jul 1 10:51:17 2010 +0200 + + customWidgets: Delete trailing whitespaces + + studio/customWidgets.py | 68 +++++++++++++++++++++++----------------------- + 1 files changed, 34 insertions(+), 34 deletions(-) + +commit fba7874dcbacd26ff90603aba949474fca130290 +Author: Joaquim Rocha +Date: Thu Jul 1 10:50:39 2010 +0200 + + studioBuilder: Delete trailing whitespaces + + studio/studioBuilder.py | 76 +++++++++++++++++++++++----------------------- + 1 files changed, 38 insertions(+), 38 deletions(-) + +commit 648100d67378b808e83961785085242826c5f38a +Author: Joaquim Rocha +Date: Thu Jul 1 10:50:07 2010 +0200 + + widgetModeler: Delete trailing whitespaces + + studio/widgetModeler.py | 198 +++++++++++++++++++++++----------------------- + 1 files changed, 99 insertions(+), 99 deletions(-) + +commit 2723025e5b635e779c1f919bb2e330ab5b5936f1 +Author: Joaquim Rocha +Date: Thu Jul 1 10:49:39 2010 +0200 + + widgetPresenter: Delete trailing whitespaces + + studio/widgetPresenter.py | 276 ++++++++++++++++++++++---------------------- + 1 files changed, 138 insertions(+), 138 deletions(-) + +commit 89b86ea84ead1959d63c749e1d971d1ea0138cf1 +Author: Joaquim Rocha +Date: Wed Jun 30 18:17:42 2010 +0200 + + widgetPresenter: Set the pages (ScrolledWindow) and the box editor accessible names + + studio/widgetPresenter.py | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +commit 9e4981d37cb64bacc2fff5b202675173559ac888 +Author: Joaquim Rocha +Date: Wed Jun 30 18:16:53 2010 +0200 + + widgetModeler: Set the pages (IconView) and the the selectable boxes area accessible name + + studio/widgetModeler.py | 3 +++ + 1 files changed, 3 insertions(+), 0 deletions(-) + +commit ebeed81003b05bd9576d05d295270f541428d703 +Author: Joaquim Rocha +Date: Wed Jun 30 16:45:02 2010 +0200 + + widgetPresenter: Improve the a11y of the Unpaper dialog + + Add menmonic to Preview button; + Add tooltip to Extra Option entry. + + studio/widgetPresenter.py | 4 +++- + 1 files changed, 3 insertions(+), 1 deletions(-) + +commit 1c5a900de2f4919f87dbfcbe654cf122a871258b +Author: Joaquim Rocha +Date: Wed Jun 30 16:30:42 2010 +0200 + + widgetPresenter: Add the mnemonic to the OCR engines dialog's detect button + + studio/widgetPresenter.py | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 2c0862f13492ece767a392246ab7b64984a4098e +Author: Joaquim Rocha +Date: Wed Jun 30 16:21:16 2010 +0200 + + widgetPresenter: Improve the a11y of the OCR engine settings' dialog + + Make the dialog more GNOME HIG compliant; + Set the labels as mnemonics for the respective entries. + + studio/widgetPresenter.py | 41 +++++++++++++++++++++++++++++------------ + 1 files changed, 29 insertions(+), 12 deletions(-) + +commit adad51c87fa9c08beca4c2daf267f08aa073ae73 +Author: Joaquim Rocha +Date: Wed Jun 30 10:54:13 2010 +0200 + + widgetPresenter: Improve the a11y of the Preferences dialog + + studio/widgetPresenter.py | 42 +++++++++++++++++++++++++++++++++--------- + 1 files changed, 33 insertions(+), 9 deletions(-) + +commit cbd488b79ba2ed3f7b00c20f0e59371c8785e3fc +Author: Joaquim Rocha +Date: Wed Jun 30 09:53:55 2010 +0200 + + Remove the image stroke color option from Preferences + + Remove that control as it was not being totally honored and make the + text stroke color become the general boxes' stroke color. + + studio/configuration.py | 17 +++++------------ + studio/widgetModeler.py | 25 +++++++++---------------- + studio/widgetPresenter.py | 19 +++++++------------ + 3 files changed, 21 insertions(+), 40 deletions(-) + +commit 0e3a27c97b3e7daaad5a5caa70c4acc7146f80e8 +Author: Joaquim Rocha +Date: Tue Jun 29 16:14:00 2010 +0200 + + widgetPresenter: Improve the a11y of the BoxEditor's text properties (text page) + + Add the tooltip text; set the controls' labels as their mnemonics. + + studio/widgetPresenter.py | 4 +++- + 1 files changed, 3 insertions(+), 1 deletions(-) + +commit 6457ccc6ee798006c09a15e0c175226cdc97c2f2 +Author: Joaquim Rocha +Date: Tue Jun 29 16:13:11 2010 +0200 + + widgetPresenter: Improve the a11y of the BoxEditor's OCR text properties + + Add the tooltip text; set the controls' labels as their mnemonics; + Add a new label describing what the engines combo box is for. + + studio/widgetPresenter.py | 14 +++++++++++++- + 1 files changed, 13 insertions(+), 1 deletions(-) + +commit 455542bdee17d91cc2c16f23a4ef28cbe871b61a +Author: Joaquim Rocha +Date: Tue Jun 29 16:12:14 2010 +0200 + + widgetPresenter: Improve the a11y of the BoxEditor's text style properties + + Add the tooltip text; + Set the controls' labels as their mnemonics; + Make it more GNOME HIG compliant. + + studio/widgetPresenter.py | 47 +++++++++++++++++++++++++++++++++----------- + 1 files changed, 35 insertions(+), 12 deletions(-) + +commit bba4fe1a45b0ebf201878c1fef8179b93a095ede +Author: Joaquim Rocha +Date: Tue Jun 29 16:09:39 2010 +0200 + + widgetPresenter: Improve the a11y of the BoxEditor's type properties + + Add the tooltip text; set the controls' labels as their mnemonics. + + studio/widgetPresenter.py | 10 +++++----- + 1 files changed, 5 insertions(+), 5 deletions(-) + +commit 519457504e31b116d4b9053cbf1dfafb48e599a2 +Author: Joaquim Rocha +Date: Tue Jun 29 16:04:38 2010 +0200 + + widgetPresenter: Improve the a11y of the BoxEditor's bounds properties + + Add the tooltip text; + Set the controls' labels as their mnemonics; + Make it more GNOME HIG compliant. + + studio/widgetPresenter.py | 78 ++++++++++++++++++++++++++++++++++----------- + 1 files changed, 59 insertions(+), 19 deletions(-) + +commit b950e2defd0165aa0da3a1271b33bc7d87fa7796 +Author: Jorge González +Date: Tue Jun 29 05:32:37 2010 +0200 + + Updated Spanish translation + + po/es.po | 342 +++++++++++++++++++++++++++++++++----------------------------- + 1 files changed, 184 insertions(+), 158 deletions(-) + +commit 48a1b1292112ce8c2fc68a1b313661eb0b9a2bf2 +Author: Matej Urbančič +Date: Mon Jun 28 22:20:37 2010 +0200 + + Updated Slovenian translation + + po/sl.po | 378 +++++++++++++++++++++++++++++++++----------------------------- + 1 files changed, 201 insertions(+), 177 deletions(-) + +commit b4c833cf9cfd70db4cee9d57915d561840956391 +Author: Mario Blättermann +Date: Mon Jun 28 22:15:01 2010 +0200 + + [i18n] Updated German translation + + po/de.po | 348 +++++++++++++++++++++++++++++++++----------------------------- + 1 files changed, 186 insertions(+), 162 deletions(-) + +commit dfbab8ad396e3f59bcf5f18035481bfb86dc2744 +Author: Joaquim Rocha +Date: Mon Jun 28 11:50:46 2010 +0200 + + customWidgets: Remove the shortcut to select all areas from the SelectableBoxesArea + + This action is now a GtkAction already with its accelerator. + + studio/customWidgets.py | 2 -- + 1 files changed, 0 insertions(+), 2 deletions(-) + +commit 8440833e1175edc145d9b1e489a910b57ab955f5 +Author: Joaquim Rocha +Date: Mon Jun 28 11:49:57 2010 +0200 + + Add menu to select all areas + + studio/studioBuilder.py | 1 + + studio/widgetModeler.py | 4 ++++ + studio/widgetPresenter.py | 8 +++++++- + 3 files changed, 12 insertions(+), 1 deletions(-) + +commit e546ecd5f8795d26f4fb535456f60f9a009f26c0 +Author: Joaquim Rocha +Date: Mon Jun 28 11:33:00 2010 +0200 + + widgetModeler: Update main window when an image reviewer is selected + + This will make the window's menus enabled according to the status of + the current reviewer. + + studio/widgetModeler.py | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +commit 11e513ca9f4f22599d7e0d6a2a0c7a2082c664b0 +Author: Joaquim Rocha +Date: Mon Jun 28 11:12:47 2010 +0200 + + widgetPresenter: Make setHasImages set the presence of select and content boxes when it's set to false + + studio/widgetPresenter.py | 3 +++ + 1 files changed, 3 insertions(+), 0 deletions(-) + +commit 4c840924f79aecab3defef029e8558b2e47eba20 +Author: Joaquim Rocha +Date: Mon Jun 28 11:09:53 2010 +0200 + + widgetModeler: Select the first image (if it exists) when one page is deleted + + studio/widgetModeler.py | 4 +++- + 1 files changed, 3 insertions(+), 1 deletions(-) + +commit a3f7b46fad2036182eea82ad6b4b416849606672 +Author: Joaquim Rocha +Date: Thu Jun 24 18:28:13 2010 +0200 + + Fix Document menu items not being properly enabled + + When the document was automatically recognized, the menu items under Document + menu weren't being updated. This patch updates these and other main window's + controls after performing OCR for any editor. + + studio/widgetModeler.py | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +commit 6798062a8447d12a2ac936d20960cf0fe07f1b3a +Author: Joaquim Rocha +Date: Thu Jun 24 16:56:57 2010 +0200 + + Toggle areas' selection menus according to the areas' existence (gb#622568) + + studio/studioBuilder.py | 1 + + studio/widgetModeler.py | 4 +++- + studio/widgetPresenter.py | 4 ++++ + 3 files changed, 8 insertions(+), 1 deletions(-) + +commit 0df28bf62005e62350b4e21ca2a654e4293a777a +Author: Joaquim Rocha +Date: Thu Jun 24 16:55:36 2010 +0200 + + Abstracted the GTKActions sensitiveness setting + + studio/widgetPresenter.py | 10 ++++++---- + 1 files changed, 6 insertions(+), 4 deletions(-) + +commit c4eadfda789d530db155e674b93593a0349b2ff5 +Author: Joaquim Rocha +Date: Thu Jun 24 10:10:57 2010 +0200 + + Add controls to select next/previous content area (gb#622568) + + Add "Select Next Area" and "Select Previous Area" to the Document menu. + These select the next/previous content areas in order of creation. + + studio/customWidgets.py | 24 ++++++++++++++++++++++++ + studio/studioBuilder.py | 5 ++++- + studio/widgetModeler.py | 8 ++++++++ + studio/widgetPresenter.py | 10 ++++++++++ + 4 files changed, 46 insertions(+), 1 deletions(-) + +commit 4124cbc13b2123402d1954c9fc6d04dfda5af298 +Author: Chao-Hsiung Liao +Date: Wed Jun 16 15:20:08 2010 +0800 + + Added Traditional Chinese translation (Hong Kong and Taiwan) + + po/LINGUAS | 2 + + po/zh_HK.po | 679 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + po/zh_TW.po | 679 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 1360 insertions(+), 0 deletions(-) + +commit ed693effcf4cfec9a96e4262b8cb40d4dfd08c02 +Author: Stefan Löffler +Date: Fri Jun 4 10:35:48 2010 +0200 + + Implement drag&drop (bug 620213) + + Allows to drop files from, e.g., a file manager onto the image list. + If the file extension is ".pdf", the file is interpreted as pdf. + Otherwise it is attempted to be loaded as an image. + + Note: No elaborate mime-type checking is performed. + + Most of the code is adapted from: + http://faq.pygtk.org/index.py?req=show&file=faq23.031.htp + + studio/studioBuilder.py | 38 ++++++++++++++++++++++++++++++++++++++ + 1 files changed, 38 insertions(+), 0 deletions(-) + +commit b3c509684924f4755861ac577232d792d64ef5b6 +Author: Stefan Löffler +Date: Fri Jun 4 10:17:28 2010 +0200 + + Implement mousewheel horizontal scroll (bug 620212) + + Hold down Shift while scrolling to switch from vertical to horizontal scroll mode + + studio/customWidgets.py | 8 ++++++++ + 1 files changed, 8 insertions(+), 0 deletions(-) + +commit a689bfeafe44e1fb8742f51a3708d55e7d57e33b +Author: Stefan Löffler +Date: Fri Jun 4 10:14:54 2010 +0200 + + Fix mousewheel zoom (bug 620212) + + Test only if Ctrl is pressed when mousewheel is scrolled (allows for some other mod flags to be present) + + studio/customWidgets.py | 6 +++++- + 1 files changed, 5 insertions(+), 1 deletions(-) + +commit aee75b8ea6ce97dfb3a79843412296ed10dd2fae +Author: Joaquim Rocha +Date: Thu May 27 08:24:58 2010 +0200 + + [studioBuilder] Remove threads_init call + + studio/studioBuilder.py | 1 - + 1 files changed, 0 insertions(+), 1 deletions(-) + +commit 74bebdf3f84b6d176948aa8ff01a0f18dfc45a00 +Author: Joe Hansen +Date: Sun May 16 18:01:51 2010 +0200 + + Updated Danish translation + + po/da.po | 684 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 files changed, 684 insertions(+), 0 deletions(-) + +commit dc25234b39c80ca03b836ecb57502297d649391b +Author: Kenneth Nielsen +Date: Sun May 16 18:01:51 2010 +0200 + + Added da to list of languages + + po/LINGUAS | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +commit e5e247e66d96863a4d8970612b5bba0b56c75615 +Author: Joaquim Rocha +Date: Wed Apr 21 16:28:54 2010 +0200 + + Remove version restrictrion from python-pygoocanvas in debian/control + + debian/control | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 612a30b306cf8dd76a96b349db8e0c3d0745cc96 +Author: Claude Paroz +Date: Sat Apr 17 14:50:18 2010 +0200 + + Updated French translation + + Contributed by Bruno Brouard and Claude Paroz + + po/fr.po | 547 ++++++++++++++++++++++++++++++++++---------------------------- + 1 files changed, 300 insertions(+), 247 deletions(-) + +commit 4563aab727cf83085ff0f3ddd1746ee16486b9fe +Author: Francisco Diéguez +Date: Fri Apr 9 20:06:43 2010 +0200 + + Updated Galician translations + + po/gl.po | 1256 +++++++++++++++++++++++++++++++++----------------------------- + 1 files changed, 664 insertions(+), 592 deletions(-) + +commit e4adecdcebb946421d07e1929abcbc1289429c60 +Author: Joaquim Rocha +Date: Mon Apr 5 16:44:10 2010 +0200 + + Update for release 0.6.6 + + NEWS | 26 ++++++++++++++++++++++++++ + debian/changelog | 6 ++++++ + util/constants.py | 2 +- + 3 files changed, 33 insertions(+), 1 deletions(-) + +commit 7734e4d6bd3ade7e9656cfdb91abdd40aeebb9c7 +Author: Joaquim Rocha +Date: Sat Apr 3 21:27:08 2010 +0200 + + Remove debian dir files left as a mistake in the MANIFEST.in + + MANIFEST.in | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 615301d44ceb94eaeea8260c039ecf699f1ced55 +Author: Joaquim Rocha +Date: Fri Apr 2 21:58:47 2010 +0200 + + Updated copyright to include ODFPy + + README | 30 ++++++++++++++++++++++++++++++ + debian/copyright | 24 ++++++++++++++++++++---- + 2 files changed, 50 insertions(+), 4 deletions(-) + +commit 36487039d9fac59484d9aa133bed152868c27131 +Author: Joaquim Rocha +Date: Fri Apr 2 21:58:57 2010 +0200 + + Added AUTHORS file + + AUTHORS | 8 ++++++++ + MANIFEST.in | 2 +- + 2 files changed, 9 insertions(+), 1 deletions(-) + +commit deb6ddbf2e7916e3a949b7d236248383247d643f +Author: Joaquim Rocha +Date: Wed Mar 31 18:51:50 2010 +0200 + + Remove debian dir from MANIFEST.in so it won't get into the tarball + + MANIFEST.in | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit e44d667e8226b4d2498f3397e928ca8c6d8b755c +Author: Alberto Garcia +Date: Wed Mar 31 18:22:49 2010 +0200 + + Update description in control file + + debian/control | 15 ++++++++++++--- + 1 files changed, 12 insertions(+), 3 deletions(-) + +commit 66c3acf4a0e0de7591c31b219b0f9adf31077c4f +Author: Alberto Garcia +Date: Wed Mar 31 12:18:33 2010 +0200 + + Install locale files under /usr/share/locale + + setup.py | 3 ++- + util/constants.py | 2 +- + 2 files changed, 3 insertions(+), 2 deletions(-) + +commit 3e873f5baa16d7bb57b629c624baba2cbc404768 +Author: Joaquim Rocha +Date: Wed Mar 31 18:24:50 2010 +0200 + + Fix attempt to remove element not in list + + studio/customWidgets.py | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +commit 4cd807c8e717af782640b1a5810f95cc7baade4c +Author: Petr Kovar +Date: Mon Mar 29 00:38:18 2010 +0200 + + Update Czech translation by Marek Cernocky + + po/cs.po | 12 +++++------- + 1 files changed, 5 insertions(+), 7 deletions(-) + +commit c1aeb6a9cdbd62de288af5f61697020cc9d6b9ee +Author: Marek Černocký +Date: Sat Mar 27 14:17:32 2010 +0100 + + Update Czech translation + + po/cs.po | 336 ++++++++++++++++++++++++++++++++++---------------------------- + 1 files changed, 184 insertions(+), 152 deletions(-) + +commit 076380efb8dc34b639e830f0ec5d30232a66ecb8 +Author: Matej Urbančič +Date: Thu Mar 25 14:36:36 2010 +0100 + + Updated Slovenian translation + + po/sl.po | 391 +++++++++++++++++++++++++++++++++---------------------------- + 1 files changed, 211 insertions(+), 180 deletions(-) + +commit 228eda4c015783eccc481ce364856a87b6ea5903 +Author: Jorge González +Date: Wed Mar 24 21:15:11 2010 +0100 + + Updated Spanish translation + + po/es.po | 321 ++++++++++++++++++++++++++++++++------------------------------ + 1 files changed, 164 insertions(+), 157 deletions(-) + +commit 281fd974c63c2ac876438511aa2ebb870d0a3a8c +Author: Mario Blättermann +Date: Wed Mar 24 19:57:24 2010 +0100 + + Updated German translation + + po/de.po | 321 ++++++++++++++++++++++++++++++++------------------------------ + 1 files changed, 164 insertions(+), 157 deletions(-) + +commit c6628b7c57c51db54227606bb6872ed823dce511 +Author: Joaquim Rocha +Date: Wed Mar 24 18:17:42 2010 +0100 + + Update for release 0.6.5 + + Makefile | 2 +- + NEWS | 40 ++++++++++++++++++++++++++++++++++++++++ + debian/changelog | 6 ++++++ + util/constants.py | 2 +- + 4 files changed, 48 insertions(+), 2 deletions(-) + +commit d6f96af60be7c78a99bf9f7494c32d73bbdc74e7 +Author: Joaquim Rocha +Date: Wed Mar 24 18:10:47 2010 +0100 + + Fixes Debian package generation (thanks to Alberto Garcia) + + debian/control | 6 ++---- + debian/copyright | 10 +++++----- + debian/rules | 5 ++++- + 3 files changed, 11 insertions(+), 10 deletions(-) + +commit 19a1f75bbf8fbfa618cdadfc00b3f6736034997d +Author: Joaquim Rocha +Date: Wed Mar 24 17:15:34 2010 +0100 + + Add man pages + + resources/ocrfeeder-cli.1 | 40 ++++++++++++++++++++++++++++++++++++++++ + resources/ocrfeeder.1 | 38 ++++++++++++++++++++++++++++++++++++++ + setup.py | 3 +++ + 3 files changed, 81 insertions(+), 0 deletions(-) + +commit 5c672ae9fa0b327eb961ceaac8785243e1f9cfc1 +Author: Joaquim Rocha +Date: Wed Mar 24 16:36:17 2010 +0100 + + Remove setuptools dependency + + debian/control | 2 +- + setup.py | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +commit d52196f9b17e650dfa0e26069e192c3d7ea31ee6 +Author: Joaquim Rocha +Date: Wed Mar 24 16:35:32 2010 +0100 + + Make a simple binary Debian file from Makefile's builddeb target + + Makefile | 7 +------ + 1 files changed, 1 insertions(+), 6 deletions(-) + +commit 7aa9cb199f34e286014f3dd2a26ed3ba62f6147c +Author: Joaquim Rocha +Date: Wed Mar 24 11:06:15 2010 +0100 + + Fix problem when quitting the application + + When choosing Cancel on the quit dialog, the window was closing and the application was left running. + + studio/studioBuilder.py | 3 +++ + 1 files changed, 3 insertions(+), 0 deletions(-) + +commit 09358731a0daae8c7e0bc30c91727078b5f1d145 +Author: Joaquim Rocha +Date: Wed Mar 24 11:00:40 2010 +0100 + + Add Ctrl+a shortcut to select all areas + + studio/customWidgets.py | 21 ++++++++++++++------- + 1 files changed, 14 insertions(+), 7 deletions(-) + +commit c8a51e6bf225310ccc4b33a55aab89afbcd6131f +Author: Joaquim Rocha +Date: Wed Mar 24 10:43:24 2010 +0100 + + Deselect box with Shift+Click when the box is selected + + studio/customWidgets.py | 19 ++++++++++++++++++- + 1 files changed, 18 insertions(+), 1 deletions(-) + +commit b637a1e99c1ee29ddd5e34dc663e0229e6dcd856 +Author: Joaquim Rocha +Date: Wed Mar 24 10:18:50 2010 +0100 + + Make recognize selected areas action dependent on the existence of selected areas + + studio/customWidgets.py | 15 ++++++++++----- + studio/studioBuilder.py | 7 ++++++- + studio/widgetModeler.py | 25 ++++++++++++++++++++----- + studio/widgetPresenter.py | 8 ++++++++ + 4 files changed, 44 insertions(+), 11 deletions(-) + +commit a97c57343f98d7cf3428526ce86853f8955adadd +Author: Joaquim Rocha +Date: Wed Mar 24 10:17:43 2010 +0100 + + Add recognize selected areas feature + + studio/studioBuilder.py | 3 ++- + studio/widgetModeler.py | 31 ++++++++++++++++++++++++++----- + studio/widgetPresenter.py | 2 ++ + 3 files changed, 30 insertions(+), 6 deletions(-) + +commit 533021c6b319907828d2e1a4155dcbede3e32cb4 +Author: Joaquim Rocha +Date: Tue Mar 23 18:41:10 2010 +0100 + + Select selection area after creating it + + studio/customWidgets.py | 6 +++++- + 1 files changed, 5 insertions(+), 1 deletions(-) + +commit e94fdcdf934322e85936d04b40a333dfae9ab163 +Author: Joaquim Rocha +Date: Tue Mar 23 18:21:25 2010 +0100 + + Allow multiple selection of selection areas + + More than one selection area can now be selection using Shift+Click + + studio/customWidgets.py | 33 ++++++++++++++++++++------------- + 1 files changed, 20 insertions(+), 13 deletions(-) + +commit a7da5271ed2e73f2d9748e63b008122534d4ab99 +Author: Mario Blättermann +Date: Mon Mar 22 23:14:10 2010 +0100 + + Updated German translation + + po/de.po | 91 +++++++++++++++++++++++++++++++++++-------------------------- + 1 files changed, 52 insertions(+), 39 deletions(-) + +commit 065d447dab81bb878e051ff5733c3d1a7fea880a +Author: Jorge González +Date: Mon Mar 22 19:26:04 2010 +0100 + + Updated Spanish translation + + po/es.po | 91 +++++++++++++++++++++++++++++++++++-------------------------- + 1 files changed, 52 insertions(+), 39 deletions(-) + +commit 8be95f33ab9a69799a9ae27cadad6efb5213257b +Author: Joaquim Rocha +Date: Mon Mar 22 19:02:00 2010 +0100 + + Add detection of OCR engines to OCR manager dialog + + studio/widgetPresenter.py | 21 +++++++++++++++++++++ + 1 files changed, 21 insertions(+), 0 deletions(-) + +commit 6749e6a7990ad69c194af344b1d9ad7cc880e03d +Author: Joaquim Rocha +Date: Mon Mar 22 19:01:22 2010 +0100 + + Add system-wide OCR engines chooser dialog + + studio/configuration.py | 10 ++++++++-- + studio/studioBuilder.py | 11 +++++++++++ + studio/widgetPresenter.py | 40 +++++++++++++++++++++++++++++++++++++++- + 3 files changed, 58 insertions(+), 3 deletions(-) + +commit 063c4a146db7d2fae572dd8980c9edc34af73c48 +Author: Petr Kovar +Date: Sun Mar 21 01:14:48 2010 +0100 + + Update Czech translation by Marek Cernocky + + Reviewed by: Lucas Lommer. + + po/cs.po | 42 +++++++++++++++++++++++++----------------- + 1 files changed, 25 insertions(+), 17 deletions(-) + +commit d47116524935ad79cc757eb0fc4a929441b6e51a +Author: Mario Blättermann +Date: Sat Mar 20 22:20:23 2010 +0100 + + Updated German translation + + po/de.po | 105 ++++++++++++++++++++++++++++++++++++-------------------------- + 1 files changed, 61 insertions(+), 44 deletions(-) + +commit d7292475eaadd92043bee2483811f8d38fddfa02 +Author: Matej Urbančič +Date: Tue Mar 16 21:58:48 2010 +0100 + + Updated Slovenian translation + + po/sl.po | 43 +++++++++++++++++++++++++------------------ + 1 files changed, 25 insertions(+), 18 deletions(-) + +commit 4dd8d0a813ab78a452a85194b98ad3a3536f4aed +Author: Jorge González +Date: Mon Mar 15 19:27:47 2010 +0100 + + Updated Spanish translation + + po/es.po | 111 ++++++++++++++++++++++++++++++++++--------------------------- + 1 files changed, 62 insertions(+), 49 deletions(-) + +commit 1baf639b7c0b78357342a021c71b70a4eb7e2399 +Author: Philip Withnall +Date: Mon Mar 15 18:39:23 2010 +0100 + + Miscellaneous string fixes + + studio/widgetPresenter.py | 20 ++++++++++---------- + 1 files changed, 10 insertions(+), 10 deletions(-) + +commit 11671a6fde15058b21acbbd9aed93f80243b666f +Author: Kjartan Maraas +Date: Mon Mar 15 11:28:05 2010 +0100 + + Add Norwegian language entry. + + po/LINGUAS | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +commit 844f8365f5216fe7a297c09e051f881ac92cffb8 +Author: Kjartan Maraas +Date: Mon Mar 15 11:27:57 2010 +0100 + + Added Norwegian bokmål translation + + po/nb.po | 617 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 files changed, 617 insertions(+), 0 deletions(-) + +commit b741aef949e2eddb7076e396d0f051876ee6ecad +Author: Petr Kovar +Date: Mon Mar 15 01:26:54 2010 +0100 + + Add Czech translation by Marek Cernocky + + Reviewed by: Petr Kovar. + + po/LINGUAS | 1 + + po/cs.po | 627 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 628 insertions(+), 0 deletions(-) + +commit 0a3cfbd780b815be9bb12b0c688403258b731b9a +Author: Jorge González +Date: Sun Mar 14 23:14:17 2010 +0100 + + Updated Spanish translation + + po/es.po | 14 ++++++++++---- + 1 files changed, 10 insertions(+), 4 deletions(-) + +commit c74417fc6c7b6baa9fb62cd5fe90acbea468f0d9 +Author: Daniel Nylander +Date: Fri Mar 12 08:19:24 2010 +0100 + + Updated Swedish translation + + po/sv.po | 366 +++++++++++++++++++++++++++++++++----------------------------- + 1 files changed, 197 insertions(+), 169 deletions(-) + +commit 3c3ab20e452e3d5fe16ff0764face149ed752d29 +Author: Matej Urbančič +Date: Thu Mar 11 12:56:33 2010 +0100 + + Added sl for Slovenian translation + + po/LINGUAS | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +commit 315b86112bd2a0483c3fd6cb8d2218697ee475c9 +Author: Matej Urbančič +Date: Thu Mar 11 12:56:17 2010 +0100 + + Updated Slovenian translation + + po/sl.po | 647 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 files changed, 647 insertions(+), 0 deletions(-) + +commit e20abc8504ca9c2e750b4e40a7646be0c88a2dcc +Author: Mario Blättermann +Date: Thu Mar 11 10:30:47 2010 +0100 + + Updated German translation + + po/de.po | 21 ++++++++++++++++----- + 1 files changed, 16 insertions(+), 5 deletions(-) + +commit 441eeb8c7daa7af77075c5ff3b9007fd8c945397 +Author: Joaquim Rocha +Date: Thu Mar 11 09:56:13 2010 +0100 + + Sort images when adding them from a folder + + util/lib.py | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +commit a24bbe75ddd47a8b0068867d615d422f83dccd2f +Author: Joaquim Rocha +Date: Thu Mar 11 09:49:27 2010 +0100 + + Remove the PDF file's extension from the images generated from it + + util/lib.py | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +commit 217e50b506ae2f6225415550d2a48cd0b037bdbe +Author: Claude Paroz +Date: Wed Mar 10 20:47:58 2010 +0100 + + Sort files in alphabetic order in POTFILES.in + + po/POTFILES.in | 10 +++++----- + 1 files changed, 5 insertions(+), 5 deletions(-) + +commit 2e4bf0ad670b8cd3dc1e9bc4049c6b8e4c50e256 +Author: Joaquim Rocha +Date: Wed Mar 10 15:20:10 2010 +0100 + + Force icon view to always have a selected item + + studio/widgetModeler.py | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +commit f36e5811249304739a8d3f99c7fde23a84a48d87 +Author: Philip Withnall +Date: Wed Mar 10 12:20:25 2010 +0000 + + Added British English translation + + po/LINGUAS | 3 +- + po/en_GB.po | 624 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 626 insertions(+), 1 deletions(-) + +commit 746ee0f812f7b63e660fecae6b2f28a6b052baa0 +Author: Joaquim Rocha +Date: Wed Mar 10 12:30:32 2010 +0100 + + Add ocrfeeder.desktop.in and generation of ocrfeeder.desktop + + Makefile | 8 ++++++-- + po/POTFILES.in | 1 + + resources/ocrfeeder.desktop | 10 ---------- + resources/ocrfeeder.desktop.in | 10 ++++++++++ + 4 files changed, 17 insertions(+), 12 deletions(-) + +commit e897f8376cb3134a11e90209e7b81f275415b485 +Author: Joaquim Rocha +Date: Wed Mar 10 12:04:39 2010 +0100 + + Add LINGUAS file and use it to generate .mo files + + Makefile | 4 ++-- + po/LINGUAS | 8 ++++++++ + 2 files changed, 10 insertions(+), 2 deletions(-) + +commit 0c7aa00e4c7551511e4b9499cc9185b247cd24ea +Author: Jorge González +Date: Tue Mar 9 20:38:57 2010 +0100 + + Updated Spanish translation + + po/es.po | 10 ++++++++-- + 1 files changed, 8 insertions(+), 2 deletions(-) + +commit d7b78de638d425d7052f4b0bc63e2d959b943eca +Author: Jorge González +Date: Tue Mar 9 20:29:46 2010 +0100 + + Added Spanish translator + + TRANSLATORS | 3 +++ + 1 files changed, 3 insertions(+), 0 deletions(-) + +commit 215242ebe2e2a78545c3187ac449fe5dee3aa33f +Author: Jorge González +Date: Tue Mar 9 20:28:52 2010 +0100 + + Updated Spanish translation + + po/es.po | 1223 +++++++++++++++++++++++++++++++------------------------------- + 1 files changed, 619 insertions(+), 604 deletions(-) + +commit 29a871e926d51cfe4fe95d6af4010ccb4261839c +Author: Claudio Saavedra +Date: Tue Mar 9 13:53:43 2010 +0100 + + Make translators for about dialog dependent from the translation + + studio/widgetPresenter.py | 5 +---- + util/constants.py | 10 ---------- + 2 files changed, 1 insertions(+), 14 deletions(-) + +commit 4291c95b8911552894cde4417a1ea255a6e62710 +Author: Joaquim Rocha +Date: Tue Mar 9 13:38:45 2010 +0100 + + Lower the PDF imported images' resolution + + Make images imported from PDF use a resolution of 300x300 instead of 600x600 so it is faster to convert PDFs. + + util/lib.py | 7 +++++-- + 1 files changed, 5 insertions(+), 2 deletions(-) + +commit e0442973358a8767886621636120eceb816e3803 +Author: Mario Blättermann +Date: Mon Mar 8 22:26:04 2010 +0100 + + Updated German translation + + po/de.po | 410 ++++++++++++++++++++++++++++++++------------------------------ + 1 files changed, 209 insertions(+), 201 deletions(-) + +commit 04e38a0d9c7e1a1d4c846e4094dc9daa828b889a +Author: Joaquim Rocha +Date: Fri Mar 5 18:22:21 2010 +0100 + + Update for release 0.6.1 + + Makefile | 2 +- + NEWS | 24 ++++++++++++++++++++++++ + debian/changelog | 6 ++++++ + util/constants.py | 2 +- + 4 files changed, 32 insertions(+), 2 deletions(-) + +commit 9cb7758a6f8b1fea7d779a05fd76f6fcccf51d4f +Author: Joaquim Rocha +Date: Fri Mar 5 18:45:06 2010 +0100 + + Fixes error when importing PDFs with spaces in their names (gc#12) + + studio/studioBuilder.py | 2 ++ + util/lib.py | 8 ++++++-- + 2 files changed, 8 insertions(+), 2 deletions(-) + +commit 4b6ac42f01bdd08f6e7a41a3112a7a2fde8c235c +Author: Joaquim Rocha +Date: Fri Mar 5 18:21:45 2010 +0100 + + Make MANIFEST include everything under po/ + + MANIFEST.in | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit d5b50f23fae0f6fa1262835bd1f9c91e0ff403cf +Author: Joaquim Rocha +Date: Fri Mar 5 18:18:53 2010 +0100 + + Revert usage of syntax not available on Python 2.5 + + The keyword "as" was being used to get an exception instance. + + studio/widgetModeler.py | 6 +++--- + 1 files changed, 3 insertions(+), 3 deletions(-) + +commit 9ef02bb502a9ac5e38ded18374f8716fdad4ab32 +Author: Joaquim Rocha +Date: Fri Mar 5 17:32:30 2010 +0100 + + Add zoom control from mouse wheel + + studio/customWidgets.py | 10 ++++++++++ + 1 files changed, 10 insertions(+), 0 deletions(-) + +commit c035bee018a87155af1e7d39c711be8764443d4a +Author: Joaquim Rocha +Date: Fri Mar 5 15:33:16 2010 +0100 + + Add forgotten POTFILES.in file + + po/POTFILES.in | 17 +++++++++++++++++ + 1 files changed, 17 insertions(+), 0 deletions(-) + +commit c09a53575f28c9df331d44b5077761bd99fe3ba2 +Author: Joaquim Rocha +Date: Fri Mar 5 15:05:38 2010 +0100 + + Show error dialogs when not able to open messages + + feeder/imageManipulation.py | 19 +++++++++++++++---- + studio/widgetModeler.py | 11 +++++++++-- + studio/widgetPresenter.py | 7 +++++++ + 3 files changed, 31 insertions(+), 6 deletions(-) + +commit ac9b0c42a804ac4317420009e951bf6d8ce3acd2 +Author: Joaquim Rocha +Date: Fri Mar 5 09:57:57 2010 +0100 + + Made i18n more compliant with intltool + + Makefile | 42 ++- + locale/de/LC_MESSAGES/ocrfeeder.mo | Bin 8163 -> 0 bytes + locale/es/LC_MESSAGES/ocrfeeder.mo | Bin 8264 -> 0 bytes + locale/fr/LC_MESSAGES/ocrfeeder.mo | Bin 8302 -> 0 bytes + locale/gl/LC_MESSAGES/ocrfeeder.mo | Bin 8099 -> 0 bytes + locale/it/LC_MESSAGES/ocrfeeder.mo | Bin 8249 -> 0 bytes + locale/pt/LC_MESSAGES/ocrfeeder.mo | Bin 8152 -> 0 bytes + locale/sv/LC_MESSAGES/ocrfeeder.mo | Bin 8007 -> 0 bytes + locale/zh_CN/LC_MESSAGES/ocrfeeder.mo | Bin 7723 -> 0 bytes + po/ocrfeeder.pot | 597 --------------------------------- + 10 files changed, 23 insertions(+), 616 deletions(-) + +commit 2f39b3d5ac2f0704225d6eaf15d05af5815017c9 +Author: Joaquim Rocha +Date: Thu Mar 4 15:47:34 2010 +0100 + + Added the format to the default engines' arguments + + studio/configuration.py | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +commit 59762019cc6df91d5eeebbd980d001b64519352e +Author: Joaquim Rocha +Date: Thu Mar 4 15:40:23 2010 +0100 + + Fixes encoding problem (gc#8) + + feeder/ocrEngines.py | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 928ebf2978f1258b4c03ade8aa3f4b1d7f8f8525 +Author: Joaquim Rocha +Date: Wed Mar 3 14:57:18 2010 +0100 + + Fixed getting the engine name (gc#10) + + feeder/ocrEngines.py | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 49f5da0a99283d54b50b6c0c7ad61cb111a87ecf +Author: Joaquim Rocha +Date: Wed Mar 3 12:45:54 2010 +0100 + + Changed zoom factor and fixed allowed zoom levels + + studio/customWidgets.py | 13 +++++++++---- + studio/widgetModeler.py | 4 ++-- + 2 files changed, 11 insertions(+), 6 deletions(-) + +commit 0e39cfb730cc973b10c5d9c7ee27cb180a8909da +Author: Alberto Garcia +Date: Mon Feb 22 21:28:42 2010 +0000 + + Fix formatting of debian/changelog + + debian/changelog | 16 ++++++++-------- + 1 files changed, 8 insertions(+), 8 deletions(-) + +commit c35a2cc7f72ba2d5436c27352b2d6206b1ab7acf +Author: Alberto Garcia +Date: Mon Feb 22 21:23:36 2010 +0000 + + Fix formatting of Debian dependencies + + debian/control | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +commit a3ebe14558f49f3d3a6b564baaa00f5c5f135012 +Author: Alberto Garcia +Date: Mon Feb 22 21:23:22 2010 +0000 + + Change section from 'misc' to 'graphics' + + debian/control | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 8cf693c70c21db78f3e1384506046d86363309da +Author: Alberto Garcia +Date: Mon Feb 22 21:14:59 2010 +0000 + + Remove trailing whitespace from debian/control + + debian/control | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +commit 6fbf36e6a14a6f5fb46b956be75e3250d3da9387 +Author: Alberto Garcia +Date: Mon Feb 22 21:14:40 2010 +0000 + + Move 'Homepage' field to the source paragraph + + debian/control | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit fbfed52b89d7f5765d71c57547aae9ab14a3c686 +Author: Alberto Garcia +Date: Mon Feb 22 21:13:39 2010 +0000 + + Add maintainer e-mail address + + debian/control | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 1ba8e4d669736388436e86561ee3e183cbe54961 +Author: Alberto Garcia +Date: Mon Feb 22 21:12:41 2010 +0000 + + Fix ocr.svg permissions + + 0 files changed, 0 insertions(+), 0 deletions(-) + +commit a47b8341b4cbec959407b1287275026e30cf5d86 +Author: Alberto Garcia +Date: Mon Feb 22 20:42:33 2010 +0000 + + Add python-setuptools to Build-Depends + + debian/control | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 78fdd807dbd035e04cd0a8bf9e357bd7cb8723c1 +Author: Joaquim Rocha +Date: Fri Jan 22 18:45:21 2010 +0100 + + Update for release 0.6 + + Makefile | 2 +- + NEWS | 24 ++++++++++++++++++++++++ + debian/changelog | 6 ++++++ + util/constants.py | 2 +- + 4 files changed, 32 insertions(+), 2 deletions(-) + +commit 840418a2a4a7d877ee3bd759b5c1be7ac680c0cb +Author: Joaquim Rocha +Date: Fri Jan 22 18:42:06 2010 +0100 + + Lowered the package name font case + + setup.py | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 00c992082cb29014be8feaccb0b759bcbb475519 +Author: Joaquim Rocha +Date: Fri Jan 22 18:13:01 2010 +0100 + + Updated copyright notice on the about dialog + + util/constants.py | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +commit 58741a8d07ae6c154d4abc3ee011883c8f54edfa +Author: Joaquim Rocha +Date: Fri Jan 22 17:15:58 2010 +0100 + + Removed unneeded engines folder + + MANIFEST.in | 1 - + engines/gocr.xml | 6 ------ + engines/ocrad.xml | 6 ------ + engines/tesseract.xml | 7 ------- + 4 files changed, 0 insertions(+), 20 deletions(-) + +commit d8d4924b8f09eae44e4b5d755343fadbb937cb56 +Author: Joaquim Rocha +Date: Fri Jan 22 17:12:17 2010 +0100 + + Removed unused code + + feeder/documentGeneration.py | 24 ----------- + util/graphics.py | 95 ------------------------------------------ + 2 files changed, 0 insertions(+), 119 deletions(-) + +commit 9209bc18e1362950ced2829e1de4645d5a38458a +Author: Joaquim Rocha +Date: Fri Jan 22 16:51:46 2010 +0100 + + Removed Studio from the application name. + + util/constants.py | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 51d1777b5e157641c2a087bfe1892d78d9fb432b +Author: Joaquim Rocha +Date: Fri Jan 22 16:47:51 2010 +0100 + + Added the Swedish translation. Thanks to Daniel Nylander + + TRANSLATORS | 3 + + locale/sv/LC_MESSAGES/ocrfeeder.mo | Bin 0 -> 8007 bytes + po/sv.po | 619 ++++++++++++++++++++++++++++++++++++ + util/constants.py | 3 +- + 4 files changed, 624 insertions(+), 1 deletions(-) + +commit a658953d4b5929927704a53a5a1e8e04d472e97a +Author: Joaquim Rocha +Date: Fri Jan 22 16:24:24 2010 +0100 + + Hide import pdf and unpaper menus if the respective commands are not available + + studio/widgetPresenter.py | 8 ++++++++ + util/constants.py | 3 +++ + 2 files changed, 11 insertions(+), 0 deletions(-) + +commit c1ef4be13199b7c3682f3214f0333d79345df1b8 +Author: Joaquim Rocha +Date: Fri Jan 22 15:30:01 2010 +0100 + + Added missing dependencies to debian/control (gc#5) + + debian/control | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit a5a7a19f2ce6e1b39be423e8f1aa7de0ea1d344b +Author: Joaquim Rocha +Date: Thu Jan 21 20:15:22 2010 +0100 + + Added ocrfeeder.doap file + + ocrfeeder.doap | 19 +++++++++++++++++++ + 1 files changed, 19 insertions(+), 0 deletions(-) + +commit 166b345a5da3d0f8371d70d92d8373e6e6e36427 +Author: Joaquim Rocha +Date: Thu Jan 21 19:01:11 2010 +0100 + + Corrected wrong prints and engine usage from command line interface. + + ocrfeeder-cli | 6 +++--- + 1 files changed, 3 insertions(+), 3 deletions(-) + +commit 60cd3ef16a743d0b4eedce0d05c97d3837081acf +Author: Joaquim Rocha +Date: Fri Jan 15 18:04:38 2010 +0100 + + OCR engines manager dialog now selects the first item as it opens + + studio/widgetPresenter.py | 4 ++++ + 1 files changed, 4 insertions(+), 0 deletions(-) + +commit 349ed3e55a934118ed508f2ca2aae675cfbb206d +Author: Joaquim Rocha +Date: Wed Dec 23 23:14:07 2009 +0000 + + Update for release 0.5 + + MANIFEST.in | 3 ++- + Makefile | 2 +- + NEWS | 29 +++++++++++++++++++++++++++++ + debian/changelog | 6 ++++++ + resources/ocrfeeder.desktop | 2 +- + 5 files changed, 39 insertions(+), 3 deletions(-) + +commit ffa9a69b39a4e6260c8b9f23c49a395781cda77a +Author: Joaquim Rocha +Date: Wed Dec 23 21:07:39 2009 +0000 + + Added the Simplified Chinese translation. Thanks to 刘洪德 (Hongde Liu) + + TRANSLATORS | 5 +- + locale/zh_CN/LC_MESSAGES/ocrfeeder.mo | Bin 0 -> 7723 bytes + po/zh_CN.po | 625 +++++++++++++++++++++++++++++++++ + util/constants.py | 3 +- + 4 files changed, 631 insertions(+), 2 deletions(-) + +commit a4884443e034bce13e5a1251a09b118853466752 +Author: Joaquim Rocha +Date: Wed Dec 23 20:52:49 2009 +0000 + + Updated the .pot file + + po/ocrfeeder.pot | 6 +----- + 1 files changed, 1 insertions(+), 5 deletions(-) + +commit a71a128e4d1f04695fa416f0edf4051f3e7760a0 +Author: Joaquim Rocha +Date: Wed Dec 23 20:24:49 2009 +0000 + + Added compilemessages and generatepot command to Makefile. + + Makefile | 22 ++++++++++++++++++++++ + 1 files changed, 22 insertions(+), 0 deletions(-) + +commit 1a75b902457961cbaa476baa8905207ed57b345a +Author: Joaquim Rocha +Date: Fri Dec 18 15:35:39 2009 +0100 + + Lowered the images' border to 5 pixels + + studio/customWidgets.py | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 962e631ce07346f8b52556a7698e432df66f2a66 +Author: Joaquim Rocha +Date: Fri Dec 18 13:36:05 2009 +0100 + + Corrected boxes allowed limits when dragging + + studio/customWidgets.py | 14 ++++++++++++-- + 1 files changed, 12 insertions(+), 2 deletions(-) + +commit 4282915f4c90299368235d68e6084dde60447e39 +Author: Joaquim Rocha +Date: Fri Dec 18 13:06:11 2009 +0100 + + Detects Tesseract, Ocrad and GOCR from the system when no engines are configured + + studio/configuration.py | 45 +++++++++++++++++++++++++++++++++++++-------- + util/lib.py | 13 ++++++++++++- + 2 files changed, 49 insertions(+), 9 deletions(-) + +commit e1f12893e9edb14ca54c6d510a0fb19ffd4cb1e5 +Author: Joaquim Rocha +Date: Fri Dec 18 13:05:19 2009 +0100 + + Replaced usage of minidom by ElementTree and introduced saveToXml function to Engine + + feeder/ocrEngines.py | 43 ++++++++++++++++++++++--------------------- + 1 files changed, 22 insertions(+), 21 deletions(-) + +commit f0a64acfd52ef71db55ba8de9a01d5a4ad4e0653 +Author: Joaquim Rocha +Date: Fri Dec 11 17:32:07 2009 +0100 + + Added verifications to prevent failure when engines' files don't exist + + studio/configuration.py | 5 +++-- + studio/widgetModeler.py | 2 +- + 2 files changed, 4 insertions(+), 3 deletions(-) + +commit b30b28ec37e5a1a1595b6df8d08c762fc2f7f757 +Author: Joaquim Rocha +Date: Fri Nov 6 13:47:14 2009 +0100 + + Corrected Philippe Normand's name + + NEWS | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 9d173c2a665992452d97ccf970a046e399fc2898 +Author: Joaquim Rocha +Date: Fri Nov 6 12:36:33 2009 +0100 + + Released version 0.4 + + MANIFEST.in | 4 ++-- + Makefile | 2 +- + NEWS | 38 ++++++++++++++++++++++++++++++++++++++ + debian/changelog | 6 ++++++ + resources/ocrfeeder.desktop | 2 +- + util/constants.py | 2 +- + 6 files changed, 49 insertions(+), 5 deletions(-) + +commit 2088a14be7f1002a3fdd3b370a1ebc861f2aebff +Author: Joaquim Rocha +Date: Fri Nov 6 12:20:17 2009 +0100 + + Added the Spanish translation (thanks to Andrés Gómez). + + TRANSLATORS | 3 + + locale/es/LC_MESSAGES/ocrfeeder.mo | Bin 0 -> 8264 bytes + po/es.po | 607 ++++++++++++++++++++++++++++++++++++ + util/constants.py | 1 + + 4 files changed, 611 insertions(+), 0 deletions(-) + +commit 7fb72cc7fe7bf1eb314f6d5624fb51e0379b36a5 +Author: Joaquim Rocha +Date: Sat Oct 31 21:41:25 2009 +0100 + + Added Tesseract engine's configuration file example + + engines/tesseract.xml | 7 +++++++ + 1 files changed, 7 insertions(+), 0 deletions(-) + +commit 28d77d4d6d8dfe6da9885d1e38938b832630f8a7 +Author: Joaquim Rocha +Date: Sat Oct 31 21:32:31 2009 +0100 + + Corrected bug: the application was always installing the resources directory in the current (development) directory + + setup.py | 9 +++++---- + util/constants.py | 20 ++++++++++---------- + 2 files changed, 15 insertions(+), 14 deletions(-) + +commit b31159f2a4d78576033e4b31e9ab0fe8cd013fd7 +Author: Joaquim Rocha +Date: Sat Oct 31 21:00:33 2009 +0100 + + Updated the TRANSLATORS file + + TRANSLATORS | 6 ++++++ + 1 files changed, 6 insertions(+), 0 deletions(-) + +commit eee27497fe9ba88bab06fc85686729f572a963df +Author: Joaquim Rocha +Date: Sat Oct 31 20:51:10 2009 +0100 + + Added the Galician translation (thanks to Calvaris) + + locale/gl/LC_MESSAGES/ocrfeeder.mo | Bin 0 -> 8099 bytes + po/gl.po | 596 ++++++++++++++++++++++++++++++++++++ + util/constants.py | 1 + + 3 files changed, 597 insertions(+), 0 deletions(-) + +commit aded95f0af5cd40806d9eb53ef6ef9e368a8db8c +Author: Joaquim Rocha +Date: Sat Oct 31 20:30:13 2009 +0100 + + Added French translation (thanks to Philippe Normand) + + locale/fr/LC_MESSAGES/ocrfeeder.mo | Bin 0 -> 8302 bytes + po/fr.po | 620 ++++++++++++++++++++++++++++++++++++ + util/constants.py | 4 +- + 3 files changed, 623 insertions(+), 1 deletions(-) + +commit ba1512894158c41b162117e4365a6fcceac0ad1e +Author: Joaquim Rocha +Date: Sat Oct 31 19:49:43 2009 +0100 + + Fixed the about dialog's comments translation + + studio/widgetPresenter.py | 2 +- + util/constants.py | 4 +--- + 2 files changed, 2 insertions(+), 4 deletions(-) + +commit 0b988c31001ebd9b5a943db8c82649f6e14531d8 +Author: Joaquim Rocha +Date: Fri Oct 30 16:40:45 2009 +0100 + + Added translators to the About dialog + + util/constants.py | 4 +++- + 1 files changed, 3 insertions(+), 1 deletions(-) + +commit 09998f3b1bd1bcd67667f03268c8e9c18e157e30 +Author: Joaquim Rocha +Date: Fri Oct 30 16:38:27 2009 +0100 + + Added the TRANSLATORS file + + TRANSLATORS | 8 ++++++++ + 1 files changed, 8 insertions(+), 0 deletions(-) + +commit a5d022520d7ab802ef3a6ca69a93c48b8f105cdf +Author: Joaquim Rocha +Date: Fri Oct 30 16:35:33 2009 +0100 + + Added the Italian translation (thank you Andrea Grandi) + + locale/it/LC_MESSAGES/ocrfeeder.mo | Bin 0 -> 8249 bytes + po/it.po | 608 ++++++++++++++++++++++++++++++++++++ + 2 files changed, 608 insertions(+), 0 deletions(-) + +commit 7b8fa21ed663fdfdc7fad4082328176a377e9ab5 +Author: Joaquim Rocha +Date: Fri Oct 30 16:33:59 2009 +0100 + + Added pot file + + po/ocrfeeder.pot | 601 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 files changed, 601 insertions(+), 0 deletions(-) + +commit 11881b60937295133d7b51b15857d5c0f431b51f +Author: Joaquim Rocha +Date: Fri Oct 30 16:28:59 2009 +0100 + + Corrected error in locale files gathering + + setup.py | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit e0d67dcf4c616ea479ae7c816670ed6e0f1f6d81 +Author: Joaquim Rocha +Date: Fri Oct 30 15:55:14 2009 +0100 + + Renamed variables for a better reading + + util/constants.py | 9 ++++----- + 1 files changed, 4 insertions(+), 5 deletions(-) + +commit 4ed4cbb70bcaa779a8ee3c15dfa43731c0e2b3ee +Author: P. Christeas +Date: Thu Oct 29 20:32:35 2009 +0200 + + Replace eval() by a dict. + + feeder/ocrEngines.py | 6 +++--- + 1 files changed, 3 insertions(+), 3 deletions(-) + +commit 0ce7d345f70bc1c0d0bfbfeaaaa5f6b4cf2e72ff +Author: P. Christeas +Date: Thu Oct 29 20:31:29 2009 +0200 + + If one engine fails, continue. + + feeder/ocrEngines.py | 7 ++++++- + 1 files changed, 6 insertions(+), 1 deletions(-) + +commit 19c3b01ab7a22738b99425ed1c077a4ec5dc799d +Author: P. Christeas +Date: Thu Oct 29 20:29:02 2009 +0200 + + Find resources for a development setup, too. + + this enables the launch of ocrfeeder directly from the source dir. + + util/constants.py | 9 +++++++++ + 1 files changed, 9 insertions(+), 0 deletions(-) + +commit edb4ea92bc2332d636e1a45731946f99cd4f55ef +Author: Joaquim Rocha +Date: Fri Oct 23 22:54:28 2009 +0200 + + 2009-10-23 Joaquim Rocha + + * Corrected the description according to lintian advices. + + debian/control | 8 ++++---- + 1 files changed, 4 insertions(+), 4 deletions(-) + +commit aab817316bf1314aba7fdd0cd195377599b30fa0 +Author: Joaquim Rocha +Date: Fri Oct 23 22:39:44 2009 +0200 + + 2009-10-23 Joaquim Rocha + + * Added debian directory and resources to generate a deb package. + + Makefile | 35 +++++++++++++++++++++++++++++++++++ + debian/changelog | 5 +++++ + debian/compat | 1 + + debian/control | 17 +++++++++++++++++ + debian/copyright | 25 +++++++++++++++++++++++++ + debian/rules | 11 +++++++++++ + 6 files changed, 94 insertions(+), 0 deletions(-) + +commit 3da5649ee41cd2499051e68169c3e4a813fd300d +Author: Joaquim Rocha +Date: Fri Oct 23 16:54:11 2009 +0200 + + 2009-10-23 Joaquim Rocha + + * Added a frame to the page for better visualization. + + studio/customWidgets.py | 30 ++++++++++++++++++++++++++++-- + 1 files changed, 28 insertions(+), 2 deletions(-) + +commit d2dd3afd9d669fc9f36037238f3a26c62136d5eb +Author: Joaquim Rocha +Date: Fri Oct 23 15:55:42 2009 +0200 + + 2009-10-23 Joaquim Rocha + + * Set the canvas background color equal to the system + background (normal state) color. + + studio/customWidgets.py | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +commit 76c487d4bfe9f52aee3616f315f31ad29581248b +Author: Joaquim Rocha +Date: Fri Oct 16 20:27:07 2009 +0200 + + 2009-10-16 Joaquim Rocha + + * NEWS: Created the NEWS file to hold the versions' news. + + NEWS | 36 ++++++++++++++++++++++++++++++++++++ + 1 files changed, 36 insertions(+), 0 deletions(-) + +commit ef6378c2f78458e9e1c55b114203ef64762a3952 +Author: Joaquim Rocha +Date: Fri Oct 16 21:03:23 2009 +0200 + + 2009-10-16 Joaquim Rocha + + * Added the German translation (thanks to Renard Voß) + + locale/de/LC_MESSAGES/ocrfeeder.mo | Bin 0 -> 8163 bytes + po/de.po | 616 ++++++++++++++++++++++++++++++++++++ + 2 files changed, 616 insertions(+), 0 deletions(-) + +commit 186428fda5beaf638ab82e2052800df315033e3a +Author: Joaquim Rocha +Date: Fri Oct 16 19:59:07 2009 +0200 + + 2009-10-16 Joaquim Rocha + + * Updated the version to 0.3 + + README | 2 +- + resources/ocrfeeder.desktop | 2 +- + util/constants.py | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +commit c6e26863f2c479871503f9eade8188b2fa62ca8f +Author: Joaquim Rocha +Date: Fri Oct 16 18:37:51 2009 +0200 + + 2009-10-16 Joaquim Rocha + + * README: Updated the installation section to include the + instructions on how to use the setup.py script. + + README | 14 ++++++++++++-- + 1 files changed, 12 insertions(+), 2 deletions(-) + +commit 1b8f62eea0bdc6347a3709e6c5e1bec2de4be896 +Author: Joaquim Rocha +Date: Fri Oct 16 19:54:48 2009 +0200 + + 2009-10-15 Joaquim Rocha + + * setup.py: Updated the setup file to include the desktop and the + application's icon. + + setup.py | 6 +++++- + 1 files changed, 5 insertions(+), 1 deletions(-) + +commit 9587758a5245a81bf19f2451a9817558424415a0 +Author: Joaquim Rocha +Date: Fri Oct 16 19:52:56 2009 +0200 + + 2009-10-16 Joaquim Rocha + + * resources/ocrfeeder.desktop: Created the desktop file. + + resources/ocrfeeder.desktop | 10 ++++++++++ + 1 files changed, 10 insertions(+), 0 deletions(-) + +commit 42193d50c3d05acc0be4035ba23a232f8f28b784 +Author: Joaquim Rocha +Date: Fri Oct 16 19:51:54 2009 +0200 + + 2009-10-16 Joaquim Rocha + + * ocrfeeder.svg: Created the application's icon. + + resources/icons/ocrfeeder.svg | 558 +++++++++++++++++++++++++++++++++++++++++ + 1 files changed, 558 insertions(+), 0 deletions(-) + +commit 36c84bc92d9ca816fc101beeca5c45e18f38239c +Author: Joaquim Rocha +Date: Mon Oct 5 21:44:42 2009 +0200 + + 2009-10-05 Joaquim Rocha + + * studio/widgetPresenter.py: Added more actions that are dependent + on the existence of images. + + studio/widgetPresenter.py | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +commit 02e373c04ba94c03cda6a394ff1905fda07bb888 +Author: joaquimrocha1 +Date: Thu Oct 1 16:48:18 2009 +0000 + + Fixed project being cleared whether a new project is successfully loaded or not + + git-svn-id: https://ocrfeeder.googlecode.com/svn/trunk@23 bc369b68-a12e-11dd-8697-036594075916 + + studio/studioBuilder.py | 9 ++++----- + studio/widgetModeler.py | 8 +++++--- + 2 files changed, 9 insertions(+), 8 deletions(-) + +commit 9c4d74d47a22ff3a8a7f0b0dba2c3a11c105313c +Author: joaquimrocha1 +Date: Tue Sep 29 11:27:16 2009 +0000 + + Aligned label to the left on the OCRSettingsDialog + + git-svn-id: https://ocrfeeder.googlecode.com/svn/trunk@22 bc369b68-a12e-11dd-8697-036594075916 + + studio/widgetPresenter.py | 4 +++- + 1 files changed, 3 insertions(+), 1 deletions(-) + +commit 876b36c083610b5fea4f919a0bdbb436ca98b92d +Author: joaquimrocha1 +Date: Fri Sep 25 14:57:02 2009 +0000 + + Corrected duplicated code + + git-svn-id: https://ocrfeeder.googlecode.com/svn/trunk@21 bc369b68-a12e-11dd-8697-036594075916 + + studio/widgetModeler.py | 11 ++--------- + 1 files changed, 2 insertions(+), 9 deletions(-) + +commit 9238deb34ebc11fb8f745d7e65c87d9e4aef64b0 +Author: joaquimrocha1 +Date: Fri Aug 28 09:36:35 2009 +0000 + + Corrected engine name access + + git-svn-id: https://ocrfeeder.googlecode.com/svn/trunk@20 bc369b68-a12e-11dd-8697-036594075916 + + studio/widgetPresenter.py | 8 ++++---- + 1 files changed, 4 insertions(+), 4 deletions(-) + +commit b3ef449f6486a2c08db3af72e0d3e65e7292819a +Author: joaquimrocha1 +Date: Sun Aug 16 17:37:44 2009 +0000 + + Corrected usage of OCR engines list + + git-svn-id: https://ocrfeeder.googlecode.com/svn/trunk@19 bc369b68-a12e-11dd-8697-036594075916 + + studio/widgetModeler.py | 6 +++--- + 1 files changed, 3 insertions(+), 3 deletions(-) + +commit bba025b375964effd7a6a36900b75ee4ddfeeaab +Author: joaquimrocha1 +Date: Sun Aug 16 17:28:27 2009 +0000 + + Fixed issues on OCR engines manager + + git-svn-id: https://ocrfeeder.googlecode.com/svn/trunk@18 bc369b68-a12e-11dd-8697-036594075916 + + feeder/ocrEngines.py | 43 +++++++++++++++++++++++++++++-------------- + studio/widgetModeler.py | 6 ++---- + studio/widgetPresenter.py | 5 ++++- + 3 files changed, 35 insertions(+), 19 deletions(-) + +commit 279d89c41abe295008415cf41fffed1969096d17 +Author: joaquimrocha1 +Date: Sun Aug 16 16:03:58 2009 +0000 + + Converts image clips to grayscale before feeding to OCR engines + + git-svn-id: https://ocrfeeder.googlecode.com/svn/trunk@17 bc369b68-a12e-11dd-8697-036594075916 + + feeder/ocrEngines.py | 10 +++++++--- + 1 files changed, 7 insertions(+), 3 deletions(-) + +commit 08eadd0a5bf5877b359797c2218757c495fe9b3f +Author: joaquimrocha1 +Date: Sat Jul 11 21:28:51 2009 +0000 + + Removed zoom shortcuts from the image and set them as actions\' accelerators + + git-svn-id: https://ocrfeeder.googlecode.com/svn/trunk@16 bc369b68-a12e-11dd-8697-036594075916 + + studio/customWidgets.py | 6 ------ + studio/widgetPresenter.py | 6 +++--- + 2 files changed, 3 insertions(+), 9 deletions(-) + +commit fd06520a7262022b7382fd5c53c992e9e296a416 +Author: joaquimrocha1 +Date: Sat Jul 11 21:28:33 2009 +0000 + + Created the zoom fit feature, set it to be run on the size-allocate + signal. + + git-svn-id: https://ocrfeeder.googlecode.com/svn/trunk@15 bc369b68-a12e-11dd-8697-036594075916 + + studio/customWidgets.py | 5 ++++- + studio/studioBuilder.py | 7 +++++-- + studio/widgetModeler.py | 24 ++++++++++++++++++++++++ + studio/widgetPresenter.py | 4 +++- + 4 files changed, 36 insertions(+), 4 deletions(-) + +commit fb0e3c17c396a28ffb9726081fa6c11d61eb9387 +Author: joaquimrocha1 +Date: Sun Jun 28 21:44:05 2009 +0000 + + Created setup.py script + + git-svn-id: https://ocrfeeder.googlecode.com/svn/trunk@14 bc369b68-a12e-11dd-8697-036594075916 + + MANIFEST.in | 6 ++++++ + setup.py | 32 ++++++++++++++++++++++++++++++++ + 2 files changed, 38 insertions(+), 0 deletions(-) + +commit c1785498ccf85f0dfa7d47bebe17f5b8956060ea +Author: joaquimrocha1 +Date: Sun Jun 28 20:45:26 2009 +0000 + + Updated license to the right version + + git-svn-id: https://ocrfeeder.googlecode.com/svn/trunk@13 bc369b68-a12e-11dd-8697-036594075916 + + util/constants.py | 9 +++++---- + 1 files changed, 5 insertions(+), 4 deletions(-) + +commit 65301715ad67bcd322fb3997b6fdc616adc79bbc +Author: joaquimrocha1 +Date: Sat Jun 13 15:02:48 2009 +0000 + + Corrected license name in README file. + + git-svn-id: https://ocrfeeder.googlecode.com/svn/trunk@12 bc369b68-a12e-11dd-8697-036594075916 + + README | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit b469ad8bba9449b7631b2730b7d1fd3a35bcc2f7 +Author: joaquimrocha1 +Date: Sat Jun 13 13:43:25 2009 +0000 + + Fixed error when getting LANGUAGE + + git-svn-id: https://ocrfeeder.googlecode.com/svn/trunk@11 bc369b68-a12e-11dd-8697-036594075916 + + util/constants.py | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +commit fb26b5f7b6e07452b2bbf5f940613b6e3b24c2bd +Author: joaquimrocha1 +Date: Sun May 10 16:27:57 2009 +0000 + + Updated README for first tarball release + + git-svn-id: https://ocrfeeder.googlecode.com/svn/trunk@10 bc369b68-a12e-11dd-8697-036594075916 + + README | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +commit 710e28f5a746d01c1b36f81b2b54265c44636b81 +Author: joaquimrocha1 +Date: Sun May 10 16:14:59 2009 +0000 + + Removed unused import + + git-svn-id: https://ocrfeeder.googlecode.com/svn/trunk@9 bc369b68-a12e-11dd-8697-036594075916 + + studio/widgetPresenter.py | 1 - + 1 files changed, 0 insertions(+), 1 deletions(-) + +commit da5630849019cda5e464b4cca36a8b38e5e0b332 +Author: joaquimrocha1 +Date: Sun May 10 16:05:53 2009 +0000 + + Fixes #4: OCRFeeder is asking for the all/current pages to export when there is only one page + + git-svn-id: https://ocrfeeder.googlecode.com/svn/trunk@8 bc369b68-a12e-11dd-8697-036594075916 + + studio/widgetModeler.py | 10 +++++++--- + 1 files changed, 7 insertions(+), 3 deletions(-) + +commit 2031915997d83b10bb8c3534d733cf8dca21d40f +Author: joaquimrocha1 +Date: Sun May 10 15:53:40 2009 +0000 + + Fixes #3: Images' temporary copies do not get deleted + + git-svn-id: https://ocrfeeder.googlecode.com/svn/trunk@7 bc369b68-a12e-11dd-8697-036594075916 + + feeder/documentGeneration.py | 7 +++++++ + 1 files changed, 7 insertions(+), 0 deletions(-) + +commit 8a364b137e97af60ab61d67537bcc02f96563b37 +Author: joaquimrocha1 +Date: Sun Mar 29 18:17:42 2009 +0000 + + Fixes #2: Frames were replaced by new frames with the style that GNOME HIG advises. + + git-svn-id: https://ocrfeeder.googlecode.com/svn/trunk@6 bc369b68-a12e-11dd-8697-036594075916 + + studio/customWidgets.py | 4 ++-- + studio/widgetPresenter.py | 41 ++++++++++++++++++++++------------------- + 2 files changed, 24 insertions(+), 21 deletions(-) + +commit 0aaed0a9481d2dc56c4287a7a5e7804d4fe8ab22 +Author: joaquimrocha1 +Date: Sun Mar 29 17:08:19 2009 +0000 + + Fixes #1: Added BoxEditor to a ScrolledWindow. + + git-svn-id: https://ocrfeeder.googlecode.com/svn/trunk@5 bc369b68-a12e-11dd-8697-036594075916 + + studio/widgetPresenter.py | 15 +++++++++------ + 1 files changed, 9 insertions(+), 6 deletions(-) + +commit 56d9518cec14dad194ae0ca04953f61feb1a75f7 +Author: joaquimrocha1 +Date: Thu Mar 19 00:37:24 2009 +0000 + + Solves character escaping problem + + git-svn-id: https://ocrfeeder.googlecode.com/svn/trunk@4 bc369b68-a12e-11dd-8697-036594075916 + + studio/configuration.py | 7 +++++++ + 1 files changed, 7 insertions(+), 0 deletions(-) + +commit 63ca22c6aae3fd2f94765eb9b37cb0a38aba9974 +Author: joaquimrocha1 +Date: Thu Mar 19 00:36:11 2009 +0000 + + Added missing module... + + git-svn-id: https://ocrfeeder.googlecode.com/svn/trunk@3 bc369b68-a12e-11dd-8697-036594075916 + + studio/configuration.py | 348 +++++++++++++ + studio/customWidgets.py | 313 ++++++++++++ + studio/dataHolder.py | 211 ++++++++ + studio/studioBuilder.py | 249 ++++++++++ + studio/widgetModeler.py | 772 +++++++++++++++++++++++++++++ + studio/widgetPresenter.py | 1212 +++++++++++++++++++++++++++++++++++++++++++++ + 6 files changed, 3105 insertions(+), 0 deletions(-) + +commit 0e334da79989f9e9e94edb4b9bdeff578063a3a1 +Author: joaquimrocha1 +Date: Tue Mar 17 23:37:18 2009 +0000 + + Initial commit. + + git-svn-id: https://ocrfeeder.googlecode.com/svn/trunk@2 bc369b68-a12e-11dd-8697-036594075916 + + COPYING | 676 +++ + README | 112 + + engines/gocr.xml | 6 + + engines/ocrad.xml | 6 + + feeder/documentGeneration.py | 348 ++ + feeder/imageManipulation.py | 135 + + feeder/layoutAnalysis.py | 372 ++ + feeder/ocrEngines.py | 165 + + locale/pt/LC_MESSAGES/ocrfeeder.mo | Bin 0 -> 8152 bytes + ocrfeeder | 27 + + ocrfeeder-cli | 100 + + odf/anim.py | 61 + + odf/attrconverters.py | 1441 +++++++ + odf/chart.py | 87 + + odf/config.py | 39 + + odf/dc.py | 72 + + odf/dr3d.py | 43 + + odf/draw.py | 182 + + odf/element.py | 249 ++ + odf/form.py | 115 + + odf/grammar.py | 8138 ++++++++++++++++++++++++++++++++++++ + odf/load.py | 125 + + odf/manifest.py | 53 + + odf/math.py | 30 + + odf/meta.py | 66 + + odf/namespaces.py | 81 + + odf/number.py | 104 + + odf/odf2xhtml.py | 1124 +++++ + odf/odfmanifest.py | 120 + + odf/office.py | 104 + + odf/ooostyles.py | 71 + + odf/opendocument.py | 357 ++ + odf/presentation.py | 85 + + odf/script.py | 30 + + odf/style.py | 147 + + odf/svg.py | 52 + + odf/table.py | 307 ++ + odf/text.py | 559 +++ + odf/thumbnail.py | 427 ++ + odf/userfield.py | 310 ++ + odf/xforms.py | 29 + + po/pt.po | 597 +++ + resources/icons/detect_icon.svg | 662 +++ + resources/icons/ocr.svg | 227 + + resources/icons/window_icon.png | Bin 0 -> 769 bytes + util/__init__.py | 24 + + util/cliutils.py | 62 + + util/constants.py | 73 + + util/graphics.py | 269 ++ + util/lib.py | 99 + + 50 files changed, 18568 insertions(+), 0 deletions(-) + +commit 1d5d290ae400f88a352bcc407c6ab54df32c675c +Author: (no author) <(no author)@bc369b68-a12e-11dd-8697-036594075916> +Date: Thu Oct 23 18:16:39 2008 +0000 + + Initial directory structure. + + git-svn-id: https://ocrfeeder.googlecode.com/svn/trunk@1 bc369b68-a12e-11dd-8697-036594075916 diff -Nru ocrfeeder-0.7.6/configure ocrfeeder-0.7.7/configure --- ocrfeeder-0.7.6/configure 2011-08-04 15:53:11.000000000 +0000 +++ ocrfeeder-0.7.7/configure 2011-12-10 13:08:14.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.68 for ocrfeeder 0.7.6. +# Generated by GNU Autoconf 2.68 for ocrfeeder 0.7.7. # # Report bugs to . # @@ -561,8 +561,8 @@ # Identity of this package. PACKAGE_NAME='ocrfeeder' PACKAGE_TARNAME='ocrfeeder' -PACKAGE_VERSION='0.7.6' -PACKAGE_STRING='ocrfeeder 0.7.6' +PACKAGE_VERSION='0.7.7' +PACKAGE_STRING='ocrfeeder 0.7.7' PACKAGE_BUGREPORT='https://bugzilla.gnome.org/enter_bug.cgi?product=ocrfeeder' PACKAGE_URL='' @@ -1320,7 +1320,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures ocrfeeder 0.7.6 to adapt to many kinds of systems. +\`configure' configures ocrfeeder 0.7.7 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1386,7 +1386,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of ocrfeeder 0.7.6:";; + short | recursive ) echo "Configuration of ocrfeeder 0.7.7:";; esac cat <<\_ACEOF @@ -1492,7 +1492,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -ocrfeeder configure 0.7.6 +ocrfeeder configure 0.7.7 generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. @@ -1861,7 +1861,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by ocrfeeder $as_me 0.7.6, which was +It was created by ocrfeeder $as_me 0.7.7, which was generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -2679,7 +2679,7 @@ # Define the identity of the package. PACKAGE='ocrfeeder' - VERSION='0.7.6' + VERSION='0.7.7' cat >>confdefs.h <<_ACEOF @@ -3141,6 +3141,32 @@ fi + if test -z $PYTHON; + then + PYTHON="python" + fi + PYTHON_NAME=`basename $PYTHON` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking $PYTHON_NAME module: reportlab" >&5 +$as_echo_n "checking $PYTHON_NAME module: reportlab... " >&6; } + $PYTHON -c "import reportlab" 2>/dev/null + if test $? -eq 0; + then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + eval HAVE_PYMOD_REPORTLAB=yes + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + eval HAVE_PYMOD_REPORTLAB=no + # + if test -n "needed" + then + as_fn_error $? "failed to find required module reportlab" "$LINENO" 5 + exit 1 + fi + fi + + GETTEXT_PACKAGE=ocrfeeder @@ -5110,6 +5136,10 @@ fi ;; + *-*-openbsd*) + CATOBJEXT=.mo + DATADIRNAME=share + ;; *) CATOBJEXT=.mo DATADIRNAME=lib @@ -5806,6 +5836,7 @@ + if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. @@ -6597,7 +6628,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by ocrfeeder $as_me 0.7.6, which was +This file was extended by ocrfeeder $as_me 0.7.7, which was generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -6654,7 +6685,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -ocrfeeder config.status 0.7.6 +ocrfeeder config.status 0.7.7 configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" diff -Nru ocrfeeder-0.7.6/configure.ac ocrfeeder-0.7.7/configure.ac --- ocrfeeder-0.7.6/configure.ac 2011-08-04 15:53:03.000000000 +0000 +++ ocrfeeder-0.7.7/configure.ac 2011-12-10 13:07:31.000000000 +0000 @@ -1,6 +1,6 @@ AC_PREREQ([2.63]) AC_INIT([ocrfeeder], - [0.7.6], + [0.7.7], [https://bugzilla.gnome.org/enter_bug.cgi?product=ocrfeeder], [ocrfeeder]) @@ -22,6 +22,7 @@ AX_PYTHON_MODULE([goocanvas],[needed]) AX_PYTHON_MODULE([enchant],[needed]) AX_PYTHON_MODULE([sane],[needed]) +AX_PYTHON_MODULE([reportlab],[needed]) dnl == i18n == GETTEXT_PACKAGE=ocrfeeder diff -Nru ocrfeeder-0.7.6/debian/changelog ocrfeeder-0.7.7/debian/changelog --- ocrfeeder-0.7.6/debian/changelog 2011-08-06 10:32:52.000000000 +0000 +++ ocrfeeder-0.7.7/debian/changelog 2011-12-11 09:59:16.000000000 +0000 @@ -1,3 +1,13 @@ +ocrfeeder (0.7.7-1) unstable; urgency=low + + * New upstream release (Closes: #646605). + * debian/watch: scan for .xz files, upstream no longer uses bz2. + * debian/copyright: rewrite using the machine-readable format. + * debian/control: add build dependency on python-reportlab. + * 03_missing-help-file.patch: upstream forgot to add this file. + + -- Alberto Garcia Sat, 10 Dec 2011 18:21:56 +0200 + ocrfeeder (0.7.6-1) unstable; urgency=low * New upstream release. diff -Nru ocrfeeder-0.7.6/debian/control ocrfeeder-0.7.7/debian/control --- ocrfeeder-0.7.6/debian/control 2011-08-06 10:32:52.000000000 +0000 +++ ocrfeeder-0.7.7/debian/control 2011-12-11 09:59:16.000000000 +0000 @@ -4,7 +4,7 @@ Maintainer: Python Applications Packaging Team Uploaders: W. Martin Borgert , Alberto Garcia DM-Upload-Allowed: yes -Build-Depends: debhelper (>= 7), python-all (>= 2.6.6-3~), intltool, python-gtk2-dev, gnome-doc-utils, python-imaging-sane, python-enchant, python-gtkspell, python-pygoocanvas +Build-Depends: debhelper (>= 7), python-all (>= 2.6.6-3~), intltool, python-gtk2-dev, gnome-doc-utils, python-imaging-sane, python-enchant, python-gtkspell, python-pygoocanvas, python-reportlab Standards-Version: 3.9.2 X-Python-Version: >= 2.5 Vcs-Svn: svn://svn.debian.org/svn/python-apps/packages/ocrfeeder/trunk/ diff -Nru ocrfeeder-0.7.6/debian/copyright ocrfeeder-0.7.7/debian/copyright --- ocrfeeder-0.7.6/debian/copyright 2011-08-06 10:32:52.000000000 +0000 +++ ocrfeeder-0.7.7/debian/copyright 2011-12-11 09:59:16.000000000 +0000 @@ -1,58 +1,51 @@ -This package was debianized by Alberto Garcia Gonzalez - on Tue, 30 Mar 2010 21:09:34 +0200 - -It was downloaded from http://ftp.gnome.org/pub/GNOME/sources/ocrfeeder/ - -Upstream Author: - - Joaquim Rocha - -Copyright: - - Copyright (C) 2008-2010 Joaquim Rocha - Copyright (C) 2009-2010 Igalia, S.L. - -OCRFeeder is licensed under the GNU General Public License v3: - - This package is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This package is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - On Debian systems, the complete text of the GNU General - Public License can be found in `/usr/share/common-licenses/GPL-3'. - -OCRFeeder also contains the ODFPy module, that is - - Copyright (C) 2006-2007 Søren Roug, European Environment Agency - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - On Debian systems, the complete text of the GNU General - Public License can be found in `/usr/share/common-licenses/LGPL-2.1'. - -The icon in src/ocrfeeder/odf/thumbnail.py is - - Copyright (C) 2008 ZwahlenDesign - - and is released under the GNU GPL, version 2 - - On Debian systems, the complete text of the GNU General - Public License can be found in `/usr/share/common-licenses/GPL-2'. - -The Debian packaging is Copyright (C) 2010, Alberto Garcia - and is licensed under the GPLv3, see -`/usr/share/common-licenses/GPL-3'. +Format: http://anonscm.debian.org/viewvc/dep/web/deps/dep5.mdwn?revision=202 +Upstream-Contact: Joaquim Rocha +Source: http://ftp.gnome.org/pub/GNOME/sources/ocrfeeder/ + +Files: * +Copyright: 2008-2011 Joaquim Rocha + 2009-2011 Igalia, S.L. +License: GPL-3+ + This package is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or (at + your option) any later version. + . + This package is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + . + On Debian systems, the complete text of the GNU General Public + License can be found in `/usr/share/common-licenses/GPL-3'. + +Files: src/ocrfeeder/odf/* +Copyright: 2006-2007 Søren Roug, European Environment Agency +License: LGPL-2.1+ + This library is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 2.1 of the + License, or (at your option) any later version. + . + This library is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + . + On Debian systems, the complete text of the GNU General Public + License can be found in `/usr/share/common-licenses/LGPL-2.1'. + +Files: src/ocrfeeder/odf/thumbnail.py +Copyright: 2008 ZwahlenDesign +License: GPL-2 + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License version 2, as + published by the Free Software Foundation. + . + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + . + On Debian systems the full text of the GNU General Public License 2 + can be found in the `/usr/share/common-licenses/GPL-2' file. diff -Nru ocrfeeder-0.7.6/debian/patches/03_missing-help-file.patch ocrfeeder-0.7.7/debian/patches/03_missing-help-file.patch --- ocrfeeder-0.7.6/debian/patches/03_missing-help-file.patch 1970-01-01 00:00:00.000000000 +0000 +++ ocrfeeder-0.7.7/debian/patches/03_missing-help-file.patch 2011-12-11 09:59:16.000000000 +0000 @@ -0,0 +1,29 @@ +Include legal.xml file. +Upstream forgot to add it to the dist tarball, but it's necessary in +order to read the user manual. +Index: ocrfeeder/help/C/legal.xml +=================================================================== +--- /dev/null ++++ ocrfeeder/help/C/legal.xml +@@ -0,0 +1,9 @@ ++ ++

This work is licensed under a ++Creative Commons ++Attribution-Share Alike 3.0 United States License.

++

As a special exception, the copyright holders give you permission to copy, ++modify, and distribute the example code contained in this document under the ++terms of your choosing, without restriction.

++
+Index: ocrfeeder/help/Makefile.in +=================================================================== +--- ocrfeeder.orig/help/Makefile.in ++++ ocrfeeder/help/Makefile.in +@@ -330,6 +330,7 @@ DOC_PAGES = \ + importingfromscanner.page \ + importingpdf.page \ + index.page \ ++ legal.xml \ + manualeditionandcorrection.page \ + ocrconfiguration.page \ + projects.page \ diff -Nru ocrfeeder-0.7.6/debian/patches/series ocrfeeder-0.7.7/debian/patches/series --- ocrfeeder-0.7.6/debian/patches/series 2011-08-06 10:32:52.000000000 +0000 +++ ocrfeeder-0.7.7/debian/patches/series 2011-12-11 09:59:16.000000000 +0000 @@ -1,2 +1,3 @@ 01_icon-path.patch 02_potfiles-quilt.patch +03_missing-help-file.patch diff -Nru ocrfeeder-0.7.6/debian/watch ocrfeeder-0.7.7/debian/watch --- ocrfeeder-0.7.6/debian/watch 2011-08-06 10:32:52.000000000 +0000 +++ ocrfeeder-0.7.7/debian/watch 2011-12-11 09:59:16.000000000 +0000 @@ -1,2 +1,2 @@ version=3 -http://ftp.gnome.org/pub/GNOME/sources/ocrfeeder/(\d\.\d)/ocrfeeder-(.*)\.tar\.bz2 +http://ftp.gnome.org/pub/GNOME/sources/ocrfeeder/(\d\.\d)/ocrfeeder-(.*)\.tar\.xz diff -Nru ocrfeeder-0.7.6/gnome-doc-utils.make ocrfeeder-0.7.7/gnome-doc-utils.make --- ocrfeeder-0.7.6/gnome-doc-utils.make 2011-07-21 11:13:42.000000000 +0000 +++ ocrfeeder-0.7.7/gnome-doc-utils.make 2011-12-10 13:08:13.000000000 +0000 @@ -138,7 +138,7 @@ _malrng ?= `$(PKG_CONFIG) --variable malrng gnome-doc-utils` _chunks ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl _credits ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl -_ids ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/ids.xsl +_ids ?= $(shell $(PKG_CONFIG) --variable xmldir gnome-doc-utils)/gnome/xslt/docbook/utils/ids.xsl if ENABLE_SK _ENABLE_SK = true @@ -361,7 +361,7 @@ ## @ _DOC_POT ## A pot file -_DOC_POT = $(if $(DOC_MODULE),$(DOC_MODULE).pot) +_DOC_POT = $(if $(DOC_MODULE),$(DOC_MODULE).pot,$(if $(DOC_ID),$(DOC_ID).pot)) .PHONY: pot pot: $(_DOC_POT) $(_DOC_POT): $(_DOC_C_DOCS_NOENT) diff -Nru ocrfeeder-0.7.6/help/Makefile.in ocrfeeder-0.7.7/help/Makefile.in --- ocrfeeder-0.7.6/help/Makefile.in 2011-08-04 15:53:10.000000000 +0000 +++ ocrfeeder-0.7.7/help/Makefile.in 2011-12-10 13:08:15.000000000 +0000 @@ -303,7 +303,7 @@ $(foreach fig,$(_DOC_C_FIGURES), $(foreach lc,C $(_DOC_REAL_LINGUAS), \ $(wildcard $(srcdir)/$(lc)/$(patsubst C/%,%,$(fig))) )) -_DOC_POT = $(if $(DOC_MODULE),$(DOC_MODULE).pot) +_DOC_POT = $(if $(DOC_MODULE),$(DOC_MODULE).pot,$(if $(DOC_ID),$(DOC_ID).pot)) ################################################################################ _DOC_HTML_ALL = $(if $(filter html HTML,$(_DOC_REAL_FORMATS)), \ @@ -602,7 +602,7 @@ _malrng ?= `$(PKG_CONFIG) --variable malrng gnome-doc-utils` _chunks ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl _credits ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl -_ids ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/ids.xsl +_ids ?= $(shell $(PKG_CONFIG) --variable xmldir gnome-doc-utils)/gnome/xslt/docbook/utils/ids.xsl @ENABLE_SK_TRUE@_skpkgdatadir ?= `scrollkeeper-config --pkgdatadir` @ENABLE_SK_TRUE@_sklocalstatedir ?= `scrollkeeper-config --pkglocalstatedir` @ENABLE_SK_TRUE@_skcontentslist ?= $(_skpkgdatadir)/Templates/C/scrollkeeper_cl.xml diff -Nru ocrfeeder-0.7.6/Makefile.am ocrfeeder-0.7.7/Makefile.am --- ocrfeeder-0.7.6/Makefile.am 2011-03-11 21:40:40.000000000 +0000 +++ ocrfeeder-0.7.7/Makefile.am 2011-12-09 08:31:42.000000000 +0000 @@ -1,3 +1,16 @@ ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} SUBDIRS = src resources po bin help + +dist-hook: + @if test -d "$(srcdir)/.git"; \ + then \ + echo Creating ChangeLog && \ + ( cd "$(top_srcdir)" && \ + $(top_srcdir)/missing --run git log --stat ) > ChangeLog.tmp \ + && mv -f ChangeLog.tmp $(top_distdir)/ChangeLog \ + || ( rm -f ChangeLog.tmp ; \ + echo Failed to generate ChangeLog >&2 ); \ + else \ + echo A git clone is required to generate a ChangeLog >&2; \ + fi diff -Nru ocrfeeder-0.7.6/Makefile.in ocrfeeder-0.7.7/Makefile.in --- ocrfeeder-0.7.6/Makefile.in 2011-08-04 15:53:11.000000000 +0000 +++ ocrfeeder-0.7.7/Makefile.in 2011-12-10 13:08:15.000000000 +0000 @@ -470,6 +470,9 @@ || exit 1; \ fi; \ done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ @@ -690,19 +693,32 @@ .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-generic \ ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \ - dist-lzma dist-shar dist-tarZ dist-xz dist-zip distcheck \ - distclean distclean-generic distclean-tags distcleancheck \ - distdir distuninstallcheck dvi dvi-am html html-am info \ - info-am install install-am install-data install-data-am \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-html install-html-am install-info install-info-am \ - install-man install-pdf install-pdf-am install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs installdirs-am maintainer-clean \ + dist-hook dist-lzma dist-shar dist-tarZ dist-xz dist-zip \ + distcheck distclean distclean-generic distclean-tags \ + distcleancheck distdir distuninstallcheck dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags tags-recursive uninstall uninstall-am +dist-hook: + @if test -d "$(srcdir)/.git"; \ + then \ + echo Creating ChangeLog && \ + ( cd "$(top_srcdir)" && \ + $(top_srcdir)/missing --run git log --stat ) > ChangeLog.tmp \ + && mv -f ChangeLog.tmp $(top_distdir)/ChangeLog \ + || ( rm -f ChangeLog.tmp ; \ + echo Failed to generate ChangeLog >&2 ); \ + else \ + echo A git clone is required to generate a ChangeLog >&2; \ + fi + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff -Nru ocrfeeder-0.7.6/NEWS ocrfeeder-0.7.7/NEWS --- ocrfeeder-0.7.6/NEWS 2011-08-04 15:52:26.000000000 +0000 +++ ocrfeeder-0.7.7/NEWS 2011-12-10 13:07:31.000000000 +0000 @@ -1,3 +1,42 @@ +Version 0.7.7 +============= + +Bug Fixes +---------- + +* Fix memory usage (use a limited number of ImageReviewer instances, + among other changes that save memory) +* Fix single recognition of a content area +* Import the Image module from PIL to avoid issues +* Fix the sys path for the CLI +* Reset the mouse cursor (to be the normal one) when deleting areas +* Fix missing dependency check for reportlab (gb#656574) +* Remove libgnome dependency (thanks to György Balló) + +Improvements +------------- + +* Generate a ChangeLog file from git when running make dist + (thanks to Alberto Garcia) +* Miscellaneous code improvements (remove unused code; + reorganize some classes; use subclasses of GTK+ objects instead + of generic Python objects) +* Use a dedicated temporary folder and delete it afterwards +* Remove the temporary folder setting from the preferences dialog +* Create a temporary directory correctly for the PDF conversion +* Change the way the areas are removed to make it more secure + +New and Updated Translations +----------------------------- + +* Marek Černocký [cz] +* Joe Hansen [da] +* Mario Blättermann [de] +* Kristjan SCHMIDT [eo] +* Daniel Korostil [uk] +* Matej Urbančič [sl] + + Version 0.7.6 ============= diff -Nru ocrfeeder-0.7.6/po/cs.po ocrfeeder-0.7.7/po/cs.po --- ocrfeeder-0.7.6/po/cs.po 2011-05-16 20:49:03.000000000 +0000 +++ ocrfeeder-0.7.7/po/cs.po 2011-12-10 13:08:36.000000000 +0000 @@ -10,8 +10,8 @@ "Project-Id-Version: ocrfeeder master\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" "product=ocrfeeder&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2011-05-08 18:38+0000\n" -"PO-Revision-Date: 2011-05-15 22:07+0200\n" +"POT-Creation-Date: 2011-08-02 21:51+0000\n" +"PO-Revision-Date: 2011-08-09 20:41+0200\n" "Last-Translator: Marek Černocký \n" "Language-Team: Czech \n" "MIME-Version: 1.0\n" @@ -88,125 +88,146 @@ msgstr "ODT" #: ../src/ocrfeeder/studio/studioBuilder.py:63 +#: ../src/ocrfeeder/studio/studioBuilder.py:253 +msgid "PDF" +msgstr "PDF" + +#: ../src/ocrfeeder/studio/studioBuilder.py:64 msgid "Plain Text" msgstr "Prostý text" -#: ../src/ocrfeeder/studio/studioBuilder.py:185 +#: ../src/ocrfeeder/studio/studioBuilder.py:187 msgid "Images" msgstr "Obrázky" -#: ../src/ocrfeeder/studio/studioBuilder.py:197 +#: ../src/ocrfeeder/studio/studioBuilder.py:199 msgid "Obtaining scanners" msgstr "Zjišťují se skenery" -#: ../src/ocrfeeder/studio/studioBuilder.py:197 -#: ../src/ocrfeeder/studio/studioBuilder.py:223 -#: ../src/ocrfeeder/studio/studioBuilder.py:265 -#: ../src/ocrfeeder/studio/widgetModeler.py:457 -#: ../src/ocrfeeder/studio/widgetModeler.py:462 -#: ../src/ocrfeeder/studio/widgetModeler.py:514 -#: ../src/ocrfeeder/studio/widgetModeler.py:580 +#: ../src/ocrfeeder/studio/studioBuilder.py:199 +#: ../src/ocrfeeder/studio/studioBuilder.py:225 +#: ../src/ocrfeeder/studio/studioBuilder.py:267 +#: ../src/ocrfeeder/studio/widgetModeler.py:464 +#: ../src/ocrfeeder/studio/widgetModeler.py:469 +#: ../src/ocrfeeder/studio/widgetModeler.py:525 +#: ../src/ocrfeeder/studio/widgetModeler.py:591 msgid "Please wait…" msgstr "Čekejte prosím…" -#: ../src/ocrfeeder/studio/studioBuilder.py:223 +#: ../src/ocrfeeder/studio/studioBuilder.py:225 msgid "Scanning" msgstr "Skenuje se" -#: ../src/ocrfeeder/studio/studioBuilder.py:228 +#: ../src/ocrfeeder/studio/studioBuilder.py:230 msgid "No scanner devices were found" msgstr "Nenalezeno žádné skenovací zařízení" -#: ../src/ocrfeeder/studio/studioBuilder.py:229 -#: ../src/ocrfeeder/studio/studioBuilder.py:244 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1150 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1161 +#: ../src/ocrfeeder/studio/studioBuilder.py:231 +#: ../src/ocrfeeder/studio/studioBuilder.py:246 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1152 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1163 msgid "Error" msgstr "Chyba" -#: ../src/ocrfeeder/studio/studioBuilder.py:243 +#: ../src/ocrfeeder/studio/studioBuilder.py:245 msgid "Error scanning page" msgstr "Chyba při skenování stránky" -#: ../src/ocrfeeder/studio/studioBuilder.py:251 -msgid "PDF" -msgstr "PDF" - -#: ../src/ocrfeeder/studio/studioBuilder.py:265 +#: ../src/ocrfeeder/studio/studioBuilder.py:267 msgid "Loading PDF" msgstr "Načítá se PDF" -#: ../src/ocrfeeder/studio/studioBuilder.py:294 +#: ../src/ocrfeeder/studio/studioBuilder.py:298 +msgid "What kind of PDF document do you wish?" +msgstr "Jaký druh dokumentu PDF si přejete?" + +#: ../src/ocrfeeder/studio/studioBuilder.py:300 +msgid "From scratch" +msgstr "Od základů" + +#: ../src/ocrfeeder/studio/studioBuilder.py:302 +msgid "Creates a new PDF from scratch." +msgstr "Vytvořit od základů nový dokument PDF." + +#: ../src/ocrfeeder/studio/studioBuilder.py:304 +msgid "Searchable PDF" +msgstr "Prohledávatelné PDF" + +#: ../src/ocrfeeder/studio/studioBuilder.py:305 +msgid "Creates a PDF based on the images but with searchable text." +msgstr "Vytvořit dokument PDF složený z obrázků, ale s vyhledatelným textem." + +#: ../src/ocrfeeder/studio/studioBuilder.py:329 msgid "Export pages" msgstr "Export stránek" -#: ../src/ocrfeeder/studio/studioBuilder.py:311 +#: ../src/ocrfeeder/studio/studioBuilder.py:346 msgid "Are you sure you want to delete the current image?" msgstr "Opravdu chcete smazat současný obrázek?" -#: ../src/ocrfeeder/studio/studioBuilder.py:358 +#: ../src/ocrfeeder/studio/studioBuilder.py:393 msgid "Are you sure you want to clear the project?" msgstr "Opravdu chcete smazat současný projekt?" -#: ../src/ocrfeeder/studio/studioBuilder.py:415 +#: ../src/ocrfeeder/studio/studioBuilder.py:450 msgid "The project hasn't been saved." msgstr "Projekt nebyl uložen." -#: ../src/ocrfeeder/studio/studioBuilder.py:416 +#: ../src/ocrfeeder/studio/studioBuilder.py:451 msgid "Do you want to save it before closing?" msgstr "Chcete jej před zavřením uložit?" -#: ../src/ocrfeeder/studio/studioBuilder.py:417 +#: ../src/ocrfeeder/studio/studioBuilder.py:452 msgid "Close anyway" msgstr "Přesto zavřít" -#: ../src/ocrfeeder/studio/widgetModeler.py:126 -#: ../src/ocrfeeder/studio/widgetPresenter.py:134 +#: ../src/ocrfeeder/studio/widgetModeler.py:125 +#: ../src/ocrfeeder/studio/widgetPresenter.py:136 msgid "Pages" msgstr "Stránky" -#: ../src/ocrfeeder/studio/widgetModeler.py:140 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1708 +#: ../src/ocrfeeder/studio/widgetModeler.py:139 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1710 msgid "Delete" msgstr "Odstranit" -#: ../src/ocrfeeder/studio/widgetModeler.py:191 +#: ../src/ocrfeeder/studio/widgetModeler.py:190 msgid "Selectable areas" msgstr "Oblasti, které lze vybrat" -#: ../src/ocrfeeder/studio/widgetModeler.py:457 +#: ../src/ocrfeeder/studio/widgetModeler.py:464 msgid "Preparing image" msgstr "Připravuje se obraz" -#: ../src/ocrfeeder/studio/widgetModeler.py:459 +#: ../src/ocrfeeder/studio/widgetModeler.py:466 #, python-format msgid "Preparing image %(current_index)s/%(total)s" msgstr "Připravuje se obraz %(current_index)s/%(total)s" -#: ../src/ocrfeeder/studio/widgetModeler.py:514 +#: ../src/ocrfeeder/studio/widgetModeler.py:525 msgid "Deskewing image" msgstr "Odstraňují se deformace obrazu" -#: ../src/ocrfeeder/studio/widgetModeler.py:541 +#: ../src/ocrfeeder/studio/widgetModeler.py:552 msgid "No images added" msgstr "Nebyl přidán žádný obrázek" -#: ../src/ocrfeeder/studio/widgetModeler.py:544 +#: ../src/ocrfeeder/studio/widgetModeler.py:555 #, python-format msgid "Zoom: %s %%" msgstr "Přiblížení: %s %%" -#: ../src/ocrfeeder/studio/widgetModeler.py:546 +#: ../src/ocrfeeder/studio/widgetModeler.py:557 #, python-format msgid "Resolution: %.2f x %.2f" msgstr "Rozlišení: %.2f × %.2f" -#: ../src/ocrfeeder/studio/widgetModeler.py:548 +#: ../src/ocrfeeder/studio/widgetModeler.py:559 #, python-format msgid "Page size: %i x %i" msgstr "Velikost stránky: %i × %i" -#: ../src/ocrfeeder/studio/widgetModeler.py:562 +#: ../src/ocrfeeder/studio/widgetModeler.py:573 msgid "" "There are changes that may be overwritten by the new recognition.\n" "\n" @@ -216,37 +237,42 @@ "\n" "Chcete pokračovat?" -#: ../src/ocrfeeder/studio/widgetModeler.py:580 +#: ../src/ocrfeeder/studio/widgetModeler.py:591 msgid "Recognizing Page" msgstr "Rozpoznává se stránka" -#: ../src/ocrfeeder/studio/widgetModeler.py:597 +#: ../src/ocrfeeder/studio/widgetModeler.py:608 msgid "Recognizing Document" msgstr "Rozpoznává se dokument" -#: ../src/ocrfeeder/studio/widgetModeler.py:598 +#: ../src/ocrfeeder/studio/widgetModeler.py:609 #, python-format msgid "Recognizing page %(page_number)s/%(total_pages)s. Please wait…" msgstr "Rozpoznává se stránka %(page_number)s/%(total_pages)s. Čekejte prosím…" -#: ../src/ocrfeeder/studio/widgetModeler.py:666 +#: ../src/ocrfeeder/studio/widgetModeler.py:677 msgid "Export to HTML" msgstr "Export do HTML" -#: ../src/ocrfeeder/studio/widgetModeler.py:680 -#: ../src/ocrfeeder/studio/widgetPresenter.py:213 +#: ../src/ocrfeeder/studio/widgetModeler.py:691 +#: ../src/ocrfeeder/studio/widgetPresenter.py:215 msgid "Export to ODT" msgstr "Export do ODT" -#: ../src/ocrfeeder/studio/widgetModeler.py:691 +#: ../src/ocrfeeder/studio/widgetModeler.py:702 msgid "Export to Plain Text" msgstr "Export do prostého textu" -#: ../src/ocrfeeder/studio/widgetModeler.py:712 +#: ../src/ocrfeeder/studio/widgetModeler.py:713 +#| msgid "Export to ODT" +msgid "Export to PDF" +msgstr "Export do PDF" + +#: ../src/ocrfeeder/studio/widgetModeler.py:735 msgid "OCRFeeder Projects" msgstr "Projekty OCRFeeder" -#: ../src/ocrfeeder/studio/widgetModeler.py:770 +#: ../src/ocrfeeder/studio/widgetModeler.py:793 #, python-format msgid "" "A file named \"%(name)s\" already exists. Do you want to replace it?\n" @@ -257,684 +283,681 @@ "\n" "Soubor existuje v „%(dir)s“. Pokud jej nahradíte, přepíšete jeho obsah." -#: ../src/ocrfeeder/studio/widgetModeler.py:777 +#: ../src/ocrfeeder/studio/widgetModeler.py:800 msgid "Replace" msgstr "Nahradit" -#: ../src/ocrfeeder/studio/widgetPresenter.py:155 +#: ../src/ocrfeeder/studio/widgetPresenter.py:157 msgid "_File" msgstr "_Soubor" -#: ../src/ocrfeeder/studio/widgetPresenter.py:156 +#: ../src/ocrfeeder/studio/widgetPresenter.py:158 msgid "_Quit" msgstr "U_končit" -#: ../src/ocrfeeder/studio/widgetPresenter.py:156 +#: ../src/ocrfeeder/studio/widgetPresenter.py:158 msgid "Exit the program" msgstr "Ukončit program" -#: ../src/ocrfeeder/studio/widgetPresenter.py:157 +#: ../src/ocrfeeder/studio/widgetPresenter.py:159 msgid "_Open" msgstr "_Otevřít" -#: ../src/ocrfeeder/studio/widgetPresenter.py:157 +#: ../src/ocrfeeder/studio/widgetPresenter.py:159 msgid "Open project" msgstr "Otevřít projekt" -#: ../src/ocrfeeder/studio/widgetPresenter.py:158 +#: ../src/ocrfeeder/studio/widgetPresenter.py:160 msgid "_Save" msgstr "_Uložit" -#: ../src/ocrfeeder/studio/widgetPresenter.py:158 +#: ../src/ocrfeeder/studio/widgetPresenter.py:160 msgid "Save project" msgstr "Uložit projekt" -#: ../src/ocrfeeder/studio/widgetPresenter.py:159 +#: ../src/ocrfeeder/studio/widgetPresenter.py:161 msgid "_Save As…" msgstr "Uložit _jako…" -#: ../src/ocrfeeder/studio/widgetPresenter.py:159 +#: ../src/ocrfeeder/studio/widgetPresenter.py:161 msgid "Save project with a chosen name" msgstr "Uložit projekt pod zvoleným názvem" -#: ../src/ocrfeeder/studio/widgetPresenter.py:160 +#: ../src/ocrfeeder/studio/widgetPresenter.py:162 msgid "_Add Image" msgstr "Přid_at obrázek" -#: ../src/ocrfeeder/studio/widgetPresenter.py:160 +#: ../src/ocrfeeder/studio/widgetPresenter.py:162 msgid "Add another image" msgstr "Přidat další obrázek" -#: ../src/ocrfeeder/studio/widgetPresenter.py:161 +#: ../src/ocrfeeder/studio/widgetPresenter.py:163 msgid "Add _Folder" msgstr "Přidat s_ložku" -#: ../src/ocrfeeder/studio/widgetPresenter.py:161 +#: ../src/ocrfeeder/studio/widgetPresenter.py:163 msgid "Add all images in a folder" msgstr "Přidat všechny soubory ve složce" -#: ../src/ocrfeeder/studio/widgetPresenter.py:162 +#: ../src/ocrfeeder/studio/widgetPresenter.py:164 msgid "Append Project" msgstr "Připojit projekt" -#: ../src/ocrfeeder/studio/widgetPresenter.py:162 +#: ../src/ocrfeeder/studio/widgetPresenter.py:164 msgid "Load a project and append it to the current one" msgstr "Načíst projekt a přidat jej k současnému projektu" -#: ../src/ocrfeeder/studio/widgetPresenter.py:163 +#: ../src/ocrfeeder/studio/widgetPresenter.py:165 msgid "_Import PDF" msgstr "_Importovat PDF" -#: ../src/ocrfeeder/studio/widgetPresenter.py:163 +#: ../src/ocrfeeder/studio/widgetPresenter.py:165 msgid "Import PDF" msgstr "Importovat PDF" -#: ../src/ocrfeeder/studio/widgetPresenter.py:164 +#: ../src/ocrfeeder/studio/widgetPresenter.py:166 msgid "_Export…" msgstr "_Export…" -#: ../src/ocrfeeder/studio/widgetPresenter.py:164 +#: ../src/ocrfeeder/studio/widgetPresenter.py:166 msgid "Export to a chosen format" msgstr "Exportovat do zvoleného formátu" -#: ../src/ocrfeeder/studio/widgetPresenter.py:165 +#: ../src/ocrfeeder/studio/widgetPresenter.py:167 msgid "_Edit" msgstr "_Upravit" -#: ../src/ocrfeeder/studio/widgetPresenter.py:166 +#: ../src/ocrfeeder/studio/widgetPresenter.py:168 msgid "_Edit Page" msgstr "_Upravit stránku" -#: ../src/ocrfeeder/studio/widgetPresenter.py:166 +#: ../src/ocrfeeder/studio/widgetPresenter.py:168 msgid "Edit page settings" msgstr "Upravit nastavení stránky" -#: ../src/ocrfeeder/studio/widgetPresenter.py:167 +#: ../src/ocrfeeder/studio/widgetPresenter.py:169 msgid "_Preferences" msgstr "_Předvolby" -#: ../src/ocrfeeder/studio/widgetPresenter.py:167 +#: ../src/ocrfeeder/studio/widgetPresenter.py:169 msgid "Configure the application" msgstr "Nastavit aplikaci" -#: ../src/ocrfeeder/studio/widgetPresenter.py:168 +#: ../src/ocrfeeder/studio/widgetPresenter.py:170 msgid "_Delete Page" msgstr "O_dstranit stránku" -#: ../src/ocrfeeder/studio/widgetPresenter.py:168 +#: ../src/ocrfeeder/studio/widgetPresenter.py:170 msgid "Delete current page" msgstr "Smazat současnou stránku" -#: ../src/ocrfeeder/studio/widgetPresenter.py:169 +#: ../src/ocrfeeder/studio/widgetPresenter.py:171 msgid "_Clear Project" msgstr "_Vymazat projekt" -#: ../src/ocrfeeder/studio/widgetPresenter.py:169 +#: ../src/ocrfeeder/studio/widgetPresenter.py:171 msgid "Delete all images" msgstr "Vymazat všechny obrázky" -#: ../src/ocrfeeder/studio/widgetPresenter.py:170 +#: ../src/ocrfeeder/studio/widgetPresenter.py:172 msgid "_View" msgstr "_Zobrazit" -#: ../src/ocrfeeder/studio/widgetPresenter.py:171 +#: ../src/ocrfeeder/studio/widgetPresenter.py:173 msgid "Zoom In" msgstr "Přiblížit" -#: ../src/ocrfeeder/studio/widgetPresenter.py:172 +#: ../src/ocrfeeder/studio/widgetPresenter.py:174 msgid "Zoom Out" msgstr "Oddálit" -#: ../src/ocrfeeder/studio/widgetPresenter.py:173 +#: ../src/ocrfeeder/studio/widgetPresenter.py:175 msgid "Best Fit" msgstr "Nejvhodnější velikost" -#: ../src/ocrfeeder/studio/widgetPresenter.py:174 +#: ../src/ocrfeeder/studio/widgetPresenter.py:176 msgid "Normal Size" msgstr "Normální velikost" -#: ../src/ocrfeeder/studio/widgetPresenter.py:175 +#: ../src/ocrfeeder/studio/widgetPresenter.py:177 msgid "_Document" msgstr "_Dokument" -#: ../src/ocrfeeder/studio/widgetPresenter.py:176 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1376 +#: ../src/ocrfeeder/studio/widgetPresenter.py:178 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1378 msgid "_Tools" msgstr "Nás_troje" -#: ../src/ocrfeeder/studio/widgetPresenter.py:177 +#: ../src/ocrfeeder/studio/widgetPresenter.py:179 msgid "_OCR Engines" msgstr "Výkonné programy _OCR" -#: ../src/ocrfeeder/studio/widgetPresenter.py:177 +#: ../src/ocrfeeder/studio/widgetPresenter.py:179 msgid "Manage OCR engines" msgstr "Správa výkonných programů OCR" -#: ../src/ocrfeeder/studio/widgetPresenter.py:178 +#: ../src/ocrfeeder/studio/widgetPresenter.py:180 msgid "_Unpaper" msgstr "_Unpaper" -#: ../src/ocrfeeder/studio/widgetPresenter.py:178 +#: ../src/ocrfeeder/studio/widgetPresenter.py:180 msgid "Process image with unpaper" msgstr "Zpracovat obrázek programem Unpaper" -#: ../src/ocrfeeder/studio/widgetPresenter.py:179 +#: ../src/ocrfeeder/studio/widgetPresenter.py:181 msgid "Image Des_kewer" msgstr "Odstranění _deformace obrazu" -#: ../src/ocrfeeder/studio/widgetPresenter.py:180 +#: ../src/ocrfeeder/studio/widgetPresenter.py:182 msgid "Trie to straighten the image" msgstr "Zkusit obraz vyrovnat" -#: ../src/ocrfeeder/studio/widgetPresenter.py:182 -#: ../src/ocrfeeder/studio/widgetPresenter.py:183 +#: ../src/ocrfeeder/studio/widgetPresenter.py:184 +#: ../src/ocrfeeder/studio/widgetPresenter.py:185 msgid "_Help" msgstr "_Nápověda" -#: ../src/ocrfeeder/studio/widgetPresenter.py:183 +#: ../src/ocrfeeder/studio/widgetPresenter.py:185 msgid "Help contents" msgstr "Obsah nápovědy" -#: ../src/ocrfeeder/studio/widgetPresenter.py:184 +#: ../src/ocrfeeder/studio/widgetPresenter.py:186 msgid "_About" msgstr "O _aplikaci" -#: ../src/ocrfeeder/studio/widgetPresenter.py:184 +#: ../src/ocrfeeder/studio/widgetPresenter.py:186 msgid "About this application" msgstr "O této aplikaci" -#: ../src/ocrfeeder/studio/widgetPresenter.py:186 +#: ../src/ocrfeeder/studio/widgetPresenter.py:188 msgid "_Recognize Document" msgstr "_Rozpoznat dokument" -#: ../src/ocrfeeder/studio/widgetPresenter.py:187 +#: ../src/ocrfeeder/studio/widgetPresenter.py:189 msgid "Automatically detect and recognize all pages" msgstr "Automaticky zjistit a rozpoznat všechny stránky" -#: ../src/ocrfeeder/studio/widgetPresenter.py:190 -#| msgid "_Recognize Page" +#: ../src/ocrfeeder/studio/widgetPresenter.py:192 msgid "R_ecognize Page" msgstr "_Rozpoznat stránku" -#: ../src/ocrfeeder/studio/widgetPresenter.py:191 +#: ../src/ocrfeeder/studio/widgetPresenter.py:193 msgid "Automatically detect and recognize the current page" msgstr "Automaticky zjistit a rozpoznat aktuální stránku" -#: ../src/ocrfeeder/studio/widgetPresenter.py:194 -#| msgid "Recognize Selected Areas" +#: ../src/ocrfeeder/studio/widgetPresenter.py:196 msgid "Recognize _Selected Areas" msgstr "Rozpoznat _vybrané oblasti" -#: ../src/ocrfeeder/studio/widgetPresenter.py:195 +#: ../src/ocrfeeder/studio/widgetPresenter.py:197 msgid "Recognize Selected Areas" msgstr "Rozpoznat vybrané oblasti" -#: ../src/ocrfeeder/studio/widgetPresenter.py:198 -#| msgid "Select All _Areas" +#: ../src/ocrfeeder/studio/widgetPresenter.py:200 msgid "Select _All Areas" msgstr "Vybrat všechny obl_asti" -#: ../src/ocrfeeder/studio/widgetPresenter.py:199 +#: ../src/ocrfeeder/studio/widgetPresenter.py:201 msgid "Select all content areas" msgstr "Vybrat všechny oblasti s obsahem" -#: ../src/ocrfeeder/studio/widgetPresenter.py:202 +#: ../src/ocrfeeder/studio/widgetPresenter.py:204 msgid "Select _Previous Area" msgstr "Vybrat _předchozí oblast" -#: ../src/ocrfeeder/studio/widgetPresenter.py:203 +#: ../src/ocrfeeder/studio/widgetPresenter.py:205 msgid "Select the previous area from the content areas" msgstr "Vybrat předchozí oblast z oblastí s obsahem" -#: ../src/ocrfeeder/studio/widgetPresenter.py:206 +#: ../src/ocrfeeder/studio/widgetPresenter.py:208 msgid "Select _Next Area" msgstr "Vybrat _následující oblast" -#: ../src/ocrfeeder/studio/widgetPresenter.py:207 +#: ../src/ocrfeeder/studio/widgetPresenter.py:209 msgid "Select the next area from the content areas" msgstr "Vybrat následující oblast z oblastí s obsahem" -#: ../src/ocrfeeder/studio/widgetPresenter.py:210 +#: ../src/ocrfeeder/studio/widgetPresenter.py:212 msgid "Delete Selected Areas" msgstr "Vymazat vybrané oblasti" -#: ../src/ocrfeeder/studio/widgetPresenter.py:211 +#: ../src/ocrfeeder/studio/widgetPresenter.py:213 msgid "Deletes all the currently selected content areas" msgstr "Vymazat všechny právě vybrané oblasti s obsahem" -#: ../src/ocrfeeder/studio/widgetPresenter.py:213 +#: ../src/ocrfeeder/studio/widgetPresenter.py:215 msgid "_Generate ODT" msgstr "_Generovat ODT" -#: ../src/ocrfeeder/studio/widgetPresenter.py:215 +#: ../src/ocrfeeder/studio/widgetPresenter.py:217 msgid "Import Page From S_canner" msgstr "Importovat stránku ze s_keneru" -#: ../src/ocrfeeder/studio/widgetPresenter.py:217 +#: ../src/ocrfeeder/studio/widgetPresenter.py:219 msgid "Import From Scanner" msgstr "Importovat ze skeneru" -#: ../src/ocrfeeder/studio/widgetPresenter.py:220 +#: ../src/ocrfeeder/studio/widgetPresenter.py:222 msgid "_Copy to Clipboard" msgstr "_Kopírovat do schránky" -#: ../src/ocrfeeder/studio/widgetPresenter.py:222 +#: ../src/ocrfeeder/studio/widgetPresenter.py:224 msgid "Copy recognized text to clipboard" msgstr "Kopírovat rozpoznaný text do schránky" -#: ../src/ocrfeeder/studio/widgetPresenter.py:225 +#: ../src/ocrfeeder/studio/widgetPresenter.py:227 msgid "Spell_checker" msgstr "_Kontrola pravopisu" -#: ../src/ocrfeeder/studio/widgetPresenter.py:227 +#: ../src/ocrfeeder/studio/widgetPresenter.py:229 msgid "Spell Check Recognized Text" msgstr "Zkontrolovat pravopis rozpoznaného textu" -#: ../src/ocrfeeder/studio/widgetPresenter.py:301 +#: ../src/ocrfeeder/studio/widgetPresenter.py:303 msgid "Area editor" msgstr "Editor oblasti" -#: ../src/ocrfeeder/studio/widgetPresenter.py:309 +#: ../src/ocrfeeder/studio/widgetPresenter.py:311 msgid "Sets the content area's upper left corner's X coordinate" msgstr "Nastavuje souřadnici X levého horního rohu oblasti s obsahem" -#: ../src/ocrfeeder/studio/widgetPresenter.py:313 +#: ../src/ocrfeeder/studio/widgetPresenter.py:315 msgid "Sets the content area's upper left corner's Y coordinate" msgstr "Nastavuje souřadnici Y levého horního rohu oblasti s obsahem" -#: ../src/ocrfeeder/studio/widgetPresenter.py:317 +#: ../src/ocrfeeder/studio/widgetPresenter.py:319 msgid "Sets the content area's width" msgstr "Nastavuje šířku oblasti s obsahem" -#: ../src/ocrfeeder/studio/widgetPresenter.py:320 +#: ../src/ocrfeeder/studio/widgetPresenter.py:322 msgid "Sets the content area's height" msgstr "Nastavuje výšku oblasti s obsahem" -#: ../src/ocrfeeder/studio/widgetPresenter.py:323 -#: ../src/ocrfeeder/studio/widgetPresenter.py:539 +#: ../src/ocrfeeder/studio/widgetPresenter.py:325 +#: ../src/ocrfeeder/studio/widgetPresenter.py:541 msgid "_Text" msgstr "_Text" -#: ../src/ocrfeeder/studio/widgetPresenter.py:324 +#: ../src/ocrfeeder/studio/widgetPresenter.py:326 msgid "Set this content area to be the text type" msgstr "Nastavit tuto oblast s obsahem, aby byla typu text" -#: ../src/ocrfeeder/studio/widgetPresenter.py:325 +#: ../src/ocrfeeder/studio/widgetPresenter.py:327 msgid "_Image" msgstr "O_brázek" -#: ../src/ocrfeeder/studio/widgetPresenter.py:326 +#: ../src/ocrfeeder/studio/widgetPresenter.py:328 msgid "Set this content area to be the image type" msgstr "Nastavit tuto oblast s obsahem, aby byla typu obrázek" -#: ../src/ocrfeeder/studio/widgetPresenter.py:327 +#: ../src/ocrfeeder/studio/widgetPresenter.py:329 msgid "Type" msgstr "Typ" -#: ../src/ocrfeeder/studio/widgetPresenter.py:337 +#: ../src/ocrfeeder/studio/widgetPresenter.py:339 msgid "Clip" msgstr "Výřez" -#: ../src/ocrfeeder/studio/widgetPresenter.py:421 +#: ../src/ocrfeeder/studio/widgetPresenter.py:423 msgid "Bounds" msgstr "Meze" -#: ../src/ocrfeeder/studio/widgetPresenter.py:426 +#: ../src/ocrfeeder/studio/widgetPresenter.py:428 msgid "_X:" msgstr "_X:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:435 +#: ../src/ocrfeeder/studio/widgetPresenter.py:437 msgid "_Y:" msgstr "_Y:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:447 -#: ../src/ocrfeeder/studio/widgetPresenter.py:793 +#: ../src/ocrfeeder/studio/widgetPresenter.py:449 +#: ../src/ocrfeeder/studio/widgetPresenter.py:795 msgid "_Width:" msgstr "Šíř_ka:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:456 +#: ../src/ocrfeeder/studio/widgetPresenter.py:458 msgid "Hei_ght:" msgstr "Výšk_a:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:479 +#: ../src/ocrfeeder/studio/widgetPresenter.py:481 msgid "Left" msgstr "Vlevo" -#: ../src/ocrfeeder/studio/widgetPresenter.py:483 +#: ../src/ocrfeeder/studio/widgetPresenter.py:485 msgid "Set text to be left aligned" msgstr "Nastavit text, aby byl zarovnán doleva" -#: ../src/ocrfeeder/studio/widgetPresenter.py:485 +#: ../src/ocrfeeder/studio/widgetPresenter.py:487 msgid "Center" msgstr "Na střed" -#: ../src/ocrfeeder/studio/widgetPresenter.py:490 +#: ../src/ocrfeeder/studio/widgetPresenter.py:492 msgid "Set text to be centered" msgstr "Nastavit text, aby byl zarovnán na střed" -#: ../src/ocrfeeder/studio/widgetPresenter.py:492 +#: ../src/ocrfeeder/studio/widgetPresenter.py:494 msgid "Right" msgstr "Vpravo" -#: ../src/ocrfeeder/studio/widgetPresenter.py:497 +#: ../src/ocrfeeder/studio/widgetPresenter.py:499 msgid "Set text to be right aligned" msgstr "Nastavit text, aby byl zarovnán doprava" -#: ../src/ocrfeeder/studio/widgetPresenter.py:499 +#: ../src/ocrfeeder/studio/widgetPresenter.py:501 msgid "Fill" msgstr "Do bloku" -#: ../src/ocrfeeder/studio/widgetPresenter.py:504 +#: ../src/ocrfeeder/studio/widgetPresenter.py:506 msgid "Set text to be fill its area" msgstr "Nastavit text, aby byl zarovnán do bloku" -#: ../src/ocrfeeder/studio/widgetPresenter.py:510 +#: ../src/ocrfeeder/studio/widgetPresenter.py:512 msgid "OC_R" msgstr "OC_R" -#: ../src/ocrfeeder/studio/widgetPresenter.py:511 +#: ../src/ocrfeeder/studio/widgetPresenter.py:513 msgid "Perform OCR on this content area using the selected OCR engine." msgstr "" "Provést OCR na této oblasti s obsahem pomocí vybraného výkonného programu " "OCR." -#: ../src/ocrfeeder/studio/widgetPresenter.py:517 +#: ../src/ocrfeeder/studio/widgetPresenter.py:519 msgid "OCR engine to recognize this content area" msgstr "Výkonný program OCR pro rozpoznání této oblasti s obsahem" #. Text Properties -#: ../src/ocrfeeder/studio/widgetPresenter.py:525 +#: ../src/ocrfeeder/studio/widgetPresenter.py:527 msgid "Text Properties" msgstr "Vlastnosti textu" -#: ../src/ocrfeeder/studio/widgetPresenter.py:547 +#: ../src/ocrfeeder/studio/widgetPresenter.py:549 msgid "Font" msgstr "Písmo" -#: ../src/ocrfeeder/studio/widgetPresenter.py:554 +#: ../src/ocrfeeder/studio/widgetPresenter.py:556 msgid "Align" msgstr "Zarovnání" -#: ../src/ocrfeeder/studio/widgetPresenter.py:558 +#: ../src/ocrfeeder/studio/widgetPresenter.py:560 msgid "Spacing" msgstr "Rozestupy" -#: ../src/ocrfeeder/studio/widgetPresenter.py:560 +#: ../src/ocrfeeder/studio/widgetPresenter.py:562 msgid "Set the text's letter spacing" msgstr "Nastavit mezery mezi znaky textu" -#: ../src/ocrfeeder/studio/widgetPresenter.py:562 +#: ../src/ocrfeeder/studio/widgetPresenter.py:564 msgid "Set the text's line spacing" msgstr "Nastavit mezery mezi řádky textu" -#: ../src/ocrfeeder/studio/widgetPresenter.py:567 +#: ../src/ocrfeeder/studio/widgetPresenter.py:569 msgid "_Line:" msgstr "Řá_dek:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:578 +#: ../src/ocrfeeder/studio/widgetPresenter.py:580 msgid "L_etter:" msgstr "Písm_eno:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:590 +#: ../src/ocrfeeder/studio/widgetPresenter.py:592 msgid "Sty_le" msgstr "Sty_l" -#: ../src/ocrfeeder/studio/widgetPresenter.py:597 +#: ../src/ocrfeeder/studio/widgetPresenter.py:599 msgid "Angle" msgstr "Úhel" -#: ../src/ocrfeeder/studio/widgetPresenter.py:601 +#: ../src/ocrfeeder/studio/widgetPresenter.py:603 msgid "OCR engine to recogni_ze this area:" msgstr "Výkonný program OCR pro ro_zpoznání této oblasti:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:615 +#: ../src/ocrfeeder/studio/widgetPresenter.py:617 msgid "Detect" msgstr "Vyhledat" -#: ../src/ocrfeeder/studio/widgetPresenter.py:617 +#: ../src/ocrfeeder/studio/widgetPresenter.py:619 msgid "Angle:" msgstr "Úhel:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:702 +#: ../src/ocrfeeder/studio/widgetPresenter.py:704 msgid "Save File" msgstr "Uložení souboru" -#: ../src/ocrfeeder/studio/widgetPresenter.py:705 +#: ../src/ocrfeeder/studio/widgetPresenter.py:707 msgid "Open File" msgstr "Otevření souboru" -#: ../src/ocrfeeder/studio/widgetPresenter.py:709 +#: ../src/ocrfeeder/studio/widgetPresenter.py:711 msgid "Open Folder" msgstr "Otevření složky" -#: ../src/ocrfeeder/studio/widgetPresenter.py:736 +#: ../src/ocrfeeder/studio/widgetPresenter.py:738 msgid "Pages to export" msgstr "Které stránky exportovat" -#: ../src/ocrfeeder/studio/widgetPresenter.py:738 +#: ../src/ocrfeeder/studio/widgetPresenter.py:740 msgid "All" msgstr "Všechny" -#: ../src/ocrfeeder/studio/widgetPresenter.py:739 +#: ../src/ocrfeeder/studio/widgetPresenter.py:741 msgid "Current" msgstr "Současnou" -#: ../src/ocrfeeder/studio/widgetPresenter.py:755 +#: ../src/ocrfeeder/studio/widgetPresenter.py:757 msgid "Choose the format" msgstr "Zvolte formát" -#: ../src/ocrfeeder/studio/widgetPresenter.py:772 -#: ../src/ocrfeeder/studio/widgetPresenter.py:779 +#: ../src/ocrfeeder/studio/widgetPresenter.py:774 +#: ../src/ocrfeeder/studio/widgetPresenter.py:781 msgid "Page size" msgstr "Velikost stránky" -#: ../src/ocrfeeder/studio/widgetPresenter.py:784 +#: ../src/ocrfeeder/studio/widgetPresenter.py:786 msgid "Custom…" msgstr "Vlastní…" -#: ../src/ocrfeeder/studio/widgetPresenter.py:798 +#: ../src/ocrfeeder/studio/widgetPresenter.py:800 msgid "_Height:" msgstr "Výšk_a:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:807 +#: ../src/ocrfeeder/studio/widgetPresenter.py:809 msgid "Affected pages" msgstr "Použít na stránky" -#: ../src/ocrfeeder/studio/widgetPresenter.py:809 +#: ../src/ocrfeeder/studio/widgetPresenter.py:811 msgid "C_urrent" msgstr "So_učasnou" -#: ../src/ocrfeeder/studio/widgetPresenter.py:812 +#: ../src/ocrfeeder/studio/widgetPresenter.py:814 msgid "_All" msgstr "_Všechny" -#: ../src/ocrfeeder/studio/widgetPresenter.py:872 +#: ../src/ocrfeeder/studio/widgetPresenter.py:874 msgid "Unpaper Image Processor" msgstr "Obrazový procesor Unpaper" -#: ../src/ocrfeeder/studio/widgetPresenter.py:886 +#: ../src/ocrfeeder/studio/widgetPresenter.py:888 msgid "Preview" msgstr "Náhled" -#: ../src/ocrfeeder/studio/widgetPresenter.py:892 +#: ../src/ocrfeeder/studio/widgetPresenter.py:894 msgid "_Preview" msgstr "_Náhled" -#: ../src/ocrfeeder/studio/widgetPresenter.py:918 +#: ../src/ocrfeeder/studio/widgetPresenter.py:920 msgid "Performing Unpaper" msgstr "Zpracování programem Unpaper" -#: ../src/ocrfeeder/studio/widgetPresenter.py:918 +#: ../src/ocrfeeder/studio/widgetPresenter.py:920 msgid "Performing unpaper. Please wait…" msgstr "Provádí se vylepšení programem Unpaper. Čekejte prosím…" -#: ../src/ocrfeeder/studio/widgetPresenter.py:962 +#: ../src/ocrfeeder/studio/widgetPresenter.py:964 msgid "Noise Filter Intensity" msgstr "Citlivost šumového filtru" -#: ../src/ocrfeeder/studio/widgetPresenter.py:964 -#: ../src/ocrfeeder/studio/widgetPresenter.py:996 +#: ../src/ocrfeeder/studio/widgetPresenter.py:966 +#: ../src/ocrfeeder/studio/widgetPresenter.py:998 msgid "Default" msgstr "Výchozí" -#: ../src/ocrfeeder/studio/widgetPresenter.py:966 -#: ../src/ocrfeeder/studio/widgetPresenter.py:998 +#: ../src/ocrfeeder/studio/widgetPresenter.py:968 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1000 msgid "Custom" msgstr "Vlastní" -#: ../src/ocrfeeder/studio/widgetPresenter.py:968 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1000 +#: ../src/ocrfeeder/studio/widgetPresenter.py:970 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1002 msgid "None" msgstr "Žádný" -#: ../src/ocrfeeder/studio/widgetPresenter.py:994 +#: ../src/ocrfeeder/studio/widgetPresenter.py:996 msgid "Gray Filter Size" msgstr "Filtr úrovně šedé" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1026 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1028 msgid "Black Filter" msgstr "Filtr černé" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1027 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1029 msgid "Use" msgstr "Použít" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1034 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1036 msgid "Extra Options" msgstr "Další volby" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1036 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1038 msgid "Unpaper's command line arguments" msgstr "Argumenty příkazového řádku pro program Unpaper" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1093 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1095 msgid "Unpaper Preferences" msgstr "Předvolby pro Unpaper" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1150 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1161 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1152 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1163 msgid "An error occurred!" msgstr "Vyskytla se chyba!" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1232 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1234 msgid "Cancelled" msgstr "Zrušeno" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1246 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1248 msgid "Preferences" msgstr "Předvolby" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1312 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1314 msgid "_General" msgstr "_Obecné" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1317 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1319 msgid "Temporary folder" msgstr "Složka pro dočasné soubory" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1321 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1385 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1323 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1387 msgid "Choose" msgstr "Zvolit" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1338 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1340 msgid "_Recognition" msgstr "_Rozpoznávání" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1343 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1345 msgid "Select boxes' colors" msgstr "Vyberte barvy oblastí" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1349 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1351 msgid "Te_xt areas' fill color" msgstr "Barva oblasti s te_xtem" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1355 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1357 msgid "Text areas' _stroke color" msgstr "Ohraničení obla_sti s textem" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1361 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1363 msgid "_Image areas' fill color" msgstr "Barva oblasti s o_brázkem" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1381 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1383 msgid "Path to unpaper" msgstr "Cesta k programu Unpaper" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1393 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1643 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1681 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1699 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1790 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1395 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1645 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1683 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1701 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1792 msgid "OCR Engines" msgstr "Výkonné programy OCR" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1395 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1397 msgid "" "The engine that should be used when performing the automatic recognition." msgstr "" "Výkonný program, který by měl být použit, když se provádí automatické " "rozpoznání." -#: ../src/ocrfeeder/studio/widgetPresenter.py:1406 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1408 msgid "Favorite _engine:" msgstr "Oblíb_ený výkonný programy:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1421 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1423 msgid "Window size" msgstr "Velikost okna" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1422 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1424 msgid "A_utomatic" msgstr "A_utomaticky" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1423 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1425 msgid "Cu_stom" msgstr "_Vlastní" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1432 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1434 msgid "The window size is the detection algorithm's subdivision areas' size." msgstr "Velikost okna je velikost dělící plochy detekčního algoritmu." -#: ../src/ocrfeeder/studio/widgetPresenter.py:1444 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1446 msgid "Columns Detection" msgstr "Detekce sloupců" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1449 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1451 msgid "_Improve columns detection" msgstr "Zdokonal_it vyhledání sloupců" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1451 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1453 msgid "Use a post-detection algorithm to improve the detection of columns" msgstr "Použít algoritmy dodatečné detekce ke zdokonalenému vyhledání sloupců" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1462 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1536 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1464 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1538 msgid "_Automatic" msgstr "_Automaticky" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1464 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1538 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1466 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1540 msgid "Custo_m" msgstr "Vlast_ní" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1468 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1470 msgid "The columns' minimum width in pixels" msgstr "Minimální šířka sloupce v pixelech" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1484 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1486 msgid "Minimum width that a column should have:" msgstr "Minimální šířka, kterou by sloupec měl mít:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1505 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1507 msgid "Recognized Text" msgstr "Rozpoznaný text" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1506 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1508 msgid "_Fix line breaks and hyphenization" msgstr "_Opravit zalomení řádků a rozdělení slov" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1508 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1510 msgid "" "Removes single line breaks and hyphenization from text generated by OCR " "engines" @@ -942,85 +965,85 @@ "Odstraní jednořádková zalomení a rozdělení slov z textu vygenerovaného " "výkonným programem OCR" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1518 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1520 msgid "Content Areas" msgstr "Oblasti s obsahem" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1523 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1525 msgid "A_djust content areas' bounds" msgstr "Přizpůsobit hranice oblastí s o_bsahem" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1525 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1527 msgid "Use a post-detection algorithm to shorten the contents areas' margins" msgstr "" "Použít algoritmy dodatečné detekce ke zmenšení okrajů oblastí s obsahem" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1542 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1544 msgid "The maximum size for the content areas' margins in pixels" msgstr "Maximální velikost v pixelech pro okraje oblasti s obsahem" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1559 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1561 msgid "Maximum size that the content areas' margins should have:" msgstr "Maximální velikost, kterou by měly mít okraje oblastí s obsahem:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1605 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1607 msgid "Image Pre-processing" msgstr "Předzpracování obrazu" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1606 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1608 msgid "Des_kew images" msgstr "Odstranit de_formace obrazu" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1608 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1610 msgid "Tries to straighten the images before they are added" msgstr "Zkusí vylepšit obrazy, než jsou přidány" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1617 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1619 msgid "_Unpaper images" msgstr "Vyčistit programem _Unpaper" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1619 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1621 msgid "Cleans the image using the Unpaper pre-processor" msgstr "Vyčistí obraz pomocí předzpracování programem Unpaper" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1623 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1625 msgid "Unpaper _Preferences" msgstr "_Předvolby pro Unpaper" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1657 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1659 msgid "Engines to be added" msgstr "Výkonné programy, který se mají přidat" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1662 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1664 msgid "Include" msgstr "Zahrnout" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1666 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1703 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1668 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1705 msgid "Engine" msgstr "Výkonný program" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1707 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1709 msgid "Add" msgstr "Přidat" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1709 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1711 msgid "Edit" msgstr "Upravit" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1710 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1712 msgid "De_tect" msgstr "De_tekovat" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1724 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1726 msgid "Are you sure you want to delete this engine?" msgstr "Opravdu chcete odebrat tento výkonný program?" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1772 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1774 msgid "No OCR engines available" msgstr "Není dostupný žádný výkonný program OCR" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1773 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1775 msgid "" "No OCR engines were found in the system.\n" "Please make sure you have OCR engines installed and available." @@ -1029,63 +1052,63 @@ "Ujistěte se prosím, že máte v systému nějaké výkonné programy OCR " "nainstalované a přístupné." -#: ../src/ocrfeeder/studio/widgetPresenter.py:1792 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1794 #, python-format msgid "%s engine" msgstr "Výkonný program %s" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1816 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1818 msgid "_Name:" msgstr "_Název:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1817 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1819 msgid "Engine name" msgstr "Název výkonného programu" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1819 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1821 msgid "_Image format:" msgstr "_Formát obrazu:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1821 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1823 msgid "The required image format" msgstr "Požadovaný formát obrazu" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1823 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1825 msgid "_Failure string:" msgstr "Řetězec při sel_hání:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1825 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1827 msgid "The failure string or character that this engine uses" msgstr "Řetězec nebo znak, který tento výkonný program používá při selhání" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1828 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1830 msgid "Engine _path:" msgstr "Cesta k výkonnému _programu:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1830 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1832 msgid "The path to the engine program" msgstr "Cesta k výkonnému programu" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1832 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1834 msgid "Engine _arguments:" msgstr "_Argumenty výkonného programu:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1834 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1836 msgid "Arguments: use $IMAGE for image and $FILE if it writes to a file" msgstr "" "Argumenty: použijte $IMAGE pro obrázek a $FILE, pokud zapisuje do souboru" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1851 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1853 msgid "Error setting the new engine; please check your engine settings." msgstr "" "Chyba při nastavování nového výkonného programu, zkontrolujte prosím své " "nastavení." -#: ../src/ocrfeeder/studio/widgetPresenter.py:1851 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1853 msgid "Warning" msgstr "Varování" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1887 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1889 msgid "translator-credits" msgstr "Marek Černocký " diff -Nru ocrfeeder-0.7.6/po/da.po ocrfeeder-0.7.7/po/da.po --- ocrfeeder-0.7.6/po/da.po 2011-04-25 16:48:50.000000000 +0000 +++ ocrfeeder-0.7.7/po/da.po 2011-12-10 13:08:36.000000000 +0000 @@ -9,8 +9,8 @@ msgstr "" "Project-Id-Version: ocrfeeder master\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-04-06 22:49+0200\n" -"PO-Revision-Date: 2011-03-17 19:48+0100\n" +"POT-Creation-Date: 2011-09-30 09:59+0200\n" +"PO-Revision-Date: 2011-09-24 19:48+0100\n" "Last-Translator: Joe Hansen \n" "Language-Team: Danish \n" "Language: da\n" @@ -82,105 +82,126 @@ msgstr "_Forslag:" #: ../src/ocrfeeder/studio/studioBuilder.py:61 -msgid "HTML" -msgstr "HTML" - -#: ../src/ocrfeeder/studio/studioBuilder.py:62 msgid "ODT" msgstr "ODT" +#: ../src/ocrfeeder/studio/studioBuilder.py:62 +msgid "HTML" +msgstr "HTML" + #: ../src/ocrfeeder/studio/studioBuilder.py:63 +#: ../src/ocrfeeder/studio/studioBuilder.py:253 +msgid "PDF" +msgstr "PDF" + +#: ../src/ocrfeeder/studio/studioBuilder.py:64 msgid "Plain Text" msgstr "Klartekst" -#: ../src/ocrfeeder/studio/studioBuilder.py:185 +#: ../src/ocrfeeder/studio/studioBuilder.py:187 msgid "Images" msgstr "Billeder" -#: ../src/ocrfeeder/studio/studioBuilder.py:197 +#: ../src/ocrfeeder/studio/studioBuilder.py:199 msgid "Obtaining scanners" msgstr "Henter skannere" -#: ../src/ocrfeeder/studio/studioBuilder.py:197 -#: ../src/ocrfeeder/studio/studioBuilder.py:223 -#: ../src/ocrfeeder/studio/studioBuilder.py:265 -#: ../src/ocrfeeder/studio/widgetModeler.py:457 -#: ../src/ocrfeeder/studio/widgetModeler.py:462 -#: ../src/ocrfeeder/studio/widgetModeler.py:514 -#: ../src/ocrfeeder/studio/widgetModeler.py:580 +#: ../src/ocrfeeder/studio/studioBuilder.py:199 +#: ../src/ocrfeeder/studio/studioBuilder.py:225 +#: ../src/ocrfeeder/studio/studioBuilder.py:267 +#: ../src/ocrfeeder/studio/widgetModeler.py:464 +#: ../src/ocrfeeder/studio/widgetModeler.py:469 +#: ../src/ocrfeeder/studio/widgetModeler.py:525 +#: ../src/ocrfeeder/studio/widgetModeler.py:591 msgid "Please wait…" msgstr "Vent venligst…" -#: ../src/ocrfeeder/studio/studioBuilder.py:223 +#: ../src/ocrfeeder/studio/studioBuilder.py:225 msgid "Scanning" msgstr "Skanner" -#: ../src/ocrfeeder/studio/studioBuilder.py:228 +#: ../src/ocrfeeder/studio/studioBuilder.py:230 msgid "No scanner devices were found" msgstr "Ingen skannerenheder blev fundet" -#: ../src/ocrfeeder/studio/studioBuilder.py:229 -#: ../src/ocrfeeder/studio/studioBuilder.py:244 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1150 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1161 +#: ../src/ocrfeeder/studio/studioBuilder.py:231 +#: ../src/ocrfeeder/studio/studioBuilder.py:246 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1152 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1163 msgid "Error" msgstr "Fejl" -#: ../src/ocrfeeder/studio/studioBuilder.py:243 +#: ../src/ocrfeeder/studio/studioBuilder.py:245 msgid "Error scanning page" msgstr "Fejl ved skanning af side" -#: ../src/ocrfeeder/studio/studioBuilder.py:251 -msgid "PDF" -msgstr "PDF" - -#: ../src/ocrfeeder/studio/studioBuilder.py:265 +#: ../src/ocrfeeder/studio/studioBuilder.py:267 msgid "Loading PDF" msgstr "Indlæser PDF" -#: ../src/ocrfeeder/studio/studioBuilder.py:292 +#: ../src/ocrfeeder/studio/studioBuilder.py:298 +msgid "What kind of PDF document do you wish?" +msgstr "Hvilken slags PDF-dokument ønsker du?" + +#: ../src/ocrfeeder/studio/studioBuilder.py:300 +msgid "From scratch" +msgstr "Fra bunden af" + +#: ../src/ocrfeeder/studio/studioBuilder.py:302 +msgid "Creates a new PDF from scratch." +msgstr "Opretter en ny PDF fra bunden af." + +#: ../src/ocrfeeder/studio/studioBuilder.py:304 +msgid "Searchable PDF" +msgstr "Søgbar PDF" + +#: ../src/ocrfeeder/studio/studioBuilder.py:305 +msgid "Creates a PDF based on the images but with searchable text." +msgstr "Opretter en PDF baseret på billederne men med tekst, der kan søges i." + +#: ../src/ocrfeeder/studio/studioBuilder.py:329 msgid "Export pages" msgstr "Eksporter sider" -#: ../src/ocrfeeder/studio/studioBuilder.py:309 +#: ../src/ocrfeeder/studio/studioBuilder.py:346 msgid "Are you sure you want to delete the current image?" msgstr "Er du sikker på, at du ønsker at slette det aktuelle billede?" -#: ../src/ocrfeeder/studio/studioBuilder.py:356 +#: ../src/ocrfeeder/studio/studioBuilder.py:393 msgid "Are you sure you want to clear the project?" msgstr "Er du sikker på, at du ønsker at rydde projektet?" -#: ../src/ocrfeeder/studio/studioBuilder.py:413 +#: ../src/ocrfeeder/studio/studioBuilder.py:450 msgid "The project hasn't been saved." msgstr "Projektet er ikke blevet gemt." -#: ../src/ocrfeeder/studio/studioBuilder.py:414 +#: ../src/ocrfeeder/studio/studioBuilder.py:451 msgid "Do you want to save it before closing?" msgstr "Ønsker du at gemme det før lukning?" -#: ../src/ocrfeeder/studio/studioBuilder.py:415 +#: ../src/ocrfeeder/studio/studioBuilder.py:452 msgid "Close anyway" msgstr "Luk alligevel" -#: ../src/ocrfeeder/studio/widgetModeler.py:126 -#: ../src/ocrfeeder/studio/widgetPresenter.py:134 +#: ../src/ocrfeeder/studio/widgetModeler.py:125 +#: ../src/ocrfeeder/studio/widgetPresenter.py:136 msgid "Pages" msgstr "Sider" -#: ../src/ocrfeeder/studio/widgetModeler.py:140 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1708 +#: ../src/ocrfeeder/studio/widgetModeler.py:139 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1710 msgid "Delete" msgstr "Slet" -#: ../src/ocrfeeder/studio/widgetModeler.py:191 +#: ../src/ocrfeeder/studio/widgetModeler.py:190 msgid "Selectable areas" msgstr "Valgbare områder" -#: ../src/ocrfeeder/studio/widgetModeler.py:457 +#: ../src/ocrfeeder/studio/widgetModeler.py:464 msgid "Preparing image" msgstr "Forbereder billede" -#: ../src/ocrfeeder/studio/widgetModeler.py:459 +#: ../src/ocrfeeder/studio/widgetModeler.py:466 #, python-format msgid "Preparing image %(current_index)s/%(total)s" msgstr "Forbereder billede %(current_index)s/%(total)s" @@ -190,68 +211,74 @@ # Skew is an artifact that can occur in scanned images because of the camera being # misaligned, imperfections in the scanning or surface, or simply because the # paper was not placed completely flat when scanned. -#: ../src/ocrfeeder/studio/widgetModeler.py:514 +#: ../src/ocrfeeder/studio/widgetModeler.py:525 msgid "Deskewing image" msgstr "Retter billede (deskew)" -#: ../src/ocrfeeder/studio/widgetModeler.py:541 +#: ../src/ocrfeeder/studio/widgetModeler.py:552 msgid "No images added" msgstr "Ingen billeder tilføjet" -#: ../src/ocrfeeder/studio/widgetModeler.py:544 +#: ../src/ocrfeeder/studio/widgetModeler.py:555 #, python-format msgid "Zoom: %s %%" msgstr "Zoom: %s %%" -#: ../src/ocrfeeder/studio/widgetModeler.py:546 +#: ../src/ocrfeeder/studio/widgetModeler.py:557 #, python-format msgid "Resolution: %.2f x %.2f" msgstr "Opløsning: %.2f x %.2f" -#: ../src/ocrfeeder/studio/widgetModeler.py:548 +#: ../src/ocrfeeder/studio/widgetModeler.py:559 #, python-format msgid "Page size: %i x %i" msgstr "Sidestørrelse: %i x %i" -#: ../src/ocrfeeder/studio/widgetModeler.py:562 +#: ../src/ocrfeeder/studio/widgetModeler.py:573 msgid "" "There are changes that may be overwritten by the new recognition.\n" "\n" "Do you want to continue?" msgstr "" +"Der er ændringer, som måske bliver overskrevet af den nye genkendelse.\n" +"\n" +"Ønsker du at fortsætte?" -#: ../src/ocrfeeder/studio/widgetModeler.py:580 -#, fuzzy +#: ../src/ocrfeeder/studio/widgetModeler.py:591 msgid "Recognizing Page" -msgstr "Genkender dokument" +msgstr "Genkender side" -#: ../src/ocrfeeder/studio/widgetModeler.py:597 +#: ../src/ocrfeeder/studio/widgetModeler.py:608 msgid "Recognizing Document" msgstr "Genkender dokument" -#: ../src/ocrfeeder/studio/widgetModeler.py:598 +#: ../src/ocrfeeder/studio/widgetModeler.py:609 #, python-format msgid "Recognizing page %(page_number)s/%(total_pages)s. Please wait…" -msgstr "" +msgstr "Genkender side %(page_number)s/%(total_pages)s. Vent venligst…" -#: ../src/ocrfeeder/studio/widgetModeler.py:666 +#: ../src/ocrfeeder/studio/widgetModeler.py:677 msgid "Export to HTML" msgstr "Eksporter til HTML" -#: ../src/ocrfeeder/studio/widgetModeler.py:680 -#: ../src/ocrfeeder/studio/widgetPresenter.py:213 +#: ../src/ocrfeeder/studio/widgetModeler.py:691 +#: ../src/ocrfeeder/studio/widgetPresenter.py:215 msgid "Export to ODT" msgstr "Eksporter til ODT" -#: ../src/ocrfeeder/studio/widgetModeler.py:691 +#: ../src/ocrfeeder/studio/widgetModeler.py:702 msgid "Export to Plain Text" msgstr "Eksporter til klartekst" -#: ../src/ocrfeeder/studio/widgetModeler.py:712 +#: ../src/ocrfeeder/studio/widgetModeler.py:713 +msgid "Export to PDF" +msgstr "Eksporter til PDF" + +#: ../src/ocrfeeder/studio/widgetModeler.py:735 msgid "OCRFeeder Projects" msgstr "Projekter for ORCFeeder" -#: ../src/ocrfeeder/studio/widgetModeler.py:770 +#: ../src/ocrfeeder/studio/widgetModeler.py:793 #, python-format msgid "" "A file named \"%(name)s\" already exists. Do you want to replace it?\n" @@ -263,694 +290,691 @@ "\n" "Filen findes i \"%(dir)s\". Erstatning af den vil overskrive dens indhold." -#: ../src/ocrfeeder/studio/widgetModeler.py:777 +#: ../src/ocrfeeder/studio/widgetModeler.py:800 msgid "Replace" msgstr "Erstat" -#: ../src/ocrfeeder/studio/widgetPresenter.py:155 +#: ../src/ocrfeeder/studio/widgetPresenter.py:157 msgid "_File" msgstr "_Fil" -#: ../src/ocrfeeder/studio/widgetPresenter.py:156 +#: ../src/ocrfeeder/studio/widgetPresenter.py:158 msgid "_Quit" msgstr "_Afslut" -#: ../src/ocrfeeder/studio/widgetPresenter.py:156 +#: ../src/ocrfeeder/studio/widgetPresenter.py:158 msgid "Exit the program" msgstr "Afslut programmet" -#: ../src/ocrfeeder/studio/widgetPresenter.py:157 +#: ../src/ocrfeeder/studio/widgetPresenter.py:159 msgid "_Open" msgstr "_Åbn" -#: ../src/ocrfeeder/studio/widgetPresenter.py:157 +#: ../src/ocrfeeder/studio/widgetPresenter.py:159 msgid "Open project" msgstr "Åbn projekt" -#: ../src/ocrfeeder/studio/widgetPresenter.py:158 +#: ../src/ocrfeeder/studio/widgetPresenter.py:160 msgid "_Save" msgstr "_Gem" -#: ../src/ocrfeeder/studio/widgetPresenter.py:158 +#: ../src/ocrfeeder/studio/widgetPresenter.py:160 msgid "Save project" msgstr "Gem projekt" -#: ../src/ocrfeeder/studio/widgetPresenter.py:159 +#: ../src/ocrfeeder/studio/widgetPresenter.py:161 msgid "_Save As…" msgstr "_Gem som…" -#: ../src/ocrfeeder/studio/widgetPresenter.py:159 +#: ../src/ocrfeeder/studio/widgetPresenter.py:161 msgid "Save project with a chosen name" msgstr "Gem projekt med et valgt navn" -#: ../src/ocrfeeder/studio/widgetPresenter.py:160 +#: ../src/ocrfeeder/studio/widgetPresenter.py:162 msgid "_Add Image" msgstr "_Tilføj billede" -#: ../src/ocrfeeder/studio/widgetPresenter.py:160 +#: ../src/ocrfeeder/studio/widgetPresenter.py:162 msgid "Add another image" msgstr "Tilføj endnu et billede" -#: ../src/ocrfeeder/studio/widgetPresenter.py:161 +#: ../src/ocrfeeder/studio/widgetPresenter.py:163 msgid "Add _Folder" msgstr "Tilføj _mappe" -#: ../src/ocrfeeder/studio/widgetPresenter.py:161 +#: ../src/ocrfeeder/studio/widgetPresenter.py:163 msgid "Add all images in a folder" msgstr "Tilføj alle billeder i en mappe" -#: ../src/ocrfeeder/studio/widgetPresenter.py:162 +#: ../src/ocrfeeder/studio/widgetPresenter.py:164 msgid "Append Project" msgstr "Vedhæft projket" -#: ../src/ocrfeeder/studio/widgetPresenter.py:162 +#: ../src/ocrfeeder/studio/widgetPresenter.py:164 msgid "Load a project and append it to the current one" msgstr "Indlæs et projket og vedhæft det til det aktuelle" -#: ../src/ocrfeeder/studio/widgetPresenter.py:163 +#: ../src/ocrfeeder/studio/widgetPresenter.py:165 msgid "_Import PDF" msgstr "_Importer PDF" -#: ../src/ocrfeeder/studio/widgetPresenter.py:163 +#: ../src/ocrfeeder/studio/widgetPresenter.py:165 msgid "Import PDF" msgstr "Importer PDF" -#: ../src/ocrfeeder/studio/widgetPresenter.py:164 +#: ../src/ocrfeeder/studio/widgetPresenter.py:166 msgid "_Export…" msgstr "_Eksporter…" -#: ../src/ocrfeeder/studio/widgetPresenter.py:164 +#: ../src/ocrfeeder/studio/widgetPresenter.py:166 msgid "Export to a chosen format" msgstr "Eksporter til et valgt format" -#: ../src/ocrfeeder/studio/widgetPresenter.py:165 +#: ../src/ocrfeeder/studio/widgetPresenter.py:167 msgid "_Edit" msgstr "_Rediger" -#: ../src/ocrfeeder/studio/widgetPresenter.py:166 +#: ../src/ocrfeeder/studio/widgetPresenter.py:168 msgid "_Edit Page" msgstr "_Rediger side" -#: ../src/ocrfeeder/studio/widgetPresenter.py:166 +#: ../src/ocrfeeder/studio/widgetPresenter.py:168 msgid "Edit page settings" msgstr "Rediger sideopsætning" -#: ../src/ocrfeeder/studio/widgetPresenter.py:167 +#: ../src/ocrfeeder/studio/widgetPresenter.py:169 msgid "_Preferences" msgstr "_Indstillinger" -#: ../src/ocrfeeder/studio/widgetPresenter.py:167 +#: ../src/ocrfeeder/studio/widgetPresenter.py:169 msgid "Configure the application" msgstr "Konfigurer programmet" -#: ../src/ocrfeeder/studio/widgetPresenter.py:168 +#: ../src/ocrfeeder/studio/widgetPresenter.py:170 msgid "_Delete Page" msgstr "_Slet side" -#: ../src/ocrfeeder/studio/widgetPresenter.py:168 +#: ../src/ocrfeeder/studio/widgetPresenter.py:170 msgid "Delete current page" msgstr "Slet aktuel side" -#: ../src/ocrfeeder/studio/widgetPresenter.py:169 +#: ../src/ocrfeeder/studio/widgetPresenter.py:171 msgid "_Clear Project" msgstr "_Ryd projekt" -#: ../src/ocrfeeder/studio/widgetPresenter.py:169 +#: ../src/ocrfeeder/studio/widgetPresenter.py:171 msgid "Delete all images" msgstr "Slet alle billeder" -#: ../src/ocrfeeder/studio/widgetPresenter.py:170 +#: ../src/ocrfeeder/studio/widgetPresenter.py:172 msgid "_View" msgstr "_Vis" -#: ../src/ocrfeeder/studio/widgetPresenter.py:171 +#: ../src/ocrfeeder/studio/widgetPresenter.py:173 msgid "Zoom In" msgstr "Zoom ind" -#: ../src/ocrfeeder/studio/widgetPresenter.py:172 +#: ../src/ocrfeeder/studio/widgetPresenter.py:174 msgid "Zoom Out" msgstr "Zoom ud" -#: ../src/ocrfeeder/studio/widgetPresenter.py:173 +#: ../src/ocrfeeder/studio/widgetPresenter.py:175 msgid "Best Fit" msgstr "Bedste tilpasning" -#: ../src/ocrfeeder/studio/widgetPresenter.py:174 +#: ../src/ocrfeeder/studio/widgetPresenter.py:176 msgid "Normal Size" msgstr "Normal størrelse" -#: ../src/ocrfeeder/studio/widgetPresenter.py:175 +#: ../src/ocrfeeder/studio/widgetPresenter.py:177 msgid "_Document" msgstr "_Dokument" -#: ../src/ocrfeeder/studio/widgetPresenter.py:176 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1376 +#: ../src/ocrfeeder/studio/widgetPresenter.py:178 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1378 msgid "_Tools" msgstr "_Værktøjer" -#: ../src/ocrfeeder/studio/widgetPresenter.py:177 +#: ../src/ocrfeeder/studio/widgetPresenter.py:179 msgid "_OCR Engines" msgstr "_OCR-motorer" -#: ../src/ocrfeeder/studio/widgetPresenter.py:177 +#: ../src/ocrfeeder/studio/widgetPresenter.py:179 msgid "Manage OCR engines" msgstr "Håndter OCR-motorer" # Det er et program: unpaper is a post-processing tool for scanned sheets of paper, especially for # book pages that have been scanned from previously created photocopies. -#: ../src/ocrfeeder/studio/widgetPresenter.py:178 +#: ../src/ocrfeeder/studio/widgetPresenter.py:180 msgid "_Unpaper" msgstr "_Unpaper" -#: ../src/ocrfeeder/studio/widgetPresenter.py:178 +#: ../src/ocrfeeder/studio/widgetPresenter.py:180 msgid "Process image with unpaper" msgstr "Behandl billede med unpaper" # eller billedrettet -#: ../src/ocrfeeder/studio/widgetPresenter.py:179 +#: ../src/ocrfeeder/studio/widgetPresenter.py:181 msgid "Image Des_kewer" msgstr "Billedopretning (_deskew)" -#: ../src/ocrfeeder/studio/widgetPresenter.py:180 +#: ../src/ocrfeeder/studio/widgetPresenter.py:182 msgid "Trie to straighten the image" msgstr "Forsøg at rette billedet ud" -#: ../src/ocrfeeder/studio/widgetPresenter.py:182 -#: ../src/ocrfeeder/studio/widgetPresenter.py:183 +#: ../src/ocrfeeder/studio/widgetPresenter.py:184 +#: ../src/ocrfeeder/studio/widgetPresenter.py:185 msgid "_Help" msgstr "_Hjælp" -#: ../src/ocrfeeder/studio/widgetPresenter.py:183 +#: ../src/ocrfeeder/studio/widgetPresenter.py:185 msgid "Help contents" msgstr "Indhold i hjælp" -#: ../src/ocrfeeder/studio/widgetPresenter.py:184 +#: ../src/ocrfeeder/studio/widgetPresenter.py:186 msgid "_About" msgstr "_Om" -#: ../src/ocrfeeder/studio/widgetPresenter.py:184 +#: ../src/ocrfeeder/studio/widgetPresenter.py:186 msgid "About this application" msgstr "Om dette program" -#: ../src/ocrfeeder/studio/widgetPresenter.py:186 +#: ../src/ocrfeeder/studio/widgetPresenter.py:188 msgid "_Recognize Document" msgstr "_Genkend dokument" -#: ../src/ocrfeeder/studio/widgetPresenter.py:187 -#, fuzzy +#: ../src/ocrfeeder/studio/widgetPresenter.py:189 msgid "Automatically detect and recognize all pages" -msgstr "Automatisk opdagelse og genkendelse" +msgstr "Automatisk opdagelse og genkendelse af alle sider" -#: ../src/ocrfeeder/studio/widgetPresenter.py:190 -#, fuzzy -msgid "_Recognize Page" -msgstr "Genkendt tekst" +#: ../src/ocrfeeder/studio/widgetPresenter.py:192 +msgid "R_ecognize Page" +msgstr "_Genkend side" -#: ../src/ocrfeeder/studio/widgetPresenter.py:191 -#, fuzzy +#: ../src/ocrfeeder/studio/widgetPresenter.py:193 msgid "Automatically detect and recognize the current page" -msgstr "Automatisk opdagelse og genkendelse" +msgstr "Automatisk opdagelse og genkendelse af den aktuelle side" -#: ../src/ocrfeeder/studio/widgetPresenter.py:194 -msgid "Recognize Selected _Areas" -msgstr "Genkend valgte _områder" +#: ../src/ocrfeeder/studio/widgetPresenter.py:196 +msgid "Recognize _Selected Areas" +msgstr "Genkend _valgte områder" -#: ../src/ocrfeeder/studio/widgetPresenter.py:195 +#: ../src/ocrfeeder/studio/widgetPresenter.py:197 msgid "Recognize Selected Areas" msgstr "Genkend valgte områder" -#: ../src/ocrfeeder/studio/widgetPresenter.py:198 -msgid "Select All _Areas" +#: ../src/ocrfeeder/studio/widgetPresenter.py:200 +msgid "Select _All Areas" msgstr "Vælg alle _områder" -#: ../src/ocrfeeder/studio/widgetPresenter.py:199 +#: ../src/ocrfeeder/studio/widgetPresenter.py:201 msgid "Select all content areas" msgstr "Vælg alle indholdsområder" -#: ../src/ocrfeeder/studio/widgetPresenter.py:202 +#: ../src/ocrfeeder/studio/widgetPresenter.py:204 msgid "Select _Previous Area" msgstr "Vælg _forrige område" -#: ../src/ocrfeeder/studio/widgetPresenter.py:203 +#: ../src/ocrfeeder/studio/widgetPresenter.py:205 msgid "Select the previous area from the content areas" msgstr "Vælg det forrige område fra indholdsområderne" -#: ../src/ocrfeeder/studio/widgetPresenter.py:206 +#: ../src/ocrfeeder/studio/widgetPresenter.py:208 msgid "Select _Next Area" msgstr "Vælg _næste område" -#: ../src/ocrfeeder/studio/widgetPresenter.py:207 +#: ../src/ocrfeeder/studio/widgetPresenter.py:209 msgid "Select the next area from the content areas" msgstr "Vælg det næste område fra indholdsområderne" -#: ../src/ocrfeeder/studio/widgetPresenter.py:210 +#: ../src/ocrfeeder/studio/widgetPresenter.py:212 msgid "Delete Selected Areas" msgstr "Slet valgte områder" -#: ../src/ocrfeeder/studio/widgetPresenter.py:211 +#: ../src/ocrfeeder/studio/widgetPresenter.py:213 msgid "Deletes all the currently selected content areas" msgstr "Slet alle de aktuelt valgte indholdsområder" -#: ../src/ocrfeeder/studio/widgetPresenter.py:213 +#: ../src/ocrfeeder/studio/widgetPresenter.py:215 msgid "_Generate ODT" msgstr "_Generer ODT" -#: ../src/ocrfeeder/studio/widgetPresenter.py:215 +#: ../src/ocrfeeder/studio/widgetPresenter.py:217 msgid "Import Page From S_canner" msgstr "Importer side fra _skanner" -#: ../src/ocrfeeder/studio/widgetPresenter.py:217 +#: ../src/ocrfeeder/studio/widgetPresenter.py:219 msgid "Import From Scanner" msgstr "Importer fra skanner" -#: ../src/ocrfeeder/studio/widgetPresenter.py:220 +#: ../src/ocrfeeder/studio/widgetPresenter.py:222 msgid "_Copy to Clipboard" msgstr "_Kopier til udklipsholder" -#: ../src/ocrfeeder/studio/widgetPresenter.py:222 +#: ../src/ocrfeeder/studio/widgetPresenter.py:224 msgid "Copy recognized text to clipboard" msgstr "Kopier genkendt tekst til udklipsholder" -#: ../src/ocrfeeder/studio/widgetPresenter.py:225 +#: ../src/ocrfeeder/studio/widgetPresenter.py:227 msgid "Spell_checker" msgstr "_Stavekontrol" -#: ../src/ocrfeeder/studio/widgetPresenter.py:227 +#: ../src/ocrfeeder/studio/widgetPresenter.py:229 msgid "Spell Check Recognized Text" msgstr "Tekst der kan kontrolleres for stavning" -#: ../src/ocrfeeder/studio/widgetPresenter.py:301 +#: ../src/ocrfeeder/studio/widgetPresenter.py:303 msgid "Area editor" msgstr "Områderedigering" -#: ../src/ocrfeeder/studio/widgetPresenter.py:309 +#: ../src/ocrfeeder/studio/widgetPresenter.py:311 msgid "Sets the content area's upper left corner's X coordinate" msgstr "Angiver indholdsområdets øvre venstre hjørnes x-koordinat" -#: ../src/ocrfeeder/studio/widgetPresenter.py:313 +#: ../src/ocrfeeder/studio/widgetPresenter.py:315 msgid "Sets the content area's upper left corner's Y coordinate" msgstr "Angiver indholdsområdets øvre venstre hjørnes y-koordinat" -#: ../src/ocrfeeder/studio/widgetPresenter.py:317 +#: ../src/ocrfeeder/studio/widgetPresenter.py:319 msgid "Sets the content area's width" msgstr "Angiver indholdsområdets bredde" -#: ../src/ocrfeeder/studio/widgetPresenter.py:320 +#: ../src/ocrfeeder/studio/widgetPresenter.py:322 msgid "Sets the content area's height" msgstr "Angiver indholdsområdets højde" -#: ../src/ocrfeeder/studio/widgetPresenter.py:323 -#: ../src/ocrfeeder/studio/widgetPresenter.py:539 +#: ../src/ocrfeeder/studio/widgetPresenter.py:325 +#: ../src/ocrfeeder/studio/widgetPresenter.py:541 msgid "_Text" msgstr "_Tekst" # Angiver dette indholdsområde som teksttypen -#: ../src/ocrfeeder/studio/widgetPresenter.py:324 +#: ../src/ocrfeeder/studio/widgetPresenter.py:326 msgid "Set this content area to be the text type" msgstr "Angiver typen af dette indholdsområde som tekst" -#: ../src/ocrfeeder/studio/widgetPresenter.py:325 +#: ../src/ocrfeeder/studio/widgetPresenter.py:327 msgid "_Image" msgstr "_Billede" # ngiver dette indholdsområde som billedtypen -#: ../src/ocrfeeder/studio/widgetPresenter.py:326 +#: ../src/ocrfeeder/studio/widgetPresenter.py:328 msgid "Set this content area to be the image type" msgstr "Angiver typen af dette indholdsområde som billede" -#: ../src/ocrfeeder/studio/widgetPresenter.py:327 +#: ../src/ocrfeeder/studio/widgetPresenter.py:329 msgid "Type" msgstr "Type" -#: ../src/ocrfeeder/studio/widgetPresenter.py:337 +#: ../src/ocrfeeder/studio/widgetPresenter.py:339 msgid "Clip" msgstr "Klip" -#: ../src/ocrfeeder/studio/widgetPresenter.py:421 +#: ../src/ocrfeeder/studio/widgetPresenter.py:423 msgid "Bounds" msgstr "Grænser" -#: ../src/ocrfeeder/studio/widgetPresenter.py:426 +#: ../src/ocrfeeder/studio/widgetPresenter.py:428 msgid "_X:" msgstr "_X:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:435 +#: ../src/ocrfeeder/studio/widgetPresenter.py:437 msgid "_Y:" msgstr "_Y:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:447 -#: ../src/ocrfeeder/studio/widgetPresenter.py:793 +#: ../src/ocrfeeder/studio/widgetPresenter.py:449 +#: ../src/ocrfeeder/studio/widgetPresenter.py:795 msgid "_Width:" msgstr "_Bredde:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:456 +#: ../src/ocrfeeder/studio/widgetPresenter.py:458 msgid "Hei_ght:" msgstr "_Højde:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:479 +#: ../src/ocrfeeder/studio/widgetPresenter.py:481 msgid "Left" msgstr "Venstre" -#: ../src/ocrfeeder/studio/widgetPresenter.py:483 +#: ../src/ocrfeeder/studio/widgetPresenter.py:485 msgid "Set text to be left aligned" msgstr "Angiv tekst som venstrejusteret" -#: ../src/ocrfeeder/studio/widgetPresenter.py:485 +#: ../src/ocrfeeder/studio/widgetPresenter.py:487 msgid "Center" msgstr "Centrum" -#: ../src/ocrfeeder/studio/widgetPresenter.py:490 +#: ../src/ocrfeeder/studio/widgetPresenter.py:492 msgid "Set text to be centered" msgstr "Angiv tekst som centreret" -#: ../src/ocrfeeder/studio/widgetPresenter.py:492 +#: ../src/ocrfeeder/studio/widgetPresenter.py:494 msgid "Right" msgstr "Højre" -#: ../src/ocrfeeder/studio/widgetPresenter.py:497 +#: ../src/ocrfeeder/studio/widgetPresenter.py:499 msgid "Set text to be right aligned" msgstr "Angiv tekst som højrejusteret" -#: ../src/ocrfeeder/studio/widgetPresenter.py:499 +#: ../src/ocrfeeder/studio/widgetPresenter.py:501 msgid "Fill" msgstr "Fyld" -#: ../src/ocrfeeder/studio/widgetPresenter.py:504 +#: ../src/ocrfeeder/studio/widgetPresenter.py:506 msgid "Set text to be fill its area" msgstr "Få tekst til at udfylde sit område" -#: ../src/ocrfeeder/studio/widgetPresenter.py:510 +#: ../src/ocrfeeder/studio/widgetPresenter.py:512 msgid "OC_R" msgstr "_OCR" -#: ../src/ocrfeeder/studio/widgetPresenter.py:511 +#: ../src/ocrfeeder/studio/widgetPresenter.py:513 msgid "Perform OCR on this content area using the selected OCR engine." msgstr "Udfør OCR på dette indholdsområde med brug af valgt OCR-motor." -#: ../src/ocrfeeder/studio/widgetPresenter.py:517 +#: ../src/ocrfeeder/studio/widgetPresenter.py:519 msgid "OCR engine to recognize this content area" msgstr "OCR-motor som skal genkende dette indholdsområde" #. Text Properties -#: ../src/ocrfeeder/studio/widgetPresenter.py:525 +#: ../src/ocrfeeder/studio/widgetPresenter.py:527 msgid "Text Properties" msgstr "Tekstegenskaber" -#: ../src/ocrfeeder/studio/widgetPresenter.py:547 +#: ../src/ocrfeeder/studio/widgetPresenter.py:549 msgid "Font" msgstr "Skrifttype" -#: ../src/ocrfeeder/studio/widgetPresenter.py:554 +#: ../src/ocrfeeder/studio/widgetPresenter.py:556 msgid "Align" msgstr "Juster" # eller afstand? -#: ../src/ocrfeeder/studio/widgetPresenter.py:558 +#: ../src/ocrfeeder/studio/widgetPresenter.py:560 msgid "Spacing" msgstr "Mellemrum" -#: ../src/ocrfeeder/studio/widgetPresenter.py:560 +#: ../src/ocrfeeder/studio/widgetPresenter.py:562 msgid "Set the text's letter spacing" msgstr "Angiv tekstens bogstavsmellemrum" -#: ../src/ocrfeeder/studio/widgetPresenter.py:562 +#: ../src/ocrfeeder/studio/widgetPresenter.py:564 msgid "Set the text's line spacing" msgstr "Angiv tekstens linjemellemrum" -#: ../src/ocrfeeder/studio/widgetPresenter.py:567 +#: ../src/ocrfeeder/studio/widgetPresenter.py:569 msgid "_Line:" msgstr "_Linje:" # bogstav eller formatet? -#: ../src/ocrfeeder/studio/widgetPresenter.py:578 +#: ../src/ocrfeeder/studio/widgetPresenter.py:580 msgid "L_etter:" msgstr "_Bogstav:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:590 +#: ../src/ocrfeeder/studio/widgetPresenter.py:592 msgid "Sty_le" msgstr "_Stil" -#: ../src/ocrfeeder/studio/widgetPresenter.py:597 +#: ../src/ocrfeeder/studio/widgetPresenter.py:599 msgid "Angle" msgstr "Vinkel" -#: ../src/ocrfeeder/studio/widgetPresenter.py:601 +#: ../src/ocrfeeder/studio/widgetPresenter.py:603 msgid "OCR engine to recogni_ze this area:" msgstr "OCR-motor som skal _genkende dette område:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:615 +#: ../src/ocrfeeder/studio/widgetPresenter.py:617 msgid "Detect" msgstr "Opdag" -#: ../src/ocrfeeder/studio/widgetPresenter.py:617 +#: ../src/ocrfeeder/studio/widgetPresenter.py:619 msgid "Angle:" msgstr "Vinkel:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:702 +#: ../src/ocrfeeder/studio/widgetPresenter.py:704 msgid "Save File" msgstr "Gem fil" -#: ../src/ocrfeeder/studio/widgetPresenter.py:705 +#: ../src/ocrfeeder/studio/widgetPresenter.py:707 msgid "Open File" msgstr "Åbn fil" -#: ../src/ocrfeeder/studio/widgetPresenter.py:709 +#: ../src/ocrfeeder/studio/widgetPresenter.py:711 msgid "Open Folder" msgstr "Åbn mappe" # evt. at eksportere -#: ../src/ocrfeeder/studio/widgetPresenter.py:736 +#: ../src/ocrfeeder/studio/widgetPresenter.py:738 msgid "Pages to export" msgstr "Sider til eksport" -#: ../src/ocrfeeder/studio/widgetPresenter.py:738 +#: ../src/ocrfeeder/studio/widgetPresenter.py:740 msgid "All" msgstr "Alle" -#: ../src/ocrfeeder/studio/widgetPresenter.py:739 +#: ../src/ocrfeeder/studio/widgetPresenter.py:741 msgid "Current" msgstr "Aktuel" -#: ../src/ocrfeeder/studio/widgetPresenter.py:755 +#: ../src/ocrfeeder/studio/widgetPresenter.py:757 msgid "Choose the format" msgstr "Vælg formatet" -#: ../src/ocrfeeder/studio/widgetPresenter.py:772 -#: ../src/ocrfeeder/studio/widgetPresenter.py:779 +#: ../src/ocrfeeder/studio/widgetPresenter.py:774 +#: ../src/ocrfeeder/studio/widgetPresenter.py:781 msgid "Page size" msgstr "Sidestørrelse" -#: ../src/ocrfeeder/studio/widgetPresenter.py:784 +#: ../src/ocrfeeder/studio/widgetPresenter.py:786 msgid "Custom…" msgstr "Tilpasset…" -#: ../src/ocrfeeder/studio/widgetPresenter.py:798 +#: ../src/ocrfeeder/studio/widgetPresenter.py:800 msgid "_Height:" msgstr "_Højde:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:807 +#: ../src/ocrfeeder/studio/widgetPresenter.py:809 msgid "Affected pages" msgstr "Påvirkede sider" # måske aktuelT? ('indholdsområde' el. lign.) -#: ../src/ocrfeeder/studio/widgetPresenter.py:809 +#: ../src/ocrfeeder/studio/widgetPresenter.py:811 msgid "C_urrent" msgstr "_Aktuelt" -#: ../src/ocrfeeder/studio/widgetPresenter.py:812 +#: ../src/ocrfeeder/studio/widgetPresenter.py:814 msgid "_All" msgstr "_Alle" -#: ../src/ocrfeeder/studio/widgetPresenter.py:872 +#: ../src/ocrfeeder/studio/widgetPresenter.py:874 msgid "Unpaper Image Processor" msgstr "Unpaper - billedbehandling" -#: ../src/ocrfeeder/studio/widgetPresenter.py:886 +#: ../src/ocrfeeder/studio/widgetPresenter.py:888 msgid "Preview" msgstr "Forhåndsvisning" -#: ../src/ocrfeeder/studio/widgetPresenter.py:892 +#: ../src/ocrfeeder/studio/widgetPresenter.py:894 msgid "_Preview" msgstr "_Forhåndsvisning" # evt. Kører -#: ../src/ocrfeeder/studio/widgetPresenter.py:918 +#: ../src/ocrfeeder/studio/widgetPresenter.py:920 msgid "Performing Unpaper" msgstr "Udfører Unpaper" -#: ../src/ocrfeeder/studio/widgetPresenter.py:918 +#: ../src/ocrfeeder/studio/widgetPresenter.py:920 msgid "Performing unpaper. Please wait…" msgstr "Udfører unpaper. Vent venligst…" -#: ../src/ocrfeeder/studio/widgetPresenter.py:962 +#: ../src/ocrfeeder/studio/widgetPresenter.py:964 msgid "Noise Filter Intensity" msgstr "Intensitet på støjfilter" -#: ../src/ocrfeeder/studio/widgetPresenter.py:964 -#: ../src/ocrfeeder/studio/widgetPresenter.py:996 +#: ../src/ocrfeeder/studio/widgetPresenter.py:966 +#: ../src/ocrfeeder/studio/widgetPresenter.py:998 msgid "Default" msgstr "Standard" -#: ../src/ocrfeeder/studio/widgetPresenter.py:966 -#: ../src/ocrfeeder/studio/widgetPresenter.py:998 +#: ../src/ocrfeeder/studio/widgetPresenter.py:968 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1000 msgid "Custom" msgstr "Tilpasset" -#: ../src/ocrfeeder/studio/widgetPresenter.py:968 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1000 +#: ../src/ocrfeeder/studio/widgetPresenter.py:970 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1002 msgid "None" msgstr "Ingen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:994 +#: ../src/ocrfeeder/studio/widgetPresenter.py:996 msgid "Gray Filter Size" msgstr "Størrelse på gråfilter" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1026 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1028 msgid "Black Filter" msgstr "Sort filer" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1027 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1029 msgid "Use" msgstr "Brug" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1034 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1036 msgid "Extra Options" msgstr "Ekstra indstillinger" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1036 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1038 msgid "Unpaper's command line arguments" msgstr "Unpapers kommandolinjeargumenter" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1093 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1095 msgid "Unpaper Preferences" msgstr "Unpaperindstillinger" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1150 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1161 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1152 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1163 msgid "An error occurred!" msgstr "Der opstod en fejl!" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1232 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1234 msgid "Cancelled" msgstr "Afbrudt" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1246 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1248 msgid "Preferences" msgstr "Indstillinger" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1312 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1314 msgid "_General" msgstr "_Generelt" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1317 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1319 msgid "Temporary folder" msgstr "Midlertidig mappe" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1321 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1385 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1323 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1387 msgid "Choose" msgstr "Vælg" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1338 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1340 msgid "_Recognition" msgstr "_Genkendelse" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1343 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1345 msgid "Select boxes' colors" msgstr "Vælg boksenes farver" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1349 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1351 msgid "Te_xt areas' fill color" msgstr "Fyldfarve til _tekstområder" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1355 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1357 msgid "Text areas' _stroke color" msgstr "_Stregfarve til tekst" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1361 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1363 msgid "_Image areas' fill color" msgstr "Fyldfarve til _billedområder" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1381 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1383 msgid "Path to unpaper" msgstr "Sti til unpaper" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1393 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1643 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1681 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1699 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1790 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1395 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1645 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1683 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1701 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1792 msgid "OCR Engines" msgstr "OCR-motorer" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1395 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1397 msgid "" "The engine that should be used when performing the automatic recognition." msgstr "Motoren som skal bruges, når der udføres automatisk genkendelse." -#: ../src/ocrfeeder/studio/widgetPresenter.py:1406 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1408 msgid "Favorite _engine:" msgstr "Favorit_motor:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1421 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1423 msgid "Window size" msgstr "Vinduesstørrelse" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1422 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1424 msgid "A_utomatic" msgstr "_Automatisk" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1423 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1425 msgid "Cu_stom" msgstr "_Tilpasset" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1432 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1434 msgid "The window size is the detection algorithm's subdivision areas' size." msgstr "" "Vinduesstørrelsen er opdagelsesalgoritmens underafdelings områdestørrelse." -#: ../src/ocrfeeder/studio/widgetPresenter.py:1444 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1446 msgid "Columns Detection" msgstr "Kolonnegenkendelse" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1449 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1451 msgid "_Improve columns detection" msgstr "_Forbedring af kolonnegenkendelse" # "Brug en særlig algoritme[,] der køres efter den egentlige genkendelse, # for at forbedre..." -#: ../src/ocrfeeder/studio/widgetPresenter.py:1451 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1453 msgid "Use a post-detection algorithm to improve the detection of columns" msgstr "" "Brug en eftergenkendelsesalgoritme for at forbedre genkendelsen af kolonner" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1462 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1536 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1464 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1538 msgid "_Automatic" msgstr "_Automatisk" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1464 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1538 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1466 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1540 msgid "Custo_m" msgstr "_Tilpasset" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1468 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1470 msgid "The columns' minimum width in pixels" msgstr "Kolonnens minimumsbredde i billedpunkter" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1484 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1486 msgid "Minimum width that a column should have:" msgstr "Minimumsbredde som en kolonne bør have:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1505 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1507 msgid "Recognized Text" msgstr "Genkendt tekst" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1506 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1508 msgid "_Fix line breaks and hyphenization" msgstr "_Ret linjeskift og orddeling" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1508 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1510 msgid "" "Removes single line breaks and hyphenization from text generated by OCR " "engines" @@ -958,92 +982,92 @@ "Fjerner enlige linjeskift og orddeling fra tekst oprettet af OCR-motorer" # "Områder med indhold -#: ../src/ocrfeeder/studio/widgetPresenter.py:1518 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1520 msgid "Content Areas" msgstr "Indholdsområder" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1523 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1525 msgid "A_djust content areas' bounds" msgstr "_Juster indholdsområdets grænser" # "Brug en særlig algoritme[,] der køres efter den egentlige genkendelse, # til at gøre indholdområder mindre" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1525 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1527 msgid "Use a post-detection algorithm to shorten the contents areas' margins" msgstr "" "Brug en eftergenkendelsesalgoritme til at forkorte indholdsområdets margener" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1542 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1544 msgid "The maximum size for the content areas' margins in pixels" msgstr "Den maksimale størrelse på indholdsområdets margener i billedpunkter" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1559 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1561 msgid "Maximum size that the content areas' margins should have:" msgstr "Maksimal størrelse som indholdsområdets margener bør have:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1605 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1607 msgid "Image Pre-processing" msgstr "Forbehandling af billede" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1606 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1608 msgid "Des_kew images" msgstr "Op_retning af billeder (deskew)" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1608 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1610 msgid "Tries to straighten the images before they are added" msgstr "Forsøger at rette billederne op før de tilføjes" # Det er et program: unpaper is a post-processing tool for scanned sheets # of paper, especially for book pages that have been scanned from # previously created photocopies. -#: ../src/ocrfeeder/studio/widgetPresenter.py:1617 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1619 msgid "_Unpaper images" msgstr "_Unpaperbilleder" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1619 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1621 msgid "Cleans the image using the Unpaper pre-processor" msgstr "Renser billedet med brug af efterbehandlingsprogrammet Unpaper" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1623 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1625 msgid "Unpaper _Preferences" msgstr "_Indstillinger for Unpaper" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1657 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1659 msgid "Engines to be added" msgstr "Motorer der skal tilføjes" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1662 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1664 msgid "Include" msgstr "Inkluder" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1666 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1703 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1668 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1705 msgid "Engine" msgstr "Motor" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1707 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1709 msgid "Add" msgstr "Tilføj" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1709 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1711 msgid "Edit" msgstr "Rediger" # opdag, find # synes 'opdag' virker lidt sjov kan 'Find' bruges? -#: ../src/ocrfeeder/studio/widgetPresenter.py:1710 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1712 msgid "De_tect" msgstr "_Find" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1724 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1726 msgid "Are you sure you want to delete this engine?" msgstr "Er du sikker på, at du ønsker at slette denne mtor?" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1772 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1774 msgid "No OCR engines available" msgstr "Ingen tilgængelige OCR-motorer" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1773 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1775 msgid "" "No OCR engines were found in the system.\n" "Please make sure you have OCR engines installed and available." @@ -1052,64 +1076,67 @@ "Vær sikker på at du har OCR-motorer installeret, og de er tilgængelige." # hvad er %s. Bindestregen kan være forkert. -#: ../src/ocrfeeder/studio/widgetPresenter.py:1792 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1794 #, python-format msgid "%s engine" msgstr "%s-motor" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1816 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1818 msgid "_Name:" msgstr "_Navn:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1817 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1819 msgid "Engine name" msgstr "Motornavn" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1819 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1821 msgid "_Image format:" msgstr "_Billedformat:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1821 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1823 msgid "The required image format" msgstr "Det krævede billedformat" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1823 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1825 msgid "_Failure string:" msgstr "_Fejlstreng:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1825 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1827 msgid "The failure string or character that this engine uses" msgstr "Fejlstrengen eller tegnet som denne motor bruger" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1828 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1830 msgid "Engine _path:" msgstr "Motor_sti:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1830 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1832 msgid "The path to the engine program" msgstr "Stien til motorprogrammet" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1832 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1834 msgid "Engine _arguments:" msgstr "Motor_argumenter:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1834 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1836 msgid "Arguments: use $IMAGE for image and $FILE if it writes to a file" msgstr "" "Argumenter: Brug $IMAGE for billede og $FILE hvis den skriver til en fil" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1851 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1853 msgid "Error setting the new engine; please check your engine settings." msgstr "Fejl i opsætning af ny motor; tjek venligst din motoropsætning." -#: ../src/ocrfeeder/studio/widgetPresenter.py:1851 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1853 msgid "Warning" msgstr "Advarsel" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1887 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1889 msgid "translator-credits" msgstr "" "Joe Hansen, 2010, 2011.\n" "\n" "Dansk-gruppen \n" "Mere info: http://www.dansk-gruppen.dk" + +#~ msgid "Recognize Selected _Areas" +#~ msgstr "Genkend valgte _områder" diff -Nru ocrfeeder-0.7.6/po/de.po ocrfeeder-0.7.7/po/de.po --- ocrfeeder-0.7.6/po/de.po 2011-07-21 11:05:41.000000000 +0000 +++ ocrfeeder-0.7.7/po/de.po 2011-12-10 13:08:36.000000000 +0000 @@ -10,14 +10,16 @@ "Project-Id-Version: OCRfeeder master\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" "product=ocrfeeder&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2011-05-08 18:38+0000\n" -"PO-Revision-Date: 2011-05-22 15:18+0100\n" +"POT-Creation-Date: 2011-08-02 21:51+0000\n" +"PO-Revision-Date: 2011-08-19 14:03+0100\n" "Last-Translator: Mario Blättermann \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-Language: German\n" +"X-Poedit-Country: GERMANY\n" #: ../src/ocrfeeder/feeder/imageManipulation.py:38 #, python-format @@ -88,125 +90,146 @@ msgstr "ODT" #: ../src/ocrfeeder/studio/studioBuilder.py:63 +#: ../src/ocrfeeder/studio/studioBuilder.py:253 +msgid "PDF" +msgstr "PDF" + +#: ../src/ocrfeeder/studio/studioBuilder.py:64 msgid "Plain Text" msgstr "Einfacher Text" -#: ../src/ocrfeeder/studio/studioBuilder.py:185 +#: ../src/ocrfeeder/studio/studioBuilder.py:187 msgid "Images" msgstr "Bilder" -#: ../src/ocrfeeder/studio/studioBuilder.py:197 +#: ../src/ocrfeeder/studio/studioBuilder.py:199 msgid "Obtaining scanners" msgstr "Scanner werden ermittelt" -#: ../src/ocrfeeder/studio/studioBuilder.py:197 -#: ../src/ocrfeeder/studio/studioBuilder.py:223 -#: ../src/ocrfeeder/studio/studioBuilder.py:265 -#: ../src/ocrfeeder/studio/widgetModeler.py:457 -#: ../src/ocrfeeder/studio/widgetModeler.py:462 -#: ../src/ocrfeeder/studio/widgetModeler.py:514 -#: ../src/ocrfeeder/studio/widgetModeler.py:580 +#: ../src/ocrfeeder/studio/studioBuilder.py:199 +#: ../src/ocrfeeder/studio/studioBuilder.py:225 +#: ../src/ocrfeeder/studio/studioBuilder.py:267 +#: ../src/ocrfeeder/studio/widgetModeler.py:464 +#: ../src/ocrfeeder/studio/widgetModeler.py:469 +#: ../src/ocrfeeder/studio/widgetModeler.py:525 +#: ../src/ocrfeeder/studio/widgetModeler.py:591 msgid "Please wait…" msgstr "Bitte warten …" -#: ../src/ocrfeeder/studio/studioBuilder.py:223 +#: ../src/ocrfeeder/studio/studioBuilder.py:225 msgid "Scanning" msgstr "Scannen läuft" -#: ../src/ocrfeeder/studio/studioBuilder.py:228 +#: ../src/ocrfeeder/studio/studioBuilder.py:230 msgid "No scanner devices were found" msgstr "Es wurden keine Scanner gefunden" -#: ../src/ocrfeeder/studio/studioBuilder.py:229 -#: ../src/ocrfeeder/studio/studioBuilder.py:244 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1150 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1161 +#: ../src/ocrfeeder/studio/studioBuilder.py:231 +#: ../src/ocrfeeder/studio/studioBuilder.py:246 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1152 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1163 msgid "Error" msgstr "Fehler" -#: ../src/ocrfeeder/studio/studioBuilder.py:243 +#: ../src/ocrfeeder/studio/studioBuilder.py:245 msgid "Error scanning page" msgstr "Fehler beim Scannen der Seite" -#: ../src/ocrfeeder/studio/studioBuilder.py:251 -msgid "PDF" -msgstr "PDF" - -#: ../src/ocrfeeder/studio/studioBuilder.py:265 +#: ../src/ocrfeeder/studio/studioBuilder.py:267 msgid "Loading PDF" msgstr "PDF wird geladen" -#: ../src/ocrfeeder/studio/studioBuilder.py:294 +#: ../src/ocrfeeder/studio/studioBuilder.py:298 +msgid "What kind of PDF document do you wish?" +msgstr "Welche Art PDF-Dokument ist gewünscht?" + +#: ../src/ocrfeeder/studio/studioBuilder.py:300 +msgid "From scratch" +msgstr "Grundlegend" + +#: ../src/ocrfeeder/studio/studioBuilder.py:302 +msgid "Creates a new PDF from scratch." +msgstr "Erstellt ein grundlegend neues PDF." + +#: ../src/ocrfeeder/studio/studioBuilder.py:304 +msgid "Searchable PDF" +msgstr "Durchsuchbares PDF" + +#: ../src/ocrfeeder/studio/studioBuilder.py:305 +msgid "Creates a PDF based on the images but with searchable text." +msgstr "Erstellt ein PDF auf Basis der Bilder, aber mit durchsuchbarem Text." + +#: ../src/ocrfeeder/studio/studioBuilder.py:329 msgid "Export pages" msgstr "Seiten exportieren" -#: ../src/ocrfeeder/studio/studioBuilder.py:311 +#: ../src/ocrfeeder/studio/studioBuilder.py:346 msgid "Are you sure you want to delete the current image?" msgstr "Sind Sie sicher, das aktuelle Bild löschen zu wollen?" -#: ../src/ocrfeeder/studio/studioBuilder.py:358 +#: ../src/ocrfeeder/studio/studioBuilder.py:393 msgid "Are you sure you want to clear the project?" msgstr "Sind Sie sicher, das Projekt löschen zu wollen?" -#: ../src/ocrfeeder/studio/studioBuilder.py:415 +#: ../src/ocrfeeder/studio/studioBuilder.py:450 msgid "The project hasn't been saved." msgstr "Das Projekt wurde nicht gespeichert." -#: ../src/ocrfeeder/studio/studioBuilder.py:416 +#: ../src/ocrfeeder/studio/studioBuilder.py:451 msgid "Do you want to save it before closing?" msgstr "Möchten Sie es vor dem Schließen speichern?" -#: ../src/ocrfeeder/studio/studioBuilder.py:417 +#: ../src/ocrfeeder/studio/studioBuilder.py:452 msgid "Close anyway" msgstr "Dennoch schließen" -#: ../src/ocrfeeder/studio/widgetModeler.py:126 -#: ../src/ocrfeeder/studio/widgetPresenter.py:134 +#: ../src/ocrfeeder/studio/widgetModeler.py:125 +#: ../src/ocrfeeder/studio/widgetPresenter.py:136 msgid "Pages" msgstr "Seiten" -#: ../src/ocrfeeder/studio/widgetModeler.py:140 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1708 +#: ../src/ocrfeeder/studio/widgetModeler.py:139 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1710 msgid "Delete" msgstr "Löschen" -#: ../src/ocrfeeder/studio/widgetModeler.py:191 +#: ../src/ocrfeeder/studio/widgetModeler.py:190 msgid "Selectable areas" msgstr "Auswählbare Bereiche" -#: ../src/ocrfeeder/studio/widgetModeler.py:457 +#: ../src/ocrfeeder/studio/widgetModeler.py:464 msgid "Preparing image" msgstr "Bild wird vorbereitet" -#: ../src/ocrfeeder/studio/widgetModeler.py:459 +#: ../src/ocrfeeder/studio/widgetModeler.py:466 #, python-format msgid "Preparing image %(current_index)s/%(total)s" msgstr "Bild wird vorbereitet %(current_index)s/%(total)s" -#: ../src/ocrfeeder/studio/widgetModeler.py:514 +#: ../src/ocrfeeder/studio/widgetModeler.py:525 msgid "Deskewing image" msgstr "Bild wird begradigt" -#: ../src/ocrfeeder/studio/widgetModeler.py:541 +#: ../src/ocrfeeder/studio/widgetModeler.py:552 msgid "No images added" msgstr "Keine Bilder hinzugefügt" -#: ../src/ocrfeeder/studio/widgetModeler.py:544 +#: ../src/ocrfeeder/studio/widgetModeler.py:555 #, python-format msgid "Zoom: %s %%" msgstr "Vergrößerungsstufe: %s %%" -#: ../src/ocrfeeder/studio/widgetModeler.py:546 +#: ../src/ocrfeeder/studio/widgetModeler.py:557 #, python-format msgid "Resolution: %.2f x %.2f" msgstr "Auflösung: %.2f x %.2f" -#: ../src/ocrfeeder/studio/widgetModeler.py:548 +#: ../src/ocrfeeder/studio/widgetModeler.py:559 #, python-format msgid "Page size: %i x %i" msgstr "Seitengröße: %i x %i" -#: ../src/ocrfeeder/studio/widgetModeler.py:562 +#: ../src/ocrfeeder/studio/widgetModeler.py:573 msgid "" "There are changes that may be overwritten by the new recognition.\n" "\n" @@ -217,37 +240,41 @@ "\n" "Wollen Sie wirklich fortsetzen?" -#: ../src/ocrfeeder/studio/widgetModeler.py:580 +#: ../src/ocrfeeder/studio/widgetModeler.py:591 msgid "Recognizing Page" msgstr "Seite wird erkannt" -#: ../src/ocrfeeder/studio/widgetModeler.py:597 +#: ../src/ocrfeeder/studio/widgetModeler.py:608 msgid "Recognizing Document" msgstr "Dokument wird erkannt" -#: ../src/ocrfeeder/studio/widgetModeler.py:598 +#: ../src/ocrfeeder/studio/widgetModeler.py:609 #, python-format msgid "Recognizing page %(page_number)s/%(total_pages)s. Please wait…" msgstr "Seite %(page_number)s von %(total_pages)s wird erkannt. Bitte warten …" -#: ../src/ocrfeeder/studio/widgetModeler.py:666 +#: ../src/ocrfeeder/studio/widgetModeler.py:677 msgid "Export to HTML" msgstr "Im HTML-Format exportieren" -#: ../src/ocrfeeder/studio/widgetModeler.py:680 -#: ../src/ocrfeeder/studio/widgetPresenter.py:213 +#: ../src/ocrfeeder/studio/widgetModeler.py:691 +#: ../src/ocrfeeder/studio/widgetPresenter.py:215 msgid "Export to ODT" msgstr "Im ODT-Format exportieren" -#: ../src/ocrfeeder/studio/widgetModeler.py:691 +#: ../src/ocrfeeder/studio/widgetModeler.py:702 msgid "Export to Plain Text" msgstr "In einfachen Text exportieren" -#: ../src/ocrfeeder/studio/widgetModeler.py:712 +#: ../src/ocrfeeder/studio/widgetModeler.py:713 +msgid "Export to PDF" +msgstr "PDF-Export" + +#: ../src/ocrfeeder/studio/widgetModeler.py:735 msgid "OCRFeeder Projects" msgstr "OCRFeeder-Projekte" -#: ../src/ocrfeeder/studio/widgetModeler.py:770 +#: ../src/ocrfeeder/studio/widgetModeler.py:793 #, python-format msgid "" "A file named \"%(name)s\" already exists. Do you want to replace it?\n" @@ -260,683 +287,683 @@ "Die Datei existiert in »%(dir)s«. Wenn Sie diese ersetzen, werden deren " "Inahlte überschrieben." -#: ../src/ocrfeeder/studio/widgetModeler.py:777 +#: ../src/ocrfeeder/studio/widgetModeler.py:800 msgid "Replace" msgstr "Ersetzen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:155 +#: ../src/ocrfeeder/studio/widgetPresenter.py:157 msgid "_File" msgstr "_Datei" -#: ../src/ocrfeeder/studio/widgetPresenter.py:156 +#: ../src/ocrfeeder/studio/widgetPresenter.py:158 msgid "_Quit" msgstr "_Beenden" -#: ../src/ocrfeeder/studio/widgetPresenter.py:156 +#: ../src/ocrfeeder/studio/widgetPresenter.py:158 msgid "Exit the program" msgstr "Programm beenden" -#: ../src/ocrfeeder/studio/widgetPresenter.py:157 +#: ../src/ocrfeeder/studio/widgetPresenter.py:159 msgid "_Open" msgstr "_Öffnen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:157 +#: ../src/ocrfeeder/studio/widgetPresenter.py:159 msgid "Open project" msgstr "Projekt öffen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:158 +#: ../src/ocrfeeder/studio/widgetPresenter.py:160 msgid "_Save" msgstr "_Speichern" -#: ../src/ocrfeeder/studio/widgetPresenter.py:158 +#: ../src/ocrfeeder/studio/widgetPresenter.py:160 msgid "Save project" msgstr "Projekt speichern" -#: ../src/ocrfeeder/studio/widgetPresenter.py:159 +#: ../src/ocrfeeder/studio/widgetPresenter.py:161 msgid "_Save As…" msgstr "_Speichern unter …" -#: ../src/ocrfeeder/studio/widgetPresenter.py:159 +#: ../src/ocrfeeder/studio/widgetPresenter.py:161 msgid "Save project with a chosen name" msgstr "Projekt unter bestimmtem Namen speichern" -#: ../src/ocrfeeder/studio/widgetPresenter.py:160 +#: ../src/ocrfeeder/studio/widgetPresenter.py:162 msgid "_Add Image" msgstr "Bild _hinzufügen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:160 +#: ../src/ocrfeeder/studio/widgetPresenter.py:162 msgid "Add another image" msgstr "Weiteres Bild hinzufügen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:161 +#: ../src/ocrfeeder/studio/widgetPresenter.py:163 msgid "Add _Folder" msgstr "_Ordner hinzufügen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:161 +#: ../src/ocrfeeder/studio/widgetPresenter.py:163 msgid "Add all images in a folder" msgstr "Alle Bilder aus einem Ordner hinzufügen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:162 +#: ../src/ocrfeeder/studio/widgetPresenter.py:164 msgid "Append Project" msgstr "Projekt anfügen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:162 +#: ../src/ocrfeeder/studio/widgetPresenter.py:164 msgid "Load a project and append it to the current one" msgstr "Ein Projekt laden und ans derzeitige anfügen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:163 +#: ../src/ocrfeeder/studio/widgetPresenter.py:165 msgid "_Import PDF" msgstr "PDF _importieren" -#: ../src/ocrfeeder/studio/widgetPresenter.py:163 +#: ../src/ocrfeeder/studio/widgetPresenter.py:165 msgid "Import PDF" msgstr "PDF importieren" -#: ../src/ocrfeeder/studio/widgetPresenter.py:164 +#: ../src/ocrfeeder/studio/widgetPresenter.py:166 msgid "_Export…" msgstr "_Exportieren …" -#: ../src/ocrfeeder/studio/widgetPresenter.py:164 +#: ../src/ocrfeeder/studio/widgetPresenter.py:166 msgid "Export to a chosen format" msgstr "In ein bestimmtes Format exportieren" -#: ../src/ocrfeeder/studio/widgetPresenter.py:165 +#: ../src/ocrfeeder/studio/widgetPresenter.py:167 msgid "_Edit" msgstr "_Bearbeiten" -#: ../src/ocrfeeder/studio/widgetPresenter.py:166 +#: ../src/ocrfeeder/studio/widgetPresenter.py:168 msgid "_Edit Page" msgstr "Seite b_earbeiten" -#: ../src/ocrfeeder/studio/widgetPresenter.py:166 +#: ../src/ocrfeeder/studio/widgetPresenter.py:168 msgid "Edit page settings" msgstr "Seiteneinstellungen bearbeiten" -#: ../src/ocrfeeder/studio/widgetPresenter.py:167 +#: ../src/ocrfeeder/studio/widgetPresenter.py:169 msgid "_Preferences" msgstr "_Einstellungen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:167 +#: ../src/ocrfeeder/studio/widgetPresenter.py:169 msgid "Configure the application" msgstr "Programmkonfiguration" -#: ../src/ocrfeeder/studio/widgetPresenter.py:168 +#: ../src/ocrfeeder/studio/widgetPresenter.py:170 msgid "_Delete Page" msgstr "Seite _entfernen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:168 +#: ../src/ocrfeeder/studio/widgetPresenter.py:170 msgid "Delete current page" msgstr "Aktuelle Seite entfernen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:169 +#: ../src/ocrfeeder/studio/widgetPresenter.py:171 msgid "_Clear Project" msgstr "Projekt zurü_cksetzen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:169 +#: ../src/ocrfeeder/studio/widgetPresenter.py:171 msgid "Delete all images" msgstr "Alle Bilder entfernen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:170 +#: ../src/ocrfeeder/studio/widgetPresenter.py:172 msgid "_View" msgstr "_Ansicht" -#: ../src/ocrfeeder/studio/widgetPresenter.py:171 +#: ../src/ocrfeeder/studio/widgetPresenter.py:173 msgid "Zoom In" msgstr "Ansicht vergrößern" -#: ../src/ocrfeeder/studio/widgetPresenter.py:172 +#: ../src/ocrfeeder/studio/widgetPresenter.py:174 msgid "Zoom Out" msgstr "Ansicht verkleinern" -#: ../src/ocrfeeder/studio/widgetPresenter.py:173 +#: ../src/ocrfeeder/studio/widgetPresenter.py:175 msgid "Best Fit" msgstr "Einpassen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:174 +#: ../src/ocrfeeder/studio/widgetPresenter.py:176 msgid "Normal Size" msgstr "Normale Größe" -#: ../src/ocrfeeder/studio/widgetPresenter.py:175 +#: ../src/ocrfeeder/studio/widgetPresenter.py:177 msgid "_Document" msgstr "_Dokument" -#: ../src/ocrfeeder/studio/widgetPresenter.py:176 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1376 +#: ../src/ocrfeeder/studio/widgetPresenter.py:178 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1378 msgid "_Tools" msgstr "_Werkzeuge" -#: ../src/ocrfeeder/studio/widgetPresenter.py:177 +#: ../src/ocrfeeder/studio/widgetPresenter.py:179 msgid "_OCR Engines" msgstr "_OCR-Anwendungen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:177 +#: ../src/ocrfeeder/studio/widgetPresenter.py:179 msgid "Manage OCR engines" msgstr "OCR-Anwendungen verwalten" -#: ../src/ocrfeeder/studio/widgetPresenter.py:178 +#: ../src/ocrfeeder/studio/widgetPresenter.py:180 msgid "_Unpaper" msgstr "_Unpaper" -#: ../src/ocrfeeder/studio/widgetPresenter.py:178 +#: ../src/ocrfeeder/studio/widgetPresenter.py:180 msgid "Process image with unpaper" msgstr "Bild mit Unpaper verarbeiten" -#: ../src/ocrfeeder/studio/widgetPresenter.py:179 +#: ../src/ocrfeeder/studio/widgetPresenter.py:181 msgid "Image Des_kewer" msgstr "Bilder be_gradigen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:180 +#: ../src/ocrfeeder/studio/widgetPresenter.py:182 msgid "Trie to straighten the image" msgstr "Versuchen, das Bild zu begradigen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:182 -#: ../src/ocrfeeder/studio/widgetPresenter.py:183 +#: ../src/ocrfeeder/studio/widgetPresenter.py:184 +#: ../src/ocrfeeder/studio/widgetPresenter.py:185 msgid "_Help" msgstr "_Hilfe" -#: ../src/ocrfeeder/studio/widgetPresenter.py:183 +#: ../src/ocrfeeder/studio/widgetPresenter.py:185 msgid "Help contents" msgstr "Inhalt der Hilfe" -#: ../src/ocrfeeder/studio/widgetPresenter.py:184 +#: ../src/ocrfeeder/studio/widgetPresenter.py:186 msgid "_About" msgstr "_Info" -#: ../src/ocrfeeder/studio/widgetPresenter.py:184 +#: ../src/ocrfeeder/studio/widgetPresenter.py:186 msgid "About this application" msgstr "Info zu dieser Anwendung" -#: ../src/ocrfeeder/studio/widgetPresenter.py:186 +#: ../src/ocrfeeder/studio/widgetPresenter.py:188 msgid "_Recognize Document" msgstr "Dokument e_rkennen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:187 +#: ../src/ocrfeeder/studio/widgetPresenter.py:189 msgid "Automatically detect and recognize all pages" msgstr "Automatische Detektion und Erkennung aller Seiten" -#: ../src/ocrfeeder/studio/widgetPresenter.py:190 +#: ../src/ocrfeeder/studio/widgetPresenter.py:192 msgid "R_ecognize Page" msgstr "Seite e_rkennen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:191 +#: ../src/ocrfeeder/studio/widgetPresenter.py:193 msgid "Automatically detect and recognize the current page" msgstr "Automatische Detektion und Erkennung der aktuellen Seite" -#: ../src/ocrfeeder/studio/widgetPresenter.py:194 +#: ../src/ocrfeeder/studio/widgetPresenter.py:196 msgid "Recognize _Selected Areas" msgstr "Au_sgewählte Bereiche erkennen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:195 +#: ../src/ocrfeeder/studio/widgetPresenter.py:197 msgid "Recognize Selected Areas" msgstr "Ausgewählte Bereiche berücksichtigen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:198 +#: ../src/ocrfeeder/studio/widgetPresenter.py:200 msgid "Select _All Areas" msgstr "_Alle Bereiche auswählen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:199 +#: ../src/ocrfeeder/studio/widgetPresenter.py:201 msgid "Select all content areas" msgstr "Alle Bereiche des Inhalts auswählen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:202 +#: ../src/ocrfeeder/studio/widgetPresenter.py:204 msgid "Select _Previous Area" msgstr "_Vorherigen Bereich auswählen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:203 +#: ../src/ocrfeeder/studio/widgetPresenter.py:205 msgid "Select the previous area from the content areas" msgstr "Den vorherigen Bereich aus den Bereichen des Inhalts auswählen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:206 +#: ../src/ocrfeeder/studio/widgetPresenter.py:208 msgid "Select _Next Area" msgstr "_Nächsten Bereich auswählen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:207 +#: ../src/ocrfeeder/studio/widgetPresenter.py:209 msgid "Select the next area from the content areas" msgstr "Den nächsten Bereich aus den Bereichen des Inhalts auswählen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:210 +#: ../src/ocrfeeder/studio/widgetPresenter.py:212 msgid "Delete Selected Areas" msgstr "Ausgewählte Bereiche löschen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:211 +#: ../src/ocrfeeder/studio/widgetPresenter.py:213 msgid "Deletes all the currently selected content areas" msgstr "Löscht alle aktuell ausgewählten Inhaltsbereiche" -#: ../src/ocrfeeder/studio/widgetPresenter.py:213 +#: ../src/ocrfeeder/studio/widgetPresenter.py:215 msgid "_Generate ODT" msgstr "ODT erzeu_gen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:215 +#: ../src/ocrfeeder/studio/widgetPresenter.py:217 msgid "Import Page From S_canner" msgstr "Seite vom S_canner importieren" -#: ../src/ocrfeeder/studio/widgetPresenter.py:217 +#: ../src/ocrfeeder/studio/widgetPresenter.py:219 msgid "Import From Scanner" msgstr "Vom Scanner importieren" -#: ../src/ocrfeeder/studio/widgetPresenter.py:220 +#: ../src/ocrfeeder/studio/widgetPresenter.py:222 msgid "_Copy to Clipboard" msgstr "In die Zwischenablage _kopieren" -#: ../src/ocrfeeder/studio/widgetPresenter.py:222 +#: ../src/ocrfeeder/studio/widgetPresenter.py:224 msgid "Copy recognized text to clipboard" msgstr "Erkannten Text in die Zwischenablage kopieren" -#: ../src/ocrfeeder/studio/widgetPresenter.py:225 +#: ../src/ocrfeeder/studio/widgetPresenter.py:227 msgid "Spell_checker" msgstr "Rechts_chreibprüfung" -#: ../src/ocrfeeder/studio/widgetPresenter.py:227 +#: ../src/ocrfeeder/studio/widgetPresenter.py:229 msgid "Spell Check Recognized Text" msgstr "Rechtschreibung des erkannten Texts prüfen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:301 +#: ../src/ocrfeeder/studio/widgetPresenter.py:303 msgid "Area editor" msgstr "Bereichseditor" -#: ../src/ocrfeeder/studio/widgetPresenter.py:309 +#: ../src/ocrfeeder/studio/widgetPresenter.py:311 msgid "Sets the content area's upper left corner's X coordinate" msgstr "Legt die X-Koordinate der oberen linke Ecke des Inhaltsbereichs fest" -#: ../src/ocrfeeder/studio/widgetPresenter.py:313 +#: ../src/ocrfeeder/studio/widgetPresenter.py:315 msgid "Sets the content area's upper left corner's Y coordinate" msgstr "Legt die Y-Koordinate der oberen linke Ecke des Inhaltsbereichs fest" -#: ../src/ocrfeeder/studio/widgetPresenter.py:317 +#: ../src/ocrfeeder/studio/widgetPresenter.py:319 msgid "Sets the content area's width" msgstr "Legt die Breite des Inhaltsbereichs fest" -#: ../src/ocrfeeder/studio/widgetPresenter.py:320 +#: ../src/ocrfeeder/studio/widgetPresenter.py:322 msgid "Sets the content area's height" msgstr "Legt die Höhe des Inhaltsbereichs fest" -#: ../src/ocrfeeder/studio/widgetPresenter.py:323 -#: ../src/ocrfeeder/studio/widgetPresenter.py:539 +#: ../src/ocrfeeder/studio/widgetPresenter.py:325 +#: ../src/ocrfeeder/studio/widgetPresenter.py:541 msgid "_Text" msgstr "_Text" -#: ../src/ocrfeeder/studio/widgetPresenter.py:324 +#: ../src/ocrfeeder/studio/widgetPresenter.py:326 msgid "Set this content area to be the text type" msgstr "Legt den Typ dieses Inhaltsbereichs als Text fest" -#: ../src/ocrfeeder/studio/widgetPresenter.py:325 +#: ../src/ocrfeeder/studio/widgetPresenter.py:327 msgid "_Image" msgstr "B_ild" -#: ../src/ocrfeeder/studio/widgetPresenter.py:326 +#: ../src/ocrfeeder/studio/widgetPresenter.py:328 msgid "Set this content area to be the image type" msgstr "Legt den Typ dieses Inhaltsbereichs als Bild fest" -#: ../src/ocrfeeder/studio/widgetPresenter.py:327 +#: ../src/ocrfeeder/studio/widgetPresenter.py:329 msgid "Type" msgstr "Typ" -#: ../src/ocrfeeder/studio/widgetPresenter.py:337 +#: ../src/ocrfeeder/studio/widgetPresenter.py:339 msgid "Clip" msgstr "Beschneiden" -#: ../src/ocrfeeder/studio/widgetPresenter.py:421 +#: ../src/ocrfeeder/studio/widgetPresenter.py:423 msgid "Bounds" msgstr "Grenzen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:426 +#: ../src/ocrfeeder/studio/widgetPresenter.py:428 msgid "_X:" msgstr "_X:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:435 +#: ../src/ocrfeeder/studio/widgetPresenter.py:437 msgid "_Y:" msgstr "_Y:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:447 -#: ../src/ocrfeeder/studio/widgetPresenter.py:793 +#: ../src/ocrfeeder/studio/widgetPresenter.py:449 +#: ../src/ocrfeeder/studio/widgetPresenter.py:795 msgid "_Width:" msgstr "B_reite:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:456 +#: ../src/ocrfeeder/studio/widgetPresenter.py:458 msgid "Hei_ght:" msgstr "H_öhe:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:479 +#: ../src/ocrfeeder/studio/widgetPresenter.py:481 msgid "Left" msgstr "Links" -#: ../src/ocrfeeder/studio/widgetPresenter.py:483 +#: ../src/ocrfeeder/studio/widgetPresenter.py:485 msgid "Set text to be left aligned" msgstr "Text als linksbündig setzen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:485 +#: ../src/ocrfeeder/studio/widgetPresenter.py:487 msgid "Center" msgstr "Mitte" -#: ../src/ocrfeeder/studio/widgetPresenter.py:490 +#: ../src/ocrfeeder/studio/widgetPresenter.py:492 msgid "Set text to be centered" msgstr "Text als zentriert setzen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:492 +#: ../src/ocrfeeder/studio/widgetPresenter.py:494 msgid "Right" msgstr "Rechts" -#: ../src/ocrfeeder/studio/widgetPresenter.py:497 +#: ../src/ocrfeeder/studio/widgetPresenter.py:499 msgid "Set text to be right aligned" msgstr "Text als rechtsbündig setzen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:499 +#: ../src/ocrfeeder/studio/widgetPresenter.py:501 msgid "Fill" msgstr "Füllen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:504 +#: ../src/ocrfeeder/studio/widgetPresenter.py:506 msgid "Set text to be fill its area" msgstr "Text als bereichsfüllend setzen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:510 +#: ../src/ocrfeeder/studio/widgetPresenter.py:512 msgid "OC_R" msgstr "OC_R" -#: ../src/ocrfeeder/studio/widgetPresenter.py:511 +#: ../src/ocrfeeder/studio/widgetPresenter.py:513 msgid "Perform OCR on this content area using the selected OCR engine." msgstr "" "Texterkennung für diesen Inhaltsbereich mit der gewählten OCR-Anwendung " "ausführen." -#: ../src/ocrfeeder/studio/widgetPresenter.py:517 +#: ../src/ocrfeeder/studio/widgetPresenter.py:519 msgid "OCR engine to recognize this content area" msgstr "OCR-Anwendung zur Erkennung dieses Inhaltsbereichs" #. Text Properties -#: ../src/ocrfeeder/studio/widgetPresenter.py:525 +#: ../src/ocrfeeder/studio/widgetPresenter.py:527 msgid "Text Properties" msgstr "Texteigenschaften" -#: ../src/ocrfeeder/studio/widgetPresenter.py:547 +#: ../src/ocrfeeder/studio/widgetPresenter.py:549 msgid "Font" msgstr "Schriftart" -#: ../src/ocrfeeder/studio/widgetPresenter.py:554 +#: ../src/ocrfeeder/studio/widgetPresenter.py:556 msgid "Align" msgstr "Ausrichten" -#: ../src/ocrfeeder/studio/widgetPresenter.py:558 +#: ../src/ocrfeeder/studio/widgetPresenter.py:560 msgid "Spacing" msgstr "Abstand" -#: ../src/ocrfeeder/studio/widgetPresenter.py:560 +#: ../src/ocrfeeder/studio/widgetPresenter.py:562 msgid "Set the text's letter spacing" msgstr "Zeichenabstand für den Text festlegen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:562 +#: ../src/ocrfeeder/studio/widgetPresenter.py:564 msgid "Set the text's line spacing" msgstr "Zeilenabstand für den Text festlegen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:567 +#: ../src/ocrfeeder/studio/widgetPresenter.py:569 msgid "_Line:" msgstr "Zei_le:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:578 +#: ../src/ocrfeeder/studio/widgetPresenter.py:580 msgid "L_etter:" msgstr "Buchstab_e:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:590 +#: ../src/ocrfeeder/studio/widgetPresenter.py:592 msgid "Sty_le" msgstr "Sti_l" -#: ../src/ocrfeeder/studio/widgetPresenter.py:597 +#: ../src/ocrfeeder/studio/widgetPresenter.py:599 msgid "Angle" msgstr "Winkel" -#: ../src/ocrfeeder/studio/widgetPresenter.py:601 +#: ../src/ocrfeeder/studio/widgetPresenter.py:603 msgid "OCR engine to recogni_ze this area:" msgstr "OCR-Anwendung zur Er_kennung dieses Bereichs:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:615 +#: ../src/ocrfeeder/studio/widgetPresenter.py:617 msgid "Detect" msgstr "Erkennen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:617 +#: ../src/ocrfeeder/studio/widgetPresenter.py:619 msgid "Angle:" msgstr "Winkel:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:702 +#: ../src/ocrfeeder/studio/widgetPresenter.py:704 msgid "Save File" msgstr "Datei speichern" -#: ../src/ocrfeeder/studio/widgetPresenter.py:705 +#: ../src/ocrfeeder/studio/widgetPresenter.py:707 msgid "Open File" msgstr "Datei öffen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:709 +#: ../src/ocrfeeder/studio/widgetPresenter.py:711 msgid "Open Folder" msgstr "Ordner öffnen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:736 +#: ../src/ocrfeeder/studio/widgetPresenter.py:738 msgid "Pages to export" msgstr "Seiten zum Exportieren" -#: ../src/ocrfeeder/studio/widgetPresenter.py:738 +#: ../src/ocrfeeder/studio/widgetPresenter.py:740 msgid "All" msgstr "Alle" -#: ../src/ocrfeeder/studio/widgetPresenter.py:739 +#: ../src/ocrfeeder/studio/widgetPresenter.py:741 msgid "Current" msgstr "Aktuelle" -#: ../src/ocrfeeder/studio/widgetPresenter.py:755 +#: ../src/ocrfeeder/studio/widgetPresenter.py:757 msgid "Choose the format" msgstr "Format wählen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:772 -#: ../src/ocrfeeder/studio/widgetPresenter.py:779 +#: ../src/ocrfeeder/studio/widgetPresenter.py:774 +#: ../src/ocrfeeder/studio/widgetPresenter.py:781 msgid "Page size" msgstr "Seitengröße" -#: ../src/ocrfeeder/studio/widgetPresenter.py:784 +#: ../src/ocrfeeder/studio/widgetPresenter.py:786 msgid "Custom…" msgstr "Benutzerdefiniert …" -#: ../src/ocrfeeder/studio/widgetPresenter.py:798 +#: ../src/ocrfeeder/studio/widgetPresenter.py:800 msgid "_Height:" msgstr "H_öhe:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:807 +#: ../src/ocrfeeder/studio/widgetPresenter.py:809 msgid "Affected pages" msgstr "Betroffene Seiten" -#: ../src/ocrfeeder/studio/widgetPresenter.py:809 +#: ../src/ocrfeeder/studio/widgetPresenter.py:811 msgid "C_urrent" msgstr "Akt_uelle" -#: ../src/ocrfeeder/studio/widgetPresenter.py:812 +#: ../src/ocrfeeder/studio/widgetPresenter.py:814 msgid "_All" msgstr "_Alle" -#: ../src/ocrfeeder/studio/widgetPresenter.py:872 +#: ../src/ocrfeeder/studio/widgetPresenter.py:874 msgid "Unpaper Image Processor" msgstr "Unpaper Bild-Prozessor" -#: ../src/ocrfeeder/studio/widgetPresenter.py:886 +#: ../src/ocrfeeder/studio/widgetPresenter.py:888 msgid "Preview" msgstr "Vorschau" -#: ../src/ocrfeeder/studio/widgetPresenter.py:892 +#: ../src/ocrfeeder/studio/widgetPresenter.py:894 msgid "_Preview" msgstr "_Vorschau" -#: ../src/ocrfeeder/studio/widgetPresenter.py:918 +#: ../src/ocrfeeder/studio/widgetPresenter.py:920 msgid "Performing Unpaper" msgstr "Unpaper wird ausgeführt" -#: ../src/ocrfeeder/studio/widgetPresenter.py:918 +#: ../src/ocrfeeder/studio/widgetPresenter.py:920 msgid "Performing unpaper. Please wait…" msgstr "Unpaper wird ausgeführt. Bitte warten …" -#: ../src/ocrfeeder/studio/widgetPresenter.py:962 +#: ../src/ocrfeeder/studio/widgetPresenter.py:964 msgid "Noise Filter Intensity" msgstr "Entstörfilter-Intensität" -#: ../src/ocrfeeder/studio/widgetPresenter.py:964 -#: ../src/ocrfeeder/studio/widgetPresenter.py:996 +#: ../src/ocrfeeder/studio/widgetPresenter.py:966 +#: ../src/ocrfeeder/studio/widgetPresenter.py:998 msgid "Default" msgstr "Standard" -#: ../src/ocrfeeder/studio/widgetPresenter.py:966 -#: ../src/ocrfeeder/studio/widgetPresenter.py:998 +#: ../src/ocrfeeder/studio/widgetPresenter.py:968 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1000 msgid "Custom" msgstr "Benutzerdefiniert" -#: ../src/ocrfeeder/studio/widgetPresenter.py:968 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1000 +#: ../src/ocrfeeder/studio/widgetPresenter.py:970 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1002 msgid "None" msgstr "Keine" -#: ../src/ocrfeeder/studio/widgetPresenter.py:994 +#: ../src/ocrfeeder/studio/widgetPresenter.py:996 msgid "Gray Filter Size" msgstr "Graufilter-Größe" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1026 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1028 msgid "Black Filter" msgstr "Schwarzfilter" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1027 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1029 msgid "Use" msgstr "Nutzen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1034 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1036 msgid "Extra Options" msgstr "Extra-Optionen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1036 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1038 msgid "Unpaper's command line arguments" msgstr "Befehlzeilenargumente für Unpaper:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1093 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1095 msgid "Unpaper Preferences" msgstr "Unpaper-Einstellungen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1150 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1161 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1152 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1163 msgid "An error occurred!" msgstr "Ein Fehler ist aufgetreten!" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1232 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1234 msgid "Cancelled" msgstr "Abgebrochen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1246 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1248 msgid "Preferences" msgstr "Einstellungen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1312 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1314 msgid "_General" msgstr "_Allgemein" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1317 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1319 msgid "Temporary folder" msgstr "Temporärer Ordner" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1321 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1385 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1323 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1387 msgid "Choose" msgstr "Wählen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1338 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1340 msgid "_Recognition" msgstr "E_rkennung" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1343 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1345 msgid "Select boxes' colors" msgstr "Box-Farben wählen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1349 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1351 msgid "Te_xt areas' fill color" msgstr "Te_xtbereich-Füllfarbe" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1355 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1357 msgid "Text areas' _stroke color" msgstr "Buchstaben-Umrandung_sfarbe" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1361 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1363 msgid "_Image areas' fill color" msgstr "B_ildbereichs-Füllfarbe" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1381 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1383 msgid "Path to unpaper" msgstr "Pfad zu Unpaper" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1393 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1643 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1681 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1699 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1790 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1395 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1645 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1683 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1701 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1792 msgid "OCR Engines" msgstr "OCR-Anwendungen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1395 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1397 msgid "" "The engine that should be used when performing the automatic recognition." msgstr "" "Die Anwendung, die bei einer automatischen Erkennung verwendet werden soll." -#: ../src/ocrfeeder/studio/widgetPresenter.py:1406 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1408 msgid "Favorite _engine:" msgstr "Bevorzugte Anw_endung:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1421 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1423 msgid "Window size" msgstr "Fenstergröße" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1422 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1424 msgid "A_utomatic" msgstr "A_utomatisch" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1423 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1425 msgid "Cu_stom" msgstr "Benut_zerdefiniert" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1432 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1434 msgid "The window size is the detection algorithm's subdivision areas' size." msgstr "" "Die Fenstergröße ist die Größe des Teilbereichs für den Erkennungsalgorithmus." -#: ../src/ocrfeeder/studio/widgetPresenter.py:1444 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1446 msgid "Columns Detection" msgstr "Spaltenerkennung" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1449 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1451 msgid "_Improve columns detection" msgstr "Spaltenerkennung _verbessern" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1451 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1453 msgid "Use a post-detection algorithm to improve the detection of columns" msgstr "" "Nach der Erkennung einen Algorithmus anwenden, der die Erkennung von Spalten " "verbessert" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1462 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1536 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1464 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1538 msgid "_Automatic" msgstr "_Automatisch" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1464 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1538 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1466 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1540 msgid "Custo_m" msgstr "_Benutzerdefiniert" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1468 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1470 msgid "The columns' minimum width in pixels" msgstr "Minimale Spaltenbreite in Pixel" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1484 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1486 msgid "Minimum width that a column should have:" msgstr "Minimale Breite einer Spalte:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1505 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1507 msgid "Recognized Text" msgstr "Erkannter Text" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1506 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1508 msgid "_Fix line breaks and hyphenization" msgstr "Zeilenumbrüche und Bindestriche reparieren" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1508 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1510 msgid "" "Removes single line breaks and hyphenization from text generated by OCR " "engines" @@ -944,86 +971,86 @@ "Entfernt einzelne Zeilenumbrüche und Bindestriche aus dem von den OCR-" "Anwendungen erzeugten Text" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1518 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1520 msgid "Content Areas" msgstr "Inhaltsbereiche" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1523 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1525 msgid "A_djust content areas' bounds" msgstr "Grenzen des Inhaltsbereichs anpassen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1525 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1527 msgid "Use a post-detection algorithm to shorten the contents areas' margins" msgstr "" "Nach der Erkennung einen Algorithmus anwenden, der die Ränder der " "Inhaltsbereiche verkleinert" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1542 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1544 msgid "The maximum size for the content areas' margins in pixels" msgstr "Die maximale Größe der Ränder eines Inhaltsbereichs in Pixel" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1559 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1561 msgid "Maximum size that the content areas' margins should have:" msgstr "Maximale Größe der Ränder eines Inhaltsbereichs:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1605 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1607 msgid "Image Pre-processing" msgstr "Bild-Vorverarbeitung" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1606 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1608 msgid "Des_kew images" msgstr "Bilder be_gradigen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1608 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1610 msgid "Tries to straighten the images before they are added" msgstr "Versucht, das Bild zu begradigen, bevor es hinzugefügt wird" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1617 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1619 msgid "_Unpaper images" msgstr "_Unpaper-Bilder" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1619 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1621 msgid "Cleans the image using the Unpaper pre-processor" msgstr "Bereinigt das Bild mit Hilfe der Vorverarbeitung in Unpaper" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1623 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1625 msgid "Unpaper _Preferences" msgstr "Un_paper-Einstellungen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1657 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1659 msgid "Engines to be added" msgstr "Hinzuzufügende Anwendungen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1662 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1664 msgid "Include" msgstr "Einschließen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1666 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1703 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1668 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1705 msgid "Engine" msgstr "Anwendung" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1707 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1709 msgid "Add" msgstr "Hinzufügen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1709 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1711 msgid "Edit" msgstr "Bearbeiten" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1710 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1712 msgid "De_tect" msgstr "Er_kennen" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1724 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1726 msgid "Are you sure you want to delete this engine?" msgstr "Sind Sie sicher, diese OCR-Anwendung zu entfernen?" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1772 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1774 msgid "No OCR engines available" msgstr "Keine OCR-Anwendungen verfügbar" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1773 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1775 msgid "" "No OCR engines were found in the system.\n" "Please make sure you have OCR engines installed and available." @@ -1031,63 +1058,63 @@ "Im System wurden keine OCR-Anwendungen gefunden.\n" "Bitte stellen Sie sicher, dass OCR-Anwendungen installiert und verfügbar sind." -#: ../src/ocrfeeder/studio/widgetPresenter.py:1792 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1794 #, python-format msgid "%s engine" msgstr "Anwendung %s" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1816 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1818 msgid "_Name:" msgstr "_Name:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1817 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1819 msgid "Engine name" msgstr "Name der Anwendung" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1819 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1821 msgid "_Image format:" msgstr "B_ildformat:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1821 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1823 msgid "The required image format" msgstr "Das erforderliche Bildformat" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1823 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1825 msgid "_Failure string:" msgstr "_Fehlertext:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1825 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1827 msgid "The failure string or character that this engine uses" msgstr "Fehlertext oder Fehlerzeichen, das diese Anwendung nutzt" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1828 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1830 msgid "Engine _path:" msgstr "Anwendungs_pfad:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1830 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1832 msgid "The path to the engine program" msgstr "Pfad zur Anwendung" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1832 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1834 msgid "Engine _arguments:" msgstr "_Argumente der Anwendung:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1834 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1836 msgid "Arguments: use $IMAGE for image and $FILE if it writes to a file" msgstr "" "Argumente: $IMAGE, falls ein Bild erzeugt wird, und $FILE, wenn in eine Datei " "geschrieben wird" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1851 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1853 msgid "Error setting the new engine; please check your engine settings." msgstr "" "Fehler beim Hinzufügen der Anwendung. Bitte überprüfen Sie Ihre Einstellungen." -#: ../src/ocrfeeder/studio/widgetPresenter.py:1851 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1853 msgid "Warning" msgstr "Warnung" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1887 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1889 msgid "translator-credits" msgstr "" "Renard Voß \n" diff -Nru ocrfeeder-0.7.6/po/eo.po ocrfeeder-0.7.7/po/eo.po --- ocrfeeder-0.7.6/po/eo.po 1970-01-01 00:00:00.000000000 +0000 +++ ocrfeeder-0.7.7/po/eo.po 2011-12-10 13:08:36.000000000 +0000 @@ -0,0 +1,1082 @@ +# Esperanto translation for ocrfeeder. +# Copyright (C) 2011 Free Software Foundation, Inc. +# This file is distributed under the same license as the ocrfeeder package. +# Kristjan SCHMIDT , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: ocrfeeder master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=ocrfeeder&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2011-10-28 22:46+0000\n" +"PO-Revision-Date: 2011-11-17 16:50+0100\n" +"Last-Translator: Kristjan SCHMIDT \n" +"Language-Team: Esperanto \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bits\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: ../resources/ocrfeeder.desktop.in.h:1 +msgid "OCRFeeder" +msgstr "" + +#: ../resources/ocrfeeder.desktop.in.h:2 +msgid "The complete OCR suite." +msgstr "" + +#: ../resources/spell-checker.ui.h:1 +msgid "Language" +msgstr "Lingvo" + +#: ../resources/spell-checker.ui.h:2 +msgid "Cha_nge" +msgstr "Ŝa_nĝi" + +#: ../resources/spell-checker.ui.h:3 +msgid "Change A_ll" +msgstr "Ŝanĝi ĉiu_jn" + +#: ../resources/spell-checker.ui.h:4 +msgid "Change _to:" +msgstr "Ŝanĝi _al:" + +#: ../resources/spell-checker.ui.h:5 +msgid "Check spelling" +msgstr "Kontroli literumadon" + +#: ../resources/spell-checker.ui.h:6 +msgid "Ignore _All" +msgstr "Ignori ĉiu_jn" + +#: ../resources/spell-checker.ui.h:7 +msgid "Language:" +msgstr "Lingvo:" + +#: ../resources/spell-checker.ui.h:8 +msgid "Misspelled word:" +msgstr "Misliterumita vorto:" + +#: ../resources/spell-checker.ui.h:9 +msgid "_Ignore" +msgstr "_Ignori" + +#: ../resources/spell-checker.ui.h:10 +msgid "_Suggestions:" +msgstr "_Proponoj:" + +#: ../src/ocrfeeder/feeder/imageManipulation.py:37 +#, python-format +msgid "" +"A problem occurred while trying to open the image:\n" +" %s\n" +"Ensure the image exists or try converting it to another format." +msgstr "" + +#: ../src/ocrfeeder/studio/studioBuilder.py:61 +msgid "ODT" +msgstr "ODT" + +#: ../src/ocrfeeder/studio/studioBuilder.py:62 +msgid "HTML" +msgstr "HTML" + +#: ../src/ocrfeeder/studio/studioBuilder.py:63 +#: ../src/ocrfeeder/studio/studioBuilder.py:254 +msgid "PDF" +msgstr "PDF" + +#: ../src/ocrfeeder/studio/studioBuilder.py:64 +msgid "Plain Text" +msgstr "Plata teksto" + +#: ../src/ocrfeeder/studio/studioBuilder.py:188 +msgid "Images" +msgstr "Bildoj" + +#: ../src/ocrfeeder/studio/studioBuilder.py:200 +msgid "Obtaining scanners" +msgstr "Akiri skanilojn" + +#: ../src/ocrfeeder/studio/studioBuilder.py:200 +#: ../src/ocrfeeder/studio/studioBuilder.py:226 +#: ../src/ocrfeeder/studio/studioBuilder.py:268 +#: ../src/ocrfeeder/studio/widgetModeler.py:465 +#: ../src/ocrfeeder/studio/widgetModeler.py:470 +#: ../src/ocrfeeder/studio/widgetModeler.py:526 +#: ../src/ocrfeeder/studio/widgetModeler.py:592 +msgid "Please wait…" +msgstr "Bonvole atendu..." + +#: ../src/ocrfeeder/studio/studioBuilder.py:226 +msgid "Scanning" +msgstr "Skanante" + +#: ../src/ocrfeeder/studio/studioBuilder.py:231 +msgid "No scanner devices were found" +msgstr "Ne trovis skanil-aparaton" + +#: ../src/ocrfeeder/studio/studioBuilder.py:232 +#: ../src/ocrfeeder/studio/studioBuilder.py:247 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1152 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1163 +msgid "Error" +msgstr "Eraro" + +#: ../src/ocrfeeder/studio/studioBuilder.py:246 +msgid "Error scanning page" +msgstr "Eraro dum skani paĝon" + +#: ../src/ocrfeeder/studio/studioBuilder.py:268 +msgid "Loading PDF" +msgstr "Ŝargante PDF-n" + +#: ../src/ocrfeeder/studio/studioBuilder.py:299 +msgid "What kind of PDF document do you wish?" +msgstr "" + +#: ../src/ocrfeeder/studio/studioBuilder.py:301 +msgid "From scratch" +msgstr "" + +#: ../src/ocrfeeder/studio/studioBuilder.py:303 +msgid "Creates a new PDF from scratch." +msgstr "" + +#: ../src/ocrfeeder/studio/studioBuilder.py:305 +msgid "Searchable PDF" +msgstr "" + +#: ../src/ocrfeeder/studio/studioBuilder.py:306 +msgid "Creates a PDF based on the images but with searchable text." +msgstr "" + +#: ../src/ocrfeeder/studio/studioBuilder.py:330 +msgid "Export pages" +msgstr "Elporti paĝojn" + +#: ../src/ocrfeeder/studio/studioBuilder.py:347 +msgid "Are you sure you want to delete the current image?" +msgstr "Ĉe vi certe volas forigi la aktualan bildon?" + +#: ../src/ocrfeeder/studio/studioBuilder.py:394 +msgid "Are you sure you want to clear the project?" +msgstr "Ĉe vi certe volas vakigi la projekton?" + +#: ../src/ocrfeeder/studio/studioBuilder.py:449 +msgid "The project hasn't been saved." +msgstr "La projekto estas konservita." + +#: ../src/ocrfeeder/studio/studioBuilder.py:450 +msgid "Do you want to save it before closing?" +msgstr "Ĉu vi volas konservi antaŭ fermo?" + +#: ../src/ocrfeeder/studio/studioBuilder.py:451 +msgid "Close anyway" +msgstr "Fermi ĉiukaze" + +#: ../src/ocrfeeder/studio/widgetModeler.py:126 +#: ../src/ocrfeeder/studio/widgetPresenter.py:136 +msgid "Pages" +msgstr "Paĝoj" + +#: ../src/ocrfeeder/studio/widgetModeler.py:140 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1683 +msgid "Delete" +msgstr "Forigi" + +#: ../src/ocrfeeder/studio/widgetModeler.py:191 +msgid "Selectable areas" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetModeler.py:465 +msgid "Preparing image" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetModeler.py:467 +#, python-format +msgid "Preparing image %(current_index)s/%(total)s" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetModeler.py:526 +msgid "Deskewing image" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetModeler.py:553 +msgid "No images added" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetModeler.py:556 +#, python-format +msgid "Zoom: %s %%" +msgstr "Zomo: %s %%" + +#: ../src/ocrfeeder/studio/widgetModeler.py:558 +#, python-format +msgid "Resolution: %.2f x %.2f" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetModeler.py:560 +#, python-format +msgid "Page size: %i x %i" +msgstr "Paĝgrando: %i x %i" + +#: ../src/ocrfeeder/studio/widgetModeler.py:574 +msgid "" +"There are changes that may be overwritten by the new recognition.\n" +"\n" +"Do you want to continue?" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetModeler.py:592 +msgid "Recognizing Page" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetModeler.py:609 +msgid "Recognizing Document" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetModeler.py:610 +#, python-format +msgid "Recognizing page %(page_number)s/%(total_pages)s. Please wait…" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetModeler.py:678 +msgid "Export to HTML" +msgstr "Elporti al HTML" + +#: ../src/ocrfeeder/studio/widgetModeler.py:692 +#: ../src/ocrfeeder/studio/widgetPresenter.py:215 +msgid "Export to ODT" +msgstr "Elporti al ODT" + +#: ../src/ocrfeeder/studio/widgetModeler.py:703 +msgid "Export to Plain Text" +msgstr "Elporti al plata teksto" + +#: ../src/ocrfeeder/studio/widgetModeler.py:714 +msgid "Export to PDF" +msgstr "Elporti al PDF" + +#: ../src/ocrfeeder/studio/widgetModeler.py:736 +msgid "OCRFeeder Projects" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetModeler.py:794 +#, python-format +msgid "" +"A file named \"%(name)s\" already exists. Do you want to replace it?\n" +"\n" +"The file exists in \"%(dir)s\". Replacing it will overwrite its contents." +msgstr "" + +#: ../src/ocrfeeder/studio/widgetModeler.py:801 +msgid "Replace" +msgstr "Anstataŭigi" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:157 +msgid "_File" +msgstr "_Doserio" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:158 +msgid "_Quit" +msgstr "Ĉ_esi" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:158 +msgid "Exit the program" +msgstr "Fermi la programon" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:159 +msgid "_Open" +msgstr "_Malfermi" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:159 +msgid "Open project" +msgstr "Malfermi projekton" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:160 +msgid "_Save" +msgstr "Kon_servi" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:160 +msgid "Save project" +msgstr "Konservi projekton" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:161 +msgid "_Save As…" +msgstr "Kon_servi kiel..." + +#: ../src/ocrfeeder/studio/widgetPresenter.py:161 +msgid "Save project with a chosen name" +msgstr "Konservi projekton per elektita nomo" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:162 +msgid "_Add Image" +msgstr "_Aldoni bildon" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:162 +msgid "Add another image" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:163 +msgid "Add _Folder" +msgstr "Aldoni _dosierujon" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:163 +msgid "Add all images in a folder" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:164 +msgid "Append Project" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:164 +msgid "Load a project and append it to the current one" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:165 +msgid "_Import PDF" +msgstr "_Enporti PDF-n" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:165 +msgid "Import PDF" +msgstr "Enporti PDF-n" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:166 +msgid "_Export…" +msgstr "E_lporti..." + +#: ../src/ocrfeeder/studio/widgetPresenter.py:166 +msgid "Export to a chosen format" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:167 +msgid "_Edit" +msgstr "R_edakti" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:168 +msgid "_Edit Page" +msgstr "R_edakti paĝon" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:168 +msgid "Edit page settings" +msgstr "Redakti la paĝagordojn" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:169 +msgid "_Preferences" +msgstr "_Agordoj" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:169 +msgid "Configure the application" +msgstr "Agordi la aplikaĵon" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:170 +msgid "_Delete Page" +msgstr "_Forigi paĝon" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:170 +msgid "Delete current page" +msgstr "Forigi aktualan paĝon" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:171 +msgid "_Clear Project" +msgstr "_Vakigi projekton" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:171 +msgid "Delete all images" +msgstr "Forigi ĉiujn bildojn" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:172 +msgid "_View" +msgstr "_Vido" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:173 +msgid "Zoom In" +msgstr "Enzomi" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:174 +msgid "Zoom Out" +msgstr "Elzomi" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:175 +msgid "Best Fit" +msgstr "Plej bona adapto" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:176 +msgid "Normal Size" +msgstr "Normala grando" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:177 +msgid "_Document" +msgstr "_Dokumento" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:178 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1351 +msgid "_Tools" +msgstr "_Iloj" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:179 +msgid "_OCR Engines" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:179 +msgid "Manage OCR engines" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:180 +msgid "_Unpaper" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:180 +msgid "Process image with unpaper" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:181 +msgid "Image Des_kewer" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:182 +msgid "Trie to straighten the image" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:184 +#: ../src/ocrfeeder/studio/widgetPresenter.py:185 +msgid "_Help" +msgstr "_Helpo" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:185 +msgid "Help contents" +msgstr "Help-enhavoj" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:186 +msgid "_About" +msgstr "_Pri" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:186 +msgid "About this application" +msgstr "Pri ĉi tiu aplikaĵo" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:188 +msgid "_Recognize Document" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:189 +msgid "Automatically detect and recognize all pages" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:192 +msgid "R_ecognize Page" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:193 +msgid "Automatically detect and recognize the current page" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:196 +msgid "Recognize _Selected Areas" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:197 +msgid "Recognize Selected Areas" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:200 +msgid "Select _All Areas" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:201 +msgid "Select all content areas" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:204 +msgid "Select _Previous Area" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:205 +msgid "Select the previous area from the content areas" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:208 +msgid "Select _Next Area" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:209 +msgid "Select the next area from the content areas" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:212 +msgid "Delete Selected Areas" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:213 +msgid "Deletes all the currently selected content areas" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:215 +msgid "_Generate ODT" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:217 +msgid "Import Page From S_canner" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:219 +msgid "Import From Scanner" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:222 +msgid "_Copy to Clipboard" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:224 +msgid "Copy recognized text to clipboard" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:227 +msgid "Spell_checker" +msgstr "Literum_kontrolilo" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:229 +msgid "Spell Check Recognized Text" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:303 +msgid "Area editor" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:311 +msgid "Sets the content area's upper left corner's X coordinate" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:315 +msgid "Sets the content area's upper left corner's Y coordinate" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:319 +msgid "Sets the content area's width" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:322 +msgid "Sets the content area's height" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:325 +#: ../src/ocrfeeder/studio/widgetPresenter.py:541 +msgid "_Text" +msgstr "_Teksto" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:326 +msgid "Set this content area to be the text type" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:327 +msgid "_Image" +msgstr "B_ildo" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:328 +msgid "Set this content area to be the image type" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:329 +msgid "Type" +msgstr "Tipo" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:339 +msgid "Clip" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:423 +msgid "Bounds" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:428 +msgid "_X:" +msgstr "_X:" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:437 +msgid "_Y:" +msgstr "_Y:" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:449 +#: ../src/ocrfeeder/studio/widgetPresenter.py:795 +msgid "_Width:" +msgstr "_Larĝo:" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:458 +msgid "Hei_ght:" +msgstr "_Alto:" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:481 +msgid "Left" +msgstr "Maldekstre" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:485 +msgid "Set text to be left aligned" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:487 +msgid "Center" +msgstr "Centre" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:492 +msgid "Set text to be centered" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:494 +msgid "Right" +msgstr "Dekstre" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:499 +msgid "Set text to be right aligned" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:501 +msgid "Fill" +msgstr "Plenigi" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:506 +msgid "Set text to be fill its area" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:512 +msgid "OC_R" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:513 +msgid "Perform OCR on this content area using the selected OCR engine." +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:519 +msgid "OCR engine to recognize this content area" +msgstr "" + +#. Text Properties +#: ../src/ocrfeeder/studio/widgetPresenter.py:527 +msgid "Text Properties" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:549 +msgid "Font" +msgstr "Tiparo" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:556 +msgid "Align" +msgstr "Ĝisrandigi" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:560 +msgid "Spacing" +msgstr "Interspaco" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:562 +msgid "Set the text's letter spacing" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:564 +msgid "Set the text's line spacing" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:569 +msgid "_Line:" +msgstr "_Linio:" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:580 +msgid "L_etter:" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:592 +msgid "Sty_le" +msgstr "Sti_lo" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:599 +msgid "Angle" +msgstr "Angulo" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:603 +msgid "OCR engine to recogni_ze this area:" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:617 +msgid "Detect" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:619 +msgid "Angle:" +msgstr "Angulo:" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:704 +msgid "Save File" +msgstr "Konservi dosieron" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:707 +msgid "Open File" +msgstr "Malfermi dosieron" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:711 +msgid "Open Folder" +msgstr "Malfermi dosierujon" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:738 +msgid "Pages to export" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:740 +msgid "All" +msgstr "Ĉiuj" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:741 +msgid "Current" +msgstr "Aktuale" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:757 +msgid "Choose the format" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:774 +#: ../src/ocrfeeder/studio/widgetPresenter.py:781 +msgid "Page size" +msgstr "Grando de paĝo" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:786 +msgid "Custom…" +msgstr "Propre..." + +#: ../src/ocrfeeder/studio/widgetPresenter.py:800 +msgid "_Height:" +msgstr "_Alto:" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:809 +msgid "Affected pages" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:811 +msgid "C_urrent" +msgstr "Akt_uale" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:814 +msgid "_All" +msgstr "Ĉi_uj" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:874 +msgid "Unpaper Image Processor" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:888 +msgid "Preview" +msgstr "Antaŭmontro" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:894 +msgid "_Preview" +msgstr "_Antaŭmontro" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:920 +msgid "Performing Unpaper" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:920 +msgid "Performing unpaper. Please wait…" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:964 +msgid "Noise Filter Intensity" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:966 +#: ../src/ocrfeeder/studio/widgetPresenter.py:998 +msgid "Default" +msgstr "Defaŭlte" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:968 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1000 +msgid "Custom" +msgstr "Personigite" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:970 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1002 +msgid "None" +msgstr "Neniu" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:996 +msgid "Gray Filter Size" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1028 +msgid "Black Filter" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1029 +msgid "Use" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1036 +msgid "Extra Options" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1038 +msgid "Unpaper's command line arguments" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1095 +msgid "Unpaper Preferences" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1152 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1163 +msgid "An error occurred!" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1234 +msgid "Cancelled" +msgstr "Nuligite" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1248 +msgid "Preferences" +msgstr "Agordoj" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1305 +msgid "_General" +msgstr "Ĝ_enerale" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1313 +msgid "_Recognition" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1318 +msgid "Select boxes' colors" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1324 +msgid "Te_xt areas' fill color" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1330 +msgid "Text areas' _stroke color" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1336 +msgid "_Image areas' fill color" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1356 +msgid "Path to unpaper" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1360 +msgid "Choose" +msgstr "Elekti" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1368 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1618 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1656 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1674 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1765 +msgid "OCR Engines" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1370 +msgid "" +"The engine that should be used when performing the automatic recognition." +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1381 +msgid "Favorite _engine:" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1396 +msgid "Window size" +msgstr "Fenestrogrando" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1397 +msgid "A_utomatic" +msgstr "Aŭ_tomate" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1398 +msgid "Cu_stom" +msgstr "_Propre" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1407 +msgid "The window size is the detection algorithm's subdivision areas' size." +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1419 +msgid "Columns Detection" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1424 +msgid "_Improve columns detection" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1426 +msgid "Use a post-detection algorithm to improve the detection of columns" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1437 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1511 +msgid "_Automatic" +msgstr "_Aŭtomate" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1439 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1513 +msgid "Custo_m" +msgstr "_Propre" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1443 +msgid "The columns' minimum width in pixels" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1459 +msgid "Minimum width that a column should have:" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1480 +msgid "Recognized Text" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1481 +msgid "_Fix line breaks and hyphenization" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1483 +msgid "" +"Removes single line breaks and hyphenization from text generated by OCR " +"engines" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1493 +msgid "Content Areas" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1498 +msgid "A_djust content areas' bounds" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1500 +msgid "Use a post-detection algorithm to shorten the contents areas' margins" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1517 +msgid "The maximum size for the content areas' margins in pixels" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1534 +msgid "Maximum size that the content areas' margins should have:" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1580 +msgid "Image Pre-processing" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1581 +msgid "Des_kew images" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1583 +msgid "Tries to straighten the images before they are added" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1592 +msgid "_Unpaper images" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1594 +msgid "Cleans the image using the Unpaper pre-processor" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1598 +msgid "Unpaper _Preferences" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1632 +msgid "Engines to be added" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1637 +msgid "Include" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1641 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1678 +msgid "Engine" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1682 +msgid "Add" +msgstr "Aldoni" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1684 +msgid "Edit" +msgstr "Redakti" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1685 +msgid "De_tect" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1699 +msgid "Are you sure you want to delete this engine?" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1747 +msgid "No OCR engines available" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1748 +msgid "" +"No OCR engines were found in the system.\n" +"Please make sure you have OCR engines installed and available." +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1767 +#, python-format +msgid "%s engine" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1791 +msgid "_Name:" +msgstr "_Nomo:" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1792 +msgid "Engine name" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1794 +msgid "_Image format:" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1796 +msgid "The required image format" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1798 +msgid "_Failure string:" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1800 +msgid "The failure string or character that this engine uses" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1803 +msgid "Engine _path:" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1805 +msgid "The path to the engine program" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1807 +msgid "Engine _arguments:" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1809 +msgid "Arguments: use $IMAGE for image and $FILE if it writes to a file" +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1826 +msgid "Error setting the new engine; please check your engine settings." +msgstr "" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1826 +msgid "Warning" +msgstr "Averto" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1862 +msgid "translator-credits" +msgstr "Kristjan SCHMIDT, 2011." diff -Nru ocrfeeder-0.7.6/po/LINGUAS ocrfeeder-0.7.7/po/LINGUAS --- ocrfeeder-0.7.6/po/LINGUAS 2011-07-21 11:05:41.000000000 +0000 +++ ocrfeeder-0.7.7/po/LINGUAS 2011-12-10 13:08:36.000000000 +0000 @@ -5,6 +5,7 @@ de el en_GB +eo es fr gl diff -Nru ocrfeeder-0.7.6/po/POTFILES.in ocrfeeder-0.7.7/po/POTFILES.in --- ocrfeeder-0.7.6/po/POTFILES.in 2011-03-17 22:07:33.000000000 +0000 +++ ocrfeeder-0.7.7/po/POTFILES.in 2011-12-10 13:08:36.000000000 +0000 @@ -1,13 +1,12 @@ [encoding: UTF-8] +bin/ocrfeeder-cli.in +bin/ocrfeeder.in +resources/ocrfeeder.desktop.in +[type: gettext/glade]resources/spell-checker.ui src/ocrfeeder/feeder/documentGeneration.py src/ocrfeeder/feeder/imageManipulation.py src/ocrfeeder/feeder/layoutAnalysis.py src/ocrfeeder/feeder/ocrEngines.py -bin/ocrfeeder.in -bin/ocrfeeder-cli.in -resources/ocrfeeder.desktop.in -[type: gettext/glade]resources/spell-checker.ui -src/ocrfeeder/studio/configuration.py src/ocrfeeder/studio/customWidgets.py src/ocrfeeder/studio/dataHolder.py src/ocrfeeder/studio/studioBuilder.py diff -Nru ocrfeeder-0.7.6/po/sl.po ocrfeeder-0.7.7/po/sl.po --- ocrfeeder-0.7.6/po/sl.po 2011-05-12 10:15:00.000000000 +0000 +++ ocrfeeder-0.7.7/po/sl.po 2011-12-10 13:08:36.000000000 +0000 @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: ocrfeeder master\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=ocrfeeder&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2011-05-08 20:48+0000\n" -"PO-Revision-Date: 2011-05-09 11:45+0100\n" +"POT-Creation-Date: 2011-08-19 12:08+0000\n" +"PO-Revision-Date: 2011-09-07 15:41+0100\n" "Last-Translator: Matej Urbančič \n" "Language-Team: Slovenian GNOME Translation Team \n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: \n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0);\n" "X-Poedit-Language: Slovenian\n" "X-Poedit-Country: SLOVENIA\n" @@ -81,133 +81,154 @@ msgstr "P_redlogi:" #: ../src/ocrfeeder/studio/studioBuilder.py:61 -msgid "HTML" -msgstr "HTML" - -#: ../src/ocrfeeder/studio/studioBuilder.py:62 msgid "ODT" msgstr "ODT" +#: ../src/ocrfeeder/studio/studioBuilder.py:62 +msgid "HTML" +msgstr "HTML" + #: ../src/ocrfeeder/studio/studioBuilder.py:63 +#: ../src/ocrfeeder/studio/studioBuilder.py:253 +msgid "PDF" +msgstr "PDF" + +#: ../src/ocrfeeder/studio/studioBuilder.py:64 msgid "Plain Text" msgstr "Običajno besedilo" -#: ../src/ocrfeeder/studio/studioBuilder.py:185 +#: ../src/ocrfeeder/studio/studioBuilder.py:187 msgid "Images" msgstr "Slike" -#: ../src/ocrfeeder/studio/studioBuilder.py:197 +#: ../src/ocrfeeder/studio/studioBuilder.py:199 msgid "Obtaining scanners" msgstr "Pridobivanje optičnih bralnikov" -#: ../src/ocrfeeder/studio/studioBuilder.py:197 -#: ../src/ocrfeeder/studio/studioBuilder.py:223 -#: ../src/ocrfeeder/studio/studioBuilder.py:265 -#: ../src/ocrfeeder/studio/widgetModeler.py:457 -#: ../src/ocrfeeder/studio/widgetModeler.py:462 -#: ../src/ocrfeeder/studio/widgetModeler.py:514 -#: ../src/ocrfeeder/studio/widgetModeler.py:580 +#: ../src/ocrfeeder/studio/studioBuilder.py:199 +#: ../src/ocrfeeder/studio/studioBuilder.py:225 +#: ../src/ocrfeeder/studio/studioBuilder.py:267 +#: ../src/ocrfeeder/studio/widgetModeler.py:464 +#: ../src/ocrfeeder/studio/widgetModeler.py:469 +#: ../src/ocrfeeder/studio/widgetModeler.py:525 +#: ../src/ocrfeeder/studio/widgetModeler.py:591 msgid "Please wait…" msgstr "Počakajte ..." -#: ../src/ocrfeeder/studio/studioBuilder.py:223 +#: ../src/ocrfeeder/studio/studioBuilder.py:225 msgid "Scanning" msgstr "Optično branje" -#: ../src/ocrfeeder/studio/studioBuilder.py:228 +#: ../src/ocrfeeder/studio/studioBuilder.py:230 msgid "No scanner devices were found" msgstr "Naprave za optično branje ni mogoče najti." -#: ../src/ocrfeeder/studio/studioBuilder.py:229 -#: ../src/ocrfeeder/studio/studioBuilder.py:244 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1150 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1161 +#: ../src/ocrfeeder/studio/studioBuilder.py:231 +#: ../src/ocrfeeder/studio/studioBuilder.py:246 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1152 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1163 msgid "Error" msgstr "Napaka" -#: ../src/ocrfeeder/studio/studioBuilder.py:243 +#: ../src/ocrfeeder/studio/studioBuilder.py:245 msgid "Error scanning page" msgstr "Napaka med optičnim branjem strani" -#: ../src/ocrfeeder/studio/studioBuilder.py:251 -msgid "PDF" -msgstr "PDF" - -#: ../src/ocrfeeder/studio/studioBuilder.py:265 +#: ../src/ocrfeeder/studio/studioBuilder.py:267 msgid "Loading PDF" msgstr "Nalaganje dokumenta PDF" -#: ../src/ocrfeeder/studio/studioBuilder.py:294 +#: ../src/ocrfeeder/studio/studioBuilder.py:298 +msgid "What kind of PDF document do you wish?" +msgstr "Kakšno vrsto datoteke PDF želite ustvariti?" + +#: ../src/ocrfeeder/studio/studioBuilder.py:300 +msgid "From scratch" +msgstr "Od začetka" + +#: ../src/ocrfeeder/studio/studioBuilder.py:302 +msgid "Creates a new PDF from scratch." +msgstr "Ustvari nov PDF od začetka." + +#: ../src/ocrfeeder/studio/studioBuilder.py:304 +msgid "Searchable PDF" +msgstr "PDF s podporo iskanja" + +#: ../src/ocrfeeder/studio/studioBuilder.py:305 +msgid "Creates a PDF based on the images but with searchable text." +msgstr "Iz slik ustvari datoteko PDF, ki omogoča tudi iskanje besedila." + +#: ../src/ocrfeeder/studio/studioBuilder.py:329 msgid "Export pages" msgstr "Izvozi strani" -#: ../src/ocrfeeder/studio/studioBuilder.py:311 +#: ../src/ocrfeeder/studio/studioBuilder.py:346 msgid "Are you sure you want to delete the current image?" msgstr "Ali ste prepričani, da želite izbrisati trenutno sliko?" -#: ../src/ocrfeeder/studio/studioBuilder.py:358 +#: ../src/ocrfeeder/studio/studioBuilder.py:393 msgid "Are you sure you want to clear the project?" msgstr "Ali ste prepričani, da želite počistiti projekt?" -#: ../src/ocrfeeder/studio/studioBuilder.py:415 +#: ../src/ocrfeeder/studio/studioBuilder.py:450 msgid "The project hasn't been saved." msgstr "Projekt je shranjen" -#: ../src/ocrfeeder/studio/studioBuilder.py:416 +#: ../src/ocrfeeder/studio/studioBuilder.py:451 msgid "Do you want to save it before closing?" msgstr "Ali jih želite shraniti pred zapiranjem?" -#: ../src/ocrfeeder/studio/studioBuilder.py:417 +#: ../src/ocrfeeder/studio/studioBuilder.py:452 msgid "Close anyway" msgstr "Vseeno zapri" -#: ../src/ocrfeeder/studio/widgetModeler.py:126 -#: ../src/ocrfeeder/studio/widgetPresenter.py:134 +#: ../src/ocrfeeder/studio/widgetModeler.py:125 +#: ../src/ocrfeeder/studio/widgetPresenter.py:136 msgid "Pages" msgstr "Strani" -#: ../src/ocrfeeder/studio/widgetModeler.py:140 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1708 +#: ../src/ocrfeeder/studio/widgetModeler.py:139 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1710 msgid "Delete" msgstr "Izbriši" -#: ../src/ocrfeeder/studio/widgetModeler.py:191 +#: ../src/ocrfeeder/studio/widgetModeler.py:190 msgid "Selectable areas" msgstr "Izbirna območja" -#: ../src/ocrfeeder/studio/widgetModeler.py:457 +#: ../src/ocrfeeder/studio/widgetModeler.py:464 msgid "Preparing image" msgstr "Pripravljanje slike" -#: ../src/ocrfeeder/studio/widgetModeler.py:459 +#: ../src/ocrfeeder/studio/widgetModeler.py:466 #, python-format msgid "Preparing image %(current_index)s/%(total)s" msgstr "Pripravljanje slike %(current_index)s/%(total)s" -#: ../src/ocrfeeder/studio/widgetModeler.py:514 +#: ../src/ocrfeeder/studio/widgetModeler.py:525 msgid "Deskewing image" msgstr "Odstranjevanje nagiba slike" -#: ../src/ocrfeeder/studio/widgetModeler.py:541 +#: ../src/ocrfeeder/studio/widgetModeler.py:552 msgid "No images added" msgstr "Ni dodanih slik" -#: ../src/ocrfeeder/studio/widgetModeler.py:544 +#: ../src/ocrfeeder/studio/widgetModeler.py:555 #, python-format msgid "Zoom: %s %%" msgstr "Približanje: %s %%" -#: ../src/ocrfeeder/studio/widgetModeler.py:546 +#: ../src/ocrfeeder/studio/widgetModeler.py:557 #, python-format msgid "Resolution: %.2f x %.2f" msgstr "Ločljivost: %.2f x %.2f" -#: ../src/ocrfeeder/studio/widgetModeler.py:548 +#: ../src/ocrfeeder/studio/widgetModeler.py:559 #, python-format msgid "Page size: %i x %i" msgstr "Velikost strani: %i x %i" -#: ../src/ocrfeeder/studio/widgetModeler.py:562 +#: ../src/ocrfeeder/studio/widgetModeler.py:573 msgid "" "There are changes that may be overwritten by the new recognition.\n" "\n" @@ -217,37 +238,41 @@ "\n" "Ali želite nadaljevati?" -#: ../src/ocrfeeder/studio/widgetModeler.py:580 +#: ../src/ocrfeeder/studio/widgetModeler.py:591 msgid "Recognizing Page" msgstr "Optično prepoznavanje strani" -#: ../src/ocrfeeder/studio/widgetModeler.py:597 +#: ../src/ocrfeeder/studio/widgetModeler.py:608 msgid "Recognizing Document" msgstr "Optično prepoznavanje dokumenta" -#: ../src/ocrfeeder/studio/widgetModeler.py:598 +#: ../src/ocrfeeder/studio/widgetModeler.py:609 #, python-format msgid "Recognizing page %(page_number)s/%(total_pages)s. Please wait…" msgstr "Optično prepoznavanje strani %(page_number)s/%(total_pages)s. Počakajte …" -#: ../src/ocrfeeder/studio/widgetModeler.py:666 +#: ../src/ocrfeeder/studio/widgetModeler.py:677 msgid "Export to HTML" msgstr "Izvozi v HTML" -#: ../src/ocrfeeder/studio/widgetModeler.py:680 -#: ../src/ocrfeeder/studio/widgetPresenter.py:213 +#: ../src/ocrfeeder/studio/widgetModeler.py:691 +#: ../src/ocrfeeder/studio/widgetPresenter.py:215 msgid "Export to ODT" msgstr "Izvozi v ODT" -#: ../src/ocrfeeder/studio/widgetModeler.py:691 +#: ../src/ocrfeeder/studio/widgetModeler.py:702 msgid "Export to Plain Text" msgstr "Izvozi kot običajno besedilo" -#: ../src/ocrfeeder/studio/widgetModeler.py:712 +#: ../src/ocrfeeder/studio/widgetModeler.py:713 +msgid "Export to PDF" +msgstr "Izvozi kot PDF" + +#: ../src/ocrfeeder/studio/widgetModeler.py:735 msgid "OCRFeeder Projects" msgstr "Projekt OCRFeeder" -#: ../src/ocrfeeder/studio/widgetModeler.py:770 +#: ../src/ocrfeeder/studio/widgetModeler.py:793 #, python-format msgid "" "A file named \"%(name)s\" already exists. Do you want to replace it?\n" @@ -258,757 +283,757 @@ "\n" "Datoteka obstaja v mapi \"%(dir)s\". Z zamenjavo bo prepisana vsebina datoteke." -#: ../src/ocrfeeder/studio/widgetModeler.py:777 +#: ../src/ocrfeeder/studio/widgetModeler.py:800 msgid "Replace" msgstr "Zamenjaj" -#: ../src/ocrfeeder/studio/widgetPresenter.py:155 +#: ../src/ocrfeeder/studio/widgetPresenter.py:157 msgid "_File" msgstr "_Datoteka" -#: ../src/ocrfeeder/studio/widgetPresenter.py:156 +#: ../src/ocrfeeder/studio/widgetPresenter.py:158 msgid "_Quit" msgstr "_Končaj" -#: ../src/ocrfeeder/studio/widgetPresenter.py:156 +#: ../src/ocrfeeder/studio/widgetPresenter.py:158 msgid "Exit the program" msgstr "Izhod iz programa" -#: ../src/ocrfeeder/studio/widgetPresenter.py:157 +#: ../src/ocrfeeder/studio/widgetPresenter.py:159 msgid "_Open" msgstr "_Odpri" -#: ../src/ocrfeeder/studio/widgetPresenter.py:157 +#: ../src/ocrfeeder/studio/widgetPresenter.py:159 msgid "Open project" msgstr "Odpri projekt" -#: ../src/ocrfeeder/studio/widgetPresenter.py:158 +#: ../src/ocrfeeder/studio/widgetPresenter.py:160 msgid "_Save" msgstr "_Shrani" -#: ../src/ocrfeeder/studio/widgetPresenter.py:158 +#: ../src/ocrfeeder/studio/widgetPresenter.py:160 msgid "Save project" msgstr "Shrani projekt" -#: ../src/ocrfeeder/studio/widgetPresenter.py:159 +#: ../src/ocrfeeder/studio/widgetPresenter.py:161 msgid "_Save As…" msgstr "Shrani _kot ..." -#: ../src/ocrfeeder/studio/widgetPresenter.py:159 +#: ../src/ocrfeeder/studio/widgetPresenter.py:161 msgid "Save project with a chosen name" msgstr "Shrani trenutni projekt z izbranim imenom" -#: ../src/ocrfeeder/studio/widgetPresenter.py:160 +#: ../src/ocrfeeder/studio/widgetPresenter.py:162 msgid "_Add Image" msgstr "Dodaj _sliko" -#: ../src/ocrfeeder/studio/widgetPresenter.py:160 +#: ../src/ocrfeeder/studio/widgetPresenter.py:162 msgid "Add another image" msgstr "Dodaj še eno sliko" -#: ../src/ocrfeeder/studio/widgetPresenter.py:161 +#: ../src/ocrfeeder/studio/widgetPresenter.py:163 msgid "Add _Folder" msgstr "Dodaj _mapo" -#: ../src/ocrfeeder/studio/widgetPresenter.py:161 +#: ../src/ocrfeeder/studio/widgetPresenter.py:163 msgid "Add all images in a folder" msgstr "Dodaj vse slike v mapi" -#: ../src/ocrfeeder/studio/widgetPresenter.py:162 +#: ../src/ocrfeeder/studio/widgetPresenter.py:164 msgid "Append Project" msgstr "Pripni projekt" -#: ../src/ocrfeeder/studio/widgetPresenter.py:162 +#: ../src/ocrfeeder/studio/widgetPresenter.py:164 msgid "Load a project and append it to the current one" msgstr "Naloži projekt in ga pripni k trenutnemu" -#: ../src/ocrfeeder/studio/widgetPresenter.py:163 +#: ../src/ocrfeeder/studio/widgetPresenter.py:165 msgid "_Import PDF" msgstr "_Uvozi PDF" -#: ../src/ocrfeeder/studio/widgetPresenter.py:163 +#: ../src/ocrfeeder/studio/widgetPresenter.py:165 msgid "Import PDF" msgstr "Uvozi dokument PDF" -#: ../src/ocrfeeder/studio/widgetPresenter.py:164 +#: ../src/ocrfeeder/studio/widgetPresenter.py:166 msgid "_Export…" msgstr "_Izvozi ..." -#: ../src/ocrfeeder/studio/widgetPresenter.py:164 +#: ../src/ocrfeeder/studio/widgetPresenter.py:166 msgid "Export to a chosen format" msgstr "Izvozi v izbran zapis dokumenta" -#: ../src/ocrfeeder/studio/widgetPresenter.py:165 +#: ../src/ocrfeeder/studio/widgetPresenter.py:167 msgid "_Edit" msgstr "_Uredi" -#: ../src/ocrfeeder/studio/widgetPresenter.py:166 +#: ../src/ocrfeeder/studio/widgetPresenter.py:168 msgid "_Edit Page" msgstr "Uredi _stran" -#: ../src/ocrfeeder/studio/widgetPresenter.py:166 +#: ../src/ocrfeeder/studio/widgetPresenter.py:168 msgid "Edit page settings" msgstr "Urejanje nastavitev strani" -#: ../src/ocrfeeder/studio/widgetPresenter.py:167 +#: ../src/ocrfeeder/studio/widgetPresenter.py:169 msgid "_Preferences" msgstr "_Možnosti" -#: ../src/ocrfeeder/studio/widgetPresenter.py:167 +#: ../src/ocrfeeder/studio/widgetPresenter.py:169 msgid "Configure the application" msgstr "Spremeni nastavitve programa" -#: ../src/ocrfeeder/studio/widgetPresenter.py:168 +#: ../src/ocrfeeder/studio/widgetPresenter.py:170 msgid "_Delete Page" msgstr "_Izbriši stran" -#: ../src/ocrfeeder/studio/widgetPresenter.py:168 +#: ../src/ocrfeeder/studio/widgetPresenter.py:170 msgid "Delete current page" msgstr "Izbriši trenutno stran" -#: ../src/ocrfeeder/studio/widgetPresenter.py:169 +#: ../src/ocrfeeder/studio/widgetPresenter.py:171 msgid "_Clear Project" msgstr "_Počisti projekt" -#: ../src/ocrfeeder/studio/widgetPresenter.py:169 +#: ../src/ocrfeeder/studio/widgetPresenter.py:171 msgid "Delete all images" msgstr "Odstrani vse slike" -#: ../src/ocrfeeder/studio/widgetPresenter.py:170 +#: ../src/ocrfeeder/studio/widgetPresenter.py:172 msgid "_View" msgstr "_Pogled" -#: ../src/ocrfeeder/studio/widgetPresenter.py:171 +#: ../src/ocrfeeder/studio/widgetPresenter.py:173 msgid "Zoom In" msgstr "Približaj" -#: ../src/ocrfeeder/studio/widgetPresenter.py:172 +#: ../src/ocrfeeder/studio/widgetPresenter.py:174 msgid "Zoom Out" msgstr "Oddalji" -#: ../src/ocrfeeder/studio/widgetPresenter.py:173 +#: ../src/ocrfeeder/studio/widgetPresenter.py:175 msgid "Best Fit" msgstr "Prilagojeno zaslonu" -#: ../src/ocrfeeder/studio/widgetPresenter.py:174 +#: ../src/ocrfeeder/studio/widgetPresenter.py:176 msgid "Normal Size" msgstr "Običajna velikost" -#: ../src/ocrfeeder/studio/widgetPresenter.py:175 +#: ../src/ocrfeeder/studio/widgetPresenter.py:177 msgid "_Document" msgstr "_Dokument" -#: ../src/ocrfeeder/studio/widgetPresenter.py:176 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1376 +#: ../src/ocrfeeder/studio/widgetPresenter.py:178 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1378 msgid "_Tools" msgstr "_Orodja" -#: ../src/ocrfeeder/studio/widgetPresenter.py:177 +#: ../src/ocrfeeder/studio/widgetPresenter.py:179 msgid "_OCR Engines" msgstr "_OCR programniki" -#: ../src/ocrfeeder/studio/widgetPresenter.py:177 +#: ../src/ocrfeeder/studio/widgetPresenter.py:179 msgid "Manage OCR engines" msgstr "Upravljanje s programniki za optično prepoznavanje" -#: ../src/ocrfeeder/studio/widgetPresenter.py:178 +#: ../src/ocrfeeder/studio/widgetPresenter.py:180 msgid "_Unpaper" msgstr "_Razstrani" -#: ../src/ocrfeeder/studio/widgetPresenter.py:178 +#: ../src/ocrfeeder/studio/widgetPresenter.py:180 msgid "Process image with unpaper" msgstr "Obdelava slike z razstranjanjem" -#: ../src/ocrfeeder/studio/widgetPresenter.py:179 +#: ../src/ocrfeeder/studio/widgetPresenter.py:181 msgid "Image Des_kewer" msgstr "Odstranjevalnik na_giba slike" -#: ../src/ocrfeeder/studio/widgetPresenter.py:180 +#: ../src/ocrfeeder/studio/widgetPresenter.py:182 msgid "Trie to straighten the image" msgstr "Poskusi izravnati sliko" -#: ../src/ocrfeeder/studio/widgetPresenter.py:182 -#: ../src/ocrfeeder/studio/widgetPresenter.py:183 +#: ../src/ocrfeeder/studio/widgetPresenter.py:184 +#: ../src/ocrfeeder/studio/widgetPresenter.py:185 msgid "_Help" msgstr "Pomo_č" -#: ../src/ocrfeeder/studio/widgetPresenter.py:183 +#: ../src/ocrfeeder/studio/widgetPresenter.py:185 msgid "Help contents" msgstr "Vsebina pomoči" -#: ../src/ocrfeeder/studio/widgetPresenter.py:184 +#: ../src/ocrfeeder/studio/widgetPresenter.py:186 msgid "_About" msgstr "_O programu" -#: ../src/ocrfeeder/studio/widgetPresenter.py:184 +#: ../src/ocrfeeder/studio/widgetPresenter.py:186 msgid "About this application" msgstr "O programu" -#: ../src/ocrfeeder/studio/widgetPresenter.py:186 +#: ../src/ocrfeeder/studio/widgetPresenter.py:188 msgid "_Recognize Document" msgstr "Optično _prepoznavanje dokumenta" -#: ../src/ocrfeeder/studio/widgetPresenter.py:187 +#: ../src/ocrfeeder/studio/widgetPresenter.py:189 msgid "Automatically detect and recognize all pages" msgstr "Samodejna zaznava in optično prepoznavanje vseh strani" -#: ../src/ocrfeeder/studio/widgetPresenter.py:190 +#: ../src/ocrfeeder/studio/widgetPresenter.py:192 msgid "R_ecognize Page" msgstr "_Optično prepoznavanje strani" -#: ../src/ocrfeeder/studio/widgetPresenter.py:191 +#: ../src/ocrfeeder/studio/widgetPresenter.py:193 msgid "Automatically detect and recognize the current page" msgstr "Samodejna zaznava in optično prepoznavanje trenutne strani" -#: ../src/ocrfeeder/studio/widgetPresenter.py:194 +#: ../src/ocrfeeder/studio/widgetPresenter.py:196 msgid "Recognize _Selected Areas" msgstr "Optično prepoznavanje _izbranega območja" -#: ../src/ocrfeeder/studio/widgetPresenter.py:195 +#: ../src/ocrfeeder/studio/widgetPresenter.py:197 msgid "Recognize Selected Areas" msgstr "Prepoznavanje izbranega območja" -#: ../src/ocrfeeder/studio/widgetPresenter.py:198 +#: ../src/ocrfeeder/studio/widgetPresenter.py:200 msgid "Select _All Areas" msgstr "Izbor _vseh območij" -#: ../src/ocrfeeder/studio/widgetPresenter.py:199 +#: ../src/ocrfeeder/studio/widgetPresenter.py:201 msgid "Select all content areas" msgstr "Izbira vseh vsebinskih območij" -#: ../src/ocrfeeder/studio/widgetPresenter.py:202 +#: ../src/ocrfeeder/studio/widgetPresenter.py:204 msgid "Select _Previous Area" msgstr "Izbira _predhodnega območja" -#: ../src/ocrfeeder/studio/widgetPresenter.py:203 +#: ../src/ocrfeeder/studio/widgetPresenter.py:205 msgid "Select the previous area from the content areas" msgstr "Izbor predhodnega območja iz vsebinskega območja" -#: ../src/ocrfeeder/studio/widgetPresenter.py:206 +#: ../src/ocrfeeder/studio/widgetPresenter.py:208 msgid "Select _Next Area" msgstr "Izbira _naslednjega območja" -#: ../src/ocrfeeder/studio/widgetPresenter.py:207 +#: ../src/ocrfeeder/studio/widgetPresenter.py:209 msgid "Select the next area from the content areas" msgstr "Izbor naslednjega območja iz vsebinskega območja" -#: ../src/ocrfeeder/studio/widgetPresenter.py:210 +#: ../src/ocrfeeder/studio/widgetPresenter.py:212 msgid "Delete Selected Areas" msgstr "Izbriši izbrana območja" -#: ../src/ocrfeeder/studio/widgetPresenter.py:211 +#: ../src/ocrfeeder/studio/widgetPresenter.py:213 msgid "Deletes all the currently selected content areas" msgstr "Izbriše vsa trenutno izbrana vsebinska območja" -#: ../src/ocrfeeder/studio/widgetPresenter.py:213 +#: ../src/ocrfeeder/studio/widgetPresenter.py:215 msgid "_Generate ODT" msgstr "_Ustvari ODT dokument" -#: ../src/ocrfeeder/studio/widgetPresenter.py:215 +#: ../src/ocrfeeder/studio/widgetPresenter.py:217 msgid "Import Page From S_canner" msgstr "Uvozi stran iz optičnega bralnika" -#: ../src/ocrfeeder/studio/widgetPresenter.py:217 +#: ../src/ocrfeeder/studio/widgetPresenter.py:219 msgid "Import From Scanner" msgstr "Uvozi iz optičnega bralnika" -#: ../src/ocrfeeder/studio/widgetPresenter.py:220 +#: ../src/ocrfeeder/studio/widgetPresenter.py:222 msgid "_Copy to Clipboard" msgstr "Kopiraj v _odložišče" -#: ../src/ocrfeeder/studio/widgetPresenter.py:222 +#: ../src/ocrfeeder/studio/widgetPresenter.py:224 msgid "Copy recognized text to clipboard" msgstr "Kopiraj prepoznano besedilo na odložišče" -#: ../src/ocrfeeder/studio/widgetPresenter.py:225 +#: ../src/ocrfeeder/studio/widgetPresenter.py:227 msgid "Spell_checker" msgstr "_Črkovalnik" -#: ../src/ocrfeeder/studio/widgetPresenter.py:227 +#: ../src/ocrfeeder/studio/widgetPresenter.py:229 msgid "Spell Check Recognized Text" msgstr "Pregled črkovanja besedila" -#: ../src/ocrfeeder/studio/widgetPresenter.py:301 +#: ../src/ocrfeeder/studio/widgetPresenter.py:303 msgid "Area editor" msgstr "Urejevalnik območja" -#: ../src/ocrfeeder/studio/widgetPresenter.py:309 +#: ../src/ocrfeeder/studio/widgetPresenter.py:311 msgid "Sets the content area's upper left corner's X coordinate" msgstr "Določi koordinato X zgornjega levega oglišča vsebinskega območja" -#: ../src/ocrfeeder/studio/widgetPresenter.py:313 +#: ../src/ocrfeeder/studio/widgetPresenter.py:315 msgid "Sets the content area's upper left corner's Y coordinate" msgstr "Določi koordinato Y zgornjega levega oglišča vsebinskega območja" -#: ../src/ocrfeeder/studio/widgetPresenter.py:317 +#: ../src/ocrfeeder/studio/widgetPresenter.py:319 msgid "Sets the content area's width" msgstr "Nastavi širino območja vsebine" -#: ../src/ocrfeeder/studio/widgetPresenter.py:320 +#: ../src/ocrfeeder/studio/widgetPresenter.py:322 msgid "Sets the content area's height" msgstr "Nastavi višino območja vsebine" -#: ../src/ocrfeeder/studio/widgetPresenter.py:323 -#: ../src/ocrfeeder/studio/widgetPresenter.py:539 +#: ../src/ocrfeeder/studio/widgetPresenter.py:325 +#: ../src/ocrfeeder/studio/widgetPresenter.py:541 msgid "_Text" msgstr "_Besedilo" -#: ../src/ocrfeeder/studio/widgetPresenter.py:324 +#: ../src/ocrfeeder/studio/widgetPresenter.py:326 msgid "Set this content area to be the text type" msgstr "Nastavi območje vsebine kot vrsta besedila" -#: ../src/ocrfeeder/studio/widgetPresenter.py:325 +#: ../src/ocrfeeder/studio/widgetPresenter.py:327 msgid "_Image" msgstr "_Slika" -#: ../src/ocrfeeder/studio/widgetPresenter.py:326 +#: ../src/ocrfeeder/studio/widgetPresenter.py:328 msgid "Set this content area to be the image type" msgstr "Določi to vsebinsko območje kot slikovno" -#: ../src/ocrfeeder/studio/widgetPresenter.py:327 +#: ../src/ocrfeeder/studio/widgetPresenter.py:329 msgid "Type" msgstr "Vrsta" -#: ../src/ocrfeeder/studio/widgetPresenter.py:337 +#: ../src/ocrfeeder/studio/widgetPresenter.py:339 msgid "Clip" msgstr "Izrezek" -#: ../src/ocrfeeder/studio/widgetPresenter.py:421 +#: ../src/ocrfeeder/studio/widgetPresenter.py:423 msgid "Bounds" msgstr "Vezi" -#: ../src/ocrfeeder/studio/widgetPresenter.py:426 +#: ../src/ocrfeeder/studio/widgetPresenter.py:428 msgid "_X:" msgstr "_X:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:435 +#: ../src/ocrfeeder/studio/widgetPresenter.py:437 msgid "_Y:" msgstr "_Y:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:447 -#: ../src/ocrfeeder/studio/widgetPresenter.py:793 +#: ../src/ocrfeeder/studio/widgetPresenter.py:449 +#: ../src/ocrfeeder/studio/widgetPresenter.py:795 msgid "_Width:" msgstr "_Širina:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:456 +#: ../src/ocrfeeder/studio/widgetPresenter.py:458 msgid "Hei_ght:" msgstr "_Višina:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:479 +#: ../src/ocrfeeder/studio/widgetPresenter.py:481 msgid "Left" msgstr "Levo" -#: ../src/ocrfeeder/studio/widgetPresenter.py:483 +#: ../src/ocrfeeder/studio/widgetPresenter.py:485 msgid "Set text to be left aligned" msgstr "Nastavi besedilo kot poravnano na levi" -#: ../src/ocrfeeder/studio/widgetPresenter.py:485 +#: ../src/ocrfeeder/studio/widgetPresenter.py:487 msgid "Center" msgstr "Sredinsko" -#: ../src/ocrfeeder/studio/widgetPresenter.py:490 +#: ../src/ocrfeeder/studio/widgetPresenter.py:492 msgid "Set text to be centered" msgstr "Določi besedilo za sredinsko postavitev" -#: ../src/ocrfeeder/studio/widgetPresenter.py:492 +#: ../src/ocrfeeder/studio/widgetPresenter.py:494 msgid "Right" msgstr "Desno" -#: ../src/ocrfeeder/studio/widgetPresenter.py:497 +#: ../src/ocrfeeder/studio/widgetPresenter.py:499 msgid "Set text to be right aligned" msgstr "Nastavi besedilo kot poravnano na desni" -#: ../src/ocrfeeder/studio/widgetPresenter.py:499 +#: ../src/ocrfeeder/studio/widgetPresenter.py:501 msgid "Fill" msgstr "Zapolni" -#: ../src/ocrfeeder/studio/widgetPresenter.py:504 +#: ../src/ocrfeeder/studio/widgetPresenter.py:506 msgid "Set text to be fill its area" msgstr "Nastavi besedilo, da zapolni območje besedila" -#: ../src/ocrfeeder/studio/widgetPresenter.py:510 +#: ../src/ocrfeeder/studio/widgetPresenter.py:512 msgid "OC_R" msgstr "O_CR" -#: ../src/ocrfeeder/studio/widgetPresenter.py:511 +#: ../src/ocrfeeder/studio/widgetPresenter.py:513 msgid "Perform OCR on this content area using the selected OCR engine." msgstr "Izvajanje optičnega prepoznavanja tega vsebinskega območja z uporabo izbranega programnika prepoznavanja." -#: ../src/ocrfeeder/studio/widgetPresenter.py:517 +#: ../src/ocrfeeder/studio/widgetPresenter.py:519 msgid "OCR engine to recognize this content area" msgstr "Programnik optičnega prepoznavanja za to vsebinsko območje" #. Text Properties -#: ../src/ocrfeeder/studio/widgetPresenter.py:525 +#: ../src/ocrfeeder/studio/widgetPresenter.py:527 msgid "Text Properties" msgstr "Lastnosti besedila" -#: ../src/ocrfeeder/studio/widgetPresenter.py:547 +#: ../src/ocrfeeder/studio/widgetPresenter.py:549 msgid "Font" msgstr "Pisava" -#: ../src/ocrfeeder/studio/widgetPresenter.py:554 +#: ../src/ocrfeeder/studio/widgetPresenter.py:556 msgid "Align" msgstr "Poravnaj" -#: ../src/ocrfeeder/studio/widgetPresenter.py:558 +#: ../src/ocrfeeder/studio/widgetPresenter.py:560 msgid "Spacing" msgstr "Razmik" -#: ../src/ocrfeeder/studio/widgetPresenter.py:560 +#: ../src/ocrfeeder/studio/widgetPresenter.py:562 msgid "Set the text's letter spacing" msgstr "Določi razmik črk v besedilu" -#: ../src/ocrfeeder/studio/widgetPresenter.py:562 +#: ../src/ocrfeeder/studio/widgetPresenter.py:564 msgid "Set the text's line spacing" msgstr "Določi razmik vrstic v besedilu" -#: ../src/ocrfeeder/studio/widgetPresenter.py:567 +#: ../src/ocrfeeder/studio/widgetPresenter.py:569 msgid "_Line:" msgstr "_Vrstica:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:578 +#: ../src/ocrfeeder/studio/widgetPresenter.py:580 msgid "L_etter:" msgstr "Č_rka:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:590 +#: ../src/ocrfeeder/studio/widgetPresenter.py:592 msgid "Sty_le" msgstr "Slo_g" -#: ../src/ocrfeeder/studio/widgetPresenter.py:597 +#: ../src/ocrfeeder/studio/widgetPresenter.py:599 msgid "Angle" msgstr "Kot" -#: ../src/ocrfeeder/studio/widgetPresenter.py:601 +#: ../src/ocrfeeder/studio/widgetPresenter.py:603 msgid "OCR engine to recogni_ze this area:" msgstr "Programnik optičnega prepoznavanja za _to območje: " -#: ../src/ocrfeeder/studio/widgetPresenter.py:615 +#: ../src/ocrfeeder/studio/widgetPresenter.py:617 msgid "Detect" msgstr "Zaznaj" -#: ../src/ocrfeeder/studio/widgetPresenter.py:617 +#: ../src/ocrfeeder/studio/widgetPresenter.py:619 msgid "Angle:" msgstr "Kot:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:702 +#: ../src/ocrfeeder/studio/widgetPresenter.py:704 msgid "Save File" msgstr "Shrani datoteko" -#: ../src/ocrfeeder/studio/widgetPresenter.py:705 +#: ../src/ocrfeeder/studio/widgetPresenter.py:707 msgid "Open File" msgstr "Odpri datoteko" -#: ../src/ocrfeeder/studio/widgetPresenter.py:709 +#: ../src/ocrfeeder/studio/widgetPresenter.py:711 msgid "Open Folder" msgstr "Odpri mapo" -#: ../src/ocrfeeder/studio/widgetPresenter.py:736 +#: ../src/ocrfeeder/studio/widgetPresenter.py:738 msgid "Pages to export" msgstr "Strani za izvoz" -#: ../src/ocrfeeder/studio/widgetPresenter.py:738 +#: ../src/ocrfeeder/studio/widgetPresenter.py:740 msgid "All" msgstr "Vse" -#: ../src/ocrfeeder/studio/widgetPresenter.py:739 +#: ../src/ocrfeeder/studio/widgetPresenter.py:741 msgid "Current" msgstr "Trenutno" -#: ../src/ocrfeeder/studio/widgetPresenter.py:755 +#: ../src/ocrfeeder/studio/widgetPresenter.py:757 msgid "Choose the format" msgstr "Izbor vrste zapisa" -#: ../src/ocrfeeder/studio/widgetPresenter.py:772 -#: ../src/ocrfeeder/studio/widgetPresenter.py:779 +#: ../src/ocrfeeder/studio/widgetPresenter.py:774 +#: ../src/ocrfeeder/studio/widgetPresenter.py:781 msgid "Page size" msgstr "Velikost strani" -#: ../src/ocrfeeder/studio/widgetPresenter.py:784 +#: ../src/ocrfeeder/studio/widgetPresenter.py:786 msgid "Custom…" msgstr "Po meri ..." -#: ../src/ocrfeeder/studio/widgetPresenter.py:798 +#: ../src/ocrfeeder/studio/widgetPresenter.py:800 msgid "_Height:" msgstr "_Višina:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:807 +#: ../src/ocrfeeder/studio/widgetPresenter.py:809 msgid "Affected pages" msgstr "Izbrane strani" -#: ../src/ocrfeeder/studio/widgetPresenter.py:809 +#: ../src/ocrfeeder/studio/widgetPresenter.py:811 msgid "C_urrent" msgstr "Tren_utno" -#: ../src/ocrfeeder/studio/widgetPresenter.py:812 +#: ../src/ocrfeeder/studio/widgetPresenter.py:814 msgid "_All" msgstr "_Vse" -#: ../src/ocrfeeder/studio/widgetPresenter.py:872 +#: ../src/ocrfeeder/studio/widgetPresenter.py:874 msgid "Unpaper Image Processor" msgstr "Razstranjanje slike" -#: ../src/ocrfeeder/studio/widgetPresenter.py:886 +#: ../src/ocrfeeder/studio/widgetPresenter.py:888 msgid "Preview" msgstr "Predogled" -#: ../src/ocrfeeder/studio/widgetPresenter.py:892 +#: ../src/ocrfeeder/studio/widgetPresenter.py:894 msgid "_Preview" msgstr "_Predogled" -#: ../src/ocrfeeder/studio/widgetPresenter.py:918 +#: ../src/ocrfeeder/studio/widgetPresenter.py:920 msgid "Performing Unpaper" msgstr "Izvajanje razstranjanja" -#: ../src/ocrfeeder/studio/widgetPresenter.py:918 +#: ../src/ocrfeeder/studio/widgetPresenter.py:920 msgid "Performing unpaper. Please wait…" msgstr "Izvajanje razstranjanja. Počakajte ..." -#: ../src/ocrfeeder/studio/widgetPresenter.py:962 +#: ../src/ocrfeeder/studio/widgetPresenter.py:964 msgid "Noise Filter Intensity" msgstr "Trenutni filter hrupnosti" -#: ../src/ocrfeeder/studio/widgetPresenter.py:964 -#: ../src/ocrfeeder/studio/widgetPresenter.py:996 +#: ../src/ocrfeeder/studio/widgetPresenter.py:966 +#: ../src/ocrfeeder/studio/widgetPresenter.py:998 msgid "Default" msgstr "Privzeto" -#: ../src/ocrfeeder/studio/widgetPresenter.py:966 -#: ../src/ocrfeeder/studio/widgetPresenter.py:998 +#: ../src/ocrfeeder/studio/widgetPresenter.py:968 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1000 msgid "Custom" msgstr "Po meri" -#: ../src/ocrfeeder/studio/widgetPresenter.py:968 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1000 +#: ../src/ocrfeeder/studio/widgetPresenter.py:970 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1002 msgid "None" msgstr "Brez" -#: ../src/ocrfeeder/studio/widgetPresenter.py:994 +#: ../src/ocrfeeder/studio/widgetPresenter.py:996 msgid "Gray Filter Size" msgstr "Velikost filtra sivin" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1026 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1028 msgid "Black Filter" msgstr "Filter črnine" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1027 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1029 msgid "Use" msgstr "Uporabi" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1034 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1036 msgid "Extra Options" msgstr "Dodatne možnosti" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1036 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1038 msgid "Unpaper's command line arguments" msgstr "Argumenti ukaza razstranjevanja" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1093 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1095 msgid "Unpaper Preferences" msgstr "Možnosti razstranjanja" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1150 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1161 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1152 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1163 msgid "An error occurred!" msgstr "Prišlo je do napake!" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1232 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1234 msgid "Cancelled" msgstr "Preklicano" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1246 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1248 msgid "Preferences" msgstr "Možnosti" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1312 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1314 msgid "_General" msgstr "_Splošno" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1317 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1319 msgid "Temporary folder" msgstr "Začasna mapa" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1321 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1385 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1323 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1387 msgid "Choose" msgstr "Izbor" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1338 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1340 msgid "_Recognition" msgstr "_Prepoznavanje" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1343 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1345 msgid "Select boxes' colors" msgstr "Izbor barve okvirja" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1349 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1351 msgid "Te_xt areas' fill color" msgstr "Barva _polnila območja besedila" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1355 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1357 msgid "Text areas' _stroke color" msgstr "Barva _črt območja besedila" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1361 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1363 msgid "_Image areas' fill color" msgstr "Barva _polnila območja slike" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1381 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1383 msgid "Path to unpaper" msgstr "Pot do programa za razstranjanje" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1393 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1643 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1681 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1699 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1790 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1395 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1645 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1683 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1701 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1792 msgid "OCR Engines" msgstr "OCR programniki" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1395 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1397 msgid "The engine that should be used when performing the automatic recognition." msgstr "Programnik, ki naj bo uporabljen med izvajanjem samodejne prepoznave" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1406 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1408 msgid "Favorite _engine:" msgstr "Pri_ljubljeni programnik:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1421 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1423 msgid "Window size" msgstr "Velikost okna" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1422 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1424 msgid "A_utomatic" msgstr "_Samodejno" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1423 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1425 msgid "Cu_stom" msgstr "Po _meri" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1432 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1434 msgid "The window size is the detection algorithm's subdivision areas' size." msgstr "Velikost okna je enaka velikosti algoritma zaznanega razdelka območja." -#: ../src/ocrfeeder/studio/widgetPresenter.py:1444 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1446 msgid "Columns Detection" msgstr "Zaznava stolpcev" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1449 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1451 msgid "_Improve columns detection" msgstr "_Izboljšaj zaznavanje stolpcev" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1451 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1453 msgid "Use a post-detection algorithm to improve the detection of columns" msgstr "Uporabi algoritem za izboljšanje zaznavanja stolpcev" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1462 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1536 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1464 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1538 msgid "_Automatic" msgstr "_Samodejno" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1464 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1538 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1466 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1540 msgid "Custo_m" msgstr "Po _meri" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1468 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1470 msgid "The columns' minimum width in pixels" msgstr "Najmanjša širina stolpca v točkah" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1484 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1486 msgid "Minimum width that a column should have:" msgstr "Najmanjša širina stolpca:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1505 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1507 msgid "Recognized Text" msgstr "Prepoznano besedilo" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1506 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1508 msgid "_Fix line breaks and hyphenization" msgstr "_Popravi prelome vrstic in vezaje" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1508 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1510 msgid "Removes single line breaks and hyphenization from text generated by OCR engines" msgstr "Odstrani enojne prelome vrstic in vezaje, ki so ustvarjeni s programniki za optično prepoznavanje" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1518 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1520 msgid "Content Areas" msgstr "Vsebinska območja" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1523 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1525 msgid "A_djust content areas' bounds" msgstr "Prilagodi robove vsebinskih območij" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1525 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1527 msgid "Use a post-detection algorithm to shorten the contents areas' margins" msgstr "Uporabi algoritem za skrajševanje robov območja vsebine." -#: ../src/ocrfeeder/studio/widgetPresenter.py:1542 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1544 msgid "The maximum size for the content areas' margins in pixels" msgstr "Največja velikost robov območja vsebine v točkah" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1559 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1561 msgid "Maximum size that the content areas' margins should have:" msgstr "Največja velikost robov območja vsebine:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1605 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1607 msgid "Image Pre-processing" msgstr "Obdelava slike" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1606 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1608 msgid "Des_kew images" msgstr "Odstranjevanje _nagiba slike" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1608 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1610 msgid "Tries to straighten the images before they are added" msgstr "Poskusi izravnati sliko preden je dodana" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1617 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1619 msgid "_Unpaper images" msgstr "_Razstrani slike" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1619 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1621 msgid "Cleans the image using the Unpaper pre-processor" msgstr "Počisti sliko z razstranjevanjem" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1623 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1625 msgid "Unpaper _Preferences" msgstr "Možnosti razstranjevanja" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1657 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1659 msgid "Engines to be added" msgstr "Programniki za dodajanje" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1662 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1664 msgid "Include" msgstr "Vključi" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1666 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1703 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1668 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1705 msgid "Engine" msgstr "Programnik" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1707 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1709 msgid "Add" msgstr "Dodaj" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1709 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1711 msgid "Edit" msgstr "Uredi" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1710 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1712 msgid "De_tect" msgstr "_Zaznaj" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1724 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1726 msgid "Are you sure you want to delete this engine?" msgstr "Ali ste prepričani, da želite izbrisati ta programnik?" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1772 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1774 msgid "No OCR engines available" msgstr "Na voljo ni nobenega OCR programnika" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1773 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1775 msgid "" "No OCR engines were found in the system.\n" "Please make sure you have OCR engines installed and available." @@ -1016,60 +1041,60 @@ "V sistemu ni programnikov za optično prepoznavanje.\n" "Prepričajte se, da so nameščeni in dostopni z vašimi dovoljenji." -#: ../src/ocrfeeder/studio/widgetPresenter.py:1792 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1794 #, python-format msgid "%s engine" msgstr "Programnik %s" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1816 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1818 msgid "_Name:" msgstr "_Ime:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1817 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1819 msgid "Engine name" msgstr "Ime programnika" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1819 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1821 msgid "_Image format:" msgstr "_Zapis slike:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1821 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1823 msgid "The required image format" msgstr "Zahtevan zapis slike" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1823 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1825 msgid "_Failure string:" msgstr "Niz _napake:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1825 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1827 msgid "The failure string or character that this engine uses" msgstr "Niz napak ali znak, ki ga programnik uporablja" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1828 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1830 msgid "Engine _path:" msgstr "Pot _programnika:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1830 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1832 msgid "The path to the engine program" msgstr "Pot do programa programnika" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1832 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1834 msgid "Engine _arguments:" msgstr "_Argumenti programnika:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1834 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1836 msgid "Arguments: use $IMAGE for image and $FILE if it writes to a file" msgstr "Argumenti: uporabite $IMAGE za slike in $FILE, če bo zapisano v datoteko" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1851 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1853 msgid "Error setting the new engine; please check your engine settings." msgstr "Napaka med nastavljanjem novega programnika. Preverite nastavitve." -#: ../src/ocrfeeder/studio/widgetPresenter.py:1851 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1853 msgid "Warning" msgstr "Opozorilo" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1887 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1889 msgid "translator-credits" msgstr "Matej Urbančič " diff -Nru ocrfeeder-0.7.6/po/uk.po ocrfeeder-0.7.7/po/uk.po --- ocrfeeder-0.7.6/po/uk.po 2011-03-11 21:40:40.000000000 +0000 +++ ocrfeeder-0.7.7/po/uk.po 2011-12-10 13:08:36.000000000 +0000 @@ -6,8 +6,8 @@ msgstr "" "Project-Id-Version: 1.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-14 07:38+0200\n" -"PO-Revision-Date: 2011-02-15 12:34+0300\n" +"POT-Creation-Date: 2011-12-04 08:32+0200\n" +"PO-Revision-Date: 2011-12-04 08:50+0300\n" "Last-Translator: Korostil Daniel \n" "Language-Team: translation@linux.org.ua\n" "Language: uk\n" @@ -18,7 +18,55 @@ "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Virtaal 0.6.1\n" -#: ../src/ocrfeeder/feeder/imageManipulation.py:38 +#: ../resources/ocrfeeder.desktop.in.h:1 +msgid "OCRFeeder" +msgstr "OCRFeeder" + +#: ../resources/ocrfeeder.desktop.in.h:2 +msgid "The complete OCR suite." +msgstr "Повноцінний набір OCR." + +#: ../resources/spell-checker.ui.h:1 +msgid "Language" +msgstr "Мова" + +#: ../resources/spell-checker.ui.h:2 +msgid "Cha_nge" +msgstr "З_мінити" + +#: ../resources/spell-checker.ui.h:3 +msgid "Change A_ll" +msgstr "Змінити _усі" + +#: ../resources/spell-checker.ui.h:4 +msgid "Change _to:" +msgstr "Змінити _на:" + +#: ../resources/spell-checker.ui.h:5 +msgid "Check spelling" +msgstr "Перевіряння орфографії" + +#: ../resources/spell-checker.ui.h:6 +msgid "Ignore _All" +msgstr "Проігнорувати _все" + +#: ../resources/spell-checker.ui.h:7 +msgid "Language:" +msgstr "Мова:" + +#: ../resources/spell-checker.ui.h:8 +msgid "Misspelled word:" +msgstr "Помилкове слово:" + +#: ../resources/spell-checker.ui.h:9 +msgid "_Ignore" +msgstr "_Проігнорувати" + +#: ../resources/spell-checker.ui.h:10 +msgid "_Suggestions:" +msgstr "_Поради:" + +#: ../src/ocrfeeder/feeder/imageManipulation.py:37 #, python-format msgid "" "A problem occurred while trying to open the image:\n" @@ -30,147 +78,200 @@ "Переконайтесь, що зображення існує, або спробуйте перетворити його в інший " "формат." -#: ../resources/ocrfeeder.desktop.in.h:1 -msgid "OCRFeeder" -msgstr "OCRFeeder" +#: ../src/ocrfeeder/studio/studioBuilder.py:61 +msgid "ODT" +msgstr "ODT" + +#: ../src/ocrfeeder/studio/studioBuilder.py:62 +msgid "HTML" +msgstr "HTML" -#: ../resources/ocrfeeder.desktop.in.h:2 -msgid "The complete OCR suite." -msgstr "Повноцінний набір OCR." +#: ../src/ocrfeeder/studio/studioBuilder.py:63 +#: ../src/ocrfeeder/studio/studioBuilder.py:253 +msgid "PDF" +msgstr "PDF" -#: ../src/ocrfeeder/studio/studioBuilder.py:180 +#: ../src/ocrfeeder/studio/studioBuilder.py:64 +msgid "Plain Text" +msgstr "Звичайний текст" + +#: ../src/ocrfeeder/studio/studioBuilder.py:187 msgid "Images" msgstr "Зображення" -#: ../src/ocrfeeder/studio/studioBuilder.py:192 +#: ../src/ocrfeeder/studio/studioBuilder.py:199 msgid "Obtaining scanners" msgstr "Отримання сканерів" -#: ../src/ocrfeeder/studio/studioBuilder.py:192 -#: ../src/ocrfeeder/studio/studioBuilder.py:218 -#: ../src/ocrfeeder/studio/studioBuilder.py:260 -#: ../src/ocrfeeder/studio/widgetModeler.py:445 -#: ../src/ocrfeeder/studio/widgetModeler.py:450 -#: ../src/ocrfeeder/studio/widgetModeler.py:502 -#: ../src/ocrfeeder/studio/widgetModeler.py:553 +#: ../src/ocrfeeder/studio/studioBuilder.py:199 +#: ../src/ocrfeeder/studio/studioBuilder.py:225 +#: ../src/ocrfeeder/studio/studioBuilder.py:267 +#: ../src/ocrfeeder/studio/widgetModeler.py:431 +#: ../src/ocrfeeder/studio/widgetModeler.py:436 +#: ../src/ocrfeeder/studio/widgetModeler.py:489 +#: ../src/ocrfeeder/studio/widgetModeler.py:582 msgid "Please wait…" msgstr "Будь ласка, заждіть…" -#: ../src/ocrfeeder/studio/studioBuilder.py:218 +#: ../src/ocrfeeder/studio/studioBuilder.py:225 msgid "Scanning" msgstr "Сканування" -#: ../src/ocrfeeder/studio/studioBuilder.py:223 +#: ../src/ocrfeeder/studio/studioBuilder.py:230 msgid "No scanner devices were found" msgstr "Не знайдено жодного сканера" -#: ../src/ocrfeeder/studio/studioBuilder.py:224 -#: ../src/ocrfeeder/studio/studioBuilder.py:239 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1139 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1150 +#: ../src/ocrfeeder/studio/studioBuilder.py:231 +#: ../src/ocrfeeder/studio/studioBuilder.py:246 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1154 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1165 msgid "Error" msgstr "Помилка" -#: ../src/ocrfeeder/studio/studioBuilder.py:238 +#: ../src/ocrfeeder/studio/studioBuilder.py:245 msgid "Error scanning page" msgstr "Помилка сканування сторінки" -#: ../src/ocrfeeder/studio/studioBuilder.py:246 -msgid "PDF" -msgstr "PDF" - -#: ../src/ocrfeeder/studio/studioBuilder.py:260 +#: ../src/ocrfeeder/studio/studioBuilder.py:267 msgid "Loading PDF" msgstr "Завантаження PDF" -#: ../src/ocrfeeder/studio/studioBuilder.py:283 +#: ../src/ocrfeeder/studio/studioBuilder.py:298 +msgid "What kind of PDF document do you wish?" +msgstr "Який тип документа PDF ви бажаєте?" + +#: ../src/ocrfeeder/studio/studioBuilder.py:300 +msgid "From scratch" +msgstr "З нуля" + +#: ../src/ocrfeeder/studio/studioBuilder.py:302 +msgid "Creates a new PDF from scratch." +msgstr "Створити новий PDF з нуля." + +#: ../src/ocrfeeder/studio/studioBuilder.py:304 +msgid "Searchable PDF" +msgstr "PDF для пошуку" + +#: ../src/ocrfeeder/studio/studioBuilder.py:305 +msgid "Creates a PDF based on the images but with searchable text." +msgstr "Створити PDF на основі зображень, але з придатним для пошуку текстом." + +#: ../src/ocrfeeder/studio/studioBuilder.py:329 msgid "Export pages" msgstr "Експортування сторінки" -#: ../src/ocrfeeder/studio/studioBuilder.py:297 +#: ../src/ocrfeeder/studio/studioBuilder.py:346 msgid "Are you sure you want to delete the current image?" msgstr "Вилучити наявне зображення?" -#: ../src/ocrfeeder/studio/studioBuilder.py:341 +#: ../src/ocrfeeder/studio/studioBuilder.py:393 msgid "Are you sure you want to clear the project?" msgstr "Очистити проект?" -#: ../src/ocrfeeder/studio/studioBuilder.py:398 +#: ../src/ocrfeeder/studio/studioBuilder.py:445 msgid "The project hasn't been saved." msgstr "Проект не збережено." -#: ../src/ocrfeeder/studio/studioBuilder.py:399 +#: ../src/ocrfeeder/studio/studioBuilder.py:446 msgid "Do you want to save it before closing?" msgstr "Зберегти перед закриттям?" -#: ../src/ocrfeeder/studio/studioBuilder.py:400 +#: ../src/ocrfeeder/studio/studioBuilder.py:447 msgid "Close anyway" msgstr "Однаково закрити" -#: ../src/ocrfeeder/studio/widgetModeler.py:126 -#: ../src/ocrfeeder/studio/widgetPresenter.py:133 +#: ../src/ocrfeeder/studio/widgetModeler.py:104 +#: ../src/ocrfeeder/studio/widgetPresenter.py:136 msgid "Pages" msgstr "Сторінки" -#: ../src/ocrfeeder/studio/widgetModeler.py:140 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1697 +#: ../src/ocrfeeder/studio/widgetModeler.py:118 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1685 msgid "Delete" msgstr "Вилучити" -#: ../src/ocrfeeder/studio/widgetModeler.py:191 +#: ../src/ocrfeeder/studio/widgetModeler.py:180 msgid "Selectable areas" msgstr "Ділянка виділення" -#: ../src/ocrfeeder/studio/widgetModeler.py:445 +#: ../src/ocrfeeder/studio/widgetModeler.py:431 msgid "Preparing image" msgstr "Підготовлення зображення" -#: ../src/ocrfeeder/studio/widgetModeler.py:447 +#: ../src/ocrfeeder/studio/widgetModeler.py:433 #, python-format msgid "Preparing image %(current_index)s/%(total)s" msgstr "Підготовлення зображення %(current_index)s/%(total)s" -#: ../src/ocrfeeder/studio/widgetModeler.py:502 +#: ../src/ocrfeeder/studio/widgetModeler.py:489 msgid "Deskewing image" msgstr "Вирівнювання зображення" -#: ../src/ocrfeeder/studio/widgetModeler.py:529 +#: ../src/ocrfeeder/studio/widgetModeler.py:517 msgid "No images added" msgstr "Не додано жодного зображення" -#: ../src/ocrfeeder/studio/widgetModeler.py:532 +#: ../src/ocrfeeder/studio/widgetModeler.py:520 #, python-format msgid "Zoom: %s %%" msgstr "Масштаб: %s %%" -#: ../src/ocrfeeder/studio/widgetModeler.py:534 +#: ../src/ocrfeeder/studio/widgetModeler.py:522 #, python-format msgid "Resolution: %.2f x %.2f" msgstr "Роздільність: %.2f x %.2f" -#: ../src/ocrfeeder/studio/widgetModeler.py:536 +#: ../src/ocrfeeder/studio/widgetModeler.py:524 #, python-format msgid "Page size: %i x %i" msgstr "Розмір сторінки: %i x %i" -#: ../src/ocrfeeder/studio/widgetModeler.py:553 +#: ../src/ocrfeeder/studio/widgetModeler.py:563 +msgid "" +"There are changes that may be overwritten by the new recognition.\n" +"\n" +"Do you want to continue?" +msgstr "" +"Є зміни, які можуть переписатись новим розпізнаванням.\n" +"\n" +"Продовжити?" + +#: ../src/ocrfeeder/studio/widgetModeler.py:582 +msgid "Recognizing Page" +msgstr "Розпізнавання сторінки" + +#: ../src/ocrfeeder/studio/widgetModeler.py:599 msgid "Recognizing Document" msgstr "Розпізнавання документа" -#: ../src/ocrfeeder/studio/widgetModeler.py:612 +#: ../src/ocrfeeder/studio/widgetModeler.py:600 +#, python-format +msgid "Recognizing page %(page_number)s/%(total_pages)s. Please wait…" +msgstr "" +"Розпізнавання сторінки %(page_number)s/%(total_pages)s. Заждіть, будь ласка…" + +#: ../src/ocrfeeder/studio/widgetModeler.py:664 msgid "Export to HTML" msgstr "Експортувати у HTML" -#: ../src/ocrfeeder/studio/widgetModeler.py:626 -#: ../src/ocrfeeder/studio/widgetPresenter.py:202 +#: ../src/ocrfeeder/studio/widgetModeler.py:678 +#: ../src/ocrfeeder/studio/widgetPresenter.py:215 msgid "Export to ODT" msgstr "Експортувати в ODT" -#: ../src/ocrfeeder/studio/widgetModeler.py:647 +#: ../src/ocrfeeder/studio/widgetModeler.py:689 +msgid "Export to Plain Text" +msgstr "Експортувати у звичайний текст" + +#: ../src/ocrfeeder/studio/widgetModeler.py:700 +msgid "Export to PDF" +msgstr "Експортувати в PDF" + +#: ../src/ocrfeeder/studio/widgetModeler.py:721 msgid "OCRFeeder Projects" msgstr "Проекти OCRFeeder" -#: ../src/ocrfeeder/studio/widgetModeler.py:705 +#: ../src/ocrfeeder/studio/widgetModeler.py:767 #, python-format msgid "" "A file named \"%(name)s\" already exists. Do you want to replace it?\n" @@ -181,750 +282,759 @@ "\n" "Файл існує в «%(dir)s». Заміна перезапише його вміст." -#: ../src/ocrfeeder/studio/widgetModeler.py:712 +#: ../src/ocrfeeder/studio/widgetModeler.py:774 msgid "Replace" msgstr "Замінити" -#: ../src/ocrfeeder/studio/widgetPresenter.py:154 +#: ../src/ocrfeeder/studio/widgetPresenter.py:157 msgid "_File" msgstr "_Файл" -#: ../src/ocrfeeder/studio/widgetPresenter.py:155 +#: ../src/ocrfeeder/studio/widgetPresenter.py:158 msgid "_Quit" msgstr "В_ийти" -#: ../src/ocrfeeder/studio/widgetPresenter.py:155 +#: ../src/ocrfeeder/studio/widgetPresenter.py:158 msgid "Exit the program" msgstr "Вийти з програми" -#: ../src/ocrfeeder/studio/widgetPresenter.py:156 +#: ../src/ocrfeeder/studio/widgetPresenter.py:159 msgid "_Open" msgstr "_Відкрити" -#: ../src/ocrfeeder/studio/widgetPresenter.py:156 +#: ../src/ocrfeeder/studio/widgetPresenter.py:159 msgid "Open project" msgstr "Відкрити проект" -#: ../src/ocrfeeder/studio/widgetPresenter.py:157 +#: ../src/ocrfeeder/studio/widgetPresenter.py:160 msgid "_Save" msgstr "_Зберегти" -#: ../src/ocrfeeder/studio/widgetPresenter.py:157 +#: ../src/ocrfeeder/studio/widgetPresenter.py:160 msgid "Save project" msgstr "Зберегти проект" -#: ../src/ocrfeeder/studio/widgetPresenter.py:158 +#: ../src/ocrfeeder/studio/widgetPresenter.py:161 msgid "_Save As…" msgstr "Зберегти _як…" -#: ../src/ocrfeeder/studio/widgetPresenter.py:158 +#: ../src/ocrfeeder/studio/widgetPresenter.py:161 msgid "Save project with a chosen name" msgstr "Зберегти проект за вказаною назвою" -#: ../src/ocrfeeder/studio/widgetPresenter.py:159 +#: ../src/ocrfeeder/studio/widgetPresenter.py:162 msgid "_Add Image" msgstr "_Додати зображення" -#: ../src/ocrfeeder/studio/widgetPresenter.py:159 +#: ../src/ocrfeeder/studio/widgetPresenter.py:162 msgid "Add another image" msgstr "Додати ще зображення" -#: ../src/ocrfeeder/studio/widgetPresenter.py:160 +#: ../src/ocrfeeder/studio/widgetPresenter.py:163 msgid "Add _Folder" msgstr "Додати _теку" -#: ../src/ocrfeeder/studio/widgetPresenter.py:160 +#: ../src/ocrfeeder/studio/widgetPresenter.py:163 msgid "Add all images in a folder" msgstr "Додати всі зображення в теці" -#: ../src/ocrfeeder/studio/widgetPresenter.py:161 +#: ../src/ocrfeeder/studio/widgetPresenter.py:164 msgid "Append Project" msgstr "Додати проект" -#: ../src/ocrfeeder/studio/widgetPresenter.py:161 +#: ../src/ocrfeeder/studio/widgetPresenter.py:164 msgid "Load a project and append it to the current one" msgstr "Завантажити проект і додати його до теперішнього" -#: ../src/ocrfeeder/studio/widgetPresenter.py:162 +#: ../src/ocrfeeder/studio/widgetPresenter.py:165 msgid "_Import PDF" msgstr "_Імпортувати PDF" -#: ../src/ocrfeeder/studio/widgetPresenter.py:162 +#: ../src/ocrfeeder/studio/widgetPresenter.py:165 msgid "Import PDF" msgstr "Імпортувати PDF" -#: ../src/ocrfeeder/studio/widgetPresenter.py:163 +#: ../src/ocrfeeder/studio/widgetPresenter.py:166 msgid "_Export…" msgstr "_Експортувати…" -#: ../src/ocrfeeder/studio/widgetPresenter.py:163 +#: ../src/ocrfeeder/studio/widgetPresenter.py:166 msgid "Export to a chosen format" msgstr "Експортувати у вибраний формат" -#: ../src/ocrfeeder/studio/widgetPresenter.py:164 +#: ../src/ocrfeeder/studio/widgetPresenter.py:167 msgid "_Edit" msgstr "_Зміни" -#: ../src/ocrfeeder/studio/widgetPresenter.py:165 +#: ../src/ocrfeeder/studio/widgetPresenter.py:168 msgid "_Edit Page" msgstr "_Редагувати сторінку" -#: ../src/ocrfeeder/studio/widgetPresenter.py:165 +#: ../src/ocrfeeder/studio/widgetPresenter.py:168 msgid "Edit page settings" msgstr "Змінити налаштування сторінки" -#: ../src/ocrfeeder/studio/widgetPresenter.py:166 +#: ../src/ocrfeeder/studio/widgetPresenter.py:169 msgid "_Preferences" msgstr "_Налаштування" -#: ../src/ocrfeeder/studio/widgetPresenter.py:166 +#: ../src/ocrfeeder/studio/widgetPresenter.py:169 msgid "Configure the application" msgstr "Налаштувати програму" -#: ../src/ocrfeeder/studio/widgetPresenter.py:167 +#: ../src/ocrfeeder/studio/widgetPresenter.py:170 msgid "_Delete Page" msgstr "_Вилучити сторінку" -#: ../src/ocrfeeder/studio/widgetPresenter.py:167 +#: ../src/ocrfeeder/studio/widgetPresenter.py:170 msgid "Delete current page" msgstr "Вилучити цю сторінку" -#: ../src/ocrfeeder/studio/widgetPresenter.py:168 +#: ../src/ocrfeeder/studio/widgetPresenter.py:171 msgid "_Clear Project" msgstr "_Очистити проект" -#: ../src/ocrfeeder/studio/widgetPresenter.py:168 +#: ../src/ocrfeeder/studio/widgetPresenter.py:171 msgid "Delete all images" msgstr "Вилучити всі зображення" -#: ../src/ocrfeeder/studio/widgetPresenter.py:169 +#: ../src/ocrfeeder/studio/widgetPresenter.py:172 msgid "_View" msgstr "П_ерегляд" -#: ../src/ocrfeeder/studio/widgetPresenter.py:170 +#: ../src/ocrfeeder/studio/widgetPresenter.py:173 msgid "Zoom In" msgstr "Збільшити" -#: ../src/ocrfeeder/studio/widgetPresenter.py:171 +#: ../src/ocrfeeder/studio/widgetPresenter.py:174 msgid "Zoom Out" msgstr "Зменшити" -#: ../src/ocrfeeder/studio/widgetPresenter.py:172 +#: ../src/ocrfeeder/studio/widgetPresenter.py:175 msgid "Best Fit" msgstr "Оптимізувати" -#: ../src/ocrfeeder/studio/widgetPresenter.py:173 +#: ../src/ocrfeeder/studio/widgetPresenter.py:176 msgid "Normal Size" msgstr "Нормалізувати" -#: ../src/ocrfeeder/studio/widgetPresenter.py:174 +#: ../src/ocrfeeder/studio/widgetPresenter.py:177 msgid "_Document" msgstr "До_кумент" -#: ../src/ocrfeeder/studio/widgetPresenter.py:175 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1365 +#: ../src/ocrfeeder/studio/widgetPresenter.py:178 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1353 msgid "_Tools" msgstr "_Засоби" -#: ../src/ocrfeeder/studio/widgetPresenter.py:176 +#: ../src/ocrfeeder/studio/widgetPresenter.py:179 msgid "_OCR Engines" msgstr "_Рушії OCR" -#: ../src/ocrfeeder/studio/widgetPresenter.py:176 +#: ../src/ocrfeeder/studio/widgetPresenter.py:179 msgid "Manage OCR engines" msgstr "Керувати рушіями OCR" -#: ../src/ocrfeeder/studio/widgetPresenter.py:177 +#: ../src/ocrfeeder/studio/widgetPresenter.py:180 msgid "_Unpaper" -msgstr "_Оцифрувати" +msgstr "_Обчистити" -#: ../src/ocrfeeder/studio/widgetPresenter.py:177 +#: ../src/ocrfeeder/studio/widgetPresenter.py:180 msgid "Process image with unpaper" -msgstr "Обробити зображення через unpaper" +msgstr "Обробити зображення обчищенням" -#: ../src/ocrfeeder/studio/widgetPresenter.py:178 +#: ../src/ocrfeeder/studio/widgetPresenter.py:181 msgid "Image Des_kewer" -msgstr "_Зображення Deskewer" +msgstr "_Усунення нахилу" -#: ../src/ocrfeeder/studio/widgetPresenter.py:179 +#: ../src/ocrfeeder/studio/widgetPresenter.py:182 msgid "Trie to straighten the image" msgstr "Бор для вирівнювання зображення" -#: ../src/ocrfeeder/studio/widgetPresenter.py:181 -#: ../src/ocrfeeder/studio/widgetPresenter.py:182 +#: ../src/ocrfeeder/studio/widgetPresenter.py:184 +#: ../src/ocrfeeder/studio/widgetPresenter.py:185 msgid "_Help" msgstr "_Довідка" -#: ../src/ocrfeeder/studio/widgetPresenter.py:182 +#: ../src/ocrfeeder/studio/widgetPresenter.py:185 msgid "Help contents" msgstr "Зміст довідки" -#: ../src/ocrfeeder/studio/widgetPresenter.py:183 +#: ../src/ocrfeeder/studio/widgetPresenter.py:186 msgid "_About" msgstr "_Про програму" -#: ../src/ocrfeeder/studio/widgetPresenter.py:183 +#: ../src/ocrfeeder/studio/widgetPresenter.py:186 msgid "About this application" msgstr "Про цю програму" -#: ../src/ocrfeeder/studio/widgetPresenter.py:184 +#: ../src/ocrfeeder/studio/widgetPresenter.py:188 msgid "_Recognize Document" msgstr "_Розпізнавання документа" -#: ../src/ocrfeeder/studio/widgetPresenter.py:184 -msgid "Automatic Detection and Recognition" -msgstr "Автоматичне виявлення і розпізнання документа" +#: ../src/ocrfeeder/studio/widgetPresenter.py:189 +msgid "Automatically detect and recognize all pages" +msgstr "Автоматичне виявлення і розпізнання всіх сторінок" -#: ../src/ocrfeeder/studio/widgetPresenter.py:185 -msgid "Recognize Selected _Areas" -msgstr "Розпізнати виділену _ділянку" +#: ../src/ocrfeeder/studio/widgetPresenter.py:192 +msgid "R_ecognize Page" +msgstr "_Розпізнати сторінку" -#: ../src/ocrfeeder/studio/widgetPresenter.py:185 +#: ../src/ocrfeeder/studio/widgetPresenter.py:193 +msgid "Automatically detect and recognize the current page" +msgstr "Автоматичне виявлення і розпізнання поточної сторінки" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:196 +msgid "Recognize _Selected Areas" +msgstr "Розпізнати _вибрану ділянку" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:197 msgid "Recognize Selected Areas" msgstr "Розпізнати виділену ділянку" -#: ../src/ocrfeeder/studio/widgetPresenter.py:187 -msgid "Select All _Areas" -msgstr "Виділити всі _ділянки" +#: ../src/ocrfeeder/studio/widgetPresenter.py:200 +msgid "Select _All Areas" +msgstr "Вибрати _усі ділянки" -#: ../src/ocrfeeder/studio/widgetPresenter.py:188 +#: ../src/ocrfeeder/studio/widgetPresenter.py:201 msgid "Select all content areas" msgstr "Виділити всі ділянки вмісту" -#: ../src/ocrfeeder/studio/widgetPresenter.py:191 +#: ../src/ocrfeeder/studio/widgetPresenter.py:204 msgid "Select _Previous Area" msgstr "Виділити _попередню ділянку" -#: ../src/ocrfeeder/studio/widgetPresenter.py:192 +#: ../src/ocrfeeder/studio/widgetPresenter.py:205 msgid "Select the previous area from the content areas" msgstr "Виділити попередню ділянку з ділянок вмісту" -#: ../src/ocrfeeder/studio/widgetPresenter.py:195 +#: ../src/ocrfeeder/studio/widgetPresenter.py:208 msgid "Select _Next Area" msgstr "Вибрати _наступну ділянку" -#: ../src/ocrfeeder/studio/widgetPresenter.py:196 +#: ../src/ocrfeeder/studio/widgetPresenter.py:209 msgid "Select the next area from the content areas" msgstr "Виділити наступну ділянку з вмісту ділянок" -#: ../src/ocrfeeder/studio/widgetPresenter.py:199 +#: ../src/ocrfeeder/studio/widgetPresenter.py:212 msgid "Delete Selected Areas" msgstr "Вилучити виділену ділянку" -#: ../src/ocrfeeder/studio/widgetPresenter.py:200 +#: ../src/ocrfeeder/studio/widgetPresenter.py:213 msgid "Deletes all the currently selected content areas" msgstr "Вилучає всі теперішні виділені ділянки вмісту " -#: ../src/ocrfeeder/studio/widgetPresenter.py:202 +#: ../src/ocrfeeder/studio/widgetPresenter.py:215 msgid "_Generate ODT" msgstr "_Створити ODT" -#: ../src/ocrfeeder/studio/widgetPresenter.py:204 +#: ../src/ocrfeeder/studio/widgetPresenter.py:217 msgid "Import Page From S_canner" msgstr "Імпортувати сторінку зі _сканера" -#: ../src/ocrfeeder/studio/widgetPresenter.py:206 +#: ../src/ocrfeeder/studio/widgetPresenter.py:219 msgid "Import From Scanner" msgstr "Імпортувати зі сканера" -#: ../src/ocrfeeder/studio/widgetPresenter.py:209 +#: ../src/ocrfeeder/studio/widgetPresenter.py:222 msgid "_Copy to Clipboard" msgstr "_Скопіювати до буфера" -#: ../src/ocrfeeder/studio/widgetPresenter.py:211 +#: ../src/ocrfeeder/studio/widgetPresenter.py:224 msgid "Copy recognized text to clipboard" msgstr "Скопіювати розпізнаний текст у буфер" -#: ../src/ocrfeeder/studio/widgetPresenter.py:214 +#: ../src/ocrfeeder/studio/widgetPresenter.py:227 msgid "Spell_checker" msgstr "Перевірка _орфографії" -#: ../src/ocrfeeder/studio/widgetPresenter.py:216 +#: ../src/ocrfeeder/studio/widgetPresenter.py:229 msgid "Spell Check Recognized Text" msgstr "Перевірити орфографію розпізнаного тексту" -#: ../src/ocrfeeder/studio/widgetPresenter.py:290 +#: ../src/ocrfeeder/studio/widgetPresenter.py:303 msgid "Area editor" msgstr "Ділянка редагування" -#: ../src/ocrfeeder/studio/widgetPresenter.py:298 +#: ../src/ocrfeeder/studio/widgetPresenter.py:311 msgid "Sets the content area's upper left corner's X coordinate" msgstr "Встановлює ділянку вмісту у верхньому лівому куті за координатою X " -#: ../src/ocrfeeder/studio/widgetPresenter.py:302 +#: ../src/ocrfeeder/studio/widgetPresenter.py:315 msgid "Sets the content area's upper left corner's Y coordinate" msgstr "Встановлює ділянку вмісту у верхньому лівому куті за координатою Y " -#: ../src/ocrfeeder/studio/widgetPresenter.py:306 +#: ../src/ocrfeeder/studio/widgetPresenter.py:319 msgid "Sets the content area's width" msgstr "Вказує ширину ділянки вмісту" -#: ../src/ocrfeeder/studio/widgetPresenter.py:309 +#: ../src/ocrfeeder/studio/widgetPresenter.py:322 msgid "Sets the content area's height" msgstr "Вказує висоту ділянки вмісту" -#: ../src/ocrfeeder/studio/widgetPresenter.py:312 -#: ../src/ocrfeeder/studio/widgetPresenter.py:528 +#: ../src/ocrfeeder/studio/widgetPresenter.py:325 +#: ../src/ocrfeeder/studio/widgetPresenter.py:540 msgid "_Text" msgstr "_Текст" -#: ../src/ocrfeeder/studio/widgetPresenter.py:313 +#: ../src/ocrfeeder/studio/widgetPresenter.py:326 msgid "Set this content area to be the text type" msgstr "Встановити цю ділянку вмісту текстовою" -#: ../src/ocrfeeder/studio/widgetPresenter.py:314 +#: ../src/ocrfeeder/studio/widgetPresenter.py:327 msgid "_Image" msgstr "_Зображення" -#: ../src/ocrfeeder/studio/widgetPresenter.py:315 +#: ../src/ocrfeeder/studio/widgetPresenter.py:328 msgid "Set this content area to be the image type" msgstr "Встановити цю ділянку вмісту графічною" -#: ../src/ocrfeeder/studio/widgetPresenter.py:316 +#: ../src/ocrfeeder/studio/widgetPresenter.py:329 msgid "Type" msgstr "Тип" -#: ../src/ocrfeeder/studio/widgetPresenter.py:326 +#: ../src/ocrfeeder/studio/widgetPresenter.py:339 msgid "Clip" msgstr "Обрізок" -#: ../src/ocrfeeder/studio/widgetPresenter.py:410 +#: ../src/ocrfeeder/studio/widgetPresenter.py:422 msgid "Bounds" msgstr "Межі" -#: ../src/ocrfeeder/studio/widgetPresenter.py:415 +#: ../src/ocrfeeder/studio/widgetPresenter.py:427 msgid "_X:" msgstr "_X:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:424 +#: ../src/ocrfeeder/studio/widgetPresenter.py:436 msgid "_Y:" msgstr "_Y:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:436 -#: ../src/ocrfeeder/studio/widgetPresenter.py:782 +#: ../src/ocrfeeder/studio/widgetPresenter.py:448 +#: ../src/ocrfeeder/studio/widgetPresenter.py:797 msgid "_Width:" msgstr "_Ширина:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:445 +#: ../src/ocrfeeder/studio/widgetPresenter.py:457 msgid "Hei_ght:" msgstr "_Висота:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:468 +#: ../src/ocrfeeder/studio/widgetPresenter.py:480 msgid "Left" msgstr "Ліворуч" -#: ../src/ocrfeeder/studio/widgetPresenter.py:472 +#: ../src/ocrfeeder/studio/widgetPresenter.py:484 msgid "Set text to be left aligned" msgstr "Вирівняти текст за лівим краєм" -#: ../src/ocrfeeder/studio/widgetPresenter.py:474 +#: ../src/ocrfeeder/studio/widgetPresenter.py:486 msgid "Center" msgstr "У центрі" -#: ../src/ocrfeeder/studio/widgetPresenter.py:479 +#: ../src/ocrfeeder/studio/widgetPresenter.py:491 msgid "Set text to be centered" msgstr "Вирівняти текст за центром" -#: ../src/ocrfeeder/studio/widgetPresenter.py:481 +#: ../src/ocrfeeder/studio/widgetPresenter.py:493 msgid "Right" msgstr "Праворуч" -#: ../src/ocrfeeder/studio/widgetPresenter.py:486 +#: ../src/ocrfeeder/studio/widgetPresenter.py:498 msgid "Set text to be right aligned" msgstr "Вирівняти текст за правим краєм" -#: ../src/ocrfeeder/studio/widgetPresenter.py:488 +#: ../src/ocrfeeder/studio/widgetPresenter.py:500 msgid "Fill" msgstr "Заповнити" -#: ../src/ocrfeeder/studio/widgetPresenter.py:493 +#: ../src/ocrfeeder/studio/widgetPresenter.py:505 msgid "Set text to be fill its area" msgstr "Вказати текст, який заповнить свою ділянку" -#: ../src/ocrfeeder/studio/widgetPresenter.py:499 +#: ../src/ocrfeeder/studio/widgetPresenter.py:511 msgid "OC_R" msgstr "_ОCR" -#: ../src/ocrfeeder/studio/widgetPresenter.py:500 +#: ../src/ocrfeeder/studio/widgetPresenter.py:512 msgid "Perform OCR on this content area using the selected OCR engine." msgstr "Виконати оцифрування цієї ділянки вмісту, використовуючи рушій OCR. " -#: ../src/ocrfeeder/studio/widgetPresenter.py:506 +#: ../src/ocrfeeder/studio/widgetPresenter.py:518 msgid "OCR engine to recognize this content area" msgstr "Рушій OCR для розпізнання цієї ділянки вмісту" #. Text Properties -#: ../src/ocrfeeder/studio/widgetPresenter.py:514 +#: ../src/ocrfeeder/studio/widgetPresenter.py:526 msgid "Text Properties" msgstr "Властивості тексту" -#: ../src/ocrfeeder/studio/widgetPresenter.py:536 +#: ../src/ocrfeeder/studio/widgetPresenter.py:548 msgid "Font" msgstr "Шрифт" -#: ../src/ocrfeeder/studio/widgetPresenter.py:543 +#: ../src/ocrfeeder/studio/widgetPresenter.py:555 msgid "Align" msgstr "Вирівняти" -#: ../src/ocrfeeder/studio/widgetPresenter.py:547 +#: ../src/ocrfeeder/studio/widgetPresenter.py:559 msgid "Spacing" msgstr "Інтервал" -#: ../src/ocrfeeder/studio/widgetPresenter.py:549 +#: ../src/ocrfeeder/studio/widgetPresenter.py:561 msgid "Set the text's letter spacing" msgstr "Встановити інтервал між літерами " -#: ../src/ocrfeeder/studio/widgetPresenter.py:551 +#: ../src/ocrfeeder/studio/widgetPresenter.py:563 msgid "Set the text's line spacing" msgstr "Встановити інтервал між лініями" -#: ../src/ocrfeeder/studio/widgetPresenter.py:556 +#: ../src/ocrfeeder/studio/widgetPresenter.py:568 msgid "_Line:" msgstr "_Лінія:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:567 +#: ../src/ocrfeeder/studio/widgetPresenter.py:579 msgid "L_etter:" msgstr "_Буква:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:579 +#: ../src/ocrfeeder/studio/widgetPresenter.py:591 msgid "Sty_le" msgstr "_Стиль" -#: ../src/ocrfeeder/studio/widgetPresenter.py:586 +#: ../src/ocrfeeder/studio/widgetPresenter.py:598 msgid "Angle" msgstr "Кут" -#: ../src/ocrfeeder/studio/widgetPresenter.py:590 +#: ../src/ocrfeeder/studio/widgetPresenter.py:602 msgid "OCR engine to recogni_ze this area:" msgstr "Рушій OCR для _розпізнання цієї ділянки:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:604 +#: ../src/ocrfeeder/studio/widgetPresenter.py:616 msgid "Detect" msgstr "Виявити" -#: ../src/ocrfeeder/studio/widgetPresenter.py:606 +#: ../src/ocrfeeder/studio/widgetPresenter.py:618 msgid "Angle:" msgstr "Кут:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:691 +#: ../src/ocrfeeder/studio/widgetPresenter.py:706 msgid "Save File" msgstr "Зберегти файл" -#: ../src/ocrfeeder/studio/widgetPresenter.py:694 +#: ../src/ocrfeeder/studio/widgetPresenter.py:709 msgid "Open File" msgstr "Відкрити файл" -#: ../src/ocrfeeder/studio/widgetPresenter.py:698 +#: ../src/ocrfeeder/studio/widgetPresenter.py:713 msgid "Open Folder" msgstr "Відкрити теку" -#: ../src/ocrfeeder/studio/widgetPresenter.py:725 +#: ../src/ocrfeeder/studio/widgetPresenter.py:740 msgid "Pages to export" msgstr "Сторінки для експортування" -#: ../src/ocrfeeder/studio/widgetPresenter.py:727 +#: ../src/ocrfeeder/studio/widgetPresenter.py:742 msgid "All" msgstr "Усі" -#: ../src/ocrfeeder/studio/widgetPresenter.py:728 +#: ../src/ocrfeeder/studio/widgetPresenter.py:743 msgid "Current" msgstr "Теперішні" -#: ../src/ocrfeeder/studio/widgetPresenter.py:744 +#: ../src/ocrfeeder/studio/widgetPresenter.py:759 msgid "Choose the format" msgstr "Виберіть формат" -#: ../src/ocrfeeder/studio/widgetPresenter.py:761 -#: ../src/ocrfeeder/studio/widgetPresenter.py:768 +#: ../src/ocrfeeder/studio/widgetPresenter.py:776 +#: ../src/ocrfeeder/studio/widgetPresenter.py:783 msgid "Page size" msgstr "Розмір сторінки" -#: ../src/ocrfeeder/studio/widgetPresenter.py:773 +#: ../src/ocrfeeder/studio/widgetPresenter.py:788 msgid "Custom…" msgstr "Власний…" -#: ../src/ocrfeeder/studio/widgetPresenter.py:787 +#: ../src/ocrfeeder/studio/widgetPresenter.py:802 msgid "_Height:" msgstr "_Висота:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:796 +#: ../src/ocrfeeder/studio/widgetPresenter.py:811 msgid "Affected pages" msgstr "Залучені сторінки" -#: ../src/ocrfeeder/studio/widgetPresenter.py:798 +#: ../src/ocrfeeder/studio/widgetPresenter.py:813 msgid "C_urrent" msgstr "_Теперішні" -#: ../src/ocrfeeder/studio/widgetPresenter.py:801 +#: ../src/ocrfeeder/studio/widgetPresenter.py:816 msgid "_All" msgstr "_Усі" -#: ../src/ocrfeeder/studio/widgetPresenter.py:861 +#: ../src/ocrfeeder/studio/widgetPresenter.py:876 msgid "Unpaper Image Processor" -msgstr "Оброблення зображень Unpaper" +msgstr "Оброблення зображень обчищенням" -#: ../src/ocrfeeder/studio/widgetPresenter.py:875 +#: ../src/ocrfeeder/studio/widgetPresenter.py:890 msgid "Preview" msgstr "Перегляд" -#: ../src/ocrfeeder/studio/widgetPresenter.py:881 +#: ../src/ocrfeeder/studio/widgetPresenter.py:896 msgid "_Preview" msgstr "_Перегляд" -#: ../src/ocrfeeder/studio/widgetPresenter.py:907 +#: ../src/ocrfeeder/studio/widgetPresenter.py:922 msgid "Performing Unpaper" -msgstr "Застосування Unpaper" +msgstr "Обчищення" -#: ../src/ocrfeeder/studio/widgetPresenter.py:907 +#: ../src/ocrfeeder/studio/widgetPresenter.py:922 msgid "Performing unpaper. Please wait…" -msgstr "Виконується unpaper, будь ласка, зачекайте…" +msgstr "Обчищення, будь ласка, зачекайте…" -#: ../src/ocrfeeder/studio/widgetPresenter.py:951 +#: ../src/ocrfeeder/studio/widgetPresenter.py:966 msgid "Noise Filter Intensity" msgstr "Інтенсивність фільтру шумів" -#: ../src/ocrfeeder/studio/widgetPresenter.py:953 -#: ../src/ocrfeeder/studio/widgetPresenter.py:985 +#: ../src/ocrfeeder/studio/widgetPresenter.py:968 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1000 msgid "Default" msgstr "Типова" -#: ../src/ocrfeeder/studio/widgetPresenter.py:955 -#: ../src/ocrfeeder/studio/widgetPresenter.py:987 +#: ../src/ocrfeeder/studio/widgetPresenter.py:970 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1002 msgid "Custom" msgstr "Власна" -#: ../src/ocrfeeder/studio/widgetPresenter.py:957 -#: ../src/ocrfeeder/studio/widgetPresenter.py:989 +#: ../src/ocrfeeder/studio/widgetPresenter.py:972 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1004 msgid "None" msgstr "Немає" -#: ../src/ocrfeeder/studio/widgetPresenter.py:983 +#: ../src/ocrfeeder/studio/widgetPresenter.py:998 msgid "Gray Filter Size" msgstr "Розмір фільтру сірого" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1015 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1030 msgid "Black Filter" msgstr "Фільтр чорного" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1016 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1031 msgid "Use" msgstr "Використати" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1023 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1038 msgid "Extra Options" msgstr "Додаткові параметри" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1025 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1040 msgid "Unpaper's command line arguments" -msgstr "Аргументи командного рядка для Unpaper" +msgstr "Аргументи командного рядка для обчищення" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1082 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1097 msgid "Unpaper Preferences" -msgstr "Налаштування Unpaper" +msgstr "Параметри обчищення" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1139 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1150 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1154 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1165 msgid "An error occurred!" msgstr "Трапилась помилка!" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1221 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1236 msgid "Cancelled" msgstr "Скасовано" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1235 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1250 msgid "Preferences" msgstr "Налаштування" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1301 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1307 msgid "_General" msgstr "_Загальне" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1306 -msgid "Temporary folder" -msgstr "Тимчасова тека" - -#: ../src/ocrfeeder/studio/widgetPresenter.py:1310 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1374 -msgid "Choose" -msgstr "Вибрати" - -#: ../src/ocrfeeder/studio/widgetPresenter.py:1327 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1315 msgid "_Recognition" msgstr "_Розпізнання" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1332 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1320 msgid "Select boxes' colors" msgstr "Вибрати кольори вікон" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1338 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1326 msgid "Te_xt areas' fill color" msgstr "Заповнення _текстової ділянки кольором" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1344 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1332 msgid "Text areas' _stroke color" msgstr "Колір _штриха текстової ділянки" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1350 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1338 msgid "_Image areas' fill color" msgstr "Заповнення ділянки _зображення кольором" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1370 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1358 msgid "Path to unpaper" msgstr "Шлях до unpaper" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1382 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1632 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1670 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1688 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1777 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1362 +msgid "Choose" +msgstr "Вибрати" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1370 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1620 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1658 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1676 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1767 msgid "OCR Engines" msgstr "Рушії OCR" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1384 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1372 msgid "" "The engine that should be used when performing the automatic recognition." msgstr "Рушій повинен використовуватись для автоматичного розпізнавання." -#: ../src/ocrfeeder/studio/widgetPresenter.py:1395 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1383 msgid "Favorite _engine:" msgstr "Улюблений _рушій:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1410 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1398 msgid "Window size" msgstr "Розмір вікна" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1411 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1399 msgid "A_utomatic" msgstr "_Автоматично" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1412 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1400 msgid "Cu_stom" msgstr "_Власний" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1421 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1409 msgid "The window size is the detection algorithm's subdivision areas' size." msgstr "Розмір вікна — алгоритм виявлення розміру ділянок підрозділів." -#: ../src/ocrfeeder/studio/widgetPresenter.py:1433 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1421 msgid "Columns Detection" msgstr "Виявлення стовпців" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1438 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1426 msgid "_Improve columns detection" msgstr "_Покращити виявлення стовпців" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1440 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1428 msgid "Use a post-detection algorithm to improve the detection of columns" -msgstr "Використовувати спеціальний алгоритм для покращеного виявлення стовпців" +msgstr "" +"Використовувати спеціальний алгоритм для покращеного виявлення стовпців" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1451 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1525 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1439 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1513 msgid "_Automatic" msgstr "_Автоматично" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1453 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1527 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1441 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1515 msgid "Custo_m" msgstr "_Власний" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1457 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1445 msgid "The columns' minimum width in pixels" msgstr "Мінімальна ширина стовпців у пікселях" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1473 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1461 msgid "Minimum width that a column should have:" msgstr "Мінімальна ширина стовпців повинна мати:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1494 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1482 msgid "Recognized Text" msgstr "Розпізнаний текст" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1495 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1483 msgid "_Fix line breaks and hyphenization" -msgstr "_Виправити розривні лінії та дефіси" +msgstr "_Виправити розривні рядків і переносів " -#: ../src/ocrfeeder/studio/widgetPresenter.py:1497 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1485 msgid "" "Removes single line breaks and hyphenization from text generated by OCR " "engines" msgstr "" -"Вилучити поодинокі розривні лінії та дефіси з тексту, який створено через " +"Вилучити поодинокі розривні рядки і переноси з тексту, який створено через " "рушій OCR" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1507 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1495 msgid "Content Areas" msgstr "Ділянка вмісту" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1512 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1500 msgid "A_djust content areas' bounds" msgstr "_Коригувати межі ділянки вмісту" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1514 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1502 msgid "Use a post-detection algorithm to shorten the contents areas' margins" -msgstr "Використовувати спеціальний алгоритм для скорочення плів ділянки вмісту" +msgstr "" +"Використовувати спеціальний алгоритм для скорочення плів ділянки вмісту" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1531 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1519 msgid "The maximum size for the content areas' margins in pixels" msgstr "Максимальний розмір для полів ділянки вмісту в пікселях" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1548 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1536 msgid "Maximum size that the content areas' margins should have:" msgstr "Максимальний розмір полів ділянки вмісту повинна мати:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1594 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1582 msgid "Image Pre-processing" msgstr "Попереднє оброблення зображення" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1595 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1583 msgid "Des_kew images" msgstr "_Зображення Deskew" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1597 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1585 msgid "Tries to straighten the images before they are added" msgstr "Спроба випрямити зображення перед їхнім доданням." -#: ../src/ocrfeeder/studio/widgetPresenter.py:1606 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1594 msgid "_Unpaper images" -msgstr "_Оцифровані зображення" +msgstr "_Обчищенні зображення" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1608 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1596 msgid "Cleans the image using the Unpaper pre-processor" msgstr "Очищує зображення за допомогою оброблення через Unpaper" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1612 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1600 msgid "Unpaper _Preferences" msgstr "_Налаштування Unpaper" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1646 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1634 msgid "Engines to be added" msgstr "Рушії для додавання" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1651 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1639 msgid "Include" msgstr "Залучити" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1655 -#: ../src/ocrfeeder/studio/widgetPresenter.py:1692 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1643 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1680 msgid "Engine" msgstr "Рушій" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1696 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1684 msgid "Add" msgstr "Додати" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1698 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1686 msgid "Edit" msgstr "Змінити" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1699 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1687 msgid "De_tect" msgstr "_Виявити" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1713 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1701 msgid "Are you sure you want to delete this engine?" msgstr "Вилучити цей рушій?" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1759 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1749 +msgid "No OCR engines available" +msgstr "Нема доступних рушіїв OCR" + +#: ../src/ocrfeeder/studio/widgetPresenter.py:1750 msgid "" "No OCR engines were found in the system.\n" "Please make sure you have OCR engines installed and available." @@ -932,64 +1042,66 @@ "Не знайдено жодного рушія OCR.\n" "Будь ласка, переконайтесь, що рушії встановлено та вони доступні." -#: ../src/ocrfeeder/studio/widgetPresenter.py:1762 -msgid "No OCR engines available" -msgstr "Нема доступних рушіїв OCR" - -#: ../src/ocrfeeder/studio/widgetPresenter.py:1779 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1769 #, python-format msgid "%s engine" msgstr "Рушій %s" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1803 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1793 msgid "_Name:" msgstr "_Назва:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1804 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1794 msgid "Engine name" msgstr "Назва рушія" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1806 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1796 msgid "_Image format:" msgstr "_Формат зображення:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1808 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1798 msgid "The required image format" msgstr "Потрібний формат зображення" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1810 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1800 msgid "_Failure string:" msgstr "_Невдалий рядок:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1812 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1802 msgid "The failure string or character that this engine uses" msgstr "Помилковий рядок або символ, який використовує рушій" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1815 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1805 msgid "Engine _path:" msgstr "_Шлях до рушія:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1817 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1807 msgid "The path to the engine program" msgstr "Шлях до програми рушія" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1819 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1809 msgid "Engine _arguments:" msgstr "_Аргументи рушія:" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1821 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1811 msgid "Arguments: use $IMAGE for image and $FILE if it writes to a file" msgstr "Аргументи: $IMAGE для зображення та $FILE для записаних у файл" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1838 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1828 msgid "Error setting the new engine; please check your engine settings." msgstr "" "Помилкові налаштування нового рушія; будь ласка, перевірте налаштування." -#: ../src/ocrfeeder/studio/widgetPresenter.py:1838 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1828 msgid "Warning" msgstr "Попередження" -#: ../src/ocrfeeder/studio/widgetPresenter.py:1874 +#: ../src/ocrfeeder/studio/widgetPresenter.py:1864 msgid "translator-credits" -msgstr "Коростіль Данило " +msgstr "Daniel Korostil " + +#~ msgid "Recognize Selected _Areas" +#~ msgstr "Розпізнати виділену _ділянку" + +#~ msgid "Temporary folder" +#~ msgstr "Тимчасова тека" diff -Nru ocrfeeder-0.7.6/src/ocrfeeder/feeder/documentGeneration.py ocrfeeder-0.7.7/src/ocrfeeder/feeder/documentGeneration.py --- ocrfeeder-0.7.6/src/ocrfeeder/feeder/documentGeneration.py 2011-08-02 21:50:46.000000000 +0000 +++ ocrfeeder-0.7.7/src/ocrfeeder/feeder/documentGeneration.py 2011-12-09 08:31:43.000000000 +0000 @@ -27,6 +27,7 @@ STYLE_OBLIQUE from ocrfeeder.util import TEXT_TYPE, IMAGE_TYPE, ALIGN_LEFT, ALIGN_RIGHT, ALIGN_CENTER, \ ALIGN_FILL +from ocrfeeder.util.configuration import ConfigurationManager from ocrfeeder.util.graphics import getImagePrintSize from ocrfeeder.util.lib import debug from reportlab.pdfgen import canvas @@ -104,7 +105,8 @@ def addImage(self, data_box): format = 'PNG' - image_file = tempfile.mkstemp(suffix = '.' + format.lower())[1] + image_file = tempfile.mkstemp(dir = ConfigurationManager.TEMPORARY_FOLDER, + suffix = '.' + format.lower())[1] data_box.image.save(image_file, format = format) self.images.append(image_file) new_div = ''' @@ -249,7 +251,8 @@ def addImage(self, data_box): format = 'PNG' - image_file = tempfile.mkstemp(suffix = '.' + format)[1] + image_file = tempfile.mkstemp(dir = ConfigurationManager.TEMPORARY_FOLDER, + suffix = '.' + format)[1] data_box.image.save(image_file, format = format) x, y, width, height = data_box.getBoundsPrintSize(self.current_page_resolution) photo_frame = Frame(stylename=self.photo_style, x = '%sin' % x, y = '%sin' % y, width = '%sin' % width, height = '%sin' % height, anchortype='paragraph') diff -Nru ocrfeeder-0.7.6/src/ocrfeeder/feeder/imageManipulation.py ocrfeeder-0.7.7/src/ocrfeeder/feeder/imageManipulation.py --- ocrfeeder-0.7.6/src/ocrfeeder/feeder/imageManipulation.py 2011-07-25 16:04:26.000000000 +0000 +++ ocrfeeder-0.7.7/src/ocrfeeder/feeder/imageManipulation.py 2011-12-09 08:31:43.000000000 +0000 @@ -18,7 +18,6 @@ # along with this program. If not, see . ########################################################################### -import tempfile from ocrfeeder.util.lib import debug import gettext @@ -202,26 +201,6 @@ return margins -class Slicer: - - def __init__(self, original_image, temp_dir = '/tmp'): - self.original_image = original_image - self.temp_dir = temp_dir - - def slice(self, bounding_box): - return self.original_image.crop(bounding_box) - - def sliceFromPointsList(self, points_list): - if len(points_list) < 3: - raise InsuficientPointsForPolygon - bounding_box = graphics.getContainerRectangle(points_list) - return self.original_image.crop(bounding_box) - - def sliceFromBlock(self, block, window_size): - cropped_image = self.slice(block.translateToUnits(window_size)) - image_file = tempfile.mkstemp(dir = self.temp_dir)[1] - cropped_image.save(image_file, format = 'PNG') - class ContentAnalyser: def __init__(self, image): diff -Nru ocrfeeder-0.7.6/src/ocrfeeder/feeder/layoutAnalysis.py ocrfeeder-0.7.7/src/ocrfeeder/feeder/layoutAnalysis.py --- ocrfeeder-0.7.6/src/ocrfeeder/feeder/layoutAnalysis.py 2011-08-03 21:44:40.000000000 +0000 +++ ocrfeeder-0.7.7/src/ocrfeeder/feeder/layoutAnalysis.py 2011-12-09 08:31:43.000000000 +0000 @@ -523,6 +523,8 @@ return data_box def getTextSizeFromImage(self, image, page_resolution): + if image.mode != 'L': + image = image.convert('L') width, height = image.size # We get the right half of the image only because this # way we avoid measuring eventual "initial chars" which diff -Nru ocrfeeder-0.7.6/src/ocrfeeder/feeder/ocrEngines.py ocrfeeder-0.7.7/src/ocrfeeder/feeder/ocrEngines.py --- ocrfeeder-0.7.6/src/ocrfeeder/feeder/ocrEngines.py 2011-08-02 21:47:30.000000000 +0000 +++ ocrfeeder-0.7.7/src/ocrfeeder/feeder/ocrEngines.py 2011-12-09 08:31:43.000000000 +0000 @@ -50,7 +50,8 @@ self.__color_information = None def setImage(self, image): - image_file = tempfile.mkstemp(suffix = '.' + self.image_format.lower())[1] + image_file = tempfile.mkstemp(dir = self.temporary_folder, + suffix = '.' + self.image_format.lower())[1] image = image.convert('L') try: image.save(image_file, format = self.image_format) @@ -166,13 +167,18 @@ arg_name = child.tag arg_value = child.text arguments[arg_name] = arg_value - return Engine(**arguments) + engine = Engine(**arguments) + engine.temporary_folder = self.configuration_manager.TEMPORARY_FOLDER + return engine def getXmlFilesInFolder(self, folder): return [os.path.join(folder, file) for file in os.listdir(folder) if file.endswith('.xml')] def newEngine(self, name, engine_path, arguments, image_format, failure_string): - engine = Engine(name = name, engine_path = engine_path, arguments = arguments, image_format = image_format, failure_string = failure_string) + engine = Engine(name = name, engine_path = engine_path, + arguments = arguments, image_format = image_format, + temporary_folder = self.configuration_manager.TEMPORARY_FOLDER, + failure_string = failure_string) return engine def delete(self, index): diff -Nru ocrfeeder-0.7.6/src/ocrfeeder/studio/configuration.py ocrfeeder-0.7.7/src/ocrfeeder/studio/configuration.py --- ocrfeeder-0.7.6/src/ocrfeeder/studio/configuration.py 2011-05-12 10:29:28.000000000 +0000 +++ ocrfeeder-0.7.7/src/ocrfeeder/studio/configuration.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,600 +0,0 @@ -# -*- coding: utf-8 -*- - -########################################################################### -# OCRFeeder - The complete OCR suite -# Copyright (C) 2009 Joaquim Rocha -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -########################################################################### - -from dataHolder import PageData, DataBox, TextData -from ocrfeeder.feeder.ocrEngines import Engine -from ocrfeeder.util.lib import debug, getExecPath -from xml.dom import minidom -import os.path -import re -import shutil -import tempfile -import zipfile - -PREDEFINED_ENGINES = {'tesseract': {'name': 'Tesseract', - 'image_format': 'TIF', - 'engine_path': 'tesseract', - 'arguments': '$IMAGE $FILE; cat ' - '$FILE.txt; rm $FILE'}, - 'ocrad': {'name': 'Ocrad', - 'image_format': 'PPM', - 'engine_path': 'ocrad', - 'arguments': '-F utf8 $IMAGE'}, - 'gocr': {'name': 'GOCR', - 'image_format': 'PPM', - 'engine_path': 'gocr', - 'arguments': '-f UTF8 $IMAGE'}, - 'cuneiform': {'name': 'Cuneiform', - 'image_format': 'BMP', - 'engine_path': 'cuneiform', - 'arguments': '-f text -o $FILE $IMAGE >' - ' /dev/null 2> /dev/null && cat $FILE' - ' && rm $FILE'}, - } - -class ProjectSaver: - - def __init__(self, pages_data, temp_dir = '/tmp'): - - self.pages_data = pages_data - self.document = minidom.Document() - self.images = {} - self.temp_dir = temp_dir - - def __handleImageEmbedding(self, page_data): - base_name = os.path.basename(page_data.image_path) - embedded_names = [] - for original_path, embedded_name in self.images.items(): - embedded_names.append(embedded_name) - if os.path.samefile(original_path, page_data.image_path): - return embedded_name - i = 0 - while base_name in embedded_names: - base_name += '_%s' % i - i += 1 - self.images[page_data.image_path] = base_name - return base_name - - def __imagesToXml(self, root_node): - for page_data in self.pages_data: - self.__handleImageEmbedding(page_data) - images_node = root_node.appendChild(self.document.createElement('images')) - for original_name, embedded_name in self.images.items(): - original = self.document.createElement('original_name') - original.appendChild(self.document.createTextNode(original_name)) - embedded = self.document.createElement('embedded_name') - embedded.appendChild(self.document.createTextNode(embedded_name)) - new_image = self.document.createElement('image') - new_image.appendChild(original) - new_image.appendChild(embedded) - images_node.appendChild(new_image) - - def convertToXml(self, item, root_node): - if type(item) == dict: - for key, value in item.items(): - new_node = self.document.createElement(key) - self.convertToXml(value, new_node) - root_node.appendChild(new_node) - elif type(item) == list: - for element in item: - self.convertToXml(element, root_node) - else: - text_node = self.document.createTextNode(str(item)) - root_node.appendChild(text_node) - return root_node - - def serialize(self, file_name): - root_node = self.document.createElement('ocrfeeder') - pages_dict = {'pages': [page_data.convertToDict() for page_data in self.pages_data]} - new_node = self.convertToXml(pages_dict, root_node) - self.__imagesToXml(root_node) - self.__createProjectFile(new_node.toxml(), file_name) - - def __createProjectFile(self, xml_content, file_name): - temp_dir = tempfile.mkstemp(dir = self.temp_dir)[1] - try: - os.remove(temp_dir) - except: - pass - os.mkdir(temp_dir) - old_dir = os.curdir - os.chdir(temp_dir) - images_dir = os.path.join(os.curdir, 'images') - os.mkdir(images_dir) - zip = zipfile.ZipFile(file_name, 'w') - for original_name, embbeded_name in self.images.items(): - embedded_name = os.path.join(images_dir, embbeded_name) - shutil.copy(original_name, embedded_name) - zip.write(embedded_name) - f = open(os.path.join(os.curdir, 'project.xml'), 'w') - f.write(xml_content) - f.close() - zip.write(os.path.join(os.curdir, 'project.xml')) - zip.close() - os.chdir(old_dir) - shutil.rmtree(temp_dir, ignore_errors = True) - -class ProjectLoader: - - def __init__(self, project_file, temp_dir = '/tmp'): - self.temp_dir = temp_dir - if not (os.path.isfile(project_file) and project_file.endswith('.ocrf')): - #raise - pass - self.configuration_dir = self.unzipFile(project_file) - - def loadConfiguration(self, folder = None): - folder = folder or self.configuration_dir - project_xml = os.path.join(folder, 'project.xml') - if not project_xml: - return None - document = minidom.parse(project_xml) - root_node = document.documentElement - images_node = document.getElementsByTagName('image') - images = self.__getImagesInfo(images_node) - page_data_nodes = document.getElementsByTagName('PageData') - pages = [] - for page_data in self.__getPageDataInfo(page_data_nodes): - debug('Page Data:', page_data) - data_boxes = [] - for data_box in page_data['data_boxes']: - args = [] - # text variable is to avoid problems with - # escaping characters - text = '' - for var_name, value in data_box.items(): - if var_name == 'text': - text = value - continue - real_value = '"""%s"""' % re.escape(value) - try: - real_value = int(value) - except ValueError: - pass - args.append('%s = %s' % (var_name, real_value)) - exec('box = DataBox(%s)' % ', '.join(args)) - box.text = text - data_boxes.append(box) - image_path = page_data['image_path'] - if not os.path.exists(image_path): - image_path = os.path.join(self.configuration_dir, 'images', images[image_path]) - page = PageData(image_path, data_boxes) - pages.append(page) - return pages - - def __getImagesInfo(self, images_nodes_list): - images = {} - for image_node in images_nodes_list: - original_name = '' - embedded_name = '' - for child in image_node.childNodes: - if child.localName == 'original_name': - original_name = child.childNodes[0].nodeValue - elif child.localName == 'embedded_name': - embedded_name = child.childNodes[0].nodeValue - if original_name and embedded_name: - images[original_name] = embedded_name - return images - - def __getPageDataInfo(self, pages_nodes_list): - page_data_info = [] - for page in pages_nodes_list: - page_data = {} - for child in page.childNodes: - if child.localName == 'data_boxes': - page_data[child.localName] = self.__getDataBoxesInfo(child) - pass - elif child.nodeType == child.ELEMENT_NODE: - page_data[child.localName] = child.childNodes[0].nodeValue - page_data_info.append(page_data) - return page_data_info - - def __getDataBoxesInfo(self, data_boxes_node): - data_boxes_info = [] - for child in data_boxes_node.childNodes: - if child.localName == 'DataBox': - data_boxes_info.append(self.__getDataBoxInfo(child)) - return data_boxes_info - - def __getDataBoxInfo(self, data_box_node): - data_box_info = {} - for child in data_box_node.childNodes: - if child.localName == 'text_data': - pass - elif child.nodeType == child.ELEMENT_NODE: - childNodes = child.childNodes - if childNodes: - data_box_info[child.localName] = childNodes[0].nodeValue - else: - data_box_info[child.localName] = '' - return data_box_info - - def __getTextDatasInfo(self, text_datas): - text_datas_info = [] - for child in text_datas.childNodes: - if child.localName == 'TextData': - text_datas_info.append(self.__getTextDataInfo(child)) - return text_datas_info - - def __getTextDataInfo(self, text_data): - text_data_info = {} - for child in text_data.childNodes: - text_data_info[child.localName] = child.childNodes[0].nodeValue - return text_data_info - - def unzipFile(self, file): - base_name = os.path.basename(file) - export_dir = os.path.join(self.temp_dir, os.path.splitext(base_name)[0]) - if os.path.exists(export_dir): - shutil.rmtree(export_dir, ignore_errors = True) - os.mkdir(export_dir) - project_zip = zipfile.ZipFile(file) - for name in project_zip.namelist(): - if name.endswith(os.path.sep): - os.mkdir(os.path.join(export_dir, name)) - else: - dir_name = os.path.dirname(name) - dir_name_path = os.path.join(export_dir, dir_name) - if dir_name: - if not os.path.exists(dir_name_path): - os.makedirs(dir_name_path) - outfile = open(os.path.join(export_dir, name), 'wb') - outfile.write(project_zip.read(name)) - outfile.close() - return export_dir - -class ConfigurationManager(object): - - TEMPORARY_DIR = 'temporary_dir' - TEXT_FILL = 'text_fill' - IMAGE_FILL = 'image_fill' - BOXES_STROKE = 'boxes_stroke' - WINDOW_SIZE = 'window_size' - UNPAPER = 'unpaper' - UNPAPER_USE_BLACK_FILTER = 'unpaper_use_black_filter' - UNPAPER_NOISE_FILTER_INTENSITY = 'unpaper_noise_filter_intensity' - UNPAPER_GRAY_FILTER_SIZE = 'unpaper_gray_filter_size' - UNPAPER_EXTRA_OPTIONS = 'unpaper_extra_options' - UNPAPER_IMAGES_AFTER_ADDITION = 'unpaper_images_after_addition' - FAVORITE_ENGINE = 'favorite_engine' - IMPROVE_COLUMN_DETECTION = 'improve_column_detection' - COLUMN_MIN_WIDTH = 'column_min_width' - CLEAN_TEXT = 'clean_text' - ADJUST_BOXES_BOUNDS = 'adjust_boxes_bounds' - BOUNDS_ADJUSTMENT_SIZE = 'bounds_adjustment_size' - DESKEW_IMAGES_AFTER_ADDITION = 'deskew_images_after_addition' - - DEFAULTS = {TEMPORARY_DIR: '/tmp', - TEXT_FILL: (94, 156, 235, 150), - BOXES_STROKE: (94, 156, 235, 250), - IMAGE_FILL: (0, 183, 0, 150), - WINDOW_SIZE: 'auto', - UNPAPER: getExecPath('unpaper') or '', - UNPAPER_USE_BLACK_FILTER: True, - UNPAPER_NOISE_FILTER_INTENSITY: 'auto', - UNPAPER_GRAY_FILTER_SIZE: 'auto', - FAVORITE_ENGINE: 'ocrad', - IMPROVE_COLUMN_DETECTION: True, - COLUMN_MIN_WIDTH: 'auto', - CLEAN_TEXT: True, - ADJUST_BOXES_BOUNDS: True, - BOUNDS_ADJUSTMENT_SIZE: 'auto', - DESKEW_IMAGES_AFTER_ADDITION: False, - UNPAPER_IMAGES_AFTER_ADDITION: False, - UNPAPER_EXTRA_OPTIONS: '', - } - - conf = dict(DEFAULTS) - - def __init__(self): - self.user_configuration_folder = os.path.expanduser('~/.ocrfeeder') - self.user_engines_folder = os.path.join(self.user_configuration_folder, 'engines') - self.makeUserConfigurationFolder() - self.has_unpaper = self.getDefault(self.UNPAPER) - - def makeUserConfigurationFolder(self): - if not os.path.exists(self.user_engines_folder): - os.makedirs(self.user_engines_folder) - if [file_name for file_name in os.listdir(self.user_engines_folder)\ - if file_name.endswith('.xml')]: - return - for engine in self.getEnginesInSystem(): - engine_file = os.path.join(self.user_engines_folder, engine.name) - engine.saveToXml('%s.xml' % engine_file) - - def getEnginesInSystem(self): - existing_engines = [] - engines_paths = [(name, getExecPath(conf['engine_path']))\ - for name, conf in PREDEFINED_ENGINES.items()] - for name, path in engines_paths: - if not path: - continue - engine_name = PREDEFINED_ENGINES[name].get('name', None) - arguments = PREDEFINED_ENGINES[name].get('arguments', None) - if not arguments or not engine_name: - continue - image_format = PREDEFINED_ENGINES[name].get('image_format', 'PPM') - failure_string = PREDEFINED_ENGINES[name].get('failure_string', '') - engine = Engine(engine_name, - path, - arguments, - image_format = image_format, - failure_string = failure_string) - existing_engines.append(engine) - return existing_engines - - def setConf(self, conf_key, value): - ConfigurationManager.conf[conf_key] = value - - def getConf(self, conf_key): - return ConfigurationManager.conf[conf_key] - - def setTemporaryDir(self, temp_dir): - self.setConf(self.TEMPORARY_DIR, temp_dir) - - def setTemporaryDir(self, temp_dir): - self.setConf(self.TEMPORARY_DIR, temp_dir) - - def getTemporaryDir(self): - return self.getConf(self.TEMPORARY_DIR) - - def setFavoriteEngine(self, engine_name): - self.setConf(self.FAVORITE_ENGINE, engine_name) - - def getFavoriteEngine(self): - return self.getConf(self.FAVORITE_ENGINE) - - def __getColorFromString(self, color): - if type(color) != str: - return color - color_list = [value.strip('()\ ') for value in color.split(',')] - try: - int_color_list = [int(value) for value in color_list] - except ValueError, exception: - return None - return tuple(int_color_list) - - def setTextFill(self, color): - self.setConf(self.TEXT_FILL, color) - - def setBoxesStroke(self, color): - self.setConf(self.BOXES_STROKE, color) - - def setImageFill(self, color): - self.setConf(self.IMAGE_FILL, color) - - def getTextFill(self): - return self.__getColorFromString(self.getConf(self.TEXT_FILL)) - - def getBoxesStroke(self): - return self.__getColorFromString(self.getConf(self.BOXES_STROKE)) - - def getImageFill(self): - return self.__getColorFromString(self.getConf(self.IMAGE_FILL)) - - def setWindowSize(self, window_size): - self.setConf(self.WINDOW_SIZE, window_size) - - def getWindowSize(self): - return self.getConf(self.WINDOW_SIZE) - - def setUnpaper(self, unpaper): - self.setConf(self.UNPAPER, unpaper) - - def getUnpaper(self): - return self.getConf(self.UNPAPER) - - def setUseBlackFilter(self, use_black_filter): - self.setConf(self.UNPAPER_USE_BLACK_FILTER, use_black_filter) - - def getUseBlackFilter(self): - use_black_filter = self.getConf(self.UNPAPER_USE_BLACK_FILTER) - return self.__convertBoolSetting(use_black_filter) - - def setNoiseFilterIntensity(self, noise_filter_intensity): - self.setConf(self.UNPAPER_NOISE_FILTER_INTENSITY, - noise_filter_intensity) - - def getNoiseFilterIntensity(self): - noise_filter_intensity = \ - self.getConf(self.UNPAPER_NOISE_FILTER_INTENSITY) - if noise_filter_intensity == 'auto' or noise_filter_intensity == 'none': - return noise_filter_intensity - try: - noise_filter_intensity_int = int(noise_filter_intensity) - except ValueError: - return 'auto' - return noise_filter_intensity_int - - def setGrayFilterSize(self, gray_filter_size): - self.setConf(self.UNPAPER_GRAY_FILTER_SIZE, - gray_filter_size) - - def getGrayFilterSize(self): - gray_filter_size = self.getConf(self.UNPAPER_GRAY_FILTER_SIZE) - if gray_filter_size == 'auto' or gray_filter_size == 'none': - return gray_filter_size - try: - gray_filter_size_int = int(gray_filter_size) - except ValueError: - return 'auto' - return gray_filter_size_int - - def setUnpaperExtraOptions(self, extra_options): - self.setConf(self.UNPAPER_EXTRA_OPTIONS, extra_options) - - def getUnpaperExtraOptions(self): - return self.getConf(self.UNPAPER_EXTRA_OPTIONS) - - def setUnpaperImagesAfterAddition(self, unpaper_images_after_addition): - self.setConf(self.UNPAPER_IMAGES_AFTER_ADDITION, - unpaper_images_after_addition) - - def getUnpaperImagesAfterAddition(self): - unpaper = self.getConf(self.UNPAPER_IMAGES_AFTER_ADDITION) - return self.__convertBoolSetting(unpaper) - - def setImproveColumnDetection(self, improve_column_detection): - self.setConf(self.IMPROVE_COLUMN_DETECTION, improve_column_detection) - - def getImproveColumnDetection(self): - improve = self.getConf(self.IMPROVE_COLUMN_DETECTION) - return self.__convertBoolSetting(improve) - - def setColumnMinWidth(self, column_min_width): - self.setConf(self.COLUMN_MIN_WIDTH, column_min_width) - - def getColumnMinWidth(self): - column_min_width = self.getConf(self.COLUMN_MIN_WIDTH) - if column_min_width == 'auto': - return column_min_width - try: - column_min_width_int = int(column_min_width) - except ValueError: - return 'auto' - return column_min_width_int - - def getCleanText(self): - clean_text = self.getConf(self.CLEAN_TEXT) - return self.__convertBoolSetting(clean_text) - - def setCleanText(self, clean_text): - self.setConf(self.CLEAN_TEXT, clean_text) - - def setAdjustBoxesBounds(self, adjust_boxes_bounds): - self.setConf(self.ADJUST_BOXES_BOUNDS, adjust_boxes_bounds) - - def getAdjustBoxesBounds(self): - adjust = self.getConf(self.ADJUST_BOXES_BOUNDS) - return self.__convertBoolSetting(adjust) - - def setDeskewImagesAfterAddition(self, deskew_images_after_addition): - self.setConf(self.DESKEW_IMAGES_AFTER_ADDITION, - deskew_images_after_addition) - - def getDeskewImagesAfterAddition(self): - deskew = self.getConf(self.DESKEW_IMAGES_AFTER_ADDITION) - return self.__convertBoolSetting(deskew) - - def setBoundsAdjustmentSize(self, adjustment_size): - self.setConf(self.BOUNDS_ADJUSTMENT_SIZE, adjustment_size) - - def getBoundsAdjustmentSize(self): - adjustment_size = self.getConf(self.BOUNDS_ADJUSTMENT_SIZE) - if adjustment_size == 'auto': - return adjustment_size - try: - adjustment_size_int = int(adjustment_size) - except ValueError: - return 'auto' - return adjustment_size_int - - def __convertBoolSetting(self, setting): - if type(setting) == str: - if setting == 'True': - setting = True - else: - setting = False - return setting - - def setDefaults(self): - ConfigurationManager.conf = dict(self.DEFAULTS) - - def getDefault(self, variable_name): - if variable_name in self.DEFAULTS.keys(): - return self.DEFAULTS[variable_name] - else: - return '' - - def loadConfiguration(self): - configuration_file = os.path.join(self.user_configuration_folder, 'preferences.xml') - if not os.path.isfile(configuration_file): - return False - document = minidom.parse(configuration_file) - for key in self.DEFAULTS.keys(): - nodeList = document.getElementsByTagName(key) - if nodeList: - for node in nodeList: - for child in node.childNodes: - if child.nodeType == child.TEXT_NODE: - ConfigurationManager.conf[key] = str(child.nodeValue) - break - return True - - def configurationToXml(self): - configuration_file = os.path.join(self.user_configuration_folder, 'preferences.xml') - doc = minidom.Document() - root_node = doc.createElement('ocrfeeder') - for key, value in ConfigurationManager.conf.items(): - new_node = doc.createElement(key) - new_node.appendChild(doc.createTextNode(str(value))) - root_node.appendChild(new_node) - configuration = doc.toxml(encoding = 'utf-8') - configuration += '\n' + root_node.toxml(encoding = 'utf-8') - new_configuration_file = open(configuration_file, 'w') - new_configuration_file.write(configuration) - new_configuration_file.close() - - temporary_dir = property(getTemporaryDir, - setTemporaryDir) - text_fill = property(getTextFill, - setTextFill) - image_fill = property(getImageFill, - setImageFill) - boxes_stroke = property(getBoxesStroke, - setBoxesStroke) - favorite_engine = property(getFavoriteEngine, - setFavoriteEngine) - window_size = property(getWindowSize, - setWindowSize) - unpaper = property(getUnpaper, - setUnpaper) - - unpaper_use_black_filter = property(getUseBlackFilter, - setUseBlackFilter) - - unpaper_gray_filter_size = property(getGrayFilterSize, - setGrayFilterSize) - - unpaper_noise_filter_intensity = property(getNoiseFilterIntensity, - setNoiseFilterIntensity) - - unpaper_images_after_addition = property(getUnpaperImagesAfterAddition, - setUnpaperImagesAfterAddition) - - unpaper_extra_options = property(getUnpaperExtraOptions, - setUnpaperExtraOptions) - - improve_column_detection = property(getImproveColumnDetection, - setImproveColumnDetection) - column_min_width = property(getColumnMinWidth, - setColumnMinWidth) - - clean_text = property(getCleanText, - setCleanText) - - adjust_boxes_bounds = property(getAdjustBoxesBounds, - setAdjustBoxesBounds) - - bounds_adjustment_size = property(getBoundsAdjustmentSize, - setBoundsAdjustmentSize) - - deskew_images_after_addition = property(getDeskewImagesAfterAddition, - setDeskewImagesAfterAddition) diff -Nru ocrfeeder-0.7.6/src/ocrfeeder/studio/customWidgets.py ocrfeeder-0.7.7/src/ocrfeeder/studio/customWidgets.py --- ocrfeeder-0.7.6/src/ocrfeeder/studio/customWidgets.py 2011-08-03 21:45:38.000000000 +0000 +++ ocrfeeder-0.7.7/src/ocrfeeder/studio/customWidgets.py 2011-12-09 08:31:43.000000000 +0000 @@ -169,10 +169,14 @@ self.__selectSurroundingArea(1) def deleteSelectedAreas(self): + areas_to_remove = [] while self.selected_areas: selected_area = self.selected_areas.pop(0) selected_area.remove() - self.emit('removed_box', selected_area) + areas_to_remove.append(selected_area) + self.get_window().set_cursor(None) + for area in areas_to_remove: + self.emit('removed_box', area) def __selectSurroundingArea(self, area_offset): areas = self.getAllAreas() diff -Nru ocrfeeder-0.7.6/src/ocrfeeder/studio/dataHolder.py ocrfeeder-0.7.7/src/ocrfeeder/studio/dataHolder.py --- ocrfeeder-0.7.6/src/ocrfeeder/studio/dataHolder.py 2011-03-11 21:40:40.000000000 +0000 +++ ocrfeeder-0.7.7/src/ocrfeeder/studio/dataHolder.py 2011-12-09 08:31:43.000000000 +0000 @@ -150,6 +150,12 @@ def setLineSpacing(self, spacing): self.text_data.line_space = spacing + def getLetterSpacing(self): + return self.text_data.letter_space + + def getLineSpacing(self): + return self.text_data.line_space + def getX(self): return self.x @@ -174,6 +180,15 @@ dictionary['text_data'] = self.text_data.convertToDict() return {'DataBox': dictionary} + def updateBoundsFromBox(self, box): + x, y, width, height = int(box.props.x), int(box.props.y), \ + int(box.props.width), int(box.props.height) + self.setX(x) + self.setY(y) + self.setWidth(width) + self.setHeight(height) + return (x, y, width, height) + class PageData: diff -Nru ocrfeeder-0.7.6/src/ocrfeeder/studio/Makefile.am ocrfeeder-0.7.7/src/ocrfeeder/studio/Makefile.am --- ocrfeeder-0.7.6/src/ocrfeeder/studio/Makefile.am 2011-03-11 21:40:40.000000000 +0000 +++ ocrfeeder-0.7.7/src/ocrfeeder/studio/Makefile.am 2011-12-09 08:31:44.000000000 +0000 @@ -2,9 +2,9 @@ ocrfeeder_studio_PYTHON = \ __init__.py \ - configuration.py \ customWidgets.py \ dataHolder.py \ + project.py \ studioBuilder.py \ widgetModeler.py \ widgetPresenter.py diff -Nru ocrfeeder-0.7.6/src/ocrfeeder/studio/Makefile.in ocrfeeder-0.7.7/src/ocrfeeder/studio/Makefile.in --- ocrfeeder-0.7.6/src/ocrfeeder/studio/Makefile.in 2011-08-04 15:53:11.000000000 +0000 +++ ocrfeeder-0.7.7/src/ocrfeeder/studio/Makefile.in 2011-12-10 13:08:15.000000000 +0000 @@ -207,9 +207,9 @@ ocrfeeder_studiodir = $(pkgpythondir)/studio/ ocrfeeder_studio_PYTHON = \ __init__.py \ - configuration.py \ customWidgets.py \ dataHolder.py \ + project.py \ studioBuilder.py \ widgetModeler.py \ widgetPresenter.py diff -Nru ocrfeeder-0.7.6/src/ocrfeeder/studio/project.py ocrfeeder-0.7.7/src/ocrfeeder/studio/project.py --- ocrfeeder-0.7.6/src/ocrfeeder/studio/project.py 1970-01-01 00:00:00.000000000 +0000 +++ ocrfeeder-0.7.7/src/ocrfeeder/studio/project.py 2011-12-09 08:31:44.000000000 +0000 @@ -0,0 +1,240 @@ +# -*- coding: utf-8 -*- + +########################################################################### +# OCRFeeder - The complete OCR suite +# Copyright (C) 2009 Joaquim Rocha +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +########################################################################### + +from dataHolder import PageData, DataBox, TextData +from ocrfeeder.util.lib import debug +from ocrfeeder.util.configuration import ConfigurationManager +from xml.dom import minidom +import os.path +import re +import shutil +import tempfile +import zipfile + +class ProjectSaver: + + def __init__(self, pages_data): + + self.pages_data = pages_data + self.document = minidom.Document() + self.images = {} + self.temp_dir = ConfigurationManager.TEMPORARY_FOLDER + + def __handleImageEmbedding(self, page_data): + base_name = os.path.basename(page_data.image_path) + embedded_names = [] + for original_path, embedded_name in self.images.items(): + embedded_names.append(embedded_name) + if os.path.samefile(original_path, page_data.image_path): + return embedded_name + i = 0 + while base_name in embedded_names: + base_name += '_%s' % i + i += 1 + self.images[page_data.image_path] = base_name + return base_name + + def __imagesToXml(self, root_node): + for page_data in self.pages_data: + self.__handleImageEmbedding(page_data) + images_node = root_node.appendChild(self.document.createElement('images')) + for original_name, embedded_name in self.images.items(): + original = self.document.createElement('original_name') + original.appendChild(self.document.createTextNode(original_name)) + embedded = self.document.createElement('embedded_name') + embedded.appendChild(self.document.createTextNode(embedded_name)) + new_image = self.document.createElement('image') + new_image.appendChild(original) + new_image.appendChild(embedded) + images_node.appendChild(new_image) + + def convertToXml(self, item, root_node): + if type(item) == dict: + for key, value in item.items(): + new_node = self.document.createElement(key) + self.convertToXml(value, new_node) + root_node.appendChild(new_node) + elif type(item) == list: + for element in item: + self.convertToXml(element, root_node) + else: + text_node = self.document.createTextNode(str(item)) + root_node.appendChild(text_node) + return root_node + + def serialize(self, file_name): + root_node = self.document.createElement('ocrfeeder') + pages_dict = {'pages': [page_data.convertToDict() for page_data in self.pages_data]} + new_node = self.convertToXml(pages_dict, root_node) + self.__imagesToXml(root_node) + self.__createProjectFile(new_node.toxml(), file_name) + + def __createProjectFile(self, xml_content, file_name): + temp_dir = tempfile.mkstemp(dir = self.temp_dir)[1] + try: + os.remove(temp_dir) + except: + pass + os.mkdir(temp_dir) + old_dir = os.curdir + os.chdir(temp_dir) + images_dir = os.path.join(os.curdir, 'images') + os.mkdir(images_dir) + zip = zipfile.ZipFile(file_name, 'w') + for original_name, embbeded_name in self.images.items(): + embedded_name = os.path.join(images_dir, embbeded_name) + shutil.copy(original_name, embedded_name) + zip.write(embedded_name) + f = open(os.path.join(os.curdir, 'project.xml'), 'w') + f.write(xml_content) + f.close() + zip.write(os.path.join(os.curdir, 'project.xml')) + zip.close() + os.chdir(old_dir) + shutil.rmtree(temp_dir, ignore_errors = True) + +class ProjectLoader: + + def __init__(self, project_file): + self.temp_dir = ConfigurationManager.TEMPORARY_FOLDER + if not (os.path.isfile(project_file) and project_file.endswith('.ocrf')): + #raise + pass + self.configuration_dir = self.unzipFile(project_file) + + def loadConfiguration(self, folder = None): + folder = folder or self.configuration_dir + project_xml = os.path.join(folder, 'project.xml') + if not project_xml: + return None + document = minidom.parse(project_xml) + root_node = document.documentElement + images_node = document.getElementsByTagName('image') + images = self.__getImagesInfo(images_node) + page_data_nodes = document.getElementsByTagName('PageData') + pages = [] + for page_data in self.__getPageDataInfo(page_data_nodes): + debug('Page Data:', page_data) + data_boxes = [] + for data_box in page_data['data_boxes']: + args = [] + # text variable is to avoid problems with + # escaping characters + text = '' + for var_name, value in data_box.items(): + if var_name == 'text': + text = value + continue + real_value = '"""%s"""' % re.escape(value) + try: + real_value = int(value) + except ValueError: + pass + args.append('%s = %s' % (var_name, real_value)) + exec('box = DataBox(%s)' % ', '.join(args)) + box.text = text + data_boxes.append(box) + image_path = page_data['image_path'] + if not os.path.exists(image_path): + image_path = os.path.join(self.configuration_dir, 'images', images[image_path]) + page = PageData(image_path, data_boxes) + pages.append(page) + return pages + + def __getImagesInfo(self, images_nodes_list): + images = {} + for image_node in images_nodes_list: + original_name = '' + embedded_name = '' + for child in image_node.childNodes: + if child.localName == 'original_name': + original_name = child.childNodes[0].nodeValue + elif child.localName == 'embedded_name': + embedded_name = child.childNodes[0].nodeValue + if original_name and embedded_name: + images[original_name] = embedded_name + return images + + def __getPageDataInfo(self, pages_nodes_list): + page_data_info = [] + for page in pages_nodes_list: + page_data = {} + for child in page.childNodes: + if child.localName == 'data_boxes': + page_data[child.localName] = self.__getDataBoxesInfo(child) + pass + elif child.nodeType == child.ELEMENT_NODE: + page_data[child.localName] = child.childNodes[0].nodeValue + page_data_info.append(page_data) + return page_data_info + + def __getDataBoxesInfo(self, data_boxes_node): + data_boxes_info = [] + for child in data_boxes_node.childNodes: + if child.localName == 'DataBox': + data_boxes_info.append(self.__getDataBoxInfo(child)) + return data_boxes_info + + def __getDataBoxInfo(self, data_box_node): + data_box_info = {} + for child in data_box_node.childNodes: + if child.localName == 'text_data': + pass + elif child.nodeType == child.ELEMENT_NODE: + childNodes = child.childNodes + if childNodes: + data_box_info[child.localName] = childNodes[0].nodeValue + else: + data_box_info[child.localName] = '' + return data_box_info + + def __getTextDatasInfo(self, text_datas): + text_datas_info = [] + for child in text_datas.childNodes: + if child.localName == 'TextData': + text_datas_info.append(self.__getTextDataInfo(child)) + return text_datas_info + + def __getTextDataInfo(self, text_data): + text_data_info = {} + for child in text_data.childNodes: + text_data_info[child.localName] = child.childNodes[0].nodeValue + return text_data_info + + def unzipFile(self, file): + base_name = os.path.basename(file) + export_dir = os.path.join(self.temp_dir, os.path.splitext(base_name)[0]) + if os.path.exists(export_dir): + shutil.rmtree(export_dir, ignore_errors = True) + os.mkdir(export_dir) + project_zip = zipfile.ZipFile(file) + for name in project_zip.namelist(): + if name.endswith(os.path.sep): + os.mkdir(os.path.join(export_dir, name)) + else: + dir_name = os.path.dirname(name) + dir_name_path = os.path.join(export_dir, dir_name) + if dir_name: + if not os.path.exists(dir_name_path): + os.makedirs(dir_name_path) + outfile = open(os.path.join(export_dir, name), 'wb') + outfile.write(project_zip.read(name)) + outfile.close() + return export_dir diff -Nru ocrfeeder-0.7.6/src/ocrfeeder/studio/studioBuilder.py ocrfeeder-0.7.7/src/ocrfeeder/studio/studioBuilder.py --- ocrfeeder-0.7.6/src/ocrfeeder/studio/studioBuilder.py 2011-08-03 21:58:05.000000000 +0000 +++ ocrfeeder-0.7.7/src/ocrfeeder/studio/studioBuilder.py 2011-12-09 08:31:44.000000000 +0000 @@ -24,12 +24,12 @@ import os.path import urllib import widgetPresenter -from widgetModeler import SourceImagesSelector, \ +from widgetModeler import SourceImagesListStore, \ SourceImagesSelectorIconView, ImageReviewer_Controler from dataHolder import DataBox, TextData from customWidgets import SelectableBoxesArea from ocrfeeder.feeder.ocrEngines import Engine, OcrEnginesManager -from configuration import ConfigurationManager +from ocrfeeder.util.configuration import ConfigurationManager from ocrfeeder.util.asyncworker import AsyncItem from optparse import OptionParser import gettext @@ -71,9 +71,8 @@ self.configuration_manager.loadConfiguration() self.ocr_engines_manager.makeEnginesFromFolder(self.configuration_manager.user_engines_folder) self.ocr_engines = self.ocr_engines_manager.ocr_engines - self.source_images_selector = SourceImagesSelector() - self.source_images_selector.connect('selection_changed', self.selectionChanged) - self.source_images_icon_view = SourceImagesSelectorIconView(self.source_images_selector) + self.source_images_list_store = SourceImagesListStore() + self.source_images_icon_view = SourceImagesSelectorIconView(self.source_images_list_store) self.source_images_icon_view.setDeleteCurrentPageFunction(self.deleteCurrentPage) self.source_images_icon_view.connect('drag_data_received', self.dragDataReceived) self.source_images_icon_view.connect('drag_drop', self.dragDrop) @@ -134,7 +133,7 @@ self.main_window.setHasSelectedBoxes(False) self.main_window.setHasContentBoxes(False) - self.main_window.setHasImages(not self.source_images_selector.isEmpty()) + self.main_window.setHasImages(not self.source_images_list_store.isEmpty()) # Show dialog to choose system-wide OCR engines when no engine was found if not self.ocr_engines: @@ -168,7 +167,8 @@ paths.append(path) for path in paths: if os.path.splitext(path)[1] == '.pdf': - folder = lib.convertPdfToImages(path, self.configuration_manager.temporary_dir) + folder = lib.convertPdfToImages(path, + self.configuration_manager.TEMPORARY_FOLDER) self.__addImagesToReviewer(lib.getImagesFromFolder(folder)) else: try: @@ -261,7 +261,7 @@ self.main_window.window) item = AsyncItem(lib.convertPdfToImages, (file_name, - self.configuration_manager.temporary_dir), + self.configuration_manager.TEMPORARY_FOLDER), self.__loadPdfFinishedCb, (dialog,)) info = (_('Loading PDF'), _(u'Please wait…')) @@ -283,13 +283,13 @@ file_open_dialog.destroy() def exportToHtml(self, widget = None): - self.source_images_controler.exportPagesToHtml(self.source_images_selector.getPixbufsSorted()) + self.source_images_controler.exportPagesToHtml(self.source_images_list_store.getPixbufsSorted()) def exportToOdt(self, widget = None): - self.source_images_controler.exportPagesToOdt(self.source_images_selector.getPixbufsSorted()) + self.source_images_controler.exportPagesToOdt(self.source_images_list_store.getPixbufsSorted()) def exportToPlaintext(self, widget = None): - self.source_images_controler.exportPagesToPlaintext(self.source_images_selector.getPixbufsSorted()) + self.source_images_controler.exportPagesToPlaintext(self.source_images_list_store.getPixbufsSorted()) def exportToPdf(self, widget = None): ask_pdf_type_dialog = gtk.MessageDialog(self.main_window.window, @@ -321,7 +321,7 @@ if searchable_pdf_radio.get_active(): pdf_from_scratch = False self.source_images_controler.exportPagesToPdf( - self.source_images_selector.getPixbufsSorted(), + self.source_images_list_store.getPixbufsSorted(), pdf_from_scratch) def exportDialog(self, widget): @@ -418,12 +418,7 @@ def enginesTool(self, widget = None): pass - def selectionChanged(self, selector, is_empty): - self.main_window.setHasImages(not is_empty) - def about(self, widget = None): - from gnome import url_show - gtk.about_dialog_set_url_hook(lambda x,y,z: url_show(y), "") about_dialog = widgetPresenter.CustomAboutDialog() if about_dialog.run(): about_dialog.destroy() @@ -446,7 +441,7 @@ self.source_images_controler.zoomFit() def quit(self, widget = None, data = None): - if not self.project_name and not self.source_images_selector.isEmpty(): + if not self.project_name and not self.source_images_list_store.isEmpty(): quit_dialog = widgetPresenter.QuestionDialog('' + _("The project hasn't been saved.") + '', gtk.BUTTONS_NONE) quit_dialog.format_secondary_text(_('Do you want to save it before closing?')) quit_dialog.add_buttons(_('Close anyway'), gtk.RESPONSE_NO, gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_SAVE_AS, gtk.RESPONSE_YES) @@ -466,4 +461,5 @@ def __main_quit(self): self.configuration_manager.configurationToXml() + self.configuration_manager.removeTemporaryFolder() gtk.main_quit() diff -Nru ocrfeeder-0.7.6/src/ocrfeeder/studio/widgetModeler.py ocrfeeder-0.7.7/src/ocrfeeder/studio/widgetModeler.py --- ocrfeeder-0.7.6/src/ocrfeeder/studio/widgetModeler.py 2011-08-03 21:45:02.000000000 +0000 +++ ocrfeeder-0.7.7/src/ocrfeeder/studio/widgetModeler.py 2011-12-09 08:31:44.000000000 +0000 @@ -24,10 +24,11 @@ from ocrfeeder.feeder.imageManipulation import * from ocrfeeder.feeder.layoutAnalysis import * from pango import FontDescription, SCALE -from configuration import ProjectSaver, ProjectLoader, ConfigurationManager +from project import ProjectSaver, ProjectLoader from ocrfeeder.util import graphics, ALIGN_LEFT, ALIGN_RIGHT, ALIGN_CENTER, \ ALIGN_FILL, PAPER_SIZES from ocrfeeder.util.lib import debug, getNonExistingFileName, unpaperImage +from ocrfeeder.util.configuration import ConfigurationManager from ocrfeeder.util import constants from ocrfeeder.util.asyncworker import AsyncItem from widgetPresenter import BoxEditor, PagesToExportDialog, FileDialog, \ @@ -46,44 +47,32 @@ -class SourceImagesSelector(gobject.GObject): - - __gtype_name__ = 'SourceImagesSelector' - - __gsignals__ = { - 'selection_changed' : (gobject.SIGNAL_RUN_LAST, - gobject.TYPE_NONE, - (gobject.TYPE_BOOLEAN,)) - } +class SourceImagesListStore(gtk.ListStore): def __init__(self, list_of_images = []): - super(SourceImagesSelector, self).__init__() - self.list_store = gtk.ListStore(str, str, gtk.gdk.Pixbuf) + super(SourceImagesListStore, self).__init__(str, gtk.gdk.Pixbuf, object) if len(list_of_images): for path in list_of_images: self.__renderImage(path, self.__generateImageName(path)) - def addImage(self, path): - image_name = self.__generateImageName(path) - return self.__renderImage(path, image_name) - - def __renderImage(self, path, image_name): - try: - pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(path, 150, 100) - except: - return None, None - iter = self.list_store.append([path, image_name, pixbuf]) - self.emit('selection_changed', self.isEmpty()) - return pixbuf, iter + def addImage(self, page_data): + image_name = self.__generateImageName(page_data.image_path) + return self.__renderImage(image_name, page_data) + + def __renderImage(self, image_name, page_data): + pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(page_data.image_path, + 150, 100) + return self.append([image_name, pixbuf, page_data]) def __countEqualPathsStored(self, path): - iter = self.list_store.get_iter_root() + iter = self.get_iter_root() counter = 0 while iter != None: - image_path = self.list_store.get_value(iter, 0) + page_data = self.get_value(iter, 2) + image_path = page_data.image_path if image_path == path: counter += 1 - iter = self.list_store.iter_next(iter) + iter = self.iter_next(iter) return counter def __generateImageName(self, path): @@ -93,38 +82,28 @@ image_name += ' ('+ str(number_of_equal_paths + 1) + ')' return image_name - def getPixbufAtPath(self, path): - iter = self.list_store.get_iter(path) - return self.list_store.get_value(iter, 2) - def getPixbufsSorted(self): pixbufs = [] - iter = self.list_store.get_iter_root() + iter = self.get_iter_root() while iter != None: - pixbufs.append(self.list_store.get_value(iter, 2)) - iter = self.list_store.iter_next(iter) + pixbufs.append(self.get_value(iter, 2)) + iter = self.iter_next(iter) return pixbufs def removeIter(self, path): - iter = self.list_store.get_iter(path) - self.list_store.remove(iter) - self.emit('selection_changed', self.isEmpty()) - - def clear(self): - self.list_store.clear() - self.emit('selection_changed', self.isEmpty()) + iter = self.get_iter(path) + self.remove(iter) def isEmpty(self): - return self.list_store.get_iter_first() == None + return self.get_iter_first() == None class SourceImagesSelectorIconView(gtk.IconView): - def __init__(self, source_images_selector): - self.source_images_selector = source_images_selector - super(SourceImagesSelectorIconView, self).__init__(self.source_images_selector.list_store) + def __init__(self, source_images_list_store): + super(SourceImagesSelectorIconView, self).__init__(source_images_list_store) self.get_accessible().set_name(_('Pages')) - self.set_text_column(1) - self.set_pixbuf_column(2) + self.set_text_column(0) + self.set_pixbuf_column(1) self.set_orientation(gtk.ORIENTATION_VERTICAL) self.set_columns(1) self.set_reorderable(True) @@ -139,13 +118,24 @@ menu = getPopupMenu([(gtk.STOCK_DELETE, _('Delete'), self.delete_current_page_function)]) menu.popup(None, None, None, event.button, event.time) - def getSelectedPixbuf(self): + def getSelectedPageData(self): selected_items = self.get_selected_items() if len(selected_items): selected_item_path = selected_items[0] - return self.source_images_selector.getPixbufAtPath(selected_item_path) + model = self.get_model() + iter = model.get_iter(selected_item_path) + return self.get_model().get_value(iter, 2) return None + def getAllPages(self): + model = self.get_model() + pages = [] + iter = model.get_iter_root() + while iter: + pages.append(model.get_value(iter, 2)) + iter = model.iter_next(iter) + return pages + def setDeleteCurrentPageFunction(self, function): self.delete_current_page_function = function @@ -153,19 +143,21 @@ selected_items = self.get_selected_items() if len(selected_items): selected_item_path = selected_items[0] - self.source_images_selector.removeIter(selected_item_path) - if not self.source_images_selector.isEmpty(): + self.get_model().removeIter(selected_item_path) + if not self.get_model().isEmpty(): self.select_path(0) def clear(self): - self.source_images_selector.clear() + self.get_model().clear() -class ImageReviewer: +class ImageReviewer(gtk.HPaned): - def __init__(self, main_window, path_to_image, ocr_engines): + def __init__(self, main_window, page_data, ocr_engines): + super(ImageReviewer, self).__init__() + self.configuration_manager = ConfigurationManager() self.main_window = main_window - self.path_to_image = path_to_image + self.path_to_image = page_data.image_path self.text_box_fill_color = (94, 156, 235, 150) self.box_stroke_color = (94, 156, 235, 250) self.image_box_fill_color = (0, 183, 0, 150) @@ -177,13 +169,11 @@ self.selectable_boxes_area.connect('deselected_box', self.deselectedBoxCb) self.image_pixbuf = gtk.gdk.pixbuf_new_from_file(self.path_to_image) - self.reviewer_area = gtk.HPaned() - self.reviewer_area.set_position(500) - self.reviewer_area.show() - self.boxeditor_notebook = gtk.Notebook() - self.boxeditor_notebook.set_show_tabs(False) - self.boxeditor_notebook.set_show_border(False) - self.boxeditor_notebook.show() + self.set_position(500) + self.show() + self.ocr_engines = ocr_engines + self.editor = Editor(self.image_pixbuf, self.ocr_engines, self) + self.boxes_dict = {} selectable_boxes_scrolled_window = gtk.ScrolledWindow() selectable_boxes_scrolled_window.get_accessible().set_name( @@ -193,12 +183,10 @@ self.selectable_boxes_area.show() selectable_boxes_scrolled_window.show() - self.reviewer_area.pack1(selectable_boxes_scrolled_window, True, False) - self.reviewer_area.pack2(self.boxeditor_notebook, True, False) - self.ocr_engines = ocr_engines - self.editor_list = [] - self.page = PageData(self.path_to_image) - + self.pack1(selectable_boxes_scrolled_window, True, False) + self.pack2(self.editor.box_editor, True, False) + self.page = page_data + self.updatePageData(self.page) selectable_boxes_scrolled_window.connect_after("size-allocate", self.zoomFitCb) def setTextFillColor(self, color): @@ -212,63 +200,48 @@ def setImageFillColor(self, color): self.image_box_fill_color = color - def addBoxEditor(self, box): - editor = Editor(box, self.image_pixbuf, self.ocr_engines, self) - self.editor_list.append(editor) - self.boxeditor_notebook.append_page(editor.box_editor) - return editor + def addBoxEditor(self, box, data_box = None): + if not data_box: + data_box = DataBox() + data_box.updateBoundsFromBox(box) + self.boxes_dict[box] = data_box + self.editor.setBoxes(box, data_box) def selectedBox(self, widget, box): - page_num = self.__getPageNumFromBox(box) - if page_num != -1: - self.boxeditor_notebook.set_current_page(page_num) + data_box = self.boxes_dict.get(box) + if data_box: + self.editor.setBoxes(box, data_box) else: - num_boxes = self.boxeditor_notebook.get_n_pages() self.addBoxEditor(box) - self.boxeditor_notebook.set_current_page(num_boxes) self.updateMainWindow() def deselectedBoxCb(self, widget, box): self.updateMainWindow() def updatedBox(self, widget, box): - for editor in self.editor_list: - if editor.box == box: - editor.update(box) + if self.editor.box == box: + self.editor.update(box) def updatedBoxBounds(self, widget, box): - for editor in self.editor_list: - if editor.box == box: - editor.updateBounds(box) + if self.editor.box == box: + self.editor.data_box.updateBoundsFromBox(box) def removedBox(self, widget, box): self.updateMainWindow() - for i in xrange(len(self.editor_list)): - editor = self.editor_list[i] - if editor.box == box: - page_num = self.boxeditor_notebook.page_num(editor.box_editor) - self.boxeditor_notebook.remove_page(page_num) - del self.editor_list[i] - return True + if not self.boxes_dict.has_key(box): + return False + del self.boxes_dict[box] + if self.editor.box == box: + self.editor.updateDataBox(None) + self.editor.box = None + self.selectable_boxes_area.selectNextArea() return False def clear(self): self.selectable_boxes_area.clearAreas() - self.editor_list = [] - while len(self.boxeditor_notebook): - self.boxeditor_notebook.remove_page(0) - - def __getPageNumFromBox(self, box): - editor = self.__getEditorFromBox(box) - if editor: - return self.boxeditor_notebook.page_num(editor.box_editor) - return -1 - - def __getEditorFromBox(self, box): - for editor in self.editor_list: - if editor.box == box: - return editor - return None + self.editor.updateDataBox(None) + self.editor.box = None + self.boxes_dict.clear() def applyTextColors(self): self.selectable_boxes_area.fill_color_rgba = self.text_box_fill_color @@ -284,43 +257,50 @@ for box in boxes: self.addBoxEditor(box) - def performOcrForAllEditors(self, engine = None): - self.performOcrForEditors(self.editor_list, engine) - - def performOcrForSelectedBoxes(self, engine = None): + def performOcrForSelectedBoxes(self): selected_boxes = self.selectable_boxes_area.getSelectedAreas() - self.performOcrForEditors([self.__getEditorFromBox(box) \ - for box in selected_boxes], - engine) - - def performOcrForEditors(self, editors_list, engine = None): - for editor in editors_list: - if editor == None: - continue - editor.performOcr(engine) - editor.performClassification(engine) - if editor.box_editor.getType() == IMAGE_TYPE: - editor.box_editor.setText('') + configured_engine = None + for engine, path in self.ocr_engines: + if engine.name == self.configuration_manager.favorite_engine: + configured_engine = engine + break + if not configured_engine: + return + for box in selected_boxes: + data_box = self.boxes_dict[box] + self.performOcrForDataBox(data_box, engine) + self.editor.updateDataBox(self.editor.data_box) self.updateMainWindow() + def performOcrForDataBox(self, data_box, engine): + pixbuf_width = self.image_pixbuf.get_width() + pixbuf_height = self.image_pixbuf.get_height() + subpixbuf = self.image_pixbuf.subpixbuf(data_box.getX(), + data_box.getY(), + min(data_box.getWidth(), pixbuf_width), + min(data_box.getHeight(), pixbuf_height)) + image = graphics.convertPixbufToImage(subpixbuf) + layout_analysis = LayoutAnalysis(engine, + clean_text = self.configuration_manager.clean_text) + text = layout_analysis.readImage(image) + data_box.setText(text) + self.main_window.copy_to_clipboard_menu.set_sensitive(True) + self.main_window.spellchecker_menu.set_sensitive(True) + debug('Finished reading') + text_size = layout_analysis.getTextSizeFromImage(image, + self.page.resolution[1]) + if text_size: + data_box.setFontSize(text_size) + def getTextFromBoxes(self, boxes): text = '' boxes.reverse() + self.editor.saveDataBox() if boxes: - number_of_boxes = len(boxes) - for i in range(number_of_boxes): - box = boxes[i] - box_editor = self.__getEditorFromBox(box).box_editor - if box_editor.getType() != TEXT_TYPE: - continue - text += box_editor.getText() - if number_of_boxes > 1 and i < number_of_boxes - 1: - text += '\n\n' + text = getTextFromBoxes([self.boxes_dict.get(box) for box in boxes]) else: - current_box_editor = self.boxeditor_notebook.get_nth_page(\ - self.boxeditor_notebook.get_current_page()) - if current_box_editor.getType() == TEXT_TYPE: - text = current_box_editor.getText() + if self.editor.box_editor.getType() == TEXT_TYPE: + text = self.box_editor.getText() return text def copyTextToClipboard(self): @@ -334,9 +314,7 @@ def __getAllDataBoxes(self): boxes = [] - for editor in self.editor_list: - editor.setDataBox() - data_box = editor.data_box + for data_box in self.boxes_dict.values(): boxes.append((data_box.y, data_box)) boxes.sort() boxes_sorted = [] @@ -345,7 +323,8 @@ boxes = boxes_sorted return boxes - def getPageData(self): + def savePageData(self): + self.editor.saveDataBox() self.page.data_boxes = self.__getAllDataBoxes() return self.page @@ -357,9 +336,7 @@ def addDataBox(self, data_box): dimensions = (int(data_box.x), int(data_box.y), int(data_box.width), int(data_box.height)) box = self.selectable_boxes_area.addArea(dimensions) - editor = self.addBoxEditor(box) - editor.box = box - editor.updateDataBox(data_box) + self.addBoxEditor(box, data_box) def updateBackgroundImage(self, image_path): self.path_to_image = image_path @@ -373,8 +350,7 @@ self.selectable_boxes_area.setBackgroundImage(self.path_to_image) def updateBoxesColors(self): - for editor in self.editor_list: - editor.updateBoxColor() + self.editor.updateBoxColor() def zoomFitCb(self, widget, data): self.zoomFit() @@ -395,51 +371,42 @@ self.selectable_boxes_area.zoom(min(image_height, image_width), False) def updateMainWindow(self): - if self.editor_list: - current_box_editor = self.boxeditor_notebook.get_nth_page(\ - self.boxeditor_notebook.get_current_page()) - if current_box_editor.getText(): - self.main_window.copy_to_clipboard_menu.set_sensitive(True) - self.main_window.spellchecker_menu.set_sensitive(True) - else: - self.main_window.copy_to_clipboard_menu.set_sensitive(False) - self.main_window.spellchecker_menu.set_sensitive(False) + if self.editor.box_editor.getText(): + self.main_window.copy_to_clipboard_menu.set_sensitive(True) + self.main_window.spellchecker_menu.set_sensitive(True) + else: + self.main_window.copy_to_clipboard_menu.set_sensitive(False) + self.main_window.spellchecker_menu.set_sensitive(False) has_selected_areas = self.selectable_boxes_area.getSelectedAreas() has_boxes = self.selectable_boxes_area.getAllAreas() self.main_window.setHasSelectedBoxes(bool(has_selected_areas)) self.main_window.setHasContentBoxes(bool(has_boxes)) def focusCurrentEditorTextArea(self): - current_page = self.boxeditor_notebook.get_current_page() - if current_page == -1: - return - box_editor = self.boxeditor_notebook.get_nth_page(current_page) - box_editor.text_widget.grab_focus() + self.editor.box_editor.text_widget.grab_focus() class ImageReviewer_Controler: + REVIEWER_CACHE_LENGTH = 5 + def __init__(self, main_window, source_images_selector_widget, - ocr_engines, configuration_manager, - selection_changed_signal = 'selection-changed'): + ocr_engines, configuration_manager): self.main_window = main_window self.notebook = self.main_window.notebook - self.image_reviewer_dict = {} self.source_images_selector_widget = source_images_selector_widget self.ocr_engines = ocr_engines self.configuration_manager = configuration_manager self.statusbar = self.main_window.statusbar self._page_info_message_id = self.statusbar.get_context_id('page_info_message') - self.source_images_selector_widget.connect(selection_changed_signal, self.selectImageReviewer) + self.source_images_selector_widget.connect('selection-changed', self.selectImageReviewer) self.__updateStatusBar() - def __createdImageReviewer(self, pixbuf, image): - image_reviewer = ImageReviewer(self.main_window, image, self.ocr_engines) + def __createdImageReviewer(self, page_data): + image_reviewer = ImageReviewer(self.main_window, page_data, self.ocr_engines) image_reviewer.selectable_boxes_area.connect('changed_zoom', self.__setZoomStatus) image_reviewer.setTextFillColor(self.configuration_manager.text_fill) image_reviewer.setBoxesStrokeColor(self.configuration_manager.boxes_stroke) image_reviewer.setImageFillColor(self.configuration_manager.image_fill) - self.image_reviewer_dict[pixbuf] = image_reviewer - self.notebook.append_page(image_reviewer.reviewer_area, None) return image_reviewer def addImages(self, image_path_list): @@ -492,20 +459,17 @@ image_path = os.path.abspath(os.path.expanduser(image_path)) if not os.path.isfile(image_path): return None - selector_widget = self.source_images_selector_widget - pixbuf, iter = selector_widget.source_images_selector.addImage(image_path) - if not pixbuf: - return none - reviewer = self.__createdImageReviewer(pixbuf, image_path) + page_data = PageData(image_path) + iter = self.source_images_selector_widget.get_model().addImage(page_data) if select_image: path = \ - selector_widget.source_images_selector.list_store.get_path(iter) - selector_widget.select_path(path) - return reviewer + self.source_images_selector_widget.get_model().get_path(iter) + self.source_images_selector_widget.select_path(path) + return page_data def __deskewImage(self, image_path, target_image_path = None): if not target_image_path: - tmp_dir = self.configuration_manager.temporary_dir + tmp_dir = self.configuration_manager.TEMPORARY_FOLDER target_image_path = os.path.join(tmp_dir, os.path.basename(image_path)) if os.path.exists(target_image_path): @@ -534,13 +498,14 @@ dialog.cancel() def selectImageReviewer(self, widget): - pixbuf = self.source_images_selector_widget.getSelectedPixbuf() - if pixbuf != None: - reviewer = self.image_reviewer_dict[pixbuf] - self.notebook.set_current_page(self.notebook.page_num(reviewer.reviewer_area)) - self.__setZoomStatus(None, reviewer.selectable_boxes_area.get_scale()) - self.__updateStatusBar(reviewer) - reviewer.updateMainWindow() + page_data = self.source_images_selector_widget.getSelectedPageData() + if not page_data: + return + reviewer = self.__setImageReviewerFromPageData(page_data) + self.__setZoomStatus(None, reviewer.selectable_boxes_area.get_scale()) + self.__updateStatusBar(reviewer) + reviewer.updateMainWindow() + self.main_window.setHasImages(bool(reviewer)) def __setZoomStatus(self, widget, zoom): self.__updateStatusBar() @@ -553,7 +518,7 @@ else: zoom = int(reviewer.selectable_boxes_area.get_scale() * 100) status_message = _('Zoom: %s %%') % zoom - page_data = reviewer.getPageData() + page_data = reviewer.savePageData() status_message += ' ' + _('Resolution: %.2f x %.2f') % (page_data.resolution[0], page_data.resolution[1]) status_message += ' ' + _('Page size: %i x %i') % (page_data.width, @@ -562,9 +527,34 @@ self.statusbar.pop(self._page_info_message_id) self.statusbar.push(self._page_info_message_id, status_message) + def __setImageReviewerFromPageData(self, page_data): + n_pages = self.notebook.get_n_pages() + index = 0 + while index < n_pages: + reviewer = self.notebook.get_nth_page(index) + if reviewer.savePageData() == page_data: + self.notebook.set_current_page(index) + return reviewer + index += 1 + if n_pages == self.REVIEWER_CACHE_LENGTH: + self.notebook.remove_page(0) + reviewer = self.__createdImageReviewer(page_data) + index = self.notebook.append_page(reviewer) + self.notebook.set_current_page(index) + return reviewer + + def __updateImageReviewers(self): + n_pages = self.notebook.get_n_pages() + index = 0 + while index < n_pages: + reviewer = self.notebook.get_nth_page(index) + reviewer.clear() + reviewer.updatePageData(reviewer.page) + index += 1 + def recognizeSelectedAreas(self, widget): image_reviewer = self.__getCurrentReviewer() - image_reviewer.performOcrForSelectedBoxes(self.configuration_manager.favorite_engine) + image_reviewer.performOcrForSelectedBoxes() def __confirmOveritePossibilityByRecognition(self): confirm_recognition = gtk.MessageDialog(parent = self.main_window.window, @@ -583,28 +573,29 @@ if image_reviewer.selectable_boxes_area.getAllAreas() and \ self.__confirmOveritePossibilityByRecognition() != gtk.RESPONSE_YES: return + page = image_reviewer.page dialog = QueuedEventsProgressDialog(self.main_window.window) - item = AsyncItem(self.__performRecognitionForReviewer, - (image_reviewer,), - self.__performRecognitionForReviewerFinishedCb, - (dialog, image_reviewer, [image_reviewer])) + item = AsyncItem(self.__performRecognitionForPage, + (page,), + self.__performRecognitionForPageFinishedCb, + (dialog, page, [page])) info = (_('Recognizing Page'), _(u'Please wait…')) dialog.setItemsList([(info, item)]) dialog.run() def recognizeDocument(self): - reviewers = self.image_reviewer_dict.values() + pages = self.source_images_selector_widget.getAllPages() dialog = QueuedEventsProgressDialog(self.main_window.window) items = [] i = 1 - total = len(reviewers) + total = len(pages) has_changes = False - for reviewer in reviewers: - has_changes = has_changes or bool(reviewer.selectable_boxes_area.getAllAreas()) - item = AsyncItem(self.__performRecognitionForReviewer, - (reviewer,), - self.__performRecognitionForReviewerFinishedCb, - (dialog, reviewer, reviewers)) + for page in pages: + has_changes = has_changes or bool(page.data_boxes) + item = AsyncItem(self.__performRecognitionForPage, + (page,), + self.__performRecognitionForPageFinishedCb, + (dialog, page, pages)) info = (_('Recognizing Document'), _(u'Recognizing page %(page_number)s/%(total_pages)s. Please wait…') % {'page_number': i, 'total_pages': total}) @@ -616,7 +607,7 @@ dialog.setItemsList(items) dialog.run() - def __performRecognitionForReviewer(self, image_reviewer): + def __performRecognitionForPage(self, page): window_size = self.configuration_manager.window_size if window_size == 'auto': window_size = None @@ -641,8 +632,8 @@ clean_text, adjust_boxes_bounds, adjustment_size) - return layout_analysis.recognize(image_reviewer.path_to_image, - image_reviewer.page.resolution[1]) + return layout_analysis.recognize(page.image_path, + page.resolution[1]) def __getConfiguredOcrEngine(self): for engine, path in self.ocr_engines: @@ -650,17 +641,13 @@ return engine return None - def __performRecognitionForReviewerFinishedCb(self, dialog, image_reviewer, - reviewers_to_process, - data_boxes, error): - image_reviewer.clear() - image_reviewer.applyTextColors() - for data_box in data_boxes: - image_reviewer.addDataBox(data_box) - if image_reviewer == reviewers_to_process[-1]: + def __performRecognitionForPageFinishedCb(self, dialog, page, + pages_to_process, + data_boxes, error): + page.data_boxes = data_boxes + if page == pages_to_process[-1]: dialog.cancel() - for reviewer in reviewers_to_process: - reviewer.updateMainWindow() + self.__updateImageReviewers() def copyRecognizedTextToClipboard(self, widget): image_reviewer = self.__getCurrentReviewer() @@ -669,56 +656,55 @@ def setDataBox(self, widget): image_reviewer = self.__getCurrentReviewer() document_generator = OdtGenerator() - page_data = image_reviewer.getPageData() + page_data = image_reviewer.savePageData() document_generator.addPage(page_data) document_generator.save() def exportPagesToHtml(self, pixbufs_sorted = []): - image_reviewers = self.__askForNumberOfPages(_('Export to HTML'), pixbufs_sorted) - if not image_reviewers: + pages = self.__askForNumberOfPages(_('Export to HTML'), pixbufs_sorted) + if not pages: return file_name = self.__askForFileName() if file_name: if os.path.exists(file_name): os.remove(file_name) document_generator = HtmlGenerator(file_name) - for image_reviewer in image_reviewers: - document_generator.addPage(image_reviewer.getPageData()) + for page in pages: + document_generator.addPage(page) document_generator.save() def exportPagesToOdt(self, pixbufs_sorted = []): - image_reviewers = self.__askForNumberOfPages(_('Export to ODT'), pixbufs_sorted) - if not image_reviewers: + pages = self.__askForNumberOfPages(_('Export to ODT'), pixbufs_sorted) + if not pages: return file_name = self.__askForFileName() if file_name: document_generator = OdtGenerator(file_name) - for image_reviewer in image_reviewers: - document_generator.addPage(image_reviewer.getPageData()) + for page in pages: + document_generator.addPage(page) document_generator.save() def exportPagesToPlaintext(self, pixbufs_sorted = []): - image_reviewers = self.__askForNumberOfPages(_('Export to Plain Text'), pixbufs_sorted) - if not image_reviewers: + pages = self.__askForNumberOfPages(_('Export to Plain Text'), pixbufs_sorted) + if not pages: return file_name = self.__askForFileName() if file_name: document_generator = PlaintextGenerator(file_name) - for image_reviewer in image_reviewers: - document_generator.addText(image_reviewer.getAllText()) + for page in pages: + document_generator.addText(getTextFromBoxes(page.data_boxes)) document_generator.save() def exportPagesToPdf(self, pixbufs_sorted = [], pdf_from_scratch = True): - image_reviewers = self.__askForNumberOfPages(_('Export to PDF'), - pixbufs_sorted) - if not image_reviewers: + pages = self.__askForNumberOfPages(_('Export to PDF'), pixbufs_sorted) + if not pages: return file_name = self.__askForFileName() if file_name: document_generator = PdfGenerator(file_name, pdf_from_scratch) - for image_reviewer in image_reviewers: - document_generator.addPage(image_reviewer.getPageData()) + for page in pages: + document_generator.addPage(page) document_generator.save() def saveProjectAs(self): @@ -727,8 +713,8 @@ def saveProject(self, project_name): if not project_name.endswith('.ocrf'): project_name += '.ocrf' - pages_data = self.getPagesData(self.getPixbufsSorted()) - project_saver = ProjectSaver(pages_data, self.configuration_manager.temporary_dir) + pages_data = self.source_images_selector_widget.getAllPages() + project_saver = ProjectSaver(pages_data) project_saver.serialize(project_name) def openProject(self, clear_current = True): @@ -750,36 +736,24 @@ return project_file def __askForNumberOfPages(self, title, pixbufs_sorted): + # Sync the current reviewer's page with its data + self.__getCurrentReviewer().savePageData() export_dialog = PagesToExportDialog(title) - image_reviewers = self.getImageReviewers(pixbufs_sorted) + pages = self.source_images_selector_widget.getAllPages() # When there's only one document loaded or none, # we don't ask for the number of pages to export - if len(image_reviewers) < 2: - return image_reviewers + if len(pages) < 2: + return pages response = export_dialog.run() if response == gtk.RESPONSE_ACCEPT: if export_dialog.current_page_button.get_active(): - image_reviewers = [self.__getCurrentReviewer()] + pages = [self.__getCurrentReviewer().page] export_dialog.destroy() - return image_reviewers + return pages else: export_dialog.destroy() return None - def getImageReviewers(self, pixbufs_sorted): - image_reviewers = [] - if not pixbufs_sorted: - for key, image_reviewer in self.image_reviewer_dict.items(): - image_reviewers.append(image_reviewer) - else: - for pixbuf in pixbufs_sorted: - image_reviewers.append(self.image_reviewer_dict[pixbuf]) - return image_reviewers - - def getPagesData(self, pixbufs_sorted): - image_reviewers = self.getImageReviewers(pixbufs_sorted) - return [reviewer.getPageData() for reviewer in image_reviewers] - def __askForFileName(self, extension = ''): save_dialog = FileDialog('save') response = save_dialog.run() @@ -814,33 +788,29 @@ if response == gtk.RESPONSE_ACCEPT: size = page_size_dialog.getSize() if page_size_dialog.all_pages_radio.get_active(): - for key, reviewer in self.image_reviewer_dict.items(): - reviewer.page.setSize(size) + for page in self.source_images_selector_widget.getAllPages(): + page.setSize(size) else: current_reviewer.page.setSize(size) debug('Page size: ', size) page_size_dialog.destroy() + self.__updateStatusBar(current_reviewer) def __getCurrentReviewer(self): - current_reviewer_area = self.notebook.get_nth_page(self.notebook.get_current_page()) - image_reviewer = None - for key, reviewer in self.image_reviewer_dict.items(): - if reviewer.reviewer_area == current_reviewer_area: - image_reviewer = reviewer - return image_reviewer + return self.notebook.get_nth_page(self.notebook.get_current_page()) def deleteCurrentPage(self): current_reviewer = self.__getCurrentReviewer() - for pixbuf, image_reviewer in self.image_reviewer_dict.items(): - if image_reviewer == current_reviewer: - del self.image_reviewer_dict[pixbuf] - self.notebook.remove_page(self.notebook.get_current_page()) - break - self.__updateStatusBar() + if not current_reviewer: + return + index = self.notebook.page_num(current_reviewer) + self.notebook.remove_page(index) def unpaperTool(self): current_reviewer = self.__getCurrentReviewer() - unpaper_dialog = UnpaperDialog(current_reviewer, self.configuration_manager.unpaper, self.configuration_manager.temporary_dir) + unpaper_dialog = UnpaperDialog(current_reviewer, + self.configuration_manager.unpaper, + self.configuration_manager.TEMPORARY_FOLDER) if unpaper_dialog.run() == gtk.RESPONSE_ACCEPT: unpapered_image = unpaper_dialog.getUnpaperedImage() current_reviewer.updateBackgroundImage(unpapered_image) @@ -849,9 +819,9 @@ unpaper_dialog.destroy() def clear(self): - for pixbuf in self.image_reviewer_dict.keys(): - del self.image_reviewer_dict[pixbuf] - self.notebook.remove_page(self.notebook.get_current_page()) + # remove all pages from notebook + for index in range(self.notebook.get_n_pages()): + self.notebook.remove_page(0) self.source_images_selector_widget.clear() self.__updateStatusBar() @@ -859,7 +829,8 @@ return self.source_images_selector_widget.source_images_selector.getPixbufsSorted() def updateFromConfiguration(self): - for reviewer in self.image_reviewer_dict.values(): + for index in range(self.notebook.get_n_pages()): + reviewer = self.notebook.get_nth_page(index) reviewer.setTextFillColor(self.configuration_manager.text_fill) reviewer.setBoxesStrokeColor(self.configuration_manager.boxes_stroke) reviewer.setImageFillColor(self.configuration_manager.image_fill) @@ -906,10 +877,12 @@ class Editor: - def __init__(self, box, pixbuf, ocr_engines, reviewer): + def __init__(self, pixbuf, ocr_engines, reviewer): self.configuration_manager = ConfigurationManager() self.pixbuf = pixbuf - self.data_box = DataBox() + self.data_box = None + self.box = None + self.__connected_signal_handles_list = [] self.box_editor = BoxEditor(pixbuf.get_width(), pixbuf.get_height()) self.box_editor.connect('text-edited-by-user', self.checkHasText) self.reviewer = reviewer @@ -930,25 +903,32 @@ self.box_editor.align_fill_button.connect('toggled', self.__setDataBoxAlign, ALIGN_FILL) self.box_editor.letter_spacing_spin.connect('value-changed', self.__setDataBoxLetterSpacing) self.box_editor.line_spacing_spin.connect('value-changed', self.__setDataBoxLineSpacing) - self.__connectDataBoxSignals() - self.update(box) + self.box_editor.hide() def __updateBoxX(self, spin_button): + if self.__updating_data_box: + return self.box.set_property('x', self.box_editor.getX()) if spin_button.is_focus(): self.update(self.box) def __updateBoxY(self, spin_button): + if self.__updating_data_box: + return self.box.set_property('y', self.box_editor.getY()) if spin_button.is_focus(): self.update(self.box) def __updateBoxWidth(self, spin_button): + if self.__updating_data_box: + return self.box.set_property('width', self.box_editor.getWidth()) if spin_button.is_focus(): self.update(self.box) def __updateBoxHeight(self, spin_button): + if self.__updating_data_box: + return self.box.set_property('height', self.box_editor.getHeight()) if spin_button.is_focus(): self.update(self.box) @@ -973,13 +953,13 @@ self.updateBoxColor(type) def updateBoxColor(self, type = None): + if not self.box: + return type = type or self.data_box.getType() - stroke_color = graphics.rgbaToInteger(self.reviewer.box_stroke_color) fill_color = graphics.rgbaToInteger(self.reviewer.image_box_fill_color) if type == TEXT_TYPE: fill_color = graphics.rgbaToInteger(self.reviewer.text_box_fill_color) self.box.set_property('fill-color-rgba', fill_color) - self.box.set_property('stroke-color-rgba', stroke_color) def __setDataBoxFont(self, font_button = None): font_button = font_button or self.box_editor.font_button @@ -1003,22 +983,12 @@ def update(self, box): self.box = box - x, y, width, height = self.updateBounds(box) + x, y, width, height = self.data_box.updateBoundsFromBox(self.box) pixbuf_width = self.pixbuf.get_width() pixbuf_height = self.pixbuf.get_height() sub_pixbuf = self.pixbuf.subpixbuf(x, y, min(width, pixbuf_width), min(height, pixbuf_height)) self.data_box.setImage(sub_pixbuf) - def updateBounds(self, box): - self.box = box - x, y, width, height = int(self.box.props.x), int(self.box.props.y), \ - int(self.box.props.width), int(self.box.props.height) - self.data_box.setX(x) - self.data_box.setY(y) - self.data_box.setWidth(width) - self.data_box.setHeight(height) - return (x, y, width, height) - def updateOcrEngines(self, engines_list): engines_names = [engine.name for engine, path in engines_list] self.box_editor.setOcrEngines(engines_names) @@ -1049,19 +1019,8 @@ engine = None if selected_engine_index != -1: engine = self.ocr_engines[selected_engine_index][0] - - clean_text = self.configuration_manager.clean_text - layout_analysis = LayoutAnalysis(engine, - clean_text = clean_text) - text = layout_analysis.readImage(image) - self.box_editor.setText(text) - self.reviewer.main_window.copy_to_clipboard_menu.set_sensitive(True) - self.reviewer.main_window.spellchecker_menu.set_sensitive(True) - debug('Finished reading') - text_size = layout_analysis.getTextSizeFromImage(image, - self.reviewer.page.resolution[1]) - if text_size: - self.box_editor.setFontSize(text_size) + self.reviewer.performOcrForDataBox(self.data_box, engine) + self.updateDataBox(self.data_box) def performClassification(self, engine_name = None): selected_engine_index = self.box_editor.getSelectedOcrEngine() @@ -1081,7 +1040,9 @@ debug('ANGLE: ', angle) self.box_editor.setAngle(angle) - def setDataBox(self): + def saveDataBox(self): + if not self.data_box: + return text = self.box_editor.getText() self.data_box.setText(text) angle = self.box_editor.getAngle() @@ -1092,7 +1053,12 @@ def updateDataBox(self, data_box): + self.__updating_data_box = True + self.__disconnectDataBoxSignals() self.data_box = data_box + if data_box is None: + self.box_editor.hide() + return self.box_editor.setX(self.data_box.x) self.box_editor.setY(self.data_box.y) self.box_editor.setWidth(self.data_box.width) @@ -1100,16 +1066,42 @@ self.box_editor.setType(self.data_box.type) self.box_editor.setText(self.data_box.text) self.box_editor.setFontSize(self.data_box.text_data.size) + self.box_editor.setLineSpacing(self.data_box.getLineSpacing()) + self.box_editor.setLetterSpacing(self.data_box.getLetterSpacing()) + self.__updating_data_box = False self.__connectDataBoxSignals() self.__updateBoxColor(None, self.data_box.type) def __connectDataBoxSignals(self): - self.data_box.connect('changed_x', self.__updateEditorX) - self.data_box.connect('changed_y', self.__updateEditorY) - self.data_box.connect('changed_width', self.__updateEditorWidth) - self.data_box.connect('changed_height', self.__updateEditorHeight) - self.data_box.connect('changed_image', self.__updateEditorImage) - self.data_box.connect('changed_type', self.__updateBoxColor) + handler_id = self.data_box.connect('changed_x', self.__updateEditorX) + self.__connected_signal_handles_list.append(handler_id) + handler_id = self.data_box.connect('changed_y', self.__updateEditorY) + self.__connected_signal_handles_list.append(handler_id) + handler_id = self.data_box.connect('changed_width', + self.__updateEditorWidth) + self.__connected_signal_handles_list.append(handler_id) + handler_id = self.data_box.connect('changed_height', + self.__updateEditorHeight) + self.__connected_signal_handles_list.append(handler_id) + handler_id = self.data_box.connect('changed_image', + self.__updateEditorImage) + self.__connected_signal_handles_list.append(handler_id) + handler_id = self.data_box.connect('changed_type', + self.__updateBoxColor) + + def setBoxes(self, box, data_box): + self.saveDataBox() + self.box = box + self.updateDataBox(data_box) + self.update(box) + self.box_editor.show() + + def __disconnectDataBoxSignals(self): + if not self.data_box: + return + for handle_id in self.__connected_signal_handles_list: + self.data_box.disconnect(handle_id) + self.__connected_signal_handles_list = [] def checkHasText(self, widget, text): if not text: @@ -1118,3 +1110,17 @@ else: self.reviewer.main_window.copy_to_clipboard_menu.set_sensitive(True) self.reviewer.main_window.spellchecker_menu.set_sensitive(True) + + +# Helper function to get text from data boxes +def getTextFromBoxes(data_boxes): + text = '' + number_of_boxes = len(data_boxes) + for i in range(number_of_boxes): + data_box = data_boxes[i] + if data_box and data_box.getType() != TEXT_TYPE: + continue + text += data_box.getText() + if number_of_boxes > 1 and i < number_of_boxes - 1: + text += '\n\n' + return text diff -Nru ocrfeeder-0.7.6/src/ocrfeeder/studio/widgetPresenter.py ocrfeeder-0.7.7/src/ocrfeeder/studio/widgetPresenter.py --- ocrfeeder-0.7.6/src/ocrfeeder/studio/widgetPresenter.py 2011-07-21 11:14:05.000000000 +0000 +++ ocrfeeder-0.7.7/src/ocrfeeder/studio/widgetPresenter.py 2011-12-09 08:31:46.000000000 +0000 @@ -20,8 +20,8 @@ from customWidgets import PlainFrame, PlainExpander from dataHolder import DataBox, TEXT_TYPE, IMAGE_TYPE -from configuration import ConfigurationManager from ocrfeeder.util import lib, PAPER_SIZES +from ocrfeeder.util.configuration import ConfigurationManager from ocrfeeder.util.asyncworker import AsyncWorker from ocrfeeder.util.constants import * from ocrfeeder.util.graphics import convertPixbufToImage @@ -360,7 +360,6 @@ self.pixbuf = pixbuf image = gtk.image_new_from_pixbuf(self.pixbuf) image.show() - self.image_window self.image_window.add_with_viewport(image) def setX(self, x_value): @@ -632,6 +631,9 @@ def setLineSpacing(self, spacing): self.line_spacing_spin.set_value(spacing) + def setLetterSpacing(self, spacing): + self.letter_spacing_spin.set_value(spacing) + def setOcrEngines(self, engines_list): self.ocr_combo_box.get_model().clear() for engine in engines_list: @@ -1250,8 +1252,7 @@ self.configuration_manager = configuration_manager self.ocr_engines = ocr_engines self.notebook = gtk.Notebook() - self.__makeGeneralPreferences(self.__makeTemporaryFolder(), - self.__makeColors()) + self.__makeGeneralPreferences(self.__makeColors()) self.__makeToolsPreferences(self.__makeUnpaper(), self.__makeEngines(), self.__makePreProcessorPreferences()) @@ -1259,19 +1260,12 @@ self.__makeWindowSize(), self.__makeColumnDetectionPreferences(), self.__makeBoundsAdjustmentsPreferences()) - self.temporary_folder_button.connect('clicked', self.__folderSelectDialog) self.unpaper_select.connect('clicked', self.__unpaperSelectDialog) self.custom_window_size.connect('toggled', self.__toggledCustomWindowSize) self.vbox.add(self.notebook) self.set_icon_from_file(WINDOW_ICON) self.vbox.show_all() - def __getTemporaryDir(self): - temp_dir = self.temporary_folder.get_text() - if not os.path.isdir(temp_dir): - return self.configuration_manager.getDefault('temporary_dir') - return temp_dir - def __getWindowSize(self): if self.custom_window_size.get_active(): return self.custom_window_size_entry.get_value() @@ -1282,7 +1276,6 @@ return (red >> 8, green >> 8, blue >> 8, alpha >> 8) def saveToManager(self): - self.configuration_manager.temporary_dir =self.__getTemporaryDir() self.configuration_manager.setWindowSize(self.__getWindowSize()) self.configuration_manager.setTextFill(self.__getColor(self.text_fill_color)) self.configuration_manager.setBoxesStroke( @@ -1315,24 +1308,6 @@ label.set_use_underline(True) self.notebook.append_page(general_box, label) - def __makeTemporaryFolder(self): - temporary_dir_frame = PlainFrame(_('Temporary folder')) - self.temporary_folder = gtk.Entry() - self.temporary_folder.set_text(self.configuration_manager.temporary_dir) - self.temporary_folder.set_width_chars(30) - self.temporary_folder_button = gtk.Button(_('Choose'), gtk.STOCK_OPEN) - temporary_folder_hbox = gtk.HBox() - temporary_folder_hbox.pack_start(self.temporary_folder, False) - temporary_folder_hbox.pack_start(self.temporary_folder_button, False) - temporary_dir_frame.add(temporary_folder_hbox) - return temporary_dir_frame - - def __folderSelectDialog(self, widget): - folder_select_dialog = FileDialog('select-folder') - if folder_select_dialog.run() == gtk.RESPONSE_OK: - self.temporary_folder.set_text(folder_select_dialog.get_filename()) - folder_select_dialog.destroy() - def __makeRecognitionPreferences(self, *args): general_box = gtk.VBox(spacing = 10) for arg in args: diff -Nru ocrfeeder-0.7.6/src/ocrfeeder/util/configuration.py ocrfeeder-0.7.7/src/ocrfeeder/util/configuration.py --- ocrfeeder-0.7.6/src/ocrfeeder/util/configuration.py 1970-01-01 00:00:00.000000000 +0000 +++ ocrfeeder-0.7.7/src/ocrfeeder/util/configuration.py 2011-12-09 08:31:46.000000000 +0000 @@ -0,0 +1,385 @@ +# -*- coding: utf-8 -*- + +########################################################################### +# OCRFeeder - The complete OCR suite +# Copyright (C) 2009 Joaquim Rocha +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +########################################################################### + +from ocrfeeder.feeder.ocrEngines import Engine +from ocrfeeder.util.lib import getExecPath, debug +from ocrfeeder.util.constants import OCRFEEDER_COMPACT_NAME +import tempfile +import shutil +from xml.dom import minidom +import os.path + +PREDEFINED_ENGINES = {'tesseract': {'name': 'Tesseract', + 'image_format': 'TIF', + 'engine_path': 'tesseract', + 'arguments': '$IMAGE $FILE; cat ' + '$FILE.txt; rm $FILE $FILE.txt'}, + 'ocrad': {'name': 'Ocrad', + 'image_format': 'PPM', + 'engine_path': 'ocrad', + 'arguments': '-F utf8 $IMAGE'}, + 'gocr': {'name': 'GOCR', + 'image_format': 'PPM', + 'engine_path': 'gocr', + 'arguments': '-f UTF8 $IMAGE'}, + 'cuneiform': {'name': 'Cuneiform', + 'image_format': 'BMP', + 'engine_path': 'cuneiform', + 'arguments': '-f text -o $FILE $IMAGE >' + ' /dev/null 2> /dev/null && cat $FILE' + ' && rm $FILE'}, + } + +class ConfigurationManager(object): + + TEXT_FILL = 'text_fill' + IMAGE_FILL = 'image_fill' + BOXES_STROKE = 'boxes_stroke' + WINDOW_SIZE = 'window_size' + UNPAPER = 'unpaper' + UNPAPER_USE_BLACK_FILTER = 'unpaper_use_black_filter' + UNPAPER_NOISE_FILTER_INTENSITY = 'unpaper_noise_filter_intensity' + UNPAPER_GRAY_FILTER_SIZE = 'unpaper_gray_filter_size' + UNPAPER_EXTRA_OPTIONS = 'unpaper_extra_options' + UNPAPER_IMAGES_AFTER_ADDITION = 'unpaper_images_after_addition' + FAVORITE_ENGINE = 'favorite_engine' + IMPROVE_COLUMN_DETECTION = 'improve_column_detection' + COLUMN_MIN_WIDTH = 'column_min_width' + CLEAN_TEXT = 'clean_text' + ADJUST_BOXES_BOUNDS = 'adjust_boxes_bounds' + BOUNDS_ADJUSTMENT_SIZE = 'bounds_adjustment_size' + DESKEW_IMAGES_AFTER_ADDITION = 'deskew_images_after_addition' + + TEMPORARY_FOLDER = tempfile.mkdtemp(prefix = OCRFEEDER_COMPACT_NAME + '_') + + + DEFAULTS = {TEXT_FILL: (94, 156, 235, 150), + BOXES_STROKE: (94, 156, 235, 250), + IMAGE_FILL: (0, 183, 0, 150), + WINDOW_SIZE: 'auto', + UNPAPER: getExecPath('unpaper') or '', + UNPAPER_USE_BLACK_FILTER: True, + UNPAPER_NOISE_FILTER_INTENSITY: 'auto', + UNPAPER_GRAY_FILTER_SIZE: 'auto', + FAVORITE_ENGINE: 'ocrad', + IMPROVE_COLUMN_DETECTION: True, + COLUMN_MIN_WIDTH: 'auto', + CLEAN_TEXT: True, + ADJUST_BOXES_BOUNDS: True, + BOUNDS_ADJUSTMENT_SIZE: 'auto', + DESKEW_IMAGES_AFTER_ADDITION: False, + UNPAPER_IMAGES_AFTER_ADDITION: False, + UNPAPER_EXTRA_OPTIONS: '', + } + + conf = dict(DEFAULTS) + + def __init__(self): + self.user_configuration_folder = os.path.expanduser('~/.ocrfeeder') + self.user_engines_folder = os.path.join(self.user_configuration_folder, 'engines') + self.makeUserConfigurationFolder() + self.has_unpaper = self.getDefault(self.UNPAPER) + + def makeUserConfigurationFolder(self): + if not os.path.exists(self.user_engines_folder): + os.makedirs(self.user_engines_folder) + if [file_name for file_name in os.listdir(self.user_engines_folder)\ + if file_name.endswith('.xml')]: + return + for engine in self.getEnginesInSystem(): + engine_file = os.path.join(self.user_engines_folder, engine.name) + engine.saveToXml('%s.xml' % engine_file) + + def getEnginesInSystem(self): + existing_engines = [] + engines_paths = [(name, getExecPath(conf['engine_path']))\ + for name, conf in PREDEFINED_ENGINES.items()] + for name, path in engines_paths: + if not path: + continue + engine_name = PREDEFINED_ENGINES[name].get('name', None) + arguments = PREDEFINED_ENGINES[name].get('arguments', None) + if not arguments or not engine_name: + continue + image_format = PREDEFINED_ENGINES[name].get('image_format', 'PPM') + failure_string = PREDEFINED_ENGINES[name].get('failure_string', '') + engine = Engine(engine_name, + path, + arguments, + temporary_folder = self.TEMPORARY_FOLDER, + image_format = image_format, + failure_string = failure_string) + existing_engines.append(engine) + return existing_engines + + def setConf(self, conf_key, value): + ConfigurationManager.conf[conf_key] = value + + def getConf(self, conf_key): + return ConfigurationManager.conf[conf_key] + + def setFavoriteEngine(self, engine_name): + self.setConf(self.FAVORITE_ENGINE, engine_name) + + def getFavoriteEngine(self): + return self.getConf(self.FAVORITE_ENGINE) + + def __getColorFromString(self, color): + if type(color) != str: + return color + color_list = [value.strip('()\ ') for value in color.split(',')] + try: + int_color_list = [int(value) for value in color_list] + except ValueError, exception: + return None + return tuple(int_color_list) + + def setTextFill(self, color): + self.setConf(self.TEXT_FILL, color) + + def setBoxesStroke(self, color): + self.setConf(self.BOXES_STROKE, color) + + def setImageFill(self, color): + self.setConf(self.IMAGE_FILL, color) + + def getTextFill(self): + return self.__getColorFromString(self.getConf(self.TEXT_FILL)) + + def getBoxesStroke(self): + return self.__getColorFromString(self.getConf(self.BOXES_STROKE)) + + def getImageFill(self): + return self.__getColorFromString(self.getConf(self.IMAGE_FILL)) + + def setWindowSize(self, window_size): + self.setConf(self.WINDOW_SIZE, window_size) + + def getWindowSize(self): + return self.getConf(self.WINDOW_SIZE) + + def setUnpaper(self, unpaper): + self.setConf(self.UNPAPER, unpaper) + + def getUnpaper(self): + return self.getConf(self.UNPAPER) + + def setUseBlackFilter(self, use_black_filter): + self.setConf(self.UNPAPER_USE_BLACK_FILTER, use_black_filter) + + def getUseBlackFilter(self): + use_black_filter = self.getConf(self.UNPAPER_USE_BLACK_FILTER) + return self.__convertBoolSetting(use_black_filter) + + def setNoiseFilterIntensity(self, noise_filter_intensity): + self.setConf(self.UNPAPER_NOISE_FILTER_INTENSITY, + noise_filter_intensity) + + def getNoiseFilterIntensity(self): + noise_filter_intensity = \ + self.getConf(self.UNPAPER_NOISE_FILTER_INTENSITY) + if noise_filter_intensity == 'auto' or noise_filter_intensity == 'none': + return noise_filter_intensity + try: + noise_filter_intensity_int = int(noise_filter_intensity) + except ValueError: + return 'auto' + return noise_filter_intensity_int + + def setGrayFilterSize(self, gray_filter_size): + self.setConf(self.UNPAPER_GRAY_FILTER_SIZE, + gray_filter_size) + + def getGrayFilterSize(self): + gray_filter_size = self.getConf(self.UNPAPER_GRAY_FILTER_SIZE) + if gray_filter_size == 'auto' or gray_filter_size == 'none': + return gray_filter_size + try: + gray_filter_size_int = int(gray_filter_size) + except ValueError: + return 'auto' + return gray_filter_size_int + + def setUnpaperExtraOptions(self, extra_options): + self.setConf(self.UNPAPER_EXTRA_OPTIONS, extra_options) + + def getUnpaperExtraOptions(self): + return self.getConf(self.UNPAPER_EXTRA_OPTIONS) + + def setUnpaperImagesAfterAddition(self, unpaper_images_after_addition): + self.setConf(self.UNPAPER_IMAGES_AFTER_ADDITION, + unpaper_images_after_addition) + + def getUnpaperImagesAfterAddition(self): + unpaper = self.getConf(self.UNPAPER_IMAGES_AFTER_ADDITION) + return self.__convertBoolSetting(unpaper) + + def setImproveColumnDetection(self, improve_column_detection): + self.setConf(self.IMPROVE_COLUMN_DETECTION, improve_column_detection) + + def getImproveColumnDetection(self): + improve = self.getConf(self.IMPROVE_COLUMN_DETECTION) + return self.__convertBoolSetting(improve) + + def setColumnMinWidth(self, column_min_width): + self.setConf(self.COLUMN_MIN_WIDTH, column_min_width) + + def getColumnMinWidth(self): + column_min_width = self.getConf(self.COLUMN_MIN_WIDTH) + if column_min_width == 'auto': + return column_min_width + try: + column_min_width_int = int(column_min_width) + except ValueError: + return 'auto' + return column_min_width_int + + def getCleanText(self): + clean_text = self.getConf(self.CLEAN_TEXT) + return self.__convertBoolSetting(clean_text) + + def setCleanText(self, clean_text): + self.setConf(self.CLEAN_TEXT, clean_text) + + def setAdjustBoxesBounds(self, adjust_boxes_bounds): + self.setConf(self.ADJUST_BOXES_BOUNDS, adjust_boxes_bounds) + + def getAdjustBoxesBounds(self): + adjust = self.getConf(self.ADJUST_BOXES_BOUNDS) + return self.__convertBoolSetting(adjust) + + def setDeskewImagesAfterAddition(self, deskew_images_after_addition): + self.setConf(self.DESKEW_IMAGES_AFTER_ADDITION, + deskew_images_after_addition) + + def getDeskewImagesAfterAddition(self): + deskew = self.getConf(self.DESKEW_IMAGES_AFTER_ADDITION) + return self.__convertBoolSetting(deskew) + + def setBoundsAdjustmentSize(self, adjustment_size): + self.setConf(self.BOUNDS_ADJUSTMENT_SIZE, adjustment_size) + + def getBoundsAdjustmentSize(self): + adjustment_size = self.getConf(self.BOUNDS_ADJUSTMENT_SIZE) + if adjustment_size == 'auto': + return adjustment_size + try: + adjustment_size_int = int(adjustment_size) + except ValueError: + return 'auto' + return adjustment_size_int + + def __convertBoolSetting(self, setting): + if type(setting) == str: + if setting == 'True': + setting = True + else: + setting = False + return setting + + def setDefaults(self): + ConfigurationManager.conf = dict(self.DEFAULTS) + + def getDefault(self, variable_name): + if variable_name in self.DEFAULTS.keys(): + return self.DEFAULTS[variable_name] + else: + return '' + + def loadConfiguration(self): + configuration_file = os.path.join(self.user_configuration_folder, 'preferences.xml') + if not os.path.isfile(configuration_file): + return False + document = minidom.parse(configuration_file) + for key in self.DEFAULTS.keys(): + nodeList = document.getElementsByTagName(key) + if nodeList: + for node in nodeList: + for child in node.childNodes: + if child.nodeType == child.TEXT_NODE: + ConfigurationManager.conf[key] = str(child.nodeValue) + break + return True + + def configurationToXml(self): + configuration_file = os.path.join(self.user_configuration_folder, 'preferences.xml') + doc = minidom.Document() + root_node = doc.createElement('ocrfeeder') + for key, value in ConfigurationManager.conf.items(): + new_node = doc.createElement(key) + new_node.appendChild(doc.createTextNode(str(value))) + root_node.appendChild(new_node) + configuration = doc.toxml(encoding = 'utf-8') + configuration += '\n' + root_node.toxml(encoding = 'utf-8') + new_configuration_file = open(configuration_file, 'w') + new_configuration_file.write(configuration) + new_configuration_file.close() + + def removeTemporaryFolder(self): + try: + shutil.rmtree(self.TEMPORARY_FOLDER) + except: + debug('Error when removing the temporary folder: ' + \ + self.TEMPORARY_FOLDER) + + text_fill = property(getTextFill, + setTextFill) + image_fill = property(getImageFill, + setImageFill) + boxes_stroke = property(getBoxesStroke, + setBoxesStroke) + favorite_engine = property(getFavoriteEngine, + setFavoriteEngine) + window_size = property(getWindowSize, + setWindowSize) + unpaper = property(getUnpaper, + setUnpaper) + + unpaper_use_black_filter = property(getUseBlackFilter, + setUseBlackFilter) + + unpaper_gray_filter_size = property(getGrayFilterSize, + setGrayFilterSize) + + unpaper_noise_filter_intensity = property(getNoiseFilterIntensity, + setNoiseFilterIntensity) + + unpaper_images_after_addition = property(getUnpaperImagesAfterAddition, + setUnpaperImagesAfterAddition) + + unpaper_extra_options = property(getUnpaperExtraOptions, + setUnpaperExtraOptions) + + improve_column_detection = property(getImproveColumnDetection, + setImproveColumnDetection) + column_min_width = property(getColumnMinWidth, + setColumnMinWidth) + + clean_text = property(getCleanText, + setCleanText) + + adjust_boxes_bounds = property(getAdjustBoxesBounds, + setAdjustBoxesBounds) + + bounds_adjustment_size = property(getBoundsAdjustmentSize, + setBoundsAdjustmentSize) + + deskew_images_after_addition = property(getDeskewImagesAfterAddition, + setDeskewImagesAfterAddition) diff -Nru ocrfeeder-0.7.6/src/ocrfeeder/util/constants.py ocrfeeder-0.7.7/src/ocrfeeder/util/constants.py --- ocrfeeder-0.7.6/src/ocrfeeder/util/constants.py 2011-08-04 15:53:16.000000000 +0000 +++ ocrfeeder-0.7.7/src/ocrfeeder/util/constants.py 2011-12-10 13:08:19.000000000 +0000 @@ -24,11 +24,11 @@ OCRFEEDER_STUDIO_NAME = 'OCRFeeder' OCRFEEDER_COMPACT_NAME = 'ocrfeeder' -OCRFEEDER_STUDIO_VERSION = '0.7.6' +OCRFEEDER_STUDIO_VERSION = '0.7.7' OCRFEEDER_STUDIO_AUTHORS = ['Joaquim Rocha '] OCRFEEDER_STUDIO_ARTISTS = ['Joaquim Rocha '] -OCRFEEDER_COPYRIGHT = 'Copyright © 2008-2010 Joaquim Rocha\n' \ - 'Copyright © 2009-2010 Igalia, SL' +OCRFEEDER_COPYRIGHT = 'Copyright © 2008-2011 Joaquim Rocha\n' \ + 'Copyright © 2009-2011 Igalia, SL' OCRFEEDER_WEBSITE = 'http://live.gnome.org/OCRFeeder' GPL_STATEMENT = """ OCRFeeder is free software: you can redistribute it and/or modify diff -Nru ocrfeeder-0.7.6/src/ocrfeeder/util/constants.py.in ocrfeeder-0.7.7/src/ocrfeeder/util/constants.py.in --- ocrfeeder-0.7.6/src/ocrfeeder/util/constants.py.in 2011-03-11 21:40:40.000000000 +0000 +++ ocrfeeder-0.7.7/src/ocrfeeder/util/constants.py.in 2011-12-10 13:07:31.000000000 +0000 @@ -27,8 +27,8 @@ OCRFEEDER_STUDIO_VERSION = '@VERSION@' OCRFEEDER_STUDIO_AUTHORS = ['Joaquim Rocha '] OCRFEEDER_STUDIO_ARTISTS = ['Joaquim Rocha '] -OCRFEEDER_COPYRIGHT = 'Copyright © 2008-2010 Joaquim Rocha\n' \ - 'Copyright © 2009-2010 Igalia, SL' +OCRFEEDER_COPYRIGHT = 'Copyright © 2008-2011 Joaquim Rocha\n' \ + 'Copyright © 2009-2011 Igalia, SL' OCRFEEDER_WEBSITE = 'http://live.gnome.org/OCRFeeder' GPL_STATEMENT = """ OCRFeeder is free software: you can redistribute it and/or modify diff -Nru ocrfeeder-0.7.6/src/ocrfeeder/util/lib.py ocrfeeder-0.7.7/src/ocrfeeder/util/lib.py --- ocrfeeder-0.7.6/src/ocrfeeder/util/lib.py 2011-03-11 21:40:40.000000000 +0000 +++ ocrfeeder-0.7.7/src/ocrfeeder/util/lib.py 2011-12-09 08:31:46.000000000 +0000 @@ -25,7 +25,6 @@ import gtk import math from constants import * -from gnome import url_show import sane import tempfile @@ -42,12 +41,7 @@ return icon, label def convertPdfToImages(pdf_file, temp_dir = '/tmp'): - dir_name = tempfile.mkstemp(dir = temp_dir)[1] - try: - os.remove(dir_name) - os.mkdir(dir_name) - except: - pass + dir_name = tempfile.mkdtemp(dir = temp_dir) debug('Converting PDF: ', pdf_file, ' to image') resolution = 300 file_name = os.path.splitext(os.path.basename(pdf_file))[0] @@ -92,9 +86,6 @@ i += 1 return name + str(i) + ext -def openUrl(widget, url, data): - url_show(url) - def getStandardDeviation(list_of_values): if not list_of_values: return 0 diff -Nru ocrfeeder-0.7.6/src/ocrfeeder/util/Makefile.am ocrfeeder-0.7.7/src/ocrfeeder/util/Makefile.am --- ocrfeeder-0.7.6/src/ocrfeeder/util/Makefile.am 2011-03-11 21:40:40.000000000 +0000 +++ ocrfeeder-0.7.7/src/ocrfeeder/util/Makefile.am 2011-12-09 08:31:46.000000000 +0000 @@ -3,6 +3,7 @@ ocrfeeder_util_PYTHON = \ __init__.py \ asyncworker.py \ + configuration.py \ constants.py \ graphics.py \ lib.py diff -Nru ocrfeeder-0.7.6/src/ocrfeeder/util/Makefile.in ocrfeeder-0.7.7/src/ocrfeeder/util/Makefile.in --- ocrfeeder-0.7.6/src/ocrfeeder/util/Makefile.in 2011-08-04 15:53:11.000000000 +0000 +++ ocrfeeder-0.7.7/src/ocrfeeder/util/Makefile.in 2011-12-10 13:08:15.000000000 +0000 @@ -208,6 +208,7 @@ ocrfeeder_util_PYTHON = \ __init__.py \ asyncworker.py \ + configuration.py \ constants.py \ graphics.py \ lib.py